diff --git a/.gitignore b/.gitignore index bb7d38f1349cff7e73d0a8881d1c9dbf3b90f757..02c7fcd2c1068fbeff3f489552401197854d4fd6 100644 --- a/.gitignore +++ b/.gitignore @@ -14,8 +14,8 @@ dist/ *.egg-info/ **/__pycache__/ .venv/ -pythonbindings/pyfluids/bindings* -pythonbindings/pymuparser/bindings* +pythonbindings/pyfluids/*.cpython* +pythonbindings/pymuparser/*.cpython* # IDE .vscode/ diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a3db425963b69fd26f704ec83019a8551593d651..6511277c7b355c8a3fe992330963ebb9dbf1a4b6 100755 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -458,7 +458,7 @@ cppcheck: ############################################################################### # lizard - Cyclomatic Complexity Analyzer -# Ignore warnings is manually set to 191. This job will fail when new warnings are added. +# Ignore warnings is manually set to 185. This job will fail when new warnings are added. lizard: extends: .analyze_template @@ -467,7 +467,7 @@ lizard: script: - cd $CI_PROJECT_DIR - - lizard -l cpp src/ > lizard.txt --warnings_only --ignore_warnings 400 + - lizard -l cpp src/ > lizard.txt --warnings_only --ignore_warnings 187 artifacts: expire_in: 1 week diff --git a/Python/boundary_layer/boundary_layer.py b/Python/boundary_layer/boundary_layer.py index d2efffeaca521f23f07fe24a0ad9edfeab675488..46c1014eb65ab6a393a532ab9ccf6b4ccdb424e4 100644 --- a/Python/boundary_layer/boundary_layer.py +++ b/Python/boundary_layer/boundary_layer.py @@ -150,16 +150,17 @@ if read_precursor: precursor = gpu.create_file_collection(precursor_directory + "/precursor", gpu.FileType.VTK) grid_builder.set_precursor_boundary_condition(gpu.SideType.MX, precursor, nTReadPrecursor, 0, 0, 0) -grid_builder.set_stress_boundary_condition(gpu.SideType.MZ, 0, 0, 1, sampling_offset, z0/dx) +grid_builder.set_stress_boundary_condition(gpu.SideType.MZ, 0, 0, 1, sampling_offset, z0, dx) para.set_has_wall_model_monitor(True) grid_builder.set_slip_boundary_condition(gpu.SideType.PZ, 0, 0, -1) if read_precursor: grid_builder.set_pressure_boundary_condition(gpu.SideType.PX, 0) + bc_factory.set_pressure_boundary_condition(gpu.PressureBC.OutflowNonReflective) + bc_factory.set_precursor_boundary_condition(gpu.PrecursorBC.DistributionsPrecursor if use_distributions else gpu.PrecursorBC.VelocityPrecursor) + bc_factory.set_stress_boundary_condition(gpu.StressBC.StressPressureBounceBack) bc_factory.set_slip_boundary_condition(gpu.SlipBC.SlipBounceBack) -bc_factory.set_pressure_boundary_condition(gpu.PressureBC.OutflowNonReflective) -bc_factory.set_precursor_boundary_condition(gpu.PrecursorBC.DistributionsPrecursor if use_distributions else gpu.PrecursorBC.VelocityPrecursor) para.set_outflow_pressure_correction_factor(0.0); #%% para.set_initial_condition_perturbed_log_law(u_star, z0, length[0], length[2], boundary_layer_height, dx/dx) diff --git a/apps/gpu/ActuatorLine/ActuatorLine.cpp b/apps/gpu/ActuatorLine/ActuatorLine.cpp index 8262a33892a53df438db90ae0b6447beff1f1775..fa3d80a2499ddf0b243e0562f78bec5167283c28 100644 --- a/apps/gpu/ActuatorLine/ActuatorLine.cpp +++ b/apps/gpu/ActuatorLine/ActuatorLine.cpp @@ -136,14 +136,14 @@ void multipleLevel(const std::string& configPath) //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - const real dx = reference_diameter/real(nodes_per_diameter); + const real dx = reference_diameter/real(nodes_per_diameter); real turbPos[3] = {3*reference_diameter, 3*reference_diameter, 3*reference_diameter}; auto gridBuilder = std::make_shared<MultipleGridBuilder>(); - gridBuilder->addCoarseGrid(0.0, 0.0, 0.0, - L_x, L_y, L_z, dx); + gridBuilder->addCoarseGrid(0.0, 0.0, 0.0, + L_x, L_y, L_z, dx); gridBuilder->setNumberOfLayers(4,0); gridBuilder->addGrid( std::make_shared<Cuboid>( turbPos[0]-1.5*reference_diameter, turbPos[1]-1.5*reference_diameter, turbPos[2]-1.5*reference_diameter, @@ -151,11 +151,11 @@ void multipleLevel(const std::string& configPath) para->setMaxLevel(2); scalingFactory.setScalingFactory(GridScalingFactory::GridScaling::ScaleCompressible); - gridBuilder->setPeriodicBoundaryCondition(false, false, false); + gridBuilder->setPeriodicBoundaryCondition(false, false, false); - gridBuilder->buildGrids(false); // buildGrids() has to be called before setting the BCs!!!! + gridBuilder->buildGrids(false); // buildGrids() has to be called before setting the BCs!!!! - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// const real dt = dx * mach / (sqrt(3) * velocity); @@ -235,7 +235,6 @@ void multipleLevel(const std::string& configPath) std::vector<real> probeCoordsZ = {3*reference_diameter,3*reference_diameter,3*reference_diameter}; pointProbe->addProbePointsFromList(probeCoordsX, probeCoordsY, probeCoordsZ); - // pointProbe->addProbePointsFromXNormalPlane(2*D, 0.0, 0.0, L_y, L_z, (uint)L_y/dx, (uint)L_z/dx); pointProbe->addStatistic(Statistic::Means); pointProbe->addStatistic(Statistic::Variances); diff --git a/apps/gpu/Basel/main.cpp b/apps/gpu/Basel/main.cpp index 59708add1acd865b55bb3ca8d1f1e2e2e3032dac..dd3762c1253ee2a77e196a3c3ee886281fa7fb64 100644 --- a/apps/gpu/Basel/main.cpp +++ b/apps/gpu/Basel/main.cpp @@ -60,220 +60,220 @@ void multipleLevel(const std::string& configPath) { - auto gridFactory = GridFactory::make(); - gridFactory->setGridStrategy(Device::CPU); - //gridFactory->setTriangularMeshDiscretizationMethod(TriangularMeshDiscretizationMethod::RAYCASTING); - gridFactory->setTriangularMeshDiscretizationMethod(TriangularMeshDiscretizationMethod::POINT_IN_OBJECT); - //gridFactory->setTriangularMeshDiscretizationMethod(TriangularMeshDiscretizationMethod::POINT_UNDER_TRIANGLE); - - auto gridBuilder = MultipleGridBuilder::makeShared(gridFactory); - - SPtr<ConfigFileReader> configReader = ConfigFileReader::getNewInstance(); - SPtr<ConfigData> configData = configReader->readConfigFile(configPath); - Communicator* comm = Communicator::getInstanz(); - - SPtr<Parameter> para = Parameter::make(configData, comm); - BoundaryConditionFactory bcFactory = BoundaryConditionFactory(); - SPtr<CudaMemoryManager> cudaMemManager = CudaMemoryManager::make(para); - SPtr<GridProvider> gridGenerator; - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + auto gridFactory = GridFactory::make(); + gridFactory->setGridStrategy(Device::CPU); + //gridFactory->setTriangularMeshDiscretizationMethod(TriangularMeshDiscretizationMethod::RAYCASTING); + gridFactory->setTriangularMeshDiscretizationMethod(TriangularMeshDiscretizationMethod::POINT_IN_OBJECT); + //gridFactory->setTriangularMeshDiscretizationMethod(TriangularMeshDiscretizationMethod::POINT_UNDER_TRIANGLE); + + auto gridBuilder = MultipleGridBuilder::makeShared(gridFactory); + + SPtr<ConfigFileReader> configReader = ConfigFileReader::getNewInstance(); + SPtr<ConfigData> configData = configReader->readConfigFile(configPath); + Communicator* comm = Communicator::getInstanz(); + + SPtr<Parameter> para = Parameter::make(configData, comm); + BoundaryConditionFactory bcFactory = BoundaryConditionFactory(); + SPtr<CudaMemoryManager> cudaMemManager = CudaMemoryManager::make(para); + SPtr<GridProvider> gridGenerator; + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// #ifdef _WIN32 - //Baumbart - std::string gridpath = "F:/Basel2019"; + //Baumbart + std::string gridpath = "F:/Basel2019"; #else - //Phoenix - std::string gridpath = "/work/marschoe/Basel4GPU"; + //Phoenix + std::string gridpath = "/work/marschoe/Basel4GPU"; #endif // _WIN32 - - std::ofstream logFile; - logFile.open(gridpath + "/gridGeneratorLog.txt"); + + std::ofstream logFile; + logFile.open(gridpath + "/gridGeneratorLog.txt"); - bool useGridGenerator = false; + bool useGridGenerator = false; - if (useGridGenerator) { + if (useGridGenerator) { - real dx = 1.0; - real vx = 0.05; + real dx = 1.0; + real vx = 0.05; #ifdef _WIN32 - //Baumbart - auto BaselSTL = std::make_shared<TriangularMesh>("M:/Basel2019/stl/BaselUrbanProfile_066_deg_bridge_3_All_CLOSED_WIDE_GROUND.stl"); + //Baumbart + auto BaselSTL = std::make_shared<TriangularMesh>("M:/Basel2019/stl/BaselUrbanProfile_066_deg_bridge_3_All_CLOSED_WIDE_GROUND.stl"); #else - //Phoenix - auto BaselSTL = std::make_shared<TriangularMesh>(gridpath + "/stl/BaselUrbanProfile_066_deg_bridge_3_All_CLOSED_WIDE_GROUND.stl"); + //Phoenix + auto BaselSTL = std::make_shared<TriangularMesh>(gridpath + "/stl/BaselUrbanProfile_066_deg_bridge_3_All_CLOSED_WIDE_GROUND.stl"); #endif - gridBuilder->addCoarseGrid(-256.0, -256.0, -8.0, - 256.0, 256.0, 160.0, dx); + gridBuilder->addCoarseGrid(-256.0, -256.0, -8.0, + 256.0, 256.0, 160.0, dx); - gridBuilder->addGeometry(BaselSTL); + gridBuilder->addGeometry(BaselSTL); - //Merged for Wind in X Direction - gridBuilder->setPeriodicBoundaryCondition(true, true, false); + //Merged for Wind in X Direction + gridBuilder->setPeriodicBoundaryCondition(true, true, false); - gridBuilder->buildGrids(true); // buildGrids() has to be called before setting the BCs!!!! + gridBuilder->buildGrids(true); // buildGrids() has to be called before setting the BCs!!!! - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// - gridBuilder->setVelocityBoundaryCondition(SideType::PZ, vx, 0.0, 0.0); - gridBuilder->setVelocityBoundaryCondition(SideType::MZ, vx, 0.0, 0.0); + gridBuilder->setVelocityBoundaryCondition(SideType::PZ, vx, 0.0, 0.0); + gridBuilder->setVelocityBoundaryCondition(SideType::MZ, vx, 0.0, 0.0); - gridBuilder->setVelocityBoundaryCondition(SideType::GEOMETRY, 0.0, 0.0, 0.0); + gridBuilder->setVelocityBoundaryCondition(SideType::GEOMETRY, 0.0, 0.0, 0.0); - //no forcing - // gridBuilder->setPressureBoundaryCondition(SideType::PY, 0.0); - // gridBuilder->setPressureBoundaryCondition(SideType::MY, 0.0); + //no forcing + // gridBuilder->setPressureBoundaryCondition(SideType::PY, 0.0); + // gridBuilder->setPressureBoundaryCondition(SideType::MY, 0.0); - // gridBuilder->setPressureBoundaryCondition(SideType::PX, 0.0); - // gridBuilder->setPressureBoundaryCondition(SideType::MX, 0.0); + // gridBuilder->setPressureBoundaryCondition(SideType::PX, 0.0); + // gridBuilder->setPressureBoundaryCondition(SideType::MX, 0.0); - bcFactory.setVelocityBoundaryCondition(BoundaryConditionFactory::VelocityBC::VelocityCompressible); - bcFactory.setGeometryBoundaryCondition(BoundaryConditionFactory::VelocityBC::VelocityCompressible); - ////////////////////////////////////////////////////////////////////////// - //Merged for Wind in X Direction - //gridBuilder->writeGridsToVtk(gridpath + "/grids/BaselUni/Basel_Grid"); - //SimulationFileWriter::write(gridpath + "/grids/BaselUni/", gridBuilder, FILEFORMAT::BINARY); - //////////////////// - //one street closed - gridBuilder->writeGridsToVtk(gridpath + "/grids/BaselUniOSC_1m/Basel_Grid"); - SimulationFileWriter::write(gridpath + "/grids/BaselUniOSC_1m/", gridBuilder, FILEFORMAT::BINARY); + bcFactory.setVelocityBoundaryCondition(BoundaryConditionFactory::VelocityBC::VelocityCompressible); + bcFactory.setGeometryBoundaryCondition(BoundaryConditionFactory::VelocityBC::VelocityCompressible); + ////////////////////////////////////////////////////////////////////////// + //Merged for Wind in X Direction + //gridBuilder->writeGridsToVtk(gridpath + "/grids/BaselUni/Basel_Grid"); + //SimulationFileWriter::write(gridpath + "/grids/BaselUni/", gridBuilder, FILEFORMAT::BINARY); + //////////////////// + //one street closed + gridBuilder->writeGridsToVtk(gridpath + "/grids/BaselUniOSC_1m/Basel_Grid"); + SimulationFileWriter::write(gridpath + "/grids/BaselUniOSC_1m/", gridBuilder, FILEFORMAT::BINARY); - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - StreetPointFinder finder; + StreetPointFinder finder; #ifdef _WIN32 - //Baumbart - finder.readStreets("C:/Users/schoen/Desktop/git/MS2/git/targets/apps/LBM/Basel/resources/Streets.txt"); + //Baumbart + finder.readStreets("C:/Users/schoen/Desktop/git/MS2/git/targets/apps/LBM/Basel/resources/Streets.txt"); #else - //Phoenix - finder.readStreets(gridpath + "/source/git/targets/apps/LBM/Basel/resources/Streets.txt"); + //Phoenix + finder.readStreets(gridpath + "/source/git/targets/apps/LBM/Basel/resources/Streets.txt"); #endif - finder.writeVTK(gridpath + "/results/ExampleStreets.vtk"); + finder.writeVTK(gridpath + "/results/ExampleStreets.vtk"); - finder.findIndicesLB(gridBuilder->getGrid(0), 7.0); + finder.findIndicesLB(gridBuilder->getGrid(0), 7.0); - //all Streets - //finder.writeConnectionVTK(gridpath + "/grids/BaselUni/Basel_Grid/ExampleStreetsConnection.vtk", gridBuilder->getGrid(0)); - //finder.writeSimulationFile(gridpath + "/grids/BaselUni/", 1.0, gridBuilder->getNumberOfLevels(), 0); - //finder.writeStreetVectorFile(gridpath + "/grids/BaselUni/", 1.0, gridBuilder->getNumberOfLevels(), 0); - //////////////////// - //one street closed - finder.writeConnectionVTK(gridpath + "/grids/BaselUniOSC_1m/Basel_Grid/ExampleStreetsConnection.vtk", gridBuilder->getGrid(0)); - finder.writeSimulationFile(gridpath + "/grids/BaselUniOSC_1m/", 1.0, gridBuilder->getNumberOfLevels(), 0); - finder.writeStreetVectorFile(gridpath + "/grids/BaselUniOSC_1m/", 1.0, gridBuilder->getNumberOfLevels(), 0); - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //all Streets + //finder.writeConnectionVTK(gridpath + "/grids/BaselUni/Basel_Grid/ExampleStreetsConnection.vtk", gridBuilder->getGrid(0)); + //finder.writeSimulationFile(gridpath + "/grids/BaselUni/", 1.0, gridBuilder->getNumberOfLevels(), 0); + //finder.writeStreetVectorFile(gridpath + "/grids/BaselUni/", 1.0, gridBuilder->getNumberOfLevels(), 0); + //////////////////// + //one street closed + finder.writeConnectionVTK(gridpath + "/grids/BaselUniOSC_1m/Basel_Grid/ExampleStreetsConnection.vtk", gridBuilder->getGrid(0)); + finder.writeSimulationFile(gridpath + "/grids/BaselUniOSC_1m/", 1.0, gridBuilder->getNumberOfLevels(), 0); + finder.writeStreetVectorFile(gridpath + "/grids/BaselUniOSC_1m/", 1.0, gridBuilder->getNumberOfLevels(), 0); + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - return; + return; - gridGenerator = GridProvider::makeGridGenerator(gridBuilder, para, cudaMemManager, communicator); - //gridGenerator = GridGenerator::make(gridBuilder, para); + gridGenerator = GridProvider::makeGridGenerator(gridBuilder, para, cudaMemManager, communicator); + //gridGenerator = GridGenerator::make(gridBuilder, para); - } - else - { - gridGenerator = GridProvider::makeGridReader(FILEFORMAT::BINARY, para, cudaMemManager); - //gridGenerator = GridReader::make(FileFormat::BINARY, para); - //gridGenerator = GridReader::make(FileFormat::ASCII, para); - } + } + else + { + gridGenerator = GridProvider::makeGridReader(FILEFORMAT::BINARY, para, cudaMemManager); + //gridGenerator = GridReader::make(FileFormat::BINARY, para); + //gridGenerator = GridReader::make(FileFormat::ASCII, para); + } - logFile.close(); + logFile.close(); - //return; + //return; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - Simulation sim; - SPtr<FileWriter> fileWriter = SPtr<FileWriter>(new FileWriter()); - SPtr<KernelFactoryImp> kernelFactory = KernelFactoryImp::getInstance(); - SPtr<PreProcessorFactoryImp> preProcessorFactory = PreProcessorFactoryImp::getInstance(); - sim.setFactories(kernelFactory, preProcessorFactory); - sim.init(para, gridGenerator, fileWriter, cudaMemManager); - sim.run(); - sim.free(); + Simulation sim; + SPtr<FileWriter> fileWriter = SPtr<FileWriter>(new FileWriter()); + SPtr<KernelFactoryImp> kernelFactory = KernelFactoryImp::getInstance(); + SPtr<PreProcessorFactoryImp> preProcessorFactory = PreProcessorFactoryImp::getInstance(); + sim.setFactories(kernelFactory, preProcessorFactory); + sim.init(para, gridGenerator, fileWriter, cudaMemManager); + sim.run(); + sim.free(); } int main(int argc, char* argv[]) { - MPI_Init(&argc, &argv); - std::string str, str2; - if (argv != NULL) - { - str = static_cast<std::string>(argv[0]); - if (argc > 1) - { - str2 = static_cast<std::string>(argv[1]); - try - { - multipleLevel(str2); - } - catch (const std::exception& e) - { - //MPI_Abort(MPI_COMM_WORLD, -1); - } - catch (...) - { - std::cout << "unknown exeption" << std::endl; - } - } - else - { - try - { - //multipleLevel("E:/temp/Basel2019/config/configBasel.txt"); //Tesla03 - //multipleLevel("C:/Users/schoen/Desktop/bin/ReleaseBasel/configBasel.txt"); //Baumbart 1 - multipleLevel("F:/Basel2019/configBasel.txt"); //Baumbart 2 - //multipleLevel("F:/Work/Computations/gridGenerator/inp/configTest.txt"); - //multipleLevel("C:/Users/hiwi/Desktop/configBasel.txt"); //Gamling - } - catch (const std::exception& e) - { - std::cout << e.what() << std::flush; - //MPI_Abort(MPI_COMM_WORLD, -1); - } - catch (const std::bad_alloc e) - { - std::cout << e.what() << std::flush; - //MPI_Abort(MPI_COMM_WORLD, -1); - } - catch (...) - { - std::cout << "unknown exeption" << std::endl; - } - - std::cout << "\nConfiguration file must be set!: lbmgm <config file>" << std::endl << std::flush; - //MPI_Abort(MPI_COMM_WORLD, -1); - } - } - - - /* - MPE_Init_log() & MPE_Finish_log() are NOT needed when - liblmpe.a is linked with this program. In that case, - MPI_Init() would have called MPE_Init_log() already. - */ + MPI_Init(&argc, &argv); + std::string str, str2; + if (argv != NULL) + { + str = static_cast<std::string>(argv[0]); + if (argc > 1) + { + str2 = static_cast<std::string>(argv[1]); + try + { + multipleLevel(str2); + } + catch (const std::exception& e) + { + //MPI_Abort(MPI_COMM_WORLD, -1); + } + catch (...) + { + std::cout << "unknown exeption" << std::endl; + } + } + else + { + try + { + //multipleLevel("E:/temp/Basel2019/config/configBasel.txt"); //Tesla03 + //multipleLevel("C:/Users/schoen/Desktop/bin/ReleaseBasel/configBasel.txt"); //Baumbart 1 + multipleLevel("F:/Basel2019/configBasel.txt"); //Baumbart 2 + //multipleLevel("F:/Work/Computations/gridGenerator/inp/configTest.txt"); + //multipleLevel("C:/Users/hiwi/Desktop/configBasel.txt"); //Gamling + } + catch (const std::exception& e) + { + std::cout << e.what() << std::flush; + //MPI_Abort(MPI_COMM_WORLD, -1); + } + catch (const std::bad_alloc e) + { + std::cout << e.what() << std::flush; + //MPI_Abort(MPI_COMM_WORLD, -1); + } + catch (...) + { + std::cout << "unknown exeption" << std::endl; + } + + std::cout << "\nConfiguration file must be set!: lbmgm <config file>" << std::endl << std::flush; + //MPI_Abort(MPI_COMM_WORLD, -1); + } + } + + + /* + MPE_Init_log() & MPE_Finish_log() are NOT needed when + liblmpe.a is linked with this program. In that case, + MPI_Init() would have called MPE_Init_log() already. + */ #if defined( MPI_LOGGING ) - MPE_Init_log(); + MPE_Init_log(); #endif #if defined( MPI_LOGGING ) - if (argv != NULL) - MPE_Finish_log(argv[0]); - if (str != "") - MPE_Finish_log(str.c_str()); - else - MPE_Finish_log("TestLog"); + if (argv != NULL) + MPE_Finish_log(argv[0]); + if (str != "") + MPE_Finish_log(str.c_str()); + else + MPE_Finish_log("TestLog"); #endif - MPI_Finalize(); - return 0; + MPI_Finalize(); + return 0; } diff --git a/apps/gpu/BaselMultiGPU/main.cpp b/apps/gpu/BaselMultiGPU/main.cpp index 794d9c1ee5ef502997a1bc82709cdca277e8b61b..31988ab6068ea46e94cc248c882c65dc44535e73 100644 --- a/apps/gpu/BaselMultiGPU/main.cpp +++ b/apps/gpu/BaselMultiGPU/main.cpp @@ -4,7 +4,7 @@ #include <mpi.h> #if defined( MPI_LOGGING ) - #include <mpe.h> + #include <mpe.h> #endif #include <string> @@ -68,24 +68,24 @@ void multipleLevel(const std::string& configPath) auto gridBuilder = MultipleGridBuilder::makeShared(gridFactory); - SPtr<ConfigFileReader> configReader = ConfigFileReader::getNewInstance(); - SPtr<ConfigData> configData = configReader->readConfigFile(configPath); - Communicator* comm = Communicator::getInstanz(); + SPtr<ConfigFileReader> configReader = ConfigFileReader::getNewInstance(); + SPtr<ConfigData> configData = configReader->readConfigFile(configPath); + Communicator* comm = Communicator::getInstanz(); SPtr<Parameter> para = Parameter::make(configData, comm); BoundaryConditionFactory bcFactory = BoundaryConditionFactory(); - SPtr<CudaMemoryManager> cudaMemManager = CudaMemoryManager::make(para); - SPtr<GridProvider> gridGenerator; + SPtr<CudaMemoryManager> cudaMemManager = CudaMemoryManager::make(para); + SPtr<GridProvider> gridGenerator; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - const uint generatePart = comm->getPID(); + const uint generatePart = comm->getPID(); std::ofstream logFile2; - std::string gridpath = "/work/marschoe/Basel4GPU/"; - logFile2.open(gridpath + std::to_string(generatePart) + "/gridGeneratorLog.txt");//Phoenix - //logFile2.open(std::string("M:/Basel2019/grids4/") + std::to_string(generatePart) + "/gridGeneratorLog.txt");//Baumbart + std::string gridpath = "/work/marschoe/Basel4GPU/"; + logFile2.open(gridpath + std::to_string(generatePart) + "/gridGeneratorLog.txt");//Phoenix + //logFile2.open(std::string("M:/Basel2019/grids4/") + std::to_string(generatePart) + "/gridGeneratorLog.txt");//Baumbart bool useGridGenerator = false; @@ -95,62 +95,62 @@ void multipleLevel(const std::string& configPath) SPtr<TriangularMesh> BaselSTL; - if (generatePart == 0) - BaselSTL = std::make_shared<TriangularMesh>("/work/marschoe/Basel4GPU/stl/BaselUrbanProfile_066_deg_bridge_3_All_CLOSED_WIDE_GROUND.stl"); //Phoenix - //BaselSTL = std::make_shared<TriangularMesh>("M:/Basel2019/stl/BaselUrbanProfile_066_deg_bridge_3_All_CLOSED_WIDE_GROUND.stl"); //Baumbart - if (generatePart == 1) - BaselSTL = std::make_shared<TriangularMesh>("/work/marschoe/Basel4GPU/stl/BaselUrbanProfile_066_deg_bridge_3_All_CLOSED_WIDE_GROUND_MIRROR_X.stl"); //Phoenix - //BaselSTL = std::make_shared<TriangularMesh>("M:/Basel2019/stl/BaselUrbanProfile_066_deg_bridge_3_All_CLOSED_WIDE_GROUND_MIRROR_X.stl"); //Baumbart - if (generatePart == 2) - BaselSTL = std::make_shared<TriangularMesh>("/work/marschoe/Basel4GPU/stl/BaselUrbanProfile_066_deg_bridge_3_All_CLOSED_WIDE_GROUND_MIRROR_X_Y.stl"); //Phoenix - //BaselSTL = std::make_shared<TriangularMesh>("M:/Basel2019/stl/BaselUrbanProfile_066_deg_bridge_3_All_CLOSED_WIDE_GROUND_MIRROR_X_Y.stl"); //Baumbart - if (generatePart == 3) - BaselSTL = std::make_shared<TriangularMesh>("/work/marschoe/Basel4GPU/stl/BaselUrbanProfile_066_deg_bridge_3_All_CLOSED_WIDE_GROUND_MIRROR_Y.stl"); //Phoenix - //BaselSTL = std::make_shared<TriangularMesh>("M:/Basel2019/stl/BaselUrbanProfile_066_deg_bridge_3_All_CLOSED_WIDE_GROUND_MIRROR_Y.stl"); //Baumbart - - real lengthInXDirection = 512.0; - real lengthInYDirection = 512.0; - real lengthInXDirectionOverlap = 520.0; - real lengthInYDirectionOverlap = 520.0; - real centerInX; - real centerInY; - - if (generatePart == 0){ centerInX = 0.0; centerInY = 0.0;} - if (generatePart == 1){ centerInX = -512.0; centerInY = 0.0;} - if (generatePart == 2){ centerInX = -512.0; centerInY = 512.0;} - if (generatePart == 3){ centerInX = 0.0; centerInY = 512.0;} - - gridBuilder->addCoarseGrid( (centerInX - lengthInXDirectionOverlap * 0.5), (centerInY - lengthInYDirectionOverlap * 0.5), -8.0, - (centerInX + lengthInXDirectionOverlap * 0.5), (centerInY + lengthInYDirectionOverlap * 0.5), 160.0, dx); + if (generatePart == 0) + BaselSTL = std::make_shared<TriangularMesh>("/work/marschoe/Basel4GPU/stl/BaselUrbanProfile_066_deg_bridge_3_All_CLOSED_WIDE_GROUND.stl"); //Phoenix + //BaselSTL = std::make_shared<TriangularMesh>("M:/Basel2019/stl/BaselUrbanProfile_066_deg_bridge_3_All_CLOSED_WIDE_GROUND.stl"); //Baumbart + if (generatePart == 1) + BaselSTL = std::make_shared<TriangularMesh>("/work/marschoe/Basel4GPU/stl/BaselUrbanProfile_066_deg_bridge_3_All_CLOSED_WIDE_GROUND_MIRROR_X.stl"); //Phoenix + //BaselSTL = std::make_shared<TriangularMesh>("M:/Basel2019/stl/BaselUrbanProfile_066_deg_bridge_3_All_CLOSED_WIDE_GROUND_MIRROR_X.stl"); //Baumbart + if (generatePart == 2) + BaselSTL = std::make_shared<TriangularMesh>("/work/marschoe/Basel4GPU/stl/BaselUrbanProfile_066_deg_bridge_3_All_CLOSED_WIDE_GROUND_MIRROR_X_Y.stl"); //Phoenix + //BaselSTL = std::make_shared<TriangularMesh>("M:/Basel2019/stl/BaselUrbanProfile_066_deg_bridge_3_All_CLOSED_WIDE_GROUND_MIRROR_X_Y.stl"); //Baumbart + if (generatePart == 3) + BaselSTL = std::make_shared<TriangularMesh>("/work/marschoe/Basel4GPU/stl/BaselUrbanProfile_066_deg_bridge_3_All_CLOSED_WIDE_GROUND_MIRROR_Y.stl"); //Phoenix + //BaselSTL = std::make_shared<TriangularMesh>("M:/Basel2019/stl/BaselUrbanProfile_066_deg_bridge_3_All_CLOSED_WIDE_GROUND_MIRROR_Y.stl"); //Baumbart + + real lengthInXDirection = 512.0; + real lengthInYDirection = 512.0; + real lengthInXDirectionOverlap = 520.0; + real lengthInYDirectionOverlap = 520.0; + real centerInX; + real centerInY; + + if (generatePart == 0){ centerInX = 0.0; centerInY = 0.0;} + if (generatePart == 1){ centerInX = -512.0; centerInY = 0.0;} + if (generatePart == 2){ centerInX = -512.0; centerInY = 512.0;} + if (generatePart == 3){ centerInX = 0.0; centerInY = 512.0;} + + gridBuilder->addCoarseGrid( (centerInX - lengthInXDirectionOverlap * 0.5), (centerInY - lengthInYDirectionOverlap * 0.5), -8.0, + (centerInX + lengthInXDirectionOverlap * 0.5), (centerInY + lengthInYDirectionOverlap * 0.5), 160.0, dx); gridBuilder->addGeometry(BaselSTL); - gridBuilder->setSubDomainBox(std::make_shared<BoundingBox>( (centerInX - lengthInXDirection * 0.5), (centerInX + lengthInXDirection * 0.5), - (centerInY - lengthInYDirection * 0.5), (centerInY + lengthInYDirection * 0.5), - -200.0, 200.0)); + gridBuilder->setSubDomainBox(std::make_shared<BoundingBox>( (centerInX - lengthInXDirection * 0.5), (centerInX + lengthInXDirection * 0.5), + (centerInY - lengthInYDirection * 0.5), (centerInY + lengthInYDirection * 0.5), + -200.0, 200.0)); - gridBuilder->setPeriodicBoundaryCondition(false, false, false); + gridBuilder->setPeriodicBoundaryCondition(false, false, false); gridBuilder->buildGrids(true); // buildGrids() has to be called before setting the BCs!!!! - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// - uint xNeighborRank, yNeighborRank; - if (generatePart == 0) { xNeighborRank = 1; yNeighborRank = 3; } - if (generatePart == 1) { xNeighborRank = 0; yNeighborRank = 2; } - if (generatePart == 2) { xNeighborRank = 3; yNeighborRank = 1; } - if (generatePart == 3) { xNeighborRank = 2; yNeighborRank = 0; } + uint xNeighborRank, yNeighborRank; + if (generatePart == 0) { xNeighborRank = 1; yNeighborRank = 3; } + if (generatePart == 1) { xNeighborRank = 0; yNeighborRank = 2; } + if (generatePart == 2) { xNeighborRank = 3; yNeighborRank = 1; } + if (generatePart == 3) { xNeighborRank = 2; yNeighborRank = 0; } - gridBuilder->findCommunicationIndices(CommunicationDirections::PX); - gridBuilder->setCommunicationProcess (CommunicationDirections::PX, xNeighborRank); - gridBuilder->findCommunicationIndices(CommunicationDirections::MX); - gridBuilder->setCommunicationProcess (CommunicationDirections::MX, xNeighborRank); - gridBuilder->findCommunicationIndices(CommunicationDirections::PY); - gridBuilder->setCommunicationProcess (CommunicationDirections::PY, yNeighborRank); - gridBuilder->findCommunicationIndices(CommunicationDirections::MY); - gridBuilder->setCommunicationProcess (CommunicationDirections::MY, yNeighborRank); + gridBuilder->findCommunicationIndices(CommunicationDirections::PX); + gridBuilder->setCommunicationProcess (CommunicationDirections::PX, xNeighborRank); + gridBuilder->findCommunicationIndices(CommunicationDirections::MX); + gridBuilder->setCommunicationProcess (CommunicationDirections::MX, xNeighborRank); + gridBuilder->findCommunicationIndices(CommunicationDirections::PY); + gridBuilder->setCommunicationProcess (CommunicationDirections::PY, yNeighborRank); + gridBuilder->findCommunicationIndices(CommunicationDirections::MY); + gridBuilder->setCommunicationProcess (CommunicationDirections::MY, yNeighborRank); - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// gridBuilder->setVelocityBoundaryCondition(SideType::PZ, vx , 0.0, 0.0); gridBuilder->setVelocityBoundaryCondition(SideType::MZ, vx , 0.0, 0.0); @@ -159,45 +159,45 @@ void multipleLevel(const std::string& configPath) bcFactory.setVelocityBoundaryCondition(BoundaryConditionFactory::VelocityBC::VelocityCompressible); - if (generatePart == 0 || generatePart == 3) gridBuilder->setPressureBoundaryCondition(SideType::PX, 0.0); - if (generatePart == 1 || generatePart == 2) gridBuilder->setPressureBoundaryCondition(SideType::MX, 0.0); - if (generatePart == 2 || generatePart == 3) gridBuilder->setPressureBoundaryCondition(SideType::PY, 0.0); - if (generatePart == 0 || generatePart == 1) gridBuilder->setPressureBoundaryCondition(SideType::MY, 0.0); - - ////////////////////////////////////////////////////////////////////////// - - gridBuilder->writeGridsToVtk(gridpath + std::to_string(generatePart) + "/Basel_Grid"); - SimulationFileWriter::write(gridpath + std::to_string(generatePart )+ "/", gridBuilder, FILEFORMAT::BINARY); - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - if (generatePart == 0) { - StreetPointFinder finder; - finder.readStreets("/work/marschoe/Basel4GPU/source/git/targets/apps/LBM/streetTest/resources/ExampleStreets.txt");//phoenix - //finder.readStreets("C:/Users/schoen/Desktop/git/MS2/git/targets/apps/LBM/streetTest/resources/ExampleStreets.txt");//Baumbart - //finder.writeVTK("M:/Basel2019/results/ExampleStreets.vtk"); - finder.findIndicesLB(gridBuilder->getGrid(0), 7.0); - //finder.writeConnectionVTK("M:/Basel2019/grids/BaselUniMergedX/Basel_Grid/ExampleStreetsConnection.vtk", gridBuilder->getGrid(0)); - finder.writeSimulationFile(gridpath + std::to_string(generatePart) + "/", 1.0, gridBuilder->getNumberOfLevels(), 0); - } - else - { - StreetPointFinder finder; - finder.writeSimulationFile(gridpath + std::to_string(generatePart) + "/", 1.0, gridBuilder->getNumberOfLevels(), 0); - } - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - return; - - gridGenerator = GridProvider::makeGridGenerator(gridBuilder, para, cudaMemManager, communicator); - //gridGenerator = GridGenerator::make(gridBuilder, para); + if (generatePart == 0 || generatePart == 3) gridBuilder->setPressureBoundaryCondition(SideType::PX, 0.0); + if (generatePart == 1 || generatePart == 2) gridBuilder->setPressureBoundaryCondition(SideType::MX, 0.0); + if (generatePart == 2 || generatePart == 3) gridBuilder->setPressureBoundaryCondition(SideType::PY, 0.0); + if (generatePart == 0 || generatePart == 1) gridBuilder->setPressureBoundaryCondition(SideType::MY, 0.0); + + ////////////////////////////////////////////////////////////////////////// + + gridBuilder->writeGridsToVtk(gridpath + std::to_string(generatePart) + "/Basel_Grid"); + SimulationFileWriter::write(gridpath + std::to_string(generatePart )+ "/", gridBuilder, FILEFORMAT::BINARY); + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + if (generatePart == 0) { + StreetPointFinder finder; + finder.readStreets("/work/marschoe/Basel4GPU/source/git/targets/apps/LBM/streetTest/resources/ExampleStreets.txt");//phoenix + //finder.readStreets("C:/Users/schoen/Desktop/git/MS2/git/targets/apps/LBM/streetTest/resources/ExampleStreets.txt");//Baumbart + //finder.writeVTK("M:/Basel2019/results/ExampleStreets.vtk"); + finder.findIndicesLB(gridBuilder->getGrid(0), 7.0); + //finder.writeConnectionVTK("M:/Basel2019/grids/BaselUniMergedX/Basel_Grid/ExampleStreetsConnection.vtk", gridBuilder->getGrid(0)); + finder.writeSimulationFile(gridpath + std::to_string(generatePart) + "/", 1.0, gridBuilder->getNumberOfLevels(), 0); + } + else + { + StreetPointFinder finder; + finder.writeSimulationFile(gridpath + std::to_string(generatePart) + "/", 1.0, gridBuilder->getNumberOfLevels(), 0); + } + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + return; + + gridGenerator = GridProvider::makeGridGenerator(gridBuilder, para, cudaMemManager, communicator); + //gridGenerator = GridGenerator::make(gridBuilder, para); } else { - gridGenerator = GridProvider::makeGridReader(FILEFORMAT::BINARY, para, cudaMemManager); - //gridGenerator = GridReader::make(FileFormat::BINARY, para); - //gridGenerator = GridReader::make(FileFormat::ASCII, para); - } + gridGenerator = GridProvider::makeGridReader(FILEFORMAT::BINARY, para, cudaMemManager); + //gridGenerator = GridReader::make(FileFormat::BINARY, para); + //gridGenerator = GridReader::make(FileFormat::ASCII, para); + } logFile2.close(); @@ -219,7 +219,7 @@ void multipleLevel(const std::string& configPath) SPtr<FileWriter> fileWriter = SPtr<FileWriter>(new FileWriter()); sim.init(para, gridGenerator, fileWriter, cudaMemManager); sim.run(); - sim.free(); + sim.free(); } @@ -250,10 +250,10 @@ int main( int argc, char* argv[]) { try { - //multipleLevel("E:/temp/Basel2019/config/configBasel.txt"); //Tesla03 - //multipleLevel("C:/Users/schoen/Desktop/bin/ReleaseBasel/configBasel.txt"); //Baumbart - multipleLevel("/work/marschoe/Basel4GPU/source/configBasel.txt"); //Phoenix - //multipleLevel("F:/Work/Computations/gridGenerator/inp/configTest.txt"); + //multipleLevel("E:/temp/Basel2019/config/configBasel.txt"); //Tesla03 + //multipleLevel("C:/Users/schoen/Desktop/bin/ReleaseBasel/configBasel.txt"); //Baumbart + multipleLevel("/work/marschoe/Basel4GPU/source/configBasel.txt"); //Phoenix + //multipleLevel("F:/Work/Computations/gridGenerator/inp/configTest.txt"); } catch (const std::exception& e) { diff --git a/apps/gpu/BaselNU/main.cpp b/apps/gpu/BaselNU/main.cpp index 991f5b3fa639f90562b5d220b27aedc21a71bf5a..48092b4f3aecce458989f3a158d889a7911c01d9 100644 --- a/apps/gpu/BaselNU/main.cpp +++ b/apps/gpu/BaselNU/main.cpp @@ -57,217 +57,217 @@ void multipleLevel(const std::string& configPath) { - auto gridFactory = GridFactory::make(); - gridFactory->setGridStrategy(Device::CPU); - //gridFactory->setTriangularMeshDiscretizationMethod(TriangularMeshDiscretizationMethod::RAYCASTING); - gridFactory->setTriangularMeshDiscretizationMethod(TriangularMeshDiscretizationMethod::POINT_IN_OBJECT); - //gridFactory->setTriangularMeshDiscretizationMethod(TriangularMeshDiscretizationMethod::POINT_UNDER_TRIANGLE); + auto gridFactory = GridFactory::make(); + gridFactory->setGridStrategy(Device::CPU); + //gridFactory->setTriangularMeshDiscretizationMethod(TriangularMeshDiscretizationMethod::RAYCASTING); + gridFactory->setTriangularMeshDiscretizationMethod(TriangularMeshDiscretizationMethod::POINT_IN_OBJECT); + //gridFactory->setTriangularMeshDiscretizationMethod(TriangularMeshDiscretizationMethod::POINT_UNDER_TRIANGLE); - auto gridBuilder = MultipleGridBuilder::makeShared(gridFactory); + auto gridBuilder = MultipleGridBuilder::makeShared(gridFactory); - SPtr<ConfigFileReader> configReader = ConfigFileReader::getNewInstance(); - SPtr<ConfigData> configData = configReader->readConfigFile(configPath); - Communicator* comm = Communicator::getInstanz(); + SPtr<ConfigFileReader> configReader = ConfigFileReader::getNewInstance(); + SPtr<ConfigData> configData = configReader->readConfigFile(configPath); + Communicator* comm = Communicator::getInstanz(); - SPtr<Parameter> para = Parameter::make(configData, comm); - BoundaryConditionFactory bcFactory = BoundaryConditionFactory(); - SPtr<CudaMemoryManager> cudaMemManager = CudaMemoryManager::make(para); - SPtr<GridProvider> gridGenerator; + SPtr<Parameter> para = Parameter::make(configData, comm); + BoundaryConditionFactory bcFactory = BoundaryConditionFactory(); + SPtr<CudaMemoryManager> cudaMemManager = CudaMemoryManager::make(para); + SPtr<GridProvider> gridGenerator; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - bool useGridGenerator = false; + bool useGridGenerator = false; - if (useGridGenerator) { + if (useGridGenerator) { - real dx = 4.0; - real vx = 0.05; + real dx = 4.0; + real vx = 0.05; - auto BaselSTL = std::make_shared<TriangularMesh>("M:/Basel2019/stl/BaselUrbanProfile_066_deg_bridge_3_All_CLOSED_WIDE_GROUND.stl"); + auto BaselSTL = std::make_shared<TriangularMesh>("M:/Basel2019/stl/BaselUrbanProfile_066_deg_bridge_3_All_CLOSED_WIDE_GROUND.stl"); - gridBuilder->addCoarseGrid(-256.0, -256.0, -8.0, - 256.0, 256.0, 160.0, dx); + gridBuilder->addCoarseGrid(-256.0, -256.0, -8.0, + 256.0, 256.0, 160.0, dx); - gridBuilder->addGeometry(BaselSTL); + gridBuilder->addGeometry(BaselSTL); - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// - Cuboid* refBoxMX = std::make_shared<Cuboid>( -300, -300, - 20, - -254, 300, 200 ); - Cuboid* refBoxPX = std::make_shared<Cuboid>( 254, -300, - 20, - 300, 300, 200 ); - Cuboid* refBoxMY = std::make_shared<Cuboid>( -300, -300, - 20, - 300, -254, 200 ); - Cuboid* refBoxPY = std::make_shared<Cuboid>( -300, 254, - 20, - 300, 300, 200 ); + Cuboid* refBoxMX = std::make_shared<Cuboid>( -300, -300, - 20, + -254, 300, 200 ); + Cuboid* refBoxPX = std::make_shared<Cuboid>( 254, -300, - 20, + 300, 300, 200 ); + Cuboid* refBoxMY = std::make_shared<Cuboid>( -300, -300, - 20, + 300, -254, 200 ); + Cuboid* refBoxPY = std::make_shared<Cuboid>( -300, 254, - 20, + 300, 300, 200 ); - Conglomerate* refRegion = new Conglomerate(); - - refRegion->add(refBoxMX); - refRegion->add(refBoxPX); - refRegion->add(refBoxMY); - refRegion->add(refBoxPY); + Conglomerate* refRegion = new Conglomerate(); + + refRegion->add(refBoxMX); + refRegion->add(refBoxPX); + refRegion->add(refBoxMY); + refRegion->add(refBoxPY); - refRegion->add(BaselSTL); + refRegion->add(BaselSTL); - gridBuilder->setNumberOfLayers(12, 8); + gridBuilder->setNumberOfLayers(12, 8); - gridBuilder->addGrid(refRegion, 2); + gridBuilder->addGrid(refRegion, 2); - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// - gridBuilder->setPeriodicBoundaryCondition(true, true, false); + gridBuilder->setPeriodicBoundaryCondition(true, true, false); - gridBuilder->buildGrids(true); // buildGrids() has to be called before setting the BCs!!!! + gridBuilder->buildGrids(true); // buildGrids() has to be called before setting the BCs!!!! - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// - gridBuilder->setVelocityBoundaryCondition(SideType::PZ, vx, 0.0, 0.0); - gridBuilder->setVelocityBoundaryCondition(SideType::MZ, vx, 0.0, 0.0); + gridBuilder->setVelocityBoundaryCondition(SideType::PZ, vx, 0.0, 0.0); + gridBuilder->setVelocityBoundaryCondition(SideType::MZ, vx, 0.0, 0.0); - gridBuilder->setVelocityBoundaryCondition(SideType::GEOMETRY, 0.0, 0.0, 0.0); + gridBuilder->setVelocityBoundaryCondition(SideType::GEOMETRY, 0.0, 0.0, 0.0); - //no forcing - // gridBuilder->setPressureBoundaryCondition(SideType::PY, 0.0); - // gridBuilder->setPressureBoundaryCondition(SideType::MY, 0.0); + //no forcing + // gridBuilder->setPressureBoundaryCondition(SideType::PY, 0.0); + // gridBuilder->setPressureBoundaryCondition(SideType::MY, 0.0); - // gridBuilder->setPressureBoundaryCondition(SideType::PX, 0.0); - // gridBuilder->setPressureBoundaryCondition(SideType::MX, 0.0); + // gridBuilder->setPressureBoundaryCondition(SideType::PX, 0.0); + // gridBuilder->setPressureBoundaryCondition(SideType::MX, 0.0); - bcFactory.setVelocityBoundaryCondition(BoundaryConditionFactory::VelocityBC::VelocityCompressible); + bcFactory.setVelocityBoundaryCondition(BoundaryConditionFactory::VelocityBC::VelocityCompressible); - ////////////////////////////////////////////////////////////////////////// - //Merged for Wind in X Direction - gridBuilder->writeGridsToVtk("F:/Basel2019NU/grids/BaselUniMergedXAllStreets/Basel_Grid"); - SimulationFileWriter::write("F:/Basel2019NU/grids/BaselUniMergedXAllStreets/", gridBuilder, FILEFORMAT::BINARY); + ////////////////////////////////////////////////////////////////////////// + //Merged for Wind in X Direction + gridBuilder->writeGridsToVtk("F:/Basel2019NU/grids/BaselUniMergedXAllStreets/Basel_Grid"); + SimulationFileWriter::write("F:/Basel2019NU/grids/BaselUniMergedXAllStreets/", gridBuilder, FILEFORMAT::BINARY); - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - StreetPointFinder finder; - uint streetLevel = 2; + StreetPointFinder finder; + uint streetLevel = 2; - finder.readStreets("C:/Users/schoen/Desktop/git/MS2/git/targets/apps/LBM/Basel/resources/Streets.txt"); + finder.readStreets("C:/Users/schoen/Desktop/git/MS2/git/targets/apps/LBM/Basel/resources/Streets.txt"); - finder.writeVTK("F:/Basel2019NU/results/ExampleStreets.vtk"); + finder.writeVTK("F:/Basel2019NU/results/ExampleStreets.vtk"); - finder.findIndicesLB(gridBuilder->getGrid(streetLevel), 7.0); + finder.findIndicesLB(gridBuilder->getGrid(streetLevel), 7.0); - //Merged for Wind in X Direction - finder.writeConnectionVTK("F:/Basel2019NU/grids/BaselUniMergedXAllStreets/Basel_Grid/ExampleStreetsConnection.vtk", gridBuilder->getGrid(streetLevel)); - finder.writeSimulationFile("F:/Basel2019NU/grids/BaselUniMergedXAllStreets/", 1.0, gridBuilder->getNumberOfLevels(), streetLevel); - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //Merged for Wind in X Direction + finder.writeConnectionVTK("F:/Basel2019NU/grids/BaselUniMergedXAllStreets/Basel_Grid/ExampleStreetsConnection.vtk", gridBuilder->getGrid(streetLevel)); + finder.writeSimulationFile("F:/Basel2019NU/grids/BaselUniMergedXAllStreets/", 1.0, gridBuilder->getNumberOfLevels(), streetLevel); + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - return; + return; - gridGenerator = GridProvider::makeGridGenerator(gridBuilder, para, cudaMemManager, communicator); - //gridGenerator = GridGenerator::make(gridBuilder, para); + gridGenerator = GridProvider::makeGridGenerator(gridBuilder, para, cudaMemManager, communicator); + //gridGenerator = GridGenerator::make(gridBuilder, para); - } - else - { - gridGenerator = GridProvider::makeGridReader(FILEFORMAT::BINARY, para, cudaMemManager); - //gridGenerator = GridReader::make(FileFormat::BINARY, para); - //gridGenerator = GridReader::make(FileFormat::ASCII, para); - } + } + else + { + gridGenerator = GridProvider::makeGridReader(FILEFORMAT::BINARY, para, cudaMemManager); + //gridGenerator = GridReader::make(FileFormat::BINARY, para); + //gridGenerator = GridReader::make(FileFormat::ASCII, para); + } - logFile.close(); + logFile.close(); - //return; + //return; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //std::ifstream stream; - //stream.open(configPath.c_str(), std::ios::in); - //if (stream.fail()) - // throw std::runtime_error("can not open config file!"); + //std::ifstream stream; + //stream.open(configPath.c_str(), std::ios::in); + //if (stream.fail()) + // throw std::runtime_error("can not open config file!"); - //UPtr<input::Input> input = input::Input::makeInput(stream, "config"); + //UPtr<input::Input> input = input::Input::makeInput(stream, "config"); - Simulation sim; - SPtr<FileWriter> fileWriter = SPtr<FileWriter>(new FileWriter()); - sim.init(para, gridGenerator, fileWriter, cudaMemManager); - sim.run(); - sim.free(); + Simulation sim; + SPtr<FileWriter> fileWriter = SPtr<FileWriter>(new FileWriter()); + sim.init(para, gridGenerator, fileWriter, cudaMemManager); + sim.run(); + sim.free(); } int main(int argc, char* argv[]) { - MPI_Init(&argc, &argv); - std::string str, str2; - if (argv != NULL) - { - str = static_cast<std::string>(argv[0]); - if (argc > 1) - { - str2 = static_cast<std::string>(argv[1]); - try - { - multipleLevel(str2); - } - catch (const std::exception& e) - { - //MPI_Abort(MPI_COMM_WORLD, -1); - } - catch (...) - { - std::cout << "unknown exeption" << std::endl; - } - } - else - { - try - { - //multipleLevel("E:/temp/Basel2019/config/configBasel.txt"); //Tesla03 - //multipleLevel("C:/Users/schoen/Desktop/bin/ReleaseBasel/configBasel.txt"); //Baumbart 1 - multipleLevel("F:/Basel2019NU/configBasel.txt"); //Baumbart 2 - //multipleLevel("F:/Work/Computations/gridGenerator/inp/configTest.txt"); - //multipleLevel("C:/Users/hiwi/Desktop/configBasel.txt"); //Gamling - } - catch (const std::exception& e) - { - std::cout << e.what() << std::flush; - //MPI_Abort(MPI_COMM_WORLD, -1); - } - catch (const std::bad_alloc e) - { - std::cout << e.what() << std::flush; - //MPI_Abort(MPI_COMM_WORLD, -1); - } - catch (...) - { - std::cout << "unknown exeption" << std::endl; - } - - std::cout << "\nConfiguration file must be set!: lbmgm <config file>" << std::endl << std::flush; - //MPI_Abort(MPI_COMM_WORLD, -1); - } - } - - - /* - MPE_Init_log() & MPE_Finish_log() are NOT needed when - liblmpe.a is linked with this program. In that case, - MPI_Init() would have called MPE_Init_log() already. - */ + MPI_Init(&argc, &argv); + std::string str, str2; + if (argv != NULL) + { + str = static_cast<std::string>(argv[0]); + if (argc > 1) + { + str2 = static_cast<std::string>(argv[1]); + try + { + multipleLevel(str2); + } + catch (const std::exception& e) + { + //MPI_Abort(MPI_COMM_WORLD, -1); + } + catch (...) + { + std::cout << "unknown exeption" << std::endl; + } + } + else + { + try + { + //multipleLevel("E:/temp/Basel2019/config/configBasel.txt"); //Tesla03 + //multipleLevel("C:/Users/schoen/Desktop/bin/ReleaseBasel/configBasel.txt"); //Baumbart 1 + multipleLevel("F:/Basel2019NU/configBasel.txt"); //Baumbart 2 + //multipleLevel("F:/Work/Computations/gridGenerator/inp/configTest.txt"); + //multipleLevel("C:/Users/hiwi/Desktop/configBasel.txt"); //Gamling + } + catch (const std::exception& e) + { + std::cout << e.what() << std::flush; + //MPI_Abort(MPI_COMM_WORLD, -1); + } + catch (const std::bad_alloc e) + { + std::cout << e.what() << std::flush; + //MPI_Abort(MPI_COMM_WORLD, -1); + } + catch (...) + { + std::cout << "unknown exeption" << std::endl; + } + + std::cout << "\nConfiguration file must be set!: lbmgm <config file>" << std::endl << std::flush; + //MPI_Abort(MPI_COMM_WORLD, -1); + } + } + + + /* + MPE_Init_log() & MPE_Finish_log() are NOT needed when + liblmpe.a is linked with this program. In that case, + MPI_Init() would have called MPE_Init_log() already. + */ #if defined( MPI_LOGGING ) - MPE_Init_log(); + MPE_Init_log(); #endif #if defined( MPI_LOGGING ) - if (argv != NULL) - MPE_Finish_log(argv[0]); - if (str != "") - MPE_Finish_log(str.c_str()); - else - MPE_Finish_log("TestLog"); + if (argv != NULL) + MPE_Finish_log(argv[0]); + if (str != "") + MPE_Finish_log(str.c_str()); + else + MPE_Finish_log("TestLog"); #endif - MPI_Finalize(); - return 0; + MPI_Finalize(); + return 0; } diff --git a/apps/gpu/BoundaryLayer/BoundaryLayer.cpp b/apps/gpu/BoundaryLayer/BoundaryLayer.cpp index ac2dbf785764b529653d122b9edcad31ca08be6c..199b28727331782d955b7f17e904977381504a24 100644 --- a/apps/gpu/BoundaryLayer/BoundaryLayer.cpp +++ b/apps/gpu/BoundaryLayer/BoundaryLayer.cpp @@ -130,6 +130,7 @@ void multipleLevel(const std::string& configPath) const real L_x = 6*H; const real L_y = 4*H; + const real L_z = H; const real z0 = config.getValue("z0", 0.1f); // roughness length in m @@ -144,6 +145,8 @@ void multipleLevel(const std::string& configPath) const uint nodes_per_H = config.getValue<uint>("nz", 64); + const float periodicShift = config.getValue<float>("periodicShift", 0.0f); + const bool writePrecursor = config.getValue("writePrecursor", false); bool useDistributions; std::string precursorDirectory; @@ -166,6 +169,8 @@ void multipleLevel(const std::string& configPath) useDistributions = config.getValue<bool>("useDistributions", false); } + const bool useRefinement = config.getValue<bool>("refinement", false); + // all in s const float tStartOut = config.getValue<real>("tStartOut"); const float tOut = config.getValue<real>("tOut"); @@ -262,7 +267,9 @@ void multipleLevel(const std::string& configPath) gridBuilder->addCoarseGrid( xGridMin, 0.0, 0.0, xGridMax, L_y, L_z, dx); - if(false)// Add refinement + + + if(useRefinement)// Add refinement { gridBuilder->setNumberOfLayers(4,0); real xMaxRefinement = readPrecursor? xGridMax-H: xGridMax; //Stop refinement some distance before outlet if domain ist not periodic @@ -282,9 +289,14 @@ void multipleLevel(const std::string& configPath) gridBuilder->setPeriodicBoundaryCondition(!readPrecursor, true, false); } - gridBuilder->buildGrids(true); // buildGrids() has to be called before setting the BCs!!!! + if(!readPrecursor) + { + gridBuilder->setPeriodicShiftOnXBoundaryInYDirection(periodicShift); + } + + gridBuilder->buildGrids(true); // buildGrids() has to be called before setting the BCs!!!! - std::cout << "nProcs: "<< nProcs << "Proc: " << procID << " isFirstSubDomain: " << isFirstSubDomain << " isLastSubDomain: " << isLastSubDomain << " isMidSubDomain: " << isMidSubDomain << std::endl; + VF_LOG_INFO("Number of Processes {}, Process ID {} is first subdomain {}, is last subdomain {}, is mid subdomain {}", nProcs, procID, isFirstSubDomain, isLastSubDomain, isMidSubDomain); if(nProcs > 1){ if (isFirstSubDomain || isMidSubDomain) { @@ -293,7 +305,7 @@ void multipleLevel(const std::string& configPath) } if (isLastSubDomain || isMidSubDomain) { - gridBuilder->findCommunicationIndices(CommunicationDirections::MX); + gridBuilder->findCommunicationIndices(CommunicationDirections::MX, true); gridBuilder->setCommunicationProcess(CommunicationDirections::MX, procID-1); } @@ -307,17 +319,16 @@ void multipleLevel(const std::string& configPath) gridBuilder->setCommunicationProcess(CommunicationDirections::PX, 0); } } - uint samplingOffset = 2; + - std::cout << " precursorDirectory " << precursorDirectory << std::endl; if(readPrecursor) { + VF_LOG_INFO("Precursor directory {}", precursorDirectory); if(isFirstSubDomain || nProcs == 1) { auto precursor = createFileCollection(precursorDirectory + "/precursor", FileType::VTK); gridBuilder->setPrecursorBoundaryCondition(SideType::MX, precursor, timestepsBetweenReadsPrecursor); - // gridBuilder->setVelocityBoundaryCondition(SideType::MX, velocityLB, 0.0, 0.0); } if(isLastSubDomain || nProcs == 1) @@ -326,6 +337,7 @@ void multipleLevel(const std::string& configPath) } } + uint samplingOffset = 2; gridBuilder->setStressBoundaryCondition(SideType::MZ, 0.0, 0.0, 1.0, // wall normals samplingOffset, z0, dx); // wall model settinng @@ -343,9 +355,8 @@ void multipleLevel(const std::string& configPath) if(readPrecursor) { para->setInitialCondition([&](real coordX, real coordY, real coordZ, real &rho, real &vx, real &vy, real &vz) { - rho = (real)0.0; - vx = rho = c0o1; - vx = u_star/c4o10*(u_star/c4o10 * log(coordZ/z0+c1o1)) * dt/dx; + rho = c0o1; + vx = (u_star/c4o10 * log(coordZ/z0+c1o1)) * dt/dx; vy = c0o1; vz = c0o1; }); @@ -353,10 +364,9 @@ void multipleLevel(const std::string& configPath) else { para->setInitialCondition([&](real coordX, real coordY, real coordZ, real &rho, real &vx, real &vy, real &vz) { - rho = (real)0.0; - vx = rho = c0o1; - vx = (u_star/c4o10 * log(coordZ/z0+c1o1) + c2o1*sin(cPi*c16o1*coordX/L_x)*sin(cPi*c8o1*coordZ/H)/(pow(coordZ/H,c2o1)+c1o1)) * dt/dx; - vy = c2o1*sin(cPi*c16o1*coordX/L_x)*sin(cPi*c8o1*coordZ/H)/(pow(coordZ/H,c2o1)+c1o1) * dt/dx; + rho = c0o1; + vx = (u_star/c4o10 * log(coordZ/z0+c1o1) + c2o1*sin(cPi*c16o1*coordX/L_x)*sin(cPi*c8o1*coordZ/H)/(pow(coordZ/H,c2o1)+c1o1))*(c1o1-0.1f*abs(coordY/L_y-0.5)) * dt/dx; + vy = c2o1*sin(cPi*c16o1*coordX/L_x)*sin(cPi*c8o1*coordZ/H)/(pow(coordZ/H,c2o1)+c1o1) * dt/dx; vz = c8o1*u_star/c4o10*(sin(cPi*c8o1*coordY/H)*sin(cPi*c8o1*coordZ/H)+sin(cPi*c8o1*coordX/L_x))/(pow(c1o2*L_z-coordZ, c2o1)+c1o1) * dt/dx; }); } @@ -381,8 +391,16 @@ void multipleLevel(const std::string& configPath) para->addProbe( wallModelProbe ); } + for(int i=0; i<3; i++) + { + SPtr<PlaneProbe> planeProbe = SPtr<PlaneProbe>( new PlaneProbe("horizontalProbe"+std::to_string(i), para->getOutputPath(), tStartAveraging/dt, 10, tStartOutProbe/dt, tOutProbe/dt) ); + planeProbe->setProbePlane(0, 0, i*L_z/4., L_x, L_y, dx); + planeProbe->addAllAvailableStatistics(); + para->addProbe( planeProbe ); + } + SPtr<PlaneProbe> planeProbe1 = SPtr<PlaneProbe>( new PlaneProbe("planeProbe_1", para->getOutputPath(), tStartAveraging/dt, 10, tStartOutProbe/dt, tOutProbe/dt) ); - planeProbe1->setProbePlane(100.0, 0.0, 0, dx, L_y, L_z); + planeProbe1->setProbePlane(c1o2*L_x, 0.0, 0, dx, L_y, L_z); planeProbe1->addAllAvailableStatistics(); para->addProbe( planeProbe1 ); diff --git a/apps/gpu/BoundaryLayer/configBoundaryLayer.txt b/apps/gpu/BoundaryLayer/configBoundaryLayer.txt index 1b415aa6ce14109c2d93a17ae78463786a7b7608..6f2c05739ea435848d62105650238aa391aff808 100644 --- a/apps/gpu/BoundaryLayer/configBoundaryLayer.txt +++ b/apps/gpu/BoundaryLayer/configBoundaryLayer.txt @@ -17,13 +17,17 @@ tStartAveraging = 0 tStartTmpAveraging = 100000 tAveraging = 200 tStartOutProbe = 0 -tOutProbe = 1000 +tOutProbe = 1000 ################################################## Ma = 0.1 -nz = 96 +nz = 96 + +periodicShift = 1100 +refinement = false bodyForce = true TurbulenceModel = QR +SGSconstant = 0.333333 QuadricLimiterP = 100000.0 QuadricLimiterM = 100000.0 QuadricLimiterD = 100000.0 diff --git a/apps/gpu/TGV_3D/TGV_3D.cpp b/apps/gpu/TGV_3D/TGV_3D.cpp index d0709d4f60f4262cfd20a78b4580ca4c84e93b19..088c013b282c282e96f2fb4081b69727c3f44798 100644 --- a/apps/gpu/TGV_3D/TGV_3D.cpp +++ b/apps/gpu/TGV_3D/TGV_3D.cpp @@ -138,7 +138,7 @@ void multipleLevel(const std::string& configPath) //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - const real PI = 3.141592653589793238462643383279; + const real PI = 3.141592653589793238462643383279; real L = nx / ( 2.0 * PI ); @@ -151,21 +151,21 @@ void multipleLevel(const std::string& configPath) //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real dx = 2.0 * PI / real(nx); + real dx = 2.0 * PI / real(nx); auto gridBuilder = std::make_shared<MultipleGridBuilder>(); - gridBuilder->addCoarseGrid(-PI, -PI, -PI, - PI, PI, PI, dx); + gridBuilder->addCoarseGrid(-PI, -PI, -PI, + PI, PI, PI, dx); - gridBuilder->setPeriodicBoundaryCondition(true, true, true); + gridBuilder->setPeriodicBoundaryCondition(true, true, true); - gridBuilder->buildGrids(true); // buildGrids() has to be called before setting the BCs!!!! + gridBuilder->buildGrids(true); // buildGrids() has to be called before setting the BCs!!!! //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //std::stringstream _path; + //std::stringstream _path; // std::stringstream _prefix; // //_path << "F:/Work/Computations/TaylorGreenVortex_3D/TGV_LBM/" << nx << "_Re_1.6e4"; @@ -220,7 +220,7 @@ void multipleLevel(const std::string& configPath) para->setPrintFiles(true); para->setTimestepEnd( 40 * lround(L/velocity) ); - para->setTimestepOut( 5 * lround(L/velocity) ); + para->setTimestepOut( 5 * lround(L/velocity) ); para->setVelocityLB( velocity ); @@ -278,12 +278,12 @@ int main( int argc, char* argv[]) try { ////////////////////////////////////////////////////////////////////////// - std::string targetPath( __FILE__ ); + std::string targetPath( __FILE__ ); #ifdef _WIN32 - targetPath = targetPath.substr(0, targetPath.find_last_of('\\') + 1); + targetPath = targetPath.substr(0, targetPath.find_last_of('\\') + 1); #else - targetPath = targetPath.substr(0, targetPath.find_last_of('/') + 1); + targetPath = targetPath.substr(0, targetPath.find_last_of('/') + 1); #endif ////////////////////////////////////////////////////////////////////////// @@ -306,10 +306,10 @@ int main( int argc, char* argv[]) if( cmdOptionExists( argv, argv+argc, "--useLimiter" ) ) useLimiter = true; - multipleLevel(targetPath + "config.txt"); + multipleLevel(targetPath + "config.txt"); ////////////////////////////////////////////////////////////////////////// - } + } catch (const std::bad_alloc& e) { std::cout << e.what() << std::flush; diff --git a/apps/gpu/TGV_3D_GridRef/TGV_3D_GridRef.cpp b/apps/gpu/TGV_3D_GridRef/TGV_3D_GridRef.cpp index 6decfa73429e70293243022f4147d4d010773540..384d77577dc4770e30c021c568b5606e45bd05ed 100644 --- a/apps/gpu/TGV_3D_GridRef/TGV_3D_GridRef.cpp +++ b/apps/gpu/TGV_3D_GridRef/TGV_3D_GridRef.cpp @@ -144,7 +144,7 @@ void multipleLevel(const std::string& configPath) //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - const real PI = 3.141592653589793238462643383279; + const real PI = 3.141592653589793238462643383279; real L = nx / ( 2.0 * PI ); @@ -158,10 +158,10 @@ void multipleLevel(const std::string& configPath) //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// auto gridBuilder = std::make_shared<MultipleGridBuilder>(); - real dx = 2.0 * PI / real(nx); + real dx = 2.0 * PI / real(nx); - gridBuilder->addCoarseGrid(-PI, -PI, -PI, - PI, PI, PI, dx); + gridBuilder->addCoarseGrid(-PI, -PI, -PI, + PI, PI, PI, dx); gridBuilder->setNumberOfLayers(0, 0); @@ -170,9 +170,9 @@ void multipleLevel(const std::string& configPath) gridBuilder->addGrid(fineGrid, 1); - gridBuilder->setPeriodicBoundaryCondition(true, true, true); + gridBuilder->setPeriodicBoundaryCondition(true, true, true); - gridBuilder->buildGrids(true); // buildGrids() has to be called before setting the BCs!!!! + gridBuilder->buildGrids(true); // buildGrids() has to be called before setting the BCs!!!! //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -180,7 +180,7 @@ void multipleLevel(const std::string& configPath) scalingFactory.setScalingFactory(GridScalingFactory::GridScaling::ScaleCompressible); - //std::stringstream _path; + //std::stringstream _path; // std::stringstream _prefix; // //_path << "F:/Work/Computations/TaylorGreenVortex_3D/TGV_LBM/" << nx << "_Re_1.6e4"; @@ -238,7 +238,7 @@ void multipleLevel(const std::string& configPath) para->setTimestepOut(5 * lround(L / velocity)); //para->setTimestepOut(lround(L / velocity)); // para->setTimestepEnd(2048); - //para->setTimestepOut(512); + //para->setTimestepOut(512); // para->setTimestepStartOut(500); para->setVelocityLB( velocity ); @@ -299,12 +299,12 @@ int main( int argc, char* argv[]) try { ////////////////////////////////////////////////////////////////////////// - std::string targetPath( __FILE__ ); + std::string targetPath( __FILE__ ); #ifdef _WIN32 - targetPath = targetPath.substr(0, targetPath.find_last_of('\\') + 1); + targetPath = targetPath.substr(0, targetPath.find_last_of('\\') + 1); #else - targetPath = targetPath.substr(0, targetPath.find_last_of('/') + 1); + targetPath = targetPath.substr(0, targetPath.find_last_of('/') + 1); #endif ////////////////////////////////////////////////////////////////////////// @@ -327,10 +327,10 @@ int main( int argc, char* argv[]) if( cmdOptionExists( argv, argv+argc, "--useLimiter" ) ) useLimiter = true; - multipleLevel(targetPath + "config.txt"); + multipleLevel(targetPath + "config.txt"); ////////////////////////////////////////////////////////////////////////// - } + } catch (const std::bad_alloc& e) { std::cout << "Bad alloc: " << e.what() << std::flush; diff --git a/apps/gpu/TGV_3D_MultiGPU/TGV_3D_MultiGPU.cpp b/apps/gpu/TGV_3D_MultiGPU/TGV_3D_MultiGPU.cpp index 8cec1eef3f9003ebcdc4cd79bcfcf040999601bd..1c7f4a81e924b3ab4bbe9f70c7aa67d9d9b466e0 100644 --- a/apps/gpu/TGV_3D_MultiGPU/TGV_3D_MultiGPU.cpp +++ b/apps/gpu/TGV_3D_MultiGPU/TGV_3D_MultiGPU.cpp @@ -35,7 +35,7 @@ //Martin Branch #include <mpi.h> #if defined( MPI_LOGGING ) - #include <mpe.h> + #include <mpe.h> #endif #include <string> @@ -178,7 +178,7 @@ void multipleLevel(const std::string& configPath) //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - const real PI = 3.141592653589793238462643383279; + const real PI = 3.141592653589793238462643383279; real L = nx / ( 2.0 * PI ); @@ -200,7 +200,7 @@ void multipleLevel(const std::string& configPath) //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real dx = 2.0 * PI / real(nx); + real dx = 2.0 * PI / real(nx); real xOverlap = ( sideLengthX == 1 ) ? 0.0 : 5.0*dx; real yOverlap = ( sideLengthY == 1 ) ? 0.0 : 5.0*dx; @@ -218,7 +218,7 @@ void multipleLevel(const std::string& configPath) gridBuilder->setPeriodicBoundaryCondition(sideLengthX == 1, sideLengthY == 1, sideLengthZ == 1); - gridBuilder->buildGrids(true); // buildGrids() has to be called before setting the BCs!!!! + gridBuilder->buildGrids(true); // buildGrids() has to be called before setting the BCs!!!! if( mpiWorldSize > 1 ) { @@ -268,7 +268,7 @@ void multipleLevel(const std::string& configPath) //para->setDevices(std::vector<uint>{0,1}); para->setDevices(devices); - para->setMaxDev(mpiWorldSize); + para->setMaxDev(mpiWorldSize); ////////////////////////////////////////////////////////////////////////// @@ -278,11 +278,11 @@ void multipleLevel(const std::string& configPath) para->setPrintFiles(true); // para->setTimestepEnd( 40 * lround(L/velocity) ); - //para->setTimestepOut( 5 * lround(L/velocity) ); - para->setTimestepOut( 100 ); + //para->setTimestepOut( 5 * lround(L/velocity) ); + para->setTimestepOut( 100 ); para->setTimestepEnd( 1000 ); - //para->setTimestepOut( 1 ); + //para->setTimestepOut( 1 ); para->setVelocityLB( velocity ); @@ -315,10 +315,10 @@ void multipleLevel(const std::string& configPath) para->setUseInitNeq( true ); - if (kernel == "CumulantK18Comp" || kernel == "CumulantK20Comp") - para->setIsF3(true); - else - para->setIsF3(false); + if (kernel == "CumulantK18Comp" || kernel == "CumulantK20Comp") + para->setIsF3(true); + else + para->setIsF3(false); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -355,12 +355,12 @@ int main( int argc, char* argv[]) MPI_Comm_size(MPI_COMM_WORLD, &mpiWorldSize); ////////////////////////////////////////////////////////////////////////// - std::string targetPath( __FILE__ ); + std::string targetPath( __FILE__ ); #ifdef _WIN32 - targetPath = targetPath.substr(0, targetPath.find_last_of('\\') + 1); + targetPath = targetPath.substr(0, targetPath.find_last_of('\\') + 1); #else - targetPath = targetPath.substr(0, targetPath.find_last_of('/') + 1); + targetPath = targetPath.substr(0, targetPath.find_last_of('/') + 1); #endif ////////////////////////////////////////////////////////////////////////// @@ -411,10 +411,10 @@ int main( int argc, char* argv[]) ////////////////////////////////////////////////////////////////////////// - multipleLevel(targetPath + "config.txt"); + multipleLevel(targetPath + "config.txt"); ////////////////////////////////////////////////////////////////////////// - } + } catch (const std::bad_alloc& e) { diff --git a/apps/gpu/WTG_RUB/WTG_RUB.cpp b/apps/gpu/WTG_RUB/WTG_RUB.cpp index 1a40c4f127ddabb52faa29fb581106026e92f452..6cc1114aaebfa1080cc6c832ca312b28f66d0dbd 100644 --- a/apps/gpu/WTG_RUB/WTG_RUB.cpp +++ b/apps/gpu/WTG_RUB/WTG_RUB.cpp @@ -199,18 +199,18 @@ void multipleLevel(const std::string& configPath) //// adding solid CityGeometry to gridbuilder gridBuilder->addGeometry(RubSTL); - gridBuilder->setPeriodicBoundaryCondition(false, false, false); + gridBuilder->setPeriodicBoundaryCondition(false, false, false); - gridBuilder->buildGrids(false); // buildGrids() has to be called before setting the BCs!!!! + gridBuilder->buildGrids(false); // buildGrids() has to be called before setting the BCs!!!! - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// vf::basics::ConfigurationFile config; config.load(configPath); @@ -221,15 +221,15 @@ void multipleLevel(const std::string& configPath) //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// const real velocityLB = (real)0.0844; // LB units - //const real vx = velocityLB / (real)sqrt(2.0); // LB units - //const real vy = velocityLB / (real)sqrt(2.0); // LB units + //const real vx = velocityLB / (real)sqrt(2.0); // LB units + //const real vy = velocityLB / (real)sqrt(2.0); // LB units VF_LOG_INFO("velocityLB [dx/dt] = {}", velocityLB); VF_LOG_INFO("viscosityLB [dx^2/dt] = {}", viscosityLB); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - para->setDevices(std::vector<uint>{(uint)0}); + para->setDevices(std::vector<uint>{(uint)0}); para->setOutputPath( path ); para->setOutputPrefix( "Unified_" + simulationName ); @@ -243,9 +243,9 @@ void multipleLevel(const std::string& configPath) para->setVelocityRatio(velocity/ velocityLB); - para->configureMainKernel(vf::collisionKernel::compressible::K17CompressibleNavierStokes); + para->configureMainKernel(vf::collisionKernel::compressible::K17CompressibleNavierStokes); - para->setInitialCondition([&](real coordX, real coordY, real coordZ, real &rho, real &vx, real &vy, real &vz) { + para->setInitialCondition([&](real coordX, real coordY, real coordZ, real &rho, real &vx, real &vy, real &vz) { rho = (real)0.0; vx = (real)0.0; //(6 * velocityLB * coordZ * (L - coordZ) / (L * L)); vy = (real)0.0; diff --git a/apps/gpu/gridGeneratorTest/gridGenerator.cpp b/apps/gpu/gridGeneratorTest/gridGenerator.cpp index 91c70943429507525d994d8ebf00d35f60cd7bec..0edb0155430b7eb3f72128587452e8911b0e4755 100644 --- a/apps/gpu/gridGeneratorTest/gridGenerator.cpp +++ b/apps/gpu/gridGeneratorTest/gridGenerator.cpp @@ -65,66 +65,66 @@ void runVirtualFluids(const vf::basics::ConfigurationFile &config) int testcase = SphereTest; ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - if (testcase == TGV) - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - { - real dx = 1.0; - // real vx = 0.049; - ////////////////////////////////////////////////////////////////////////// - //32 - gridBuilder->addCoarseGrid(-24, -2, -16, - 24, 2, 16, dx); - ////////////////////////////////////////////////////////////////////////// - gridBuilder->setPeriodicBoundaryCondition(true, true, true); - ////////////////////////////////////////////////////////////////////////// - gridBuilder->buildGrids(true); - ////////////////////////////////////////////////////////////////////////// - SPtr<Grid> grid = gridBuilder->getGrid(gridBuilder->getNumberOfLevels() - 1); - ////////////////////////////////////////////////////////////////////////// - gridBuilder->writeGridsToVtk("E:/temp/TaylorGreenVortex/results/32/TGV32turned_Grid"); - gridBuilder->writeArrows("E:/temp/TaylorGreenVortex/results/32/TGV32turned_Grid_arrow"); - ////////////////////////////////////////////////////////////////////////// - SimulationFileWriter::write("E:/temp/TaylorGreenVortex/grids/turned/gridUni48x4x32/", gridBuilder, FILEFORMAT::BINARY); - ////////////////////////////////////////////////////////////////////////// - return; - } - - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - if (testcase == TGV3D) - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - { - const real PI = 3.141592653589793238462643383279; - - real dx = 2.0 * PI / 32.0; // 32^3 nodes - //real dx = 2.0 * PI / 64.0; // 64^3 nodes - //real dx = 2.0 * PI / 128.0; // 128^3 nodes - //real dx = 2.0 * PI / 256.0; // 128^3 nodes - // real vx = 0.049; - - gridBuilder->addCoarseGrid(-PI, -PI, -PI, - PI, PI, PI, dx); - - gridBuilder->setPeriodicBoundaryCondition(true, true, true); - - gridBuilder->buildGrids(true); // buildGrids() has to be called before setting the BCs!!!! - - ////////////////////////////////////////////////////////////////////////// - SPtr<Grid> grid = gridBuilder->getGrid(gridBuilder->getNumberOfLevels() - 1); - ////////////////////////////////////////////////////////////////////////// - //32 - gridBuilder->writeGridsToVtk("E:/temp/TaylorGreenVortex/results3D/32/TGV3D_Grid"); - gridBuilder->writeArrows("E:/temp/TaylorGreenVortex/results3D/32/TGV3D_Grid_arrow"); - SimulationFileWriter::write("E:/temp/TaylorGreenVortex/grids3D/gridTGV3D/32/", gridBuilder, FILEFORMAT::BINARY); //FILEFORMAT::ASCII - //256 - //gridBuilder->writeGridsToVtk("E:/temp/TaylorGreenVortex/results3D/256/TGV3D_Grid"); - //gridBuilder->writeArrows("E:/temp/TaylorGreenVortex/results3D/256/TGV3D_Grid_arrow"); - //SimulationFileWriter::write("E:/temp/TaylorGreenVortex/grids3D/gridTGV3D/256/", gridBuilder, FILEFORMAT::BINARY); //FILEFORMAT::ASCII - - return; - - } - - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + if (testcase == TGV) + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + { + real dx = 1.0; + // real vx = 0.049; + ////////////////////////////////////////////////////////////////////////// + //32 + gridBuilder->addCoarseGrid(-24, -2, -16, + 24, 2, 16, dx); + ////////////////////////////////////////////////////////////////////////// + gridBuilder->setPeriodicBoundaryCondition(true, true, true); + ////////////////////////////////////////////////////////////////////////// + gridBuilder->buildGrids(true); + ////////////////////////////////////////////////////////////////////////// + SPtr<Grid> grid = gridBuilder->getGrid(gridBuilder->getNumberOfLevels() - 1); + ////////////////////////////////////////////////////////////////////////// + gridBuilder->writeGridsToVtk("E:/temp/TaylorGreenVortex/results/32/TGV32turned_Grid"); + gridBuilder->writeArrows("E:/temp/TaylorGreenVortex/results/32/TGV32turned_Grid_arrow"); + ////////////////////////////////////////////////////////////////////////// + SimulationFileWriter::write("E:/temp/TaylorGreenVortex/grids/turned/gridUni48x4x32/", gridBuilder, FILEFORMAT::BINARY); + ////////////////////////////////////////////////////////////////////////// + return; + } + + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + if (testcase == TGV3D) + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + { + const real PI = 3.141592653589793238462643383279; + + real dx = 2.0 * PI / 32.0; // 32^3 nodes + //real dx = 2.0 * PI / 64.0; // 64^3 nodes + //real dx = 2.0 * PI / 128.0; // 128^3 nodes + //real dx = 2.0 * PI / 256.0; // 128^3 nodes + // real vx = 0.049; + + gridBuilder->addCoarseGrid(-PI, -PI, -PI, + PI, PI, PI, dx); + + gridBuilder->setPeriodicBoundaryCondition(true, true, true); + + gridBuilder->buildGrids(true); // buildGrids() has to be called before setting the BCs!!!! + + ////////////////////////////////////////////////////////////////////////// + SPtr<Grid> grid = gridBuilder->getGrid(gridBuilder->getNumberOfLevels() - 1); + ////////////////////////////////////////////////////////////////////////// + //32 + gridBuilder->writeGridsToVtk("E:/temp/TaylorGreenVortex/results3D/32/TGV3D_Grid"); + gridBuilder->writeArrows("E:/temp/TaylorGreenVortex/results3D/32/TGV3D_Grid_arrow"); + SimulationFileWriter::write("E:/temp/TaylorGreenVortex/grids3D/gridTGV3D/32/", gridBuilder, FILEFORMAT::BINARY); //FILEFORMAT::ASCII + //256 + //gridBuilder->writeGridsToVtk("E:/temp/TaylorGreenVortex/results3D/256/TGV3D_Grid"); + //gridBuilder->writeArrows("E:/temp/TaylorGreenVortex/results3D/256/TGV3D_Grid_arrow"); + //SimulationFileWriter::write("E:/temp/TaylorGreenVortex/grids3D/gridTGV3D/256/", gridBuilder, FILEFORMAT::BINARY); //FILEFORMAT::ASCII + + return; + + } + + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// if( testcase == SphereTest) ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// { @@ -461,12 +461,12 @@ void runVirtualFluids(const vf::basics::ConfigurationFile &config) if( testcase == DLC ) ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// { - real velocityRatio = 594.093427; + real velocityRatio = 594.093427; - real dx = 0.2; - real vx = 0.065272188; + real dx = 0.2; + real vx = 0.065272188; - real z0 = 0.24395 + 0.5*dx; + real z0 = 0.24395 + 0.5*dx; std::vector<uint> ignorePatches = { 152, 153, 154 }; @@ -544,9 +544,9 @@ void runVirtualFluids(const vf::basics::ConfigurationFile &config) real wheelsRadius = 0.318; - real wheelRotationFrequency = 1170.74376 / 60.0; + real wheelRotationFrequency = 1170.74376 / 60.0; - real wheelTangentialVelocity = -2.0 * M_PI * wheelsRadius * wheelRotationFrequency / velocityRatio; + real wheelTangentialVelocity = -2.0 * M_PI * wheelsRadius * wheelRotationFrequency / velocityRatio; std::vector<uint> frontWheelPatches = { 71, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 159 }; std::vector<uint> rearWheelPatches = { 82, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 160 }; @@ -554,13 +554,13 @@ void runVirtualFluids(const vf::basics::ConfigurationFile &config) for( uint patch : frontWheelPatches ){ gridBuilder->getGeometryBoundaryCondition(gridBuilder->getNumberOfLevels() - 1)->setTangentialVelocityForPatch( grid, patch, wheelsFrontX, -2.0, wheelsFrontZ, wheelsFrontX, 2.0, wheelsFrontZ, - wheelTangentialVelocity, wheelsRadius); + wheelTangentialVelocity, wheelsRadius); } for( uint patch : rearWheelPatches ){ gridBuilder->getGeometryBoundaryCondition(gridBuilder->getNumberOfLevels() - 1)->setTangentialVelocityForPatch( grid, patch, wheelsRearX , -2.0, wheelsRearZ , wheelsRearX , 2.0, wheelsRearZ , - wheelTangentialVelocity, wheelsRadius); + wheelTangentialVelocity, wheelsRadius); } ////////////////////////////////////////////////////////////////////////// diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Simulation/ShearWave/LogFileData/ShearWaveLogFileData.h b/apps/gpu/tests/NumericalTestPostProcessing/Simulation/ShearWave/LogFileData/ShearWaveLogFileData.h index 83678dc864e2d3b75daa0fbe12e43a7ee4c230f1..ea7b3f616c42d140ee4f5a1bf479ed18b41aac98 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Simulation/ShearWave/LogFileData/ShearWaveLogFileData.h +++ b/apps/gpu/tests/NumericalTestPostProcessing/Simulation/ShearWave/LogFileData/ShearWaveLogFileData.h @@ -6,8 +6,8 @@ class ShearWaveLogFileData { public: - virtual std::vector<int> getL0() = 0; - virtual std::vector<double> getUx() = 0; - virtual std::vector<double> getUz() = 0; + virtual std::vector<int> getL0() = 0; + virtual std::vector<double> getUx() = 0; + virtual std::vector<double> getUz() = 0; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Simulation/ShearWave/LogFileData/ShearWaveLogFileDataImp.cpp b/apps/gpu/tests/NumericalTestPostProcessing/Simulation/ShearWave/LogFileData/ShearWaveLogFileDataImp.cpp index c46108a6c104622094c5d47ee231bc9070eb85fe..a323fe808b464cb151f48da2d43f25ee5bf47856 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Simulation/ShearWave/LogFileData/ShearWaveLogFileDataImp.cpp +++ b/apps/gpu/tests/NumericalTestPostProcessing/Simulation/ShearWave/LogFileData/ShearWaveLogFileDataImp.cpp @@ -2,37 +2,37 @@ std::shared_ptr<ShearWaveLogFileDataImp> ShearWaveLogFileDataImp::getNewInstance() { - return std::shared_ptr<ShearWaveLogFileDataImp>(new ShearWaveLogFileDataImp()); + return std::shared_ptr<ShearWaveLogFileDataImp>(new ShearWaveLogFileDataImp()); } std::vector<int> ShearWaveLogFileDataImp::getL0() { - return l0; + return l0; } std::vector<double> ShearWaveLogFileDataImp::getUx() { - return ux; + return ux; } std::vector<double> ShearWaveLogFileDataImp::getUz() { - return uz; + return uz; } void ShearWaveLogFileDataImp::setL0(std::vector<int> l0) { - this->l0 = l0; + this->l0 = l0; } void ShearWaveLogFileDataImp::setUx(std::vector<double> ux) { - this->ux = ux; + this->ux = ux; } void ShearWaveLogFileDataImp::setUz(std::vector<double> uz) { - this->uz = uz; + this->uz = uz; } ShearWaveLogFileDataImp::ShearWaveLogFileDataImp() diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Simulation/ShearWave/LogFileData/ShearWaveLogFileDataImp.h b/apps/gpu/tests/NumericalTestPostProcessing/Simulation/ShearWave/LogFileData/ShearWaveLogFileDataImp.h index a8f3a22dcbc8f4282e3a3590d30d860bae050ce1..89e029ada0f826ae4a0d12f7246b5dc4faa2ecbf 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Simulation/ShearWave/LogFileData/ShearWaveLogFileDataImp.h +++ b/apps/gpu/tests/NumericalTestPostProcessing/Simulation/ShearWave/LogFileData/ShearWaveLogFileDataImp.h @@ -8,23 +8,23 @@ class ShearWaveLogFileDataImp : public ShearWaveLogFileData { public: - static std::shared_ptr<ShearWaveLogFileDataImp> getNewInstance(); + static std::shared_ptr<ShearWaveLogFileDataImp> getNewInstance(); - std::vector<int> getL0(); - std::vector<double> getUx(); - std::vector<double> getUz(); + std::vector<int> getL0(); + std::vector<double> getUx(); + std::vector<double> getUz(); - void setL0(std::vector<int> l0); - void setUx(std::vector<double> ux); - void setUz(std::vector<double> amp); + void setL0(std::vector<int> l0); + void setUx(std::vector<double> ux); + void setUz(std::vector<double> amp); - ~ShearWaveLogFileDataImp(); + ~ShearWaveLogFileDataImp(); private: - ShearWaveLogFileDataImp(); + ShearWaveLogFileDataImp(); - std::vector<int> l0; - std::vector<double> ux; - std::vector<double> uz; + std::vector<int> l0; + std::vector<double> ux; + std::vector<double> uz; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Simulation/ShearWave/LogFileDataAssistantStrategy/ShearWaveLogFileDataAssistantStrategy.cpp b/apps/gpu/tests/NumericalTestPostProcessing/Simulation/ShearWave/LogFileDataAssistantStrategy/ShearWaveLogFileDataAssistantStrategy.cpp index d44ca84bd01cdddf41b1a98148595cbdb99327e8..3c792fa765580a2bca94518fca11fec2568e0eb3 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Simulation/ShearWave/LogFileDataAssistantStrategy/ShearWaveLogFileDataAssistantStrategy.cpp +++ b/apps/gpu/tests/NumericalTestPostProcessing/Simulation/ShearWave/LogFileDataAssistantStrategy/ShearWaveLogFileDataAssistantStrategy.cpp @@ -5,27 +5,27 @@ std::shared_ptr<LogFileDataAssistantStrategy> ShearWaveLogFileDataAssistantStrategy::getNewInstance() { - return std::shared_ptr<LogFileDataAssistantStrategy>(new ShearWaveLogFileDataAssistantStrategy()); + return std::shared_ptr<LogFileDataAssistantStrategy>(new ShearWaveLogFileDataAssistantStrategy()); } std::string ShearWaveLogFileDataAssistantStrategy::getSimulationName() { - return simName; + return simName; } bool ShearWaveLogFileDataAssistantStrategy::checkSimulationParameter(std::shared_ptr<LogFileData> logFileData1, std::shared_ptr<LogFileData> logFileData2) { - if (!equalDouble(logFileData1->getShearWaveLogFileData()->getUx().at(0), logFileData2->getShearWaveLogFileData()->getUx().at(0))) - return false; - if (!equalDouble(logFileData1->getShearWaveLogFileData()->getUz().at(0), logFileData2->getShearWaveLogFileData()->getUz().at(0))) - return false; - if (logFileData1->getShearWaveLogFileData()->getL0().at(0) != logFileData2->getShearWaveLogFileData()->getL0().at(0)) - return false; + if (!equalDouble(logFileData1->getShearWaveLogFileData()->getUx().at(0), logFileData2->getShearWaveLogFileData()->getUx().at(0))) + return false; + if (!equalDouble(logFileData1->getShearWaveLogFileData()->getUz().at(0), logFileData2->getShearWaveLogFileData()->getUz().at(0))) + return false; + if (logFileData1->getShearWaveLogFileData()->getL0().at(0) != logFileData2->getShearWaveLogFileData()->getL0().at(0)) + return false; - return true; + return true; } ShearWaveLogFileDataAssistantStrategy::ShearWaveLogFileDataAssistantStrategy() { - this->simName = "ShearWave"; + this->simName = "ShearWave"; } diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Simulation/ShearWave/LogFileDataAssistantStrategy/ShearWaveLogFileDataAssistantStrategy.h b/apps/gpu/tests/NumericalTestPostProcessing/Simulation/ShearWave/LogFileDataAssistantStrategy/ShearWaveLogFileDataAssistantStrategy.h index b37fe71783492d12ddbd0b76789688e88dfcac22..274d7010796e6529a01aaff130dd314ecc19b5b2 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Simulation/ShearWave/LogFileDataAssistantStrategy/ShearWaveLogFileDataAssistantStrategy.h +++ b/apps/gpu/tests/NumericalTestPostProcessing/Simulation/ShearWave/LogFileDataAssistantStrategy/ShearWaveLogFileDataAssistantStrategy.h @@ -6,14 +6,14 @@ class ShearWaveLogFileDataAssistantStrategy : public LogFileDataAssistantStrategyImp { public: - static std::shared_ptr<LogFileDataAssistantStrategy> getNewInstance(); + static std::shared_ptr<LogFileDataAssistantStrategy> getNewInstance(); - std::string getSimulationName(); - bool checkSimulationParameter(std::shared_ptr<LogFileData> logFileData1, std::shared_ptr<LogFileData> logFileData2); + std::string getSimulationName(); + bool checkSimulationParameter(std::shared_ptr<LogFileData> logFileData1, std::shared_ptr<LogFileData> logFileData2); private: - ShearWaveLogFileDataAssistantStrategy(); + ShearWaveLogFileDataAssistantStrategy(); - std::string simName; + std::string simName; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Simulation/TaylorGreenVortexUx/LogFileData/TaylorGreenVortexUxLogFileData.h b/apps/gpu/tests/NumericalTestPostProcessing/Simulation/TaylorGreenVortexUx/LogFileData/TaylorGreenVortexUxLogFileData.h index 6ca76576cbff511fef2b2cf61b844f7830a0cc4f..80d6aa6e29966c458b03a66f1240b7f620e4dee0 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Simulation/TaylorGreenVortexUx/LogFileData/TaylorGreenVortexUxLogFileData.h +++ b/apps/gpu/tests/NumericalTestPostProcessing/Simulation/TaylorGreenVortexUx/LogFileData/TaylorGreenVortexUxLogFileData.h @@ -6,8 +6,8 @@ class TaylorGreenVortexUxLogFileData { public: - virtual std::vector<int> getL0() = 0; - virtual std::vector<double> getUx() = 0; - virtual std::vector<double> getAmplitude() = 0; + virtual std::vector<int> getL0() = 0; + virtual std::vector<double> getUx() = 0; + virtual std::vector<double> getAmplitude() = 0; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Simulation/TaylorGreenVortexUx/LogFileData/TaylorGreenVortexUxLogFileDataImp.cpp b/apps/gpu/tests/NumericalTestPostProcessing/Simulation/TaylorGreenVortexUx/LogFileData/TaylorGreenVortexUxLogFileDataImp.cpp index 36b5ff48f3db2a17d179a7d9553eb0ea47b1caf4..71503ec98f36b4063a6a249fc0f632303e477c64 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Simulation/TaylorGreenVortexUx/LogFileData/TaylorGreenVortexUxLogFileDataImp.cpp +++ b/apps/gpu/tests/NumericalTestPostProcessing/Simulation/TaylorGreenVortexUx/LogFileData/TaylorGreenVortexUxLogFileDataImp.cpp @@ -2,37 +2,37 @@ std::shared_ptr<TaylorGreenVortexUxLogFileDataImp> TaylorGreenVortexUxLogFileDataImp::getNewInstance() { - return std::shared_ptr<TaylorGreenVortexUxLogFileDataImp>(new TaylorGreenVortexUxLogFileDataImp()); + return std::shared_ptr<TaylorGreenVortexUxLogFileDataImp>(new TaylorGreenVortexUxLogFileDataImp()); } std::vector<int> TaylorGreenVortexUxLogFileDataImp::getL0() { - return l0; + return l0; } std::vector<double> TaylorGreenVortexUxLogFileDataImp::getUx() { - return ux; + return ux; } std::vector<double> TaylorGreenVortexUxLogFileDataImp::getAmplitude() { - return amp; + return amp; } void TaylorGreenVortexUxLogFileDataImp::setL0(std::vector<int> l0) { - this->l0 = l0; + this->l0 = l0; } void TaylorGreenVortexUxLogFileDataImp::setUx(std::vector<double> ux) { - this->ux = ux; + this->ux = ux; } void TaylorGreenVortexUxLogFileDataImp::setAmplitude(std::vector<double> amp) { - this->amp = amp; + this->amp = amp; } TaylorGreenVortexUxLogFileDataImp::TaylorGreenVortexUxLogFileDataImp() diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Simulation/TaylorGreenVortexUx/LogFileData/TaylorGreenVortexUxLogFileDataImp.h b/apps/gpu/tests/NumericalTestPostProcessing/Simulation/TaylorGreenVortexUx/LogFileData/TaylorGreenVortexUxLogFileDataImp.h index 0f41b0a0e0d2a7ba8f9dda0337eb13bd593740e2..b0cf54f654da29c334a13f79873c46bf27e362c8 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Simulation/TaylorGreenVortexUx/LogFileData/TaylorGreenVortexUxLogFileDataImp.h +++ b/apps/gpu/tests/NumericalTestPostProcessing/Simulation/TaylorGreenVortexUx/LogFileData/TaylorGreenVortexUxLogFileDataImp.h @@ -8,23 +8,23 @@ class TaylorGreenVortexUxLogFileDataImp : public TaylorGreenVortexUxLogFileData { public: - static std::shared_ptr<TaylorGreenVortexUxLogFileDataImp> getNewInstance(); + static std::shared_ptr<TaylorGreenVortexUxLogFileDataImp> getNewInstance(); - std::vector<int> getL0(); - std::vector<double> getUx(); - std::vector<double> getAmplitude(); + std::vector<int> getL0(); + std::vector<double> getUx(); + std::vector<double> getAmplitude(); - void setL0(std::vector<int> l0); - void setUx(std::vector<double> ux); - void setAmplitude(std::vector<double> amp); + void setL0(std::vector<int> l0); + void setUx(std::vector<double> ux); + void setAmplitude(std::vector<double> amp); - ~TaylorGreenVortexUxLogFileDataImp(); + ~TaylorGreenVortexUxLogFileDataImp(); private: - TaylorGreenVortexUxLogFileDataImp(); + TaylorGreenVortexUxLogFileDataImp(); - std::vector<int> l0; - std::vector<double> ux; - std::vector<double> amp; + std::vector<int> l0; + std::vector<double> ux; + std::vector<double> amp; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Simulation/TaylorGreenVortexUx/LogFileDataAssistantStrategy/TaylorGreenVortexUxLogFileDataAssistantStrategy.cpp b/apps/gpu/tests/NumericalTestPostProcessing/Simulation/TaylorGreenVortexUx/LogFileDataAssistantStrategy/TaylorGreenVortexUxLogFileDataAssistantStrategy.cpp index 803246e3bf7abf8b61cd2538571578706cbe6570..69ebb36079f923fa1ecebfee1c24cbd1b77e4887 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Simulation/TaylorGreenVortexUx/LogFileDataAssistantStrategy/TaylorGreenVortexUxLogFileDataAssistantStrategy.cpp +++ b/apps/gpu/tests/NumericalTestPostProcessing/Simulation/TaylorGreenVortexUx/LogFileDataAssistantStrategy/TaylorGreenVortexUxLogFileDataAssistantStrategy.cpp @@ -5,27 +5,27 @@ std::shared_ptr<LogFileDataAssistantStrategy> TaylorGreenVortexUxLogFileDataAssistantStrategy::getNewInstance() { - return std::shared_ptr<LogFileDataAssistantStrategy>(new TaylorGreenVortexUxLogFileDataAssistantStrategy()); + return std::shared_ptr<LogFileDataAssistantStrategy>(new TaylorGreenVortexUxLogFileDataAssistantStrategy()); } std::string TaylorGreenVortexUxLogFileDataAssistantStrategy::getSimulationName() { - return simName; + return simName; } bool TaylorGreenVortexUxLogFileDataAssistantStrategy::checkSimulationParameter(std::shared_ptr<LogFileData> logFileData1, std::shared_ptr<LogFileData> logFileData2) { - if (!equalDouble(logFileData1->getTaylorGreenVortexUxLogFileData()->getUx().at(0), logFileData2->getTaylorGreenVortexUxLogFileData()->getUx().at(0))) - return false; - if (!equalDouble(logFileData1->getTaylorGreenVortexUxLogFileData()->getAmplitude().at(0), logFileData2->getTaylorGreenVortexUxLogFileData()->getAmplitude().at(0))) - return false; - if (logFileData1->getTaylorGreenVortexUxLogFileData()->getL0().at(0) != logFileData2->getTaylorGreenVortexUxLogFileData()->getL0().at(0)) - return false; + if (!equalDouble(logFileData1->getTaylorGreenVortexUxLogFileData()->getUx().at(0), logFileData2->getTaylorGreenVortexUxLogFileData()->getUx().at(0))) + return false; + if (!equalDouble(logFileData1->getTaylorGreenVortexUxLogFileData()->getAmplitude().at(0), logFileData2->getTaylorGreenVortexUxLogFileData()->getAmplitude().at(0))) + return false; + if (logFileData1->getTaylorGreenVortexUxLogFileData()->getL0().at(0) != logFileData2->getTaylorGreenVortexUxLogFileData()->getL0().at(0)) + return false; - return true; + return true; } TaylorGreenVortexUxLogFileDataAssistantStrategy::TaylorGreenVortexUxLogFileDataAssistantStrategy() { - this->simName = "TaylorGreenVortexUx"; + this->simName = "TaylorGreenVortexUx"; } diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Simulation/TaylorGreenVortexUx/LogFileDataAssistantStrategy/TaylorGreenVortexUxLogFileDataAssistantStrategy.h b/apps/gpu/tests/NumericalTestPostProcessing/Simulation/TaylorGreenVortexUx/LogFileDataAssistantStrategy/TaylorGreenVortexUxLogFileDataAssistantStrategy.h index 850ccfc8f2741a5acfc07058db7fe9ecd7d889c9..142586b91fa079e0d5ccbf231a810e08597ac97e 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Simulation/TaylorGreenVortexUx/LogFileDataAssistantStrategy/TaylorGreenVortexUxLogFileDataAssistantStrategy.h +++ b/apps/gpu/tests/NumericalTestPostProcessing/Simulation/TaylorGreenVortexUx/LogFileDataAssistantStrategy/TaylorGreenVortexUxLogFileDataAssistantStrategy.h @@ -6,14 +6,14 @@ class TaylorGreenVortexUxLogFileDataAssistantStrategy : public LogFileDataAssistantStrategyImp { public: - static std::shared_ptr<LogFileDataAssistantStrategy> getNewInstance(); + static std::shared_ptr<LogFileDataAssistantStrategy> getNewInstance(); - std::string getSimulationName(); - bool checkSimulationParameter(std::shared_ptr<LogFileData> logFileData1, std::shared_ptr<LogFileData> logFileData2); + std::string getSimulationName(); + bool checkSimulationParameter(std::shared_ptr<LogFileData> logFileData1, std::shared_ptr<LogFileData> logFileData2); private: - TaylorGreenVortexUxLogFileDataAssistantStrategy(); + TaylorGreenVortexUxLogFileDataAssistantStrategy(); - std::string simName; + std::string simName; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Simulation/TaylorGreenVortexUz/LogFileData/TaylorGreenVortexUzLogFileData.h b/apps/gpu/tests/NumericalTestPostProcessing/Simulation/TaylorGreenVortexUz/LogFileData/TaylorGreenVortexUzLogFileData.h index 91b593da77b2b5cccb279a4bf6c9a8f12e6b6315..785ab668a11e090a16865f3baf21fd4515815def 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Simulation/TaylorGreenVortexUz/LogFileData/TaylorGreenVortexUzLogFileData.h +++ b/apps/gpu/tests/NumericalTestPostProcessing/Simulation/TaylorGreenVortexUz/LogFileData/TaylorGreenVortexUzLogFileData.h @@ -6,8 +6,8 @@ class TaylorGreenVortexUzLogFileData { public: - virtual std::vector<int> getL0() = 0; - virtual std::vector<double> getUz() = 0; - virtual std::vector<double> getAmplitude() = 0; + virtual std::vector<int> getL0() = 0; + virtual std::vector<double> getUz() = 0; + virtual std::vector<double> getAmplitude() = 0; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Simulation/TaylorGreenVortexUz/LogFileData/TaylorGreenVortexUzLogFileDataImp.cpp b/apps/gpu/tests/NumericalTestPostProcessing/Simulation/TaylorGreenVortexUz/LogFileData/TaylorGreenVortexUzLogFileDataImp.cpp index 79ebda156183b18b560a1bb652ecfce022c6b4d8..df95d3b054742e03c6ea962b713097801aac7f89 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Simulation/TaylorGreenVortexUz/LogFileData/TaylorGreenVortexUzLogFileDataImp.cpp +++ b/apps/gpu/tests/NumericalTestPostProcessing/Simulation/TaylorGreenVortexUz/LogFileData/TaylorGreenVortexUzLogFileDataImp.cpp @@ -2,37 +2,37 @@ std::shared_ptr<TaylorGreenVortexUzLogFileDataImp> TaylorGreenVortexUzLogFileDataImp::getNewInstance() { - return std::shared_ptr<TaylorGreenVortexUzLogFileDataImp>(new TaylorGreenVortexUzLogFileDataImp()); + return std::shared_ptr<TaylorGreenVortexUzLogFileDataImp>(new TaylorGreenVortexUzLogFileDataImp()); } std::vector<int> TaylorGreenVortexUzLogFileDataImp::getL0() { - return l0; + return l0; } std::vector<double> TaylorGreenVortexUzLogFileDataImp::getUz() { - return ux; + return ux; } std::vector<double> TaylorGreenVortexUzLogFileDataImp::getAmplitude() { - return amp; + return amp; } void TaylorGreenVortexUzLogFileDataImp::setL0(std::vector<int> l0) { - this->l0 = l0; + this->l0 = l0; } void TaylorGreenVortexUzLogFileDataImp::setUz(std::vector<double> ux) { - this->ux = ux; + this->ux = ux; } void TaylorGreenVortexUzLogFileDataImp::setAmplitude(std::vector<double> amp) { - this->amp = amp; + this->amp = amp; } TaylorGreenVortexUzLogFileDataImp::TaylorGreenVortexUzLogFileDataImp() diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Simulation/TaylorGreenVortexUz/LogFileData/TaylorGreenVortexUzLogFileDataImp.h b/apps/gpu/tests/NumericalTestPostProcessing/Simulation/TaylorGreenVortexUz/LogFileData/TaylorGreenVortexUzLogFileDataImp.h index 90eea344794e8dcad179de6923a6dc07156ef8bb..bcccba30eade18ebe40c756af0e5e1f94812b8d8 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Simulation/TaylorGreenVortexUz/LogFileData/TaylorGreenVortexUzLogFileDataImp.h +++ b/apps/gpu/tests/NumericalTestPostProcessing/Simulation/TaylorGreenVortexUz/LogFileData/TaylorGreenVortexUzLogFileDataImp.h @@ -8,23 +8,23 @@ class TaylorGreenVortexUzLogFileDataImp : public TaylorGreenVortexUzLogFileData { public: - static std::shared_ptr<TaylorGreenVortexUzLogFileDataImp> getNewInstance(); + static std::shared_ptr<TaylorGreenVortexUzLogFileDataImp> getNewInstance(); - std::vector<int> getL0(); - std::vector<double> getUz(); - std::vector<double> getAmplitude(); + std::vector<int> getL0(); + std::vector<double> getUz(); + std::vector<double> getAmplitude(); - void setL0(std::vector<int> l0); - void setUz(std::vector<double> ux); - void setAmplitude(std::vector<double> amp); + void setL0(std::vector<int> l0); + void setUz(std::vector<double> ux); + void setAmplitude(std::vector<double> amp); - ~TaylorGreenVortexUzLogFileDataImp(); + ~TaylorGreenVortexUzLogFileDataImp(); private: - TaylorGreenVortexUzLogFileDataImp(); + TaylorGreenVortexUzLogFileDataImp(); - std::vector<int> l0; - std::vector<double> ux; - std::vector<double> amp; + std::vector<int> l0; + std::vector<double> ux; + std::vector<double> amp; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Simulation/TaylorGreenVortexUz/LogFileDataAssistantStrategy/TaylorGreenVortexUzLogFileDataAssistantStrategy.cpp b/apps/gpu/tests/NumericalTestPostProcessing/Simulation/TaylorGreenVortexUz/LogFileDataAssistantStrategy/TaylorGreenVortexUzLogFileDataAssistantStrategy.cpp index 3ebb5b3da273c7eb45320a50ac70eb1cebc43792..4267e5d9fb382ede6381ed570f44f77cbed1d676 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Simulation/TaylorGreenVortexUz/LogFileDataAssistantStrategy/TaylorGreenVortexUzLogFileDataAssistantStrategy.cpp +++ b/apps/gpu/tests/NumericalTestPostProcessing/Simulation/TaylorGreenVortexUz/LogFileDataAssistantStrategy/TaylorGreenVortexUzLogFileDataAssistantStrategy.cpp @@ -5,27 +5,27 @@ std::shared_ptr<LogFileDataAssistantStrategy> TaylorGreenVortexUzLogFileDataAssistantStrategy::getNewInstance() { - return std::shared_ptr<LogFileDataAssistantStrategy>(new TaylorGreenVortexUzLogFileDataAssistantStrategy()); + return std::shared_ptr<LogFileDataAssistantStrategy>(new TaylorGreenVortexUzLogFileDataAssistantStrategy()); } std::string TaylorGreenVortexUzLogFileDataAssistantStrategy::getSimulationName() { - return simName; + return simName; } bool TaylorGreenVortexUzLogFileDataAssistantStrategy::checkSimulationParameter(std::shared_ptr<LogFileData> logFileData1, std::shared_ptr<LogFileData> logFileData2) { - if (!equalDouble(logFileData1->getTaylorGreenVortexUzLogFileData()->getUz().at(0), logFileData2->getTaylorGreenVortexUzLogFileData()->getUz().at(0))) - return false; - if (!equalDouble(logFileData1->getTaylorGreenVortexUzLogFileData()->getAmplitude().at(0), logFileData2->getTaylorGreenVortexUzLogFileData()->getAmplitude().at(0))) - return false; - if (logFileData1->getTaylorGreenVortexUzLogFileData()->getL0().at(0) != logFileData2->getTaylorGreenVortexUzLogFileData()->getL0().at(0)) - return false; + if (!equalDouble(logFileData1->getTaylorGreenVortexUzLogFileData()->getUz().at(0), logFileData2->getTaylorGreenVortexUzLogFileData()->getUz().at(0))) + return false; + if (!equalDouble(logFileData1->getTaylorGreenVortexUzLogFileData()->getAmplitude().at(0), logFileData2->getTaylorGreenVortexUzLogFileData()->getAmplitude().at(0))) + return false; + if (logFileData1->getTaylorGreenVortexUzLogFileData()->getL0().at(0) != logFileData2->getTaylorGreenVortexUzLogFileData()->getL0().at(0)) + return false; - return true; + return true; } TaylorGreenVortexUzLogFileDataAssistantStrategy::TaylorGreenVortexUzLogFileDataAssistantStrategy() { - this->simName = "TaylorGreenVortexUz"; + this->simName = "TaylorGreenVortexUz"; } diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Simulation/TaylorGreenVortexUz/LogFileDataAssistantStrategy/TaylorGreenVortexUzLogFileDataAssistantStrategy.h b/apps/gpu/tests/NumericalTestPostProcessing/Simulation/TaylorGreenVortexUz/LogFileDataAssistantStrategy/TaylorGreenVortexUzLogFileDataAssistantStrategy.h index 86c2b1658d2cca62d7f00076277f3c9d20e571e5..a4a4d444b38c55d04406678e31b68f40eb89ef28 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Simulation/TaylorGreenVortexUz/LogFileDataAssistantStrategy/TaylorGreenVortexUzLogFileDataAssistantStrategy.h +++ b/apps/gpu/tests/NumericalTestPostProcessing/Simulation/TaylorGreenVortexUz/LogFileDataAssistantStrategy/TaylorGreenVortexUzLogFileDataAssistantStrategy.h @@ -6,14 +6,14 @@ class TaylorGreenVortexUzLogFileDataAssistantStrategy : public LogFileDataAssistantStrategyImp { public: - static std::shared_ptr<LogFileDataAssistantStrategy> getNewInstance(); + static std::shared_ptr<LogFileDataAssistantStrategy> getNewInstance(); - std::string getSimulationName(); - bool checkSimulationParameter(std::shared_ptr<LogFileData> logFileData1, std::shared_ptr<LogFileData> logFileData2); + std::string getSimulationName(); + bool checkSimulationParameter(std::shared_ptr<LogFileData> logFileData1, std::shared_ptr<LogFileData> logFileData2); private: - TaylorGreenVortexUzLogFileDataAssistantStrategy(); + TaylorGreenVortexUzLogFileDataAssistantStrategy(); - std::string simName; + std::string simName; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Tests/L2Norm/LogFileData/L2NormLogFileData.h b/apps/gpu/tests/NumericalTestPostProcessing/Tests/L2Norm/LogFileData/L2NormLogFileData.h index d3c004f40ef7260981d24d2a36facfdb8bcf6db5..cf9049466f61b98120468b238591c385e3b2dcbb 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Tests/L2Norm/LogFileData/L2NormLogFileData.h +++ b/apps/gpu/tests/NumericalTestPostProcessing/Tests/L2Norm/LogFileData/L2NormLogFileData.h @@ -7,13 +7,13 @@ class L2NormLogFileData { public: - virtual std::vector<double> getBasicGridLengths() = 0; - virtual std::string getDataToCalc() = 0; - virtual std::string getNormalizeData() = 0; - virtual int getBasicTimeStep() = 0; - virtual int getDivergentTimeStep() = 0; - virtual std::vector<double> getL2NormForBasicTimeStep() = 0; - virtual std::vector<double> getL2NormForDivergentTimeStep() = 0; - virtual std::vector<double> getL2NormDiff() = 0; + virtual std::vector<double> getBasicGridLengths() = 0; + virtual std::string getDataToCalc() = 0; + virtual std::string getNormalizeData() = 0; + virtual int getBasicTimeStep() = 0; + virtual int getDivergentTimeStep() = 0; + virtual std::vector<double> getL2NormForBasicTimeStep() = 0; + virtual std::vector<double> getL2NormForDivergentTimeStep() = 0; + virtual std::vector<double> getL2NormDiff() = 0; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Tests/L2Norm/LogFileData/L2NormLogFileDataImp.cpp b/apps/gpu/tests/NumericalTestPostProcessing/Tests/L2Norm/LogFileData/L2NormLogFileDataImp.cpp index 5d2cb2a964d010a8eefc5f787807db386e007049..317fd65d777be7f507db7ff76221cccf7ae5ca9f 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Tests/L2Norm/LogFileData/L2NormLogFileDataImp.cpp +++ b/apps/gpu/tests/NumericalTestPostProcessing/Tests/L2Norm/LogFileData/L2NormLogFileDataImp.cpp @@ -2,87 +2,87 @@ std::shared_ptr<L2NormLogFileDataImp> L2NormLogFileDataImp::getNewInstance() { - return std::shared_ptr<L2NormLogFileDataImp>(new L2NormLogFileDataImp()); + return std::shared_ptr<L2NormLogFileDataImp>(new L2NormLogFileDataImp()); } std::vector<double> L2NormLogFileDataImp::getBasicGridLengths() { - return basicGridLengths; + return basicGridLengths; } std::string L2NormLogFileDataImp::getDataToCalc() { - return dataToCalc; + return dataToCalc; } std::string L2NormLogFileDataImp::getNormalizeData() { - return normalizeData; + return normalizeData; } int L2NormLogFileDataImp::getBasicTimeStep() { - return basicTimeStep; + return basicTimeStep; } int L2NormLogFileDataImp::getDivergentTimeStep() { - return divergentTimeStep; + return divergentTimeStep; } std::vector<double> L2NormLogFileDataImp::getL2NormForBasicTimeStep() { - return l2NormForBasicTimeStep; + return l2NormForBasicTimeStep; } std::vector<double> L2NormLogFileDataImp::getL2NormForDivergentTimeStep() { - return l2NormForDivergentTimeStep; + return l2NormForDivergentTimeStep; } std::vector<double> L2NormLogFileDataImp::getL2NormDiff() { - return l2NormDiff; + return l2NormDiff; } void L2NormLogFileDataImp::setBasicGridLengths(std::vector<double> basicGridLengths) { - this->basicGridLengths = basicGridLengths; + this->basicGridLengths = basicGridLengths; } void L2NormLogFileDataImp::setDataToCalc(std::string dataToCalc) { - this->dataToCalc = dataToCalc; + this->dataToCalc = dataToCalc; } void L2NormLogFileDataImp::setNormalizeData(std::string normalizeData) { - this->normalizeData = normalizeData; + this->normalizeData = normalizeData; } void L2NormLogFileDataImp::setBasicTimeStep(int basicTimeStep) { - this->basicTimeStep = basicTimeStep; + this->basicTimeStep = basicTimeStep; } void L2NormLogFileDataImp::setDivergentTimeStep(int divergentTimeStep) { - this->divergentTimeStep = divergentTimeStep; + this->divergentTimeStep = divergentTimeStep; } void L2NormLogFileDataImp::setL2NormForBasicTimeStep(std::vector<double> l2NormForBasicTimeStep) { - this->l2NormForBasicTimeStep = l2NormForBasicTimeStep; + this->l2NormForBasicTimeStep = l2NormForBasicTimeStep; } void L2NormLogFileDataImp::setL2NormForDivergentTimeStep(std::vector<double> l2NormForDivergentTimeStep) { - this->l2NormForDivergentTimeStep = l2NormForDivergentTimeStep; + this->l2NormForDivergentTimeStep = l2NormForDivergentTimeStep; } void L2NormLogFileDataImp::setL2NormDiff(std::vector<double> l2NormDiff) { - this->l2NormDiff = l2NormDiff; + this->l2NormDiff = l2NormDiff; } L2NormLogFileDataImp::L2NormLogFileDataImp() diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Tests/L2Norm/LogFileData/L2NormLogFileDataImp.h b/apps/gpu/tests/NumericalTestPostProcessing/Tests/L2Norm/LogFileData/L2NormLogFileDataImp.h index e99d83b81c48002081b8d37f9082d1d7a7783e6c..abccee47ad4ba5334790cb0f074674ac0f216ce5 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Tests/L2Norm/LogFileData/L2NormLogFileDataImp.h +++ b/apps/gpu/tests/NumericalTestPostProcessing/Tests/L2Norm/LogFileData/L2NormLogFileDataImp.h @@ -8,38 +8,38 @@ class L2NormLogFileDataImp : public L2NormLogFileData { public: - static std::shared_ptr<L2NormLogFileDataImp> getNewInstance(); - - std::vector<double> getBasicGridLengths(); - std::string getDataToCalc(); - std::string getNormalizeData(); - int getBasicTimeStep(); - int getDivergentTimeStep(); - std::vector<double> getL2NormForBasicTimeStep(); - std::vector<double> getL2NormForDivergentTimeStep(); - std::vector<double> getL2NormDiff(); - - void setBasicGridLengths(std::vector<double> basicGridLengths); - void setDataToCalc(std::string dataToCalc); - void setNormalizeData(std::string normalizeData); - void setBasicTimeStep(int basicTimeStep); - void setDivergentTimeStep(int divergentTimeStep); - void setL2NormForBasicTimeStep(std::vector<double> l2NormForBasicTimeStep); - void setL2NormForDivergentTimeStep(std::vector<double> l2NormForDivergentTimeStep); - void setL2NormDiff(std::vector<double> l2NormDiff); - - ~L2NormLogFileDataImp(); + static std::shared_ptr<L2NormLogFileDataImp> getNewInstance(); + + std::vector<double> getBasicGridLengths(); + std::string getDataToCalc(); + std::string getNormalizeData(); + int getBasicTimeStep(); + int getDivergentTimeStep(); + std::vector<double> getL2NormForBasicTimeStep(); + std::vector<double> getL2NormForDivergentTimeStep(); + std::vector<double> getL2NormDiff(); + + void setBasicGridLengths(std::vector<double> basicGridLengths); + void setDataToCalc(std::string dataToCalc); + void setNormalizeData(std::string normalizeData); + void setBasicTimeStep(int basicTimeStep); + void setDivergentTimeStep(int divergentTimeStep); + void setL2NormForBasicTimeStep(std::vector<double> l2NormForBasicTimeStep); + void setL2NormForDivergentTimeStep(std::vector<double> l2NormForDivergentTimeStep); + void setL2NormDiff(std::vector<double> l2NormDiff); + + ~L2NormLogFileDataImp(); private: - L2NormLogFileDataImp(); - - std::vector<double> basicGridLengths; - std::string dataToCalc; - std::string normalizeData; - int basicTimeStep; - int divergentTimeStep; - std::vector<double> l2NormForBasicTimeStep; - std::vector<double> l2NormForDivergentTimeStep; - std::vector<double> l2NormDiff; + L2NormLogFileDataImp(); + + std::vector<double> basicGridLengths; + std::string dataToCalc; + std::string normalizeData; + int basicTimeStep; + int divergentTimeStep; + std::vector<double> l2NormForBasicTimeStep; + std::vector<double> l2NormForDivergentTimeStep; + std::vector<double> l2NormDiff; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Tests/L2Norm/MathematicaAssistant/L2NormMathematicaAssistant.cpp b/apps/gpu/tests/NumericalTestPostProcessing/Tests/L2Norm/MathematicaAssistant/L2NormMathematicaAssistant.cpp index c8f5b363ac2eed06c38bc69fcf81f4d70fc2879e..416d17b7cabef0a32368fedd214c25482150f16d 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Tests/L2Norm/MathematicaAssistant/L2NormMathematicaAssistant.cpp +++ b/apps/gpu/tests/NumericalTestPostProcessing/Tests/L2Norm/MathematicaAssistant/L2NormMathematicaAssistant.cpp @@ -9,16 +9,16 @@ std::shared_ptr<L2NormMathematicaAssistant> L2NormMathematicaAssistant::getNewInstance(std::shared_ptr<MathematicaFunctionFactory> functionFactory) { - return std::shared_ptr<L2NormMathematicaAssistant>(new L2NormMathematicaAssistant(functionFactory)); + return std::shared_ptr<L2NormMathematicaAssistant>(new L2NormMathematicaAssistant(functionFactory)); } void L2NormMathematicaAssistant::makeMathematicaOutput(std::shared_ptr<LogFileDataGroup> logFileData, std::shared_ptr<MathematicaFile> aMathmaticaFile) { - std::shared_ptr<SortedDataL2Norm> mySortedData = sortLogFileData(logFileData); + std::shared_ptr<SortedDataL2Norm> mySortedData = sortLogFileData(logFileData); - makeL2NormDiffMathematicaOutput(aMathmaticaFile, mySortedData); - makeL2NormBasicTimeStepMathematicaOutput(aMathmaticaFile, mySortedData); - makeL2NormDivergentTimeStepMathematicaOutput(aMathmaticaFile, mySortedData); + makeL2NormDiffMathematicaOutput(aMathmaticaFile, mySortedData); + makeL2NormBasicTimeStepMathematicaOutput(aMathmaticaFile, mySortedData); + makeL2NormDivergentTimeStepMathematicaOutput(aMathmaticaFile, mySortedData); } L2NormMathematicaAssistant::L2NormMathematicaAssistant(std::shared_ptr<MathematicaFunctionFactory> functionFactory) : MathematicaAssistantImp(functionFactory) @@ -27,145 +27,145 @@ L2NormMathematicaAssistant::L2NormMathematicaAssistant(std::shared_ptr<Mathemati bool L2NormMathematicaAssistant::checkTestParameter(std::shared_ptr<L2NormLogFileData> logFileData1, std::shared_ptr<L2NormLogFileData> logFileData2) { - if (logFileData1->getDataToCalc() != logFileData2->getDataToCalc()) - return false; - if (logFileData1->getNormalizeData() != logFileData2->getNormalizeData()) - return false; - if (logFileData1->getBasicTimeStep() != logFileData2->getBasicTimeStep()) - return false; - if (logFileData1->getDivergentTimeStep() != logFileData2->getDivergentTimeStep()) - return false; + if (logFileData1->getDataToCalc() != logFileData2->getDataToCalc()) + return false; + if (logFileData1->getNormalizeData() != logFileData2->getNormalizeData()) + return false; + if (logFileData1->getBasicTimeStep() != logFileData2->getBasicTimeStep()) + return false; + if (logFileData1->getDivergentTimeStep() != logFileData2->getDivergentTimeStep()) + return false; - return true; + return true; } std::shared_ptr<SortedDataL2Norm> L2NormMathematicaAssistant::sortLogFileData(std::shared_ptr<LogFileDataGroup> logFileData) { - std::vector<std::vector<std::shared_ptr<L2NormLogFileData> > > testLogFileData; - std::vector<std::vector<std::string> > basicListNames; - for (int i = 0; i < logFileData->getLogFileData(0)->getL2NormLogFileData().size(); i++) { - std::vector<std::shared_ptr<L2NormLogFileData> > aTestLogFileDataGroup; - aTestLogFileDataGroup.push_back(logFileData->getLogFileData(0)->getL2NormLogFileData().at(i)); - std::vector<std::string> aListNameGroup; - aListNameGroup.push_back(logFileData->getLogFileData(0)->getSimulationSigniture()); - basicListNames.push_back(aListNameGroup); - } - for (int i = 0; i < logFileData->getGroupSize(); i++) { - for (int j = 0; j < logFileData->getLogFileData(i)->getL2NormLogFileData().size(); j++) { - std::string dataToCalc = logFileData->getLogFileData(i)->getL2NormLogFileData().at(j)->getDataToCalc(); - bool added = false; - for (int k = 0; k < testLogFileData.size(); k++) { - if (checkTestParameter(logFileData->getLogFileData(i)->getL2NormLogFileData().at(j), testLogFileData.at(k).at(0))) { - testLogFileData.at(k).push_back(logFileData->getLogFileData(i)->getL2NormLogFileData().at(j)); - basicListNames.at(k).push_back(logFileData->getLogFileData(i)->getSimulationSigniture()); - added = true; - } - } - if (!added) { - std::vector<std::shared_ptr<L2NormLogFileData> > aTestLogFileDataGroup; - aTestLogFileDataGroup.push_back(logFileData->getLogFileData(i)->getL2NormLogFileData().at(j)); - testLogFileData.push_back(aTestLogFileDataGroup); - std::vector<std::string> aListNameGroup; - aListNameGroup.push_back(logFileData->getLogFileData(i)->getSimulationSigniture()); - basicListNames.push_back(aListNameGroup); - } - } - } - std::shared_ptr<SortedDataL2Norm> mySortedData = std::shared_ptr<SortedDataL2Norm>(new SortedDataL2Norm); - mySortedData->basicListNames = basicListNames; - mySortedData->testLogFileData = testLogFileData; - - return mySortedData; + std::vector<std::vector<std::shared_ptr<L2NormLogFileData> > > testLogFileData; + std::vector<std::vector<std::string> > basicListNames; + for (int i = 0; i < logFileData->getLogFileData(0)->getL2NormLogFileData().size(); i++) { + std::vector<std::shared_ptr<L2NormLogFileData> > aTestLogFileDataGroup; + aTestLogFileDataGroup.push_back(logFileData->getLogFileData(0)->getL2NormLogFileData().at(i)); + std::vector<std::string> aListNameGroup; + aListNameGroup.push_back(logFileData->getLogFileData(0)->getSimulationSigniture()); + basicListNames.push_back(aListNameGroup); + } + for (int i = 0; i < logFileData->getGroupSize(); i++) { + for (int j = 0; j < logFileData->getLogFileData(i)->getL2NormLogFileData().size(); j++) { + std::string dataToCalc = logFileData->getLogFileData(i)->getL2NormLogFileData().at(j)->getDataToCalc(); + bool added = false; + for (int k = 0; k < testLogFileData.size(); k++) { + if (checkTestParameter(logFileData->getLogFileData(i)->getL2NormLogFileData().at(j), testLogFileData.at(k).at(0))) { + testLogFileData.at(k).push_back(logFileData->getLogFileData(i)->getL2NormLogFileData().at(j)); + basicListNames.at(k).push_back(logFileData->getLogFileData(i)->getSimulationSigniture()); + added = true; + } + } + if (!added) { + std::vector<std::shared_ptr<L2NormLogFileData> > aTestLogFileDataGroup; + aTestLogFileDataGroup.push_back(logFileData->getLogFileData(i)->getL2NormLogFileData().at(j)); + testLogFileData.push_back(aTestLogFileDataGroup); + std::vector<std::string> aListNameGroup; + aListNameGroup.push_back(logFileData->getLogFileData(i)->getSimulationSigniture()); + basicListNames.push_back(aListNameGroup); + } + } + } + std::shared_ptr<SortedDataL2Norm> mySortedData = std::shared_ptr<SortedDataL2Norm>(new SortedDataL2Norm); + mySortedData->basicListNames = basicListNames; + mySortedData->testLogFileData = testLogFileData; + + return mySortedData; } void L2NormMathematicaAssistant::makeL2NormDiffMathematicaOutput(std::shared_ptr<MathematicaFile> aMathmaticaFile, std::shared_ptr<SortedDataL2Norm> sortedData) { - for (int i = 0; i < sortedData->testLogFileData.size(); i++) { - std::vector<std::vector<double> > gridLengths; - std::vector<std::vector<double> > l2NormDiff; - std::vector<std::string> aBasicListNamesList; - for (int j = 0; j < sortedData->testLogFileData.at(i).size(); j++) { - gridLengths.push_back(sortedData->testLogFileData.at(i).at(j)->getBasicGridLengths()); - l2NormDiff.push_back(sortedData->testLogFileData.at(i).at(j)->getL2NormDiff()); - aBasicListNamesList.push_back(sortedData->basicListNames.at(i).at(j)); - } - std::vector<std::string> finalListNames = finalizeListNames(aBasicListNamesList, "L2NormDiff", sortedData->testLogFileData.at(i).at(0)->getDataToCalc(), sortedData->testLogFileData.at(i).at(0)->getNormalizeData()); - - addSecondOrderOfAccuracyRef(gridLengths, l2NormDiff, finalListNames); - addFourthOrderOfAccuracyRef(gridLengths, l2NormDiff, finalListNames); - addListLogLogPlotToMathematicaFile(aMathmaticaFile, finalListNames, gridLengths, l2NormDiff, "L[dx]", "L2NormDiff[-]"); - } + for (int i = 0; i < sortedData->testLogFileData.size(); i++) { + std::vector<std::vector<double> > gridLengths; + std::vector<std::vector<double> > l2NormDiff; + std::vector<std::string> aBasicListNamesList; + for (int j = 0; j < sortedData->testLogFileData.at(i).size(); j++) { + gridLengths.push_back(sortedData->testLogFileData.at(i).at(j)->getBasicGridLengths()); + l2NormDiff.push_back(sortedData->testLogFileData.at(i).at(j)->getL2NormDiff()); + aBasicListNamesList.push_back(sortedData->basicListNames.at(i).at(j)); + } + std::vector<std::string> finalListNames = finalizeListNames(aBasicListNamesList, "L2NormDiff", sortedData->testLogFileData.at(i).at(0)->getDataToCalc(), sortedData->testLogFileData.at(i).at(0)->getNormalizeData()); + + addSecondOrderOfAccuracyRef(gridLengths, l2NormDiff, finalListNames); + addFourthOrderOfAccuracyRef(gridLengths, l2NormDiff, finalListNames); + addListLogLogPlotToMathematicaFile(aMathmaticaFile, finalListNames, gridLengths, l2NormDiff, "L[dx]", "L2NormDiff[-]"); + } } void L2NormMathematicaAssistant::makeL2NormAllTimeStepsMathematicaOutput(std::shared_ptr<MathematicaFile> aMathmaticaFile, std::shared_ptr<SortedDataL2Norm> sortedData) { - for (int i = 0; i < sortedData->testLogFileData.size(); i++) { - std::vector<std::vector<double> > gridLengths; - std::vector<std::vector<double> > l2Norm; - std::vector<std::string> aBasicListNamesList; - std::vector<std::string> basicTimeSteps; - for (int j = 0; j < sortedData->testLogFileData.at(i).size(); j++) { - gridLengths.push_back(sortedData->testLogFileData.at(i).at(j)->getBasicGridLengths()); - gridLengths.push_back(sortedData->testLogFileData.at(i).at(j)->getBasicGridLengths()); - l2Norm.push_back(sortedData->testLogFileData.at(i).at(j)->getL2NormForBasicTimeStep()); - l2Norm.push_back(sortedData->testLogFileData.at(i).at(j)->getL2NormForDivergentTimeStep()); - aBasicListNamesList.push_back(sortedData->basicListNames.at(i).at(j)); - aBasicListNamesList.push_back(sortedData->basicListNames.at(i).at(j)); - std::ostringstream aBasicTimeStep; - aBasicTimeStep << "TimeStep" << sortedData->testLogFileData.at(i).at(j)->getBasicTimeStep(); - basicTimeSteps.push_back(aBasicTimeStep.str()); - std::ostringstream aDivTimeStep; - aDivTimeStep << "TimeStep" << sortedData->testLogFileData.at(i).at(j)->getDivergentTimeStep(); - basicTimeSteps.push_back(aDivTimeStep.str()); - } - - std::vector<std::string> finalListNamesBasic = finalizeListNames(aBasicListNamesList, "L2NormAllTimeSteps", sortedData->testLogFileData.at(i).at(0)->getDataToCalc(), sortedData->testLogFileData.at(i).at(0)->getNormalizeData(), basicTimeSteps); - - addListLogLogPlotToMathematicaFile(aMathmaticaFile, finalListNamesBasic, gridLengths, l2Norm, "L[dx]", "L2Norm[-]"); - } + for (int i = 0; i < sortedData->testLogFileData.size(); i++) { + std::vector<std::vector<double> > gridLengths; + std::vector<std::vector<double> > l2Norm; + std::vector<std::string> aBasicListNamesList; + std::vector<std::string> basicTimeSteps; + for (int j = 0; j < sortedData->testLogFileData.at(i).size(); j++) { + gridLengths.push_back(sortedData->testLogFileData.at(i).at(j)->getBasicGridLengths()); + gridLengths.push_back(sortedData->testLogFileData.at(i).at(j)->getBasicGridLengths()); + l2Norm.push_back(sortedData->testLogFileData.at(i).at(j)->getL2NormForBasicTimeStep()); + l2Norm.push_back(sortedData->testLogFileData.at(i).at(j)->getL2NormForDivergentTimeStep()); + aBasicListNamesList.push_back(sortedData->basicListNames.at(i).at(j)); + aBasicListNamesList.push_back(sortedData->basicListNames.at(i).at(j)); + std::ostringstream aBasicTimeStep; + aBasicTimeStep << "TimeStep" << sortedData->testLogFileData.at(i).at(j)->getBasicTimeStep(); + basicTimeSteps.push_back(aBasicTimeStep.str()); + std::ostringstream aDivTimeStep; + aDivTimeStep << "TimeStep" << sortedData->testLogFileData.at(i).at(j)->getDivergentTimeStep(); + basicTimeSteps.push_back(aDivTimeStep.str()); + } + + std::vector<std::string> finalListNamesBasic = finalizeListNames(aBasicListNamesList, "L2NormAllTimeSteps", sortedData->testLogFileData.at(i).at(0)->getDataToCalc(), sortedData->testLogFileData.at(i).at(0)->getNormalizeData(), basicTimeSteps); + + addListLogLogPlotToMathematicaFile(aMathmaticaFile, finalListNamesBasic, gridLengths, l2Norm, "L[dx]", "L2Norm[-]"); + } } void L2NormMathematicaAssistant::makeL2NormBasicTimeStepMathematicaOutput(std::shared_ptr<MathematicaFile> aMathmaticaFile, std::shared_ptr<SortedDataL2Norm> sortedData) { - for (int i = 0; i < sortedData->testLogFileData.size(); i++) { - std::vector<std::vector<double> > gridLengths; - std::vector<std::vector<double> > l2NormBasic; - std::vector<std::string> aBasicListNamesList; - for (int j = 0; j < sortedData->testLogFileData.at(i).size(); j++) { - gridLengths.push_back(sortedData->testLogFileData.at(i).at(j)->getBasicGridLengths()); - l2NormBasic.push_back(sortedData->testLogFileData.at(i).at(j)->getL2NormForBasicTimeStep()); - aBasicListNamesList.push_back(sortedData->basicListNames.at(i).at(j)); - } - std::ostringstream basicTimeStep; - basicTimeStep << "TimeStep" << sortedData->testLogFileData.at(i).at(0)->getBasicTimeStep(); - std::vector<std::string> finalListNamesBasic = finalizeListNames(aBasicListNamesList, "L2Norm", sortedData->testLogFileData.at(i).at(0)->getDataToCalc(), sortedData->testLogFileData.at(i).at(0)->getNormalizeData(), basicTimeStep.str()); - - addSecondOrderOfAccuracyRef(gridLengths, l2NormBasic, finalListNamesBasic); - addFourthOrderOfAccuracyRef(gridLengths, l2NormBasic, finalListNamesBasic); - addListLogLogPlotToMathematicaFile(aMathmaticaFile, finalListNamesBasic, gridLengths, l2NormBasic, "L[dx]", "L2Norm[-]"); - } + for (int i = 0; i < sortedData->testLogFileData.size(); i++) { + std::vector<std::vector<double> > gridLengths; + std::vector<std::vector<double> > l2NormBasic; + std::vector<std::string> aBasicListNamesList; + for (int j = 0; j < sortedData->testLogFileData.at(i).size(); j++) { + gridLengths.push_back(sortedData->testLogFileData.at(i).at(j)->getBasicGridLengths()); + l2NormBasic.push_back(sortedData->testLogFileData.at(i).at(j)->getL2NormForBasicTimeStep()); + aBasicListNamesList.push_back(sortedData->basicListNames.at(i).at(j)); + } + std::ostringstream basicTimeStep; + basicTimeStep << "TimeStep" << sortedData->testLogFileData.at(i).at(0)->getBasicTimeStep(); + std::vector<std::string> finalListNamesBasic = finalizeListNames(aBasicListNamesList, "L2Norm", sortedData->testLogFileData.at(i).at(0)->getDataToCalc(), sortedData->testLogFileData.at(i).at(0)->getNormalizeData(), basicTimeStep.str()); + + addSecondOrderOfAccuracyRef(gridLengths, l2NormBasic, finalListNamesBasic); + addFourthOrderOfAccuracyRef(gridLengths, l2NormBasic, finalListNamesBasic); + addListLogLogPlotToMathematicaFile(aMathmaticaFile, finalListNamesBasic, gridLengths, l2NormBasic, "L[dx]", "L2Norm[-]"); + } } void L2NormMathematicaAssistant::makeL2NormDivergentTimeStepMathematicaOutput(std::shared_ptr<MathematicaFile> aMathmaticaFile, std::shared_ptr<SortedDataL2Norm> sortedData) { - for (int i = 0; i < sortedData->testLogFileData.size(); i++) { - std::vector<std::vector<double> > gridLengths; - std::vector<std::vector<double> > l2NormDivergent; - std::vector<std::string> aBasicListNamesList; - for (int j = 0; j < sortedData->testLogFileData.at(i).size(); j++) { - gridLengths.push_back(sortedData->testLogFileData.at(i).at(j)->getBasicGridLengths()); - l2NormDivergent.push_back(sortedData->testLogFileData.at(i).at(j)->getL2NormForDivergentTimeStep()); - aBasicListNamesList.push_back(sortedData->basicListNames.at(i).at(j)); - } - std::ostringstream divTimeStep; - divTimeStep << "TimeStep" << sortedData->testLogFileData.at(i).at(0)->getDivergentTimeStep(); - std::vector<std::string> finalListNamesDiv = finalizeListNames(aBasicListNamesList, "L2Norm", sortedData->testLogFileData.at(i).at(0)->getDataToCalc(), sortedData->testLogFileData.at(i).at(0)->getNormalizeData(), divTimeStep.str()); - - addSecondOrderOfAccuracyRef(gridLengths, l2NormDivergent, finalListNamesDiv); - addFourthOrderOfAccuracyRef(gridLengths, l2NormDivergent, finalListNamesDiv); - addListLogLogPlotToMathematicaFile(aMathmaticaFile, finalListNamesDiv, gridLengths, l2NormDivergent, "L[dx]", "L2Norm[-]"); - } + for (int i = 0; i < sortedData->testLogFileData.size(); i++) { + std::vector<std::vector<double> > gridLengths; + std::vector<std::vector<double> > l2NormDivergent; + std::vector<std::string> aBasicListNamesList; + for (int j = 0; j < sortedData->testLogFileData.at(i).size(); j++) { + gridLengths.push_back(sortedData->testLogFileData.at(i).at(j)->getBasicGridLengths()); + l2NormDivergent.push_back(sortedData->testLogFileData.at(i).at(j)->getL2NormForDivergentTimeStep()); + aBasicListNamesList.push_back(sortedData->basicListNames.at(i).at(j)); + } + std::ostringstream divTimeStep; + divTimeStep << "TimeStep" << sortedData->testLogFileData.at(i).at(0)->getDivergentTimeStep(); + std::vector<std::string> finalListNamesDiv = finalizeListNames(aBasicListNamesList, "L2Norm", sortedData->testLogFileData.at(i).at(0)->getDataToCalc(), sortedData->testLogFileData.at(i).at(0)->getNormalizeData(), divTimeStep.str()); + + addSecondOrderOfAccuracyRef(gridLengths, l2NormDivergent, finalListNamesDiv); + addFourthOrderOfAccuracyRef(gridLengths, l2NormDivergent, finalListNamesDiv); + addListLogLogPlotToMathematicaFile(aMathmaticaFile, finalListNamesDiv, gridLengths, l2NormDivergent, "L[dx]", "L2Norm[-]"); + } } L2NormMathematicaAssistant::L2NormMathematicaAssistant() diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Tests/L2Norm/MathematicaAssistant/L2NormMathematicaAssistant.h b/apps/gpu/tests/NumericalTestPostProcessing/Tests/L2Norm/MathematicaAssistant/L2NormMathematicaAssistant.h index 92e38b57f985f33f40d7f55b4c8eb3f3309daa54..bd4fbeabf1506c6de83582a4bc0d773dd31959de 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Tests/L2Norm/MathematicaAssistant/L2NormMathematicaAssistant.h +++ b/apps/gpu/tests/NumericalTestPostProcessing/Tests/L2Norm/MathematicaAssistant/L2NormMathematicaAssistant.h @@ -7,30 +7,30 @@ class MathematicaFunctionFactory; class L2NormLogFileData; struct SortedDataL2Norm { - std::vector<std::vector<std::shared_ptr<L2NormLogFileData> > > testLogFileData; - std::vector<std::vector<std::string> > basicListNames; + std::vector<std::vector<std::shared_ptr<L2NormLogFileData> > > testLogFileData; + std::vector<std::vector<std::string> > basicListNames; }; class L2NormMathematicaAssistant : public MathematicaAssistantImp { public: - static std::shared_ptr<L2NormMathematicaAssistant> getNewInstance(std::shared_ptr<MathematicaFunctionFactory> functionFactory); + static std::shared_ptr<L2NormMathematicaAssistant> getNewInstance(std::shared_ptr<MathematicaFunctionFactory> functionFactory); - void makeMathematicaOutput(std::shared_ptr<LogFileDataGroup> logFileData, std::shared_ptr<MathematicaFile> aMathmaticaFile); + void makeMathematicaOutput(std::shared_ptr<LogFileDataGroup> logFileData, std::shared_ptr<MathematicaFile> aMathmaticaFile); - + private: - L2NormMathematicaAssistant(); - L2NormMathematicaAssistant(std::shared_ptr<MathematicaFunctionFactory> functionFactory); + L2NormMathematicaAssistant(); + L2NormMathematicaAssistant(std::shared_ptr<MathematicaFunctionFactory> functionFactory); - bool checkTestParameter(std::shared_ptr<L2NormLogFileData> logFileData1, std::shared_ptr<L2NormLogFileData> logFileData2); - std::shared_ptr<SortedDataL2Norm> sortLogFileData(std::shared_ptr<LogFileDataGroup> logFileData); + bool checkTestParameter(std::shared_ptr<L2NormLogFileData> logFileData1, std::shared_ptr<L2NormLogFileData> logFileData2); + std::shared_ptr<SortedDataL2Norm> sortLogFileData(std::shared_ptr<LogFileDataGroup> logFileData); - void makeL2NormDiffMathematicaOutput(std::shared_ptr<MathematicaFile> aMathmaticaFile, std::shared_ptr<SortedDataL2Norm> sortedData); - void makeL2NormAllTimeStepsMathematicaOutput(std::shared_ptr<MathematicaFile> aMathmaticaFile, std::shared_ptr<SortedDataL2Norm> sortedData); - void makeL2NormBasicTimeStepMathematicaOutput(std::shared_ptr<MathematicaFile> aMathmaticaFile, std::shared_ptr<SortedDataL2Norm> sortedData); - void makeL2NormDivergentTimeStepMathematicaOutput(std::shared_ptr<MathematicaFile> aMathmaticaFile, std::shared_ptr<SortedDataL2Norm> sortedData); + void makeL2NormDiffMathematicaOutput(std::shared_ptr<MathematicaFile> aMathmaticaFile, std::shared_ptr<SortedDataL2Norm> sortedData); + void makeL2NormAllTimeStepsMathematicaOutput(std::shared_ptr<MathematicaFile> aMathmaticaFile, std::shared_ptr<SortedDataL2Norm> sortedData); + void makeL2NormBasicTimeStepMathematicaOutput(std::shared_ptr<MathematicaFile> aMathmaticaFile, std::shared_ptr<SortedDataL2Norm> sortedData); + void makeL2NormDivergentTimeStepMathematicaOutput(std::shared_ptr<MathematicaFile> aMathmaticaFile, std::shared_ptr<SortedDataL2Norm> sortedData); - + }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Tests/L2NormBetweenKernels/LogFileData/L2NormBetweenKernelsLogFileData.h b/apps/gpu/tests/NumericalTestPostProcessing/Tests/L2NormBetweenKernels/LogFileData/L2NormBetweenKernelsLogFileData.h index 218f4777b741e4f3ebb956172341338486cf11f9..f42f493c9f51125e82e2feaeb29fb269a86976b7 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Tests/L2NormBetweenKernels/LogFileData/L2NormBetweenKernelsLogFileData.h +++ b/apps/gpu/tests/NumericalTestPostProcessing/Tests/L2NormBetweenKernels/LogFileData/L2NormBetweenKernelsLogFileData.h @@ -7,14 +7,14 @@ class L2NormBetweenKernelsLogFileData { public: - virtual std::vector<double> getBasicGridLengths() = 0; - virtual std::string getBasicKernel() = 0; - virtual std::string getDivergentKernel() = 0; - virtual std::string getDataToCalculate() = 0; - virtual int getTimeStep() = 0; - virtual std::vector<double> getL2NormForBasicKernel() = 0; - virtual std::vector<double> getL2NormForDivergentKernel() = 0; - virtual std::vector<double> getL2NormBetweenKernels() = 0; - virtual std::string getNormalizeData() = 0; + virtual std::vector<double> getBasicGridLengths() = 0; + virtual std::string getBasicKernel() = 0; + virtual std::string getDivergentKernel() = 0; + virtual std::string getDataToCalculate() = 0; + virtual int getTimeStep() = 0; + virtual std::vector<double> getL2NormForBasicKernel() = 0; + virtual std::vector<double> getL2NormForDivergentKernel() = 0; + virtual std::vector<double> getL2NormBetweenKernels() = 0; + virtual std::string getNormalizeData() = 0; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Tests/L2NormBetweenKernels/LogFileData/L2NormBetweenKernelsLogFileDataImp.cpp b/apps/gpu/tests/NumericalTestPostProcessing/Tests/L2NormBetweenKernels/LogFileData/L2NormBetweenKernelsLogFileDataImp.cpp index cbe8a52088377a16b27f45a6f5e7361d1cd2470c..b637fa04eedde4dc47eb603618cb3a6a4f801909 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Tests/L2NormBetweenKernels/LogFileData/L2NormBetweenKernelsLogFileDataImp.cpp +++ b/apps/gpu/tests/NumericalTestPostProcessing/Tests/L2NormBetweenKernels/LogFileData/L2NormBetweenKernelsLogFileDataImp.cpp @@ -2,97 +2,97 @@ std::shared_ptr<L2NormBetweenKernelsLogFileDataImp> L2NormBetweenKernelsLogFileDataImp::getNewInstance() { - return std::shared_ptr<L2NormBetweenKernelsLogFileDataImp>(new L2NormBetweenKernelsLogFileDataImp()); + return std::shared_ptr<L2NormBetweenKernelsLogFileDataImp>(new L2NormBetweenKernelsLogFileDataImp()); } std::vector<double> L2NormBetweenKernelsLogFileDataImp::getBasicGridLengths() { - return basicGridLengths; + return basicGridLengths; } std::string L2NormBetweenKernelsLogFileDataImp::getBasicKernel() { - return basicKernel; + return basicKernel; } std::string L2NormBetweenKernelsLogFileDataImp::getDivergentKernel() { - return divergentKernel; + return divergentKernel; } std::string L2NormBetweenKernelsLogFileDataImp::getDataToCalculate() { - return dataToCalc; + return dataToCalc; } int L2NormBetweenKernelsLogFileDataImp::getTimeStep() { - return timeStep; + return timeStep; } std::vector<double> L2NormBetweenKernelsLogFileDataImp::getL2NormForBasicKernel() { - return l2NormForBasicKernel; + return l2NormForBasicKernel; } std::vector<double> L2NormBetweenKernelsLogFileDataImp::getL2NormForDivergentKernel() { - return l2NormForDivergentKernel; + return l2NormForDivergentKernel; } std::vector<double> L2NormBetweenKernelsLogFileDataImp::getL2NormBetweenKernels() { - return l2NormBetweenKernels; + return l2NormBetweenKernels; } std::string L2NormBetweenKernelsLogFileDataImp::getNormalizeData() { - return normalizeData; + return normalizeData; } void L2NormBetweenKernelsLogFileDataImp::setBasicGridLengths(std::vector<double> basicGridLengths) { - this->basicGridLengths = basicGridLengths; + this->basicGridLengths = basicGridLengths; } void L2NormBetweenKernelsLogFileDataImp::setBasicKernel(std::string basicKernel) { - this->basicKernel = basicKernel; + this->basicKernel = basicKernel; } void L2NormBetweenKernelsLogFileDataImp::setDivergentKernel(std::string divergentKernel) { - this->divergentKernel = divergentKernel; + this->divergentKernel = divergentKernel; } void L2NormBetweenKernelsLogFileDataImp::setDataToCalculate(std::string dataToCalc) { - this->dataToCalc = dataToCalc; + this->dataToCalc = dataToCalc; } void L2NormBetweenKernelsLogFileDataImp::setTimeStep(int timeStep) { - this->timeStep = timeStep; + this->timeStep = timeStep; } void L2NormBetweenKernelsLogFileDataImp::setL2NormForBasicKernel(std::vector<double> l2Norm) { - this->l2NormForBasicKernel = l2Norm; + this->l2NormForBasicKernel = l2Norm; } void L2NormBetweenKernelsLogFileDataImp::setL2NormForDivergentKernel(std::vector<double> l2Norm) { - this->l2NormForDivergentKernel = l2Norm; + this->l2NormForDivergentKernel = l2Norm; } void L2NormBetweenKernelsLogFileDataImp::setL2NormBetweenKernels(std::vector<double> l2Norm) { - this->l2NormBetweenKernels = l2Norm; + this->l2NormBetweenKernels = l2Norm; } void L2NormBetweenKernelsLogFileDataImp::setNormalizeData(std::string normalizeData) { - this->normalizeData = normalizeData; + this->normalizeData = normalizeData; } L2NormBetweenKernelsLogFileDataImp::L2NormBetweenKernelsLogFileDataImp() diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Tests/L2NormBetweenKernels/LogFileData/L2NormBetweenKernelsLogFileDataImp.h b/apps/gpu/tests/NumericalTestPostProcessing/Tests/L2NormBetweenKernels/LogFileData/L2NormBetweenKernelsLogFileDataImp.h index 2e18bb248581eca4e356c26d68779f48e471cb9d..2a30798e3c9291092eedfc71158227c6d23dbac7 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Tests/L2NormBetweenKernels/LogFileData/L2NormBetweenKernelsLogFileDataImp.h +++ b/apps/gpu/tests/NumericalTestPostProcessing/Tests/L2NormBetweenKernels/LogFileData/L2NormBetweenKernelsLogFileDataImp.h @@ -8,41 +8,41 @@ class L2NormBetweenKernelsLogFileDataImp : public L2NormBetweenKernelsLogFileData { public: - static std::shared_ptr<L2NormBetweenKernelsLogFileDataImp> getNewInstance(); - - std::vector<double> getBasicGridLengths(); - std::string getBasicKernel(); - std::string getDivergentKernel(); - std::string getDataToCalculate(); - int getTimeStep(); - std::vector<double> getL2NormForBasicKernel(); - std::vector<double> getL2NormForDivergentKernel(); - std::vector<double> getL2NormBetweenKernels(); - std::string getNormalizeData(); - - void setBasicGridLengths(std::vector<double> basicGridLengths); - void setBasicKernel(std::string basicKernel); - void setDivergentKernel(std::string divergentKernel); - void setDataToCalculate(std::string dataToCalc); - void setTimeStep(int timeStep); - void setL2NormForBasicKernel(std::vector<double> l2Norm); - void setL2NormForDivergentKernel(std::vector<double> l2Norm); - void setL2NormBetweenKernels(std::vector<double> l2Norm); - void setNormalizeData(std::string normalizeData); - - ~L2NormBetweenKernelsLogFileDataImp(); + static std::shared_ptr<L2NormBetweenKernelsLogFileDataImp> getNewInstance(); + + std::vector<double> getBasicGridLengths(); + std::string getBasicKernel(); + std::string getDivergentKernel(); + std::string getDataToCalculate(); + int getTimeStep(); + std::vector<double> getL2NormForBasicKernel(); + std::vector<double> getL2NormForDivergentKernel(); + std::vector<double> getL2NormBetweenKernels(); + std::string getNormalizeData(); + + void setBasicGridLengths(std::vector<double> basicGridLengths); + void setBasicKernel(std::string basicKernel); + void setDivergentKernel(std::string divergentKernel); + void setDataToCalculate(std::string dataToCalc); + void setTimeStep(int timeStep); + void setL2NormForBasicKernel(std::vector<double> l2Norm); + void setL2NormForDivergentKernel(std::vector<double> l2Norm); + void setL2NormBetweenKernels(std::vector<double> l2Norm); + void setNormalizeData(std::string normalizeData); + + ~L2NormBetweenKernelsLogFileDataImp(); private: - L2NormBetweenKernelsLogFileDataImp(); - - std::vector<double> basicGridLengths; - std::string basicKernel; - std::string divergentKernel; - std::string dataToCalc; - int timeStep; - std::vector<double> l2NormForBasicKernel; - std::vector<double> l2NormForDivergentKernel; - std::vector<double> l2NormBetweenKernels; - std::string normalizeData; + L2NormBetweenKernelsLogFileDataImp(); + + std::vector<double> basicGridLengths; + std::string basicKernel; + std::string divergentKernel; + std::string dataToCalc; + int timeStep; + std::vector<double> l2NormForBasicKernel; + std::vector<double> l2NormForDivergentKernel; + std::vector<double> l2NormBetweenKernels; + std::string normalizeData; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Tests/L2NormBetweenKernels/MathematicaAssistant/L2NormBetweenKernelsMathematicaAssistant.cpp b/apps/gpu/tests/NumericalTestPostProcessing/Tests/L2NormBetweenKernels/MathematicaAssistant/L2NormBetweenKernelsMathematicaAssistant.cpp index 21babc559d9dab0af80c6fa2675c7749449288fc..af64797a43a35c13c4c92175b53898b1dba5e79d 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Tests/L2NormBetweenKernels/MathematicaAssistant/L2NormBetweenKernelsMathematicaAssistant.cpp +++ b/apps/gpu/tests/NumericalTestPostProcessing/Tests/L2NormBetweenKernels/MathematicaAssistant/L2NormBetweenKernelsMathematicaAssistant.cpp @@ -9,15 +9,15 @@ std::shared_ptr<L2NormBetweenKernelsMathematicaAssistant> L2NormBetweenKernelsMathematicaAssistant::getNewInstance(std::shared_ptr<MathematicaFunctionFactory> functionFactory) { - return std::shared_ptr<L2NormBetweenKernelsMathematicaAssistant>(new L2NormBetweenKernelsMathematicaAssistant(functionFactory)); + return std::shared_ptr<L2NormBetweenKernelsMathematicaAssistant>(new L2NormBetweenKernelsMathematicaAssistant(functionFactory)); } void L2NormBetweenKernelsMathematicaAssistant::makeMathematicaOutput(std::shared_ptr<LogFileDataGroup> logFileData, std::shared_ptr<MathematicaFile> aMathmaticaFile) { - std::shared_ptr<SortedDataL2NormBetweenKernels> mySortedData = sortLogFileData(logFileData); + std::shared_ptr<SortedDataL2NormBetweenKernels> mySortedData = sortLogFileData(logFileData); - makeL2NormMathematicaOutput(aMathmaticaFile, mySortedData); - makeL2NormBetweenKernelsMathematicaOutput(aMathmaticaFile, mySortedData); + makeL2NormMathematicaOutput(aMathmaticaFile, mySortedData); + makeL2NormBetweenKernelsMathematicaOutput(aMathmaticaFile, mySortedData); } L2NormBetweenKernelsMathematicaAssistant::L2NormBetweenKernelsMathematicaAssistant(std::shared_ptr<MathematicaFunctionFactory> functionFactory) : MathematicaAssistantImp(functionFactory) @@ -26,112 +26,112 @@ L2NormBetweenKernelsMathematicaAssistant::L2NormBetweenKernelsMathematicaAssista bool L2NormBetweenKernelsMathematicaAssistant::checkTestParameter(std::shared_ptr<L2NormBetweenKernelsLogFileData> logFileData1, std::shared_ptr<L2NormBetweenKernelsLogFileData> logFileData2) { - if (logFileData1->getBasicKernel() != logFileData2->getBasicKernel()) - return false; - if (logFileData1->getNormalizeData() != logFileData2->getNormalizeData()) - return false; - if (logFileData1->getTimeStep() != logFileData2->getTimeStep()) - return false; - if (logFileData1->getDataToCalculate() != logFileData2->getDataToCalculate()) - return false; + if (logFileData1->getBasicKernel() != logFileData2->getBasicKernel()) + return false; + if (logFileData1->getNormalizeData() != logFileData2->getNormalizeData()) + return false; + if (logFileData1->getTimeStep() != logFileData2->getTimeStep()) + return false; + if (logFileData1->getDataToCalculate() != logFileData2->getDataToCalculate()) + return false; - return true; + return true; } std::shared_ptr<SortedDataL2NormBetweenKernels> L2NormBetweenKernelsMathematicaAssistant::sortLogFileData(std::shared_ptr<LogFileDataGroup> logFileData) { - std::vector<std::vector<std::shared_ptr<L2NormBetweenKernelsLogFileData> > > testLogFileData; - std::vector<std::vector<std::string> > basicListNames; - for (int i = 0; i < logFileData->getLogFileData(0)->getL2NormBetweenKernelsLogFileData().size(); i++) { - std::vector<std::shared_ptr<L2NormBetweenKernelsLogFileData> > aTestLogFileDataGroup; - aTestLogFileDataGroup.push_back(logFileData->getLogFileData(0)->getL2NormBetweenKernelsLogFileData().at(i)); - std::vector<std::string> aListNameGroup; - aListNameGroup.push_back(logFileData->getLogFileData(0)->getSimulationSigniture()); - basicListNames.push_back(aListNameGroup); - } - for (int i = 0; i < logFileData->getGroupSize(); i++) { - for (int j = 0; j < logFileData->getLogFileData(i)->getL2NormBetweenKernelsLogFileData().size(); j++) { - std::string dataToCalc = logFileData->getLogFileData(i)->getL2NormBetweenKernelsLogFileData().at(j)->getDataToCalculate(); - bool added = false; - for (int k = 0; k < testLogFileData.size(); k++) { - if (checkTestParameter(logFileData->getLogFileData(i)->getL2NormBetweenKernelsLogFileData().at(j), testLogFileData.at(k).at(0))) { - testLogFileData.at(k).push_back(logFileData->getLogFileData(i)->getL2NormBetweenKernelsLogFileData().at(j)); - basicListNames.at(k).push_back(logFileData->getLogFileData(i)->getSimulationSigniture()); - added = true; - } - } - if (!added) { - std::vector<std::shared_ptr<L2NormBetweenKernelsLogFileData> > aTestLogFileDataGroup; - aTestLogFileDataGroup.push_back(logFileData->getLogFileData(i)->getL2NormBetweenKernelsLogFileData().at(j)); - testLogFileData.push_back(aTestLogFileDataGroup); - std::vector<std::string> aListNameGroup; - aListNameGroup.push_back(logFileData->getLogFileData(i)->getSimulationSigniture()); - basicListNames.push_back(aListNameGroup); - } - } - } - std::shared_ptr<SortedDataL2NormBetweenKernels> mySortedData = std::shared_ptr<SortedDataL2NormBetweenKernels>(new SortedDataL2NormBetweenKernels); - mySortedData->basicListNames = basicListNames; - mySortedData->testLogFileData = testLogFileData; - - return mySortedData; + std::vector<std::vector<std::shared_ptr<L2NormBetweenKernelsLogFileData> > > testLogFileData; + std::vector<std::vector<std::string> > basicListNames; + for (int i = 0; i < logFileData->getLogFileData(0)->getL2NormBetweenKernelsLogFileData().size(); i++) { + std::vector<std::shared_ptr<L2NormBetweenKernelsLogFileData> > aTestLogFileDataGroup; + aTestLogFileDataGroup.push_back(logFileData->getLogFileData(0)->getL2NormBetweenKernelsLogFileData().at(i)); + std::vector<std::string> aListNameGroup; + aListNameGroup.push_back(logFileData->getLogFileData(0)->getSimulationSigniture()); + basicListNames.push_back(aListNameGroup); + } + for (int i = 0; i < logFileData->getGroupSize(); i++) { + for (int j = 0; j < logFileData->getLogFileData(i)->getL2NormBetweenKernelsLogFileData().size(); j++) { + std::string dataToCalc = logFileData->getLogFileData(i)->getL2NormBetweenKernelsLogFileData().at(j)->getDataToCalculate(); + bool added = false; + for (int k = 0; k < testLogFileData.size(); k++) { + if (checkTestParameter(logFileData->getLogFileData(i)->getL2NormBetweenKernelsLogFileData().at(j), testLogFileData.at(k).at(0))) { + testLogFileData.at(k).push_back(logFileData->getLogFileData(i)->getL2NormBetweenKernelsLogFileData().at(j)); + basicListNames.at(k).push_back(logFileData->getLogFileData(i)->getSimulationSigniture()); + added = true; + } + } + if (!added) { + std::vector<std::shared_ptr<L2NormBetweenKernelsLogFileData> > aTestLogFileDataGroup; + aTestLogFileDataGroup.push_back(logFileData->getLogFileData(i)->getL2NormBetweenKernelsLogFileData().at(j)); + testLogFileData.push_back(aTestLogFileDataGroup); + std::vector<std::string> aListNameGroup; + aListNameGroup.push_back(logFileData->getLogFileData(i)->getSimulationSigniture()); + basicListNames.push_back(aListNameGroup); + } + } + } + std::shared_ptr<SortedDataL2NormBetweenKernels> mySortedData = std::shared_ptr<SortedDataL2NormBetweenKernels>(new SortedDataL2NormBetweenKernels); + mySortedData->basicListNames = basicListNames; + mySortedData->testLogFileData = testLogFileData; + + return mySortedData; } void L2NormBetweenKernelsMathematicaAssistant::makeL2NormMathematicaOutput(std::shared_ptr<MathematicaFile> aMathmaticaFile, std::shared_ptr<SortedDataL2NormBetweenKernels> sortedData) { - for (int i = 0; i < sortedData->testLogFileData.size(); i++) { - std::vector<std::vector<double> > gridLengths; - std::vector<std::vector<double> > l2Norm; - std::vector<std::string> aListNamesList; - std::vector<std::string> timeSteps; - for (int j = 0; j < sortedData->testLogFileData.at(i).size(); j++) { - gridLengths.push_back(sortedData->testLogFileData.at(i).at(j)->getBasicGridLengths()); - gridLengths.push_back(sortedData->testLogFileData.at(i).at(j)->getBasicGridLengths()); - l2Norm.push_back(sortedData->testLogFileData.at(i).at(j)->getL2NormForBasicKernel()); - l2Norm.push_back(sortedData->testLogFileData.at(i).at(j)->getL2NormForDivergentKernel()); - aListNamesList.push_back(sortedData->basicListNames.at(i).at(j)); - - std::string divergentKernel = sortedData->basicListNames.at(i).at(j); - int sizeOfString = sortedData->testLogFileData.at(i).at(j)->getDivergentKernel().size(); - divergentKernel.erase(divergentKernel.begin(), divergentKernel.begin() + sizeOfString); - divergentKernel = sortedData->testLogFileData.at(i).at(j)->getBasicKernel() + divergentKernel; - aListNamesList.push_back(divergentKernel); - - std::ostringstream timeStep; - timeStep << "TimeStep" << sortedData->testLogFileData.at(i).at(j)->getTimeStep(); - timeSteps.push_back(timeStep.str()); - timeSteps.push_back(timeStep.str()); - } - - std::vector<std::string> finalListNames = finalizeListNames(aListNamesList, "L2Norm", sortedData->testLogFileData.at(i).at(0)->getDataToCalculate(), sortedData->testLogFileData.at(i).at(0)->getNormalizeData(), timeSteps); - - addListLogLogPlotToMathematicaFile(aMathmaticaFile, finalListNames, gridLengths, l2Norm, "L[dx]", "L2Norm[-]"); - } + for (int i = 0; i < sortedData->testLogFileData.size(); i++) { + std::vector<std::vector<double> > gridLengths; + std::vector<std::vector<double> > l2Norm; + std::vector<std::string> aListNamesList; + std::vector<std::string> timeSteps; + for (int j = 0; j < sortedData->testLogFileData.at(i).size(); j++) { + gridLengths.push_back(sortedData->testLogFileData.at(i).at(j)->getBasicGridLengths()); + gridLengths.push_back(sortedData->testLogFileData.at(i).at(j)->getBasicGridLengths()); + l2Norm.push_back(sortedData->testLogFileData.at(i).at(j)->getL2NormForBasicKernel()); + l2Norm.push_back(sortedData->testLogFileData.at(i).at(j)->getL2NormForDivergentKernel()); + aListNamesList.push_back(sortedData->basicListNames.at(i).at(j)); + + std::string divergentKernel = sortedData->basicListNames.at(i).at(j); + int sizeOfString = sortedData->testLogFileData.at(i).at(j)->getDivergentKernel().size(); + divergentKernel.erase(divergentKernel.begin(), divergentKernel.begin() + sizeOfString); + divergentKernel = sortedData->testLogFileData.at(i).at(j)->getBasicKernel() + divergentKernel; + aListNamesList.push_back(divergentKernel); + + std::ostringstream timeStep; + timeStep << "TimeStep" << sortedData->testLogFileData.at(i).at(j)->getTimeStep(); + timeSteps.push_back(timeStep.str()); + timeSteps.push_back(timeStep.str()); + } + + std::vector<std::string> finalListNames = finalizeListNames(aListNamesList, "L2Norm", sortedData->testLogFileData.at(i).at(0)->getDataToCalculate(), sortedData->testLogFileData.at(i).at(0)->getNormalizeData(), timeSteps); + + addListLogLogPlotToMathematicaFile(aMathmaticaFile, finalListNames, gridLengths, l2Norm, "L[dx]", "L2Norm[-]"); + } } void L2NormBetweenKernelsMathematicaAssistant::makeL2NormBetweenKernelsMathematicaOutput(std::shared_ptr<MathematicaFile> aMathmaticaFile, std::shared_ptr<SortedDataL2NormBetweenKernels> sortedData) { - for (int i = 0; i < sortedData->testLogFileData.size(); i++) { - std::vector<std::vector<double> > gridLengths; - std::vector<std::vector<double> > l2NormBK; - std::vector<std::string> aListNamesList; - std::vector<std::string> timeSteps; - std::vector<std::string> basicKernel; - for (int j = 0; j < sortedData->testLogFileData.at(i).size(); j++) { - gridLengths.push_back(sortedData->testLogFileData.at(i).at(j)->getBasicGridLengths()); - l2NormBK.push_back(sortedData->testLogFileData.at(i).at(j)->getL2NormBetweenKernels()); - aListNamesList.push_back(sortedData->basicListNames.at(i).at(j)); - basicKernel.push_back(sortedData->testLogFileData.at(i).at(j)->getBasicKernel()); - std::ostringstream timeStep; - timeStep << "TimeStep" << sortedData->testLogFileData.at(i).at(j)->getTimeStep(); - timeSteps.push_back(timeStep.str()); - } - - std::vector<std::string> finalListNames = finalizeListNames(aListNamesList, "L2NormBetweenKernels", sortedData->testLogFileData.at(i).at(0)->getDataToCalculate(), sortedData->testLogFileData.at(i).at(0)->getNormalizeData(), timeSteps, basicKernel); - - addListLogLogPlotToMathematicaFile(aMathmaticaFile, finalListNames, gridLengths, l2NormBK, "L[dx]", "L2Norm[-]"); - } + for (int i = 0; i < sortedData->testLogFileData.size(); i++) { + std::vector<std::vector<double> > gridLengths; + std::vector<std::vector<double> > l2NormBK; + std::vector<std::string> aListNamesList; + std::vector<std::string> timeSteps; + std::vector<std::string> basicKernel; + for (int j = 0; j < sortedData->testLogFileData.at(i).size(); j++) { + gridLengths.push_back(sortedData->testLogFileData.at(i).at(j)->getBasicGridLengths()); + l2NormBK.push_back(sortedData->testLogFileData.at(i).at(j)->getL2NormBetweenKernels()); + aListNamesList.push_back(sortedData->basicListNames.at(i).at(j)); + basicKernel.push_back(sortedData->testLogFileData.at(i).at(j)->getBasicKernel()); + std::ostringstream timeStep; + timeStep << "TimeStep" << sortedData->testLogFileData.at(i).at(j)->getTimeStep(); + timeSteps.push_back(timeStep.str()); + } + + std::vector<std::string> finalListNames = finalizeListNames(aListNamesList, "L2NormBetweenKernels", sortedData->testLogFileData.at(i).at(0)->getDataToCalculate(), sortedData->testLogFileData.at(i).at(0)->getNormalizeData(), timeSteps, basicKernel); + + addListLogLogPlotToMathematicaFile(aMathmaticaFile, finalListNames, gridLengths, l2NormBK, "L[dx]", "L2Norm[-]"); + } } L2NormBetweenKernelsMathematicaAssistant::L2NormBetweenKernelsMathematicaAssistant() diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Tests/L2NormBetweenKernels/MathematicaAssistant/L2NormBetweenKernelsMathematicaAssistant.h b/apps/gpu/tests/NumericalTestPostProcessing/Tests/L2NormBetweenKernels/MathematicaAssistant/L2NormBetweenKernelsMathematicaAssistant.h index e0a329876ecd43719d4a7f8a63b03d234fff0923..76d880ad95bd10049043f6d3e019849a2cf699fb 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Tests/L2NormBetweenKernels/MathematicaAssistant/L2NormBetweenKernelsMathematicaAssistant.h +++ b/apps/gpu/tests/NumericalTestPostProcessing/Tests/L2NormBetweenKernels/MathematicaAssistant/L2NormBetweenKernelsMathematicaAssistant.h @@ -7,28 +7,28 @@ class MathematicaFunctionFactory; class L2NormBetweenKernelsLogFileData; struct SortedDataL2NormBetweenKernels { - std::vector<std::vector<std::shared_ptr<L2NormBetweenKernelsLogFileData> > > testLogFileData; - std::vector<std::vector<std::string> > basicListNames; + std::vector<std::vector<std::shared_ptr<L2NormBetweenKernelsLogFileData> > > testLogFileData; + std::vector<std::vector<std::string> > basicListNames; }; class L2NormBetweenKernelsMathematicaAssistant : public MathematicaAssistantImp { public: - static std::shared_ptr<L2NormBetweenKernelsMathematicaAssistant> getNewInstance(std::shared_ptr<MathematicaFunctionFactory> functionFactory); + static std::shared_ptr<L2NormBetweenKernelsMathematicaAssistant> getNewInstance(std::shared_ptr<MathematicaFunctionFactory> functionFactory); - void makeMathematicaOutput(std::shared_ptr<LogFileDataGroup> logFileData, std::shared_ptr<MathematicaFile> aMathmaticaFile); + void makeMathematicaOutput(std::shared_ptr<LogFileDataGroup> logFileData, std::shared_ptr<MathematicaFile> aMathmaticaFile); - + private: - L2NormBetweenKernelsMathematicaAssistant(); - L2NormBetweenKernelsMathematicaAssistant(std::shared_ptr<MathematicaFunctionFactory> functionFactory); + L2NormBetweenKernelsMathematicaAssistant(); + L2NormBetweenKernelsMathematicaAssistant(std::shared_ptr<MathematicaFunctionFactory> functionFactory); - bool checkTestParameter(std::shared_ptr<L2NormBetweenKernelsLogFileData> logFileData1, std::shared_ptr<L2NormBetweenKernelsLogFileData> logFileData2); - std::shared_ptr<SortedDataL2NormBetweenKernels> sortLogFileData(std::shared_ptr<LogFileDataGroup> logFileData); + bool checkTestParameter(std::shared_ptr<L2NormBetweenKernelsLogFileData> logFileData1, std::shared_ptr<L2NormBetweenKernelsLogFileData> logFileData2); + std::shared_ptr<SortedDataL2NormBetweenKernels> sortLogFileData(std::shared_ptr<LogFileDataGroup> logFileData); - void makeL2NormMathematicaOutput(std::shared_ptr<MathematicaFile> aMathmaticaFile, std::shared_ptr<SortedDataL2NormBetweenKernels> sortedData); - void makeL2NormBetweenKernelsMathematicaOutput(std::shared_ptr<MathematicaFile> aMathmaticaFile, std::shared_ptr<SortedDataL2NormBetweenKernels> sortedData); + void makeL2NormMathematicaOutput(std::shared_ptr<MathematicaFile> aMathmaticaFile, std::shared_ptr<SortedDataL2NormBetweenKernels> sortedData); + void makeL2NormBetweenKernelsMathematicaOutput(std::shared_ptr<MathematicaFile> aMathmaticaFile, std::shared_ptr<SortedDataL2NormBetweenKernels> sortedData); - + }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Tests/NyTest/LogFileData/NyLogFileData.h b/apps/gpu/tests/NumericalTestPostProcessing/Tests/NyTest/LogFileData/NyLogFileData.h index c4367ef591f5a02a6ec410e4dbaec48ea76f368e..094616512070ba9181c99cb1a6d07079c6f8a6ff 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Tests/NyTest/LogFileData/NyLogFileData.h +++ b/apps/gpu/tests/NumericalTestPostProcessing/Tests/NyTest/LogFileData/NyLogFileData.h @@ -8,12 +8,12 @@ class NyLogFileData { public: - virtual std::vector<double> getBasicGridLengths() = 0; - virtual int getStartTimeStepCalculation() = 0; - virtual int getEndTimeStepCalculation() = 0; - virtual std::string getDataToCalc() = 0; - virtual std::vector<double> getNy() = 0; - virtual std::vector<double> getNyDiff() = 0; - virtual std::vector<std::vector<double> > getOrderOfAccuracy() = 0; + virtual std::vector<double> getBasicGridLengths() = 0; + virtual int getStartTimeStepCalculation() = 0; + virtual int getEndTimeStepCalculation() = 0; + virtual std::string getDataToCalc() = 0; + virtual std::vector<double> getNy() = 0; + virtual std::vector<double> getNyDiff() = 0; + virtual std::vector<std::vector<double> > getOrderOfAccuracy() = 0; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Tests/NyTest/LogFileData/NyLogFileDataImp.cpp b/apps/gpu/tests/NumericalTestPostProcessing/Tests/NyTest/LogFileData/NyLogFileDataImp.cpp index 4f7be6d1cb293b6bc675b3b0d9cd656c547635a9..a995f7242102e701078a34cdb8aa1da83a6bdee5 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Tests/NyTest/LogFileData/NyLogFileDataImp.cpp +++ b/apps/gpu/tests/NumericalTestPostProcessing/Tests/NyTest/LogFileData/NyLogFileDataImp.cpp @@ -2,77 +2,77 @@ std::shared_ptr<NyLogFileDataImp> NyLogFileDataImp::getNewInstance() { - return std::shared_ptr<NyLogFileDataImp>(new NyLogFileDataImp()); + return std::shared_ptr<NyLogFileDataImp>(new NyLogFileDataImp()); } std::vector<double> NyLogFileDataImp::getBasicGridLengths() { - return basicGridLengths; + return basicGridLengths; } int NyLogFileDataImp::getStartTimeStepCalculation() { - return startTimeStepCalculation; + return startTimeStepCalculation; } int NyLogFileDataImp::getEndTimeStepCalculation() { - return endTimeStepCalculation; + return endTimeStepCalculation; } std::string NyLogFileDataImp::getDataToCalc() { - return dataToCalc; + return dataToCalc; } std::vector<double> NyLogFileDataImp::getNy() { - return ny; + return ny; } std::vector<double> NyLogFileDataImp::getNyDiff() { - return nyDiff; + return nyDiff; } std::vector<std::vector<double>> NyLogFileDataImp::getOrderOfAccuracy() { - return orderOfAccuracy; + return orderOfAccuracy; } void NyLogFileDataImp::setBasicGridLengths(std::vector<double> basicGridLengths) { - this->basicGridLengths = basicGridLengths; + this->basicGridLengths = basicGridLengths; } void NyLogFileDataImp::setStartTimeStepCalculation(int startTimeStepCalculation) { - this->startTimeStepCalculation = startTimeStepCalculation; + this->startTimeStepCalculation = startTimeStepCalculation; } void NyLogFileDataImp::setEndTimeStepCalculation(int endTimeStepCalculation) { - this->endTimeStepCalculation = endTimeStepCalculation; + this->endTimeStepCalculation = endTimeStepCalculation; } void NyLogFileDataImp::setDataToCalc(std::string dataToCalc) { - this->dataToCalc = dataToCalc; + this->dataToCalc = dataToCalc; } void NyLogFileDataImp::setNy(std::vector<double> ny) { - this->ny = ny; + this->ny = ny; } void NyLogFileDataImp::setNyDiff(std::vector<double> nyDiff) { - this->nyDiff = nyDiff; + this->nyDiff = nyDiff; } void NyLogFileDataImp::setOrderOfAccuracy(std::vector<std::vector<double>> orderOfAccuracy) { - this->orderOfAccuracy = orderOfAccuracy; + this->orderOfAccuracy = orderOfAccuracy; } NyLogFileDataImp::NyLogFileDataImp() diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Tests/NyTest/LogFileData/NyLogFileDataImp.h b/apps/gpu/tests/NumericalTestPostProcessing/Tests/NyTest/LogFileData/NyLogFileDataImp.h index ece73a13403bce651ad0389dc844ef5c847875e0..c885c113a2f11f1ad6f983afa903516d81b3fb3f 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Tests/NyTest/LogFileData/NyLogFileDataImp.h +++ b/apps/gpu/tests/NumericalTestPostProcessing/Tests/NyTest/LogFileData/NyLogFileDataImp.h @@ -8,35 +8,35 @@ class NyLogFileDataImp : public NyLogFileData { public: - static std::shared_ptr<NyLogFileDataImp> getNewInstance(); + static std::shared_ptr<NyLogFileDataImp> getNewInstance(); - std::vector<double> getBasicGridLengths(); - int getStartTimeStepCalculation(); - int getEndTimeStepCalculation(); - std::string getDataToCalc(); - std::vector<double> getNy(); - std::vector<double> getNyDiff(); - std::vector<std::vector<double> > getOrderOfAccuracy(); + std::vector<double> getBasicGridLengths(); + int getStartTimeStepCalculation(); + int getEndTimeStepCalculation(); + std::string getDataToCalc(); + std::vector<double> getNy(); + std::vector<double> getNyDiff(); + std::vector<std::vector<double> > getOrderOfAccuracy(); - void setBasicGridLengths(std::vector<double> basicGridLengths); - void setStartTimeStepCalculation(int startTimeStepCalculation); - void setEndTimeStepCalculation(int endTimeStepCalculation); - void setDataToCalc(std::string dataToCalcPhiAndNu); - void setNy(std::vector<double> ny); - void setNyDiff(std::vector<double> nyDiff); - void setOrderOfAccuracy(std::vector<std::vector<double> > orderOfAccuracy); + void setBasicGridLengths(std::vector<double> basicGridLengths); + void setStartTimeStepCalculation(int startTimeStepCalculation); + void setEndTimeStepCalculation(int endTimeStepCalculation); + void setDataToCalc(std::string dataToCalcPhiAndNu); + void setNy(std::vector<double> ny); + void setNyDiff(std::vector<double> nyDiff); + void setOrderOfAccuracy(std::vector<std::vector<double> > orderOfAccuracy); private: - NyLogFileDataImp(); - - std::vector<double> basicGridLengths; - int startTimeStepCalculation; - int endTimeStepCalculation; - std::string dataToCalc; - std::vector<double> ny; - std::vector<double> nyDiff; - std::vector<std::vector<double> > orderOfAccuracy; + NyLogFileDataImp(); + + std::vector<double> basicGridLengths; + int startTimeStepCalculation; + int endTimeStepCalculation; + std::string dataToCalc; + std::vector<double> ny; + std::vector<double> nyDiff; + std::vector<std::vector<double> > orderOfAccuracy; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Tests/NyTest/MathematicaAssistant/NyMathematicaAssistant.cpp b/apps/gpu/tests/NumericalTestPostProcessing/Tests/NyTest/MathematicaAssistant/NyMathematicaAssistant.cpp index 4a976bd0db12fd3208b09a090802a955b4dd32e0..02df330a6b5ba84964efb1768adb8f5260b34896 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Tests/NyTest/MathematicaAssistant/NyMathematicaAssistant.cpp +++ b/apps/gpu/tests/NumericalTestPostProcessing/Tests/NyTest/MathematicaAssistant/NyMathematicaAssistant.cpp @@ -9,14 +9,14 @@ std::shared_ptr<NyMathematicaAssistant> NyMathematicaAssistant::getNewInstance(std::shared_ptr<MathematicaFunctionFactory> functionFactory) { - return std::shared_ptr<NyMathematicaAssistant>(new NyMathematicaAssistant(functionFactory)); + return std::shared_ptr<NyMathematicaAssistant>(new NyMathematicaAssistant(functionFactory)); } void NyMathematicaAssistant::makeMathematicaOutput(std::shared_ptr<LogFileDataGroup> logFileData, std::shared_ptr<MathematicaFile> aMathmaticaFile) { - std::shared_ptr<SortedDataNy> mySortedData = sortLogFileData(logFileData); + std::shared_ptr<SortedDataNy> mySortedData = sortLogFileData(logFileData); - makeNyDiffMathematicaOutput(aMathmaticaFile, mySortedData); + makeNyDiffMathematicaOutput(aMathmaticaFile, mySortedData); } NyMathematicaAssistant::NyMathematicaAssistant(std::shared_ptr<MathematicaFunctionFactory> functionFactory) : MathematicaAssistantImp(functionFactory) @@ -25,86 +25,86 @@ NyMathematicaAssistant::NyMathematicaAssistant(std::shared_ptr<MathematicaFuncti bool NyMathematicaAssistant::checkTestParameter(std::shared_ptr<NyLogFileData> logFileData1, std::shared_ptr<NyLogFileData> logFileData2) { - if (logFileData1->getStartTimeStepCalculation() != logFileData2->getStartTimeStepCalculation()) - return false; - if (logFileData1->getEndTimeStepCalculation() != logFileData2->getEndTimeStepCalculation()) - return false; - if (logFileData1->getDataToCalc() != logFileData2->getDataToCalc()) - return false; + if (logFileData1->getStartTimeStepCalculation() != logFileData2->getStartTimeStepCalculation()) + return false; + if (logFileData1->getEndTimeStepCalculation() != logFileData2->getEndTimeStepCalculation()) + return false; + if (logFileData1->getDataToCalc() != logFileData2->getDataToCalc()) + return false; - return true; + return true; } std::shared_ptr<SortedDataNy> NyMathematicaAssistant::sortLogFileData(std::shared_ptr<LogFileDataGroup> logFileData) { - std::vector<std::vector<std::shared_ptr<NyLogFileData> > > testLogFileData; - std::vector<std::vector<std::string> > basicListNames; - for (int i = 0; i < logFileData->getLogFileData(0)->getNyLogFileData().size(); i++) { - std::vector<std::shared_ptr<NyLogFileData> > aTestLogFileDataGroup; - aTestLogFileDataGroup.push_back(logFileData->getLogFileData(0)->getNyLogFileData().at(i)); - std::vector<std::string> aListNameGroup; - aListNameGroup.push_back(logFileData->getLogFileData(0)->getSimulationSigniture()); - basicListNames.push_back(aListNameGroup); - } - for (int i = 0; i < logFileData->getGroupSize(); i++) { - for (int j = 0; j < logFileData->getLogFileData(i)->getNyLogFileData().size(); j++) { - std::string dataToCalc = logFileData->getLogFileData(i)->getNyLogFileData().at(j)->getDataToCalc(); - bool added = false; - for (int k = 0; k < testLogFileData.size(); k++) { - if (checkTestParameter(logFileData->getLogFileData(i)->getNyLogFileData().at(j), testLogFileData.at(k).at(0))) { - testLogFileData.at(k).push_back(logFileData->getLogFileData(i)->getNyLogFileData().at(j)); - basicListNames.at(k).push_back(logFileData->getLogFileData(i)->getSimulationSigniture()); - added = true; - } - } - if (!added) { - std::vector<std::shared_ptr<NyLogFileData> > aTestLogFileDataGroup; - aTestLogFileDataGroup.push_back(logFileData->getLogFileData(i)->getNyLogFileData().at(j)); - testLogFileData.push_back(aTestLogFileDataGroup); - std::vector<std::string> aListNameGroup; - aListNameGroup.push_back(logFileData->getLogFileData(i)->getSimulationSigniture()); - basicListNames.push_back(aListNameGroup); - } - } - } - std::shared_ptr<SortedDataNy> mySortedData = std::shared_ptr<SortedDataNy>(new SortedDataNy); - mySortedData->basicListNames = basicListNames; - mySortedData->testLogFileData = testLogFileData; + std::vector<std::vector<std::shared_ptr<NyLogFileData> > > testLogFileData; + std::vector<std::vector<std::string> > basicListNames; + for (int i = 0; i < logFileData->getLogFileData(0)->getNyLogFileData().size(); i++) { + std::vector<std::shared_ptr<NyLogFileData> > aTestLogFileDataGroup; + aTestLogFileDataGroup.push_back(logFileData->getLogFileData(0)->getNyLogFileData().at(i)); + std::vector<std::string> aListNameGroup; + aListNameGroup.push_back(logFileData->getLogFileData(0)->getSimulationSigniture()); + basicListNames.push_back(aListNameGroup); + } + for (int i = 0; i < logFileData->getGroupSize(); i++) { + for (int j = 0; j < logFileData->getLogFileData(i)->getNyLogFileData().size(); j++) { + std::string dataToCalc = logFileData->getLogFileData(i)->getNyLogFileData().at(j)->getDataToCalc(); + bool added = false; + for (int k = 0; k < testLogFileData.size(); k++) { + if (checkTestParameter(logFileData->getLogFileData(i)->getNyLogFileData().at(j), testLogFileData.at(k).at(0))) { + testLogFileData.at(k).push_back(logFileData->getLogFileData(i)->getNyLogFileData().at(j)); + basicListNames.at(k).push_back(logFileData->getLogFileData(i)->getSimulationSigniture()); + added = true; + } + } + if (!added) { + std::vector<std::shared_ptr<NyLogFileData> > aTestLogFileDataGroup; + aTestLogFileDataGroup.push_back(logFileData->getLogFileData(i)->getNyLogFileData().at(j)); + testLogFileData.push_back(aTestLogFileDataGroup); + std::vector<std::string> aListNameGroup; + aListNameGroup.push_back(logFileData->getLogFileData(i)->getSimulationSigniture()); + basicListNames.push_back(aListNameGroup); + } + } + } + std::shared_ptr<SortedDataNy> mySortedData = std::shared_ptr<SortedDataNy>(new SortedDataNy); + mySortedData->basicListNames = basicListNames; + mySortedData->testLogFileData = testLogFileData; - return mySortedData; + return mySortedData; } void NyMathematicaAssistant::makeNyDiffMathematicaOutput(std::shared_ptr<MathematicaFile> aMathmaticaFile, std::shared_ptr<SortedDataNy> sortedData) { - for (int i = 0; i < sortedData->testLogFileData.size(); i++) { - std::vector<std::vector<double> > gridLengths; - std::vector<std::vector<double> > nyDiff; - std::vector<std::string> aBasicListNamesList; - for (int j = 0; j < sortedData->testLogFileData.at(i).size(); j++) { - gridLengths.push_back(sortedData->testLogFileData.at(i).at(j)->getBasicGridLengths()); - nyDiff.push_back(sortedData->testLogFileData.at(i).at(j)->getNyDiff()); - aBasicListNamesList.push_back(sortedData->basicListNames.at(i).at(j)); - } - - std::vector<std::string> finalListNames = finalizeListNames(aBasicListNamesList, "NyDiff", sortedData->testLogFileData.at(i).at(0)->getDataToCalc()); - addSecondOrderOfAccuracyRef(gridLengths, nyDiff, finalListNames); - addFourthOrderOfAccuracyRef(gridLengths, nyDiff, finalListNames); - addListLogLogPlotToMathematicaFile(aMathmaticaFile, finalListNames, gridLengths, nyDiff, "L[dx]", "Err Ny[-]"); - } + for (int i = 0; i < sortedData->testLogFileData.size(); i++) { + std::vector<std::vector<double> > gridLengths; + std::vector<std::vector<double> > nyDiff; + std::vector<std::string> aBasicListNamesList; + for (int j = 0; j < sortedData->testLogFileData.at(i).size(); j++) { + gridLengths.push_back(sortedData->testLogFileData.at(i).at(j)->getBasicGridLengths()); + nyDiff.push_back(sortedData->testLogFileData.at(i).at(j)->getNyDiff()); + aBasicListNamesList.push_back(sortedData->basicListNames.at(i).at(j)); + } + + std::vector<std::string> finalListNames = finalizeListNames(aBasicListNamesList, "NyDiff", sortedData->testLogFileData.at(i).at(0)->getDataToCalc()); + addSecondOrderOfAccuracyRef(gridLengths, nyDiff, finalListNames); + addFourthOrderOfAccuracyRef(gridLengths, nyDiff, finalListNames); + addListLogLogPlotToMathematicaFile(aMathmaticaFile, finalListNames, gridLengths, nyDiff, "L[dx]", "Err Ny[-]"); + } } void NyMathematicaAssistant::makeOrderOfAccuracyMathematicaOutput(std::shared_ptr<MathematicaFile> aMathmaticaFile, std::shared_ptr<SortedDataNy> sortedData) { - for (int i = 0; i < sortedData->testLogFileData.size(); i++) { - for (int j = 0; j < sortedData->testLogFileData.at(i).size(); j++) { - std::vector<std::vector<double>> ooA = sortedData->testLogFileData.at(i).at(j)->getOrderOfAccuracy(); - std::string basicListName = sortedData->basicListNames.at(i).at(j); - std::string dataToCalc = sortedData->testLogFileData.at(i).at(j)->getDataToCalc(); - std::string finalListName = finalizeListName(basicListName, "NyDiffOrderOfAccuracy", dataToCalc); + for (int i = 0; i < sortedData->testLogFileData.size(); i++) { + for (int j = 0; j < sortedData->testLogFileData.at(i).size(); j++) { + std::vector<std::vector<double>> ooA = sortedData->testLogFileData.at(i).at(j)->getOrderOfAccuracy(); + std::string basicListName = sortedData->basicListNames.at(i).at(j); + std::string dataToCalc = sortedData->testLogFileData.at(i).at(j)->getDataToCalc(); + std::string finalListName = finalizeListName(basicListName, "NyDiffOrderOfAccuracy", dataToCalc); - addListOfListsToMathematicaFile(aMathmaticaFile, finalListName, ooA); - } - } + addListOfListsToMathematicaFile(aMathmaticaFile, finalListName, ooA); + } + } } NyMathematicaAssistant::NyMathematicaAssistant() diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Tests/NyTest/MathematicaAssistant/NyMathematicaAssistant.h b/apps/gpu/tests/NumericalTestPostProcessing/Tests/NyTest/MathematicaAssistant/NyMathematicaAssistant.h index 591cfd47220345883ce1e08084d6fc08bf4be4b7..71f264ccf0dfa61e6ea3d16b5add1a93d4cc01f7 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Tests/NyTest/MathematicaAssistant/NyMathematicaAssistant.h +++ b/apps/gpu/tests/NumericalTestPostProcessing/Tests/NyTest/MathematicaAssistant/NyMathematicaAssistant.h @@ -7,27 +7,27 @@ class MathematicaFunctionFactory; class NyLogFileData; struct SortedDataNy { - std::vector<std::vector<std::shared_ptr<NyLogFileData> > > testLogFileData; - std::vector<std::vector<std::string> > basicListNames; + std::vector<std::vector<std::shared_ptr<NyLogFileData> > > testLogFileData; + std::vector<std::vector<std::string> > basicListNames; }; class NyMathematicaAssistant : public MathematicaAssistantImp { public: - static std::shared_ptr<NyMathematicaAssistant> getNewInstance(std::shared_ptr<MathematicaFunctionFactory> functionFactory); + static std::shared_ptr<NyMathematicaAssistant> getNewInstance(std::shared_ptr<MathematicaFunctionFactory> functionFactory); - void makeMathematicaOutput(std::shared_ptr<LogFileDataGroup> logFileData, std::shared_ptr<MathematicaFile> aMathmaticaFile); + void makeMathematicaOutput(std::shared_ptr<LogFileDataGroup> logFileData, std::shared_ptr<MathematicaFile> aMathmaticaFile); - + private: - NyMathematicaAssistant(); - NyMathematicaAssistant(std::shared_ptr<MathematicaFunctionFactory> functionFactory); + NyMathematicaAssistant(); + NyMathematicaAssistant(std::shared_ptr<MathematicaFunctionFactory> functionFactory); - bool checkTestParameter(std::shared_ptr<NyLogFileData> logFileData1, std::shared_ptr<NyLogFileData> logFileData2); - std::shared_ptr<SortedDataNy> sortLogFileData(std::shared_ptr<LogFileDataGroup> logFileData); + bool checkTestParameter(std::shared_ptr<NyLogFileData> logFileData1, std::shared_ptr<NyLogFileData> logFileData2); + std::shared_ptr<SortedDataNy> sortLogFileData(std::shared_ptr<LogFileDataGroup> logFileData); - void makeNyDiffMathematicaOutput(std::shared_ptr<MathematicaFile> aMathmaticaFile, std::shared_ptr<SortedDataNy> sortedData); - void makeOrderOfAccuracyMathematicaOutput(std::shared_ptr<MathematicaFile> aMathmaticaFile, std::shared_ptr<SortedDataNy> sortedData); + void makeNyDiffMathematicaOutput(std::shared_ptr<MathematicaFile> aMathmaticaFile, std::shared_ptr<SortedDataNy> sortedData); + void makeOrderOfAccuracyMathematicaOutput(std::shared_ptr<MathematicaFile> aMathmaticaFile, std::shared_ptr<SortedDataNy> sortedData); }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Tests/PhiTest/LogFileData/PhiLogFileData.h b/apps/gpu/tests/NumericalTestPostProcessing/Tests/PhiTest/LogFileData/PhiLogFileData.h index 63d169be7d1e0d73fe5db5b913eaec6094b7c593..814ccc0e3155edcb11efd585b1495a07b597a7ed 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Tests/PhiTest/LogFileData/PhiLogFileData.h +++ b/apps/gpu/tests/NumericalTestPostProcessing/Tests/PhiTest/LogFileData/PhiLogFileData.h @@ -8,11 +8,11 @@ class PhiLogFileData { public: - virtual std::vector<double> getBasicGridLengths() = 0; - virtual int getStartTimeStepCalculation() = 0; - virtual int getEndTimeStepCalculation() = 0; - virtual std::string getDataToCalc() = 0; - virtual std::vector<double> getPhiDiff() = 0; - virtual std::vector<std::vector<double> > getOrderOfAccuracy() = 0; + virtual std::vector<double> getBasicGridLengths() = 0; + virtual int getStartTimeStepCalculation() = 0; + virtual int getEndTimeStepCalculation() = 0; + virtual std::string getDataToCalc() = 0; + virtual std::vector<double> getPhiDiff() = 0; + virtual std::vector<std::vector<double> > getOrderOfAccuracy() = 0; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Tests/PhiTest/LogFileData/PhiLogFileDataImp.cpp b/apps/gpu/tests/NumericalTestPostProcessing/Tests/PhiTest/LogFileData/PhiLogFileDataImp.cpp index 63011851ebc2841c90221a3ff42b25b0b4ba6d13..e829864e841cb7ee1a75fed1ae30af7b94716a4b 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Tests/PhiTest/LogFileData/PhiLogFileDataImp.cpp +++ b/apps/gpu/tests/NumericalTestPostProcessing/Tests/PhiTest/LogFileData/PhiLogFileDataImp.cpp @@ -2,67 +2,67 @@ std::shared_ptr<PhiLogFileDataImp> PhiLogFileDataImp::getNewInstance() { - return std::shared_ptr<PhiLogFileDataImp>(new PhiLogFileDataImp()); + return std::shared_ptr<PhiLogFileDataImp>(new PhiLogFileDataImp()); } std::vector<double> PhiLogFileDataImp::getBasicGridLengths() { - return basicGridLengths; + return basicGridLengths; } int PhiLogFileDataImp::getStartTimeStepCalculation() { - return startTimeStepCalculation; + return startTimeStepCalculation; } int PhiLogFileDataImp::getEndTimeStepCalculation() { - return endTimeStepCalculation; + return endTimeStepCalculation; } std::string PhiLogFileDataImp::getDataToCalc() { - return dataToCalc; + return dataToCalc; } std::vector<double> PhiLogFileDataImp::getPhiDiff() { - return phiDiff; + return phiDiff; } std::vector<std::vector<double>> PhiLogFileDataImp::getOrderOfAccuracy() { - return orderOfAccuracy; + return orderOfAccuracy; } void PhiLogFileDataImp::setBasicGridLengths(std::vector<double> basicGridLengths) { - this->basicGridLengths = basicGridLengths; + this->basicGridLengths = basicGridLengths; } void PhiLogFileDataImp::setStartTimeStepCalculation(int startTimeStepCalculation) { - this->startTimeStepCalculation = startTimeStepCalculation; + this->startTimeStepCalculation = startTimeStepCalculation; } void PhiLogFileDataImp::setEndTimeStepCalculation(int endTimeStepCalculation) { - this->endTimeStepCalculation = endTimeStepCalculation; + this->endTimeStepCalculation = endTimeStepCalculation; } void PhiLogFileDataImp::setDataToCalc(std::string dataToCalc) { - this->dataToCalc = dataToCalc; + this->dataToCalc = dataToCalc; } void PhiLogFileDataImp::setPhiDiff(std::vector<double> phiDiff) { - this->phiDiff = phiDiff; + this->phiDiff = phiDiff; } void PhiLogFileDataImp::setOrderOfAccuracy(std::vector<std::vector<double>> orderOfAccuracy) { - this->orderOfAccuracy = orderOfAccuracy; + this->orderOfAccuracy = orderOfAccuracy; } PhiLogFileDataImp::PhiLogFileDataImp() diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Tests/PhiTest/LogFileData/PhiLogFileDataImp.h b/apps/gpu/tests/NumericalTestPostProcessing/Tests/PhiTest/LogFileData/PhiLogFileDataImp.h index c8c9960be29ef5d239c912edb23b709715f9889c..00b5f7299f312fef4e7b30abf3709b2eaba72b11 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Tests/PhiTest/LogFileData/PhiLogFileDataImp.h +++ b/apps/gpu/tests/NumericalTestPostProcessing/Tests/PhiTest/LogFileData/PhiLogFileDataImp.h @@ -8,30 +8,30 @@ class PhiLogFileDataImp : public PhiLogFileData { public: - static std::shared_ptr<PhiLogFileDataImp> getNewInstance(); + static std::shared_ptr<PhiLogFileDataImp> getNewInstance(); - std::vector<double> getBasicGridLengths(); - int getStartTimeStepCalculation(); - int getEndTimeStepCalculation(); - std::string getDataToCalc(); - std::vector<double> getPhiDiff(); - std::vector<std::vector<double> > getOrderOfAccuracy(); + std::vector<double> getBasicGridLengths(); + int getStartTimeStepCalculation(); + int getEndTimeStepCalculation(); + std::string getDataToCalc(); + std::vector<double> getPhiDiff(); + std::vector<std::vector<double> > getOrderOfAccuracy(); - void setBasicGridLengths(std::vector<double> basicGridLengths); - void setStartTimeStepCalculation(int startTimeStepCalculation); - void setEndTimeStepCalculation(int endTimeStepCalculation); - void setDataToCalc(std::string dataToCalcPhiAndNu); - void setPhiDiff(std::vector<double> phiDiff); - void setOrderOfAccuracy(std::vector<std::vector<double> > orderOfAccuracy); + void setBasicGridLengths(std::vector<double> basicGridLengths); + void setStartTimeStepCalculation(int startTimeStepCalculation); + void setEndTimeStepCalculation(int endTimeStepCalculation); + void setDataToCalc(std::string dataToCalcPhiAndNu); + void setPhiDiff(std::vector<double> phiDiff); + void setOrderOfAccuracy(std::vector<std::vector<double> > orderOfAccuracy); private: - PhiLogFileDataImp(); + PhiLogFileDataImp(); - std::vector<double> basicGridLengths; - int startTimeStepCalculation; - int endTimeStepCalculation; - std::string dataToCalc; - std::vector<double> phiDiff; - std::vector<std::vector<double> > orderOfAccuracy; + std::vector<double> basicGridLengths; + int startTimeStepCalculation; + int endTimeStepCalculation; + std::string dataToCalc; + std::vector<double> phiDiff; + std::vector<std::vector<double> > orderOfAccuracy; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Tests/PhiTest/MathematicaAssistant/PhiMathematicaAssistant.cpp b/apps/gpu/tests/NumericalTestPostProcessing/Tests/PhiTest/MathematicaAssistant/PhiMathematicaAssistant.cpp index 9fd24e63d07321be1e0591c58370ca8dfd13786f..9856efe4f4a5b30f46cd6b975b2b69a748f4129a 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Tests/PhiTest/MathematicaAssistant/PhiMathematicaAssistant.cpp +++ b/apps/gpu/tests/NumericalTestPostProcessing/Tests/PhiTest/MathematicaAssistant/PhiMathematicaAssistant.cpp @@ -7,15 +7,15 @@ std::shared_ptr<PhiMathematicaAssistant> PhiMathematicaAssistant::getNewInstance(std::shared_ptr<MathematicaFunctionFactory> functionFactory) { - return std::shared_ptr<PhiMathematicaAssistant>(new PhiMathematicaAssistant(functionFactory)); + return std::shared_ptr<PhiMathematicaAssistant>(new PhiMathematicaAssistant(functionFactory)); } void PhiMathematicaAssistant::makeMathematicaOutput(std::shared_ptr<LogFileDataGroup> logFileData, std::shared_ptr<MathematicaFile> aMathmaticaFile) { - std::shared_ptr<SortedDataPhi> mySortedData = sortLogFileData(logFileData); + std::shared_ptr<SortedDataPhi> mySortedData = sortLogFileData(logFileData); - makePhiDiffMathematicaOutput(aMathmaticaFile, mySortedData); - makeOrderOfAccuracyMathematicaOutput(aMathmaticaFile, mySortedData); + makePhiDiffMathematicaOutput(aMathmaticaFile, mySortedData); + makeOrderOfAccuracyMathematicaOutput(aMathmaticaFile, mySortedData); } @@ -25,85 +25,85 @@ PhiMathematicaAssistant::PhiMathematicaAssistant(std::shared_ptr<MathematicaFunc bool PhiMathematicaAssistant::checkTestParameter(std::shared_ptr<PhiLogFileData> logFileData1, std::shared_ptr<PhiLogFileData> logFileData2) { - if (logFileData1->getStartTimeStepCalculation() != logFileData2->getStartTimeStepCalculation()) - return false; - if (logFileData1->getEndTimeStepCalculation() != logFileData2->getEndTimeStepCalculation()) - return false; - if (logFileData1->getDataToCalc() != logFileData2->getDataToCalc()) - return false; + if (logFileData1->getStartTimeStepCalculation() != logFileData2->getStartTimeStepCalculation()) + return false; + if (logFileData1->getEndTimeStepCalculation() != logFileData2->getEndTimeStepCalculation()) + return false; + if (logFileData1->getDataToCalc() != logFileData2->getDataToCalc()) + return false; - return true; + return true; } std::shared_ptr<SortedDataPhi> PhiMathematicaAssistant::sortLogFileData(std::shared_ptr<LogFileDataGroup> logFileData) { - std::vector<std::vector<std::shared_ptr<PhiLogFileData> > > testLogFileData; - std::vector<std::vector<std::string> > basicListNames; - for (int i = 0; i < logFileData->getLogFileData(0)->getPhiLogFileData().size(); i++) { - std::vector<std::shared_ptr<PhiLogFileData> > aTestLogFileDataGroup; - aTestLogFileDataGroup.push_back(logFileData->getLogFileData(0)->getPhiLogFileData().at(i)); - std::vector<std::string> aListNameGroup; - aListNameGroup.push_back(logFileData->getLogFileData(0)->getSimulationSigniture()); - basicListNames.push_back(aListNameGroup); - } - for (int i = 0; i < logFileData->getGroupSize(); i++) { - for (int j = 0; j < logFileData->getLogFileData(i)->getPhiLogFileData().size(); j++) { - std::string dataToCalc = logFileData->getLogFileData(i)->getPhiLogFileData().at(j)->getDataToCalc(); - bool added = false; - for (int k = 0; k < testLogFileData.size(); k++) { - if (checkTestParameter(logFileData->getLogFileData(i)->getPhiLogFileData().at(j), testLogFileData.at(k).at(0))) { - testLogFileData.at(k).push_back(logFileData->getLogFileData(i)->getPhiLogFileData().at(j)); - basicListNames.at(k).push_back(logFileData->getLogFileData(i)->getSimulationSigniture()); - added = true; - } - } - if (!added) { - std::vector<std::shared_ptr<PhiLogFileData> > aTestLogFileDataGroup; - aTestLogFileDataGroup.push_back(logFileData->getLogFileData(i)->getPhiLogFileData().at(j)); - testLogFileData.push_back(aTestLogFileDataGroup); - std::vector<std::string> aListNameGroup; - aListNameGroup.push_back(logFileData->getLogFileData(i)->getSimulationSigniture()); - basicListNames.push_back(aListNameGroup); - } - } - } - std::shared_ptr<SortedDataPhi> mySortedData = std::shared_ptr<SortedDataPhi>(new SortedDataPhi); - mySortedData->basicListNames = basicListNames; - mySortedData->testLogFileData = testLogFileData; + std::vector<std::vector<std::shared_ptr<PhiLogFileData> > > testLogFileData; + std::vector<std::vector<std::string> > basicListNames; + for (int i = 0; i < logFileData->getLogFileData(0)->getPhiLogFileData().size(); i++) { + std::vector<std::shared_ptr<PhiLogFileData> > aTestLogFileDataGroup; + aTestLogFileDataGroup.push_back(logFileData->getLogFileData(0)->getPhiLogFileData().at(i)); + std::vector<std::string> aListNameGroup; + aListNameGroup.push_back(logFileData->getLogFileData(0)->getSimulationSigniture()); + basicListNames.push_back(aListNameGroup); + } + for (int i = 0; i < logFileData->getGroupSize(); i++) { + for (int j = 0; j < logFileData->getLogFileData(i)->getPhiLogFileData().size(); j++) { + std::string dataToCalc = logFileData->getLogFileData(i)->getPhiLogFileData().at(j)->getDataToCalc(); + bool added = false; + for (int k = 0; k < testLogFileData.size(); k++) { + if (checkTestParameter(logFileData->getLogFileData(i)->getPhiLogFileData().at(j), testLogFileData.at(k).at(0))) { + testLogFileData.at(k).push_back(logFileData->getLogFileData(i)->getPhiLogFileData().at(j)); + basicListNames.at(k).push_back(logFileData->getLogFileData(i)->getSimulationSigniture()); + added = true; + } + } + if (!added) { + std::vector<std::shared_ptr<PhiLogFileData> > aTestLogFileDataGroup; + aTestLogFileDataGroup.push_back(logFileData->getLogFileData(i)->getPhiLogFileData().at(j)); + testLogFileData.push_back(aTestLogFileDataGroup); + std::vector<std::string> aListNameGroup; + aListNameGroup.push_back(logFileData->getLogFileData(i)->getSimulationSigniture()); + basicListNames.push_back(aListNameGroup); + } + } + } + std::shared_ptr<SortedDataPhi> mySortedData = std::shared_ptr<SortedDataPhi>(new SortedDataPhi); + mySortedData->basicListNames = basicListNames; + mySortedData->testLogFileData = testLogFileData; - return mySortedData; + return mySortedData; } void PhiMathematicaAssistant::makePhiDiffMathematicaOutput(std::shared_ptr<MathematicaFile> aMathmaticaFile, std::shared_ptr<SortedDataPhi> sortedData) { - for (int i = 0; i < sortedData->testLogFileData.size(); i++) { - std::vector<std::vector<double> > gridLengths; - std::vector<std::vector<double> > phiDiff; - std::vector<std::string> aBasicListNamesList; - for (int j = 0; j < sortedData->testLogFileData.at(i).size(); j++) { - gridLengths.push_back(sortedData->testLogFileData.at(i).at(j)->getBasicGridLengths()); - phiDiff.push_back(sortedData->testLogFileData.at(i).at(j)->getPhiDiff()); - aBasicListNamesList.push_back(sortedData->basicListNames.at(i).at(j)); - } - std::vector<std::string> finalListNames = finalizeListNames(aBasicListNamesList, "PhiDiff", sortedData->testLogFileData.at(i).at(0)->getDataToCalc()); - addSecondOrderOfAccuracyRef(gridLengths, phiDiff, finalListNames); - addFourthOrderOfAccuracyRef(gridLengths, phiDiff, finalListNames); - addListLogLogPlotToMathematicaFile(aMathmaticaFile, finalListNames, gridLengths, phiDiff, "L[dx]", "Err Phi[-]"); - } + for (int i = 0; i < sortedData->testLogFileData.size(); i++) { + std::vector<std::vector<double> > gridLengths; + std::vector<std::vector<double> > phiDiff; + std::vector<std::string> aBasicListNamesList; + for (int j = 0; j < sortedData->testLogFileData.at(i).size(); j++) { + gridLengths.push_back(sortedData->testLogFileData.at(i).at(j)->getBasicGridLengths()); + phiDiff.push_back(sortedData->testLogFileData.at(i).at(j)->getPhiDiff()); + aBasicListNamesList.push_back(sortedData->basicListNames.at(i).at(j)); + } + std::vector<std::string> finalListNames = finalizeListNames(aBasicListNamesList, "PhiDiff", sortedData->testLogFileData.at(i).at(0)->getDataToCalc()); + addSecondOrderOfAccuracyRef(gridLengths, phiDiff, finalListNames); + addFourthOrderOfAccuracyRef(gridLengths, phiDiff, finalListNames); + addListLogLogPlotToMathematicaFile(aMathmaticaFile, finalListNames, gridLengths, phiDiff, "L[dx]", "Err Phi[-]"); + } } void PhiMathematicaAssistant::makeOrderOfAccuracyMathematicaOutput(std::shared_ptr<MathematicaFile> aMathmaticaFile, std::shared_ptr<SortedDataPhi> sortedData) { - for (int i = 0; i < sortedData->testLogFileData.size(); i++) { - for (int j = 0; j < sortedData->testLogFileData.at(i).size(); j++) { - std::vector<std::vector<double>> ooA = sortedData->testLogFileData.at(i).at(j)->getOrderOfAccuracy(); - std::string basicListName = sortedData->basicListNames.at(i).at(j); - std::string dataToCalc = sortedData->testLogFileData.at(i).at(j)->getDataToCalc(); - std::string finalListName = finalizeListName(basicListName, "PhiDiffOrderOfAccuracy", dataToCalc); + for (int i = 0; i < sortedData->testLogFileData.size(); i++) { + for (int j = 0; j < sortedData->testLogFileData.at(i).size(); j++) { + std::vector<std::vector<double>> ooA = sortedData->testLogFileData.at(i).at(j)->getOrderOfAccuracy(); + std::string basicListName = sortedData->basicListNames.at(i).at(j); + std::string dataToCalc = sortedData->testLogFileData.at(i).at(j)->getDataToCalc(); + std::string finalListName = finalizeListName(basicListName, "PhiDiffOrderOfAccuracy", dataToCalc); - addListOfListsToMathematicaFile(aMathmaticaFile, finalListName, ooA); - } - } + addListOfListsToMathematicaFile(aMathmaticaFile, finalListName, ooA); + } + } } PhiMathematicaAssistant::PhiMathematicaAssistant() diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Tests/PhiTest/MathematicaAssistant/PhiMathematicaAssistant.h b/apps/gpu/tests/NumericalTestPostProcessing/Tests/PhiTest/MathematicaAssistant/PhiMathematicaAssistant.h index f84d6c1ba726458af54a30d44916e41247a09368..e57dc3592ea54a183cfa7a1465c8d875573e1751 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Tests/PhiTest/MathematicaAssistant/PhiMathematicaAssistant.h +++ b/apps/gpu/tests/NumericalTestPostProcessing/Tests/PhiTest/MathematicaAssistant/PhiMathematicaAssistant.h @@ -7,28 +7,28 @@ class MathematicaFunctionFactory; class PhiLogFileData; struct SortedDataPhi { - std::vector<std::vector<std::shared_ptr<PhiLogFileData> > > testLogFileData; - std::vector<std::vector<std::string> > basicListNames; + std::vector<std::vector<std::shared_ptr<PhiLogFileData> > > testLogFileData; + std::vector<std::vector<std::string> > basicListNames; }; class PhiMathematicaAssistant : public MathematicaAssistantImp { public: - static std::shared_ptr<PhiMathematicaAssistant> getNewInstance(std::shared_ptr<MathematicaFunctionFactory> functionFactory); + static std::shared_ptr<PhiMathematicaAssistant> getNewInstance(std::shared_ptr<MathematicaFunctionFactory> functionFactory); - void makeMathematicaOutput(std::shared_ptr<LogFileDataGroup> logFileData, std::shared_ptr<MathematicaFile> aMathmaticaFile); + void makeMathematicaOutput(std::shared_ptr<LogFileDataGroup> logFileData, std::shared_ptr<MathematicaFile> aMathmaticaFile); - + private: - PhiMathematicaAssistant(); - PhiMathematicaAssistant(std::shared_ptr<MathematicaFunctionFactory> functionFactory); - - bool checkTestParameter(std::shared_ptr<PhiLogFileData> logFileData1, std::shared_ptr<PhiLogFileData> logFileData2); - std::shared_ptr<SortedDataPhi> sortLogFileData(std::shared_ptr<LogFileDataGroup> logFileData); - - - void makePhiDiffMathematicaOutput(std::shared_ptr<MathematicaFile> aMathmaticaFile, std::shared_ptr<SortedDataPhi> sortedData); - void makeOrderOfAccuracyMathematicaOutput(std::shared_ptr<MathematicaFile> aMathmaticaFile, std::shared_ptr<SortedDataPhi> sortedData); + PhiMathematicaAssistant(); + PhiMathematicaAssistant(std::shared_ptr<MathematicaFunctionFactory> functionFactory); + + bool checkTestParameter(std::shared_ptr<PhiLogFileData> logFileData1, std::shared_ptr<PhiLogFileData> logFileData2); + std::shared_ptr<SortedDataPhi> sortLogFileData(std::shared_ptr<LogFileDataGroup> logFileData); + + + void makePhiDiffMathematicaOutput(std::shared_ptr<MathematicaFile> aMathmaticaFile, std::shared_ptr<SortedDataPhi> sortedData); + void makeOrderOfAccuracyMathematicaOutput(std::shared_ptr<MathematicaFile> aMathmaticaFile, std::shared_ptr<SortedDataPhi> sortedData); }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/AlmostEquals.h b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/AlmostEquals.h index fd467aaa9ec710d909d4537aba3da7d9921bb59a..4a942afe7f8db1629d7184de7fff5e3c55f806be 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/AlmostEquals.h +++ b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/AlmostEquals.h @@ -60,21 +60,21 @@ template <size_t size> class TypeWithSize { public: - // This prevents the user from using TypeWithSize<N> with incorrect - // values of N. - typedef void UInt; + // This prevents the user from using TypeWithSize<N> with incorrect + // values of N. + typedef void UInt; }; // The specialization for size 4. template <> class TypeWithSize<4> { public: - // unsigned int has size 4 in both gcc and MSVC. - // - // As base/basictypes.h doesn't compile on Windows, we cannot use - // uint32, uint64, and etc here. - typedef int Int; - typedef unsigned int UInt; + // unsigned int has size 4 in both gcc and MSVC. + // + // As base/basictypes.h doesn't compile on Windows, we cannot use + // uint32, uint64, and etc here. + typedef int Int; + typedef unsigned int UInt; }; // The specialization for size 8. @@ -82,11 +82,11 @@ template <> class TypeWithSize<8> { public: #if _MSC_VER - typedef __int64 Int; - typedef unsigned __int64 UInt; + typedef __int64 Int; + typedef unsigned __int64 UInt; #else - typedef long long Int; // NOLINT - typedef unsigned long long UInt; // NOLINT + typedef long long Int; // NOLINT + typedef unsigned long long UInt; // NOLINT #endif // _MSC_VER }; @@ -122,152 +122,152 @@ public: template <typename RawType> class FloatingPoint { public: - // Defines the unsigned integer type that has the same size as the - // floating point number. - typedef typename TypeWithSize<sizeof(RawType)>::UInt Bits; - - // Constants. - - // # of bits in a number. - static const size_t kBitCount = 8 * sizeof(RawType); - - // # of fraction bits in a number. - static const size_t kFractionBitCount = - std::numeric_limits<RawType>::digits - 1; - - // # of exponent bits in a number. - static const size_t kExponentBitCount = kBitCount - 1 - kFractionBitCount; - - // The mask for the sign bit. - static const Bits kSignBitMask = static_cast<Bits>(1) << (kBitCount - 1); - - // The mask for the fraction bits. - static const Bits kFractionBitMask = - ~static_cast<Bits>(0) >> (kExponentBitCount + 1); - - // The mask for the exponent bits. - static const Bits kExponentBitMask = ~(kSignBitMask | kFractionBitMask); - - // How many ULP's (Units in the Last Place) we want to tolerate when - // comparing two numbers. The larger the value, the more error we - // allow. A 0 value means that two numbers must be exactly the same - // to be considered equal. - // - // The maximum error of a single floating-point operation is 0.5 - // units in the last place. On Intel CPU's, all floating-point - // calculations are done with 80-bit precision, while double has 64 - // bits. Therefore, 4 should be enough for ordinary use. - // - // See the following article for more details on ULP: - // http://randomascii.wordpress.com/2012/02/25/comparing-floating-point-numbers-2012-edition/ - static const size_t kMaxUlps = 4; - - // Constructs a FloatingPoint from a raw floating-point number. - // - // On an Intel CPU, passing a non-normalized NAN (Not a Number) - // around may change its bits, although the new value is guaranteed - // to be also a NAN. Therefore, don't expect this constructor to - // preserve the bits in x when x is a NAN. - explicit FloatingPoint(const RawType& x) { u_.value_ = x; } - - // Static methods - - // Reinterprets a bit pattern as a floating-point number. - // - // This function is needed to test the AlmostEquals() method. - static RawType ReinterpretBits(const Bits bits) { - FloatingPoint fp(0); - fp.u_.bits_ = bits; - return fp.u_.value_; - } - - // Returns the floating-point number that represent positive infinity. - static RawType Infinity() { - return ReinterpretBits(kExponentBitMask); - } - - // Returns the maximum representable finite floating-point number. - static RawType Max(); - - // Non-static methods - - // Returns the bits that represents this number. - const Bits &bits() const { return u_.bits_; } - - // Returns the exponent bits of this number. - Bits exponent_bits() const { return kExponentBitMask & u_.bits_; } - - // Returns the fraction bits of this number. - Bits fraction_bits() const { return kFractionBitMask & u_.bits_; } - - // Returns the sign bit of this number. - Bits sign_bit() const { return kSignBitMask & u_.bits_; } - - // Returns true iff this is NAN (not a number). - bool is_nan() const { - // It's a NAN if the exponent bits are all ones and the fraction - // bits are not entirely zeros. - return (exponent_bits() == kExponentBitMask) && (fraction_bits() != 0); - } - - // Returns true iff this number is at most kMaxUlps ULP's away from - // rhs. In particular, this function: - // - // - returns false if either number is (or both are) NAN. - // - treats really large numbers as almost equal to infinity. - // - thinks +0.0 and -0.0 are 0 DLP's apart. - bool AlmostEquals(const FloatingPoint& rhs) const { - // The IEEE standard says that any comparison operation involving - // a NAN must return false. - if (is_nan() || rhs.is_nan()) return false; - - return DistanceBetweenSignAndMagnitudeNumbers(u_.bits_, rhs.u_.bits_) - <= kMaxUlps; - } + // Defines the unsigned integer type that has the same size as the + // floating point number. + typedef typename TypeWithSize<sizeof(RawType)>::UInt Bits; + + // Constants. + + // # of bits in a number. + static const size_t kBitCount = 8 * sizeof(RawType); + + // # of fraction bits in a number. + static const size_t kFractionBitCount = + std::numeric_limits<RawType>::digits - 1; + + // # of exponent bits in a number. + static const size_t kExponentBitCount = kBitCount - 1 - kFractionBitCount; + + // The mask for the sign bit. + static const Bits kSignBitMask = static_cast<Bits>(1) << (kBitCount - 1); + + // The mask for the fraction bits. + static const Bits kFractionBitMask = + ~static_cast<Bits>(0) >> (kExponentBitCount + 1); + + // The mask for the exponent bits. + static const Bits kExponentBitMask = ~(kSignBitMask | kFractionBitMask); + + // How many ULP's (Units in the Last Place) we want to tolerate when + // comparing two numbers. The larger the value, the more error we + // allow. A 0 value means that two numbers must be exactly the same + // to be considered equal. + // + // The maximum error of a single floating-point operation is 0.5 + // units in the last place. On Intel CPU's, all floating-point + // calculations are done with 80-bit precision, while double has 64 + // bits. Therefore, 4 should be enough for ordinary use. + // + // See the following article for more details on ULP: + // http://randomascii.wordpress.com/2012/02/25/comparing-floating-point-numbers-2012-edition/ + static const size_t kMaxUlps = 4; + + // Constructs a FloatingPoint from a raw floating-point number. + // + // On an Intel CPU, passing a non-normalized NAN (Not a Number) + // around may change its bits, although the new value is guaranteed + // to be also a NAN. Therefore, don't expect this constructor to + // preserve the bits in x when x is a NAN. + explicit FloatingPoint(const RawType& x) { u_.value_ = x; } + + // Static methods + + // Reinterprets a bit pattern as a floating-point number. + // + // This function is needed to test the AlmostEquals() method. + static RawType ReinterpretBits(const Bits bits) { + FloatingPoint fp(0); + fp.u_.bits_ = bits; + return fp.u_.value_; + } + + // Returns the floating-point number that represent positive infinity. + static RawType Infinity() { + return ReinterpretBits(kExponentBitMask); + } + + // Returns the maximum representable finite floating-point number. + static RawType Max(); + + // Non-static methods + + // Returns the bits that represents this number. + const Bits &bits() const { return u_.bits_; } + + // Returns the exponent bits of this number. + Bits exponent_bits() const { return kExponentBitMask & u_.bits_; } + + // Returns the fraction bits of this number. + Bits fraction_bits() const { return kFractionBitMask & u_.bits_; } + + // Returns the sign bit of this number. + Bits sign_bit() const { return kSignBitMask & u_.bits_; } + + // Returns true iff this is NAN (not a number). + bool is_nan() const { + // It's a NAN if the exponent bits are all ones and the fraction + // bits are not entirely zeros. + return (exponent_bits() == kExponentBitMask) && (fraction_bits() != 0); + } + + // Returns true iff this number is at most kMaxUlps ULP's away from + // rhs. In particular, this function: + // + // - returns false if either number is (or both are) NAN. + // - treats really large numbers as almost equal to infinity. + // - thinks +0.0 and -0.0 are 0 DLP's apart. + bool AlmostEquals(const FloatingPoint& rhs) const { + // The IEEE standard says that any comparison operation involving + // a NAN must return false. + if (is_nan() || rhs.is_nan()) return false; + + return DistanceBetweenSignAndMagnitudeNumbers(u_.bits_, rhs.u_.bits_) + <= kMaxUlps; + } private: - // The data type used to store the actual floating-point number. - union FloatingPointUnion { - RawType value_; // The raw floating-point number. - Bits bits_; // The bits that represent the number. - }; - - // Converts an integer from the sign-and-magnitude representation to - // the biased representation. More precisely, let N be 2 to the - // power of (kBitCount - 1), an integer x is represented by the - // unsigned number x + N. - // - // For instance, - // - // -N + 1 (the most negative number representable using - // sign-and-magnitude) is represented by 1; - // 0 is represented by N; and - // N - 1 (the biggest number representable using - // sign-and-magnitude) is represented by 2N - 1. - // - // Read http://en.wikipedia.org/wiki/Signed_number_representations - // for more details on signed number representations. - static Bits SignAndMagnitudeToBiased(const Bits &sam) { - if (kSignBitMask & sam) { - // sam represents a negative number. - return ~sam + 1; - } - else { - // sam represents a positive number. - return kSignBitMask | sam; - } - } - - // Given two numbers in the sign-and-magnitude representation, - // returns the distance between them as an unsigned number. - static Bits DistanceBetweenSignAndMagnitudeNumbers(const Bits &sam1, - const Bits &sam2) { - const Bits biased1 = SignAndMagnitudeToBiased(sam1); - const Bits biased2 = SignAndMagnitudeToBiased(sam2); - return (biased1 >= biased2) ? (biased1 - biased2) : (biased2 - biased1); - } - - FloatingPointUnion u_; + // The data type used to store the actual floating-point number. + union FloatingPointUnion { + RawType value_; // The raw floating-point number. + Bits bits_; // The bits that represent the number. + }; + + // Converts an integer from the sign-and-magnitude representation to + // the biased representation. More precisely, let N be 2 to the + // power of (kBitCount - 1), an integer x is represented by the + // unsigned number x + N. + // + // For instance, + // + // -N + 1 (the most negative number representable using + // sign-and-magnitude) is represented by 1; + // 0 is represented by N; and + // N - 1 (the biggest number representable using + // sign-and-magnitude) is represented by 2N - 1. + // + // Read http://en.wikipedia.org/wiki/Signed_number_representations + // for more details on signed number representations. + static Bits SignAndMagnitudeToBiased(const Bits &sam) { + if (kSignBitMask & sam) { + // sam represents a negative number. + return ~sam + 1; + } + else { + // sam represents a positive number. + return kSignBitMask | sam; + } + } + + // Given two numbers in the sign-and-magnitude representation, + // returns the distance between them as an unsigned number. + static Bits DistanceBetweenSignAndMagnitudeNumbers(const Bits &sam1, + const Bits &sam2) { + const Bits biased1 = SignAndMagnitudeToBiased(sam1); + const Bits biased2 = SignAndMagnitudeToBiased(sam2); + return (biased1 >= biased2) ? (biased1 - biased2) : (biased2 - biased1); + } + + FloatingPointUnion u_; }; // We cannot use std::numeric_limits<T>::max() as it clashes with the max() @@ -280,8 +280,8 @@ inline double FloatingPoint<double>::Max() { return DBL_MAX; } template <typename T> bool AlmostEquals(T first, T second) { - FloatingPoint<T> firstAsFloatingPoint(first); - FloatingPoint<T> secondAsFloatingPoint(second); + FloatingPoint<T> firstAsFloatingPoint(first); + FloatingPoint<T> secondAsFloatingPoint(second); - return firstAsFloatingPoint.AlmostEquals(secondAsFloatingPoint); + return firstAsFloatingPoint.AlmostEquals(secondAsFloatingPoint); } \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/DataPoint/DataPoint.cpp b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/DataPoint/DataPoint.cpp index 5ff5036175a99dd0c68834b5458c43abf213675d..325a091e2a6dd7b277536a4539757c89b1074edb 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/DataPoint/DataPoint.cpp +++ b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/DataPoint/DataPoint.cpp @@ -6,17 +6,17 @@ DataPoint::DataPoint() std::shared_ptr<DataPoint> DataPoint::getNewInstance(double x, double y) { - return std::shared_ptr<DataPoint>(new DataPoint(x, y)); + return std::shared_ptr<DataPoint>(new DataPoint(x, y)); } double DataPoint::getX() { - return x; + return x; } double DataPoint::getY() { - return y; + return y; } DataPoint::DataPoint(double x, double y) : x(x), y(y) diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/DataPoint/DataPoint.h b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/DataPoint/DataPoint.h index 41e94ff6c7b4beeb8afe48f2cecd217dfcd65efc..33c2c827f5db3452401c8ece8e818ebb215e3e50 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/DataPoint/DataPoint.h +++ b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/DataPoint/DataPoint.h @@ -6,15 +6,15 @@ class DataPoint { public: - static std::shared_ptr<DataPoint> getNewInstance(double x, double y); - double getX(); - double getY(); + static std::shared_ptr<DataPoint> getNewInstance(double x, double y); + double getX(); + double getY(); private: - DataPoint(double x, double y); - DataPoint(); + DataPoint(double x, double y); + DataPoint(); - double x; - double y; + double x; + double y; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/LogFileData/LogFileData.h b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/LogFileData/LogFileData.h index dae198d32da1909139928235231c93a388af238d..cd4a007f294e73c34eace5797a36eace4d79c6d7 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/LogFileData/LogFileData.h +++ b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/LogFileData/LogFileData.h @@ -18,41 +18,41 @@ class TaylorGreenVortexUzLogFileData; class LogFileData { public: - virtual std::vector<int> getAnalyticalVTKWritingTime() = 0; - virtual std::vector<double> getBasicGridLengths() = 0; - virtual int getBasisTimeStepLength() = 0; - virtual std::string getDate() = 0; - virtual std::vector<std::string> getGpuDevices() = 0; - virtual std::string getKernel() = 0; - virtual bool getL2NormTestRun() = 0; - virtual bool getL2NormTestBetweenKernelRun() = 0; - virtual int getNumberOfTimeSteps() = 0; - virtual bool getNyTestRun() = 0; - virtual bool getPhiTestRun() = 0; - virtual std::vector<double> getResultCheckTime() = 0; - virtual std::string getSimName() = 0; - virtual std::vector<int> getSimTime() = 0; - - virtual std::vector<double> getTestTime() = 0; - virtual std::string getTime() = 0; - virtual double getViscosity() = 0; - virtual bool getVTKFileWriting() = 0; - - virtual std::string getFilePath() = 0; - virtual std::string getSimulationSigniture() = 0; - - virtual std::vector<std::shared_ptr<L2NormLogFileData> > getL2NormLogFileData() = 0; - virtual std::vector<std::shared_ptr<L2NormBetweenKernelsLogFileData> > getL2NormBetweenKernelsLogFileData() = 0; - virtual std::vector<std::shared_ptr<NyLogFileData> > getNyLogFileData() = 0; - virtual std::vector<std::shared_ptr<PhiLogFileData> > getPhiLogFileData() = 0; - - virtual std::shared_ptr<TaylorGreenVortexUxLogFileData> getTaylorGreenVortexUxLogFileData() = 0; - virtual std::shared_ptr<TaylorGreenVortexUzLogFileData> getTaylorGreenVortexUzLogFileData() = 0; - virtual std::shared_ptr<ShearWaveLogFileData> getShearWaveLogFileData() = 0; - - virtual BasicSimulation getBasicSimulation() = 0; - - - + virtual std::vector<int> getAnalyticalVTKWritingTime() = 0; + virtual std::vector<double> getBasicGridLengths() = 0; + virtual int getBasisTimeStepLength() = 0; + virtual std::string getDate() = 0; + virtual std::vector<std::string> getGpuDevices() = 0; + virtual std::string getKernel() = 0; + virtual bool getL2NormTestRun() = 0; + virtual bool getL2NormTestBetweenKernelRun() = 0; + virtual int getNumberOfTimeSteps() = 0; + virtual bool getNyTestRun() = 0; + virtual bool getPhiTestRun() = 0; + virtual std::vector<double> getResultCheckTime() = 0; + virtual std::string getSimName() = 0; + virtual std::vector<int> getSimTime() = 0; + + virtual std::vector<double> getTestTime() = 0; + virtual std::string getTime() = 0; + virtual double getViscosity() = 0; + virtual bool getVTKFileWriting() = 0; + + virtual std::string getFilePath() = 0; + virtual std::string getSimulationSigniture() = 0; + + virtual std::vector<std::shared_ptr<L2NormLogFileData> > getL2NormLogFileData() = 0; + virtual std::vector<std::shared_ptr<L2NormBetweenKernelsLogFileData> > getL2NormBetweenKernelsLogFileData() = 0; + virtual std::vector<std::shared_ptr<NyLogFileData> > getNyLogFileData() = 0; + virtual std::vector<std::shared_ptr<PhiLogFileData> > getPhiLogFileData() = 0; + + virtual std::shared_ptr<TaylorGreenVortexUxLogFileData> getTaylorGreenVortexUxLogFileData() = 0; + virtual std::shared_ptr<TaylorGreenVortexUzLogFileData> getTaylorGreenVortexUzLogFileData() = 0; + virtual std::shared_ptr<ShearWaveLogFileData> getShearWaveLogFileData() = 0; + + virtual BasicSimulation getBasicSimulation() = 0; + + + }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/LogFileData/LogFileDataGroup/LogFileDataGroup.h b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/LogFileData/LogFileDataGroup/LogFileDataGroup.h index c2688bc1b6b47d97e27ca6c23d9e591b95ae004b..021d980c16fc25eb0b11874dfacf7dfff4cef250 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/LogFileData/LogFileDataGroup/LogFileDataGroup.h +++ b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/LogFileData/LogFileDataGroup/LogFileDataGroup.h @@ -8,7 +8,7 @@ class LogFileData; class LogFileDataGroup { public: - virtual std::shared_ptr<LogFileData> getLogFileData(int number) = 0; - virtual int getGroupSize() = 0; + virtual std::shared_ptr<LogFileData> getLogFileData(int number) = 0; + virtual int getGroupSize() = 0; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/LogFileData/LogFileDataGroup/LogFileDataGroupImp.cpp b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/LogFileData/LogFileDataGroup/LogFileDataGroupImp.cpp index 3e6eea97cf576b32d27fd25c82b06bfa8481e154..4009a9060f50c46bbfe74ad544f9b779c2aafdee 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/LogFileData/LogFileDataGroup/LogFileDataGroupImp.cpp +++ b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/LogFileData/LogFileDataGroup/LogFileDataGroupImp.cpp @@ -2,25 +2,25 @@ std::shared_ptr<LogFileDataGroupImp> LogFileDataGroupImp::getNewInstance() { - return std::shared_ptr<LogFileDataGroupImp>(new LogFileDataGroupImp()); + return std::shared_ptr<LogFileDataGroupImp>(new LogFileDataGroupImp()); } std::shared_ptr<LogFileData> LogFileDataGroupImp::getLogFileData(int number) { - return data.at(number); + return data.at(number); } int LogFileDataGroupImp::getGroupSize() { - return data.size(); + return data.size(); } void LogFileDataGroupImp::addLogFileData(std::shared_ptr<LogFileData> logFileData) { - data.push_back(logFileData); + data.push_back(logFileData); } LogFileDataGroupImp::LogFileDataGroupImp() { - data.resize(0); + data.resize(0); } diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/LogFileData/LogFileDataGroup/LogFileDataGroupImp.h b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/LogFileData/LogFileDataGroup/LogFileDataGroupImp.h index 9ac76e21946b037698f8ae2a13c1c6cc76f866af..3b492e62b0dd78c5a3f048256a3e25925c9754f2 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/LogFileData/LogFileDataGroup/LogFileDataGroupImp.h +++ b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/LogFileData/LogFileDataGroup/LogFileDataGroupImp.h @@ -8,15 +8,15 @@ class LogFileDataGroupImp : public LogFileDataGroup { public: - static std::shared_ptr<LogFileDataGroupImp> getNewInstance(); + static std::shared_ptr<LogFileDataGroupImp> getNewInstance(); - std::shared_ptr<LogFileData> getLogFileData(int number); - int getGroupSize(); - void addLogFileData(std::shared_ptr<LogFileData> logFileData); + std::shared_ptr<LogFileData> getLogFileData(int number); + int getGroupSize(); + void addLogFileData(std::shared_ptr<LogFileData> logFileData); private: - LogFileDataGroupImp(); + LogFileDataGroupImp(); - std::vector<std::shared_ptr<LogFileData>> data; + std::vector<std::shared_ptr<LogFileData>> data; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/LogFileData/LogFileDataImp.cpp b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/LogFileData/LogFileDataImp.cpp index 80c516f93ab9a3541aca7e212d8466ea1ef740c6..04e670d71c7adab600c79a2e39555a4c425e2d2c 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/LogFileData/LogFileDataImp.cpp +++ b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/LogFileData/LogFileDataImp.cpp @@ -2,147 +2,147 @@ std::shared_ptr<LogFileDataImp> LogFileDataImp::getNewInstance() { - return std::shared_ptr<LogFileDataImp>(new LogFileDataImp()); + return std::shared_ptr<LogFileDataImp>(new LogFileDataImp()); } void LogFileDataImp::setBasisTimeStepLength(int basisTimeStepLength) { - this->basisTimeStepLength = basisTimeStepLength; + this->basisTimeStepLength = basisTimeStepLength; } void LogFileDataImp::setAnalyticalVTKWritingTime(std::vector<int> analyticalVTKWritingTime) { - this->analyticalVTKWritingTime = analyticalVTKWritingTime; + this->analyticalVTKWritingTime = analyticalVTKWritingTime; } void LogFileDataImp::setBasicGridLengths(std::vector<double> basicGridLenghts) { - this->basicGridLenghts = basicGridLenghts; + this->basicGridLenghts = basicGridLenghts; } void LogFileDataImp::setDate(std::string date) { - this->date = date; + this->date = date; } void LogFileDataImp::setGpuDevices(std::vector<std::string> gpuDevices) { - this->gpuDevices = gpuDevices; + this->gpuDevices = gpuDevices; } void LogFileDataImp::setSimName(std::string simName) { - this->simName = simName; + this->simName = simName; } void LogFileDataImp::setSimTime(std::vector<int> simTime) { - this->simTime = simTime; + this->simTime = simTime; } void LogFileDataImp::setTestTime(std::vector<double> testTime) { - this->testTime = testTime; + this->testTime = testTime; } void LogFileDataImp::setTime(std::string time) { - this->time = time; + this->time = time; } void LogFileDataImp::setKernel(std::string kernelName) { - this->kernelName = kernelName; + this->kernelName = kernelName; } void LogFileDataImp::setL2NormTestRun(bool l2NormTestRun) { - this->l2NormTestRun = l2NormTestRun; + this->l2NormTestRun = l2NormTestRun; } void LogFileDataImp::setL2NormTestBetweenKernelRun(bool l2NormTestBetweenKernelRun) { - this->l2NormTestBetweenKernelRun = l2NormTestBetweenKernelRun; + this->l2NormTestBetweenKernelRun = l2NormTestBetweenKernelRun; } void LogFileDataImp::setNumberOfTimeSteps(int numberOfTimeSteps) { - this->numberOfTimeSteps = numberOfTimeSteps; + this->numberOfTimeSteps = numberOfTimeSteps; } void LogFileDataImp::setPhiTestRun(bool phiTestRun) { - this->phiTestRun = phiTestRun; + this->phiTestRun = phiTestRun; } void LogFileDataImp::setNyTestRun(bool nyTestRun) { - this->nyTestRun = nyTestRun; + this->nyTestRun = nyTestRun; } void LogFileDataImp::setResultCheckTime(std::vector<double> resultsCheckTime) { - this->resultsCheckTime = resultsCheckTime; + this->resultsCheckTime = resultsCheckTime; } void LogFileDataImp::setViscosity(double viscosity) { - this->viscosity = viscosity; + this->viscosity = viscosity; } void LogFileDataImp::setVTKFileWriting(bool vtkFileWriting) { - this->vtkFileWriting = vtkFileWriting; + this->vtkFileWriting = vtkFileWriting; } void LogFileDataImp::setFilePath(std::string filePath) { - this->filePath = filePath; + this->filePath = filePath; } void LogFileDataImp::setSimulationSigniture(std::string simulationSigniture) { - this->simulationSigniture = simulationSigniture; + this->simulationSigniture = simulationSigniture; } void LogFileDataImp::setL2NormLogFileData(std::vector<std::shared_ptr<L2NormLogFileData>> data) { - this->l2NormLogFileData = data; + this->l2NormLogFileData = data; } void LogFileDataImp::setL2NormBetweenKernelsLogFileData(std::vector<std::shared_ptr<L2NormBetweenKernelsLogFileData>> data) { - this->l2NormBetweenKernelsDataLogFileData = data; + this->l2NormBetweenKernelsDataLogFileData = data; } void LogFileDataImp::setNyLogFileData(std::vector<std::shared_ptr<NyLogFileData>> data) { - this->nyLogFileData = data; + this->nyLogFileData = data; } void LogFileDataImp::setPhiLogFileData(std::vector<std::shared_ptr<PhiLogFileData>> data) { - this->phiLogFileData = data; + this->phiLogFileData = data; } void LogFileDataImp::setTaylorGreenVortexUxLogFileData(std::shared_ptr<TaylorGreenVortexUxLogFileData> data) { - this->tgvUxLogFileData = data; + this->tgvUxLogFileData = data; } void LogFileDataImp::setTaylorGreenVortexUzLogFileData(std::shared_ptr<TaylorGreenVortexUzLogFileData> data) { - this->tgvUzLogFileData = data; + this->tgvUzLogFileData = data; } void LogFileDataImp::setShearWaveLogFileData(std::shared_ptr<ShearWaveLogFileData> data) { - this->shearWaveLogFileData = data; + this->shearWaveLogFileData = data; } void LogFileDataImp::setBasicSimulation(BasicSimulation sim) { - this->sim = sim; + this->sim = sim; } LogFileDataImp::~LogFileDataImp() @@ -151,142 +151,142 @@ LogFileDataImp::~LogFileDataImp() int LogFileDataImp::getBasisTimeStepLength() { - return basisTimeStepLength; + return basisTimeStepLength; } std::vector<int> LogFileDataImp::getAnalyticalVTKWritingTime() { - return analyticalVTKWritingTime; + return analyticalVTKWritingTime; } std::vector<double> LogFileDataImp::getBasicGridLengths() { - return basicGridLenghts; + return basicGridLenghts; } std::string LogFileDataImp::getDate() { - return date; + return date; } std::vector<std::string> LogFileDataImp::getGpuDevices() { - return gpuDevices; + return gpuDevices; } std::string LogFileDataImp::getKernel() { - return kernelName; + return kernelName; } bool LogFileDataImp::getL2NormTestRun() { - return l2NormTestRun; + return l2NormTestRun; } bool LogFileDataImp::getL2NormTestBetweenKernelRun() { - return l2NormTestBetweenKernelRun; + return l2NormTestBetweenKernelRun; } int LogFileDataImp::getNumberOfTimeSteps() { - return numberOfTimeSteps; + return numberOfTimeSteps; } bool LogFileDataImp::getNyTestRun() { - return nyTestRun; + return nyTestRun; } bool LogFileDataImp::getPhiTestRun() { - return phiTestRun; + return phiTestRun; } std::vector<double> LogFileDataImp::getResultCheckTime() { - return resultsCheckTime; + return resultsCheckTime; } std::string LogFileDataImp::getSimName() { - return simName; + return simName; } std::vector<int> LogFileDataImp::getSimTime() { - return simTime; + return simTime; } std::vector<double> LogFileDataImp::getTestTime() { - return testTime; + return testTime; } std::string LogFileDataImp::getTime() { - return time; + return time; } double LogFileDataImp::getViscosity() { - return viscosity; + return viscosity; } bool LogFileDataImp::getVTKFileWriting() { - return vtkFileWriting; + return vtkFileWriting; } std::string LogFileDataImp::getFilePath() { - return filePath; + return filePath; } std::string LogFileDataImp::getSimulationSigniture() { - return simulationSigniture; + return simulationSigniture; } std::vector<std::shared_ptr<L2NormLogFileData>> LogFileDataImp::getL2NormLogFileData() { - return l2NormLogFileData; + return l2NormLogFileData; } std::vector<std::shared_ptr<L2NormBetweenKernelsLogFileData>> LogFileDataImp::getL2NormBetweenKernelsLogFileData() { - return l2NormBetweenKernelsDataLogFileData; + return l2NormBetweenKernelsDataLogFileData; } std::vector<std::shared_ptr<PhiLogFileData>> LogFileDataImp::getPhiLogFileData() { - return phiLogFileData; + return phiLogFileData; } std::vector<std::shared_ptr<NyLogFileData>> LogFileDataImp::getNyLogFileData() { - return nyLogFileData; + return nyLogFileData; } std::shared_ptr<TaylorGreenVortexUxLogFileData> LogFileDataImp::getTaylorGreenVortexUxLogFileData() { - return tgvUxLogFileData; + return tgvUxLogFileData; } std::shared_ptr<TaylorGreenVortexUzLogFileData> LogFileDataImp::getTaylorGreenVortexUzLogFileData() { - return tgvUzLogFileData; + return tgvUzLogFileData; } std::shared_ptr<ShearWaveLogFileData> LogFileDataImp::getShearWaveLogFileData() { - return shearWaveLogFileData; + return shearWaveLogFileData; } BasicSimulation LogFileDataImp::getBasicSimulation() { - return sim; + return sim; } LogFileDataImp::LogFileDataImp() diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/LogFileData/LogFileDataImp.h b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/LogFileData/LogFileDataImp.h index 733c87269516dfe4d059fd36e2d0f91a1d94b15c..45126557641a30ad06d58e6d8bdff2adf731e065 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/LogFileData/LogFileDataImp.h +++ b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/LogFileData/LogFileDataImp.h @@ -8,105 +8,105 @@ class LogFileDataImp : public LogFileData { public: - static std::shared_ptr<LogFileDataImp> getNewInstance(); + static std::shared_ptr<LogFileDataImp> getNewInstance(); - std::vector<int> getAnalyticalVTKWritingTime(); - std::vector<double> getBasicGridLengths(); - int getBasisTimeStepLength(); - std::string getDate(); - std::vector<std::string> getGpuDevices(); - std::string getKernel(); - bool getL2NormTestRun(); - bool getL2NormTestBetweenKernelRun(); - int getNumberOfTimeSteps(); - bool getNyTestRun(); - bool getPhiTestRun(); - std::vector<double> getResultCheckTime(); - std::string getSimName(); - std::vector<int> getSimTime(); - std::vector<double> getTestTime(); - std::string getTime(); - double getViscosity(); - bool getVTKFileWriting(); - std::string getFilePath(); - std::string getSimulationSigniture(); + std::vector<int> getAnalyticalVTKWritingTime(); + std::vector<double> getBasicGridLengths(); + int getBasisTimeStepLength(); + std::string getDate(); + std::vector<std::string> getGpuDevices(); + std::string getKernel(); + bool getL2NormTestRun(); + bool getL2NormTestBetweenKernelRun(); + int getNumberOfTimeSteps(); + bool getNyTestRun(); + bool getPhiTestRun(); + std::vector<double> getResultCheckTime(); + std::string getSimName(); + std::vector<int> getSimTime(); + std::vector<double> getTestTime(); + std::string getTime(); + double getViscosity(); + bool getVTKFileWriting(); + std::string getFilePath(); + std::string getSimulationSigniture(); - std::vector<std::shared_ptr<L2NormLogFileData> > getL2NormLogFileData(); - std::vector<std::shared_ptr<L2NormBetweenKernelsLogFileData> > getL2NormBetweenKernelsLogFileData(); - std::vector<std::shared_ptr<PhiLogFileData> > getPhiLogFileData(); - std::vector<std::shared_ptr<NyLogFileData> > getNyLogFileData(); - - std::shared_ptr<TaylorGreenVortexUxLogFileData> getTaylorGreenVortexUxLogFileData(); - std::shared_ptr<TaylorGreenVortexUzLogFileData> getTaylorGreenVortexUzLogFileData(); - std::shared_ptr<ShearWaveLogFileData> getShearWaveLogFileData(); - BasicSimulation getBasicSimulation(); + std::vector<std::shared_ptr<L2NormLogFileData> > getL2NormLogFileData(); + std::vector<std::shared_ptr<L2NormBetweenKernelsLogFileData> > getL2NormBetweenKernelsLogFileData(); + std::vector<std::shared_ptr<PhiLogFileData> > getPhiLogFileData(); + std::vector<std::shared_ptr<NyLogFileData> > getNyLogFileData(); + + std::shared_ptr<TaylorGreenVortexUxLogFileData> getTaylorGreenVortexUxLogFileData(); + std::shared_ptr<TaylorGreenVortexUzLogFileData> getTaylorGreenVortexUzLogFileData(); + std::shared_ptr<ShearWaveLogFileData> getShearWaveLogFileData(); + BasicSimulation getBasicSimulation(); - void setAnalyticalVTKWritingTime(std::vector<int> analyticalVTKWritingTime); - void setBasicGridLengths(std::vector<double> basicGridLenghts); - void setBasisTimeStepLength(int basisTimeStepLength); - void setDate(std::string date); - void setGpuDevices(std::vector<std::string> gpuDevices); - void setKernel(std::string kernelName); - void setL2NormTestRun(bool l2NormTestRun); - void setL2NormTestBetweenKernelRun(bool l2NormTestBetweenKernelRun); - void setNumberOfTimeSteps(int numberOfTimeSteps); - void setPhiTestRun(bool phiTestRun); - void setNyTestRun(bool nyTestRun); - void setResultCheckTime(std::vector<double> resultsCheckTime); - void setSimName(std::string simName); - void setSimTime(std::vector<int> simTime); - void setTestTime(std::vector<double> testTime); - void setTime(std::string time); - void setViscosity(double viscosity); - void setVTKFileWriting(bool vtkFileWriting); - void setFilePath(std::string filePath); - void setSimulationSigniture(std::string simulationSigniture); + void setAnalyticalVTKWritingTime(std::vector<int> analyticalVTKWritingTime); + void setBasicGridLengths(std::vector<double> basicGridLenghts); + void setBasisTimeStepLength(int basisTimeStepLength); + void setDate(std::string date); + void setGpuDevices(std::vector<std::string> gpuDevices); + void setKernel(std::string kernelName); + void setL2NormTestRun(bool l2NormTestRun); + void setL2NormTestBetweenKernelRun(bool l2NormTestBetweenKernelRun); + void setNumberOfTimeSteps(int numberOfTimeSteps); + void setPhiTestRun(bool phiTestRun); + void setNyTestRun(bool nyTestRun); + void setResultCheckTime(std::vector<double> resultsCheckTime); + void setSimName(std::string simName); + void setSimTime(std::vector<int> simTime); + void setTestTime(std::vector<double> testTime); + void setTime(std::string time); + void setViscosity(double viscosity); + void setVTKFileWriting(bool vtkFileWriting); + void setFilePath(std::string filePath); + void setSimulationSigniture(std::string simulationSigniture); - void setL2NormLogFileData(std::vector<std::shared_ptr<L2NormLogFileData> > data); - void setL2NormBetweenKernelsLogFileData(std::vector<std::shared_ptr<L2NormBetweenKernelsLogFileData> > data); - void setNyLogFileData(std::vector<std::shared_ptr<NyLogFileData> > data); - void setPhiLogFileData(std::vector<std::shared_ptr<PhiLogFileData> > data); - - void setTaylorGreenVortexUxLogFileData(std::shared_ptr<TaylorGreenVortexUxLogFileData> data); - void setTaylorGreenVortexUzLogFileData(std::shared_ptr<TaylorGreenVortexUzLogFileData> data); - void setShearWaveLogFileData(std::shared_ptr<ShearWaveLogFileData> data); - void setBasicSimulation(BasicSimulation sim); + void setL2NormLogFileData(std::vector<std::shared_ptr<L2NormLogFileData> > data); + void setL2NormBetweenKernelsLogFileData(std::vector<std::shared_ptr<L2NormBetweenKernelsLogFileData> > data); + void setNyLogFileData(std::vector<std::shared_ptr<NyLogFileData> > data); + void setPhiLogFileData(std::vector<std::shared_ptr<PhiLogFileData> > data); + + void setTaylorGreenVortexUxLogFileData(std::shared_ptr<TaylorGreenVortexUxLogFileData> data); + void setTaylorGreenVortexUzLogFileData(std::shared_ptr<TaylorGreenVortexUzLogFileData> data); + void setShearWaveLogFileData(std::shared_ptr<ShearWaveLogFileData> data); + void setBasicSimulation(BasicSimulation sim); - ~LogFileDataImp(); + ~LogFileDataImp(); private: - LogFileDataImp(); + LogFileDataImp(); - std::vector<int> analyticalVTKWritingTime; - std::vector<double> basicGridLenghts; - int basisTimeStepLength; - std::string date; - std::vector<std::string> gpuDevices; - std::string kernelName; - bool l2NormTestRun; - bool l2NormTestBetweenKernelRun; - int numberOfTimeSteps; - bool phiTestRun; - bool nyTestRun; - std::vector<double> resultsCheckTime; - std::string simName; - std::vector<int> simTime; - std::vector<double> testTime; - std::string time; - double viscosity; - bool vtkFileWriting; - std::string filePath; - std::string simulationSigniture; + std::vector<int> analyticalVTKWritingTime; + std::vector<double> basicGridLenghts; + int basisTimeStepLength; + std::string date; + std::vector<std::string> gpuDevices; + std::string kernelName; + bool l2NormTestRun; + bool l2NormTestBetweenKernelRun; + int numberOfTimeSteps; + bool phiTestRun; + bool nyTestRun; + std::vector<double> resultsCheckTime; + std::string simName; + std::vector<int> simTime; + std::vector<double> testTime; + std::string time; + double viscosity; + bool vtkFileWriting; + std::string filePath; + std::string simulationSigniture; - std::vector<std::shared_ptr<L2NormBetweenKernelsLogFileData> > l2NormBetweenKernelsDataLogFileData; - std::vector<std::shared_ptr<PhiLogFileData> > phiLogFileData; - std::vector<std::shared_ptr<NyLogFileData> > nyLogFileData; - std::vector<std::shared_ptr<L2NormLogFileData> > l2NormLogFileData; + std::vector<std::shared_ptr<L2NormBetweenKernelsLogFileData> > l2NormBetweenKernelsDataLogFileData; + std::vector<std::shared_ptr<PhiLogFileData> > phiLogFileData; + std::vector<std::shared_ptr<NyLogFileData> > nyLogFileData; + std::vector<std::shared_ptr<L2NormLogFileData> > l2NormLogFileData; - std::shared_ptr<ShearWaveLogFileData> shearWaveLogFileData; - std::shared_ptr<TaylorGreenVortexUxLogFileData> tgvUxLogFileData; - std::shared_ptr<TaylorGreenVortexUzLogFileData> tgvUzLogFileData; + std::shared_ptr<ShearWaveLogFileData> shearWaveLogFileData; + std::shared_ptr<TaylorGreenVortexUxLogFileData> tgvUxLogFileData; + std::shared_ptr<TaylorGreenVortexUzLogFileData> tgvUzLogFileData; - BasicSimulation sim; + BasicSimulation sim; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/LogFileDataAssistant/LogFileDataAssistant.h b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/LogFileDataAssistant/LogFileDataAssistant.h index c3e78cf9aa122cdef1e49dc30dacc17ec5b39927..f0f56779894d89cd7ab97136ab9698da26fb8386 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/LogFileDataAssistant/LogFileDataAssistant.h +++ b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/LogFileDataAssistant/LogFileDataAssistant.h @@ -16,7 +16,7 @@ class LogFileDataAssistantStrategy; class LogFileDataAssistant { public: - virtual std::vector<std::shared_ptr<LogFileDataGroup> > findDataCombination(std::vector<std::shared_ptr<LogFileData> > allLogFileData, std::shared_ptr<LogFileDataAssistantStrategy> strategy, DataCombination combination) = 0; + virtual std::vector<std::shared_ptr<LogFileDataGroup> > findDataCombination(std::vector<std::shared_ptr<LogFileData> > allLogFileData, std::shared_ptr<LogFileDataAssistantStrategy> strategy, DataCombination combination) = 0; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/LogFileDataAssistant/LogFileDataAssistantImp.cpp b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/LogFileDataAssistant/LogFileDataAssistantImp.cpp index c7dac7e8025fb52fb1c11297ef220cbf4edeb95a..51d2bd6b93ec44b49462a087a421c25a95ab1e0f 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/LogFileDataAssistant/LogFileDataAssistantImp.cpp +++ b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/LogFileDataAssistant/LogFileDataAssistantImp.cpp @@ -10,191 +10,191 @@ std::vector<std::vector<std::shared_ptr<LogFileData>>> LogFileDataAssistantImp::sortLogFileDataAfterKernels(std::vector<std::shared_ptr<LogFileData>> logFileData) { - std::vector<std::string> kernelNames; - for (int i = 0; i < logFileData.size(); i++) { - if (i == 0) - kernelNames.push_back(logFileData.at(i)->getKernel()); - else - { - bool newKernel = true; - for (int j = 0; j < kernelNames.size(); j++) { - if (kernelNames.at(i) == logFileData.at(i)->getKernel()) - newKernel = false; - } - if (newKernel) - kernelNames.push_back(logFileData.at(i)->getKernel()); - } - } - - std::vector<std::vector<std::shared_ptr<LogFileData> > > logFileDataAfterKernels; - logFileDataAfterKernels.resize(kernelNames.size()); - for (int i = 0; i < kernelNames.size(); i++) { - for (int j = 0; j < logFileData.size(); j++) { - if (kernelNames.at(i) == logFileData.at(j)->getKernel()) - logFileDataAfterKernels.at(i).push_back(logFileData.at(j)); - } - } - return logFileDataAfterKernels; + std::vector<std::string> kernelNames; + for (int i = 0; i < logFileData.size(); i++) { + if (i == 0) + kernelNames.push_back(logFileData.at(i)->getKernel()); + else + { + bool newKernel = true; + for (int j = 0; j < kernelNames.size(); j++) { + if (kernelNames.at(i) == logFileData.at(i)->getKernel()) + newKernel = false; + } + if (newKernel) + kernelNames.push_back(logFileData.at(i)->getKernel()); + } + } + + std::vector<std::vector<std::shared_ptr<LogFileData> > > logFileDataAfterKernels; + logFileDataAfterKernels.resize(kernelNames.size()); + for (int i = 0; i < kernelNames.size(); i++) { + for (int j = 0; j < logFileData.size(); j++) { + if (kernelNames.at(i) == logFileData.at(j)->getKernel()) + logFileDataAfterKernels.at(i).push_back(logFileData.at(j)); + } + } + return logFileDataAfterKernels; } bool LogFileDataAssistantImp::checkEqualSimulationData(std::shared_ptr<LogFileData> logFileData1, std::shared_ptr<LogFileData> logFileData2) { - if (logFileData1->getNumberOfTimeSteps() != logFileData2->getNumberOfTimeSteps()) - return false; - if (logFileData1->getBasisTimeStepLength() != logFileData2->getBasisTimeStepLength()) - return false; + if (logFileData1->getNumberOfTimeSteps() != logFileData2->getNumberOfTimeSteps()) + return false; + if (logFileData1->getBasisTimeStepLength() != logFileData2->getBasisTimeStepLength()) + return false; - return true; + return true; } bool LogFileDataAssistantImp::checkEqualViscosity(std::shared_ptr<LogFileData> logFileData1, std::shared_ptr<LogFileData> logFileData2) { - if (!equalDouble(logFileData1->getViscosity(), logFileData2->getViscosity())) - return false; + if (!equalDouble(logFileData1->getViscosity(), logFileData2->getViscosity())) + return false; - return true; + return true; } bool LogFileDataAssistantImp::checkEqualKernel(std::shared_ptr<LogFileData> logFileData1, std::shared_ptr<LogFileData> logFileData2) { - if (logFileData1->getKernel() != logFileData2->getKernel()) - return false; + if (logFileData1->getKernel() != logFileData2->getKernel()) + return false; - return true; + return true; } bool LogFileDataAssistantImp::checkBasicSimulationIsInLogFiles(std::vector<std::shared_ptr<LogFileData>> allLogFileData, std::string simName) { - bool isInLogFileData = false; - for (int i = 0; i < allLogFileData.size(); i++) { - if (allLogFileData.at(i)->getSimName() == simName) - return true; - } - return false; + bool isInLogFileData = false; + for (int i = 0; i < allLogFileData.size(); i++) { + if (allLogFileData.at(i)->getSimName() == simName) + return true; + } + return false; } std::vector<std::shared_ptr<LogFileDataGroup>> LogFileDataAssistantImp::castToLogFileDataGroup(std::vector<std::shared_ptr<LogFileDataGroupImp>> data) { - std::vector<std::shared_ptr<LogFileDataGroup>> casted; + std::vector<std::shared_ptr<LogFileDataGroup>> casted; - for (int i = 0; i < data.size(); i++) - casted.push_back(data.at(i)); - return casted; + for (int i = 0; i < data.size(); i++) + casted.push_back(data.at(i)); + return casted; } bool LogFileDataAssistantImp::equalDouble(double num1, double num2) { - const FloatingPoint<double> lhs(num1), rhs(num2); + const FloatingPoint<double> lhs(num1), rhs(num2); - if (lhs.AlmostEquals(rhs)) - return true; - return false; + if (lhs.AlmostEquals(rhs)) + return true; + return false; } std::vector<std::shared_ptr<LogFileData>> LogFileDataAssistantImp::getSimulationGroupLogFileData(std::string simName, std::vector<std::shared_ptr<LogFileData>> allLogFileData) { - std::vector<std::shared_ptr<LogFileData>> simGroupLogFileData; + std::vector<std::shared_ptr<LogFileData>> simGroupLogFileData; - for (int i = 0; i < allLogFileData.size(); i++) { - if (allLogFileData.at(i)->getSimName() == simName) - simGroupLogFileData.push_back(allLogFileData.at(i)); - } + for (int i = 0; i < allLogFileData.size(); i++) { + if (allLogFileData.at(i)->getSimName() == simName) + simGroupLogFileData.push_back(allLogFileData.at(i)); + } - return simGroupLogFileData; + return simGroupLogFileData; } std::shared_ptr<LogFileDataAssistant> LogFileDataAssistantImp::getNewInstance() { - return std::shared_ptr<LogFileDataAssistant>(new LogFileDataAssistantImp()); + return std::shared_ptr<LogFileDataAssistant>(new LogFileDataAssistantImp()); } std::vector<std::shared_ptr<LogFileDataGroup>> LogFileDataAssistantImp::findDataCombination(std::vector<std::shared_ptr<LogFileData>> allLogFileData, std::shared_ptr<LogFileDataAssistantStrategy> strategy, DataCombination combination) { - std::vector<std::shared_ptr<LogFileDataGroup>> myLogFileDataGroup; - if (checkBasicSimulationIsInLogFiles(allLogFileData, strategy->getSimulationName())) { - if (allLogFileData.size() > 1) { - switch (combination) - { - case EqualSimulationsForDifferentKernels: - myLogFileDataGroup = findEqualSimulationsForDifferentKernels(allLogFileData, strategy); - break; - case EqualKernelSimulationsForDifferentViscosities: - myLogFileDataGroup = findEqualKernelSimulationsForDifferentViscosities(allLogFileData, strategy); - break; - default: - break; - } - } - else { - std::shared_ptr<LogFileDataGroupImp> newGroup = LogFileDataGroupImp::getNewInstance(); - newGroup->addLogFileData(allLogFileData.at(0)); - myLogFileDataGroup.push_back(newGroup); - } - } - return myLogFileDataGroup; + std::vector<std::shared_ptr<LogFileDataGroup>> myLogFileDataGroup; + if (checkBasicSimulationIsInLogFiles(allLogFileData, strategy->getSimulationName())) { + if (allLogFileData.size() > 1) { + switch (combination) + { + case EqualSimulationsForDifferentKernels: + myLogFileDataGroup = findEqualSimulationsForDifferentKernels(allLogFileData, strategy); + break; + case EqualKernelSimulationsForDifferentViscosities: + myLogFileDataGroup = findEqualKernelSimulationsForDifferentViscosities(allLogFileData, strategy); + break; + default: + break; + } + } + else { + std::shared_ptr<LogFileDataGroupImp> newGroup = LogFileDataGroupImp::getNewInstance(); + newGroup->addLogFileData(allLogFileData.at(0)); + myLogFileDataGroup.push_back(newGroup); + } + } + return myLogFileDataGroup; } std::vector<std::shared_ptr<LogFileDataGroup>> LogFileDataAssistantImp::findEqualSimulationsForDifferentKernels(std::vector<std::shared_ptr<LogFileData>> allLogFileData, std::shared_ptr<LogFileDataAssistantStrategy> strategy) { - std::vector<std::shared_ptr<LogFileData>> myLogFileData = getSimulationGroupLogFileData(strategy->getSimulationName(), allLogFileData); - - std::vector<std::shared_ptr<LogFileDataGroupImp> > kernelGroups; - kernelGroups.push_back(LogFileDataGroupImp::getNewInstance()); - kernelGroups.at(0)->addLogFileData(myLogFileData.at(0)); - - for (int i = 1; i < myLogFileData.size(); i++) { - bool added = false; - for (int j = 0; j < kernelGroups.size(); j++) { - if (checkEqualSimulationData(myLogFileData.at(i), kernelGroups.at(j)->getLogFileData(0))) { - if (checkEqualViscosity(myLogFileData.at(i), kernelGroups.at(j)->getLogFileData(0))) { - if (strategy->checkSimulationParameter(myLogFileData.at(i), kernelGroups.at(j)->getLogFileData(0))) { - kernelGroups.at(j)->addLogFileData(myLogFileData.at(i)); - added = true; - } - } - } - } - if (!added) { - std::shared_ptr<LogFileDataGroupImp> newGroup = LogFileDataGroupImp::getNewInstance(); - newGroup->addLogFileData(myLogFileData.at(i)); - kernelGroups.push_back(newGroup); - } - } - - return castToLogFileDataGroup(kernelGroups); + std::vector<std::shared_ptr<LogFileData>> myLogFileData = getSimulationGroupLogFileData(strategy->getSimulationName(), allLogFileData); + + std::vector<std::shared_ptr<LogFileDataGroupImp> > kernelGroups; + kernelGroups.push_back(LogFileDataGroupImp::getNewInstance()); + kernelGroups.at(0)->addLogFileData(myLogFileData.at(0)); + + for (int i = 1; i < myLogFileData.size(); i++) { + bool added = false; + for (int j = 0; j < kernelGroups.size(); j++) { + if (checkEqualSimulationData(myLogFileData.at(i), kernelGroups.at(j)->getLogFileData(0))) { + if (checkEqualViscosity(myLogFileData.at(i), kernelGroups.at(j)->getLogFileData(0))) { + if (strategy->checkSimulationParameter(myLogFileData.at(i), kernelGroups.at(j)->getLogFileData(0))) { + kernelGroups.at(j)->addLogFileData(myLogFileData.at(i)); + added = true; + } + } + } + } + if (!added) { + std::shared_ptr<LogFileDataGroupImp> newGroup = LogFileDataGroupImp::getNewInstance(); + newGroup->addLogFileData(myLogFileData.at(i)); + kernelGroups.push_back(newGroup); + } + } + + return castToLogFileDataGroup(kernelGroups); } std::vector<std::shared_ptr<LogFileDataGroup> > LogFileDataAssistantImp::findEqualKernelSimulationsForDifferentViscosities(std::vector<std::shared_ptr<LogFileData>> allLogFileData, std::shared_ptr<LogFileDataAssistantStrategy> strategy) { - std::vector<std::shared_ptr<LogFileData>> myLogFileData = getSimulationGroupLogFileData(strategy->getSimulationName(), allLogFileData); - - std::vector<std::shared_ptr<LogFileDataGroupImp> > viscosityGroups; - viscosityGroups.push_back(LogFileDataGroupImp::getNewInstance()); - viscosityGroups.at(0)->addLogFileData(myLogFileData.at(0)); - - for (int i = 1; i < myLogFileData.size(); i++) { - bool added = false; - for (int j = 0; j < viscosityGroups.size(); j++) { - if (checkEqualSimulationData(myLogFileData.at(i), viscosityGroups.at(j)->getLogFileData(0))) { - if (checkEqualKernel(myLogFileData.at(i), viscosityGroups.at(j)->getLogFileData(0))) { - if (strategy->checkSimulationParameter(myLogFileData.at(i), viscosityGroups.at(j)->getLogFileData(0))) { - viscosityGroups.at(j)->addLogFileData(myLogFileData.at(i)); - added = true; - } - } - } - } - if (!added) { - std::shared_ptr<LogFileDataGroupImp> newGroup = LogFileDataGroupImp::getNewInstance(); - newGroup->addLogFileData(myLogFileData.at(i)); - viscosityGroups.push_back(newGroup); - } - } - - return castToLogFileDataGroup(viscosityGroups); + std::vector<std::shared_ptr<LogFileData>> myLogFileData = getSimulationGroupLogFileData(strategy->getSimulationName(), allLogFileData); + + std::vector<std::shared_ptr<LogFileDataGroupImp> > viscosityGroups; + viscosityGroups.push_back(LogFileDataGroupImp::getNewInstance()); + viscosityGroups.at(0)->addLogFileData(myLogFileData.at(0)); + + for (int i = 1; i < myLogFileData.size(); i++) { + bool added = false; + for (int j = 0; j < viscosityGroups.size(); j++) { + if (checkEqualSimulationData(myLogFileData.at(i), viscosityGroups.at(j)->getLogFileData(0))) { + if (checkEqualKernel(myLogFileData.at(i), viscosityGroups.at(j)->getLogFileData(0))) { + if (strategy->checkSimulationParameter(myLogFileData.at(i), viscosityGroups.at(j)->getLogFileData(0))) { + viscosityGroups.at(j)->addLogFileData(myLogFileData.at(i)); + added = true; + } + } + } + } + if (!added) { + std::shared_ptr<LogFileDataGroupImp> newGroup = LogFileDataGroupImp::getNewInstance(); + newGroup->addLogFileData(myLogFileData.at(i)); + viscosityGroups.push_back(newGroup); + } + } + + return castToLogFileDataGroup(viscosityGroups); } LogFileDataAssistantImp::LogFileDataAssistantImp() { - + } \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/LogFileDataAssistant/LogFileDataAssistantImp.h b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/LogFileDataAssistant/LogFileDataAssistantImp.h index 04f773f28102228ad48482010288ec88b5604144..389c82e94318b415914a412c5d86dc336b8d9763 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/LogFileDataAssistant/LogFileDataAssistantImp.h +++ b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/LogFileDataAssistant/LogFileDataAssistantImp.h @@ -9,30 +9,30 @@ class LogFileDataAssistantStrategy; class LogFileDataAssistantImp : public LogFileDataAssistant { public: - static std::shared_ptr<LogFileDataAssistant> getNewInstance(); + static std::shared_ptr<LogFileDataAssistant> getNewInstance(); - std::vector<std::shared_ptr<LogFileDataGroup> > findDataCombination(std::vector<std::shared_ptr<LogFileData> > allLogFileData, std::shared_ptr<LogFileDataAssistantStrategy> strategy, DataCombination combination); - + std::vector<std::shared_ptr<LogFileDataGroup> > findDataCombination(std::vector<std::shared_ptr<LogFileData> > allLogFileData, std::shared_ptr<LogFileDataAssistantStrategy> strategy, DataCombination combination); + protected: - LogFileDataAssistantImp(); - - std::vector<std::shared_ptr<LogFileDataGroup> > findEqualSimulationsForDifferentKernels(std::vector<std::shared_ptr<LogFileData> > allLogFileData, std::shared_ptr<LogFileDataAssistantStrategy> strategy); - std::vector<std::shared_ptr<LogFileDataGroup> > findEqualKernelSimulationsForDifferentViscosities(std::vector<std::shared_ptr<LogFileData> > allLogFileData, std::shared_ptr<LogFileDataAssistantStrategy> strategy); + LogFileDataAssistantImp(); + + std::vector<std::shared_ptr<LogFileDataGroup> > findEqualSimulationsForDifferentKernels(std::vector<std::shared_ptr<LogFileData> > allLogFileData, std::shared_ptr<LogFileDataAssistantStrategy> strategy); + std::vector<std::shared_ptr<LogFileDataGroup> > findEqualKernelSimulationsForDifferentViscosities(std::vector<std::shared_ptr<LogFileData> > allLogFileData, std::shared_ptr<LogFileDataAssistantStrategy> strategy); - std::vector<std::shared_ptr<LogFileData> > getSimulationGroupLogFileData(std::string simName, std::vector<std::shared_ptr<LogFileData> > allLogFileData); - std::vector<std::vector<std::shared_ptr<LogFileData> > > sortLogFileDataAfterKernels(std::vector<std::shared_ptr<LogFileData> > logFileData); + std::vector<std::shared_ptr<LogFileData> > getSimulationGroupLogFileData(std::string simName, std::vector<std::shared_ptr<LogFileData> > allLogFileData); + std::vector<std::vector<std::shared_ptr<LogFileData> > > sortLogFileDataAfterKernels(std::vector<std::shared_ptr<LogFileData> > logFileData); - bool checkEqualSimulationData(std::shared_ptr<LogFileData> logFileData1, std::shared_ptr<LogFileData> logFileData2); - bool checkEqualViscosity(std::shared_ptr<LogFileData> logFileData1, std::shared_ptr<LogFileData> logFileData2); - bool checkEqualKernel(std::shared_ptr<LogFileData> logFileData1, std::shared_ptr<LogFileData> logFileData2); + bool checkEqualSimulationData(std::shared_ptr<LogFileData> logFileData1, std::shared_ptr<LogFileData> logFileData2); + bool checkEqualViscosity(std::shared_ptr<LogFileData> logFileData1, std::shared_ptr<LogFileData> logFileData2); + bool checkEqualKernel(std::shared_ptr<LogFileData> logFileData1, std::shared_ptr<LogFileData> logFileData2); - bool checkBasicSimulationIsInLogFiles(std::vector<std::shared_ptr<LogFileData> > allLogFileData, std::string simName); + bool checkBasicSimulationIsInLogFiles(std::vector<std::shared_ptr<LogFileData> > allLogFileData, std::string simName); - std::vector<std::shared_ptr<LogFileDataGroup>> castToLogFileDataGroup(std::vector<std::shared_ptr<LogFileDataGroupImp>> data); + std::vector<std::shared_ptr<LogFileDataGroup>> castToLogFileDataGroup(std::vector<std::shared_ptr<LogFileDataGroupImp>> data); - bool equalDouble(double num1, double num2); + bool equalDouble(double num1, double num2); }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/LogFileDataAssistant/LogFileDataAssistantStrategy/LogFileDataAssistantStrategy.h b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/LogFileDataAssistant/LogFileDataAssistantStrategy/LogFileDataAssistantStrategy.h index e4fb09d7ae3b204743070753dab2d99025fc4d32..25635afe37a185b1928e16a23a4ce9c6919d5bc5 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/LogFileDataAssistant/LogFileDataAssistantStrategy/LogFileDataAssistantStrategy.h +++ b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/LogFileDataAssistant/LogFileDataAssistantStrategy/LogFileDataAssistantStrategy.h @@ -9,7 +9,7 @@ class LogFileData; class LogFileDataAssistantStrategy { public: - virtual std::string getSimulationName() = 0; - virtual bool checkSimulationParameter(std::shared_ptr<LogFileData> logFileData1, std::shared_ptr<LogFileData> logFileData2) = 0; + virtual std::string getSimulationName() = 0; + virtual bool checkSimulationParameter(std::shared_ptr<LogFileData> logFileData1, std::shared_ptr<LogFileData> logFileData2) = 0; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/LogFileDataAssistant/LogFileDataAssistantStrategy/LogFileDataAssistantStrategyFactory/LogFileDataAssistantStrategyFactory.h b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/LogFileDataAssistant/LogFileDataAssistantStrategy/LogFileDataAssistantStrategyFactory/LogFileDataAssistantStrategyFactory.h index 51f3f43fb23bcd6af40d548c174fbbc2db6735eb..3757b04efa9f214538b02401779a318635e712b1 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/LogFileDataAssistant/LogFileDataAssistantStrategy/LogFileDataAssistantStrategyFactory/LogFileDataAssistantStrategyFactory.h +++ b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/LogFileDataAssistant/LogFileDataAssistantStrategy/LogFileDataAssistantStrategyFactory/LogFileDataAssistantStrategyFactory.h @@ -10,6 +10,6 @@ class LogFileDataAssistantStrategy; class LogFileDataAssistantStrategyFactory { public: - virtual std::shared_ptr<LogFileDataAssistantStrategy> makeLogFileDataAssistantStrategy(BasicSimulation sim) = 0; + virtual std::shared_ptr<LogFileDataAssistantStrategy> makeLogFileDataAssistantStrategy(BasicSimulation sim) = 0; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/LogFileDataAssistant/LogFileDataAssistantStrategy/LogFileDataAssistantStrategyFactory/LogFileDataAssistantStrategyFactoryImp.cpp b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/LogFileDataAssistant/LogFileDataAssistantStrategy/LogFileDataAssistantStrategyFactory/LogFileDataAssistantStrategyFactoryImp.cpp index 8e5e5346c856cc79129ed9c5d76d7a1a28b53dba..91ec839933d9dc6e4ed409f6bfb7fa4990922661 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/LogFileDataAssistant/LogFileDataAssistantStrategy/LogFileDataAssistantStrategyFactory/LogFileDataAssistantStrategyFactoryImp.cpp +++ b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/LogFileDataAssistant/LogFileDataAssistantStrategy/LogFileDataAssistantStrategyFactory/LogFileDataAssistantStrategyFactoryImp.cpp @@ -6,27 +6,27 @@ std::shared_ptr<LogFileDataAssistantStrategyFactory> LogFileDataAssistantStrategyFactoryImp::getNewInstance() { - return std::shared_ptr<LogFileDataAssistantStrategyFactory>(new LogFileDataAssistantStrategyFactoryImp()); + return std::shared_ptr<LogFileDataAssistantStrategyFactory>(new LogFileDataAssistantStrategyFactoryImp()); } std::shared_ptr<LogFileDataAssistantStrategy> LogFileDataAssistantStrategyFactoryImp::makeLogFileDataAssistantStrategy(BasicSimulation sim) { - std::shared_ptr<LogFileDataAssistantStrategy> assistentStrategy; - switch (sim) - { - case ShearWave: - assistentStrategy = ShearWaveLogFileDataAssistantStrategy::getNewInstance(); - break; - case TaylorGreenVortexUx: - assistentStrategy = TaylorGreenVortexUxLogFileDataAssistantStrategy::getNewInstance(); - break; - case TaylorGreenVortexUz: - assistentStrategy = TaylorGreenVortexUzLogFileDataAssistantStrategy::getNewInstance(); - break; - default: - break; - } - return assistentStrategy; + std::shared_ptr<LogFileDataAssistantStrategy> assistentStrategy; + switch (sim) + { + case ShearWave: + assistentStrategy = ShearWaveLogFileDataAssistantStrategy::getNewInstance(); + break; + case TaylorGreenVortexUx: + assistentStrategy = TaylorGreenVortexUxLogFileDataAssistantStrategy::getNewInstance(); + break; + case TaylorGreenVortexUz: + assistentStrategy = TaylorGreenVortexUzLogFileDataAssistantStrategy::getNewInstance(); + break; + default: + break; + } + return assistentStrategy; } LogFileDataAssistantStrategyFactoryImp::LogFileDataAssistantStrategyFactoryImp() diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/LogFileDataAssistant/LogFileDataAssistantStrategy/LogFileDataAssistantStrategyFactory/LogFileDataAssistantStrategyFactoryImp.h b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/LogFileDataAssistant/LogFileDataAssistantStrategy/LogFileDataAssistantStrategyFactory/LogFileDataAssistantStrategyFactoryImp.h index 90fb1974a31db2eece47270e60d154194a00c985..3527847465390a75ca6526b5cc4b361d7a166b8e 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/LogFileDataAssistant/LogFileDataAssistantStrategy/LogFileDataAssistantStrategyFactory/LogFileDataAssistantStrategyFactoryImp.h +++ b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/LogFileDataAssistant/LogFileDataAssistantStrategy/LogFileDataAssistantStrategyFactory/LogFileDataAssistantStrategyFactoryImp.h @@ -6,11 +6,11 @@ class LogFileDataAssistantStrategyFactoryImp : public LogFileDataAssistantStrategyFactory { public: - static std::shared_ptr<LogFileDataAssistantStrategyFactory> getNewInstance(); + static std::shared_ptr<LogFileDataAssistantStrategyFactory> getNewInstance(); - std::shared_ptr<LogFileDataAssistantStrategy> makeLogFileDataAssistantStrategy(BasicSimulation sim); - + std::shared_ptr<LogFileDataAssistantStrategy> makeLogFileDataAssistantStrategy(BasicSimulation sim); + private: - LogFileDataAssistantStrategyFactoryImp(); + LogFileDataAssistantStrategyFactoryImp(); }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/LogFileDataAssistant/LogFileDataAssistantStrategy/LogFileDataAssistantStrategyImp.cpp b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/LogFileDataAssistant/LogFileDataAssistantStrategy/LogFileDataAssistantStrategyImp.cpp index 696e1c9ea33c706dfaeed96df2152ad237b4740a..6c8215f4a0a5d58e0079e83561de2b5ca7c90725 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/LogFileDataAssistant/LogFileDataAssistantStrategy/LogFileDataAssistantStrategyImp.cpp +++ b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/LogFileDataAssistant/LogFileDataAssistantStrategy/LogFileDataAssistantStrategyImp.cpp @@ -4,9 +4,9 @@ bool LogFileDataAssistantStrategyImp::equalDouble(double num1, double num2) { - const FloatingPoint<double> lhs(num1), rhs(num2); + const FloatingPoint<double> lhs(num1), rhs(num2); - if (lhs.AlmostEquals(rhs)) - return true; - return false; + if (lhs.AlmostEquals(rhs)) + return true; + return false; } diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/LogFileDataAssistant/LogFileDataAssistantStrategy/LogFileDataAssistantStrategyImp.h b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/LogFileDataAssistant/LogFileDataAssistantStrategy/LogFileDataAssistantStrategyImp.h index 3ad94782a047e5cd2c6628bb772467fb8790c80e..cd5860d487ef3d4679e2616b664118b8adbd2957 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/LogFileDataAssistant/LogFileDataAssistantStrategy/LogFileDataAssistantStrategyImp.h +++ b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/LogFileDataAssistant/LogFileDataAssistantStrategy/LogFileDataAssistantStrategyImp.h @@ -6,10 +6,10 @@ class LogFileDataAssistantStrategyImp : public LogFileDataAssistantStrategy { public: - virtual std::string getSimulationName() = 0; - virtual bool checkSimulationParameter(std::shared_ptr<LogFileData> logFileData1, std::shared_ptr<LogFileData> logFileData2) = 0; + virtual std::string getSimulationName() = 0; + virtual bool checkSimulationParameter(std::shared_ptr<LogFileData> logFileData1, std::shared_ptr<LogFileData> logFileData2) = 0; protected: - bool equalDouble(double num1, double num2); + bool equalDouble(double num1, double num2); }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/LogFileReader/LogFileReader.cpp b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/LogFileReader/LogFileReader.cpp index 580aab90988215ef010de23b47946158e69fb88e..80ce0563de59a9312d61b1ce8463ffc4317199c5 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/LogFileReader/LogFileReader.cpp +++ b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/LogFileReader/LogFileReader.cpp @@ -23,461 +23,461 @@ std::shared_ptr<LogFileReader> LogFileReader::getInstance() { - static std::shared_ptr<LogFileReader> uniqueInstance; - if (!uniqueInstance) - uniqueInstance = std::shared_ptr<LogFileReader>(new LogFileReader()); - return uniqueInstance; + static std::shared_ptr<LogFileReader> uniqueInstance; + if (!uniqueInstance) + uniqueInstance = std::shared_ptr<LogFileReader>(new LogFileReader()); + return uniqueInstance; } std::shared_ptr<LogFileData> LogFileReader::readLogFileToLogFileData(std::string filePath) { - std::shared_ptr<LogFileDataImp> logFileData = LogFileDataImp::getNewInstance(); - - auto input = std::make_shared<vf::basics::ConfigurationFile>(); - input->load(filePath); - - logFileData->setFilePath(filePath); - logFileData->setDate(input->getValue<std::string>("Date")); - logFileData->setTime(input->getValue<std::string>("Time")); - logFileData->setGpuDevices(StringUtil::toStringVector(input->getValue<std::string>("GPU_Devices"))); - - logFileData->setKernel(input->getValue<std::string>("Kernel")); - logFileData->setNumberOfTimeSteps(StringUtil::toInt(input->getValue<std::string>("NumberOfTimeSteps"))); - logFileData->setViscosity(StringUtil::toDouble(input->getValue<std::string>("Viscosity"))); - logFileData->setBasisTimeStepLength(StringUtil::toInt(input->getValue<std::string>("BasisTimeStepLength"))); - - logFileData->setSimName(input->getValue<std::string>("SimulationName")); - - - - - std::ostringstream simSigniture; - if (logFileData->getSimName() == "ShearWave") { - std::vector<double> shearWaveLx = StringUtil::toDoubleVector(input->getValue<std::string>("Lx")); - logFileData->setBasicGridLengths(shearWaveLx); - std::vector<int> shearWaveL0; - std::vector<double> shearWaveUx; - std::vector<double> shearWaveUz; - for (int i = 0; i < shearWaveLx.size(); i++) { - std::ostringstream l0, ux, uz; - l0 << "l0_" << shearWaveLx.at(i); - ux << "ux_" << shearWaveLx.at(i); - uz << "uz_" << shearWaveLx.at(i); - shearWaveL0.push_back(StringUtil::toInt(input->getValue<std::string>(l0.str()))); - shearWaveUx.push_back(StringUtil::toDouble(input->getValue<std::string>(ux.str()))); - shearWaveUz.push_back(StringUtil::toDouble(input->getValue<std::string>(uz.str()))); - } - std::shared_ptr<ShearWaveLogFileDataImp> swLogFileData = ShearWaveLogFileDataImp::getNewInstance(); - swLogFileData->setL0(shearWaveL0); - swLogFileData->setUx(shearWaveUx); - swLogFileData->setUz(shearWaveUz); - logFileData->setShearWaveLogFileData(swLogFileData); - simSigniture << logFileData->getKernel() << "ShearWaveViscosity" << logFileData->getViscosity() << "ux" << shearWaveUx.at(0) << "uz" << shearWaveUz.at(0); - logFileData->setBasicSimulation(ShearWave); - } - if (logFileData->getSimName() == "TaylorGreenVortexUx") { - std::vector<double> tgvUxLx = StringUtil::toDoubleVector(input->getValue<std::string>("Lx")); - logFileData->setBasicGridLengths(tgvUxLx); - std::vector<int> tgvUxL0; - std::vector<double> tgvUxUx; - std::vector<double> tgvUxAmp; - for (int i = 0; i < tgvUxLx.size(); i++) { - std::ostringstream l0, ux, amplitude; - l0 << "l0_" << tgvUxLx.at(i); - ux << "ux_" << tgvUxLx.at(i); - amplitude << "Amplitude_" << tgvUxLx.at(i); - tgvUxL0.push_back(StringUtil::toInt(input->getValue<std::string>(l0.str()))); - tgvUxUx.push_back(StringUtil::toDouble(input->getValue<std::string>(ux.str()))); - tgvUxAmp.push_back(StringUtil::toDouble(input->getValue<std::string>(amplitude.str()))); - } - std::shared_ptr<TaylorGreenVortexUxLogFileDataImp> tgvUxLogFileData = TaylorGreenVortexUxLogFileDataImp::getNewInstance(); - tgvUxLogFileData->setL0(tgvUxL0); - tgvUxLogFileData->setUx(tgvUxUx); - tgvUxLogFileData->setAmplitude(tgvUxAmp); - logFileData->setTaylorGreenVortexUxLogFileData(tgvUxLogFileData); - simSigniture << logFileData->getKernel() << "TaylorGreenVortexUxViscosity" << logFileData->getViscosity() << "Ux" << tgvUxUx.at(0) << "Amp" << tgvUxAmp.at(0); - logFileData->setBasicSimulation(TaylorGreenVortexUx); - } - if (logFileData->getSimName() == "TaylorGreenVortexUz") { - std::vector<double> tgvUzLz = StringUtil::toDoubleVector(input->getValue<std::string>("Lx")); - logFileData->setBasicGridLengths(tgvUzLz); - std::vector<int> tgvUzL0; - std::vector<double> tgvUzUz; - std::vector<double> tgvUzAmp; - for (int i = 0; i < tgvUzLz.size(); i++) { - std::ostringstream l0, uz, amplitude; - l0 << "l0_" << tgvUzLz.at(i); - uz << "uz_" << tgvUzLz.at(i); - amplitude << "Amplitude_" << tgvUzLz.at(i); - tgvUzL0.push_back(StringUtil::toInt(input->getValue<std::string>(l0.str()))); - tgvUzUz.push_back(StringUtil::toDouble(input->getValue<std::string>(uz.str()))); - tgvUzAmp.push_back(StringUtil::toDouble(input->getValue<std::string>(amplitude.str()))); - } - std::shared_ptr<TaylorGreenVortexUzLogFileDataImp> tgvUzLogFileData = TaylorGreenVortexUzLogFileDataImp::getNewInstance(); - tgvUzLogFileData->setL0(tgvUzL0); - tgvUzLogFileData->setUz(tgvUzUz); - tgvUzLogFileData->setAmplitude(tgvUzAmp); - logFileData->setTaylorGreenVortexUzLogFileData(tgvUzLogFileData); - simSigniture << logFileData->getKernel() << "TaylorGreenVortexUzViscosity" << logFileData->getViscosity() << "Uz" << tgvUzUz.at(0) << "Amp" << tgvUzAmp.at(0); - logFileData->setBasicSimulation(TaylorGreenVortexUz); - } - std::string compatibleString = removeCharsFromString(simSigniture.str(), ".-"); - logFileData->setSimulationSigniture(compatibleString); - - std::vector<int> simTime; - std::vector<double> resultsCheckTime; - std::vector<double> testTime; - std::vector<int> analyticalVTKWritingTime; - for (int i = 0; i < logFileData->getBasicGridLengths().size(); i++) { - std::ostringstream simTimeOStringStream, resultsCheckTimeOStringStream, testTimeOStringStream, analyticalVTKWritingTimeOStringStream; - simTimeOStringStream << "SimulationTime_" << logFileData->getBasicGridLengths().at(i); - resultsCheckTimeOStringStream << "ResultsCheckTime_" << logFileData->getBasicGridLengths().at(i); - testTimeOStringStream << "TestTime_" << logFileData->getBasicGridLengths().at(i); - analyticalVTKWritingTimeOStringStream << "AnalyticalVTKFileWritingTime_" << logFileData->getBasicGridLengths().at(i); - std::string simTimeString = input->getValue<std::string>(simTimeOStringStream.str()); - std::string resultCheckTimeString = input->getValue<std::string>(resultsCheckTimeOStringStream.str()); - std::string testTimeString = input->getValue<std::string>(testTimeOStringStream.str()); - std::string analyticalVTKWritingTimeString = input->getValue<std::string>(analyticalVTKWritingTimeOStringStream.str()); - simTimeString.erase(simTimeString.end() - 3, simTimeString.end()); - resultCheckTimeString.erase(resultCheckTimeString.end() - 3, resultCheckTimeString.end()); - testTimeString.erase(testTimeString.end() - 3, testTimeString.end()); - analyticalVTKWritingTimeString.erase(analyticalVTKWritingTimeString.end() - 3, analyticalVTKWritingTimeString.end()); - simTime.push_back(StringUtil::toInt(simTimeString)); - resultsCheckTime.push_back(StringUtil::toDouble(resultCheckTimeString)); - testTime.push_back(StringUtil::toDouble(testTimeString)); - analyticalVTKWritingTime.push_back(StringUtil::toInt(analyticalVTKWritingTimeString)); - } - - logFileData->setVTKFileWriting(StringUtil::toBool(input->getValue<std::string>("VTKFileWriting"))); - logFileData->setSimTime(simTime); - logFileData->setResultCheckTime(resultsCheckTime); - logFileData->setTestTime(testTime); - logFileData->setAnalyticalVTKWritingTime(analyticalVTKWritingTime); - - logFileData->setPhiTestRun(StringUtil::toBool(input->getValue<std::string>("PhiTest"))); - logFileData->setNyTestRun(StringUtil::toBool(input->getValue<std::string>("NyTest"))); - logFileData->setL2NormTestRun(StringUtil::toBool(input->getValue<std::string>("L2NormTest"))); - logFileData->setL2NormTestBetweenKernelRun(StringUtil::toBool(input->getValue<std::string>("L2NormTestBetweenKernel"))); - - if (logFileData->getPhiTestRun()) { - std::vector<std::string> failPhi = StringUtil::toStringVector(input->getValue<std::string>("FailTests_Phi_PhiTest")); - std::vector<std::string> failOOA = StringUtil::toStringVector(input->getValue<std::string>("FailTests_OOA_PhiTest")); - - std::vector<std::string> dataToCalc = StringUtil::toStringVector(input->getValue<std::string>("DataToCalc_PhiTest")); - std::vector<std::shared_ptr<PhiLogFileData> > aPhiLogGroup; - for (int i = 0; i < dataToCalc.size(); i++) { - std::shared_ptr<PhiLogFileDataImp> phiLog = PhiLogFileDataImp::getNewInstance(); - phiLog->setBasicGridLengths(logFileData->getBasicGridLengths()); - phiLog->setDataToCalc(dataToCalc.at(i)); - phiLog->setStartTimeStepCalculation(StringUtil::toInt(input->getValue<std::string>("StartTimeStepCalculation_PhiTest"))); - phiLog->setEndTimeStepCalculation(StringUtil::toInt(input->getValue<std::string>("EndTimeStepCalculation_PhiTest"))); - - std::vector<double> phiDiff; - std::vector<std::vector<double> > orderOfAccuracy; - for (int j = 0; j < logFileData->getBasicGridLengths().size(); j++) { - std::ostringstream phiBasicString, phiString, phiDiffString; - phiBasicString << logFileData->getBasicGridLengths().at(j) << "_" << dataToCalc.at(i); - bool failData = false; - for (int k = 0; k < failPhi.size(); k++) { - if (phiBasicString.str() == failPhi.at(k)) - failData = true; - } - if (!failData) { - phiDiffString << "PhiDiff_" << logFileData->getBasicGridLengths().at(j) << "_" << dataToCalc.at(i); - phiDiff.push_back(StringUtil::toDouble(input->getValue<std::string>(phiDiffString.str()))); - } - - for (int k = j + 1; k < logFileData->getBasicGridLengths().size(); k++) { - std::vector<double> aOrderOfAccuracyGroup; - std::ostringstream phiDiffOOA, phiDiffBasicOOA; - phiDiffBasicOOA << logFileData->getBasicGridLengths().at(j) << "_" << logFileData->getBasicGridLengths().at(k) << "_" << dataToCalc.at(i); - bool failData = false; - for (int k = 0; k < failOOA.size(); k++) { - if (phiDiffBasicOOA.str() == failOOA.at(k)) - failData = true; - } - if (!failData) { - phiDiffOOA << "OrderOfAccuracy_PhiDiff_" << phiDiffBasicOOA.str(); - aOrderOfAccuracyGroup.push_back(logFileData->getBasicGridLengths().at(j)); - aOrderOfAccuracyGroup.push_back(logFileData->getBasicGridLengths().at(k)); - aOrderOfAccuracyGroup.push_back(StringUtil::toDouble(input->getValue<std::string>(phiDiffOOA.str()))); - } - if (aOrderOfAccuracyGroup.size() > 0) - orderOfAccuracy.push_back(aOrderOfAccuracyGroup); - - } - - - } - if (phiDiff.size() > 0) { - phiLog->setPhiDiff(phiDiff); - } - if (orderOfAccuracy.size() > 0) - phiLog->setOrderOfAccuracy(orderOfAccuracy); - if (phiDiff.size() > 0 || orderOfAccuracy.size() > 0) - aPhiLogGroup.push_back(phiLog); - } - if (aPhiLogGroup.size() > 0) - logFileData->setPhiLogFileData(aPhiLogGroup); - else - logFileData->setPhiTestRun(false); - } - - - if (logFileData->getNyTestRun()) { - std::vector<std::string> failNy = StringUtil::toStringVector(input->getValue<std::string>("FailTests_Ny_NyTest")); - std::vector<std::string> failOOA = StringUtil::toStringVector(input->getValue<std::string>("FailTests_OOA_NyTest")); - - std::vector<std::string> dataToCalc = StringUtil::toStringVector(input->getValue<std::string>("DataToCalc_NyTest")); - std::vector<std::shared_ptr<NyLogFileData> > aNyLogGroup; - for (int i = 0; i < dataToCalc.size(); i++) { - std::shared_ptr<NyLogFileDataImp> nyLog = NyLogFileDataImp::getNewInstance(); - nyLog->setBasicGridLengths(logFileData->getBasicGridLengths()); - nyLog->setDataToCalc(dataToCalc.at(i)); - nyLog->setStartTimeStepCalculation(StringUtil::toInt(input->getValue<std::string>("StartTimeStepCalculation_NyTest"))); - nyLog->setEndTimeStepCalculation(StringUtil::toInt(input->getValue<std::string>("EndTimeStepCalculation_NyTest"))); - - std::vector<double> ny, nyDiff; - std::vector<std::vector<double> > orderOfAccuracy; - for (int j = 0; j < logFileData->getBasicGridLengths().size(); j++) { - std::ostringstream nyBasicString, nyString, nyDiffString; - nyBasicString << logFileData->getBasicGridLengths().at(j) << "_" << dataToCalc.at(i); - bool failData = false; - for (int k = 0; k < failNy.size(); k++) { - if (nyBasicString.str() == failNy.at(k)) - failData = true; - } - if (!failData) { - nyString << "Ny_" << nyBasicString.str(); - ny.push_back(StringUtil::toDouble(input->getValue<std::string>(nyString.str()))); - nyDiffString << "NyDiff_" << logFileData->getBasicGridLengths().at(j) << "_" << dataToCalc.at(i); - nyDiff.push_back(StringUtil::toDouble(input->getValue<std::string>(nyDiffString.str()))); - } - - - for (int k = j + 1; k < logFileData->getBasicGridLengths().size(); k++) { - std::vector<double> aOrderOfAccuracyGroup; - std::ostringstream nyDiffOOA, nyDiffBasicOOA; - nyDiffBasicOOA << logFileData->getBasicGridLengths().at(j) << "_" << logFileData->getBasicGridLengths().at(k) << "_" << dataToCalc.at(i); - bool failData = false; - for (int k = 0; k < failOOA.size(); k++) { - if (nyDiffBasicOOA.str() == failOOA.at(k)) - failData = true; - } - if (!failData) { - nyDiffOOA << "OrderOfAccuracy_NyDiff_" << nyDiffBasicOOA.str(); - aOrderOfAccuracyGroup.push_back(logFileData->getBasicGridLengths().at(j)); - aOrderOfAccuracyGroup.push_back(logFileData->getBasicGridLengths().at(k)); - aOrderOfAccuracyGroup.push_back(StringUtil::toDouble(input->getValue<std::string>(nyDiffOOA.str()))); - } - if (aOrderOfAccuracyGroup.size() > 0) - orderOfAccuracy.push_back(aOrderOfAccuracyGroup); - - } - - - } - if (ny.size() > 0) { - nyLog->setNy(ny); - nyLog->setNyDiff(nyDiff); - } - if (orderOfAccuracy.size() > 0) - nyLog->setOrderOfAccuracy(orderOfAccuracy); - if (ny.size() > 0 || orderOfAccuracy.size() > 0) - aNyLogGroup.push_back(nyLog); - } - if (aNyLogGroup.size() > 0) - logFileData->setNyLogFileData(aNyLogGroup); - else - logFileData->setNyTestRun(false); - } - - if (logFileData->getL2NormTestRun()) { - std::vector<std::shared_ptr<L2NormLogFileData> > l2NormGroup; - std::vector<std::string> dataToCalcL2Norm = StringUtil::toStringVector(input->getValue<std::string>("DataToCalc_L2Norm")); - std::vector<std::string> normData = StringUtil::toStringVector(input->getValue<std::string>("NormalizeData_L2Norm")); - std::vector<std::string> failL2Norm = StringUtil::toStringVector(input->getValue<std::string>("FailTests_L2Norm")); - for (int i = 0; i < dataToCalcL2Norm.size(); i++) { - for (int k = 0; k < normData.size(); k++) { - std::shared_ptr<L2NormLogFileDataImp> aL2Norm = L2NormLogFileDataImp::getNewInstance(); - aL2Norm->setDataToCalc(dataToCalcL2Norm.at(i)); - aL2Norm->setNormalizeData(normData.at(k)); - aL2Norm->setBasicGridLengths(logFileData->getBasicGridLengths()); - aL2Norm->setBasicTimeStep(StringUtil::toInt(input->getValue<std::string>("BasicTimeStep_L2Norm"))); - aL2Norm->setDivergentTimeStep(StringUtil::toInt(input->getValue<std::string>("DivergentTimeStep_L2Norm"))); - - std::vector<double> l2NormBasicTimeStep; - std::vector<double> l2NormDivergentTimeStep; - std::vector<double> l2NormDiff; - for (int j = 0; j < logFileData->getBasicGridLengths().size(); j++) { - std::ostringstream basicTimeStep, divergentTimeStep, diff; - std::ostringstream basicString; - basicString << "L" << logFileData->getBasicGridLengths().at(j) << "_" << dataToCalcL2Norm.at(i) << "_" << normData.at(k); - bool fail = false; - for (int l = 0; l < failL2Norm.size(); l++) - if (basicString.str() == failL2Norm.at(l)) - fail = true; - if (!fail) { - basicTimeStep << "L2Norm_BasicTimeStep_" << basicString.str(); - divergentTimeStep << "L2Norm_DivergentTimeStep_" << basicString.str(); - diff << "L2Norm_Diff_" << basicString.str(); - l2NormBasicTimeStep.push_back(StringUtil::toDouble(input->getValue<std::string>(basicTimeStep.str()))); - l2NormDivergentTimeStep.push_back(StringUtil::toDouble(input->getValue<std::string>(divergentTimeStep.str()))); - l2NormDiff.push_back(StringUtil::toDouble(input->getValue<std::string>(diff.str()))); - } - } - if (l2NormBasicTimeStep.size() > 0) { - if (l2NormBasicTimeStep.size() != logFileData->getBasicGridLengths().size() || l2NormDivergentTimeStep.size() != logFileData->getBasicGridLengths().size() || l2NormDiff.size() != logFileData->getBasicGridLengths().size()) { - std::vector<double> lengths; - std::vector<std::string> basicStrings; - for (int j = 0; j < logFileData->getBasicGridLengths().size(); j++) { - std::ostringstream basicString; - basicString << "L" << logFileData->getBasicGridLengths().at(j) << "_" << dataToCalcL2Norm.at(i) << "_" << normData.at(k); - basicStrings.push_back(basicString.str()); - lengths.push_back(logFileData->getBasicGridLengths().at(j)); - } - std::vector<double> failLengths; - for (int j = 0; j < basicStrings.size(); j++) { - bool lengthIsInFail = false; - for (int l = 0; l < failL2Norm.size(); l++) { - if (basicStrings.at(j) == failL2Norm.at(l)) - lengthIsInFail = true; - } - if (lengthIsInFail) - failLengths.push_back(lengths.at(j)); - } - for (int j = 0; j < failLengths.size(); j++) { - for (int l = 0; l < lengths.size(); l++) { - if (checkEqualDouble(failLengths.at(j), lengths.at(l))) { - std::vector<double>::iterator itBasic = l2NormBasicTimeStep.begin() + l; - l2NormBasicTimeStep.insert(itBasic, 0.0); - std::vector<double>::iterator itDiv = l2NormDivergentTimeStep.begin() + l; - l2NormDivergentTimeStep.insert(itDiv, 0.0); - std::vector<double>::iterator itDiff = l2NormDiff.begin() + l; - l2NormDiff.insert(itDiff, 0.0); - } - } - } - } - aL2Norm->setL2NormForBasicTimeStep(l2NormBasicTimeStep); - aL2Norm->setL2NormForDivergentTimeStep(l2NormDivergentTimeStep); - aL2Norm->setL2NormDiff(l2NormDiff); - l2NormGroup.push_back(aL2Norm); - } - } - } - if (l2NormGroup.size() > 0) - logFileData->setL2NormLogFileData(l2NormGroup); - else - logFileData->setL2NormTestRun(false); - } - - if (logFileData->getL2NormTestBetweenKernelRun()) { - std::vector<std::shared_ptr<L2NormBetweenKernelsLogFileData> > l2NormBetweenKernelsData; - std::vector<std::string> dataToCalc = StringUtil::toStringVector(input->getValue<std::string>("DataToCalculate_L2Norm_BK")); - std::vector<int> timeSteps = StringUtil::toIntVector(input->getValue<std::string>("TimeSteps_L2Norm_BK")); - std::vector<std::string> normalizeData = StringUtil::toStringVector(input->getValue<std::string>("NormalizeWith_L2Norm_BK")); - std::vector<std::string> failL2Norm = StringUtil::toStringVector(input->getValue<std::string>("FailTests_L2Norm_BK")); - - - for (int i = 0; i < dataToCalc.size(); i++) { - for (int j = 0; j < timeSteps.size(); j++) { - for (int k = 0; k < normalizeData.size(); k++) { - std::vector<double> l2NormBasicKernel; - std::vector<double> l2NormDivergentKernel; - std::vector<double> l2NormBetweenKernels; - std::shared_ptr<L2NormBetweenKernelsLogFileDataImp> aL2NormLogFileData = L2NormBetweenKernelsLogFileDataImp::getNewInstance(); - aL2NormLogFileData->setBasicKernel(input->getValue<std::string>("BasicKernel_L2Norm_BK")); - aL2NormLogFileData->setDivergentKernel(logFileData->getKernel()); - aL2NormLogFileData->setDataToCalculate(dataToCalc.at(i)); - aL2NormLogFileData->setTimeStep(timeSteps.at(j)); - aL2NormLogFileData->setNormalizeData(normalizeData.at(k)); - aL2NormLogFileData->setBasicGridLengths(logFileData->getBasicGridLengths()); - - for (int l = 0; l < logFileData->getBasicGridLengths().size(); l++) { - std::ostringstream basicKernel, divergentKernel, diff; - std::ostringstream basicString; - basicString << "L" << logFileData->getBasicGridLengths().at(l) << "_" << dataToCalc.at(i) << "_TimeStep_" << timeSteps.at(j) << "_" << normalizeData.at(k); - - std::string myString = basicString.str(); - bool fail = false; - for (int m = 0; m < failL2Norm.size(); m++) { - if (basicString.str() == failL2Norm.at(m)) - fail = true; - } - if (!fail) { - basicKernel << "L2Norm_BasicKernel_" << basicString.str(); - divergentKernel << "L2Norm_DivergentKernel_" << basicString.str(); - diff << "L2Norm_Between_Kernels_" << basicString.str(); - l2NormBasicKernel.push_back(StringUtil::toDouble(input->getValue<std::string>(basicKernel.str()))); - l2NormDivergentKernel.push_back(StringUtil::toDouble(input->getValue<std::string>(divergentKernel.str()))); - l2NormBetweenKernels.push_back(StringUtil::toDouble(input->getValue<std::string>(diff.str()))); - } - } - if (l2NormBasicKernel.size() > 0) { - if (l2NormBasicKernel.size() != logFileData->getBasicGridLengths().size() || l2NormDivergentKernel.size() != logFileData->getBasicGridLengths().size() || l2NormBetweenKernels.size() != logFileData->getBasicGridLengths().size()) { - std::vector<double> lengths; - std::vector<std::string> basicStrings; - for (int l = 0; l < logFileData->getBasicGridLengths().size(); l++) { - std::ostringstream basicString; - basicString << "L" << logFileData->getBasicGridLengths().at(l) << "_" << dataToCalc.at(i) << "_TimeStep_" << timeSteps.at(j) << "_" << normalizeData.at(k); - basicStrings.push_back(basicString.str()); - lengths.push_back(logFileData->getBasicGridLengths().at(l)); - } - std::vector<double> failLengths; - for (int m = 0; m < basicStrings.size(); m++) { - bool lengthIsInFail = false; - for (int l = 0; l < failL2Norm.size(); l++) { - if (basicStrings.at(m) == failL2Norm.at(l)) - lengthIsInFail = true; - } - if (lengthIsInFail) - failLengths.push_back(lengths.at(m)); - } - for (int m = 0; m < failLengths.size(); m++) { - for (int l = 0; l < lengths.size(); l++) { - if (checkEqualDouble(failLengths.at(m), lengths.at(l))) { - std::vector<double>::iterator itBasic = l2NormBasicKernel.begin() + l; - l2NormBasicKernel.insert(itBasic, 0.0); - std::vector<double>::iterator itDiv = l2NormDivergentKernel.begin() + l; - l2NormDivergentKernel.insert(itDiv, 0.0); - std::vector<double>::iterator itDiff = l2NormBetweenKernels.begin() + l; - l2NormBetweenKernels.insert(itDiff, 0.0); - } - - } - } - - } - aL2NormLogFileData->setL2NormForBasicKernel(l2NormBasicKernel); - aL2NormLogFileData->setL2NormForDivergentKernel(l2NormDivergentKernel); - aL2NormLogFileData->setL2NormBetweenKernels(l2NormBetweenKernels); - l2NormBetweenKernelsData.push_back(aL2NormLogFileData); - } - } - } - } - if (l2NormBetweenKernelsData.size() > 0) - logFileData->setL2NormBetweenKernelsLogFileData(l2NormBetweenKernelsData); - else - logFileData->setL2NormTestBetweenKernelRun(false); - } - - return logFileData; + std::shared_ptr<LogFileDataImp> logFileData = LogFileDataImp::getNewInstance(); + + auto input = std::make_shared<vf::basics::ConfigurationFile>(); + input->load(filePath); + + logFileData->setFilePath(filePath); + logFileData->setDate(input->getValue<std::string>("Date")); + logFileData->setTime(input->getValue<std::string>("Time")); + logFileData->setGpuDevices(StringUtil::toStringVector(input->getValue<std::string>("GPU_Devices"))); + + logFileData->setKernel(input->getValue<std::string>("Kernel")); + logFileData->setNumberOfTimeSteps(StringUtil::toInt(input->getValue<std::string>("NumberOfTimeSteps"))); + logFileData->setViscosity(StringUtil::toDouble(input->getValue<std::string>("Viscosity"))); + logFileData->setBasisTimeStepLength(StringUtil::toInt(input->getValue<std::string>("BasisTimeStepLength"))); + + logFileData->setSimName(input->getValue<std::string>("SimulationName")); + + + + + std::ostringstream simSigniture; + if (logFileData->getSimName() == "ShearWave") { + std::vector<double> shearWaveLx = StringUtil::toDoubleVector(input->getValue<std::string>("Lx")); + logFileData->setBasicGridLengths(shearWaveLx); + std::vector<int> shearWaveL0; + std::vector<double> shearWaveUx; + std::vector<double> shearWaveUz; + for (int i = 0; i < shearWaveLx.size(); i++) { + std::ostringstream l0, ux, uz; + l0 << "l0_" << shearWaveLx.at(i); + ux << "ux_" << shearWaveLx.at(i); + uz << "uz_" << shearWaveLx.at(i); + shearWaveL0.push_back(StringUtil::toInt(input->getValue<std::string>(l0.str()))); + shearWaveUx.push_back(StringUtil::toDouble(input->getValue<std::string>(ux.str()))); + shearWaveUz.push_back(StringUtil::toDouble(input->getValue<std::string>(uz.str()))); + } + std::shared_ptr<ShearWaveLogFileDataImp> swLogFileData = ShearWaveLogFileDataImp::getNewInstance(); + swLogFileData->setL0(shearWaveL0); + swLogFileData->setUx(shearWaveUx); + swLogFileData->setUz(shearWaveUz); + logFileData->setShearWaveLogFileData(swLogFileData); + simSigniture << logFileData->getKernel() << "ShearWaveViscosity" << logFileData->getViscosity() << "ux" << shearWaveUx.at(0) << "uz" << shearWaveUz.at(0); + logFileData->setBasicSimulation(ShearWave); + } + if (logFileData->getSimName() == "TaylorGreenVortexUx") { + std::vector<double> tgvUxLx = StringUtil::toDoubleVector(input->getValue<std::string>("Lx")); + logFileData->setBasicGridLengths(tgvUxLx); + std::vector<int> tgvUxL0; + std::vector<double> tgvUxUx; + std::vector<double> tgvUxAmp; + for (int i = 0; i < tgvUxLx.size(); i++) { + std::ostringstream l0, ux, amplitude; + l0 << "l0_" << tgvUxLx.at(i); + ux << "ux_" << tgvUxLx.at(i); + amplitude << "Amplitude_" << tgvUxLx.at(i); + tgvUxL0.push_back(StringUtil::toInt(input->getValue<std::string>(l0.str()))); + tgvUxUx.push_back(StringUtil::toDouble(input->getValue<std::string>(ux.str()))); + tgvUxAmp.push_back(StringUtil::toDouble(input->getValue<std::string>(amplitude.str()))); + } + std::shared_ptr<TaylorGreenVortexUxLogFileDataImp> tgvUxLogFileData = TaylorGreenVortexUxLogFileDataImp::getNewInstance(); + tgvUxLogFileData->setL0(tgvUxL0); + tgvUxLogFileData->setUx(tgvUxUx); + tgvUxLogFileData->setAmplitude(tgvUxAmp); + logFileData->setTaylorGreenVortexUxLogFileData(tgvUxLogFileData); + simSigniture << logFileData->getKernel() << "TaylorGreenVortexUxViscosity" << logFileData->getViscosity() << "Ux" << tgvUxUx.at(0) << "Amp" << tgvUxAmp.at(0); + logFileData->setBasicSimulation(TaylorGreenVortexUx); + } + if (logFileData->getSimName() == "TaylorGreenVortexUz") { + std::vector<double> tgvUzLz = StringUtil::toDoubleVector(input->getValue<std::string>("Lx")); + logFileData->setBasicGridLengths(tgvUzLz); + std::vector<int> tgvUzL0; + std::vector<double> tgvUzUz; + std::vector<double> tgvUzAmp; + for (int i = 0; i < tgvUzLz.size(); i++) { + std::ostringstream l0, uz, amplitude; + l0 << "l0_" << tgvUzLz.at(i); + uz << "uz_" << tgvUzLz.at(i); + amplitude << "Amplitude_" << tgvUzLz.at(i); + tgvUzL0.push_back(StringUtil::toInt(input->getValue<std::string>(l0.str()))); + tgvUzUz.push_back(StringUtil::toDouble(input->getValue<std::string>(uz.str()))); + tgvUzAmp.push_back(StringUtil::toDouble(input->getValue<std::string>(amplitude.str()))); + } + std::shared_ptr<TaylorGreenVortexUzLogFileDataImp> tgvUzLogFileData = TaylorGreenVortexUzLogFileDataImp::getNewInstance(); + tgvUzLogFileData->setL0(tgvUzL0); + tgvUzLogFileData->setUz(tgvUzUz); + tgvUzLogFileData->setAmplitude(tgvUzAmp); + logFileData->setTaylorGreenVortexUzLogFileData(tgvUzLogFileData); + simSigniture << logFileData->getKernel() << "TaylorGreenVortexUzViscosity" << logFileData->getViscosity() << "Uz" << tgvUzUz.at(0) << "Amp" << tgvUzAmp.at(0); + logFileData->setBasicSimulation(TaylorGreenVortexUz); + } + std::string compatibleString = removeCharsFromString(simSigniture.str(), ".-"); + logFileData->setSimulationSigniture(compatibleString); + + std::vector<int> simTime; + std::vector<double> resultsCheckTime; + std::vector<double> testTime; + std::vector<int> analyticalVTKWritingTime; + for (int i = 0; i < logFileData->getBasicGridLengths().size(); i++) { + std::ostringstream simTimeOStringStream, resultsCheckTimeOStringStream, testTimeOStringStream, analyticalVTKWritingTimeOStringStream; + simTimeOStringStream << "SimulationTime_" << logFileData->getBasicGridLengths().at(i); + resultsCheckTimeOStringStream << "ResultsCheckTime_" << logFileData->getBasicGridLengths().at(i); + testTimeOStringStream << "TestTime_" << logFileData->getBasicGridLengths().at(i); + analyticalVTKWritingTimeOStringStream << "AnalyticalVTKFileWritingTime_" << logFileData->getBasicGridLengths().at(i); + std::string simTimeString = input->getValue<std::string>(simTimeOStringStream.str()); + std::string resultCheckTimeString = input->getValue<std::string>(resultsCheckTimeOStringStream.str()); + std::string testTimeString = input->getValue<std::string>(testTimeOStringStream.str()); + std::string analyticalVTKWritingTimeString = input->getValue<std::string>(analyticalVTKWritingTimeOStringStream.str()); + simTimeString.erase(simTimeString.end() - 3, simTimeString.end()); + resultCheckTimeString.erase(resultCheckTimeString.end() - 3, resultCheckTimeString.end()); + testTimeString.erase(testTimeString.end() - 3, testTimeString.end()); + analyticalVTKWritingTimeString.erase(analyticalVTKWritingTimeString.end() - 3, analyticalVTKWritingTimeString.end()); + simTime.push_back(StringUtil::toInt(simTimeString)); + resultsCheckTime.push_back(StringUtil::toDouble(resultCheckTimeString)); + testTime.push_back(StringUtil::toDouble(testTimeString)); + analyticalVTKWritingTime.push_back(StringUtil::toInt(analyticalVTKWritingTimeString)); + } + + logFileData->setVTKFileWriting(StringUtil::toBool(input->getValue<std::string>("VTKFileWriting"))); + logFileData->setSimTime(simTime); + logFileData->setResultCheckTime(resultsCheckTime); + logFileData->setTestTime(testTime); + logFileData->setAnalyticalVTKWritingTime(analyticalVTKWritingTime); + + logFileData->setPhiTestRun(StringUtil::toBool(input->getValue<std::string>("PhiTest"))); + logFileData->setNyTestRun(StringUtil::toBool(input->getValue<std::string>("NyTest"))); + logFileData->setL2NormTestRun(StringUtil::toBool(input->getValue<std::string>("L2NormTest"))); + logFileData->setL2NormTestBetweenKernelRun(StringUtil::toBool(input->getValue<std::string>("L2NormTestBetweenKernel"))); + + if (logFileData->getPhiTestRun()) { + std::vector<std::string> failPhi = StringUtil::toStringVector(input->getValue<std::string>("FailTests_Phi_PhiTest")); + std::vector<std::string> failOOA = StringUtil::toStringVector(input->getValue<std::string>("FailTests_OOA_PhiTest")); + + std::vector<std::string> dataToCalc = StringUtil::toStringVector(input->getValue<std::string>("DataToCalc_PhiTest")); + std::vector<std::shared_ptr<PhiLogFileData> > aPhiLogGroup; + for (int i = 0; i < dataToCalc.size(); i++) { + std::shared_ptr<PhiLogFileDataImp> phiLog = PhiLogFileDataImp::getNewInstance(); + phiLog->setBasicGridLengths(logFileData->getBasicGridLengths()); + phiLog->setDataToCalc(dataToCalc.at(i)); + phiLog->setStartTimeStepCalculation(StringUtil::toInt(input->getValue<std::string>("StartTimeStepCalculation_PhiTest"))); + phiLog->setEndTimeStepCalculation(StringUtil::toInt(input->getValue<std::string>("EndTimeStepCalculation_PhiTest"))); + + std::vector<double> phiDiff; + std::vector<std::vector<double> > orderOfAccuracy; + for (int j = 0; j < logFileData->getBasicGridLengths().size(); j++) { + std::ostringstream phiBasicString, phiString, phiDiffString; + phiBasicString << logFileData->getBasicGridLengths().at(j) << "_" << dataToCalc.at(i); + bool failData = false; + for (int k = 0; k < failPhi.size(); k++) { + if (phiBasicString.str() == failPhi.at(k)) + failData = true; + } + if (!failData) { + phiDiffString << "PhiDiff_" << logFileData->getBasicGridLengths().at(j) << "_" << dataToCalc.at(i); + phiDiff.push_back(StringUtil::toDouble(input->getValue<std::string>(phiDiffString.str()))); + } + + for (int k = j + 1; k < logFileData->getBasicGridLengths().size(); k++) { + std::vector<double> aOrderOfAccuracyGroup; + std::ostringstream phiDiffOOA, phiDiffBasicOOA; + phiDiffBasicOOA << logFileData->getBasicGridLengths().at(j) << "_" << logFileData->getBasicGridLengths().at(k) << "_" << dataToCalc.at(i); + bool failData = false; + for (int k = 0; k < failOOA.size(); k++) { + if (phiDiffBasicOOA.str() == failOOA.at(k)) + failData = true; + } + if (!failData) { + phiDiffOOA << "OrderOfAccuracy_PhiDiff_" << phiDiffBasicOOA.str(); + aOrderOfAccuracyGroup.push_back(logFileData->getBasicGridLengths().at(j)); + aOrderOfAccuracyGroup.push_back(logFileData->getBasicGridLengths().at(k)); + aOrderOfAccuracyGroup.push_back(StringUtil::toDouble(input->getValue<std::string>(phiDiffOOA.str()))); + } + if (aOrderOfAccuracyGroup.size() > 0) + orderOfAccuracy.push_back(aOrderOfAccuracyGroup); + + } + + + } + if (phiDiff.size() > 0) { + phiLog->setPhiDiff(phiDiff); + } + if (orderOfAccuracy.size() > 0) + phiLog->setOrderOfAccuracy(orderOfAccuracy); + if (phiDiff.size() > 0 || orderOfAccuracy.size() > 0) + aPhiLogGroup.push_back(phiLog); + } + if (aPhiLogGroup.size() > 0) + logFileData->setPhiLogFileData(aPhiLogGroup); + else + logFileData->setPhiTestRun(false); + } + + + if (logFileData->getNyTestRun()) { + std::vector<std::string> failNy = StringUtil::toStringVector(input->getValue<std::string>("FailTests_Ny_NyTest")); + std::vector<std::string> failOOA = StringUtil::toStringVector(input->getValue<std::string>("FailTests_OOA_NyTest")); + + std::vector<std::string> dataToCalc = StringUtil::toStringVector(input->getValue<std::string>("DataToCalc_NyTest")); + std::vector<std::shared_ptr<NyLogFileData> > aNyLogGroup; + for (int i = 0; i < dataToCalc.size(); i++) { + std::shared_ptr<NyLogFileDataImp> nyLog = NyLogFileDataImp::getNewInstance(); + nyLog->setBasicGridLengths(logFileData->getBasicGridLengths()); + nyLog->setDataToCalc(dataToCalc.at(i)); + nyLog->setStartTimeStepCalculation(StringUtil::toInt(input->getValue<std::string>("StartTimeStepCalculation_NyTest"))); + nyLog->setEndTimeStepCalculation(StringUtil::toInt(input->getValue<std::string>("EndTimeStepCalculation_NyTest"))); + + std::vector<double> ny, nyDiff; + std::vector<std::vector<double> > orderOfAccuracy; + for (int j = 0; j < logFileData->getBasicGridLengths().size(); j++) { + std::ostringstream nyBasicString, nyString, nyDiffString; + nyBasicString << logFileData->getBasicGridLengths().at(j) << "_" << dataToCalc.at(i); + bool failData = false; + for (int k = 0; k < failNy.size(); k++) { + if (nyBasicString.str() == failNy.at(k)) + failData = true; + } + if (!failData) { + nyString << "Ny_" << nyBasicString.str(); + ny.push_back(StringUtil::toDouble(input->getValue<std::string>(nyString.str()))); + nyDiffString << "NyDiff_" << logFileData->getBasicGridLengths().at(j) << "_" << dataToCalc.at(i); + nyDiff.push_back(StringUtil::toDouble(input->getValue<std::string>(nyDiffString.str()))); + } + + + for (int k = j + 1; k < logFileData->getBasicGridLengths().size(); k++) { + std::vector<double> aOrderOfAccuracyGroup; + std::ostringstream nyDiffOOA, nyDiffBasicOOA; + nyDiffBasicOOA << logFileData->getBasicGridLengths().at(j) << "_" << logFileData->getBasicGridLengths().at(k) << "_" << dataToCalc.at(i); + bool failData = false; + for (int k = 0; k < failOOA.size(); k++) { + if (nyDiffBasicOOA.str() == failOOA.at(k)) + failData = true; + } + if (!failData) { + nyDiffOOA << "OrderOfAccuracy_NyDiff_" << nyDiffBasicOOA.str(); + aOrderOfAccuracyGroup.push_back(logFileData->getBasicGridLengths().at(j)); + aOrderOfAccuracyGroup.push_back(logFileData->getBasicGridLengths().at(k)); + aOrderOfAccuracyGroup.push_back(StringUtil::toDouble(input->getValue<std::string>(nyDiffOOA.str()))); + } + if (aOrderOfAccuracyGroup.size() > 0) + orderOfAccuracy.push_back(aOrderOfAccuracyGroup); + + } + + + } + if (ny.size() > 0) { + nyLog->setNy(ny); + nyLog->setNyDiff(nyDiff); + } + if (orderOfAccuracy.size() > 0) + nyLog->setOrderOfAccuracy(orderOfAccuracy); + if (ny.size() > 0 || orderOfAccuracy.size() > 0) + aNyLogGroup.push_back(nyLog); + } + if (aNyLogGroup.size() > 0) + logFileData->setNyLogFileData(aNyLogGroup); + else + logFileData->setNyTestRun(false); + } + + if (logFileData->getL2NormTestRun()) { + std::vector<std::shared_ptr<L2NormLogFileData> > l2NormGroup; + std::vector<std::string> dataToCalcL2Norm = StringUtil::toStringVector(input->getValue<std::string>("DataToCalc_L2Norm")); + std::vector<std::string> normData = StringUtil::toStringVector(input->getValue<std::string>("NormalizeData_L2Norm")); + std::vector<std::string> failL2Norm = StringUtil::toStringVector(input->getValue<std::string>("FailTests_L2Norm")); + for (int i = 0; i < dataToCalcL2Norm.size(); i++) { + for (int k = 0; k < normData.size(); k++) { + std::shared_ptr<L2NormLogFileDataImp> aL2Norm = L2NormLogFileDataImp::getNewInstance(); + aL2Norm->setDataToCalc(dataToCalcL2Norm.at(i)); + aL2Norm->setNormalizeData(normData.at(k)); + aL2Norm->setBasicGridLengths(logFileData->getBasicGridLengths()); + aL2Norm->setBasicTimeStep(StringUtil::toInt(input->getValue<std::string>("BasicTimeStep_L2Norm"))); + aL2Norm->setDivergentTimeStep(StringUtil::toInt(input->getValue<std::string>("DivergentTimeStep_L2Norm"))); + + std::vector<double> l2NormBasicTimeStep; + std::vector<double> l2NormDivergentTimeStep; + std::vector<double> l2NormDiff; + for (int j = 0; j < logFileData->getBasicGridLengths().size(); j++) { + std::ostringstream basicTimeStep, divergentTimeStep, diff; + std::ostringstream basicString; + basicString << "L" << logFileData->getBasicGridLengths().at(j) << "_" << dataToCalcL2Norm.at(i) << "_" << normData.at(k); + bool fail = false; + for (int l = 0; l < failL2Norm.size(); l++) + if (basicString.str() == failL2Norm.at(l)) + fail = true; + if (!fail) { + basicTimeStep << "L2Norm_BasicTimeStep_" << basicString.str(); + divergentTimeStep << "L2Norm_DivergentTimeStep_" << basicString.str(); + diff << "L2Norm_Diff_" << basicString.str(); + l2NormBasicTimeStep.push_back(StringUtil::toDouble(input->getValue<std::string>(basicTimeStep.str()))); + l2NormDivergentTimeStep.push_back(StringUtil::toDouble(input->getValue<std::string>(divergentTimeStep.str()))); + l2NormDiff.push_back(StringUtil::toDouble(input->getValue<std::string>(diff.str()))); + } + } + if (l2NormBasicTimeStep.size() > 0) { + if (l2NormBasicTimeStep.size() != logFileData->getBasicGridLengths().size() || l2NormDivergentTimeStep.size() != logFileData->getBasicGridLengths().size() || l2NormDiff.size() != logFileData->getBasicGridLengths().size()) { + std::vector<double> lengths; + std::vector<std::string> basicStrings; + for (int j = 0; j < logFileData->getBasicGridLengths().size(); j++) { + std::ostringstream basicString; + basicString << "L" << logFileData->getBasicGridLengths().at(j) << "_" << dataToCalcL2Norm.at(i) << "_" << normData.at(k); + basicStrings.push_back(basicString.str()); + lengths.push_back(logFileData->getBasicGridLengths().at(j)); + } + std::vector<double> failLengths; + for (int j = 0; j < basicStrings.size(); j++) { + bool lengthIsInFail = false; + for (int l = 0; l < failL2Norm.size(); l++) { + if (basicStrings.at(j) == failL2Norm.at(l)) + lengthIsInFail = true; + } + if (lengthIsInFail) + failLengths.push_back(lengths.at(j)); + } + for (int j = 0; j < failLengths.size(); j++) { + for (int l = 0; l < lengths.size(); l++) { + if (checkEqualDouble(failLengths.at(j), lengths.at(l))) { + std::vector<double>::iterator itBasic = l2NormBasicTimeStep.begin() + l; + l2NormBasicTimeStep.insert(itBasic, 0.0); + std::vector<double>::iterator itDiv = l2NormDivergentTimeStep.begin() + l; + l2NormDivergentTimeStep.insert(itDiv, 0.0); + std::vector<double>::iterator itDiff = l2NormDiff.begin() + l; + l2NormDiff.insert(itDiff, 0.0); + } + } + } + } + aL2Norm->setL2NormForBasicTimeStep(l2NormBasicTimeStep); + aL2Norm->setL2NormForDivergentTimeStep(l2NormDivergentTimeStep); + aL2Norm->setL2NormDiff(l2NormDiff); + l2NormGroup.push_back(aL2Norm); + } + } + } + if (l2NormGroup.size() > 0) + logFileData->setL2NormLogFileData(l2NormGroup); + else + logFileData->setL2NormTestRun(false); + } + + if (logFileData->getL2NormTestBetweenKernelRun()) { + std::vector<std::shared_ptr<L2NormBetweenKernelsLogFileData> > l2NormBetweenKernelsData; + std::vector<std::string> dataToCalc = StringUtil::toStringVector(input->getValue<std::string>("DataToCalculate_L2Norm_BK")); + std::vector<int> timeSteps = StringUtil::toIntVector(input->getValue<std::string>("TimeSteps_L2Norm_BK")); + std::vector<std::string> normalizeData = StringUtil::toStringVector(input->getValue<std::string>("NormalizeWith_L2Norm_BK")); + std::vector<std::string> failL2Norm = StringUtil::toStringVector(input->getValue<std::string>("FailTests_L2Norm_BK")); + + + for (int i = 0; i < dataToCalc.size(); i++) { + for (int j = 0; j < timeSteps.size(); j++) { + for (int k = 0; k < normalizeData.size(); k++) { + std::vector<double> l2NormBasicKernel; + std::vector<double> l2NormDivergentKernel; + std::vector<double> l2NormBetweenKernels; + std::shared_ptr<L2NormBetweenKernelsLogFileDataImp> aL2NormLogFileData = L2NormBetweenKernelsLogFileDataImp::getNewInstance(); + aL2NormLogFileData->setBasicKernel(input->getValue<std::string>("BasicKernel_L2Norm_BK")); + aL2NormLogFileData->setDivergentKernel(logFileData->getKernel()); + aL2NormLogFileData->setDataToCalculate(dataToCalc.at(i)); + aL2NormLogFileData->setTimeStep(timeSteps.at(j)); + aL2NormLogFileData->setNormalizeData(normalizeData.at(k)); + aL2NormLogFileData->setBasicGridLengths(logFileData->getBasicGridLengths()); + + for (int l = 0; l < logFileData->getBasicGridLengths().size(); l++) { + std::ostringstream basicKernel, divergentKernel, diff; + std::ostringstream basicString; + basicString << "L" << logFileData->getBasicGridLengths().at(l) << "_" << dataToCalc.at(i) << "_TimeStep_" << timeSteps.at(j) << "_" << normalizeData.at(k); + + std::string myString = basicString.str(); + bool fail = false; + for (int m = 0; m < failL2Norm.size(); m++) { + if (basicString.str() == failL2Norm.at(m)) + fail = true; + } + if (!fail) { + basicKernel << "L2Norm_BasicKernel_" << basicString.str(); + divergentKernel << "L2Norm_DivergentKernel_" << basicString.str(); + diff << "L2Norm_Between_Kernels_" << basicString.str(); + l2NormBasicKernel.push_back(StringUtil::toDouble(input->getValue<std::string>(basicKernel.str()))); + l2NormDivergentKernel.push_back(StringUtil::toDouble(input->getValue<std::string>(divergentKernel.str()))); + l2NormBetweenKernels.push_back(StringUtil::toDouble(input->getValue<std::string>(diff.str()))); + } + } + if (l2NormBasicKernel.size() > 0) { + if (l2NormBasicKernel.size() != logFileData->getBasicGridLengths().size() || l2NormDivergentKernel.size() != logFileData->getBasicGridLengths().size() || l2NormBetweenKernels.size() != logFileData->getBasicGridLengths().size()) { + std::vector<double> lengths; + std::vector<std::string> basicStrings; + for (int l = 0; l < logFileData->getBasicGridLengths().size(); l++) { + std::ostringstream basicString; + basicString << "L" << logFileData->getBasicGridLengths().at(l) << "_" << dataToCalc.at(i) << "_TimeStep_" << timeSteps.at(j) << "_" << normalizeData.at(k); + basicStrings.push_back(basicString.str()); + lengths.push_back(logFileData->getBasicGridLengths().at(l)); + } + std::vector<double> failLengths; + for (int m = 0; m < basicStrings.size(); m++) { + bool lengthIsInFail = false; + for (int l = 0; l < failL2Norm.size(); l++) { + if (basicStrings.at(m) == failL2Norm.at(l)) + lengthIsInFail = true; + } + if (lengthIsInFail) + failLengths.push_back(lengths.at(m)); + } + for (int m = 0; m < failLengths.size(); m++) { + for (int l = 0; l < lengths.size(); l++) { + if (checkEqualDouble(failLengths.at(m), lengths.at(l))) { + std::vector<double>::iterator itBasic = l2NormBasicKernel.begin() + l; + l2NormBasicKernel.insert(itBasic, 0.0); + std::vector<double>::iterator itDiv = l2NormDivergentKernel.begin() + l; + l2NormDivergentKernel.insert(itDiv, 0.0); + std::vector<double>::iterator itDiff = l2NormBetweenKernels.begin() + l; + l2NormBetweenKernels.insert(itDiff, 0.0); + } + + } + } + + } + aL2NormLogFileData->setL2NormForBasicKernel(l2NormBasicKernel); + aL2NormLogFileData->setL2NormForDivergentKernel(l2NormDivergentKernel); + aL2NormLogFileData->setL2NormBetweenKernels(l2NormBetweenKernels); + l2NormBetweenKernelsData.push_back(aL2NormLogFileData); + } + } + } + } + if (l2NormBetweenKernelsData.size() > 0) + logFileData->setL2NormBetweenKernelsLogFileData(l2NormBetweenKernelsData); + else + logFileData->setL2NormTestBetweenKernelRun(false); + } + + return logFileData; } std::vector<std::shared_ptr<LogFileData> > LogFileReader::readLogFilesInDirectoryToLogFileData(std::string directory) { - std::vector<std::shared_ptr<LogFileData> > logFileData; - - std::cout << "seaching for LogFiles in: " << directory << std::endl; - std::vector<std::string> filePaths = getAllFilesInDir(directory, ".txt"); - std::cout << filePaths.size() << " LogFiles found." << std::endl; - std::cout << "reading LogFiles.." << std::endl; - for (int i = 0; i < filePaths.size(); i++) { - logFileData.push_back(readLogFileToLogFileData(filePaths.at(i))); - } - return logFileData; + std::vector<std::shared_ptr<LogFileData> > logFileData; + + std::cout << "seaching for LogFiles in: " << directory << std::endl; + std::vector<std::string> filePaths = getAllFilesInDir(directory, ".txt"); + std::cout << filePaths.size() << " LogFiles found." << std::endl; + std::cout << "reading LogFiles.." << std::endl; + for (int i = 0; i < filePaths.size(); i++) { + logFileData.push_back(readLogFileToLogFileData(filePaths.at(i))); + } + return logFileData; } LogFileReader::LogFileReader() @@ -486,31 +486,31 @@ LogFileReader::LogFileReader() std::vector<std::string> LogFileReader::getAllFilesInDir(const std::string &dirPath, const std::string &fileExtension) { - std::vector<std::string> listOfFiles; - std::filesystem::path myPath = dirPath; - if (std::filesystem::exists(myPath) && std::filesystem::is_directory(myPath)) - { - for (auto& item : std::filesystem::recursive_directory_iterator(myPath)) - { - if (std::filesystem::is_regular_file(item.path()) && item.path().extension() == fileExtension) - listOfFiles.push_back(item.path().string()); - } - } - return listOfFiles; + std::vector<std::string> listOfFiles; + std::filesystem::path myPath = dirPath; + if (std::filesystem::exists(myPath) && std::filesystem::is_directory(myPath)) + { + for (auto& item : std::filesystem::recursive_directory_iterator(myPath)) + { + if (std::filesystem::is_regular_file(item.path()) && item.path().extension() == fileExtension) + listOfFiles.push_back(item.path().string()); + } + } + return listOfFiles; } std::string LogFileReader::removeCharsFromString(std::string str, char * charsToRemove) { - for (unsigned int i = 0; i < std::strlen(charsToRemove); ++i) - str.erase(remove(str.begin(), str.end(), charsToRemove[i]), str.end()); - return str; + for (unsigned int i = 0; i < std::strlen(charsToRemove); ++i) + str.erase(remove(str.begin(), str.end(), charsToRemove[i]), str.end()); + return str; } bool LogFileReader::checkEqualDouble(double one, double two) { - const FloatingPoint<double> lhs(one), rhs(two); + const FloatingPoint<double> lhs(one), rhs(two); - if (lhs.AlmostEquals(rhs)) - return true; - return false; + if (lhs.AlmostEquals(rhs)) + return true; + return false; } diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/LogFileReader/LogFileReader.h b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/LogFileReader/LogFileReader.h index a48a6a45e3d3319eb7f08e948e4877f9d4b18f74..457d1b8e1de0d1caea18cab018edd24a2904b3b6 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/LogFileReader/LogFileReader.h +++ b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/LogFileReader/LogFileReader.h @@ -10,18 +10,18 @@ class LogFileData; class LogFileReader { public: - static std::shared_ptr<LogFileReader> getInstance(); - - std::shared_ptr<LogFileData> readLogFileToLogFileData(std::string filePath); - std::vector<std::shared_ptr<LogFileData> > readLogFilesInDirectoryToLogFileData(std::string directory); - + static std::shared_ptr<LogFileReader> getInstance(); + + std::shared_ptr<LogFileData> readLogFileToLogFileData(std::string filePath); + std::vector<std::shared_ptr<LogFileData> > readLogFilesInDirectoryToLogFileData(std::string directory); + private: - LogFileReader(); + LogFileReader(); - std::vector<std::string> getAllFilesInDir(const std::string &dirPath, const std::string &fileExtension); - std::string removeCharsFromString(std::string str, char* charsToRemove); - bool checkEqualDouble(double one, double two); + std::vector<std::string> getAllFilesInDir(const std::string &dirPath, const std::string &fileExtension); + std::string removeCharsFromString(std::string str, char* charsToRemove); + bool checkEqualDouble(double one, double two); }; diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaAssistant/MathematicaAssistant.h b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaAssistant/MathematicaAssistant.h index cfbcf42eb7a171e6e8840de9f56ce0ec2541611e..16ee6901843b18d3aea767750a67665f6ae7695f 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaAssistant/MathematicaAssistant.h +++ b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaAssistant/MathematicaAssistant.h @@ -13,6 +13,6 @@ class MathematicaFile; class MathematicaAssistant { public: - virtual void makeMathematicaOutput(std::shared_ptr<LogFileDataGroup> logFileData, std::shared_ptr<MathematicaFile> aMathmaticaFile) = 0; + virtual void makeMathematicaOutput(std::shared_ptr<LogFileDataGroup> logFileData, std::shared_ptr<MathematicaFile> aMathmaticaFile) = 0; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaAssistant/MathematicaAssistantFactory/MathematicaAssistantFactory.h b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaAssistant/MathematicaAssistantFactory/MathematicaAssistantFactory.h index 9afdf455b948fe669d9a95f33e66668db77fae81..0b737cc889fd5619e70860c136ab8b459251be5c 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaAssistant/MathematicaAssistantFactory/MathematicaAssistantFactory.h +++ b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaAssistant/MathematicaAssistantFactory/MathematicaAssistantFactory.h @@ -11,7 +11,7 @@ class MathematicaFunctionFactory; class MathematicaAssistantFactory { public: - virtual std::vector<std::shared_ptr<MathematicaAssistant> > makeMathematicaAssistants(std::vector<Assistant> types, std::shared_ptr<MathematicaFunctionFactory> functionFactory) = 0; + virtual std::vector<std::shared_ptr<MathematicaAssistant> > makeMathematicaAssistants(std::vector<Assistant> types, std::shared_ptr<MathematicaFunctionFactory> functionFactory) = 0; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaAssistant/MathematicaAssistantFactory/MathematicaAssistantFactoryImp.cpp b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaAssistant/MathematicaAssistantFactory/MathematicaAssistantFactoryImp.cpp index 86d6262c71d2c35b85649de1fe744e1085ad7c1e..acf0671ec422a35504b6f229e4c1ffba193be67c 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaAssistant/MathematicaAssistantFactory/MathematicaAssistantFactoryImp.cpp +++ b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaAssistant/MathematicaAssistantFactory/MathematicaAssistantFactoryImp.cpp @@ -9,39 +9,39 @@ std::shared_ptr<MathematicaAssistantFactory> MathematicaAssistantFactoryImp::getNewInstance() { - return std::shared_ptr<MathematicaAssistantFactory>(new MathematicaAssistantFactoryImp()); + return std::shared_ptr<MathematicaAssistantFactory>(new MathematicaAssistantFactoryImp()); } std::vector<std::shared_ptr<MathematicaAssistant>> MathematicaAssistantFactoryImp::makeMathematicaAssistants(std::vector<Assistant> types, std::shared_ptr<MathematicaFunctionFactory> functionFactory) { - std::vector<std::shared_ptr<MathematicaAssistant>> myAssistants; - - for(int i = 0; i < types.size(); i++){ - switch (types.at(i)) - { - case Phi: - myAssistants.push_back(PhiMathematicaAssistant::getNewInstance(functionFactory)); - break; - case Ny: - myAssistants.push_back(NyMathematicaAssistant::getNewInstance(functionFactory)); - break; - case L2Norm: - myAssistants.push_back(L2NormMathematicaAssistant::getNewInstance(functionFactory)); - break; - case L2NormBetweenKernels: - myAssistants.push_back(L2NormBetweenKernelsMathematicaAssistant::getNewInstance(functionFactory)); - break; - case Time: - myAssistants.push_back(TimeMathematicaAssistant::getNewInstance(functionFactory)); - break; - default: - break; - } - - } - - - return myAssistants; + std::vector<std::shared_ptr<MathematicaAssistant>> myAssistants; + + for(int i = 0; i < types.size(); i++){ + switch (types.at(i)) + { + case Phi: + myAssistants.push_back(PhiMathematicaAssistant::getNewInstance(functionFactory)); + break; + case Ny: + myAssistants.push_back(NyMathematicaAssistant::getNewInstance(functionFactory)); + break; + case L2Norm: + myAssistants.push_back(L2NormMathematicaAssistant::getNewInstance(functionFactory)); + break; + case L2NormBetweenKernels: + myAssistants.push_back(L2NormBetweenKernelsMathematicaAssistant::getNewInstance(functionFactory)); + break; + case Time: + myAssistants.push_back(TimeMathematicaAssistant::getNewInstance(functionFactory)); + break; + default: + break; + } + + } + + + return myAssistants; } MathematicaAssistantFactoryImp::MathematicaAssistantFactoryImp() diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaAssistant/MathematicaAssistantFactory/MathematicaAssistantFactoryImp.h b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaAssistant/MathematicaAssistantFactory/MathematicaAssistantFactoryImp.h index 6acacadc59ce1db5c3b9590b8e1ef663e0084398..45dcdaae37f5f7753fbf5cc26ae11420ed3e361f 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaAssistant/MathematicaAssistantFactory/MathematicaAssistantFactoryImp.h +++ b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaAssistant/MathematicaAssistantFactory/MathematicaAssistantFactoryImp.h @@ -6,11 +6,11 @@ class MathematicaAssistantFactoryImp : public MathematicaAssistantFactory { public: - static std::shared_ptr<MathematicaAssistantFactory> getNewInstance(); + static std::shared_ptr<MathematicaAssistantFactory> getNewInstance(); - std::vector<std::shared_ptr<MathematicaAssistant> > makeMathematicaAssistants(std::vector<Assistant> types, std::shared_ptr<MathematicaFunctionFactory> functionFactory); + std::vector<std::shared_ptr<MathematicaAssistant> > makeMathematicaAssistants(std::vector<Assistant> types, std::shared_ptr<MathematicaFunctionFactory> functionFactory); private: - MathematicaAssistantFactoryImp(); + MathematicaAssistantFactoryImp(); }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaAssistant/MathematicaAssistantImp.cpp b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaAssistant/MathematicaAssistantImp.cpp index ef041d1cf5cd86f436a7acb9aed37c7e072a7c57..5177b8c8d274db8746a5f5bdd0a70d73f4ef25e1 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaAssistant/MathematicaAssistantImp.cpp +++ b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaAssistant/MathematicaAssistantImp.cpp @@ -12,138 +12,138 @@ MathematicaAssistantImp::MathematicaAssistantImp() MathematicaAssistantImp::MathematicaAssistantImp(std::shared_ptr<MathematicaFunctionFactory> functionFactory) { - this->functionFactory = functionFactory; + this->functionFactory = functionFactory; } std::vector<std::string> MathematicaAssistantImp::finalizeListNames(std::vector<std::string> basicListNames, std::string testName, std::string dataToCalc) { - std::vector<std::string> finalListNames; + std::vector<std::string> finalListNames; - for (int i = 0; i < basicListNames.size(); i++) - finalListNames.push_back(finalizeListName(basicListNames.at(i), testName, dataToCalc)); + for (int i = 0; i < basicListNames.size(); i++) + finalListNames.push_back(finalizeListName(basicListNames.at(i), testName, dataToCalc)); - return finalListNames; + return finalListNames; } std::vector<std::string> MathematicaAssistantImp::finalizeListNames(std::vector<std::string> basicListNames, std::string testName, std::string dataToCalc, std::string normalizeData) { - std::vector<std::string> finalListNames; + std::vector<std::string> finalListNames; - for (int i = 0; i < basicListNames.size(); i++) - finalListNames.push_back(testName + basicListNames.at(i) + dataToCalc + normalizeData); + for (int i = 0; i < basicListNames.size(); i++) + finalListNames.push_back(testName + basicListNames.at(i) + dataToCalc + normalizeData); - return finalListNames; + return finalListNames; } std::vector<std::string> MathematicaAssistantImp::finalizeListNames(std::vector<std::string> basicListNames, std::string testName, std::string dataToCalc, std::string normalizeData, std::string timeStep) { - std::vector<std::string> finalListNames; + std::vector<std::string> finalListNames; - for (int i = 0; i < basicListNames.size(); i++) - finalListNames.push_back(testName + basicListNames.at(i) + dataToCalc + normalizeData + timeStep); + for (int i = 0; i < basicListNames.size(); i++) + finalListNames.push_back(testName + basicListNames.at(i) + dataToCalc + normalizeData + timeStep); - return finalListNames; + return finalListNames; } std::vector<std::string> MathematicaAssistantImp::finalizeListNames(std::vector<std::string> basicListNames, std::string testName, std::string dataToCalc, std::string normalizeData, std::vector<std::string> timeSteps) { - std::vector<std::string> finalListNames; + std::vector<std::string> finalListNames; - for (int i = 0; i < basicListNames.size(); i++) - finalListNames.push_back(testName + basicListNames.at(i) + dataToCalc + normalizeData + timeSteps.at(i)); + for (int i = 0; i < basicListNames.size(); i++) + finalListNames.push_back(testName + basicListNames.at(i) + dataToCalc + normalizeData + timeSteps.at(i)); - return finalListNames; + return finalListNames; } std::vector<std::string> MathematicaAssistantImp::finalizeListNames(std::vector<std::string> basicListNames, std::string testName, std::string dataToCalc, std::string normalizeData, std::vector<std::string> timeSteps, std::vector<std::string> basicKernels) { - std::vector<std::string> finalListNames; + std::vector<std::string> finalListNames; - for (int i = 0; i < basicListNames.size(); i++) - finalListNames.push_back(testName + basicListNames.at(i) + dataToCalc + normalizeData + timeSteps.at(i) + basicKernels.at(i)); + for (int i = 0; i < basicListNames.size(); i++) + finalListNames.push_back(testName + basicListNames.at(i) + dataToCalc + normalizeData + timeSteps.at(i) + basicKernels.at(i)); - return finalListNames; + return finalListNames; } std::string MathematicaAssistantImp::finalizeListName(std::string basicListName, std::string testName, std::string dataToCalc) { - return testName + basicListName + dataToCalc; + return testName + basicListName + dataToCalc; } void MathematicaAssistantImp::addListLogLogPlotToMathematicaFile(std::shared_ptr<MathematicaFile> aMathmaticaFile, std::vector<std::string> listNames, std::vector<std::vector<double>> xAxesData, std::vector<std::vector<double>> yAxesData, std::string labelXAxes, std::string labelYAxes) { - std::vector<std::vector<std::shared_ptr<DataPoint> > > dataPointGroup; - - for (int i = 0; i < xAxesData.size(); i++) { - std::vector<std::shared_ptr<DataPoint> > dataPoints; - for (int j = 0; j < xAxesData.at(i).size(); j++) - dataPoints.push_back(DataPoint::getNewInstance(xAxesData.at(i).at(j), yAxesData.at(i).at(j))); - dataPointGroup.push_back(dataPoints); - } - std::vector<std::shared_ptr<MathematicaPointList> > pointList; - for (int i = 0; i < dataPointGroup.size(); i++) { - std::shared_ptr<MathematicaPointList> aPointList = functionFactory->makeMathematicaPointList(aMathmaticaFile, listNames.at(i), dataPointGroup.at(i)); - pointList.push_back(aPointList); - } - std::shared_ptr<MathematicaListPlot> listLogLogPlot = functionFactory->makeMathematicaListPlot(aMathmaticaFile, pointList, "ListLogLogPlot", labelXAxes, labelYAxes); + std::vector<std::vector<std::shared_ptr<DataPoint> > > dataPointGroup; + + for (int i = 0; i < xAxesData.size(); i++) { + std::vector<std::shared_ptr<DataPoint> > dataPoints; + for (int j = 0; j < xAxesData.at(i).size(); j++) + dataPoints.push_back(DataPoint::getNewInstance(xAxesData.at(i).at(j), yAxesData.at(i).at(j))); + dataPointGroup.push_back(dataPoints); + } + std::vector<std::shared_ptr<MathematicaPointList> > pointList; + for (int i = 0; i < dataPointGroup.size(); i++) { + std::shared_ptr<MathematicaPointList> aPointList = functionFactory->makeMathematicaPointList(aMathmaticaFile, listNames.at(i), dataPointGroup.at(i)); + pointList.push_back(aPointList); + } + std::shared_ptr<MathematicaListPlot> listLogLogPlot = functionFactory->makeMathematicaListPlot(aMathmaticaFile, pointList, "ListLogLogPlot", labelXAxes, labelYAxes); } void MathematicaAssistantImp::addListOfListsToMathematicaFile(std::shared_ptr<MathematicaFile> aMathmaticaFile, std::string listNames, std::vector<std::vector<double>> listOfLists) { - functionFactory->makeMathematicaListOfLists(aMathmaticaFile, listNames, listOfLists); + functionFactory->makeMathematicaListOfLists(aMathmaticaFile, listNames, listOfLists); } void MathematicaAssistantImp::addSecondOrderOfAccuracyRef(std::vector<std::vector<double>>& xAxesData, std::vector<std::vector<double>>& yAxesData, std::vector<std::string>& listNames) { - int maxLength = 0; - int maxLengthAtNumber = 0; - for (int i = 0; i < xAxesData.size(); i++) { - if (xAxesData.at(i).size() > maxLength) { - maxLength = xAxesData.at(i).size(); - maxLengthAtNumber = i; - } - } - std::vector<double> x = xAxesData.at(maxLengthAtNumber); - - double maxData = 0.0; - for (int i = 0; i < yAxesData.size(); i++) { - for (int j = 0; j < yAxesData.at(i).size(); j++) { - if (yAxesData.at(i).at(j) > maxData) - maxData = yAxesData.at(i).at(j); - } - } - - std::vector<double> sec = { maxData * 10.0 }; - for (int l = 1; l < x.size(); l++) - sec.push_back(sec.at(l - 1) / exp(-2.0 * log(x.at(l - 1) / x.at(l)))); - xAxesData.push_back(x); - yAxesData.push_back(sec); - listNames.push_back("SecondOrderOfAccuracy"); + int maxLength = 0; + int maxLengthAtNumber = 0; + for (int i = 0; i < xAxesData.size(); i++) { + if (xAxesData.at(i).size() > maxLength) { + maxLength = xAxesData.at(i).size(); + maxLengthAtNumber = i; + } + } + std::vector<double> x = xAxesData.at(maxLengthAtNumber); + + double maxData = 0.0; + for (int i = 0; i < yAxesData.size(); i++) { + for (int j = 0; j < yAxesData.at(i).size(); j++) { + if (yAxesData.at(i).at(j) > maxData) + maxData = yAxesData.at(i).at(j); + } + } + + std::vector<double> sec = { maxData * 10.0 }; + for (int l = 1; l < x.size(); l++) + sec.push_back(sec.at(l - 1) / exp(-2.0 * log(x.at(l - 1) / x.at(l)))); + xAxesData.push_back(x); + yAxesData.push_back(sec); + listNames.push_back("SecondOrderOfAccuracy"); } void MathematicaAssistantImp::addFourthOrderOfAccuracyRef(std::vector<std::vector<double>>& xAxesData, std::vector<std::vector<double>>& yAxesData, std::vector<std::string>& listNames) { - int maxLength = 0; - int maxLengthAtNumber = 0; - for (int i = 0; i < xAxesData.size(); i++) { - if (xAxesData.at(i).size() > maxLength) { - maxLength = xAxesData.at(i).size(); - maxLengthAtNumber = i; - } - } - std::vector<double> x = xAxesData.at(maxLengthAtNumber); - - double minData = yAxesData.at(0).at(0); - for (int i = 1; i < yAxesData.size(); i++) { - if (yAxesData.at(i).at(0) < minData) - minData = yAxesData.at(i).at(0); - } - std::vector<double> fourth = { minData / 10.0 }; - for (int l = 1; l < x.size(); l++) - fourth.push_back(fourth.at(l - 1) / std::exp(-4.0 * std::log(x.at(l - 1) / x.at(l)))); - - - xAxesData.push_back(x); - yAxesData.push_back(fourth); - listNames.push_back("FourthOrderOfAccuracy"); + int maxLength = 0; + int maxLengthAtNumber = 0; + for (int i = 0; i < xAxesData.size(); i++) { + if (xAxesData.at(i).size() > maxLength) { + maxLength = xAxesData.at(i).size(); + maxLengthAtNumber = i; + } + } + std::vector<double> x = xAxesData.at(maxLengthAtNumber); + + double minData = yAxesData.at(0).at(0); + for (int i = 1; i < yAxesData.size(); i++) { + if (yAxesData.at(i).at(0) < minData) + minData = yAxesData.at(i).at(0); + } + std::vector<double> fourth = { minData / 10.0 }; + for (int l = 1; l < x.size(); l++) + fourth.push_back(fourth.at(l - 1) / std::exp(-4.0 * std::log(x.at(l - 1) / x.at(l)))); + + + xAxesData.push_back(x); + yAxesData.push_back(fourth); + listNames.push_back("FourthOrderOfAccuracy"); } diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaAssistant/MathematicaAssistantImp.h b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaAssistant/MathematicaAssistantImp.h index ab0970dd331cf899cb8fb19e60da87f6415bc767..2d08ad605cfb6b7c8a9a3413e5c8d229f7569e91 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaAssistant/MathematicaAssistantImp.h +++ b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaAssistant/MathematicaAssistantImp.h @@ -8,25 +8,25 @@ class MathematicaFunctionFactory; class MathematicaAssistantImp : public MathematicaAssistant { public: - virtual void makeMathematicaOutput(std::shared_ptr<LogFileDataGroup> logFileData, std::shared_ptr<MathematicaFile> aMathmaticaFile) = 0; + virtual void makeMathematicaOutput(std::shared_ptr<LogFileDataGroup> logFileData, std::shared_ptr<MathematicaFile> aMathmaticaFile) = 0; protected: - MathematicaAssistantImp(); - MathematicaAssistantImp(std::shared_ptr<MathematicaFunctionFactory> functionFactory); + MathematicaAssistantImp(); + MathematicaAssistantImp(std::shared_ptr<MathematicaFunctionFactory> functionFactory); - std::vector<std::string> finalizeListNames(std::vector<std::string> basicListNames, std::string testName, std::string dataToCalc); - std::vector<std::string> finalizeListNames(std::vector<std::string> basicListNames, std::string testName, std::string dataToCalc, std::string normalizeData); - std::vector<std::string> finalizeListNames(std::vector<std::string> basicListNames, std::string testName, std::string dataToCalc, std::string normalizeData, std::string timeStep); - std::vector<std::string> finalizeListNames(std::vector<std::string> basicListNames, std::string testName, std::string dataToCalc, std::string normalizeData, std::vector<std::string> timeSteps); - std::vector<std::string> finalizeListNames(std::vector<std::string> basicListNames, std::string testName, std::string dataToCalc, std::string normalizeData, std::vector<std::string> timeSteps, std::vector<std::string> basicKernels); - std::string finalizeListName(std::string basicListName, std::string testName, std::string dataToCalc); + std::vector<std::string> finalizeListNames(std::vector<std::string> basicListNames, std::string testName, std::string dataToCalc); + std::vector<std::string> finalizeListNames(std::vector<std::string> basicListNames, std::string testName, std::string dataToCalc, std::string normalizeData); + std::vector<std::string> finalizeListNames(std::vector<std::string> basicListNames, std::string testName, std::string dataToCalc, std::string normalizeData, std::string timeStep); + std::vector<std::string> finalizeListNames(std::vector<std::string> basicListNames, std::string testName, std::string dataToCalc, std::string normalizeData, std::vector<std::string> timeSteps); + std::vector<std::string> finalizeListNames(std::vector<std::string> basicListNames, std::string testName, std::string dataToCalc, std::string normalizeData, std::vector<std::string> timeSteps, std::vector<std::string> basicKernels); + std::string finalizeListName(std::string basicListName, std::string testName, std::string dataToCalc); - void addListLogLogPlotToMathematicaFile(std::shared_ptr<MathematicaFile> aMathmaticaFile, std::vector<std::string> listNames, std::vector<std::vector<double> > xAxesData, std::vector<std::vector<double> > yAxesData, std::string labelXAxes, std::string labelYAxes); - void addListOfListsToMathematicaFile(std::shared_ptr<MathematicaFile> aMathmaticaFile, std::string listName, std::vector<std::vector<double> > listOfLists); + void addListLogLogPlotToMathematicaFile(std::shared_ptr<MathematicaFile> aMathmaticaFile, std::vector<std::string> listNames, std::vector<std::vector<double> > xAxesData, std::vector<std::vector<double> > yAxesData, std::string labelXAxes, std::string labelYAxes); + void addListOfListsToMathematicaFile(std::shared_ptr<MathematicaFile> aMathmaticaFile, std::string listName, std::vector<std::vector<double> > listOfLists); - void addSecondOrderOfAccuracyRef(std::vector<std::vector<double> > &xAxesData, std::vector<std::vector<double> > &yAxesData, std::vector<std::string> &listNames); - void addFourthOrderOfAccuracyRef(std::vector<std::vector<double> > &xAxesData, std::vector<std::vector<double> > &yAxesData, std::vector<std::string> &listNames); + void addSecondOrderOfAccuracyRef(std::vector<std::vector<double> > &xAxesData, std::vector<std::vector<double> > &yAxesData, std::vector<std::string> &listNames); + void addFourthOrderOfAccuracyRef(std::vector<std::vector<double> > &xAxesData, std::vector<std::vector<double> > &yAxesData, std::vector<std::string> &listNames); - std::shared_ptr<MathematicaFunctionFactory> functionFactory; + std::shared_ptr<MathematicaFunctionFactory> functionFactory; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaAssistant/TimeAssistant/TimeMathematicaAssistant.cpp b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaAssistant/TimeAssistant/TimeMathematicaAssistant.cpp index 816171a00ed88a596a7b5efe6bc525de6e3eaf77..a9e4e4694295a1d2a579afe7386cb430df7e538e 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaAssistant/TimeAssistant/TimeMathematicaAssistant.cpp +++ b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaAssistant/TimeAssistant/TimeMathematicaAssistant.cpp @@ -8,7 +8,7 @@ std::shared_ptr<TimeMathematicaAssistant> TimeMathematicaAssistant::getNewInstance(std::shared_ptr<MathematicaFunctionFactory> functionFactory) { - return std::shared_ptr<TimeMathematicaAssistant>(new TimeMathematicaAssistant(functionFactory)); + return std::shared_ptr<TimeMathematicaAssistant>(new TimeMathematicaAssistant(functionFactory)); } TimeMathematicaAssistant::TimeMathematicaAssistant() @@ -23,61 +23,61 @@ TimeMathematicaAssistant::TimeMathematicaAssistant(std::shared_ptr<MathematicaFu void TimeMathematicaAssistant::makeSimulationTimeMathematicaOutput(std::shared_ptr<LogFileDataGroup> logFileData, std::shared_ptr<MathematicaFile> aMathmaticaFile) { - std::vector<std::vector<double> > simTimes(logFileData->getGroupSize()); - for (int i = 0; i < logFileData->getGroupSize(); i++) - for(int j = 0; j < logFileData->getLogFileData(i)->getSimTime().size(); j++) - simTimes.at(i).push_back((double)logFileData->getLogFileData(i)->getSimTime().at(j)); + std::vector<std::vector<double> > simTimes(logFileData->getGroupSize()); + for (int i = 0; i < logFileData->getGroupSize(); i++) + for(int j = 0; j < logFileData->getLogFileData(i)->getSimTime().size(); j++) + simTimes.at(i).push_back((double)logFileData->getLogFileData(i)->getSimTime().at(j)); - makeTimeMathematicaOutput(logFileData, aMathmaticaFile, simTimes, "SimulationTime"); + makeTimeMathematicaOutput(logFileData, aMathmaticaFile, simTimes, "SimulationTime"); } void TimeMathematicaAssistant::makeTestTimeMathematicaOutput(std::shared_ptr<LogFileDataGroup> logFileData, std::shared_ptr<MathematicaFile> aMathmaticaFile) { - std::vector<std::vector<double> > testTimes; - for (int i = 0; i < logFileData->getGroupSize(); i++) - testTimes.push_back(logFileData->getLogFileData(i)->getTestTime()); + std::vector<std::vector<double> > testTimes; + for (int i = 0; i < logFileData->getGroupSize(); i++) + testTimes.push_back(logFileData->getLogFileData(i)->getTestTime()); - makeTimeMathematicaOutput(logFileData, aMathmaticaFile, testTimes, "TestTime"); + makeTimeMathematicaOutput(logFileData, aMathmaticaFile, testTimes, "TestTime"); } void TimeMathematicaAssistant::makeAnalyticalWriteTimeMathematicaOutput(std::shared_ptr<LogFileDataGroup> logFileData, std::shared_ptr<MathematicaFile> aMathmaticaFile) { - std::vector<std::vector<double> > analyticalWriteTime(logFileData->getGroupSize()); - for (int i = 0; i < logFileData->getGroupSize(); i++) - for (int j = 0; j < logFileData->getLogFileData(i)->getAnalyticalVTKWritingTime().size(); j++) - analyticalWriteTime.at(i).push_back((double)logFileData->getLogFileData(i)->getAnalyticalVTKWritingTime().at(j)); + std::vector<std::vector<double> > analyticalWriteTime(logFileData->getGroupSize()); + for (int i = 0; i < logFileData->getGroupSize(); i++) + for (int j = 0; j < logFileData->getLogFileData(i)->getAnalyticalVTKWritingTime().size(); j++) + analyticalWriteTime.at(i).push_back((double)logFileData->getLogFileData(i)->getAnalyticalVTKWritingTime().at(j)); - makeTimeMathematicaOutput(logFileData, aMathmaticaFile, analyticalWriteTime, "AnalyticalVTKWritingTime"); + makeTimeMathematicaOutput(logFileData, aMathmaticaFile, analyticalWriteTime, "AnalyticalVTKWritingTime"); } void TimeMathematicaAssistant::makeTimeMathematicaOutput(std::shared_ptr<LogFileDataGroup> logFileData, std::shared_ptr<MathematicaFile> aMathmaticaFile, std::vector<std::vector<double>> times, std::string timeName) { - std::vector<std::vector<double> > grids; - std::vector<std::string> listNames; - for (int i = 0; i < logFileData->getGroupSize(); i++) { - grids.push_back(logFileData->getLogFileData(i)->getBasicGridLengths()); - listNames.push_back(logFileData->getLogFileData(i)->getSimulationSigniture() + timeName); - } - - std::vector<std::vector<std::shared_ptr<DataPoint> > > dataPointGroup; - - for (int j = 0; j < grids.size(); j++) { - std::vector<std::shared_ptr<DataPoint> > dataPoints; - for (int k = 0; k < times.at(j).size(); k++) - dataPoints.push_back(DataPoint::getNewInstance(grids.at(j).at(k), times.at(j).at(k))); - dataPointGroup.push_back(dataPoints); - } - std::vector<std::shared_ptr<MathematicaPointList> > pointList; - for (int j = 0; j < dataPointGroup.size(); j++) { - std::shared_ptr<MathematicaPointList> aPointList = functionFactory->makeMathematicaPointList(aMathmaticaFile, listNames.at(j), dataPointGroup.at(j)); - pointList.push_back(aPointList); - } - std::shared_ptr<MathematicaListPlot> listLogLogPlot = functionFactory->makeMathematicaListPlot(aMathmaticaFile, pointList, "ListLogLogPlot", "L[dx]", "Time [sec]"); + std::vector<std::vector<double> > grids; + std::vector<std::string> listNames; + for (int i = 0; i < logFileData->getGroupSize(); i++) { + grids.push_back(logFileData->getLogFileData(i)->getBasicGridLengths()); + listNames.push_back(logFileData->getLogFileData(i)->getSimulationSigniture() + timeName); + } + + std::vector<std::vector<std::shared_ptr<DataPoint> > > dataPointGroup; + + for (int j = 0; j < grids.size(); j++) { + std::vector<std::shared_ptr<DataPoint> > dataPoints; + for (int k = 0; k < times.at(j).size(); k++) + dataPoints.push_back(DataPoint::getNewInstance(grids.at(j).at(k), times.at(j).at(k))); + dataPointGroup.push_back(dataPoints); + } + std::vector<std::shared_ptr<MathematicaPointList> > pointList; + for (int j = 0; j < dataPointGroup.size(); j++) { + std::shared_ptr<MathematicaPointList> aPointList = functionFactory->makeMathematicaPointList(aMathmaticaFile, listNames.at(j), dataPointGroup.at(j)); + pointList.push_back(aPointList); + } + std::shared_ptr<MathematicaListPlot> listLogLogPlot = functionFactory->makeMathematicaListPlot(aMathmaticaFile, pointList, "ListLogLogPlot", "L[dx]", "Time [sec]"); } void TimeMathematicaAssistant::makeMathematicaOutput(std::shared_ptr<LogFileDataGroup> logFileData, std::shared_ptr<MathematicaFile> aMathmaticaFile) { - makeSimulationTimeMathematicaOutput(logFileData, aMathmaticaFile); - makeTestTimeMathematicaOutput(logFileData, aMathmaticaFile); - makeAnalyticalWriteTimeMathematicaOutput(logFileData, aMathmaticaFile); + makeSimulationTimeMathematicaOutput(logFileData, aMathmaticaFile); + makeTestTimeMathematicaOutput(logFileData, aMathmaticaFile); + makeAnalyticalWriteTimeMathematicaOutput(logFileData, aMathmaticaFile); } \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaAssistant/TimeAssistant/TimeMathematicaAssistant.h b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaAssistant/TimeAssistant/TimeMathematicaAssistant.h index 46daab517d6e614531a2c4ffab2345a486c75a3c..1acb7901ef6e0fee7ddb725f8b7e2fc5e81b8496 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaAssistant/TimeAssistant/TimeMathematicaAssistant.h +++ b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaAssistant/TimeAssistant/TimeMathematicaAssistant.h @@ -9,19 +9,19 @@ class MathematicaFile; class TimeMathematicaAssistant : public MathematicaAssistantImp { public: - static std::shared_ptr<TimeMathematicaAssistant> getNewInstance(std::shared_ptr<MathematicaFunctionFactory> functionFactory); + static std::shared_ptr<TimeMathematicaAssistant> getNewInstance(std::shared_ptr<MathematicaFunctionFactory> functionFactory); - void makeMathematicaOutput(std::shared_ptr<LogFileDataGroup> logFileData, std::shared_ptr<MathematicaFile> aMathmaticaFile); + void makeMathematicaOutput(std::shared_ptr<LogFileDataGroup> logFileData, std::shared_ptr<MathematicaFile> aMathmaticaFile); private: - TimeMathematicaAssistant(); - TimeMathematicaAssistant(std::shared_ptr<MathematicaFunctionFactory> functionFactory); + TimeMathematicaAssistant(); + TimeMathematicaAssistant(std::shared_ptr<MathematicaFunctionFactory> functionFactory); - void makeSimulationTimeMathematicaOutput(std::shared_ptr<LogFileDataGroup> logFileData, std::shared_ptr<MathematicaFile> aMathmaticaFile); - void makeTestTimeMathematicaOutput(std::shared_ptr<LogFileDataGroup> logFileData, std::shared_ptr<MathematicaFile> aMathmaticaFile); - void makeAnalyticalWriteTimeMathematicaOutput(std::shared_ptr<LogFileDataGroup> logFileData, std::shared_ptr<MathematicaFile> aMathmaticaFile); + void makeSimulationTimeMathematicaOutput(std::shared_ptr<LogFileDataGroup> logFileData, std::shared_ptr<MathematicaFile> aMathmaticaFile); + void makeTestTimeMathematicaOutput(std::shared_ptr<LogFileDataGroup> logFileData, std::shared_ptr<MathematicaFile> aMathmaticaFile); + void makeAnalyticalWriteTimeMathematicaOutput(std::shared_ptr<LogFileDataGroup> logFileData, std::shared_ptr<MathematicaFile> aMathmaticaFile); - void makeTimeMathematicaOutput(std::shared_ptr<LogFileDataGroup> logFileData, std::shared_ptr<MathematicaFile> aMathmaticaFile, std::vector<std::vector<double> > times, std::string timeName); + void makeTimeMathematicaOutput(std::shared_ptr<LogFileDataGroup> logFileData, std::shared_ptr<MathematicaFile> aMathmaticaFile, std::vector<std::vector<double> > times, std::string timeName); }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFile/MathematicaFile.cpp b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFile/MathematicaFile.cpp index 84e7ee049ff8a1c1ec3def666f7a49bfc561312b..e0015638f5043e4632f4de4f819dae33d380aadf 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFile/MathematicaFile.cpp +++ b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFile/MathematicaFile.cpp @@ -9,47 +9,47 @@ std::shared_ptr<MathematicaFile> MathematicaFile::getNewInstance(std::string filePath) { - return std::shared_ptr<MathematicaFile>(new MathematicaFile(filePath)); + return std::shared_ptr<MathematicaFile>(new MathematicaFile(filePath)); } void MathematicaFile::addMathematicaFunction(std::shared_ptr<MathematicaFunction> aMathFunc) { - if (!fileFinished) - myFile << aMathFunc->getFunction() << std::endl; + if (!fileFinished) + myFile << aMathFunc->getFunction() << std::endl; } void MathematicaFile::finishFile() { - if (!fileFinished) { - fileFinished = true; - myFile.close(); + if (!fileFinished) { + fileFinished = true; + myFile.close(); - std::filesystem::rename(filePathTxtFile, filePathMathematicaFile); - std::system(filePathMathematicaFile.c_str()); - } + std::filesystem::rename(filePathTxtFile, filePathMathematicaFile); + std::system(filePathMathematicaFile.c_str()); + } } MathematicaFile::MathematicaFile(std::string filePath) { - fileFinished = false; + fileFinished = false; - std::ostringstream basicFilePath, textFile, mathematicaFile; - basicFilePath << filePath << "/NumericalTestPostProcessing_" << calcDateAndTime(); - textFile << basicFilePath.str() << ".txt"; - mathematicaFile << basicFilePath.str() << ".nb"; - filePathTxtFile = textFile.str(); - filePathMathematicaFile = mathematicaFile.str(); + std::ostringstream basicFilePath, textFile, mathematicaFile; + basicFilePath << filePath << "/NumericalTestPostProcessing_" << calcDateAndTime(); + textFile << basicFilePath.str() << ".txt"; + mathematicaFile << basicFilePath.str() << ".nb"; + filePathTxtFile = textFile.str(); + filePathMathematicaFile = mathematicaFile.str(); - myFile.open(filePathTxtFile); + myFile.open(filePathTxtFile); } std::string MathematicaFile::calcDateAndTime() { - std::ostringstream oss; - time_t now = time(NULL); - struct tm nowLocal = *localtime(&now); - oss << std::setfill('0') << nowLocal.tm_year + 1900 << std::setw(2) << nowLocal.tm_mon + 1 << std::setw(2) << nowLocal.tm_mday << "_" << std::setw(2) << nowLocal.tm_hour << std::setw(2) << nowLocal.tm_min << std::setw(2) << nowLocal.tm_sec; - return oss.str(); + std::ostringstream oss; + time_t now = time(NULL); + struct tm nowLocal = *localtime(&now); + oss << std::setfill('0') << nowLocal.tm_year + 1900 << std::setw(2) << nowLocal.tm_mon + 1 << std::setw(2) << nowLocal.tm_mday << "_" << std::setw(2) << nowLocal.tm_hour << std::setw(2) << nowLocal.tm_min << std::setw(2) << nowLocal.tm_sec; + return oss.str(); } MathematicaFile::MathematicaFile() diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFile/MathematicaFile.h b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFile/MathematicaFile.h index 9b3c59a5b608862a3496abefcce8f2dbc4930ae2..e1beff9c4e59043061f8e5a193feb58dce2e1633 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFile/MathematicaFile.h +++ b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFile/MathematicaFile.h @@ -10,20 +10,20 @@ class MathematicaFunction; class MathematicaFile { public: - static std::shared_ptr<MathematicaFile> getNewInstance(std::string filePath); + static std::shared_ptr<MathematicaFile> getNewInstance(std::string filePath); - void addMathematicaFunction(std::shared_ptr<MathematicaFunction> aMathFunc); - void finishFile(); - + void addMathematicaFunction(std::shared_ptr<MathematicaFunction> aMathFunc); + void finishFile(); + private: - MathematicaFile(); - MathematicaFile(std::string filePath); + MathematicaFile(); + MathematicaFile(std::string filePath); - std::string calcDateAndTime(); + std::string calcDateAndTime(); - std::string filePathTxtFile, filePathMathematicaFile; - bool fileFinished; - std::ofstream myFile; + std::string filePathTxtFile, filePathMathematicaFile; + bool fileFinished; + std::ofstream myFile; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunction/LinePlot/MathematicaListPlot.h b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunction/LinePlot/MathematicaListPlot.h index 0e4077c12605da124d3666a273a792f7d1977469..0d64cd8627766795306227cf942aab110a9fd051 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunction/LinePlot/MathematicaListPlot.h +++ b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunction/LinePlot/MathematicaListPlot.h @@ -7,6 +7,6 @@ class MathematicaListPlot : public MathematicaFunctionImp { public: - + }; #endif diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunction/LinePlot/MathematicaListPlotImp.cpp b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunction/LinePlot/MathematicaListPlotImp.cpp index 15cf9bdb90a9ddbf723c89e7a8965e0d5e4dbdac..1c0c7a143ac93468d5816013d543f65b70cd00ba 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunction/LinePlot/MathematicaListPlotImp.cpp +++ b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunction/LinePlot/MathematicaListPlotImp.cpp @@ -4,26 +4,26 @@ std::shared_ptr<MathematicaListPlot> MathematicaListPlotImp::getNewInstance(std::vector<std::shared_ptr<MathematicaPointList>> pointList, std::string plotType, std::string xAxes, std::string yAxes) { - return std::shared_ptr<MathematicaListPlotImp>(new MathematicaListPlotImp(pointList, plotType, xAxes, yAxes)); + return std::shared_ptr<MathematicaListPlotImp>(new MathematicaListPlotImp(pointList, plotType, xAxes, yAxes)); } MathematicaListPlotImp::MathematicaListPlotImp(std::vector<std::shared_ptr<MathematicaPointList>> pointList, std::string plotType, std::string xAxes, std::string yAxes) { - mathematicaFunction << plotType << "[{"; - for (int i = 0; i < pointList.size(); i++) { - if(i < pointList.size() - 1) - mathematicaFunction << pointList.at(i)->getListName() << ", "; - else - mathematicaFunction << pointList.at(i)->getListName() << "}"; - } - mathematicaFunction << ", PlotLegends -> {\""; - for (int i = 0; i < pointList.size(); i++) { - if (i < pointList.size() - 1) - mathematicaFunction << pointList.at(i)->getListName() << "\", \""; - else - mathematicaFunction << pointList.at(i)->getListName() << "\"}"; - } - mathematicaFunction << ", AxesLabel -> {\"" << xAxes << "\", \"" << yAxes << "\"}, Joined -> True, PlotMarkers->Automatic, PlotStyle -> Dashed]"; + mathematicaFunction << plotType << "[{"; + for (int i = 0; i < pointList.size(); i++) { + if(i < pointList.size() - 1) + mathematicaFunction << pointList.at(i)->getListName() << ", "; + else + mathematicaFunction << pointList.at(i)->getListName() << "}"; + } + mathematicaFunction << ", PlotLegends -> {\""; + for (int i = 0; i < pointList.size(); i++) { + if (i < pointList.size() - 1) + mathematicaFunction << pointList.at(i)->getListName() << "\", \""; + else + mathematicaFunction << pointList.at(i)->getListName() << "\"}"; + } + mathematicaFunction << ", AxesLabel -> {\"" << xAxes << "\", \"" << yAxes << "\"}, Joined -> True, PlotMarkers->Automatic, PlotStyle -> Dashed]"; } MathematicaListPlotImp::MathematicaListPlotImp() diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunction/LinePlot/MathematicaListPlotImp.h b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunction/LinePlot/MathematicaListPlotImp.h index 816af8c2d1bed1cf8ad7bb67cf5e6edf79d19e73..e74944ccd396dde95d49e863e84d3e8b3f7aa923 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunction/LinePlot/MathematicaListPlotImp.h +++ b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunction/LinePlot/MathematicaListPlotImp.h @@ -11,10 +11,10 @@ class MathematicaPointList; class MathematicaListPlotImp : public MathematicaListPlot { public: - static std::shared_ptr<MathematicaListPlot> getNewInstance(std::vector<std::shared_ptr<MathematicaPointList>> pointList, std::string plotType, std::string xAxes, std::string yAxes); + static std::shared_ptr<MathematicaListPlot> getNewInstance(std::vector<std::shared_ptr<MathematicaPointList>> pointList, std::string plotType, std::string xAxes, std::string yAxes); private: - MathematicaListPlotImp(); - MathematicaListPlotImp(std::vector<std::shared_ptr<MathematicaPointList>> pointList, std::string plotType, std::string xAxes, std::string yAxes); + MathematicaListPlotImp(); + MathematicaListPlotImp(std::vector<std::shared_ptr<MathematicaPointList>> pointList, std::string plotType, std::string xAxes, std::string yAxes); }; #endif diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunction/ListOfLists/MathematicaListOfLists.h b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunction/ListOfLists/MathematicaListOfLists.h index b3201a013aa43f4b5ce50bc2f54738ad70c4fe69..9064fe9d46b675798d70c472cc74d60f2d63d634 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunction/ListOfLists/MathematicaListOfLists.h +++ b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunction/ListOfLists/MathematicaListOfLists.h @@ -6,6 +6,6 @@ class MathematicaListOfLists : public MathematicaFunctionImp { public: - virtual std::string getListName() = 0; + virtual std::string getListName() = 0; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunction/ListOfLists/MathematicaListOfListsImp.cpp b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunction/ListOfLists/MathematicaListOfListsImp.cpp index 6821f270428a32c2b579174a6c3e1662d0ccc55b..3f67e0bb8009792287732da6b92c947feaf0c596 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunction/ListOfLists/MathematicaListOfListsImp.cpp +++ b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunction/ListOfLists/MathematicaListOfListsImp.cpp @@ -5,31 +5,31 @@ std::shared_ptr<MathematicaListOfLists> MathematicaListOfListsImp::getNewInstance(std::string listName, std::vector<std::vector<double>> listOfLists) { - return std::shared_ptr<MathematicaListOfLists>(new MathematicaListOfListsImp(listName, listOfLists)); + return std::shared_ptr<MathematicaListOfLists>(new MathematicaListOfListsImp(listName, listOfLists)); } std::string MathematicaListOfListsImp::getListName() { - return listName; + return listName; } MathematicaListOfListsImp::MathematicaListOfListsImp(std::string listName, std::vector<std::vector<double>> listOfLists) : listName(listName), listOfLists(listOfLists) { - mathematicaFunction << std::fixed << std::setprecision(std::numeric_limits<double>::digits10 + 1); - mathematicaFunction << listName << "= {"; + mathematicaFunction << std::fixed << std::setprecision(std::numeric_limits<double>::digits10 + 1); + mathematicaFunction << listName << "= {"; - for (int i = 0; i < listOfLists.size(); i++) { - mathematicaFunction << "{"; - for (int j = 0; j < listOfLists.at(i).size(); j++){ - if (j > 0) - mathematicaFunction << ", "; - mathematicaFunction << listOfLists.at(i).at(j); - } - mathematicaFunction << "}"; - if(i < listOfLists.size() - 1) - mathematicaFunction << ", "; - } - mathematicaFunction << "};"; + for (int i = 0; i < listOfLists.size(); i++) { + mathematicaFunction << "{"; + for (int j = 0; j < listOfLists.at(i).size(); j++){ + if (j > 0) + mathematicaFunction << ", "; + mathematicaFunction << listOfLists.at(i).at(j); + } + mathematicaFunction << "}"; + if(i < listOfLists.size() - 1) + mathematicaFunction << ", "; + } + mathematicaFunction << "};"; } MathematicaListOfListsImp::MathematicaListOfListsImp() diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunction/ListOfLists/MathematicaListOfListsImp.h b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunction/ListOfLists/MathematicaListOfListsImp.h index a1e82892ca92fc8b3b484440edb30bfbf957d965..6e8dbe678bca692b4467825fcb4c51b321f99cd0 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunction/ListOfLists/MathematicaListOfListsImp.h +++ b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunction/ListOfLists/MathematicaListOfListsImp.h @@ -10,16 +10,16 @@ class MathematicaListOfListsImp : public MathematicaListOfLists { public: - static std::shared_ptr<MathematicaListOfLists> getNewInstance(std::string listName, std::vector<std::vector<double> > listOfLists); + static std::shared_ptr<MathematicaListOfLists> getNewInstance(std::string listName, std::vector<std::vector<double> > listOfLists); - std::string getListName(); + std::string getListName(); - + private: - MathematicaListOfListsImp(); - MathematicaListOfListsImp(std::string listName, std::vector<std::vector<double> > listOfLists); + MathematicaListOfListsImp(); + MathematicaListOfListsImp(std::string listName, std::vector<std::vector<double> > listOfLists); - std::string listName; - std::vector<std::vector<double> > listOfLists; + std::string listName; + std::vector<std::vector<double> > listOfLists; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunction/MathematicaFunktion.h b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunction/MathematicaFunktion.h index 00018862733115b6e5ee445ce6967261c09520c0..bda8855d2b99dee5d46aafb2537feba065a8f1c5 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunction/MathematicaFunktion.h +++ b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunction/MathematicaFunktion.h @@ -6,7 +6,7 @@ class MathematicaFunction { public: - virtual std::string getFunction() = 0; + virtual std::string getFunction() = 0; private: diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunction/MathematicaFunktionImp.cpp b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunction/MathematicaFunktionImp.cpp index c64d4467ae5f6369a3b363890494839402a2a92a..03c1768c0c0ec9b944a83d4c9915adc2515cbce1 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunction/MathematicaFunktionImp.cpp +++ b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunction/MathematicaFunktionImp.cpp @@ -2,7 +2,7 @@ std::string MathematicaFunctionImp::getFunction() { - return mathematicaFunction.str(); + return mathematicaFunction.str(); } MathematicaFunctionImp::MathematicaFunctionImp() diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunction/MathematicaFunktionImp.h b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunction/MathematicaFunktionImp.h index 4e78f8023fafc3674b1d72355df13806a38aadd0..4a7134595fba70c8a9fa24c797925ee364708f5e 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunction/MathematicaFunktionImp.h +++ b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunction/MathematicaFunktionImp.h @@ -7,11 +7,11 @@ class MathematicaFunctionImp : public MathematicaFunction { public: - std::string getFunction(); + std::string getFunction(); protected: - MathematicaFunctionImp(); - std::ostringstream mathematicaFunction; + MathematicaFunctionImp(); + std::ostringstream mathematicaFunction; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunction/PointList/MathematicaPointList.h b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunction/PointList/MathematicaPointList.h index d084d19e782dfa61c0ae2fc94dcebffa7d32a3de..c9be53774e8211073bb6206bde10d51827dd7ba0 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunction/PointList/MathematicaPointList.h +++ b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunction/PointList/MathematicaPointList.h @@ -6,6 +6,6 @@ class MathematicaPointList : public MathematicaFunctionImp { public: - virtual std::string getListName() = 0; + virtual std::string getListName() = 0; }; #endif diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunction/PointList/MathematicaPointListImp.cpp b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunction/PointList/MathematicaPointListImp.cpp index cd00dddf194903666dc36abba86985c0a643d310..6835046196b42fae292079f3674c884d34901467 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunction/PointList/MathematicaPointListImp.cpp +++ b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunction/PointList/MathematicaPointListImp.cpp @@ -8,25 +8,25 @@ std::shared_ptr<MathematicaPointList> MathematicaPointListImp::getNewInstance(std::string listName, std::vector<std::shared_ptr<DataPoint> > plotData) { - return std::shared_ptr<MathematicaPointList>(new MathematicaPointListImp(listName, plotData)); + return std::shared_ptr<MathematicaPointList>(new MathematicaPointListImp(listName, plotData)); } std::string MathematicaPointListImp::getListName() { - return listName; + return listName; } MathematicaPointListImp::MathematicaPointListImp(std::string listName, std::vector<std::shared_ptr<DataPoint> > plotData) : listName(listName) { - mathematicaFunction << std::fixed << std::setprecision(std::numeric_limits<double>::digits10 + 1); - mathematicaFunction <<listName <<"= {"; - for (int i = 0; i < plotData.size(); i++) { - if (i > 0) - mathematicaFunction <<", "; - mathematicaFunction <<"{" << plotData.at(i)->getX() <<", " << plotData.at(i)->getY() <<"}"; - } + mathematicaFunction << std::fixed << std::setprecision(std::numeric_limits<double>::digits10 + 1); + mathematicaFunction <<listName <<"= {"; + for (int i = 0; i < plotData.size(); i++) { + if (i > 0) + mathematicaFunction <<", "; + mathematicaFunction <<"{" << plotData.at(i)->getX() <<", " << plotData.at(i)->getY() <<"}"; + } - mathematicaFunction << "};"; + mathematicaFunction << "};"; } MathematicaPointListImp::MathematicaPointListImp() diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunction/PointList/MathematicaPointListImp.h b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunction/PointList/MathematicaPointListImp.h index ef1459c3691ece9f461e7a7c3ee215bcdb5e7770..942e40965a00964df4bff9473debebf20a7bd6d8 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunction/PointList/MathematicaPointListImp.h +++ b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunction/PointList/MathematicaPointListImp.h @@ -11,14 +11,14 @@ class DataPoint; class MathematicaPointListImp : public MathematicaPointList { public: - static std::shared_ptr<MathematicaPointList> getNewInstance(std::string listName, std::vector<std::shared_ptr<DataPoint> > plotData); + static std::shared_ptr<MathematicaPointList> getNewInstance(std::string listName, std::vector<std::shared_ptr<DataPoint> > plotData); - std::string getListName(); + std::string getListName(); private: - MathematicaPointListImp(); - MathematicaPointListImp(std::string listName, std::vector<std::shared_ptr<DataPoint> > plotData); + MathematicaPointListImp(); + MathematicaPointListImp(std::string listName, std::vector<std::shared_ptr<DataPoint> > plotData); - std::string listName; + std::string listName; }; #endif diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunctionFactory/MathematicaFunctionFactory.h b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunctionFactory/MathematicaFunctionFactory.h index 15d4469482ba233acd766a05b4b9e2de60ba179e..f1423310916d02f45bca96010e2b7e9ddb1aed85 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunctionFactory/MathematicaFunctionFactory.h +++ b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunctionFactory/MathematicaFunctionFactory.h @@ -14,8 +14,8 @@ class MathematicaPointList; class MathematicaFunctionFactory { public: - virtual std::shared_ptr<MathematicaPointList> makeMathematicaPointList(std::shared_ptr<MathematicaFile> file, std::string listName, std::vector<std::shared_ptr<DataPoint> > plotData) = 0; - virtual std::shared_ptr<MathematicaListPlot> makeMathematicaListPlot(std::shared_ptr<MathematicaFile> file, std::vector<std::shared_ptr<MathematicaPointList>> pointList, std::string plotType, std::string xAxes, std::string yAxes) = 0; - virtual std::shared_ptr<MathematicaListOfLists> makeMathematicaListOfLists(std::shared_ptr<MathematicaFile> file, std::string listName, std::vector<std::vector<double>> listOfLists) = 0; + virtual std::shared_ptr<MathematicaPointList> makeMathematicaPointList(std::shared_ptr<MathematicaFile> file, std::string listName, std::vector<std::shared_ptr<DataPoint> > plotData) = 0; + virtual std::shared_ptr<MathematicaListPlot> makeMathematicaListPlot(std::shared_ptr<MathematicaFile> file, std::vector<std::shared_ptr<MathematicaPointList>> pointList, std::string plotType, std::string xAxes, std::string yAxes) = 0; + virtual std::shared_ptr<MathematicaListOfLists> makeMathematicaListOfLists(std::shared_ptr<MathematicaFile> file, std::string listName, std::vector<std::vector<double>> listOfLists) = 0; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunctionFactory/MathematicaFunctionFactoryImp.cpp b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunctionFactory/MathematicaFunctionFactoryImp.cpp index 9ba51c2d47766853718e76aacc0156ee5414ffc2..3675629671f0c51c20ad206f3a6234fe245a0da4 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunctionFactory/MathematicaFunctionFactoryImp.cpp +++ b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunctionFactory/MathematicaFunctionFactoryImp.cpp @@ -8,28 +8,28 @@ std::shared_ptr<MathematicaFunctionFactory> MathematicaFunctionFactoryImp::getNewInstance() { - return std::shared_ptr<MathematicaFunctionFactory>(new MathematicaFunctionFactoryImp()); + return std::shared_ptr<MathematicaFunctionFactory>(new MathematicaFunctionFactoryImp()); } std::shared_ptr<MathematicaPointList> MathematicaFunctionFactoryImp::makeMathematicaPointList(std::shared_ptr<MathematicaFile> file, std::string listName, std::vector<std::shared_ptr<DataPoint>> plotData) { - std::shared_ptr<MathematicaPointList> mathPointList = MathematicaPointListImp::getNewInstance(listName, plotData); - file->addMathematicaFunction(mathPointList); - return mathPointList; + std::shared_ptr<MathematicaPointList> mathPointList = MathematicaPointListImp::getNewInstance(listName, plotData); + file->addMathematicaFunction(mathPointList); + return mathPointList; } std::shared_ptr<MathematicaListPlot> MathematicaFunctionFactoryImp::makeMathematicaListPlot(std::shared_ptr<MathematicaFile> file, std::vector<std::shared_ptr<MathematicaPointList>> pointList, std::string plotType, std::string xAxes, std::string yAxes) { - std::shared_ptr<MathematicaListPlot> listLinePlot = MathematicaListPlotImp::getNewInstance(pointList, plotType, xAxes, yAxes); - file->addMathematicaFunction(listLinePlot); - return listLinePlot; + std::shared_ptr<MathematicaListPlot> listLinePlot = MathematicaListPlotImp::getNewInstance(pointList, plotType, xAxes, yAxes); + file->addMathematicaFunction(listLinePlot); + return listLinePlot; } std::shared_ptr<MathematicaListOfLists> MathematicaFunctionFactoryImp::makeMathematicaListOfLists(std::shared_ptr<MathematicaFile> file, std::string listName, std::vector<std::vector<double>> listOfLists) { - std::shared_ptr<MathematicaListOfLists> listOfList = MathematicaListOfListsImp::getNewInstance(listName, listOfLists); - file->addMathematicaFunction(listOfList); - return listOfList; + std::shared_ptr<MathematicaListOfLists> listOfList = MathematicaListOfListsImp::getNewInstance(listName, listOfLists); + file->addMathematicaFunction(listOfList); + return listOfList; } MathematicaFunctionFactoryImp::MathematicaFunctionFactoryImp() diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunctionFactory/MathematicaFunctionFactoryImp.h b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunctionFactory/MathematicaFunctionFactoryImp.h index 741d302d08333765ec57ab52a5cae86eb912851c..781513c23c81cacaba24fd5b940ab8e3285abba9 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunctionFactory/MathematicaFunctionFactoryImp.h +++ b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunctionFactory/MathematicaFunctionFactoryImp.h @@ -6,14 +6,14 @@ class MathematicaFunctionFactoryImp : public MathematicaFunctionFactory { public: - static std::shared_ptr<MathematicaFunctionFactory> getNewInstance(); + static std::shared_ptr<MathematicaFunctionFactory> getNewInstance(); - std::shared_ptr<MathematicaPointList> makeMathematicaPointList(std::shared_ptr<MathematicaFile> file, std::string listName, std::vector<std::shared_ptr<DataPoint> > plotData); - std::shared_ptr<MathematicaListPlot> makeMathematicaListPlot(std::shared_ptr<MathematicaFile> file, std::vector<std::shared_ptr<MathematicaPointList>> pointList, std::string plotType, std::string xAxes, std::string yAxes); - std::shared_ptr<MathematicaListOfLists> makeMathematicaListOfLists(std::shared_ptr<MathematicaFile> file, std::string listName, std::vector<std::vector<double>> listOfLists); + std::shared_ptr<MathematicaPointList> makeMathematicaPointList(std::shared_ptr<MathematicaFile> file, std::string listName, std::vector<std::shared_ptr<DataPoint> > plotData); + std::shared_ptr<MathematicaListPlot> makeMathematicaListPlot(std::shared_ptr<MathematicaFile> file, std::vector<std::shared_ptr<MathematicaPointList>> pointList, std::string plotType, std::string xAxes, std::string yAxes); + std::shared_ptr<MathematicaListOfLists> makeMathematicaListOfLists(std::shared_ptr<MathematicaFile> file, std::string listName, std::vector<std::vector<double>> listOfLists); private: - MathematicaFunctionFactoryImp(); + MathematicaFunctionFactoryImp(); }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunktion/ListLinePlot/MathematicaListLinePlot.cpp b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunktion/ListLinePlot/MathematicaListLinePlot.cpp index 06b8ffa0d0ec1e6a325c9701458f5d4bbfe1d387..93344c4f23a779e668125e863488835c8631bc32 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunktion/ListLinePlot/MathematicaListLinePlot.cpp +++ b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunktion/ListLinePlot/MathematicaListLinePlot.cpp @@ -2,15 +2,15 @@ std::shared_ptr<MathematicaListLinePlot> MathematicaListLinePlot::getNewInstance(std::vector< std::shared_ptr< DataPoint>> plotData) { - return std::shared_ptr<MathematicaListLinePlot>(new MathematicaListLinePlot(plotData)); + return std::shared_ptr<MathematicaListLinePlot>(new MathematicaListLinePlot(plotData)); } MathematicaListLinePlot::MathematicaListLinePlot(std::vector< std::shared_ptr< DataPoint>> plotData) { - mathematicaFunction << "ListLinePlot["; + mathematicaFunction << "ListLinePlot["; - mathematicaFunction << "]"; + mathematicaFunction << "]"; } MathematicaListLinePlot::MathematicaListLinePlot() diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunktion/ListLinePlot/MathematicaListLinePlot.h b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunktion/ListLinePlot/MathematicaListLinePlot.h index 665f596bbef4e55de3084ecf8f2f8b53c13201e8..5d0e8a85b5eccfef8d3964f78aed6537e0d44ede 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunktion/ListLinePlot/MathematicaListLinePlot.h +++ b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunktion/ListLinePlot/MathematicaListLinePlot.h @@ -11,11 +11,11 @@ class DataPoint; class MathematicaListLinePlot : public MathematicaFunctionImp { public: - static std::shared_ptr< MathematicaListLinePlot> getNewInstance(std::vector< std::shared_ptr< DataPoint>> plotData); - + static std::shared_ptr< MathematicaListLinePlot> getNewInstance(std::vector< std::shared_ptr< DataPoint>> plotData); + private: - MathematicaListLinePlot(); - MathematicaListLinePlot(std::vector< std::shared_ptr< DataPoint>> plotData); + MathematicaListLinePlot(); + MathematicaListLinePlot(std::vector< std::shared_ptr< DataPoint>> plotData); }; #endif diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunktion/PointList/MathematicaPointList.cpp b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunktion/PointList/MathematicaPointList.cpp index 7bacbc329e2daa359e6e0f8bcb3b4f14bd04d3b6..e97831cda12445f3d3a0a4aa1b738bd6954dbc20 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunktion/PointList/MathematicaPointList.cpp +++ b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunktion/PointList/MathematicaPointList.cpp @@ -4,24 +4,24 @@ std::shared_ptr<MathematicaPointList> MathematicaPointList::getNewInstance(std::string listName, std::vector< std::shared_ptr< DataPoint>> plotData) { - return std::shared_ptr<MathematicaPointList>(new MathematicaPointList(listName, plotData)); + return std::shared_ptr<MathematicaPointList>(new MathematicaPointList(listName, plotData)); } std::string MathematicaPointList::getListName() { - return listName; + return listName; } MathematicaPointList::MathematicaPointList(std::string listName, std::vector< std::shared_ptr< DataPoint>> plotData) : listName(listName) { - mathematicaFunction << listName << "= {"; - for (int i = 0; i < plotData.size(); i++) { - if (i > 0) - mathematicaFunction << ", "; - mathematicaFunction << "{" << plotData.at(i)->getX() << ", " << plotData.at(i)->getY() << "}"; - } - - mathematicaFunction << "}"; + mathematicaFunction << listName << "= {"; + for (int i = 0; i < plotData.size(); i++) { + if (i > 0) + mathematicaFunction << ", "; + mathematicaFunction << "{" << plotData.at(i)->getX() << ", " << plotData.at(i)->getY() << "}"; + } + + mathematicaFunction << "}"; } MathematicaPointList::MathematicaPointList() diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunktion/PointList/MathematicaPointList.h b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunktion/PointList/MathematicaPointList.h index 99869b1bc8d004834803efb51610597c655bd28e..5e14b2feeca94487418df4f85613d904dc4f2746 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunktion/PointList/MathematicaPointList.h +++ b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/MathematicaFunktion/PointList/MathematicaPointList.h @@ -11,15 +11,15 @@ class DataPoint; class MathematicaPointList : public MathematicaFunctionImp { public: - static std::shared_ptr< MathematicaPointList> getNewInstance(std::string listName, std::vector< std::shared_ptr< DataPoint>> plotData); + static std::shared_ptr< MathematicaPointList> getNewInstance(std::string listName, std::vector< std::shared_ptr< DataPoint>> plotData); - std::string getListName(); + std::string getListName(); private: - MathematicaPointList(); - MathematicaPointList(std::string listName, std::vector< std::shared_ptr< DataPoint>> plotData); + MathematicaPointList(); + MathematicaPointList(std::string listName, std::vector< std::shared_ptr< DataPoint>> plotData); - std::string listName; + std::string listName; }; #endif diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/PostProcessingConfigData/PostProcessingConfigData.h b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/PostProcessingConfigData/PostProcessingConfigData.h index 22ddd7491b54aea67bf9d815181533cd1cd41d77..410ba65bb590e003f6925ecede82c2570ac95ddf 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/PostProcessingConfigData/PostProcessingConfigData.h +++ b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/PostProcessingConfigData/PostProcessingConfigData.h @@ -11,11 +11,11 @@ class PostProcessingConfigData { public: - virtual std::vector<BasicSimulation> getSimulations() = 0; - virtual std::vector<Assistant> getAssistants() = 0; - virtual std::vector<DataCombination> getDataCombinations() = 0; + virtual std::vector<BasicSimulation> getSimulations() = 0; + virtual std::vector<Assistant> getAssistants() = 0; + virtual std::vector<DataCombination> getDataCombinations() = 0; - virtual std::string getMathematicaFilePath() = 0; - virtual std::string getLogFilesPath() = 0; + virtual std::string getMathematicaFilePath() = 0; + virtual std::string getLogFilesPath() = 0; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/PostProcessingConfigData/PostProcessingConfigDataImp.cpp b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/PostProcessingConfigData/PostProcessingConfigDataImp.cpp index e7c753d9eae1c0df5c6ff08aa7414fab3cd14134..49d2f94a316928079699676e3be2800c8e0f2f94 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/PostProcessingConfigData/PostProcessingConfigDataImp.cpp +++ b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/PostProcessingConfigData/PostProcessingConfigDataImp.cpp @@ -6,55 +6,55 @@ PostProcessingConfigDataImp::PostProcessingConfigDataImp() std::shared_ptr<PostProcessingConfigDataImp> PostProcessingConfigDataImp::getNewInstance() { - return std::shared_ptr<PostProcessingConfigDataImp>(new PostProcessingConfigDataImp()); + return std::shared_ptr<PostProcessingConfigDataImp>(new PostProcessingConfigDataImp()); } std::vector<BasicSimulation> PostProcessingConfigDataImp::getSimulations() { - return simulations; + return simulations; } std::vector<Assistant> PostProcessingConfigDataImp::getAssistants() { - return assistants; + return assistants; } std::vector<DataCombination> PostProcessingConfigDataImp::getDataCombinations() { - return dataCombinations; + return dataCombinations; } std::string PostProcessingConfigDataImp::getMathematicaFilePath() { - return mathematicaFilePath; + return mathematicaFilePath; } std::string PostProcessingConfigDataImp::getLogFilesPath() { - return logFilesPath; + return logFilesPath; } void PostProcessingConfigDataImp::setSimulations(std::vector<BasicSimulation> simulations) { - this->simulations = simulations; + this->simulations = simulations; } void PostProcessingConfigDataImp::setAssistants(std::vector<Assistant> assis) { - this->assistants = assis; + this->assistants = assis; } void PostProcessingConfigDataImp::setDataCombinations(std::vector<DataCombination> dataComb) { - this->dataCombinations = dataComb; + this->dataCombinations = dataComb; } void PostProcessingConfigDataImp::setMathematicaFilePath(std::string mathematicaFilePath) { - this->mathematicaFilePath = mathematicaFilePath; + this->mathematicaFilePath = mathematicaFilePath; } void PostProcessingConfigDataImp::setLogFilesPath(std::string logFilesPath) { - this->logFilesPath = logFilesPath; + this->logFilesPath = logFilesPath; } diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/PostProcessingConfigData/PostProcessingConfigDataImp.h b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/PostProcessingConfigData/PostProcessingConfigDataImp.h index a952c9317a3637ec155018be9f10e3705d0d660b..31a3619770d1942d96232fb20541908491e1c740 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/PostProcessingConfigData/PostProcessingConfigDataImp.h +++ b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/PostProcessingConfigData/PostProcessingConfigDataImp.h @@ -6,27 +6,27 @@ class PostProcessingConfigDataImp : public PostProcessingConfigData { public: - static std::shared_ptr<PostProcessingConfigDataImp> getNewInstance(); + static std::shared_ptr<PostProcessingConfigDataImp> getNewInstance(); - std::vector<BasicSimulation> getSimulations(); - std::vector<Assistant> getAssistants(); - std::vector<DataCombination> getDataCombinations(); - std::string getMathematicaFilePath(); - std::string getLogFilesPath(); + std::vector<BasicSimulation> getSimulations(); + std::vector<Assistant> getAssistants(); + std::vector<DataCombination> getDataCombinations(); + std::string getMathematicaFilePath(); + std::string getLogFilesPath(); - void setSimulations(std::vector<BasicSimulation> simulations); - void setAssistants(std::vector<Assistant> assis); - void setDataCombinations(std::vector<DataCombination> dataComb); - void setMathematicaFilePath(std::string mathematicaFilePath); - void setLogFilesPath(std::string logFilesPath); + void setSimulations(std::vector<BasicSimulation> simulations); + void setAssistants(std::vector<Assistant> assis); + void setDataCombinations(std::vector<DataCombination> dataComb); + void setMathematicaFilePath(std::string mathematicaFilePath); + void setLogFilesPath(std::string logFilesPath); private: - PostProcessingConfigDataImp(); + PostProcessingConfigDataImp(); - std::vector<BasicSimulation> simulations; - std::vector<Assistant> assistants; - std::vector<DataCombination> dataCombinations; - std::string mathematicaFilePath; - std::string logFilesPath; + std::vector<BasicSimulation> simulations; + std::vector<Assistant> assistants; + std::vector<DataCombination> dataCombinations; + std::string mathematicaFilePath; + std::string logFilesPath; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/PostProcessingConfigFileReader/PostProcessingConfigFileReader.h b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/PostProcessingConfigFileReader/PostProcessingConfigFileReader.h index 21ee18ef262a24ed5ba978c9f1623ebc0ce5a286..6525d9011add8a2825a0e205b6f28291a2245dd2 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/PostProcessingConfigFileReader/PostProcessingConfigFileReader.h +++ b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/PostProcessingConfigFileReader/PostProcessingConfigFileReader.h @@ -9,7 +9,7 @@ class PostProcessingConfigData; class PostProcessingConfigFileReader { public: - virtual ~PostProcessingConfigFileReader() = default; - virtual std::shared_ptr<PostProcessingConfigData> readConfigFile(std::string filePath) = 0; + virtual ~PostProcessingConfigFileReader() = default; + virtual std::shared_ptr<PostProcessingConfigData> readConfigFile(std::string filePath) = 0; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/PostProcessingConfigFileReader/PostProcessingConfigFileReaderImp.cpp b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/PostProcessingConfigFileReader/PostProcessingConfigFileReaderImp.cpp index 968af578a868b9e2655f4062d89fda8fed37941b..3781cfcd27efdc166488eb667fa988c4427f5135 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/PostProcessingConfigFileReader/PostProcessingConfigFileReaderImp.cpp +++ b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/PostProcessingConfigFileReader/PostProcessingConfigFileReaderImp.cpp @@ -10,57 +10,57 @@ std::shared_ptr<PostProcessingConfigFileReader> PostProcessingConfigFileReaderImp::getNewInstance() { - return std::shared_ptr<PostProcessingConfigFileReader>(new PostProcessingConfigFileReaderImp()); + return std::shared_ptr<PostProcessingConfigFileReader>(new PostProcessingConfigFileReaderImp()); } std::shared_ptr<PostProcessingConfigData> PostProcessingConfigFileReaderImp::readConfigFile(std::string filePath) { - auto input = std::make_shared<vf::basics::ConfigurationFile>(); - input->load(filePath); + auto input = std::make_shared<vf::basics::ConfigurationFile>(); + input->load(filePath); - std::vector<BasicSimulation> simulation; - std::vector<Assistant> assistants; - std::vector<DataCombination> combination; + std::vector<BasicSimulation> simulation; + std::vector<Assistant> assistants; + std::vector<DataCombination> combination; - if(StringUtil::toBool(input->getValue<std::string>("ShearWave"))) - simulation.push_back(ShearWave); + if(StringUtil::toBool(input->getValue<std::string>("ShearWave"))) + simulation.push_back(ShearWave); - if (StringUtil::toBool(input->getValue<std::string>("TaylorGreenVortexUx"))) - simulation.push_back(TaylorGreenVortexUx); + if (StringUtil::toBool(input->getValue<std::string>("TaylorGreenVortexUx"))) + simulation.push_back(TaylorGreenVortexUx); - if (StringUtil::toBool(input->getValue<std::string>("TaylorGreenVortexUz"))) - simulation.push_back(TaylorGreenVortexUz); + if (StringUtil::toBool(input->getValue<std::string>("TaylorGreenVortexUz"))) + simulation.push_back(TaylorGreenVortexUz); - if (StringUtil::toBool(input->getValue<std::string>("Phi"))) - assistants.push_back(Phi); + if (StringUtil::toBool(input->getValue<std::string>("Phi"))) + assistants.push_back(Phi); - if (StringUtil::toBool(input->getValue<std::string>("Ny"))) - assistants.push_back(Ny); + if (StringUtil::toBool(input->getValue<std::string>("Ny"))) + assistants.push_back(Ny); - if (StringUtil::toBool(input->getValue<std::string>("L2Norm"))) - assistants.push_back(L2Norm); + if (StringUtil::toBool(input->getValue<std::string>("L2Norm"))) + assistants.push_back(L2Norm); - if (StringUtil::toBool(input->getValue<std::string>("L2Norm_BetweenKernels"))) - assistants.push_back(L2NormBetweenKernels); + if (StringUtil::toBool(input->getValue<std::string>("L2Norm_BetweenKernels"))) + assistants.push_back(L2NormBetweenKernels); - if (StringUtil::toBool(input->getValue<std::string>("TimeOutput"))) - assistants.push_back(Time); + if (StringUtil::toBool(input->getValue<std::string>("TimeOutput"))) + assistants.push_back(Time); - if (StringUtil::toBool(input->getValue<std::string>("EqualSimulationsForDifferentKernels"))) - combination.push_back(EqualSimulationsForDifferentKernels); + if (StringUtil::toBool(input->getValue<std::string>("EqualSimulationsForDifferentKernels"))) + combination.push_back(EqualSimulationsForDifferentKernels); - if (StringUtil::toBool(input->getValue<std::string>("EqualKernelSimulationsForDifferentViscosities"))) - combination.push_back(EqualKernelSimulationsForDifferentViscosities); + if (StringUtil::toBool(input->getValue<std::string>("EqualKernelSimulationsForDifferentViscosities"))) + combination.push_back(EqualKernelSimulationsForDifferentViscosities); - std::shared_ptr<PostProcessingConfigDataImp> data = PostProcessingConfigDataImp::getNewInstance(); + std::shared_ptr<PostProcessingConfigDataImp> data = PostProcessingConfigDataImp::getNewInstance(); - data->setAssistants(assistants); - data->setSimulations(simulation); - data->setDataCombinations(combination); + data->setAssistants(assistants); + data->setSimulations(simulation); + data->setDataCombinations(combination); - data->setLogFilesPath(input->getValue<std::string>("LogFilesPath")); - data->setMathematicaFilePath(input->getValue<std::string>("MathematicaFilePath")); - - return data; + data->setLogFilesPath(input->getValue<std::string>("LogFilesPath")); + data->setMathematicaFilePath(input->getValue<std::string>("MathematicaFilePath")); + + return data; } diff --git a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/PostProcessingConfigFileReader/PostProcessingConfigFileReaderImp.h b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/PostProcessingConfigFileReader/PostProcessingConfigFileReaderImp.h index e5355a708adb753e78089a68dc9f889df9a83fc5..1c3fe52b07bead191d17e8457270457f4fd2575d 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/Utilities/PostProcessingConfigFileReader/PostProcessingConfigFileReaderImp.h +++ b/apps/gpu/tests/NumericalTestPostProcessing/Utilities/PostProcessingConfigFileReader/PostProcessingConfigFileReaderImp.h @@ -6,12 +6,12 @@ class PostProcessingConfigFileReaderImp : public PostProcessingConfigFileReader { public: - static std::shared_ptr<PostProcessingConfigFileReader> getNewInstance(); + static std::shared_ptr<PostProcessingConfigFileReader> getNewInstance(); - std::shared_ptr<PostProcessingConfigData> readConfigFile(std::string filePath) override; + std::shared_ptr<PostProcessingConfigData> readConfigFile(std::string filePath) override; private: - PostProcessingConfigFileReaderImp() = default; + PostProcessingConfigFileReaderImp() = default; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTestPostProcessing/main.cpp b/apps/gpu/tests/NumericalTestPostProcessing/main.cpp index e5dbeef9c7d3928c039049627129689ab92c653b..0187e2f60409bc03ed965a5eb14d8392d2f692da 100644 --- a/apps/gpu/tests/NumericalTestPostProcessing/main.cpp +++ b/apps/gpu/tests/NumericalTestPostProcessing/main.cpp @@ -22,35 +22,35 @@ int main(int argc, char **argv) { - std::shared_ptr<PostProcessingConfigFileReader> reader = PostProcessingConfigFileReaderImp::getNewInstance(); - std::shared_ptr<PostProcessingConfigData> configData = reader->readConfigFile(argv[1]); - - std::shared_ptr<LogFileReader> logFileReader = LogFileReader::getInstance(); - std::vector<std::shared_ptr<LogFileData> > logFileDataVector = logFileReader->readLogFilesInDirectoryToLogFileData(configData->getLogFilesPath()); - - std::shared_ptr<MathematicaFile> aMathmaticaFile = MathematicaFile::getNewInstance(configData->getMathematicaFilePath()); - - std::shared_ptr<LogFileDataAssistant> assistentLogFile = LogFileDataAssistantImp::getNewInstance(); - - std::shared_ptr<LogFileDataAssistantStrategyFactory> assistentStrategyFactory = LogFileDataAssistantStrategyFactoryImp::getNewInstance(); - - - std::shared_ptr<MathematicaFunctionFactory> functionFactory = MathematicaFunctionFactoryImp::getNewInstance(); - std::shared_ptr<MathematicaAssistantFactory> assistantFactory = MathematicaAssistantFactoryImp::getNewInstance(); - std::vector<std::shared_ptr<MathematicaAssistant> > mathematicaAssistants = assistantFactory->makeMathematicaAssistants(configData->getAssistants(), functionFactory); - - for (uint sim = 0; sim < configData->getSimulations().size(); sim++) { - for (uint comb = 0; comb < configData->getDataCombinations().size(); comb++) { - std::shared_ptr<LogFileDataAssistantStrategy> strategy = assistentStrategyFactory->makeLogFileDataAssistantStrategy(configData->getSimulations().at(sim)); - std::vector<std::shared_ptr<LogFileDataGroup> > logFileDataSorted = assistentLogFile->findDataCombination(logFileDataVector, strategy, configData->getDataCombinations().at(comb)); - for (uint i = 0; i < logFileDataSorted.size(); i++) { - for (uint j = 0; j < mathematicaAssistants.size(); j++) - mathematicaAssistants.at(j)->makeMathematicaOutput(logFileDataSorted.at(i), aMathmaticaFile); - } - } - } - - - aMathmaticaFile->finishFile(); - return 0; + std::shared_ptr<PostProcessingConfigFileReader> reader = PostProcessingConfigFileReaderImp::getNewInstance(); + std::shared_ptr<PostProcessingConfigData> configData = reader->readConfigFile(argv[1]); + + std::shared_ptr<LogFileReader> logFileReader = LogFileReader::getInstance(); + std::vector<std::shared_ptr<LogFileData> > logFileDataVector = logFileReader->readLogFilesInDirectoryToLogFileData(configData->getLogFilesPath()); + + std::shared_ptr<MathematicaFile> aMathmaticaFile = MathematicaFile::getNewInstance(configData->getMathematicaFilePath()); + + std::shared_ptr<LogFileDataAssistant> assistentLogFile = LogFileDataAssistantImp::getNewInstance(); + + std::shared_ptr<LogFileDataAssistantStrategyFactory> assistentStrategyFactory = LogFileDataAssistantStrategyFactoryImp::getNewInstance(); + + + std::shared_ptr<MathematicaFunctionFactory> functionFactory = MathematicaFunctionFactoryImp::getNewInstance(); + std::shared_ptr<MathematicaAssistantFactory> assistantFactory = MathematicaAssistantFactoryImp::getNewInstance(); + std::vector<std::shared_ptr<MathematicaAssistant> > mathematicaAssistants = assistantFactory->makeMathematicaAssistants(configData->getAssistants(), functionFactory); + + for (uint sim = 0; sim < configData->getSimulations().size(); sim++) { + for (uint comb = 0; comb < configData->getDataCombinations().size(); comb++) { + std::shared_ptr<LogFileDataAssistantStrategy> strategy = assistentStrategyFactory->makeLogFileDataAssistantStrategy(configData->getSimulations().at(sim)); + std::vector<std::shared_ptr<LogFileDataGroup> > logFileDataSorted = assistentLogFile->findDataCombination(logFileDataVector, strategy, configData->getDataCombinations().at(comb)); + for (uint i = 0; i < logFileDataSorted.size(); i++) { + for (uint j = 0; j < mathematicaAssistants.size(); j++) + mathematicaAssistants.at(j)->makeMathematicaOutput(logFileDataSorted.at(i), aMathmaticaFile); + } + } + } + + + aMathmaticaFile->finishFile(); + return 0; } diff --git a/apps/gpu/tests/NumericalTests/Simulations/ShearWave/AnalyticalResults/ShearWaveAnalyticalResults.cpp b/apps/gpu/tests/NumericalTests/Simulations/ShearWave/AnalyticalResults/ShearWaveAnalyticalResults.cpp index 08b2d0e77fe292f3cfd98a6342b3d81348724faf..871c272032310a2b461f96b18bf1d087139f842c 100644 --- a/apps/gpu/tests/NumericalTests/Simulations/ShearWave/AnalyticalResults/ShearWaveAnalyticalResults.cpp +++ b/apps/gpu/tests/NumericalTests/Simulations/ShearWave/AnalyticalResults/ShearWaveAnalyticalResults.cpp @@ -7,31 +7,31 @@ std::shared_ptr<AnalyticalResults> ShearWaveAnalyticalResults::getNewInstance(double viscosity, std::shared_ptr<ShearWaveParameterStruct> simParaStruct) { - return std::shared_ptr<AnalyticalResults>(new ShearWaveAnalyticalResults(viscosity, simParaStruct)); + return std::shared_ptr<AnalyticalResults>(new ShearWaveAnalyticalResults(viscosity, simParaStruct)); } void ShearWaveAnalyticalResults::calc(std::shared_ptr<SimulationResults> simResults) { - AnalyticalResultsImp::init(simResults); + AnalyticalResultsImp::init(simResults); - for (int i = 0; i < numberOfTimeSteps; i++) { - for (int j = 0; j < numberOfNodes; j++) { - vx.at(i).at(j) = (l0*u0) / xNodes; - vy.at(i).at(j) = (l0*v0*cos(((real)2.0 * M_PI*z.at(i).at(j)) / zNodes)*sin(((real)2.0 * M_PI*(x.at(i).at(j) + (l0*time.at(i)*u0) / xNodes)) / xNodes)) / (exp(time.at(i)*viscosity*(((real)4.0 * pow(M_PI, (real)2.0)) / pow(xNodes, (real)2.0) + ((real)4.0 * pow(M_PI, (real)2.0)) / pow(zNodes, (real)2.0)))*xNodes); - vz.at(i).at(j) = (real)0.0; - press.at(i).at(j) = (pow(l0, (real)2.0)*rho0*v0*sin(((real)2.0 * M_PI*z.at(i).at(j)) / zNodes)*(-(real)4.0 * exp(((real)4.0 * pow(M_PI, (real)2.0)*time.at(i)*viscosity*(pow(xNodes, (real)2.0) + pow(zNodes, (real)2.0))) / (pow(xNodes, (real)2.0)*pow(zNodes, (real)2.0)))*u0*zNodes*cos(((real)2.0 * M_PI*(l0*time.at(i)*u0 + x.at(i).at(j)*xNodes)) / pow(xNodes, (real)2.0)) + v0*xNodes*pow(sin(((real)2.0 * M_PI*(l0*time.at(i)*u0 + x.at(i).at(j)*xNodes)) / pow(xNodes, (real)2.0)), (real)2.0)*sin(((real)2.0 * M_PI*z.at(i).at(j)) / zNodes))) / ((real)2.0*exp(((real)8.0 * pow(M_PI, (real)2.0)*time.at(i)*viscosity*(pow(xNodes, (real)2.0) + pow(zNodes, (real)2.0))) / (pow(xNodes, (real)2.0)*pow(zNodes, (real)2.0)))*pow(xNodes, (real)3.0)); - rho.at(i).at(j) = (pow(l0, (real)2.0)*rho0*v0*sin(((real)2.0 * M_PI*z.at(i).at(j)) / zNodes)*(-(real)4.0 * exp(((real)4.0 * pow(M_PI, (real)2.0)*time.at(i)*viscosity*(pow(xNodes, (real)2.0) + pow(zNodes, (real)2.0))) / (pow(xNodes, (real)2.0)*pow(zNodes, (real)2.0)))*u0*zNodes*cos(((real)2.0 * M_PI*(l0*time.at(i)*u0 + x.at(i).at(j)*xNodes)) / pow(xNodes, (real)2.0)) + v0*xNodes*pow(sin(((real)2.0 * M_PI*(l0*time.at(i)*u0 + x.at(i).at(j)*xNodes)) / pow(xNodes, (real)2.0)), (real)2.0)*sin(((real)2.0 * M_PI*z.at(i).at(j)) / zNodes))) / ((real)2.0*exp(((real)8.0 * pow(M_PI, (real)2.0)*time.at(i)*viscosity*(pow(xNodes, (real)2.0) + pow(zNodes, (real)2.0))) / (pow(xNodes, (real)2.0)*pow(zNodes, (real)2.0)))*pow(xNodes, (real)3.0)); - } - } - calculated = true; + for (int i = 0; i < numberOfTimeSteps; i++) { + for (int j = 0; j < numberOfNodes; j++) { + vx.at(i).at(j) = (l0*u0) / xNodes; + vy.at(i).at(j) = (l0*v0*cos(((real)2.0 * M_PI*z.at(i).at(j)) / zNodes)*sin(((real)2.0 * M_PI*(x.at(i).at(j) + (l0*time.at(i)*u0) / xNodes)) / xNodes)) / (exp(time.at(i)*viscosity*(((real)4.0 * pow(M_PI, (real)2.0)) / pow(xNodes, (real)2.0) + ((real)4.0 * pow(M_PI, (real)2.0)) / pow(zNodes, (real)2.0)))*xNodes); + vz.at(i).at(j) = (real)0.0; + press.at(i).at(j) = (pow(l0, (real)2.0)*rho0*v0*sin(((real)2.0 * M_PI*z.at(i).at(j)) / zNodes)*(-(real)4.0 * exp(((real)4.0 * pow(M_PI, (real)2.0)*time.at(i)*viscosity*(pow(xNodes, (real)2.0) + pow(zNodes, (real)2.0))) / (pow(xNodes, (real)2.0)*pow(zNodes, (real)2.0)))*u0*zNodes*cos(((real)2.0 * M_PI*(l0*time.at(i)*u0 + x.at(i).at(j)*xNodes)) / pow(xNodes, (real)2.0)) + v0*xNodes*pow(sin(((real)2.0 * M_PI*(l0*time.at(i)*u0 + x.at(i).at(j)*xNodes)) / pow(xNodes, (real)2.0)), (real)2.0)*sin(((real)2.0 * M_PI*z.at(i).at(j)) / zNodes))) / ((real)2.0*exp(((real)8.0 * pow(M_PI, (real)2.0)*time.at(i)*viscosity*(pow(xNodes, (real)2.0) + pow(zNodes, (real)2.0))) / (pow(xNodes, (real)2.0)*pow(zNodes, (real)2.0)))*pow(xNodes, (real)3.0)); + rho.at(i).at(j) = (pow(l0, (real)2.0)*rho0*v0*sin(((real)2.0 * M_PI*z.at(i).at(j)) / zNodes)*(-(real)4.0 * exp(((real)4.0 * pow(M_PI, (real)2.0)*time.at(i)*viscosity*(pow(xNodes, (real)2.0) + pow(zNodes, (real)2.0))) / (pow(xNodes, (real)2.0)*pow(zNodes, (real)2.0)))*u0*zNodes*cos(((real)2.0 * M_PI*(l0*time.at(i)*u0 + x.at(i).at(j)*xNodes)) / pow(xNodes, (real)2.0)) + v0*xNodes*pow(sin(((real)2.0 * M_PI*(l0*time.at(i)*u0 + x.at(i).at(j)*xNodes)) / pow(xNodes, (real)2.0)), (real)2.0)*sin(((real)2.0 * M_PI*z.at(i).at(j)) / zNodes))) / ((real)2.0*exp(((real)8.0 * pow(M_PI, (real)2.0)*time.at(i)*viscosity*(pow(xNodes, (real)2.0) + pow(zNodes, (real)2.0))) / (pow(xNodes, (real)2.0)*pow(zNodes, (real)2.0)))*pow(xNodes, (real)3.0)); + } + } + calculated = true; } ShearWaveAnalyticalResults::ShearWaveAnalyticalResults(double viscosity, std::shared_ptr<ShearWaveParameterStruct> simParaStruct) - : AnalyticalResultsImp(simParaStruct->l0) + : AnalyticalResultsImp(simParaStruct->l0) { - this->viscosity = viscosity; - this->u0 = simParaStruct->ux; - this->v0 = simParaStruct->uz; - this->l0 = simParaStruct->l0; - this->rho0 = simParaStruct->rho0; + this->viscosity = viscosity; + this->u0 = simParaStruct->ux; + this->v0 = simParaStruct->uz; + this->l0 = simParaStruct->l0; + this->rho0 = simParaStruct->rho0; } \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Simulations/ShearWave/AnalyticalResults/ShearWaveAnalyticalResults.h b/apps/gpu/tests/NumericalTests/Simulations/ShearWave/AnalyticalResults/ShearWaveAnalyticalResults.h index 4f11cbee6a32073620aae25d39350fe1ca534307..47e1c038bd812473dd31641262ed39429a62b9ea 100644 --- a/apps/gpu/tests/NumericalTests/Simulations/ShearWave/AnalyticalResults/ShearWaveAnalyticalResults.h +++ b/apps/gpu/tests/NumericalTests/Simulations/ShearWave/AnalyticalResults/ShearWaveAnalyticalResults.h @@ -8,15 +8,15 @@ struct ShearWaveParameterStruct; class ShearWaveAnalyticalResults : public AnalyticalResultsImp { public: - static std::shared_ptr<AnalyticalResults> getNewInstance(double viscosity, std::shared_ptr<ShearWaveParameterStruct> simParaStruct); - void calc(std::shared_ptr<SimulationResults> simResults); + static std::shared_ptr<AnalyticalResults> getNewInstance(double viscosity, std::shared_ptr<ShearWaveParameterStruct> simParaStruct); + void calc(std::shared_ptr<SimulationResults> simResults); private: - ShearWaveAnalyticalResults(); - ShearWaveAnalyticalResults(double viscosity, std::shared_ptr<ShearWaveParameterStruct> simParaStruct); + ShearWaveAnalyticalResults(); + ShearWaveAnalyticalResults(double viscosity, std::shared_ptr<ShearWaveParameterStruct> simParaStruct); - double viscosity, rho0; - double l0; - double u0, v0; + double viscosity, rho0; + double l0; + double u0, v0; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Simulations/ShearWave/InitialConditions/InitialConditionShearWave.cpp b/apps/gpu/tests/NumericalTests/Simulations/ShearWave/InitialConditions/InitialConditionShearWave.cpp index d52f24775613c3b81da70d9217271a5cd5d89020..61e7ca02a8a59c76de252f3bc5c78a33d19b69dc 100644 --- a/apps/gpu/tests/NumericalTests/Simulations/ShearWave/InitialConditions/InitialConditionShearWave.cpp +++ b/apps/gpu/tests/NumericalTests/Simulations/ShearWave/InitialConditions/InitialConditionShearWave.cpp @@ -9,70 +9,70 @@ InitialConditionShearWave::InitialConditionShearWave(std::shared_ptr<ShearWaveParameterStruct> simParaStruct, std::shared_ptr<GridInformationStruct> gridInfoStruct) { - this->l0 = simParaStruct->l0; - this->lx = gridInfoStruct->lx; - this->lz = gridInfoStruct->lz; - this->rho = simParaStruct->rho0; - this->u0 = simParaStruct->ux; - this->v0 = simParaStruct->uz; + this->l0 = simParaStruct->l0; + this->lx = gridInfoStruct->lx; + this->lz = gridInfoStruct->lz; + this->rho = simParaStruct->rho0; + this->u0 = simParaStruct->ux; + this->v0 = simParaStruct->uz; } std::shared_ptr<InitialConditionShearWave> InitialConditionShearWave::getNewInstance(std::shared_ptr<ShearWaveParameterStruct> simParaStruct, std::shared_ptr<GridInformationStruct> gridInfoStruct) { - return std::shared_ptr<InitialConditionShearWave>(new InitialConditionShearWave(simParaStruct, gridInfoStruct)); + return std::shared_ptr<InitialConditionShearWave>(new InitialConditionShearWave(simParaStruct, gridInfoStruct)); } real InitialConditionShearWave::getInitVX(int i, int level) { - real x = getXCoord(i, level); - real y = getYCoord(i, level); - real z = getZCoord(i, level); - if ((i != 0) && (x != XCoordStopNode) && (y != YCoordStopNode) && (z != ZCoordStopNode)) - { - real vx = l0 * u0 / lx; - return vx; - } - else - return (real)0.0; + real x = getXCoord(i, level); + real y = getYCoord(i, level); + real z = getZCoord(i, level); + if ((i != 0) && (x != XCoordStopNode) && (y != YCoordStopNode) && (z != ZCoordStopNode)) + { + real vx = l0 * u0 / lx; + return vx; + } + else + return (real)0.0; } real InitialConditionShearWave::getInitVY(int i, int level) { - real x = getXCoord(i, level); - real y = getYCoord(i, level); - real z = getZCoord(i, level); - if ((i != 0) && (x != XCoordStopNode) && (y != YCoordStopNode) && (z != ZCoordStopNode)) - { - real vy = v0 * l0 / lx * cos((real)2.0 * M_PI * z / lz) * sin((real)2.0 * M_PI * x / lx); - return vy; - } - else - return (real) 0.0; + real x = getXCoord(i, level); + real y = getYCoord(i, level); + real z = getZCoord(i, level); + if ((i != 0) && (x != XCoordStopNode) && (y != YCoordStopNode) && (z != ZCoordStopNode)) + { + real vy = v0 * l0 / lx * cos((real)2.0 * M_PI * z / lz) * sin((real)2.0 * M_PI * x / lx); + return vy; + } + else + return (real) 0.0; } real InitialConditionShearWave::getInitVZ(int i, int level) { - return (real) 0.0; + return (real) 0.0; } real InitialConditionShearWave::getInitROH(int i, int level) { - real x = getXCoord(i, level); - real y = getYCoord(i, level); - real z = getZCoord(i, level); - if ((i != 0) && (x != XCoordStopNode) && (y != YCoordStopNode) && (z != ZCoordStopNode)) - { - real press = (l0*l0 * v0 * rho * sin(((real)2.0 * M_PI * z) / lz) * ((real)-4.0 * lz * u0 * cos(((real)2.0 * M_PI * x) / lx) + lx * v0 * sin(((real)2.0 * M_PI * x) / lx)*sin(((real)2.0 * M_PI * x) / lx) * sin(((real)2.0 * M_PI * z) / lz))) / ((real)2.0 * lx*lx*lx); - real rho = (real)3.0 * press; - return 0.0; - } - else - return (real) 0.0; + real x = getXCoord(i, level); + real y = getYCoord(i, level); + real z = getZCoord(i, level); + if ((i != 0) && (x != XCoordStopNode) && (y != YCoordStopNode) && (z != ZCoordStopNode)) + { + real press = (l0*l0 * v0 * rho * sin(((real)2.0 * M_PI * z) / lz) * ((real)-4.0 * lz * u0 * cos(((real)2.0 * M_PI * x) / lx) + lx * v0 * sin(((real)2.0 * M_PI * x) / lx)*sin(((real)2.0 * M_PI * x) / lx) * sin(((real)2.0 * M_PI * z) / lz))) / ((real)2.0 * lx*lx*lx); + real rho = (real)3.0 * press; + return 0.0; + } + else + return (real) 0.0; } real InitialConditionShearWave::getInitPRESS(int i, int level) { - //nicht benötigt, da Druck aus Dichte berechnet wird - return (real) 0.0; + //nicht ben�tigt, da Druck aus Dichte berechnet wird + return (real) 0.0; } \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Simulations/ShearWave/InitialConditions/InitialConditionShearWave.h b/apps/gpu/tests/NumericalTests/Simulations/ShearWave/InitialConditions/InitialConditionShearWave.h index df964b213ca798c905ddfa4e9ea4acaf7960e306..2867e5c31c9239c5259ad342c4dcf58db188e753 100644 --- a/apps/gpu/tests/NumericalTests/Simulations/ShearWave/InitialConditions/InitialConditionShearWave.h +++ b/apps/gpu/tests/NumericalTests/Simulations/ShearWave/InitialConditions/InitialConditionShearWave.h @@ -1,5 +1,5 @@ #ifndef INITIAL_CONDITION_SHEAR_WAVE_H -#define INITIAL_CONDITION_SHEAR_WAVE_H +#define INITIAL_CONDITION_SHEAR_WAVE_H #include "Utilities/InitialCondition/InitialConditionImp.h" @@ -11,21 +11,21 @@ struct GridInformationStruct; class InitialConditionShearWave :public InitialConditionImp { public: - static std::shared_ptr<InitialConditionShearWave> getNewInstance(std::shared_ptr<ShearWaveParameterStruct> simParaStruct, std::shared_ptr<GridInformationStruct> gridInfoStruct); + static std::shared_ptr<InitialConditionShearWave> getNewInstance(std::shared_ptr<ShearWaveParameterStruct> simParaStruct, std::shared_ptr<GridInformationStruct> gridInfoStruct); - real getInitVX(int i, int level); - real getInitVY(int i, int level); - real getInitVZ(int i, int level); - real getInitROH(int i, int level); - real getInitPRESS(int i, int level); + real getInitVX(int i, int level); + real getInitVY(int i, int level); + real getInitVZ(int i, int level); + real getInitROH(int i, int level); + real getInitPRESS(int i, int level); private: - InitialConditionShearWave(std::shared_ptr<ShearWaveParameterStruct> simParaStruct, std::shared_ptr<GridInformationStruct> gridInfoStruct); - InitialConditionShearWave() {}; - - real rho; - real l0; - real lx, lz; - real u0, v0; + InitialConditionShearWave(std::shared_ptr<ShearWaveParameterStruct> simParaStruct, std::shared_ptr<GridInformationStruct> gridInfoStruct); + InitialConditionShearWave() {}; + + real rho; + real l0; + real lx, lz; + real u0, v0; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Simulations/ShearWave/LogFileInformation/ShearWaveLogFileInformation.cpp b/apps/gpu/tests/NumericalTests/Simulations/ShearWave/LogFileInformation/ShearWaveLogFileInformation.cpp index 1c6bec9cda666451e0f8cd721fbd7bf6466664fc..d9ce8c2dc6773ace71087599aa2259b367c13423 100644 --- a/apps/gpu/tests/NumericalTests/Simulations/ShearWave/LogFileInformation/ShearWaveLogFileInformation.cpp +++ b/apps/gpu/tests/NumericalTests/Simulations/ShearWave/LogFileInformation/ShearWaveLogFileInformation.cpp @@ -5,47 +5,47 @@ std::shared_ptr<ShearWaveInformation> ShearWaveInformation::getNewInstance(std::shared_ptr<ShearWaveParameterStruct> simParaStruct, std::vector<std::shared_ptr<GridInformationStruct> > gridInfoStruct) { - return std::shared_ptr<ShearWaveInformation>(new ShearWaveInformation(simParaStruct, gridInfoStruct)); + return std::shared_ptr<ShearWaveInformation>(new ShearWaveInformation(simParaStruct, gridInfoStruct)); } std::string ShearWaveInformation::getOutput() { - makeCenterHead("ShearWave Information"); - oss << "SimulationName=ShearWave" << std::endl; - oss << "Lx=\""; - for (int i = 0; i < lx.size(); i++) { - oss << lx.at(i); - if (i < lx.size() - 1) - oss << " "; - else - oss << "\"" << std::endl << std::endl; - } + makeCenterHead("ShearWave Information"); + oss << "SimulationName=ShearWave" << std::endl; + oss << "Lx=\""; + for (int i = 0; i < lx.size(); i++) { + oss << lx.at(i); + if (i < lx.size() - 1) + oss << " "; + else + oss << "\"" << std::endl << std::endl; + } - for (int i = 0; i < lx.size(); i++) { - oss << "l0_" << lx.at(i) << "=" << l0 << std::endl; - oss << "ux_" << lx.at(i) << "=" << ux / (lx.at(i) / l0) << std::endl; - oss << "uz_" << lx.at(i) << "=" << uz / (lx.at(i) / l0) << std::endl; - oss << std::endl; - } - return oss.str(); + for (int i = 0; i < lx.size(); i++) { + oss << "l0_" << lx.at(i) << "=" << l0 << std::endl; + oss << "ux_" << lx.at(i) << "=" << ux / (lx.at(i) / l0) << std::endl; + oss << "uz_" << lx.at(i) << "=" << uz / (lx.at(i) / l0) << std::endl; + oss << std::endl; + } + return oss.str(); } std::vector<std::string> ShearWaveInformation::getFilePathExtension() { - std::vector<std::string> myFilePath; - myFilePath.push_back("ShearWave"); - std::ostringstream oss; - oss << "ux_" << ux << "_uz_" << uz; - myFilePath.push_back(oss.str()); - return myFilePath; + std::vector<std::string> myFilePath; + myFilePath.push_back("ShearWave"); + std::ostringstream oss; + oss << "ux_" << ux << "_uz_" << uz; + myFilePath.push_back(oss.str()); + return myFilePath; } ShearWaveInformation::ShearWaveInformation(std::shared_ptr<ShearWaveParameterStruct> simParaStruct, std::vector<std::shared_ptr<GridInformationStruct> > gridInfoStruct) { - this->ux = simParaStruct->ux; - this->uz = simParaStruct->uz; - this->l0 = simParaStruct->l0; + this->ux = simParaStruct->ux; + this->uz = simParaStruct->uz; + this->l0 = simParaStruct->l0; - for (int i = 0; i < gridInfoStruct.size(); i++) - lx.push_back(gridInfoStruct.at(i)->lx); + for (int i = 0; i < gridInfoStruct.size(); i++) + lx.push_back(gridInfoStruct.at(i)->lx); } \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Simulations/ShearWave/LogFileInformation/ShearWaveLogFileInformation.h b/apps/gpu/tests/NumericalTests/Simulations/ShearWave/LogFileInformation/ShearWaveLogFileInformation.h index 529fdcadbf069d97db23812f1cbf255dac4c4cee..cf4e53ebbe26256134f8df6218e52bf95ef23565 100644 --- a/apps/gpu/tests/NumericalTests/Simulations/ShearWave/LogFileInformation/ShearWaveLogFileInformation.h +++ b/apps/gpu/tests/NumericalTests/Simulations/ShearWave/LogFileInformation/ShearWaveLogFileInformation.h @@ -15,18 +15,18 @@ struct GridInformationStruct; class ShearWaveInformation : public SimulationLogFileInformation { public: - static std::shared_ptr<ShearWaveInformation> getNewInstance(std::shared_ptr<ShearWaveParameterStruct> simParaStruct, std::vector<std::shared_ptr<GridInformationStruct> > gridInfoStruct); + static std::shared_ptr<ShearWaveInformation> getNewInstance(std::shared_ptr<ShearWaveParameterStruct> simParaStruct, std::vector<std::shared_ptr<GridInformationStruct> > gridInfoStruct); - std::string getOutput(); - std::vector<std::string> getFilePathExtension(); + std::string getOutput(); + std::vector<std::string> getFilePathExtension(); private: - ShearWaveInformation() {}; - ShearWaveInformation(std::shared_ptr<ShearWaveParameterStruct> simParaStruct, std::vector<std::shared_ptr<GridInformationStruct> > gridInfoStruct); + ShearWaveInformation() {}; + ShearWaveInformation(std::shared_ptr<ShearWaveParameterStruct> simParaStruct, std::vector<std::shared_ptr<GridInformationStruct> > gridInfoStruct); - double ux; - double uz; - std::vector<real> lx; - int l0; + double ux; + double uz; + std::vector<real> lx; + int l0; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Simulations/ShearWave/ShearWaveParameterStruct.h b/apps/gpu/tests/NumericalTests/Simulations/ShearWave/ShearWaveParameterStruct.h index 8388031233a8967d643b932bc1bd7ae605d8d8cd..c7ba87e2969a06c4d45048ee4a91189f6177a7e5 100644 --- a/apps/gpu/tests/NumericalTests/Simulations/ShearWave/ShearWaveParameterStruct.h +++ b/apps/gpu/tests/NumericalTests/Simulations/ShearWave/ShearWaveParameterStruct.h @@ -7,14 +7,14 @@ struct ShearWaveParameterStruct { - std::shared_ptr<BasicSimulationParameterStruct> basicSimulationParameter; + std::shared_ptr<BasicSimulationParameterStruct> basicSimulationParameter; - double ux; - double uz; - int basicTimeStepLength; - double l0; - double rho0; - std::string vtkFilePath; - std::vector<std::string> dataToCalcTests; + double ux; + double uz; + int basicTimeStepLength; + double l0; + double rho0; + std::string vtkFilePath; + std::vector<std::string> dataToCalcTests; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Simulations/ShearWave/SimulationInfo/ShearWaveSimulationInfo.cpp b/apps/gpu/tests/NumericalTests/Simulations/ShearWave/SimulationInfo/ShearWaveSimulationInfo.cpp index 5d531a634537823fd306f7e5e26d43291cd1e52e..4f858339cc497b89123699f10902803b8c7d5b9b 100644 --- a/apps/gpu/tests/NumericalTests/Simulations/ShearWave/SimulationInfo/ShearWaveSimulationInfo.cpp +++ b/apps/gpu/tests/NumericalTests/Simulations/ShearWave/SimulationInfo/ShearWaveSimulationInfo.cpp @@ -7,14 +7,14 @@ std::shared_ptr<ShearWaveSimulationInfo> ShearWaveSimulationInfo::getNewInstance(int simID, std::string kernel, double viscosity, std::shared_ptr<ShearWaveParameterStruct> simParaStruct, std::shared_ptr<GridInformationStruct> gridInfoStruct, int numberOfSimulations) { - return std::shared_ptr<ShearWaveSimulationInfo>(new ShearWaveSimulationInfo(simID, kernel,viscosity, simParaStruct, gridInfoStruct, numberOfSimulations)); + return std::shared_ptr<ShearWaveSimulationInfo>(new ShearWaveSimulationInfo(simID, kernel,viscosity, simParaStruct, gridInfoStruct, numberOfSimulations)); } ShearWaveSimulationInfo::ShearWaveSimulationInfo(int simID, std::string kernel, double viscosity, std::shared_ptr<ShearWaveParameterStruct> simParaStruct, std::shared_ptr<GridInformationStruct> gridInfoStruct, int numberOfSimulations) - : SimulationInfoImp(simID, kernel, viscosity, gridInfoStruct->lx, numberOfSimulations, "ShearWave", simParaStruct->dataToCalcTests) + : SimulationInfoImp(simID, kernel, viscosity, gridInfoStruct->lx, numberOfSimulations, "ShearWave", simParaStruct->dataToCalcTests) { - std::ostringstream oss; - oss << " ux: " << simParaStruct->ux / (gridInfoStruct->lx / simParaStruct->l0) << " uz: " << simParaStruct->uz / (gridInfoStruct->lx / simParaStruct->l0); - this->simulationParameterString = oss.str(); + std::ostringstream oss; + oss << " ux: " << simParaStruct->ux / (gridInfoStruct->lx / simParaStruct->l0) << " uz: " << simParaStruct->uz / (gridInfoStruct->lx / simParaStruct->l0); + this->simulationParameterString = oss.str(); } \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Simulations/ShearWave/SimulationInfo/ShearWaveSimulationInfo.h b/apps/gpu/tests/NumericalTests/Simulations/ShearWave/SimulationInfo/ShearWaveSimulationInfo.h index 19f6285eaaf6836df734d128f0e1b457dd892da8..92bf94c481784c344b1478a399da9a3fea2a0497 100644 --- a/apps/gpu/tests/NumericalTests/Simulations/ShearWave/SimulationInfo/ShearWaveSimulationInfo.h +++ b/apps/gpu/tests/NumericalTests/Simulations/ShearWave/SimulationInfo/ShearWaveSimulationInfo.h @@ -13,10 +13,10 @@ struct GridInformationStruct; class ShearWaveSimulationInfo : public SimulationInfoImp { public: - static std::shared_ptr<ShearWaveSimulationInfo> getNewInstance(int simID, std::string kernel, double viscosity, std::shared_ptr<ShearWaveParameterStruct> simParaStruct, std::shared_ptr<GridInformationStruct> gridInfoStruct, int numberOfSimulations); + static std::shared_ptr<ShearWaveSimulationInfo> getNewInstance(int simID, std::string kernel, double viscosity, std::shared_ptr<ShearWaveParameterStruct> simParaStruct, std::shared_ptr<GridInformationStruct> gridInfoStruct, int numberOfSimulations); private: - ShearWaveSimulationInfo() {}; - ShearWaveSimulationInfo(int simID, std::string kernel, double viscosity, std::shared_ptr<ShearWaveParameterStruct> simParaStruct, std::shared_ptr<GridInformationStruct> gridInfoStruct, int numberOfSimulations); + ShearWaveSimulationInfo() {}; + ShearWaveSimulationInfo(int simID, std::string kernel, double viscosity, std::shared_ptr<ShearWaveParameterStruct> simParaStruct, std::shared_ptr<GridInformationStruct> gridInfoStruct, int numberOfSimulations); }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Simulations/ShearWave/SimulationParameter/ShearWaveSimulationParameter.cpp b/apps/gpu/tests/NumericalTests/Simulations/ShearWave/SimulationParameter/ShearWaveSimulationParameter.cpp index 76d8fae4b45bc5a0134463ca625e8ac6526d567e..6d7a1cf3690f99a5190441cdad738fb46af5dc9b 100644 --- a/apps/gpu/tests/NumericalTests/Simulations/ShearWave/SimulationParameter/ShearWaveSimulationParameter.cpp +++ b/apps/gpu/tests/NumericalTests/Simulations/ShearWave/SimulationParameter/ShearWaveSimulationParameter.cpp @@ -9,23 +9,23 @@ std::shared_ptr<SimulationParameter> ShearWaveSimulationParameter::getNewInstance(std::string kernel, double viscosity, std::shared_ptr<ShearWaveParameterStruct> parameterStruct, std::shared_ptr<GridInformationStruct> gridInfo) { - return std::shared_ptr<SimulationParameter>(new ShearWaveSimulationParameter(kernel, viscosity, parameterStruct, gridInfo)); + return std::shared_ptr<SimulationParameter>(new ShearWaveSimulationParameter(kernel, viscosity, parameterStruct, gridInfo)); } ShearWaveSimulationParameter::ShearWaveSimulationParameter(std::string kernel, double viscosity, std::shared_ptr<ShearWaveParameterStruct> parameterStruct, std::shared_ptr<GridInformationStruct> gridInfo) :SimulationParameterImp(kernel, viscosity, parameterStruct->basicSimulationParameter, gridInfo) { - this->timeStepLength = parameterStruct->basicTimeStepLength * (gridInfo->lx / l0)*(gridInfo->lx / l0); + this->timeStepLength = parameterStruct->basicTimeStepLength * (gridInfo->lx / l0)*(gridInfo->lx / l0); - if (parameterStruct->ux > parameterStruct->uz) - this->maxVelocity = parameterStruct->ux / (lx / l0); - else - this->maxVelocity = parameterStruct->uz / (lx / l0); + if (parameterStruct->ux > parameterStruct->uz) + this->maxVelocity = parameterStruct->ux / (lx / l0); + else + this->maxVelocity = parameterStruct->uz / (lx / l0); - std::string kernelName = kernel; + std::string kernelName = kernel; - std::ostringstream oss; - oss << parameterStruct->vtkFilePath << "/ShearWave/Viscosity_" << viscosity << "/ux_" << parameterStruct->ux << "_uz_" << parameterStruct->uz << "/" << kernelName << "/grid" << lx; - generateFileDirectionInMyStystem(oss.str()); - this->filePath = oss.str(); + std::ostringstream oss; + oss << parameterStruct->vtkFilePath << "/ShearWave/Viscosity_" << viscosity << "/ux_" << parameterStruct->ux << "_uz_" << parameterStruct->uz << "/" << kernelName << "/grid" << lx; + generateFileDirectionInMyStystem(oss.str()); + this->filePath = oss.str(); } \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Simulations/ShearWave/SimulationParameter/ShearWaveSimulationParameter.h b/apps/gpu/tests/NumericalTests/Simulations/ShearWave/SimulationParameter/ShearWaveSimulationParameter.h index 51251274de6886d747f1e19b57e20f2e1a41cae9..c4054f1d61ada01a66547c73b38e57c5c11a1a1b 100644 --- a/apps/gpu/tests/NumericalTests/Simulations/ShearWave/SimulationParameter/ShearWaveSimulationParameter.h +++ b/apps/gpu/tests/NumericalTests/Simulations/ShearWave/SimulationParameter/ShearWaveSimulationParameter.h @@ -8,11 +8,11 @@ struct ShearWaveParameterStruct; class ShearWaveSimulationParameter : public SimulationParameterImp { public: - static std::shared_ptr<SimulationParameter> getNewInstance(std::string kernel, double viscosity, std::shared_ptr<ShearWaveParameterStruct> parameterStruct, std::shared_ptr<GridInformationStruct> gridInfo); + static std::shared_ptr<SimulationParameter> getNewInstance(std::string kernel, double viscosity, std::shared_ptr<ShearWaveParameterStruct> parameterStruct, std::shared_ptr<GridInformationStruct> gridInfo); protected: - ShearWaveSimulationParameter() {}; - ShearWaveSimulationParameter(std::string kernel, double viscosity, std::shared_ptr<ShearWaveParameterStruct> parameterStruct, std::shared_ptr<GridInformationStruct> gridInfo); + ShearWaveSimulationParameter() {}; + ShearWaveSimulationParameter(std::string kernel, double viscosity, std::shared_ptr<ShearWaveParameterStruct> parameterStruct, std::shared_ptr<GridInformationStruct> gridInfo); }; diff --git a/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUx/AnalyticalResults/AnalyticalResultsTaylorGreenVortexUx.cpp b/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUx/AnalyticalResults/AnalyticalResultsTaylorGreenVortexUx.cpp index 1a2f1bee6c3c8289ccd7fac99f1e59467ed6a3c6..76d3b85ddc601eba3ad3d08f2be5470e71d65e59 100644 --- a/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUx/AnalyticalResults/AnalyticalResultsTaylorGreenVortexUx.cpp +++ b/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUx/AnalyticalResults/AnalyticalResultsTaylorGreenVortexUx.cpp @@ -7,31 +7,31 @@ std::shared_ptr<AnalyticalResults> AnalyticalResultsTaylorGreenUx::getNewInstance(double viscosity, std::shared_ptr<TaylorGreenVortexUxParameterStruct> simParaStruct) { - return std::shared_ptr<AnalyticalResults>(new AnalyticalResultsTaylorGreenUx(viscosity, simParaStruct)); + return std::shared_ptr<AnalyticalResults>(new AnalyticalResultsTaylorGreenUx(viscosity, simParaStruct)); } void AnalyticalResultsTaylorGreenUx::calc(std::shared_ptr<SimulationResults> simResults) { - AnalyticalResultsImp::init(simResults); + AnalyticalResultsImp::init(simResults); - for (int i = 0; i < numberOfTimeSteps; i++) { - for (int j = 0; j < numberOfNodes; j++) { - vx.at(i).at(j) = (l0*ux) / xNodes + (amplitude*exp(time.at(i)*viscosity*((-(real)4.0 * pow(M_PI, (real)2.0)) / pow(xNodes, (real)2.0) - ((real)4.0 * pow(M_PI, (real)2.0)) / pow(zNodes, (real)2.0)))*l0*cos(((real)2.0 * M_PI*z.at(i).at(j)) / zNodes)*sin(((real)2.0 * M_PI*(x.at(i).at(j) + (l0*time.at(i)*ux) / xNodes)) / xNodes)) / xNodes; - vy.at(i).at(j) = (real)0.0; - vz.at(i).at(j) = -((amplitude*exp(time.at(i)*viscosity*((-(real)4.0 * pow(M_PI, (real)2.0)) / pow(xNodes, (real)2.0) - ((real)4.0 * pow(M_PI, (real)2.0)) / pow(zNodes, (real)2.0)))*l0*zNodes*cos(((real)2.0 * M_PI*(x.at(i).at(j) + (l0*time.at(i)*ux) / xNodes)) / xNodes)*sin(((real)2.0 * M_PI*z.at(i).at(j)) / zNodes)) / pow(xNodes, (real)2.0)); - press.at(i).at(j) = (amplitude*pow(l0, (real)2.0)*rho0*(amplitude*pow(zNodes, (real)2.0)*pow(cos(((real)2.0 * M_PI*z.at(i).at(j)) / zNodes), (real)2.0) - (real)4.0 * exp(((real)4.0 * pow(M_PI, (real)2.0)*time.at(i)*viscosity*(pow(xNodes, (real)2.0) + pow(zNodes, (real)2.0))) / (pow(xNodes, (real)2.0)*pow(zNodes, (real)2.0)))*ux*(pow(xNodes, (real)2.0) - pow(zNodes, (real)2.0)) * cos(((real)2.0 * M_PI*z.at(i).at(j)) / zNodes)*sin(((real)2.0 * M_PI*(l0*time.at(i)*ux + x.at(i).at(j)*xNodes)) / pow(xNodes, (real)2.0)) - amplitude*pow(xNodes, (real)2.0)*pow(sin(((real)2.0 * M_PI*(l0*time.at(i)*ux + x.at(i).at(j)*xNodes)) / pow(xNodes, (real)2.0)), (real)2.0))) / ((real)2.0*exp((8 * pow(M_PI, (real)2.0)*time.at(i)*viscosity*(pow(xNodes, (real)2.0) + pow(zNodes, (real)2.0))) / (pow(xNodes, (real)2.0)*pow(zNodes, (real)2.0)))*pow(xNodes, (real)4.0)); - rho.at(i).at(j) = (amplitude*pow(l0, (real)2.0)*rho0*(amplitude*pow(zNodes, (real)2.0)*pow(cos(((real)2.0 * M_PI*z.at(i).at(j)) / zNodes), (real)2.0) - (real)4.0 * exp(((real)4.0 * pow(M_PI, (real)2.0)*time.at(i)*viscosity*(pow(xNodes, (real)2.0) + pow(zNodes, (real)2.0))) / (pow(xNodes, (real)2.0)*pow(zNodes, (real)2.0)))*ux*(pow(xNodes, (real)2.0) - pow(zNodes, (real)2.0)) * cos(((real)2.0 * M_PI*z.at(i).at(j)) / zNodes)*sin(((real)2.0 * M_PI*(l0*time.at(i)*ux + x.at(i).at(j)*xNodes)) / pow(xNodes, (real)2.0)) - amplitude*pow(xNodes, (real)2.0)*pow(sin(((real)2.0 * M_PI*(l0*time.at(i)*ux + x.at(i).at(j)*xNodes)) / pow(xNodes, (real)2.0)), (real)2.0))) / ((real)2.0*exp((8 * pow(M_PI, (real)2.0)*time.at(i)*viscosity*(pow(xNodes, (real)2.0) + pow(zNodes, (real)2.0))) / (pow(xNodes, (real)2.0)*pow(zNodes, (real)2.0)))*pow(xNodes, (real)4.0)); - } - } - calculated = true; + for (int i = 0; i < numberOfTimeSteps; i++) { + for (int j = 0; j < numberOfNodes; j++) { + vx.at(i).at(j) = (l0*ux) / xNodes + (amplitude*exp(time.at(i)*viscosity*((-(real)4.0 * pow(M_PI, (real)2.0)) / pow(xNodes, (real)2.0) - ((real)4.0 * pow(M_PI, (real)2.0)) / pow(zNodes, (real)2.0)))*l0*cos(((real)2.0 * M_PI*z.at(i).at(j)) / zNodes)*sin(((real)2.0 * M_PI*(x.at(i).at(j) + (l0*time.at(i)*ux) / xNodes)) / xNodes)) / xNodes; + vy.at(i).at(j) = (real)0.0; + vz.at(i).at(j) = -((amplitude*exp(time.at(i)*viscosity*((-(real)4.0 * pow(M_PI, (real)2.0)) / pow(xNodes, (real)2.0) - ((real)4.0 * pow(M_PI, (real)2.0)) / pow(zNodes, (real)2.0)))*l0*zNodes*cos(((real)2.0 * M_PI*(x.at(i).at(j) + (l0*time.at(i)*ux) / xNodes)) / xNodes)*sin(((real)2.0 * M_PI*z.at(i).at(j)) / zNodes)) / pow(xNodes, (real)2.0)); + press.at(i).at(j) = (amplitude*pow(l0, (real)2.0)*rho0*(amplitude*pow(zNodes, (real)2.0)*pow(cos(((real)2.0 * M_PI*z.at(i).at(j)) / zNodes), (real)2.0) - (real)4.0 * exp(((real)4.0 * pow(M_PI, (real)2.0)*time.at(i)*viscosity*(pow(xNodes, (real)2.0) + pow(zNodes, (real)2.0))) / (pow(xNodes, (real)2.0)*pow(zNodes, (real)2.0)))*ux*(pow(xNodes, (real)2.0) - pow(zNodes, (real)2.0)) * cos(((real)2.0 * M_PI*z.at(i).at(j)) / zNodes)*sin(((real)2.0 * M_PI*(l0*time.at(i)*ux + x.at(i).at(j)*xNodes)) / pow(xNodes, (real)2.0)) - amplitude*pow(xNodes, (real)2.0)*pow(sin(((real)2.0 * M_PI*(l0*time.at(i)*ux + x.at(i).at(j)*xNodes)) / pow(xNodes, (real)2.0)), (real)2.0))) / ((real)2.0*exp((8 * pow(M_PI, (real)2.0)*time.at(i)*viscosity*(pow(xNodes, (real)2.0) + pow(zNodes, (real)2.0))) / (pow(xNodes, (real)2.0)*pow(zNodes, (real)2.0)))*pow(xNodes, (real)4.0)); + rho.at(i).at(j) = (amplitude*pow(l0, (real)2.0)*rho0*(amplitude*pow(zNodes, (real)2.0)*pow(cos(((real)2.0 * M_PI*z.at(i).at(j)) / zNodes), (real)2.0) - (real)4.0 * exp(((real)4.0 * pow(M_PI, (real)2.0)*time.at(i)*viscosity*(pow(xNodes, (real)2.0) + pow(zNodes, (real)2.0))) / (pow(xNodes, (real)2.0)*pow(zNodes, (real)2.0)))*ux*(pow(xNodes, (real)2.0) - pow(zNodes, (real)2.0)) * cos(((real)2.0 * M_PI*z.at(i).at(j)) / zNodes)*sin(((real)2.0 * M_PI*(l0*time.at(i)*ux + x.at(i).at(j)*xNodes)) / pow(xNodes, (real)2.0)) - amplitude*pow(xNodes, (real)2.0)*pow(sin(((real)2.0 * M_PI*(l0*time.at(i)*ux + x.at(i).at(j)*xNodes)) / pow(xNodes, (real)2.0)), (real)2.0))) / ((real)2.0*exp((8 * pow(M_PI, (real)2.0)*time.at(i)*viscosity*(pow(xNodes, (real)2.0) + pow(zNodes, (real)2.0))) / (pow(xNodes, (real)2.0)*pow(zNodes, (real)2.0)))*pow(xNodes, (real)4.0)); + } + } + calculated = true; } AnalyticalResultsTaylorGreenUx::AnalyticalResultsTaylorGreenUx(double viscosity, std::shared_ptr<TaylorGreenVortexUxParameterStruct> simParaStruct) - : AnalyticalResultsImp(simParaStruct->l0) + : AnalyticalResultsImp(simParaStruct->l0) { - this->viscosity = viscosity; - this->ux = simParaStruct->ux; - this->amplitude = simParaStruct->amplitude; - this->l0 = simParaStruct->l0; - this->rho0 = simParaStruct->rho0; + this->viscosity = viscosity; + this->ux = simParaStruct->ux; + this->amplitude = simParaStruct->amplitude; + this->l0 = simParaStruct->l0; + this->rho0 = simParaStruct->rho0; } \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUx/AnalyticalResults/AnalyticalResultsTaylorGreenVortexUx.h b/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUx/AnalyticalResults/AnalyticalResultsTaylorGreenVortexUx.h index 64d73e4a055741151c38e530861c5c6cb57bd702..600b18a2b2744641fee5319fbacc52d0750363b6 100644 --- a/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUx/AnalyticalResults/AnalyticalResultsTaylorGreenVortexUx.h +++ b/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUx/AnalyticalResults/AnalyticalResultsTaylorGreenVortexUx.h @@ -8,15 +8,15 @@ struct TaylorGreenVortexUxParameterStruct; class AnalyticalResultsTaylorGreenUx : public AnalyticalResultsImp { public: - static std::shared_ptr<AnalyticalResults> getNewInstance(double viscosity, std::shared_ptr<TaylorGreenVortexUxParameterStruct> simParaStruct); - void calc(std::shared_ptr<SimulationResults> simResults); + static std::shared_ptr<AnalyticalResults> getNewInstance(double viscosity, std::shared_ptr<TaylorGreenVortexUxParameterStruct> simParaStruct); + void calc(std::shared_ptr<SimulationResults> simResults); private: - AnalyticalResultsTaylorGreenUx(); - AnalyticalResultsTaylorGreenUx(double viscosity, std::shared_ptr<TaylorGreenVortexUxParameterStruct> simParaStruct); + AnalyticalResultsTaylorGreenUx(); + AnalyticalResultsTaylorGreenUx(double viscosity, std::shared_ptr<TaylorGreenVortexUxParameterStruct> simParaStruct); - double viscosity, rho0; - double l0; - double ux, amplitude; + double viscosity, rho0; + double l0; + double ux, amplitude; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUx/InitialConditions/InitialConditionTaylorGreenVortexUx.cpp b/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUx/InitialConditions/InitialConditionTaylorGreenVortexUx.cpp index 256269ba063960073d6250fb8b6750a7077131a8..98b99e4094fa78811211fa587e25849f9482eba3 100644 --- a/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUx/InitialConditions/InitialConditionTaylorGreenVortexUx.cpp +++ b/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUx/InitialConditions/InitialConditionTaylorGreenVortexUx.cpp @@ -8,70 +8,70 @@ InitialConditionTaylorGreenUx::InitialConditionTaylorGreenUx(std::shared_ptr<TaylorGreenVortexUxParameterStruct> simParaStruct, std::shared_ptr<GridInformationStruct> gridInfoStruct) { - this->amp = simParaStruct->amplitude; - this->l0 = simParaStruct->l0; - this->lx = gridInfoStruct->lx; - this->lz = gridInfoStruct->lz; - this->rho = simParaStruct->rho0; - this->ux = simParaStruct->ux; + this->amp = simParaStruct->amplitude; + this->l0 = simParaStruct->l0; + this->lx = gridInfoStruct->lx; + this->lz = gridInfoStruct->lz; + this->rho = simParaStruct->rho0; + this->ux = simParaStruct->ux; } std::shared_ptr<InitialConditionTaylorGreenUx> InitialConditionTaylorGreenUx::getNewInstance(std::shared_ptr<TaylorGreenVortexUxParameterStruct> simParaStruct, std::shared_ptr<GridInformationStruct> gridInfoStruct) { - return std::shared_ptr<InitialConditionTaylorGreenUx>(new InitialConditionTaylorGreenUx(simParaStruct, gridInfoStruct)); + return std::shared_ptr<InitialConditionTaylorGreenUx>(new InitialConditionTaylorGreenUx(simParaStruct, gridInfoStruct)); } real InitialConditionTaylorGreenUx::getInitVX(int i, int level) { - real x = getXCoord(i, level); - real y = getYCoord(i, level); - real z = getZCoord(i, level); - if ((i != 0) && (x != XCoordStopNode) && (y != YCoordStopNode) && (z != ZCoordStopNode)) - { - real vx = (ux* l0 / lx + (amp * l0 * cos((real)2.0 * M_PI * z / lz) * sin((real)2.0 * M_PI * x / lx) / lx)); - return vx; - } - else - return (real)0.0; + real x = getXCoord(i, level); + real y = getYCoord(i, level); + real z = getZCoord(i, level); + if ((i != 0) && (x != XCoordStopNode) && (y != YCoordStopNode) && (z != ZCoordStopNode)) + { + real vx = (ux* l0 / lx + (amp * l0 * cos((real)2.0 * M_PI * z / lz) * sin((real)2.0 * M_PI * x / lx) / lx)); + return vx; + } + else + return (real)0.0; } real InitialConditionTaylorGreenUx::getInitVY(int i, int level) { - return (real) 0.0; + return (real) 0.0; } real InitialConditionTaylorGreenUx::getInitVZ(int i, int level) { - real x = getXCoord(i, level); - real y = getYCoord(i, level); - real z = getZCoord(i, level); - if ((i != 0) && (x != XCoordStopNode) && (y != YCoordStopNode) && (z != ZCoordStopNode)) - { - real vz = (-amp * l0 * lz * cos((real)2.0 * M_PI * x / lx) * sin((real)2.0 * M_PI * z / lz) / (lx*lx)); - return vz; - } - else - return (real) 0.0; + real x = getXCoord(i, level); + real y = getYCoord(i, level); + real z = getZCoord(i, level); + if ((i != 0) && (x != XCoordStopNode) && (y != YCoordStopNode) && (z != ZCoordStopNode)) + { + real vz = (-amp * l0 * lz * cos((real)2.0 * M_PI * x / lx) * sin((real)2.0 * M_PI * z / lz) / (lx*lx)); + return vz; + } + else + return (real) 0.0; } real InitialConditionTaylorGreenUx::getInitROH(int i, int level) { - real x = getXCoord(i, level); - real y = getYCoord(i, level); - real z = getZCoord(i, level); - if ((i != 0) && (x != XCoordStopNode) && (y != YCoordStopNode) && (z != ZCoordStopNode)) - { - real press = (amp*pow(l0, (real)2.0)*rho*(amp*pow(lz, (real)2.0)*pow(cos(((real)2.0 * M_PI*z) / lz), (real)2.0) - (real)4.0 * (pow(lx, (real)2.0) - pow(lz, (real)2.0))*ux*cos(((real)2.0 * M_PI*z) / lz)*sin(((real)2.0 * M_PI*x) / lx) - amp*pow(lx, (real)2.0)*pow(sin(((real)2.0 * M_PI*x) / lx), (real)2.0))) / ((real)2.0*pow(lx, (real)4.0)); - real rho = (real)3.0 * press; - return rho; - } - else - return (real) 0.0; + real x = getXCoord(i, level); + real y = getYCoord(i, level); + real z = getZCoord(i, level); + if ((i != 0) && (x != XCoordStopNode) && (y != YCoordStopNode) && (z != ZCoordStopNode)) + { + real press = (amp*pow(l0, (real)2.0)*rho*(amp*pow(lz, (real)2.0)*pow(cos(((real)2.0 * M_PI*z) / lz), (real)2.0) - (real)4.0 * (pow(lx, (real)2.0) - pow(lz, (real)2.0))*ux*cos(((real)2.0 * M_PI*z) / lz)*sin(((real)2.0 * M_PI*x) / lx) - amp*pow(lx, (real)2.0)*pow(sin(((real)2.0 * M_PI*x) / lx), (real)2.0))) / ((real)2.0*pow(lx, (real)4.0)); + real rho = (real)3.0 * press; + return rho; + } + else + return (real) 0.0; } real InitialConditionTaylorGreenUx::getInitPRESS(int i, int level) { - //nicht benötigt, da Druck aus Dichte berechnet wird - return (real) 0.0; + //nicht ben�tigt, da Druck aus Dichte berechnet wird + return (real) 0.0; } \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUx/InitialConditions/InitialConditionTaylorGreenVortexUx.h b/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUx/InitialConditions/InitialConditionTaylorGreenVortexUx.h index caa8bb44ce608274b67979e65b3a4f543b6d5524..458bff99372fea3e98344cbb1771513fea8930a8 100644 --- a/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUx/InitialConditions/InitialConditionTaylorGreenVortexUx.h +++ b/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUx/InitialConditions/InitialConditionTaylorGreenVortexUx.h @@ -11,23 +11,23 @@ struct GridInformationStruct; class InitialConditionTaylorGreenUx : public InitialConditionImp { public: - static std::shared_ptr<InitialConditionTaylorGreenUx> getNewInstance(std::shared_ptr<TaylorGreenVortexUxParameterStruct> simParaStruct, std::shared_ptr<GridInformationStruct> gridInfoStruct); + static std::shared_ptr<InitialConditionTaylorGreenUx> getNewInstance(std::shared_ptr<TaylorGreenVortexUxParameterStruct> simParaStruct, std::shared_ptr<GridInformationStruct> gridInfoStruct); - real getInitVX(int i, int level); - real getInitVY(int i, int level); - real getInitVZ(int i, int level); - real getInitROH(int i, int level); - real getInitPRESS(int i, int level); + real getInitVX(int i, int level); + real getInitVY(int i, int level); + real getInitVZ(int i, int level); + real getInitROH(int i, int level); + real getInitPRESS(int i, int level); private: - InitialConditionTaylorGreenUx(std::shared_ptr<TaylorGreenVortexUxParameterStruct> simParaStruct, std::shared_ptr<GridInformationStruct> gridInfoStruct); - InitialConditionTaylorGreenUx() {}; - - real amp; - real rho; - real l0; - real lx, lz; - real ux; + InitialConditionTaylorGreenUx(std::shared_ptr<TaylorGreenVortexUxParameterStruct> simParaStruct, std::shared_ptr<GridInformationStruct> gridInfoStruct); + InitialConditionTaylorGreenUx() {}; + + real amp; + real rho; + real l0; + real lx, lz; + real ux; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUx/LogFileInformation/LogFileInformationTaylorGreenVortexUx.cpp b/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUx/LogFileInformation/LogFileInformationTaylorGreenVortexUx.cpp index 050534a442c0f61becd968684dfb67890e690d41..094c9892e11f997d83c9abfb845a72b55edc95ca 100644 --- a/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUx/LogFileInformation/LogFileInformationTaylorGreenVortexUx.cpp +++ b/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUx/LogFileInformation/LogFileInformationTaylorGreenVortexUx.cpp @@ -5,48 +5,48 @@ std::shared_ptr<LogFileInformationTaylorGreenUx> LogFileInformationTaylorGreenUx::getNewInstance(std::shared_ptr<TaylorGreenVortexUxParameterStruct> simParaStruct, std::vector<std::shared_ptr<GridInformationStruct> > gridInfoStruct) { - return std::shared_ptr<LogFileInformationTaylorGreenUx>(new LogFileInformationTaylorGreenUx(simParaStruct, gridInfoStruct)); + return std::shared_ptr<LogFileInformationTaylorGreenUx>(new LogFileInformationTaylorGreenUx(simParaStruct, gridInfoStruct)); } std::string LogFileInformationTaylorGreenUx::getOutput() { - makeCenterHead("TaylorGreenVortex Ux Information"); - oss << "SimulationName=TaylorGreenVortexUx" << std::endl; - oss << "Lx=\""; - for (int i = 0; i < lx.size(); i++) { - oss << lx.at(i); - if (i < lx.size() - 1) - oss << " "; - else - oss << "\"" << std::endl << std::endl; - } + makeCenterHead("TaylorGreenVortex Ux Information"); + oss << "SimulationName=TaylorGreenVortexUx" << std::endl; + oss << "Lx=\""; + for (int i = 0; i < lx.size(); i++) { + oss << lx.at(i); + if (i < lx.size() - 1) + oss << " "; + else + oss << "\"" << std::endl << std::endl; + } - for (int i = 0; i < lx.size(); i++) { - oss << "ux_" << lx.at(i) << "=" << ux / (lx.at(i) / l0) << std::endl; - oss << "Amplitude_"<< lx.at(i) << "=" << amplitude / (lx.at(i) / l0) << std::endl; - oss << "l0_" << lx.at(i) << "=" << l0 << std::endl; - oss << std::endl; - } - - return oss.str(); + for (int i = 0; i < lx.size(); i++) { + oss << "ux_" << lx.at(i) << "=" << ux / (lx.at(i) / l0) << std::endl; + oss << "Amplitude_"<< lx.at(i) << "=" << amplitude / (lx.at(i) / l0) << std::endl; + oss << "l0_" << lx.at(i) << "=" << l0 << std::endl; + oss << std::endl; + } + + return oss.str(); } std::vector<std::string> LogFileInformationTaylorGreenUx::getFilePathExtension() { - std::vector<std::string> myFilePath; - myFilePath.push_back("TaylorGreenVortexUx"); - std::ostringstream oss; - oss << "ux_" << ux << "_Amplitude_" << amplitude; - myFilePath.push_back(oss.str()); - return myFilePath; + std::vector<std::string> myFilePath; + myFilePath.push_back("TaylorGreenVortexUx"); + std::ostringstream oss; + oss << "ux_" << ux << "_Amplitude_" << amplitude; + myFilePath.push_back(oss.str()); + return myFilePath; } LogFileInformationTaylorGreenUx::LogFileInformationTaylorGreenUx(std::shared_ptr<TaylorGreenVortexUxParameterStruct> simParaStruct, std::vector<std::shared_ptr<GridInformationStruct> > gridInfoStruct) { - this->ux = simParaStruct->ux; - this->amplitude = simParaStruct->amplitude; - this->l0 = simParaStruct->l0; + this->ux = simParaStruct->ux; + this->amplitude = simParaStruct->amplitude; + this->l0 = simParaStruct->l0; - for(int i = 0; i < gridInfoStruct.size(); i++) - lx.push_back(gridInfoStruct.at(i)->lx); + for(int i = 0; i < gridInfoStruct.size(); i++) + lx.push_back(gridInfoStruct.at(i)->lx); } diff --git a/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUx/LogFileInformation/LogFileInformationTaylorGreenVortexUx.h b/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUx/LogFileInformation/LogFileInformationTaylorGreenVortexUx.h index 01ba1344a091c93732fa0e20100bc5163ecf151a..2d3d4f7a4cb11f64260feb3543fe7eace4f4e4e4 100644 --- a/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUx/LogFileInformation/LogFileInformationTaylorGreenVortexUx.h +++ b/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUx/LogFileInformation/LogFileInformationTaylorGreenVortexUx.h @@ -13,19 +13,19 @@ struct GridInformationStruct; class LogFileInformationTaylorGreenUx : public SimulationLogFileInformation { public: - static std::shared_ptr<LogFileInformationTaylorGreenUx> getNewInstance(std::shared_ptr<TaylorGreenVortexUxParameterStruct> simParaStruct, std::vector<std::shared_ptr<GridInformationStruct> > gridInfoStruct); - - std::string getOutput(); - std::vector<std::string> getFilePathExtension(); - + static std::shared_ptr<LogFileInformationTaylorGreenUx> getNewInstance(std::shared_ptr<TaylorGreenVortexUxParameterStruct> simParaStruct, std::vector<std::shared_ptr<GridInformationStruct> > gridInfoStruct); + + std::string getOutput(); + std::vector<std::string> getFilePathExtension(); + private: - LogFileInformationTaylorGreenUx() {}; - LogFileInformationTaylorGreenUx(std::shared_ptr<TaylorGreenVortexUxParameterStruct> simParaStruct, std::vector<std::shared_ptr<GridInformationStruct> > gridInfoStruct); + LogFileInformationTaylorGreenUx() {}; + LogFileInformationTaylorGreenUx(std::shared_ptr<TaylorGreenVortexUxParameterStruct> simParaStruct, std::vector<std::shared_ptr<GridInformationStruct> > gridInfoStruct); - double ux; - double amplitude; - std::vector<double> lx; - int l0; + double ux; + double amplitude; + std::vector<double> lx; + int l0; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUx/SimulationInfo/SimulationInfoTaylorGreenVortexUx.cpp b/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUx/SimulationInfo/SimulationInfoTaylorGreenVortexUx.cpp index 35f2139bf8ac686af4d28bd08155362e52d6110c..69049f990fcc1bf62db295f79618557af41ecb4c 100644 --- a/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUx/SimulationInfo/SimulationInfoTaylorGreenVortexUx.cpp +++ b/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUx/SimulationInfo/SimulationInfoTaylorGreenVortexUx.cpp @@ -7,13 +7,13 @@ std::shared_ptr<SimulationInfoTaylorGreenUx> SimulationInfoTaylorGreenUx::getNewInstance(int simID, std::string kernel, double viscosity, std::shared_ptr<TaylorGreenVortexUxParameterStruct> simParaStruct, std::shared_ptr<GridInformationStruct> gridInfoStruct, int numberOfSimulations) { - return std::shared_ptr<SimulationInfoTaylorGreenUx>(new SimulationInfoTaylorGreenUx(simID, kernel, viscosity, simParaStruct, gridInfoStruct, numberOfSimulations)); + return std::shared_ptr<SimulationInfoTaylorGreenUx>(new SimulationInfoTaylorGreenUx(simID, kernel, viscosity, simParaStruct, gridInfoStruct, numberOfSimulations)); } SimulationInfoTaylorGreenUx::SimulationInfoTaylorGreenUx(int simID, std::string kernel, double viscosity, std::shared_ptr<TaylorGreenVortexUxParameterStruct> simParaStruct, std::shared_ptr<GridInformationStruct> gridInfoStruct, int numberOfSimulations) - : SimulationInfoImp(simID, kernel, viscosity, gridInfoStruct->lx, numberOfSimulations, "TaylorGreenVortex Ux", simParaStruct->dataToCalcTests) + : SimulationInfoImp(simID, kernel, viscosity, gridInfoStruct->lx, numberOfSimulations, "TaylorGreenVortex Ux", simParaStruct->dataToCalcTests) { - std::ostringstream oss; - oss << " ux: " << simParaStruct->ux / (gridInfoStruct->lx / simParaStruct->l0) << " Amplitude: " << simParaStruct->amplitude / (gridInfoStruct->lx / simParaStruct->l0); - this->simulationParameterString = oss.str(); + std::ostringstream oss; + oss << " ux: " << simParaStruct->ux / (gridInfoStruct->lx / simParaStruct->l0) << " Amplitude: " << simParaStruct->amplitude / (gridInfoStruct->lx / simParaStruct->l0); + this->simulationParameterString = oss.str(); } \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUx/SimulationInfo/SimulationInfoTaylorGreenVortexUx.h b/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUx/SimulationInfo/SimulationInfoTaylorGreenVortexUx.h index 266b1f2833d75cd59d7db829607c47a33a0cd267..1670265f3e40f1ce6090cdcb9eeccba9060e2397 100644 --- a/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUx/SimulationInfo/SimulationInfoTaylorGreenVortexUx.h +++ b/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUx/SimulationInfo/SimulationInfoTaylorGreenVortexUx.h @@ -13,11 +13,11 @@ struct GridInformationStruct; class SimulationInfoTaylorGreenUx : public SimulationInfoImp { public: - static std::shared_ptr<SimulationInfoTaylorGreenUx> getNewInstance(int simID, std::string kernel, double viscosity, std::shared_ptr<TaylorGreenVortexUxParameterStruct> simParaStruct, std::shared_ptr<GridInformationStruct> gridInfoStruct, int numberOfSimulations); + static std::shared_ptr<SimulationInfoTaylorGreenUx> getNewInstance(int simID, std::string kernel, double viscosity, std::shared_ptr<TaylorGreenVortexUxParameterStruct> simParaStruct, std::shared_ptr<GridInformationStruct> gridInfoStruct, int numberOfSimulations); private: - SimulationInfoTaylorGreenUx() {}; - SimulationInfoTaylorGreenUx(int simID, std::string kernel, double viscosity, std::shared_ptr<TaylorGreenVortexUxParameterStruct> simParaStruct, std::shared_ptr<GridInformationStruct> gridInfoStruct, int numberOfSimulations); - + SimulationInfoTaylorGreenUx() {}; + SimulationInfoTaylorGreenUx(int simID, std::string kernel, double viscosity, std::shared_ptr<TaylorGreenVortexUxParameterStruct> simParaStruct, std::shared_ptr<GridInformationStruct> gridInfoStruct, int numberOfSimulations); + }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUx/SimulationParameter/SimulationParameterTaylorGreenVortexUx.cpp b/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUx/SimulationParameter/SimulationParameterTaylorGreenVortexUx.cpp index 934419410dec05c986ce313a008936b985767c04..d31044eec14b6a43866270c5cf29edcefa8d51b3 100644 --- a/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUx/SimulationParameter/SimulationParameterTaylorGreenVortexUx.cpp +++ b/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUx/SimulationParameter/SimulationParameterTaylorGreenVortexUx.cpp @@ -7,19 +7,19 @@ std::shared_ptr<SimulationParameter> SimulationParameterTaylorGreenUx::getNewInstance(std::string kernel, double viscosity, std::shared_ptr<TaylorGreenVortexUxParameterStruct> tgvParameterStruct, std::shared_ptr<GridInformationStruct> gridInfo) { - return std::shared_ptr<SimulationParameter>(new SimulationParameterTaylorGreenUx(kernel, viscosity, tgvParameterStruct, gridInfo)); + return std::shared_ptr<SimulationParameter>(new SimulationParameterTaylorGreenUx(kernel, viscosity, tgvParameterStruct, gridInfo)); } SimulationParameterTaylorGreenUx::SimulationParameterTaylorGreenUx(std::string kernel, double viscosity, std::shared_ptr<TaylorGreenVortexUxParameterStruct> tgvParameterStruct, std::shared_ptr<GridInformationStruct> gridInfo) :SimulationParameterImp(kernel, viscosity, tgvParameterStruct->basicSimulationParameter, gridInfo) { - this->maxVelocity = tgvParameterStruct->ux / (lx / l0); - this->timeStepLength = tgvParameterStruct->basicTimeStepLength * (gridInfo->lx / l0)*(gridInfo->lx / l0); + this->maxVelocity = tgvParameterStruct->ux / (lx / l0); + this->timeStepLength = tgvParameterStruct->basicTimeStepLength * (gridInfo->lx / l0)*(gridInfo->lx / l0); - std::string kernelName = kernel; + std::string kernelName = kernel; - std::ostringstream oss; - oss << tgvParameterStruct->vtkFilePath << "/TaylorGreenVortex Ux/Viscosity_" << viscosity << "/ux_" << tgvParameterStruct->ux << "_amplitude_" << tgvParameterStruct->amplitude << "/" << kernelName << "/grid" << lx; - generateFileDirectionInMyStystem(oss.str()); - this->filePath = oss.str(); + std::ostringstream oss; + oss << tgvParameterStruct->vtkFilePath << "/TaylorGreenVortex Ux/Viscosity_" << viscosity << "/ux_" << tgvParameterStruct->ux << "_amplitude_" << tgvParameterStruct->amplitude << "/" << kernelName << "/grid" << lx; + generateFileDirectionInMyStystem(oss.str()); + this->filePath = oss.str(); } diff --git a/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUx/SimulationParameter/SimulationParameterTaylorGreenVortexUx.h b/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUx/SimulationParameter/SimulationParameterTaylorGreenVortexUx.h index a69f1eba826a18fa424d317ee03c7a8cde9eda79..bec445513856df963916b670793c01be181e6e34 100644 --- a/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUx/SimulationParameter/SimulationParameterTaylorGreenVortexUx.h +++ b/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUx/SimulationParameter/SimulationParameterTaylorGreenVortexUx.h @@ -11,11 +11,11 @@ struct TaylorGreenVortexUxParameterStruct; class SimulationParameterTaylorGreenUx : public SimulationParameterImp { public: - static std::shared_ptr<SimulationParameter> getNewInstance(std::string kernel, double viscosity, std::shared_ptr<TaylorGreenVortexUxParameterStruct> tgvParameterStruct, std::shared_ptr<GridInformationStruct> gridInfo); + static std::shared_ptr<SimulationParameter> getNewInstance(std::string kernel, double viscosity, std::shared_ptr<TaylorGreenVortexUxParameterStruct> tgvParameterStruct, std::shared_ptr<GridInformationStruct> gridInfo); - + protected: - SimulationParameterTaylorGreenUx(std::string kernel, double viscosity, std::shared_ptr<TaylorGreenVortexUxParameterStruct> tgvParameterStruct, std::shared_ptr<GridInformationStruct> gridInfo); + SimulationParameterTaylorGreenUx(std::string kernel, double viscosity, std::shared_ptr<TaylorGreenVortexUxParameterStruct> tgvParameterStruct, std::shared_ptr<GridInformationStruct> gridInfo); }; #endif diff --git a/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUx/TaylorGreenVortexUxParameterStruct.h b/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUx/TaylorGreenVortexUxParameterStruct.h index 1a12a99eca58d11e96e411c969d856a2d065dce7..9b64d2321c31c5b5266385ba37837c6bf8e1b284 100644 --- a/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUx/TaylorGreenVortexUxParameterStruct.h +++ b/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUx/TaylorGreenVortexUxParameterStruct.h @@ -7,14 +7,14 @@ struct TaylorGreenVortexUxParameterStruct { - std::shared_ptr<BasicSimulationParameterStruct> basicSimulationParameter; + std::shared_ptr<BasicSimulationParameterStruct> basicSimulationParameter; - double ux; - double amplitude; - int basicTimeStepLength; - double l0; - double rho0; - std::string vtkFilePath; - std::vector<std::string> dataToCalcTests; + double ux; + double amplitude; + int basicTimeStepLength; + double l0; + double rho0; + std::string vtkFilePath; + std::vector<std::string> dataToCalcTests; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUz/AnalyticalResults/AnalyticalResultsTaylorGreenVortexUz.cpp b/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUz/AnalyticalResults/AnalyticalResultsTaylorGreenVortexUz.cpp index eb7eb9a3aa17c365eac43b626658e0c7a36dc647..a8e6622b665c22ffac0c3ee269e2f76f8d47fbee 100644 --- a/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUz/AnalyticalResults/AnalyticalResultsTaylorGreenVortexUz.cpp +++ b/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUz/AnalyticalResults/AnalyticalResultsTaylorGreenVortexUz.cpp @@ -7,30 +7,30 @@ std::shared_ptr<AnalyticalResults> AnalyticalResultsTaylorGreenUz::getNewInstance(double viscosity, std::shared_ptr<TaylorGreenVortexUzParameterStruct> simParaStruct) { - return std::shared_ptr<AnalyticalResults>(new AnalyticalResultsTaylorGreenUz(viscosity, simParaStruct)); + return std::shared_ptr<AnalyticalResults>(new AnalyticalResultsTaylorGreenUz(viscosity, simParaStruct)); } void AnalyticalResultsTaylorGreenUz::calc(std::shared_ptr<SimulationResults> simResults) { - AnalyticalResultsImp::init(simResults); + AnalyticalResultsImp::init(simResults); - for (int i = 0; i < numberOfTimeSteps; i++) { - for (int j = 0; j < numberOfNodes; j++) { - vx.at(i).at(j) = (amplitude*exp( time.at(i)*viscosity*((-(real)4.0 * pow(M_PI, (real)2.0)) / pow(xNodes, (real)2.0) - ((real)4.0 * pow(M_PI, (real)2.0)) / pow(zNodes, (real)2.0)))*l0*cos(((real)2.0 * M_PI*((l0*time.at(i)*uz) / xNodes + z.at(i).at(j))) / zNodes)*sin(((real)2.0 * M_PI*x.at(i).at(j)) / xNodes)) / xNodes; - vy.at(i).at(j) = (real)0.0; - vz.at(i).at(j) = (l0*uz) / zNodes - (amplitude*exp(time.at(i)*viscosity*((-(real)4.0 * pow(M_PI, (real)2.0)) / pow(xNodes, (real)2.0) - ((real)4.0 * pow(M_PI, (real)2.0)) / pow(zNodes, (real)2.0)))*l0*zNodes*cos(((real)2.0 * M_PI*x.at(i).at(j)) / xNodes)*sin(((real)2.0 * M_PI*(z.at(i).at(j) + (l0*time.at(i)*uz) / zNodes)) / zNodes)) / pow(xNodes, (real)2.0); - press.at(i).at(j) = (amplitude*pow(l0, (real)2.0)*rho0*(amplitude*pow(xNodes, (real)2.0)*pow(zNodes, (real)2.0)*pow(cos(((real)2.0 * M_PI*x.at(i).at(j)) / xNodes), (real)2.0) - (real)4.0 * exp(((real)4.0 * pow(M_PI, (real)2.0)*time.at(i)*viscosity*(pow(xNodes, (real)2.0) + pow(zNodes, (real)2.0))) / (pow(xNodes, (real)2.0)*pow(zNodes, (real)2.0)))*uz*pow(xNodes, (real)2.0)*(pow(xNodes, (real)2.0) - pow(zNodes, (real)2.0))*cos(((real)2.0 * M_PI*x.at(i).at(j)) / xNodes)*sin(((real)2.0 * M_PI*(l0*time.at(i)*uz + z.at(i).at(j)*zNodes)) / pow(zNodes, (real)2.0)) - amplitude*pow(zNodes, (real)4.0)*pow(sin(((real)2.0 * M_PI*(l0*time.at(i)*uz + z.at(i).at(j)*zNodes)) / pow(zNodes, (real)2.0)), (real)2.0))) / ((real)2.0*exp(((real)8.0 * pow(M_PI, (real)2.0)*time.at(i)*viscosity*(pow(xNodes, (real)2.0) + pow(zNodes, (real)2.0))) / (pow(xNodes, (real)2.0)*pow(zNodes, (real)2.0)))*pow(xNodes, (real)4.0)*pow(zNodes, (real)2.0)); - rho.at(i).at(j) = (amplitude*pow(l0, (real)2.0)*rho0*(amplitude*pow(xNodes, (real)2.0)*pow(zNodes, (real)2.0)*pow(cos(((real)2.0 * M_PI*x.at(i).at(j)) / xNodes), (real)2.0) - (real)4.0 * exp(((real)4.0 * pow(M_PI, (real)2.0)*time.at(i)*viscosity*(pow(xNodes, (real)2.0) + pow(zNodes, (real)2.0))) / (pow(xNodes, (real)2.0)*pow(zNodes, (real)2.0)))*uz*pow(xNodes, (real)2.0)*(pow(xNodes, (real)2.0) - pow(zNodes, (real)2.0))*cos(((real)2.0 * M_PI*x.at(i).at(j)) / xNodes)*sin(((real)2.0 * M_PI*(l0*time.at(i)*uz + z.at(i).at(j)*zNodes)) / pow(zNodes, (real)2.0)) - amplitude*pow(zNodes, (real)4.0)*pow(sin(((real)2.0 * M_PI*(l0*time.at(i)*uz + z.at(i).at(j)*zNodes)) / pow(zNodes, (real)2.0)), (real)2.0))) / ((real)2.0*exp(((real)8.0 * pow(M_PI, (real)2.0)*time.at(i)*viscosity*(pow(xNodes, (real)2.0) + pow(zNodes, (real)2.0))) / (pow(xNodes, (real)2.0)*pow(zNodes, (real)2.0)))*pow(xNodes, (real)4.0)*pow(zNodes, (real)2.0)); - } - } - calculated = true; + for (int i = 0; i < numberOfTimeSteps; i++) { + for (int j = 0; j < numberOfNodes; j++) { + vx.at(i).at(j) = (amplitude*exp( time.at(i)*viscosity*((-(real)4.0 * pow(M_PI, (real)2.0)) / pow(xNodes, (real)2.0) - ((real)4.0 * pow(M_PI, (real)2.0)) / pow(zNodes, (real)2.0)))*l0*cos(((real)2.0 * M_PI*((l0*time.at(i)*uz) / xNodes + z.at(i).at(j))) / zNodes)*sin(((real)2.0 * M_PI*x.at(i).at(j)) / xNodes)) / xNodes; + vy.at(i).at(j) = (real)0.0; + vz.at(i).at(j) = (l0*uz) / zNodes - (amplitude*exp(time.at(i)*viscosity*((-(real)4.0 * pow(M_PI, (real)2.0)) / pow(xNodes, (real)2.0) - ((real)4.0 * pow(M_PI, (real)2.0)) / pow(zNodes, (real)2.0)))*l0*zNodes*cos(((real)2.0 * M_PI*x.at(i).at(j)) / xNodes)*sin(((real)2.0 * M_PI*(z.at(i).at(j) + (l0*time.at(i)*uz) / zNodes)) / zNodes)) / pow(xNodes, (real)2.0); + press.at(i).at(j) = (amplitude*pow(l0, (real)2.0)*rho0*(amplitude*pow(xNodes, (real)2.0)*pow(zNodes, (real)2.0)*pow(cos(((real)2.0 * M_PI*x.at(i).at(j)) / xNodes), (real)2.0) - (real)4.0 * exp(((real)4.0 * pow(M_PI, (real)2.0)*time.at(i)*viscosity*(pow(xNodes, (real)2.0) + pow(zNodes, (real)2.0))) / (pow(xNodes, (real)2.0)*pow(zNodes, (real)2.0)))*uz*pow(xNodes, (real)2.0)*(pow(xNodes, (real)2.0) - pow(zNodes, (real)2.0))*cos(((real)2.0 * M_PI*x.at(i).at(j)) / xNodes)*sin(((real)2.0 * M_PI*(l0*time.at(i)*uz + z.at(i).at(j)*zNodes)) / pow(zNodes, (real)2.0)) - amplitude*pow(zNodes, (real)4.0)*pow(sin(((real)2.0 * M_PI*(l0*time.at(i)*uz + z.at(i).at(j)*zNodes)) / pow(zNodes, (real)2.0)), (real)2.0))) / ((real)2.0*exp(((real)8.0 * pow(M_PI, (real)2.0)*time.at(i)*viscosity*(pow(xNodes, (real)2.0) + pow(zNodes, (real)2.0))) / (pow(xNodes, (real)2.0)*pow(zNodes, (real)2.0)))*pow(xNodes, (real)4.0)*pow(zNodes, (real)2.0)); + rho.at(i).at(j) = (amplitude*pow(l0, (real)2.0)*rho0*(amplitude*pow(xNodes, (real)2.0)*pow(zNodes, (real)2.0)*pow(cos(((real)2.0 * M_PI*x.at(i).at(j)) / xNodes), (real)2.0) - (real)4.0 * exp(((real)4.0 * pow(M_PI, (real)2.0)*time.at(i)*viscosity*(pow(xNodes, (real)2.0) + pow(zNodes, (real)2.0))) / (pow(xNodes, (real)2.0)*pow(zNodes, (real)2.0)))*uz*pow(xNodes, (real)2.0)*(pow(xNodes, (real)2.0) - pow(zNodes, (real)2.0))*cos(((real)2.0 * M_PI*x.at(i).at(j)) / xNodes)*sin(((real)2.0 * M_PI*(l0*time.at(i)*uz + z.at(i).at(j)*zNodes)) / pow(zNodes, (real)2.0)) - amplitude*pow(zNodes, (real)4.0)*pow(sin(((real)2.0 * M_PI*(l0*time.at(i)*uz + z.at(i).at(j)*zNodes)) / pow(zNodes, (real)2.0)), (real)2.0))) / ((real)2.0*exp(((real)8.0 * pow(M_PI, (real)2.0)*time.at(i)*viscosity*(pow(xNodes, (real)2.0) + pow(zNodes, (real)2.0))) / (pow(xNodes, (real)2.0)*pow(zNodes, (real)2.0)))*pow(xNodes, (real)4.0)*pow(zNodes, (real)2.0)); + } + } + calculated = true; } AnalyticalResultsTaylorGreenUz::AnalyticalResultsTaylorGreenUz(double viscosity, std::shared_ptr<TaylorGreenVortexUzParameterStruct> simParaStruct) : AnalyticalResultsImp(simParaStruct->l0) { - this->viscosity = viscosity; - this->uz = simParaStruct->uz; - this->amplitude = simParaStruct->amplitude; - this->l0 = simParaStruct->l0; - this->rho0 = simParaStruct->rho0; + this->viscosity = viscosity; + this->uz = simParaStruct->uz; + this->amplitude = simParaStruct->amplitude; + this->l0 = simParaStruct->l0; + this->rho0 = simParaStruct->rho0; } \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUz/AnalyticalResults/AnalyticalResultsTaylorGreenVortexUz.h b/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUz/AnalyticalResults/AnalyticalResultsTaylorGreenVortexUz.h index 1ba96c52b0b3f360c917c1582b30faad22a756d9..0b40d7768021d7d9e08e28d5f9f3bbc1e074580b 100644 --- a/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUz/AnalyticalResults/AnalyticalResultsTaylorGreenVortexUz.h +++ b/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUz/AnalyticalResults/AnalyticalResultsTaylorGreenVortexUz.h @@ -8,16 +8,16 @@ struct TaylorGreenVortexUzParameterStruct; class AnalyticalResultsTaylorGreenUz : public AnalyticalResultsImp { public: - static std::shared_ptr<AnalyticalResults> getNewInstance(double viscosity, std::shared_ptr<TaylorGreenVortexUzParameterStruct> simParaStruct); - void calc(std::shared_ptr<SimulationResults> simResults); + static std::shared_ptr<AnalyticalResults> getNewInstance(double viscosity, std::shared_ptr<TaylorGreenVortexUzParameterStruct> simParaStruct); + void calc(std::shared_ptr<SimulationResults> simResults); private: - AnalyticalResultsTaylorGreenUz(); - AnalyticalResultsTaylorGreenUz(double viscosity, std::shared_ptr<TaylorGreenVortexUzParameterStruct> simParaStruct); + AnalyticalResultsTaylorGreenUz(); + AnalyticalResultsTaylorGreenUz(double viscosity, std::shared_ptr<TaylorGreenVortexUzParameterStruct> simParaStruct); - double viscosity, rho0; - double l0; - double uz, amplitude; + double viscosity, rho0; + double l0; + double uz, amplitude; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUz/InitialConditions/InitialConditionTaylorGreenVortexUz.cpp b/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUz/InitialConditions/InitialConditionTaylorGreenVortexUz.cpp index fb544b089efb607d5b0d904d5dc232f521b45e6c..a85d20601808c4ddfe74396d7fc4a067fa236436 100644 --- a/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUz/InitialConditions/InitialConditionTaylorGreenVortexUz.cpp +++ b/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUz/InitialConditions/InitialConditionTaylorGreenVortexUz.cpp @@ -8,70 +8,70 @@ InitialConditionTaylorGreenUz::InitialConditionTaylorGreenUz(std::shared_ptr<TaylorGreenVortexUzParameterStruct> simParaStruct, std::shared_ptr<GridInformationStruct> gridInfoStruct) { - this->amp = simParaStruct->amplitude; - this->l0 = simParaStruct->l0; - this->lx = gridInfoStruct->lx; - this->lz = gridInfoStruct->lz; - this->rho = simParaStruct->rho0; - this->uz = simParaStruct->uz; + this->amp = simParaStruct->amplitude; + this->l0 = simParaStruct->l0; + this->lx = gridInfoStruct->lx; + this->lz = gridInfoStruct->lz; + this->rho = simParaStruct->rho0; + this->uz = simParaStruct->uz; } std::shared_ptr<InitialConditionTaylorGreenUz> InitialConditionTaylorGreenUz::getNewInstance(std::shared_ptr<TaylorGreenVortexUzParameterStruct> simParaStruct, std::shared_ptr<GridInformationStruct> gridInfoStruct) { - return std::shared_ptr<InitialConditionTaylorGreenUz>(new InitialConditionTaylorGreenUz(simParaStruct, gridInfoStruct)); + return std::shared_ptr<InitialConditionTaylorGreenUz>(new InitialConditionTaylorGreenUz(simParaStruct, gridInfoStruct)); } real InitialConditionTaylorGreenUz::getInitVX(int i, int level) { - real x = getXCoord(i, level); - real y = getYCoord(i, level); - real z = getZCoord(i, level); - if ((i != 0) && (x != XCoordStopNode) && (y != YCoordStopNode) && (z != ZCoordStopNode)) - { - real vx = (amp * l0 * cos((real)2.0 * M_PI * z / lz) * sin((real)2.0 * M_PI * x / lx) / lx); - return vx; - } - else - return (real)0.0; + real x = getXCoord(i, level); + real y = getYCoord(i, level); + real z = getZCoord(i, level); + if ((i != 0) && (x != XCoordStopNode) && (y != YCoordStopNode) && (z != ZCoordStopNode)) + { + real vx = (amp * l0 * cos((real)2.0 * M_PI * z / lz) * sin((real)2.0 * M_PI * x / lx) / lx); + return vx; + } + else + return (real)0.0; } real InitialConditionTaylorGreenUz::getInitVY(int i, int level) { - return (real) 0.0; + return (real) 0.0; } real InitialConditionTaylorGreenUz::getInitVZ(int i, int level) { - real x = getXCoord(i, level); - real y = getYCoord(i, level); - real z = getZCoord(i, level); - if ((i != 0) && (x != XCoordStopNode) && (y != YCoordStopNode) && (z != ZCoordStopNode)) - { - real vz = (uz* l0 / lz) - (amp * l0 * lz * cos((real)2.0 * M_PI * x / lx) * sin((real)2.0 * M_PI * z / lz) / (lx*lx)); - return vz; - } - else - return (real) 0.0; + real x = getXCoord(i, level); + real y = getYCoord(i, level); + real z = getZCoord(i, level); + if ((i != 0) && (x != XCoordStopNode) && (y != YCoordStopNode) && (z != ZCoordStopNode)) + { + real vz = (uz* l0 / lz) - (amp * l0 * lz * cos((real)2.0 * M_PI * x / lx) * sin((real)2.0 * M_PI * z / lz) / (lx*lx)); + return vz; + } + else + return (real) 0.0; } real InitialConditionTaylorGreenUz::getInitROH(int i, int level) { - real x = getXCoord(i, level); - real y = getYCoord(i, level); - real z = getZCoord(i, level); - if ((i != 0) && (x != XCoordStopNode) && (y != YCoordStopNode) && (z != ZCoordStopNode)) - { - real press = (amp*pow(l0, (real)2.0)*rho*(amp*pow(lx, (real)2.0)*pow(lz, (real)2.0)*pow(cos(((real)2.0 * M_PI*x) / lx), (real)2.0) - (real)4.0 * pow(lx, (real)2.0)*(pow(lx, (real)2.0) - pow(lz, (real)2.0))*uz*cos(((real)2.0 * M_PI*x) / lx)*sin(((real)2.0 * M_PI*z) / lz) - amp*pow(lz, (real)4.0)*pow(sin(((real)2.0 * M_PI*z) / lz), (real)2.0))) / ((real)2.0*pow(lx, (real)4.0)*pow(lz, (real)2.0)); - real rho = (real)3.0 * press; - return rho; - } - else - return (real) 0.0; + real x = getXCoord(i, level); + real y = getYCoord(i, level); + real z = getZCoord(i, level); + if ((i != 0) && (x != XCoordStopNode) && (y != YCoordStopNode) && (z != ZCoordStopNode)) + { + real press = (amp*pow(l0, (real)2.0)*rho*(amp*pow(lx, (real)2.0)*pow(lz, (real)2.0)*pow(cos(((real)2.0 * M_PI*x) / lx), (real)2.0) - (real)4.0 * pow(lx, (real)2.0)*(pow(lx, (real)2.0) - pow(lz, (real)2.0))*uz*cos(((real)2.0 * M_PI*x) / lx)*sin(((real)2.0 * M_PI*z) / lz) - amp*pow(lz, (real)4.0)*pow(sin(((real)2.0 * M_PI*z) / lz), (real)2.0))) / ((real)2.0*pow(lx, (real)4.0)*pow(lz, (real)2.0)); + real rho = (real)3.0 * press; + return rho; + } + else + return (real) 0.0; } real InitialConditionTaylorGreenUz::getInitPRESS(int i, int level) { - //nicht benötigt, da Druck aus Dichte berechnet wird - return (real) 0.0; + //nicht ben�tigt, da Druck aus Dichte berechnet wird + return (real) 0.0; } \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUz/InitialConditions/InitialConditionTaylorGreenVortexUz.h b/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUz/InitialConditions/InitialConditionTaylorGreenVortexUz.h index 70f85b42ec501924c536b1eb7c766525815bc5b8..547d788fd3a5d0c7ccb639ad7528ba1947630be5 100644 --- a/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUz/InitialConditions/InitialConditionTaylorGreenVortexUz.h +++ b/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUz/InitialConditions/InitialConditionTaylorGreenVortexUz.h @@ -11,23 +11,23 @@ struct GridInformationStruct; class InitialConditionTaylorGreenUz :public InitialConditionImp { public: - static std::shared_ptr<InitialConditionTaylorGreenUz> getNewInstance(std::shared_ptr<TaylorGreenVortexUzParameterStruct> simParaStruct, std::shared_ptr<GridInformationStruct> gridInfoStruct); + static std::shared_ptr<InitialConditionTaylorGreenUz> getNewInstance(std::shared_ptr<TaylorGreenVortexUzParameterStruct> simParaStruct, std::shared_ptr<GridInformationStruct> gridInfoStruct); - real getInitVX(int i, int level); - real getInitVY(int i, int level); - real getInitVZ(int i, int level); - real getInitROH(int i, int level); - real getInitPRESS(int i, int level); + real getInitVX(int i, int level); + real getInitVY(int i, int level); + real getInitVZ(int i, int level); + real getInitROH(int i, int level); + real getInitPRESS(int i, int level); private: - InitialConditionTaylorGreenUz(std::shared_ptr<TaylorGreenVortexUzParameterStruct> simParaStruct, std::shared_ptr<GridInformationStruct> gridInfoStruct); - InitialConditionTaylorGreenUz() {}; - - real amp; - real rho; - real l0; - real lx, lz; - real uz; + InitialConditionTaylorGreenUz(std::shared_ptr<TaylorGreenVortexUzParameterStruct> simParaStruct, std::shared_ptr<GridInformationStruct> gridInfoStruct); + InitialConditionTaylorGreenUz() {}; + + real amp; + real rho; + real l0; + real lx, lz; + real uz; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUz/LogFileInformation/LogFileInformationTaylorGreenVortexUz.cpp b/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUz/LogFileInformation/LogFileInformationTaylorGreenVortexUz.cpp index d055163d779e00c07a437571fac467d5b999ee68..ce14660787d5bc5eeb6e5444f405c9c42dd1fad5 100644 --- a/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUz/LogFileInformation/LogFileInformationTaylorGreenVortexUz.cpp +++ b/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUz/LogFileInformation/LogFileInformationTaylorGreenVortexUz.cpp @@ -4,50 +4,50 @@ std::shared_ptr<LogFileInformationTaylorGreenUz> LogFileInformationTaylorGreenUz::getNewInstance(std::shared_ptr<TaylorGreenVortexUzParameterStruct> simParaStruct, std::vector<std::shared_ptr<GridInformationStruct> > gridInfoStruct) { - return std::shared_ptr<LogFileInformationTaylorGreenUz>(new LogFileInformationTaylorGreenUz(simParaStruct, gridInfoStruct)); + return std::shared_ptr<LogFileInformationTaylorGreenUz>(new LogFileInformationTaylorGreenUz(simParaStruct, gridInfoStruct)); } std::string LogFileInformationTaylorGreenUz::getOutput() { - makeCenterHead("TaylorGreenVortex V0 Information"); - oss << "SimulationName=TaylorGreenVortexUz" << std::endl; - oss << "Lx=\""; - for (int i = 0; i < lx.size(); i++) { - oss << lx.at(i); - if (i < lx.size() - 1) - oss << " "; - else - oss << "\"" << std::endl << std::endl; - } + makeCenterHead("TaylorGreenVortex V0 Information"); + oss << "SimulationName=TaylorGreenVortexUz" << std::endl; + oss << "Lx=\""; + for (int i = 0; i < lx.size(); i++) { + oss << lx.at(i); + if (i < lx.size() - 1) + oss << " "; + else + oss << "\"" << std::endl << std::endl; + } - for (int i = 0; i < lz.size(); i++) { - oss << "l0_" << lx.at(i) << "=" << l0 << std::endl; - oss << "uz_" << lx.at(i) << "=" << uz / (lz.at(i) / l0) << std::endl; - oss << "Amplitude_" << lx.at(i) << "=" << amplitude / (lz.at(i) / l0) << std::endl; - oss << std::endl; - } - - return oss.str(); + for (int i = 0; i < lz.size(); i++) { + oss << "l0_" << lx.at(i) << "=" << l0 << std::endl; + oss << "uz_" << lx.at(i) << "=" << uz / (lz.at(i) / l0) << std::endl; + oss << "Amplitude_" << lx.at(i) << "=" << amplitude / (lz.at(i) / l0) << std::endl; + oss << std::endl; + } + + return oss.str(); } std::vector<std::string> LogFileInformationTaylorGreenUz::getFilePathExtension() { - std::vector<std::string> myFilePath; - myFilePath.push_back("TaylorGreenVortexUz"); - std::ostringstream oss; - oss << "uz_" << uz << "_Amplitude_" << amplitude; - myFilePath.push_back(oss.str()); - return myFilePath; + std::vector<std::string> myFilePath; + myFilePath.push_back("TaylorGreenVortexUz"); + std::ostringstream oss; + oss << "uz_" << uz << "_Amplitude_" << amplitude; + myFilePath.push_back(oss.str()); + return myFilePath; } LogFileInformationTaylorGreenUz::LogFileInformationTaylorGreenUz(std::shared_ptr<TaylorGreenVortexUzParameterStruct> simParaStruct, std::vector<std::shared_ptr<GridInformationStruct> > gridInfoStruct) { - this->uz = simParaStruct->uz; - this->amplitude = simParaStruct->amplitude; - this->l0 = simParaStruct->l0; + this->uz = simParaStruct->uz; + this->amplitude = simParaStruct->amplitude; + this->l0 = simParaStruct->l0; - for (int i = 0; i < gridInfoStruct.size(); i++) - lz.push_back(gridInfoStruct.at(i)->lz); - for (int i = 0; i < gridInfoStruct.size(); i++) - lx.push_back(gridInfoStruct.at(i)->lx); + for (int i = 0; i < gridInfoStruct.size(); i++) + lz.push_back(gridInfoStruct.at(i)->lz); + for (int i = 0; i < gridInfoStruct.size(); i++) + lx.push_back(gridInfoStruct.at(i)->lx); } diff --git a/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUz/LogFileInformation/LogFileInformationTaylorGreenVortexUz.h b/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUz/LogFileInformation/LogFileInformationTaylorGreenVortexUz.h index cd58857ae15464d517bf43318cb8dfd3b57cdbb2..0ff3044dea743c5a1b704a3212ffb7ea8905d9de 100644 --- a/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUz/LogFileInformation/LogFileInformationTaylorGreenVortexUz.h +++ b/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUz/LogFileInformation/LogFileInformationTaylorGreenVortexUz.h @@ -13,19 +13,19 @@ struct GridInformationStruct; class LogFileInformationTaylorGreenUz : public SimulationLogFileInformation { public: - static std::shared_ptr<LogFileInformationTaylorGreenUz> getNewInstance(std::shared_ptr<TaylorGreenVortexUzParameterStruct> simParaStruct, std::vector<std::shared_ptr<GridInformationStruct> > gridInfoStruct); - - std::string getOutput(); - std::vector<std::string> getFilePathExtension(); + static std::shared_ptr<LogFileInformationTaylorGreenUz> getNewInstance(std::shared_ptr<TaylorGreenVortexUzParameterStruct> simParaStruct, std::vector<std::shared_ptr<GridInformationStruct> > gridInfoStruct); + + std::string getOutput(); + std::vector<std::string> getFilePathExtension(); private: - LogFileInformationTaylorGreenUz() {}; - LogFileInformationTaylorGreenUz(std::shared_ptr<TaylorGreenVortexUzParameterStruct> simParaStruct, std::vector<std::shared_ptr<GridInformationStruct> > gridInfoStruct); + LogFileInformationTaylorGreenUz() {}; + LogFileInformationTaylorGreenUz(std::shared_ptr<TaylorGreenVortexUzParameterStruct> simParaStruct, std::vector<std::shared_ptr<GridInformationStruct> > gridInfoStruct); - double uz; - double amplitude; - std::vector<double> lz; - std::vector<double> lx; - int l0; + double uz; + double amplitude; + std::vector<double> lz; + std::vector<double> lx; + int l0; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUz/SimulationInfo/SimulationInfoTaylorGreenVortexUz.cpp b/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUz/SimulationInfo/SimulationInfoTaylorGreenVortexUz.cpp index c4ca53febacf4c7d596b4a2b71a67deecc2f3749..261b3bb2ef4f01e42fca0ce8949884704fd7d83e 100644 --- a/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUz/SimulationInfo/SimulationInfoTaylorGreenVortexUz.cpp +++ b/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUz/SimulationInfo/SimulationInfoTaylorGreenVortexUz.cpp @@ -7,13 +7,13 @@ std::shared_ptr<SimulationInfoTaylorGreenUz> SimulationInfoTaylorGreenUz::getNewInstance(int simID, std::string kernel, double viscosity, std::shared_ptr<TaylorGreenVortexUzParameterStruct> simParaStruct, std::shared_ptr<GridInformationStruct> gridInfoStruct, int numberOfSimulations) { - return std::shared_ptr<SimulationInfoTaylorGreenUz>(new SimulationInfoTaylorGreenUz(simID, kernel, viscosity, simParaStruct, gridInfoStruct, numberOfSimulations)); + return std::shared_ptr<SimulationInfoTaylorGreenUz>(new SimulationInfoTaylorGreenUz(simID, kernel, viscosity, simParaStruct, gridInfoStruct, numberOfSimulations)); } SimulationInfoTaylorGreenUz::SimulationInfoTaylorGreenUz(int simID, std::string kernel, double viscosity, std::shared_ptr<TaylorGreenVortexUzParameterStruct> simParaStruct, std::shared_ptr<GridInformationStruct> gridInfoStruct, int numberOfSimulations) - : SimulationInfoImp(simID, kernel, viscosity, gridInfoStruct->lx, numberOfSimulations, "TaylorGreenVortex Uz", simParaStruct->dataToCalcTests) + : SimulationInfoImp(simID, kernel, viscosity, gridInfoStruct->lx, numberOfSimulations, "TaylorGreenVortex Uz", simParaStruct->dataToCalcTests) { - std::ostringstream oss; - oss << " uz: " << simParaStruct->uz / (gridInfoStruct->lz / simParaStruct->l0) << " Amplitude: " << simParaStruct->amplitude / (gridInfoStruct->lz / simParaStruct->l0); - this->simulationParameterString = oss.str(); + std::ostringstream oss; + oss << " uz: " << simParaStruct->uz / (gridInfoStruct->lz / simParaStruct->l0) << " Amplitude: " << simParaStruct->amplitude / (gridInfoStruct->lz / simParaStruct->l0); + this->simulationParameterString = oss.str(); } \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUz/SimulationInfo/SimulationInfoTaylorGreenVortexUz.h b/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUz/SimulationInfo/SimulationInfoTaylorGreenVortexUz.h index 8e8c4422087ee57462b7fbc3b802070c4acfb9a7..5b28ac6044454b9722b5c712fa6a009f640dd02d 100644 --- a/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUz/SimulationInfo/SimulationInfoTaylorGreenVortexUz.h +++ b/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUz/SimulationInfo/SimulationInfoTaylorGreenVortexUz.h @@ -13,11 +13,11 @@ struct GridInformationStruct; class SimulationInfoTaylorGreenUz : public SimulationInfoImp { public: - static std::shared_ptr<SimulationInfoTaylorGreenUz> getNewInstance(int simID, std::string kernel, double viscosity, std::shared_ptr<TaylorGreenVortexUzParameterStruct> simParaStruct, std::shared_ptr<GridInformationStruct> gridInfoStruct, int numberOfSimulations); + static std::shared_ptr<SimulationInfoTaylorGreenUz> getNewInstance(int simID, std::string kernel, double viscosity, std::shared_ptr<TaylorGreenVortexUzParameterStruct> simParaStruct, std::shared_ptr<GridInformationStruct> gridInfoStruct, int numberOfSimulations); private: - SimulationInfoTaylorGreenUz() {}; - SimulationInfoTaylorGreenUz(int simID, std::string kernel, double viscosity, std::shared_ptr<TaylorGreenVortexUzParameterStruct> simParaStruct, std::shared_ptr<GridInformationStruct> gridInfoStruct, int numberOfSimulations); - + SimulationInfoTaylorGreenUz() {}; + SimulationInfoTaylorGreenUz(int simID, std::string kernel, double viscosity, std::shared_ptr<TaylorGreenVortexUzParameterStruct> simParaStruct, std::shared_ptr<GridInformationStruct> gridInfoStruct, int numberOfSimulations); + }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUz/SimulationParameter/SimulationParameterTaylorGreenVortexUz.cpp b/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUz/SimulationParameter/SimulationParameterTaylorGreenVortexUz.cpp index ab1914db38284bf370c396bf37e990dbf66c210a..847eba96be6a5cf00a40092e1fcdc5f3f6bc5d73 100644 --- a/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUz/SimulationParameter/SimulationParameterTaylorGreenVortexUz.cpp +++ b/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUz/SimulationParameter/SimulationParameterTaylorGreenVortexUz.cpp @@ -7,19 +7,19 @@ std::shared_ptr<SimulationParameterTaylorGreenUz> SimulationParameterTaylorGreenUz::getNewInstance(std::string kernel, double viscosity, std::shared_ptr<TaylorGreenVortexUzParameterStruct> tgvParameterStruct, std::shared_ptr<GridInformationStruct> gridInfo) { - return std::shared_ptr<SimulationParameterTaylorGreenUz>(new SimulationParameterTaylorGreenUz(kernel, viscosity, tgvParameterStruct, gridInfo)); + return std::shared_ptr<SimulationParameterTaylorGreenUz>(new SimulationParameterTaylorGreenUz(kernel, viscosity, tgvParameterStruct, gridInfo)); } SimulationParameterTaylorGreenUz::SimulationParameterTaylorGreenUz(std::string kernel, double viscosity, std::shared_ptr<TaylorGreenVortexUzParameterStruct> tgvParameterStruct, std::shared_ptr<GridInformationStruct> gridInfo) :SimulationParameterImp(kernel, viscosity, tgvParameterStruct->basicSimulationParameter, gridInfo) { - this->timeStepLength = tgvParameterStruct->basicTimeStepLength * (gridInfo->lz / l0)*(gridInfo->lz / l0); - this->maxVelocity = tgvParameterStruct->uz / (lz / l0); + this->timeStepLength = tgvParameterStruct->basicTimeStepLength * (gridInfo->lz / l0)*(gridInfo->lz / l0); + this->maxVelocity = tgvParameterStruct->uz / (lz / l0); - std::string kernelName = kernel; + std::string kernelName = kernel; - std::ostringstream oss; - oss << tgvParameterStruct->vtkFilePath << "/TaylorGreenVortex Uz/Viscosity_" << viscosity << "/uz_" << tgvParameterStruct->uz << "_amplitude_" << tgvParameterStruct->amplitude << "/" << kernelName << "/grid" << lx; - generateFileDirectionInMyStystem(oss.str()); - this->filePath = oss.str(); + std::ostringstream oss; + oss << tgvParameterStruct->vtkFilePath << "/TaylorGreenVortex Uz/Viscosity_" << viscosity << "/uz_" << tgvParameterStruct->uz << "_amplitude_" << tgvParameterStruct->amplitude << "/" << kernelName << "/grid" << lx; + generateFileDirectionInMyStystem(oss.str()); + this->filePath = oss.str(); } \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUz/SimulationParameter/SimulationParameterTaylorGreenVortexUz.h b/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUz/SimulationParameter/SimulationParameterTaylorGreenVortexUz.h index 6fd025549c8ec5638fe97ca52819a8677a55f69b..a18e8f16675523e2dc2b780e928bc4dd762f06ac 100644 --- a/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUz/SimulationParameter/SimulationParameterTaylorGreenVortexUz.h +++ b/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUz/SimulationParameter/SimulationParameterTaylorGreenVortexUz.h @@ -12,10 +12,10 @@ struct GridInformationStruct; class SimulationParameterTaylorGreenUz : public SimulationParameterImp { public: - static std::shared_ptr<SimulationParameterTaylorGreenUz> getNewInstance(std::string kernel, double viscosity, std::shared_ptr<TaylorGreenVortexUzParameterStruct> tgvParameterStruct, std::shared_ptr<GridInformationStruct> gridInfo); - + static std::shared_ptr<SimulationParameterTaylorGreenUz> getNewInstance(std::string kernel, double viscosity, std::shared_ptr<TaylorGreenVortexUzParameterStruct> tgvParameterStruct, std::shared_ptr<GridInformationStruct> gridInfo); + protected: - SimulationParameterTaylorGreenUz(std::string kernel, double viscosity, std::shared_ptr<TaylorGreenVortexUzParameterStruct> tgvParameterStruct, std::shared_ptr<GridInformationStruct> gridInfo); + SimulationParameterTaylorGreenUz(std::string kernel, double viscosity, std::shared_ptr<TaylorGreenVortexUzParameterStruct> tgvParameterStruct, std::shared_ptr<GridInformationStruct> gridInfo); }; #endif diff --git a/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUz/TaylorGreenVortexUzParameterStruct.h b/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUz/TaylorGreenVortexUzParameterStruct.h index 2adcb573097c8decdbab30429bc18cbe7dcad1f7..6b95254e96c129a702e44036a596a67e33503a9e 100644 --- a/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUz/TaylorGreenVortexUzParameterStruct.h +++ b/apps/gpu/tests/NumericalTests/Simulations/TaylorGreenVortexUz/TaylorGreenVortexUzParameterStruct.h @@ -8,14 +8,14 @@ struct TaylorGreenVortexUzParameterStruct { - std::shared_ptr<BasicSimulationParameterStruct> basicSimulationParameter; + std::shared_ptr<BasicSimulationParameterStruct> basicSimulationParameter; - double uz; - double amplitude; - int basicTimeStepLength; - double l0; - double rho0; - std::string vtkFilePath; - std::vector<std::string> dataToCalcTests; + double uz; + double amplitude; + int basicTimeStepLength; + double l0; + double rho0; + std::string vtkFilePath; + std::vector<std::string> dataToCalcTests; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Tests/L2NormTest/L2NormTest.cpp b/apps/gpu/tests/NumericalTests/Tests/L2NormTest/L2NormTest.cpp index 1549c97834ae0f760494d77c3082a5c3037f0ae0..150fff05476c0038aa4bf2fee2acc2eabfc0cd8c 100644 --- a/apps/gpu/tests/NumericalTests/Tests/L2NormTest/L2NormTest.cpp +++ b/apps/gpu/tests/NumericalTests/Tests/L2NormTest/L2NormTest.cpp @@ -11,145 +11,145 @@ std::shared_ptr<L2NormTest> L2NormTest::getNewInstance(std::shared_ptr<ColorConsoleOutput> colorOutput, std::shared_ptr<L2NormTestParameterStruct> testParameter, std::string dataToCalculate, double maxL2NormDiff, std::string normalizeData) { - return std::shared_ptr<L2NormTest>(new L2NormTest(colorOutput, testParameter, dataToCalculate, maxL2NormDiff, normalizeData)); + return std::shared_ptr<L2NormTest>(new L2NormTest(colorOutput, testParameter, dataToCalculate, maxL2NormDiff, normalizeData)); } void L2NormTest::update() { - TestImp::update(); + TestImp::update(); } void L2NormTest::addSimulation(std::shared_ptr<NumericalTestSimulation> sim, std::shared_ptr<SimulationInfo> simInfo, std::shared_ptr<L2NormPostProcessingStrategy> postProStrategy) { - TestImp::addSimulation(sim, simInfo, postProStrategy); - l2NormPostProStrategies.push_back(postProStrategy); + TestImp::addSimulation(sim, simInfo, postProStrategy); + l2NormPostProStrategies.push_back(postProStrategy); } void L2NormTest::evaluate() { - std::vector<double> results = l2NormPostProStrategies.at(0)->getL2Norm(dataToCalculate, normalizeData); - - resultBasicTimestep = results.at(0); - resultDivergentTimeStep = results.at(1); - diffL2Norm = resultDivergentTimeStep - resultBasicTimestep; - - if (resultBasicTimestep < 0 || resultDivergentTimeStep < 0) { - testStatus = test_error; - } - else - { - testPassed = maxL2NormDiff > diffL2Norm; - if (testPassed) - testStatus = passed; - else - testStatus = failed; - } - - makeConsoleOutput(); + std::vector<double> results = l2NormPostProStrategies.at(0)->getL2Norm(dataToCalculate, normalizeData); + + resultBasicTimestep = results.at(0); + resultDivergentTimeStep = results.at(1); + diffL2Norm = resultDivergentTimeStep - resultBasicTimestep; + + if (resultBasicTimestep < 0 || resultDivergentTimeStep < 0) { + testStatus = test_error; + } + else + { + testPassed = maxL2NormDiff > diffL2Norm; + if (testPassed) + testStatus = passed; + else + testStatus = failed; + } + + makeConsoleOutput(); } std::string L2NormTest::getLogFileOutput() { - std::ostringstream oss; - oss << "L2Norm_BasicTimeStep_L" << l2NormPostProStrategies.at(0)->getNumberOfXNodes() << "_" << dataToCalculate << "_" << normalizeData << "=" << resultBasicTimestep << std::endl; - oss << "L2Norm_DivergentTimeStep_L" << l2NormPostProStrategies.at(0)->getNumberOfXNodes() << "_" << dataToCalculate << "_" << normalizeData << "=" << resultDivergentTimeStep << std::endl; - oss << "L2Norm_Diff_L" << l2NormPostProStrategies.at(0)->getNumberOfXNodes() << "_" << dataToCalculate << "_" << normalizeData << "=" << diffL2Norm << std::endl << std::endl; - return oss.str(); + std::ostringstream oss; + oss << "L2Norm_BasicTimeStep_L" << l2NormPostProStrategies.at(0)->getNumberOfXNodes() << "_" << dataToCalculate << "_" << normalizeData << "=" << resultBasicTimestep << std::endl; + oss << "L2Norm_DivergentTimeStep_L" << l2NormPostProStrategies.at(0)->getNumberOfXNodes() << "_" << dataToCalculate << "_" << normalizeData << "=" << resultDivergentTimeStep << std::endl; + oss << "L2Norm_Diff_L" << l2NormPostProStrategies.at(0)->getNumberOfXNodes() << "_" << dataToCalculate << "_" << normalizeData << "=" << diffL2Norm << std::endl << std::endl; + return oss.str(); } std::string L2NormTest::getErrorLogFileOutput() { - std::ostringstream oss; - oss << "L" << l2NormPostProStrategies.at(0)->getNumberOfXNodes() << "_" << dataToCalculate << "_" << normalizeData; - return oss.str(); + std::ostringstream oss; + oss << "L" << l2NormPostProStrategies.at(0)->getNumberOfXNodes() << "_" << dataToCalculate << "_" << normalizeData; + return oss.str(); } L2NormTest::L2NormTest(std::shared_ptr<ColorConsoleOutput> colorOutput, std::shared_ptr<L2NormTestParameterStruct> testParameter, std::string dataToCalculate, double maxL2NormDiff, std::string normalizeData) - : TestImp(colorOutput), dataToCalculate(dataToCalculate), normalizeData(normalizeData) + : TestImp(colorOutput), dataToCalculate(dataToCalculate), normalizeData(normalizeData) { - basicTimeStep = testParameter->basicTimeStep; - divergentTimeStep = testParameter->divergentTimeStep; - this->maxL2NormDiff = maxL2NormDiff; + basicTimeStep = testParameter->basicTimeStep; + divergentTimeStep = testParameter->divergentTimeStep; + this->maxL2NormDiff = maxL2NormDiff; } std::vector<std::string> L2NormTest::buildTestOutput() { - std::vector<std::string> output = buildBasicTestOutput(); - std::ostringstream oss; + std::vector<std::string> output = buildBasicTestOutput(); + std::ostringstream oss; - oss << "L2Norm BasicTimeStep: " << resultBasicTimestep; - output.push_back(oss.str()); - oss.str(std::string()); + oss << "L2Norm BasicTimeStep: " << resultBasicTimestep; + output.push_back(oss.str()); + oss.str(std::string()); - oss << "L2Norm DivergentTimeStep: " << resultDivergentTimeStep; - output.push_back(oss.str()); - oss.str(std::string()); + oss << "L2Norm DivergentTimeStep: " << resultDivergentTimeStep; + output.push_back(oss.str()); + oss.str(std::string()); - oss << "L2NormDiff: " << diffL2Norm; - output.push_back(oss.str()); - oss.str(std::string()); + oss << "L2NormDiff: " << diffL2Norm; + output.push_back(oss.str()); + oss.str(std::string()); - return output; + return output; } std::vector<std::string> L2NormTest::buildBasicTestOutput() { - std::vector<std::string> output; - std::ostringstream oss; + std::vector<std::string> output; + std::ostringstream oss; - output.push_back("L2 Norm Test"); + output.push_back("L2 Norm Test"); - oss << "Kernel: " << simInfos.at(0)->getKernelName(); - output.push_back(oss.str()); - oss.str(std::string()); + oss << "Kernel: " << simInfos.at(0)->getKernelName(); + output.push_back(oss.str()); + oss.str(std::string()); - oss << "Viscosity: " << simInfos.at(0)->getViscosity(); - output.push_back(oss.str()); - oss.str(std::string()); + oss << "Viscosity: " << simInfos.at(0)->getViscosity(); + output.push_back(oss.str()); + oss.str(std::string()); - output.push_back(oss.str()); + output.push_back(oss.str()); - oss << simInfos.at(0)->getSimulationName(); - output.push_back(oss.str()); - oss.str(std::string()); + oss << simInfos.at(0)->getSimulationName(); + output.push_back(oss.str()); + oss.str(std::string()); - oss << "L: " << simInfos.at(0)->getLx() << simInfos.at(0)->getSimulationParameterString(); - output.push_back(oss.str()); - oss.str(std::string()); + oss << "L: " << simInfos.at(0)->getLx() << simInfos.at(0)->getSimulationParameterString(); + output.push_back(oss.str()); + oss.str(std::string()); - output.push_back(oss.str()); + output.push_back(oss.str()); - oss << "DataToCalculate: " << dataToCalculate; - output.push_back(oss.str()); - oss.str(std::string()); + oss << "DataToCalculate: " << dataToCalculate; + output.push_back(oss.str()); + oss.str(std::string()); - oss << "NormalizeData: " << normalizeData; - output.push_back(oss.str()); - oss.str(std::string()); + oss << "NormalizeData: " << normalizeData; + output.push_back(oss.str()); + oss.str(std::string()); - output.push_back(oss.str()); + output.push_back(oss.str()); - oss << "BasicTimeStep: " << basicTimeStep; - output.push_back(oss.str()); - oss.str(std::string()); + oss << "BasicTimeStep: " << basicTimeStep; + output.push_back(oss.str()); + oss.str(std::string()); - oss << "DivergentTimeStep: " << divergentTimeStep; - output.push_back(oss.str()); - oss.str(std::string()); + oss << "DivergentTimeStep: " << divergentTimeStep; + output.push_back(oss.str()); + oss.str(std::string()); - output.push_back(oss.str()); + output.push_back(oss.str()); - return output; + return output; } std::vector<std::string> L2NormTest::buildErrorTestOutput() { - std::vector<std::string> output = buildBasicTestOutput(); - std::ostringstream oss; + std::vector<std::string> output = buildBasicTestOutput(); + std::ostringstream oss; - oss << "Error Message: " << l2NormPostProStrategies.at(0)->getErrorMessage(normalizeData); - output.push_back(oss.str()); - oss.str(std::string()); + oss << "Error Message: " << l2NormPostProStrategies.at(0)->getErrorMessage(normalizeData); + output.push_back(oss.str()); + oss.str(std::string()); - return output; + return output; } diff --git a/apps/gpu/tests/NumericalTests/Tests/L2NormTest/L2NormTest.h b/apps/gpu/tests/NumericalTests/Tests/L2NormTest/L2NormTest.h index 2f83c03c9c20ac669cc478dcdb9e924390da2f8e..060b9bd0d61ef72d378a45668ee2fd988d4a86e0 100644 --- a/apps/gpu/tests/NumericalTests/Tests/L2NormTest/L2NormTest.h +++ b/apps/gpu/tests/NumericalTests/Tests/L2NormTest/L2NormTest.h @@ -14,31 +14,31 @@ struct L2NormTestParameterStruct; class L2NormTest : public TestImp { public: - static std::shared_ptr<L2NormTest> getNewInstance(std::shared_ptr<ColorConsoleOutput> colorOutput, std::shared_ptr<L2NormTestParameterStruct> testParameter, std::string dataToCalculate, double maxL2NormDiff, std::string normalizeData); + static std::shared_ptr<L2NormTest> getNewInstance(std::shared_ptr<ColorConsoleOutput> colorOutput, std::shared_ptr<L2NormTestParameterStruct> testParameter, std::string dataToCalculate, double maxL2NormDiff, std::string normalizeData); - void update(); - void addSimulation(std::shared_ptr<NumericalTestSimulation> sim, std::shared_ptr<SimulationInfo> simInfo, std::shared_ptr<L2NormPostProcessingStrategy> postProStrategy); + void update(); + void addSimulation(std::shared_ptr<NumericalTestSimulation> sim, std::shared_ptr<SimulationInfo> simInfo, std::shared_ptr<L2NormPostProcessingStrategy> postProStrategy); - void evaluate(); - std::string getLogFileOutput(); - std::string getErrorLogFileOutput(); + void evaluate(); + std::string getLogFileOutput(); + std::string getErrorLogFileOutput(); private: - L2NormTest(std::shared_ptr<ColorConsoleOutput> colorOutput, std::shared_ptr<L2NormTestParameterStruct> testParameter, std::string dataToCalculate, double maxL2NormDiff, std::string normalizeData); - std::vector<std::string> buildTestOutput(); - std::vector<std::string> buildBasicTestOutput(); - std::vector<std::string> buildErrorTestOutput(); + L2NormTest(std::shared_ptr<ColorConsoleOutput> colorOutput, std::shared_ptr<L2NormTestParameterStruct> testParameter, std::string dataToCalculate, double maxL2NormDiff, std::string normalizeData); + std::vector<std::string> buildTestOutput(); + std::vector<std::string> buildBasicTestOutput(); + std::vector<std::string> buildErrorTestOutput(); - unsigned int basicTimeStep, divergentTimeStep; - double resultBasicTimestep, resultDivergentTimeStep; - std::string dataToCalculate; - double diffL2Norm; - double maxL2NormDiff; - bool testPassed; + unsigned int basicTimeStep, divergentTimeStep; + double resultBasicTimestep, resultDivergentTimeStep; + std::string dataToCalculate; + double diffL2Norm; + double maxL2NormDiff; + bool testPassed; - std::string normalizeData; + std::string normalizeData; - std::vector<std::shared_ptr<L2NormPostProcessingStrategy> > l2NormPostProStrategies; + std::vector<std::shared_ptr<L2NormPostProcessingStrategy> > l2NormPostProStrategies; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Tests/L2NormTest/L2NormTestParameterStruct.h b/apps/gpu/tests/NumericalTests/Tests/L2NormTest/L2NormTestParameterStruct.h index dbcfb6637234c7697137ff2dcf964d76f2fba83c..439c46e039acc3f96480ff606ed3a79289f64455 100644 --- a/apps/gpu/tests/NumericalTests/Tests/L2NormTest/L2NormTestParameterStruct.h +++ b/apps/gpu/tests/NumericalTests/Tests/L2NormTest/L2NormTestParameterStruct.h @@ -7,13 +7,13 @@ struct L2NormTestParameterStruct { - std::shared_ptr<BasicTestParameterStruct> basicTestParameter; + std::shared_ptr<BasicTestParameterStruct> basicTestParameter; - std::vector<double> maxDiff; - unsigned int basicTimeStep; - unsigned int divergentTimeStep; - - std::vector<std::string> normalizeData; + std::vector<double> maxDiff; + unsigned int basicTimeStep; + unsigned int divergentTimeStep; + + std::vector<std::string> normalizeData; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Tests/L2NormTest/LogFileInformation/L2NormLogFileInformation.cpp b/apps/gpu/tests/NumericalTests/Tests/L2NormTest/LogFileInformation/L2NormLogFileInformation.cpp index f094ea1e75aeaef2e80356268d4f9d2fde0b4d07..4f3260c42d4dd84df0cb75e6cd8362b87727fea2 100644 --- a/apps/gpu/tests/NumericalTests/Tests/L2NormTest/LogFileInformation/L2NormLogFileInformation.cpp +++ b/apps/gpu/tests/NumericalTests/Tests/L2NormTest/LogFileInformation/L2NormLogFileInformation.cpp @@ -8,56 +8,56 @@ std::shared_ptr<L2NormInformation> L2NormInformation::getNewInstance(std::vector<std::shared_ptr<L2NormTest> > tests, std::shared_ptr<L2NormTestParameterStruct> testParameter, std::vector<std::string> dataToCalcTests) { - return std::shared_ptr<L2NormInformation>(new L2NormInformation(tests, testParameter, dataToCalcTests)); + return std::shared_ptr<L2NormInformation>(new L2NormInformation(tests, testParameter, dataToCalcTests)); } std::string L2NormInformation::getOutput() { - std::ostringstream headName; - headName << " L2Norm Test"; - makeCenterHead(headName.str()); + std::ostringstream headName; + headName << " L2Norm Test"; + makeCenterHead(headName.str()); - oss << "BasicTimeStep_L2Norm=" << basicTimeStep << std::endl; - oss << "DivergentTimeStep_L2Norm=" << divergentTimeStep << std::endl; - oss << "DataToCalc_L2Norm=\""; - for (int i = 0; i < dataToCalc.size(); i++) { - oss << dataToCalc.at(i); - if (i < dataToCalc.size() - 1) - oss << " "; - else - oss << "\"" << std::endl; - } - oss << "NormalizeData_L2Norm=\""; - for (int i = 0; i < normalizeData.size(); i++) { - oss << normalizeData.at(i); - if (i < normalizeData.size() - 1) - oss << " "; - else - oss << "\"" << std::endl; - } - oss << std::endl; + oss << "BasicTimeStep_L2Norm=" << basicTimeStep << std::endl; + oss << "DivergentTimeStep_L2Norm=" << divergentTimeStep << std::endl; + oss << "DataToCalc_L2Norm=\""; + for (int i = 0; i < dataToCalc.size(); i++) { + oss << dataToCalc.at(i); + if (i < dataToCalc.size() - 1) + oss << " "; + else + oss << "\"" << std::endl; + } + oss << "NormalizeData_L2Norm=\""; + for (int i = 0; i < normalizeData.size(); i++) { + oss << normalizeData.at(i); + if (i < normalizeData.size() - 1) + oss << " "; + else + oss << "\"" << std::endl; + } + oss << std::endl; - std::ostringstream failMessage; - failMessage << "FailTests_L2Norm=\""; - for (int i = 0; i < tests.size(); i++) { - if (tests.at(i)->getTestStatus() == passed || tests.at(i)->getTestStatus() == failed) - oss << tests.at(i)->getLogFileOutput(); - if (tests.at(i)->getTestStatus() == test_error || tests.at(i)->getTestStatus() == simulationCrashed) - failMessage << tests.at(i)->getErrorLogFileOutput() << " "; - } - std::string fail = failMessage.str(); - if(fail.back() == ' ') - fail = fail.substr(0, fail.size() - 1); - failMessage.str(std::string()); - failMessage << fail << "\""; - oss << failMessage.str() << std::endl << std::endl; - - return oss.str(); + std::ostringstream failMessage; + failMessage << "FailTests_L2Norm=\""; + for (int i = 0; i < tests.size(); i++) { + if (tests.at(i)->getTestStatus() == passed || tests.at(i)->getTestStatus() == failed) + oss << tests.at(i)->getLogFileOutput(); + if (tests.at(i)->getTestStatus() == test_error || tests.at(i)->getTestStatus() == simulationCrashed) + failMessage << tests.at(i)->getErrorLogFileOutput() << " "; + } + std::string fail = failMessage.str(); + if(fail.back() == ' ') + fail = fail.substr(0, fail.size() - 1); + failMessage.str(std::string()); + failMessage << fail << "\""; + oss << failMessage.str() << std::endl << std::endl; + + return oss.str(); } L2NormInformation::L2NormInformation(std::vector<std::shared_ptr<L2NormTest> > tests, std::shared_ptr<L2NormTestParameterStruct> testParameter, std::vector<std::string> dataToCalcTests) : tests(tests), dataToCalc(dataToCalcTests) { - basicTimeStep = testParameter->basicTimeStep; - divergentTimeStep = testParameter->divergentTimeStep; - normalizeData = testParameter->normalizeData; + basicTimeStep = testParameter->basicTimeStep; + divergentTimeStep = testParameter->divergentTimeStep; + normalizeData = testParameter->normalizeData; } \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Tests/L2NormTest/LogFileInformation/L2NormLogFileInformation.h b/apps/gpu/tests/NumericalTests/Tests/L2NormTest/LogFileInformation/L2NormLogFileInformation.h index f2a4bd086421bb32c2b986ac9cb25755697cf27d..fab264dceb1ca3d9e4d9a1ea8395704bf6875b59 100644 --- a/apps/gpu/tests/NumericalTests/Tests/L2NormTest/LogFileInformation/L2NormLogFileInformation.h +++ b/apps/gpu/tests/NumericalTests/Tests/L2NormTest/LogFileInformation/L2NormLogFileInformation.h @@ -12,18 +12,18 @@ struct L2NormTestParameterStruct; class L2NormInformation : public TestLogFileInformation { public: - static std::shared_ptr<L2NormInformation> getNewInstance(std::vector<std::shared_ptr<L2NormTest> > tests, std::shared_ptr<L2NormTestParameterStruct> testParameter, std::vector<std::string> dataToCalcTests); + static std::shared_ptr<L2NormInformation> getNewInstance(std::vector<std::shared_ptr<L2NormTest> > tests, std::shared_ptr<L2NormTestParameterStruct> testParameter, std::vector<std::string> dataToCalcTests); - std::string getOutput(); + std::string getOutput(); private: - L2NormInformation() {}; - L2NormInformation(std::vector<std::shared_ptr<L2NormTest> > tests, std::shared_ptr<L2NormTestParameterStruct> testParameter, std::vector<std::string> dataToCalcTests); + L2NormInformation() {}; + L2NormInformation(std::vector<std::shared_ptr<L2NormTest> > tests, std::shared_ptr<L2NormTestParameterStruct> testParameter, std::vector<std::string> dataToCalcTests); - std::vector<std::shared_ptr<L2NormTest> > tests; + std::vector<std::shared_ptr<L2NormTest> > tests; - unsigned int basicTimeStep, divergentTimeStep; - std::vector<std::string> dataToCalc; - std::vector<std::string> normalizeData; + unsigned int basicTimeStep, divergentTimeStep; + std::vector<std::string> dataToCalc; + std::vector<std::string> normalizeData; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Tests/L2NormTest/PostProcessingStrategy/PostProcessingStrategyL2NormTest.cpp b/apps/gpu/tests/NumericalTests/Tests/L2NormTest/PostProcessingStrategy/PostProcessingStrategyL2NormTest.cpp index c687a525dc3d69f8ba60348b75ae4633587aab11..665e720c5a1d18324dfd0b7ab99f2203b718a3da 100644 --- a/apps/gpu/tests/NumericalTests/Tests/L2NormTest/PostProcessingStrategy/PostProcessingStrategyL2NormTest.cpp +++ b/apps/gpu/tests/NumericalTests/Tests/L2NormTest/PostProcessingStrategy/PostProcessingStrategyL2NormTest.cpp @@ -10,85 +10,85 @@ std::shared_ptr<L2NormPostProcessingStrategy> L2NormPostProcessingStrategy::getNewInstance(std::shared_ptr<SimulationResults> simResult, std::shared_ptr<AnalyticalResults> analyticalResult, std::shared_ptr<L2NormTestParameterStruct> testPara, std::shared_ptr<L2NormCalculatorFactory> factory, std::vector<std::string> dataToCalcTests) { - return std::shared_ptr<L2NormPostProcessingStrategy>(new L2NormPostProcessingStrategy(simResult, analyticalResult, testPara, factory, dataToCalcTests)); + return std::shared_ptr<L2NormPostProcessingStrategy>(new L2NormPostProcessingStrategy(simResult, analyticalResult, testPara, factory, dataToCalcTests)); } L2NormPostProcessingStrategy::L2NormPostProcessingStrategy(std::shared_ptr<SimulationResults> simResult, std::shared_ptr<AnalyticalResults> analyticalResult, std::shared_ptr<L2NormTestParameterStruct> testPara, std::shared_ptr<L2NormCalculatorFactory> factory, std::vector<std::string> dataToCalcTests) - : PostProcessingStrategyImp(simResult), analyticalResult(analyticalResult), dataToCalculate(dataToCalcTests) + : PostProcessingStrategyImp(simResult), analyticalResult(analyticalResult), dataToCalculate(dataToCalcTests) { - isEvaluated = false; - basicTimeStep = testPara->basicTimeStep; - divergentTimeStep = testPara->divergentTimeStep; - normalizeData = testPara->normalizeData; + isEvaluated = false; + basicTimeStep = testPara->basicTimeStep; + divergentTimeStep = testPara->divergentTimeStep; + normalizeData = testPara->normalizeData; - l2NormBasic.resize(dataToCalculate.size()); - l2NormDivergent.resize(dataToCalculate.size()); - for (int i = 0; i < l2NormBasic.size(); i++) { - l2NormBasic.at(i).resize(normalizeData.size()); - l2NormDivergent.at(i).resize(normalizeData.size()); - } - - for (int i = 0; i < normalizeData.size(); i++) - l2Normcalculator.push_back(factory->makeL2NormCalculator(normalizeData.at(i))); + l2NormBasic.resize(dataToCalculate.size()); + l2NormDivergent.resize(dataToCalculate.size()); + for (int i = 0; i < l2NormBasic.size(); i++) { + l2NormBasic.at(i).resize(normalizeData.size()); + l2NormDivergent.at(i).resize(normalizeData.size()); + } + + for (int i = 0; i < normalizeData.size(); i++) + l2Normcalculator.push_back(factory->makeL2NormCalculator(normalizeData.at(i))); } void L2NormPostProcessingStrategy::evaluate() { - if (!isEvaluated) { - analyticalResult->calc(simResult); - int bS = calcTimeStepInResults(basicTimeStep); - int dS = calcTimeStepInResults(divergentTimeStep); + if (!isEvaluated) { + analyticalResult->calc(simResult); + int bS = calcTimeStepInResults(basicTimeStep); + int dS = calcTimeStepInResults(divergentTimeStep); - for (int i = 0; i < dataToCalculate.size(); i++) { - for (int j = 0; j < normalizeData.size(); j++) { - if (dataToCalculate.at(i) == "Vx") { - l2NormBasic.at(i).at(j) = l2Normcalculator.at(j)->calc(analyticalResult->getVx().at(bS), simResult->getVx().at(bS), simResult->getLevels().at(bS), analyticalResult->getNumberOfXNodes(), analyticalResult->getNumberOfZNodes(), analyticalResult->getL0()); - l2NormDivergent.at(i).at(j) = l2Normcalculator.at(j)->calc(analyticalResult->getVx().at(dS), simResult->getVx().at(dS), simResult->getLevels().at(dS), analyticalResult->getNumberOfXNodes(), analyticalResult->getNumberOfZNodes(), analyticalResult->getL0()); - } - if (dataToCalculate.at(i) == "Vy") { - l2NormBasic.at(i).at(j) = l2Normcalculator.at(j)->calc(analyticalResult->getVy().at(bS), simResult->getVy().at(bS), simResult->getLevels().at(bS), analyticalResult->getNumberOfXNodes(), analyticalResult->getNumberOfZNodes(), analyticalResult->getL0()); - l2NormDivergent.at(i).at(j) = l2Normcalculator.at(j)->calc(analyticalResult->getVy().at(dS), simResult->getVy().at(dS), simResult->getLevels().at(dS), analyticalResult->getNumberOfXNodes(), analyticalResult->getNumberOfZNodes(), analyticalResult->getL0()); - } - if (dataToCalculate.at(i) == "Vz") { - l2NormBasic.at(i).at(j) = l2Normcalculator.at(j)->calc(analyticalResult->getVz().at(bS), simResult->getVz().at(bS), simResult->getLevels().at(bS), analyticalResult->getNumberOfXNodes(), analyticalResult->getNumberOfZNodes(), analyticalResult->getL0()); - l2NormDivergent.at(i).at(j) = l2Normcalculator.at(j)->calc(analyticalResult->getVz().at(dS), simResult->getVz().at(dS), simResult->getLevels().at(dS), analyticalResult->getNumberOfXNodes(), analyticalResult->getNumberOfZNodes(), analyticalResult->getL0()); - } - if (dataToCalculate.at(i) == "Press") { - l2NormBasic.at(i).at(j) = l2Normcalculator.at(j)->calc(analyticalResult->getPress().at(bS), simResult->getPress().at(bS), simResult->getLevels().at(bS), analyticalResult->getNumberOfXNodes(), analyticalResult->getNumberOfZNodes(), analyticalResult->getL0()); - l2NormDivergent.at(i).at(j) = l2Normcalculator.at(j)->calc(analyticalResult->getPress().at(dS), simResult->getPress().at(dS), simResult->getLevels().at(dS), analyticalResult->getNumberOfXNodes(), analyticalResult->getNumberOfZNodes(), analyticalResult->getL0()); - } - if (dataToCalculate.at(i) == "Rho") { - l2NormBasic.at(i).at(j) = l2Normcalculator.at(j)->calc(analyticalResult->getRho().at(bS), simResult->getRho().at(bS), simResult->getLevels().at(bS), analyticalResult->getNumberOfXNodes(), analyticalResult->getNumberOfZNodes(), analyticalResult->getL0()); - l2NormDivergent.at(i).at(j) = l2Normcalculator.at(j)->calc(analyticalResult->getRho().at(dS), simResult->getRho().at(dS), simResult->getLevels().at(dS), analyticalResult->getNumberOfXNodes(), analyticalResult->getNumberOfZNodes(), analyticalResult->getL0()); - } - } - } - isEvaluated = true; - } + for (int i = 0; i < dataToCalculate.size(); i++) { + for (int j = 0; j < normalizeData.size(); j++) { + if (dataToCalculate.at(i) == "Vx") { + l2NormBasic.at(i).at(j) = l2Normcalculator.at(j)->calc(analyticalResult->getVx().at(bS), simResult->getVx().at(bS), simResult->getLevels().at(bS), analyticalResult->getNumberOfXNodes(), analyticalResult->getNumberOfZNodes(), analyticalResult->getL0()); + l2NormDivergent.at(i).at(j) = l2Normcalculator.at(j)->calc(analyticalResult->getVx().at(dS), simResult->getVx().at(dS), simResult->getLevels().at(dS), analyticalResult->getNumberOfXNodes(), analyticalResult->getNumberOfZNodes(), analyticalResult->getL0()); + } + if (dataToCalculate.at(i) == "Vy") { + l2NormBasic.at(i).at(j) = l2Normcalculator.at(j)->calc(analyticalResult->getVy().at(bS), simResult->getVy().at(bS), simResult->getLevels().at(bS), analyticalResult->getNumberOfXNodes(), analyticalResult->getNumberOfZNodes(), analyticalResult->getL0()); + l2NormDivergent.at(i).at(j) = l2Normcalculator.at(j)->calc(analyticalResult->getVy().at(dS), simResult->getVy().at(dS), simResult->getLevels().at(dS), analyticalResult->getNumberOfXNodes(), analyticalResult->getNumberOfZNodes(), analyticalResult->getL0()); + } + if (dataToCalculate.at(i) == "Vz") { + l2NormBasic.at(i).at(j) = l2Normcalculator.at(j)->calc(analyticalResult->getVz().at(bS), simResult->getVz().at(bS), simResult->getLevels().at(bS), analyticalResult->getNumberOfXNodes(), analyticalResult->getNumberOfZNodes(), analyticalResult->getL0()); + l2NormDivergent.at(i).at(j) = l2Normcalculator.at(j)->calc(analyticalResult->getVz().at(dS), simResult->getVz().at(dS), simResult->getLevels().at(dS), analyticalResult->getNumberOfXNodes(), analyticalResult->getNumberOfZNodes(), analyticalResult->getL0()); + } + if (dataToCalculate.at(i) == "Press") { + l2NormBasic.at(i).at(j) = l2Normcalculator.at(j)->calc(analyticalResult->getPress().at(bS), simResult->getPress().at(bS), simResult->getLevels().at(bS), analyticalResult->getNumberOfXNodes(), analyticalResult->getNumberOfZNodes(), analyticalResult->getL0()); + l2NormDivergent.at(i).at(j) = l2Normcalculator.at(j)->calc(analyticalResult->getPress().at(dS), simResult->getPress().at(dS), simResult->getLevels().at(dS), analyticalResult->getNumberOfXNodes(), analyticalResult->getNumberOfZNodes(), analyticalResult->getL0()); + } + if (dataToCalculate.at(i) == "Rho") { + l2NormBasic.at(i).at(j) = l2Normcalculator.at(j)->calc(analyticalResult->getRho().at(bS), simResult->getRho().at(bS), simResult->getLevels().at(bS), analyticalResult->getNumberOfXNodes(), analyticalResult->getNumberOfZNodes(), analyticalResult->getL0()); + l2NormDivergent.at(i).at(j) = l2Normcalculator.at(j)->calc(analyticalResult->getRho().at(dS), simResult->getRho().at(dS), simResult->getLevels().at(dS), analyticalResult->getNumberOfXNodes(), analyticalResult->getNumberOfZNodes(), analyticalResult->getL0()); + } + } + } + isEvaluated = true; + } } std::vector<double> L2NormPostProcessingStrategy::getL2Norm(std::string aDataToCalc, std::string aNormalizeData) { - for (int i = 0; i < dataToCalculate.size(); i++) { - for (int j = 0; j < normalizeData.size(); j++) { - if (aDataToCalc == dataToCalculate.at(i) && aNormalizeData == normalizeData.at(j)) { - std::vector<double> v; - v.push_back(l2NormBasic.at(i).at(j)); - v.push_back(l2NormDivergent.at(i).at(j)); - return v; - } - } - } + for (int i = 0; i < dataToCalculate.size(); i++) { + for (int j = 0; j < normalizeData.size(); j++) { + if (aDataToCalc == dataToCalculate.at(i) && aNormalizeData == normalizeData.at(j)) { + std::vector<double> v; + v.push_back(l2NormBasic.at(i).at(j)); + v.push_back(l2NormDivergent.at(i).at(j)); + return v; + } + } + } - return std::vector<double>(); + return std::vector<double>(); } std::string L2NormPostProcessingStrategy::getErrorMessage(std::string aNormalizeData) { - for (int i = 0; i < normalizeData.size(); i++) { - if (aNormalizeData == normalizeData.at(i)) - return l2Normcalculator.at(i)->getErrorMessage(); - } - - return std::string(); + for (int i = 0; i < normalizeData.size(); i++) { + if (aNormalizeData == normalizeData.at(i)) + return l2Normcalculator.at(i)->getErrorMessage(); + } + + return std::string(); } diff --git a/apps/gpu/tests/NumericalTests/Tests/L2NormTest/PostProcessingStrategy/PostProcessingStrategyL2NormTest.h b/apps/gpu/tests/NumericalTests/Tests/L2NormTest/PostProcessingStrategy/PostProcessingStrategyL2NormTest.h index 59cfc269468b42699af80a4acfb78d4ffc35d69c..ab8c8cffa9d631edf57e3c752120d55b6e1fc788 100644 --- a/apps/gpu/tests/NumericalTests/Tests/L2NormTest/PostProcessingStrategy/PostProcessingStrategyL2NormTest.h +++ b/apps/gpu/tests/NumericalTests/Tests/L2NormTest/PostProcessingStrategy/PostProcessingStrategyL2NormTest.h @@ -13,25 +13,25 @@ struct L2NormTestParameterStruct; class L2NormPostProcessingStrategy : public PostProcessingStrategyImp { public: - static std::shared_ptr<L2NormPostProcessingStrategy> getNewInstance(std::shared_ptr<SimulationResults> simResult, std::shared_ptr<AnalyticalResults> analyticalResult, std::shared_ptr<L2NormTestParameterStruct> testPara, std::shared_ptr<L2NormCalculatorFactory> factory, std::vector<std::string> dataToCalcTests); - void evaluate(); + static std::shared_ptr<L2NormPostProcessingStrategy> getNewInstance(std::shared_ptr<SimulationResults> simResult, std::shared_ptr<AnalyticalResults> analyticalResult, std::shared_ptr<L2NormTestParameterStruct> testPara, std::shared_ptr<L2NormCalculatorFactory> factory, std::vector<std::string> dataToCalcTests); + void evaluate(); - std::vector<double> getL2Norm(std::string dataToCalc, std::string normalizeData); + std::vector<double> getL2Norm(std::string dataToCalc, std::string normalizeData); - std::string getErrorMessage(std::string aNormalizeData); + std::string getErrorMessage(std::string aNormalizeData); private: - L2NormPostProcessingStrategy(std::shared_ptr<SimulationResults> simResult, std::shared_ptr<AnalyticalResults> analyticalResult, std::shared_ptr<L2NormTestParameterStruct> testPara, std::shared_ptr<L2NormCalculatorFactory> factory, std::vector<std::string> dataToCalcTests); - bool isEvaluated; - - std::shared_ptr<AnalyticalResults> analyticalResult; - std::vector<std::shared_ptr<L2NormCalculator> > l2Normcalculator; - - std::vector<std::string> dataToCalculate; - std::vector<std::string> normalizeData; - unsigned int basicTimeStep; - unsigned int divergentTimeStep; - std::vector<std::vector<double>> l2NormBasic; - std::vector<std::vector<double>> l2NormDivergent; + L2NormPostProcessingStrategy(std::shared_ptr<SimulationResults> simResult, std::shared_ptr<AnalyticalResults> analyticalResult, std::shared_ptr<L2NormTestParameterStruct> testPara, std::shared_ptr<L2NormCalculatorFactory> factory, std::vector<std::string> dataToCalcTests); + bool isEvaluated; + + std::shared_ptr<AnalyticalResults> analyticalResult; + std::vector<std::shared_ptr<L2NormCalculator> > l2Normcalculator; + + std::vector<std::string> dataToCalculate; + std::vector<std::string> normalizeData; + unsigned int basicTimeStep; + unsigned int divergentTimeStep; + std::vector<std::vector<double>> l2NormBasic; + std::vector<std::vector<double>> l2NormDivergent; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Tests/L2NormTestBetweenKernels/L2NormTestBetweenKernels.cpp b/apps/gpu/tests/NumericalTests/Tests/L2NormTestBetweenKernels/L2NormTestBetweenKernels.cpp index 07d0d11bea97db6ae37b2480f4137f0ad66e1966..301de70e8191bac6c899887b70fd9dc44046d4c6 100644 --- a/apps/gpu/tests/NumericalTests/Tests/L2NormTestBetweenKernels/L2NormTestBetweenKernels.cpp +++ b/apps/gpu/tests/NumericalTests/Tests/L2NormTestBetweenKernels/L2NormTestBetweenKernels.cpp @@ -12,176 +12,176 @@ std::shared_ptr<L2NormTestBetweenKernels> L2NormTestBetweenKernels::getNewInstance(std::shared_ptr<ColorConsoleOutput> colorOutput, std::string dataToCalculate, unsigned int timeStep, std::string normalizeWith, std::shared_ptr<L2NormCalculatorFactory> factory) { - return std::shared_ptr<L2NormTestBetweenKernels>(new L2NormTestBetweenKernels(colorOutput, dataToCalculate, timeStep, normalizeWith, factory)); + return std::shared_ptr<L2NormTestBetweenKernels>(new L2NormTestBetweenKernels(colorOutput, dataToCalculate, timeStep, normalizeWith, factory)); } void L2NormTestBetweenKernels::update() { - TestImp::update(); + TestImp::update(); } void L2NormTestBetweenKernels::evaluate() { - basicPostProcessingStrategy->evaluate(); - divergentPostProcessingStrategy->evaluate(); - - int tS = calcTimeStepInResults(timeStep); - - basicL2Result = basicPostProcessingStrategy->getL2Norm(dataToCalculate, normalizeData, timeStep); - divergentL2Result = divergentPostProcessingStrategy->getL2Norm(dataToCalculate, normalizeData, timeStep); - - if (dataToCalculate == "Vx") - resultL2ToBasicKernel = l2Normcalculator->calc(basicSimResults->getVx().at(tS), divergentSimResults->getVx().at(tS), basicSimResults->getLevels().at(tS), basicSimResults->getNumberOfXNodes(), basicSimResults->getNumberOfZNodes(), basicSimResults->getL0()); - if (dataToCalculate == "Vy") - resultL2ToBasicKernel = l2Normcalculator->calc(basicSimResults->getVy().at(tS), divergentSimResults->getVy().at(tS), basicSimResults->getLevels().at(tS), basicSimResults->getNumberOfXNodes(), basicSimResults->getNumberOfZNodes(), basicSimResults->getL0()); - if (dataToCalculate == "Vz") - resultL2ToBasicKernel = l2Normcalculator->calc(basicSimResults->getVz().at(tS), divergentSimResults->getVz().at(tS), basicSimResults->getLevels().at(tS), basicSimResults->getNumberOfXNodes(), basicSimResults->getNumberOfZNodes(), basicSimResults->getL0()); - if (dataToCalculate == "Press") - resultL2ToBasicKernel = l2Normcalculator->calc(basicSimResults->getPress().at(tS), divergentSimResults->getPress().at(tS), basicSimResults->getLevels().at(tS), basicSimResults->getNumberOfXNodes(), basicSimResults->getNumberOfZNodes(), basicSimResults->getL0()); - if (dataToCalculate == "Rho") - resultL2ToBasicKernel = l2Normcalculator->calc(basicSimResults->getRho().at(tS), divergentSimResults->getRho().at(tS), basicSimResults->getLevels().at(tS), basicSimResults->getNumberOfXNodes(), basicSimResults->getNumberOfZNodes(), basicSimResults->getL0()); - - - - if (basicL2Result < 0 || divergentL2Result < 0 || resultL2ToBasicKernel < 0) - testStatus = test_error; - else if (basicL2Result <= divergentL2Result) - testStatus = passed; - else - testStatus = failed; - - makeConsoleOutput(); + basicPostProcessingStrategy->evaluate(); + divergentPostProcessingStrategy->evaluate(); + + int tS = calcTimeStepInResults(timeStep); + + basicL2Result = basicPostProcessingStrategy->getL2Norm(dataToCalculate, normalizeData, timeStep); + divergentL2Result = divergentPostProcessingStrategy->getL2Norm(dataToCalculate, normalizeData, timeStep); + + if (dataToCalculate == "Vx") + resultL2ToBasicKernel = l2Normcalculator->calc(basicSimResults->getVx().at(tS), divergentSimResults->getVx().at(tS), basicSimResults->getLevels().at(tS), basicSimResults->getNumberOfXNodes(), basicSimResults->getNumberOfZNodes(), basicSimResults->getL0()); + if (dataToCalculate == "Vy") + resultL2ToBasicKernel = l2Normcalculator->calc(basicSimResults->getVy().at(tS), divergentSimResults->getVy().at(tS), basicSimResults->getLevels().at(tS), basicSimResults->getNumberOfXNodes(), basicSimResults->getNumberOfZNodes(), basicSimResults->getL0()); + if (dataToCalculate == "Vz") + resultL2ToBasicKernel = l2Normcalculator->calc(basicSimResults->getVz().at(tS), divergentSimResults->getVz().at(tS), basicSimResults->getLevels().at(tS), basicSimResults->getNumberOfXNodes(), basicSimResults->getNumberOfZNodes(), basicSimResults->getL0()); + if (dataToCalculate == "Press") + resultL2ToBasicKernel = l2Normcalculator->calc(basicSimResults->getPress().at(tS), divergentSimResults->getPress().at(tS), basicSimResults->getLevels().at(tS), basicSimResults->getNumberOfXNodes(), basicSimResults->getNumberOfZNodes(), basicSimResults->getL0()); + if (dataToCalculate == "Rho") + resultL2ToBasicKernel = l2Normcalculator->calc(basicSimResults->getRho().at(tS), divergentSimResults->getRho().at(tS), basicSimResults->getLevels().at(tS), basicSimResults->getNumberOfXNodes(), basicSimResults->getNumberOfZNodes(), basicSimResults->getL0()); + + + + if (basicL2Result < 0 || divergentL2Result < 0 || resultL2ToBasicKernel < 0) + testStatus = test_error; + else if (basicL2Result <= divergentL2Result) + testStatus = passed; + else + testStatus = failed; + + makeConsoleOutput(); } std::string L2NormTestBetweenKernels::getLogFileOutput() { - std::ostringstream oss; - oss << "L2Norm_BasicKernel_" << "L" << basicPostProcessingStrategy->getNumberOfXNodes() << "_"<< dataToCalculate << "_TimeStep_" << timeStep << "_" << normalizeData << "=" << basicL2Result << std::endl; - oss << "L2Norm_DivergentKernel_" << "L" << basicPostProcessingStrategy->getNumberOfXNodes() << "_"<< dataToCalculate << "_TimeStep_" << timeStep << "_" << normalizeData << "=" << divergentL2Result << std::endl; - oss << "L2Norm_Between_Kernels_" << "L" << basicPostProcessingStrategy->getNumberOfXNodes() << "_"<< dataToCalculate << "_TimeStep_" << timeStep << "_" << normalizeData << "=" << resultL2ToBasicKernel << std::endl << std::endl; - return oss.str(); + std::ostringstream oss; + oss << "L2Norm_BasicKernel_" << "L" << basicPostProcessingStrategy->getNumberOfXNodes() << "_"<< dataToCalculate << "_TimeStep_" << timeStep << "_" << normalizeData << "=" << basicL2Result << std::endl; + oss << "L2Norm_DivergentKernel_" << "L" << basicPostProcessingStrategy->getNumberOfXNodes() << "_"<< dataToCalculate << "_TimeStep_" << timeStep << "_" << normalizeData << "=" << divergentL2Result << std::endl; + oss << "L2Norm_Between_Kernels_" << "L" << basicPostProcessingStrategy->getNumberOfXNodes() << "_"<< dataToCalculate << "_TimeStep_" << timeStep << "_" << normalizeData << "=" << resultL2ToBasicKernel << std::endl << std::endl; + return oss.str(); } std::string L2NormTestBetweenKernels::getErrorLogFileOutput() { - std::ostringstream oss; - oss << "L" << basicPostProcessingStrategy->getNumberOfXNodes() << "_"<< dataToCalculate << "_TimeStep_" << timeStep << "_" << normalizeData; - return oss.str(); + std::ostringstream oss; + oss << "L" << basicPostProcessingStrategy->getNumberOfXNodes() << "_"<< dataToCalculate << "_TimeStep_" << timeStep << "_" << normalizeData; + return oss.str(); } double L2NormTestBetweenKernels::getBasicL2Result() { - return basicL2Result; + return basicL2Result; } void L2NormTestBetweenKernels::setBasicSimulation(std::shared_ptr<NumericalTestSimulation> sim, std::shared_ptr<SimulationInfo> simInfo, std::shared_ptr<L2NormBetweenKernelPostProcessingStrategy> postProcessingStrategy) { - TestImp::addSimulation(sim, simInfo, postProcessingStrategy); - this->basicSim = sim; - this->basicSimInfo = simInfo; - this->basicPostProcessingStrategy = postProcessingStrategy; - this->basicSimResults = basicPostProcessingStrategy->getSimulationResult(); + TestImp::addSimulation(sim, simInfo, postProcessingStrategy); + this->basicSim = sim; + this->basicSimInfo = simInfo; + this->basicPostProcessingStrategy = postProcessingStrategy; + this->basicSimResults = basicPostProcessingStrategy->getSimulationResult(); } void L2NormTestBetweenKernels::setDivergentKernelSimulation(std::shared_ptr<NumericalTestSimulation> sim, std::shared_ptr<SimulationInfo> simInfo, std::shared_ptr<L2NormBetweenKernelPostProcessingStrategy> postProcessingStrategy) { - TestImp::addSimulation(sim, simInfo, postProcessingStrategy); - this->divergentSim = sim; - this->divergentSimInfo = simInfo; - this->divergentPostProcessingStrategy = postProcessingStrategy; - this->divergentSimResults = divergentPostProcessingStrategy->getSimulationResult(); + TestImp::addSimulation(sim, simInfo, postProcessingStrategy); + this->divergentSim = sim; + this->divergentSimInfo = simInfo; + this->divergentPostProcessingStrategy = postProcessingStrategy; + this->divergentSimResults = divergentPostProcessingStrategy->getSimulationResult(); } L2NormTestBetweenKernels::L2NormTestBetweenKernels(std::shared_ptr<ColorConsoleOutput> colorOutput, std::string dataToCalculate, unsigned int timeStep, std::string normalizeWith, std::shared_ptr<L2NormCalculatorFactory> factory) - : TestImp(colorOutput), timeStep(timeStep), dataToCalculate(dataToCalculate), normalizeData(normalizeWith) + : TestImp(colorOutput), timeStep(timeStep), dataToCalculate(dataToCalculate), normalizeData(normalizeWith) { - l2Normcalculator = factory->makeL2NormCalculator(normalizeWith); + l2Normcalculator = factory->makeL2NormCalculator(normalizeWith); } int L2NormTestBetweenKernels::calcTimeStepInResults(unsigned int timeStep) { - for (int i = 0; i < basicSimResults->getTimeSteps().size(); i++) { - if (timeStep == basicSimResults->getTimeSteps().at(i)) - return basicSimResults->getTimeSteps().at(i); - } + for (int i = 0; i < basicSimResults->getTimeSteps().size(); i++) { + if (timeStep == basicSimResults->getTimeSteps().at(i)) + return basicSimResults->getTimeSteps().at(i); + } } std::vector<std::string> L2NormTestBetweenKernels::buildTestOutput() { - std::vector<std::string> output = buildBasicTestOutput(); - std::ostringstream oss; + std::vector<std::string> output = buildBasicTestOutput(); + std::ostringstream oss; - oss << "L2Norm BasicKernel: " << basicL2Result; - output.push_back(oss.str()); - oss.str(std::string()); + oss << "L2Norm BasicKernel: " << basicL2Result; + output.push_back(oss.str()); + oss.str(std::string()); - oss << "L2Norm DivergentKernel: " << divergentL2Result; - output.push_back(oss.str()); - oss.str(std::string()); + oss << "L2Norm DivergentKernel: " << divergentL2Result; + output.push_back(oss.str()); + oss.str(std::string()); - oss << "L2NormDiff: " << resultL2ToBasicKernel; - output.push_back(oss.str()); - oss.str(std::string()); + oss << "L2NormDiff: " << resultL2ToBasicKernel; + output.push_back(oss.str()); + oss.str(std::string()); - return output; + return output; } std::vector<std::string> L2NormTestBetweenKernels::buildBasicTestOutput() { - std::vector<std::string> output; - std::ostringstream oss; + std::vector<std::string> output; + std::ostringstream oss; - output.push_back("L2 Norm Between Kernels Test"); + output.push_back("L2 Norm Between Kernels Test"); - oss << "Basic Kernel: " << basicSimInfo->getKernelName(); - output.push_back(oss.str()); - oss.str(std::string()); + oss << "Basic Kernel: " << basicSimInfo->getKernelName(); + output.push_back(oss.str()); + oss.str(std::string()); - oss << "Divergent Kernel: " << divergentSimInfo->getKernelName(); - output.push_back(oss.str()); - oss.str(std::string()); + oss << "Divergent Kernel: " << divergentSimInfo->getKernelName(); + output.push_back(oss.str()); + oss.str(std::string()); - oss << "Viscosity: " << basicSimInfo->getViscosity(); - output.push_back(oss.str()); - oss.str(std::string()); + oss << "Viscosity: " << basicSimInfo->getViscosity(); + output.push_back(oss.str()); + oss.str(std::string()); - output.push_back(oss.str()); + output.push_back(oss.str()); - oss << basicSimInfo->getSimulationName(); - output.push_back(oss.str()); - oss.str(std::string()); + oss << basicSimInfo->getSimulationName(); + output.push_back(oss.str()); + oss.str(std::string()); - oss << "L: " << basicSimInfo->getLx() << basicSimInfo->getSimulationParameterString(); - output.push_back(oss.str()); - oss.str(std::string()); + oss << "L: " << basicSimInfo->getLx() << basicSimInfo->getSimulationParameterString(); + output.push_back(oss.str()); + oss.str(std::string()); - output.push_back(oss.str()); + output.push_back(oss.str()); - oss << "DataToCalculate: " << dataToCalculate; - output.push_back(oss.str()); - oss.str(std::string()); + oss << "DataToCalculate: " << dataToCalculate; + output.push_back(oss.str()); + oss.str(std::string()); - oss << "NormalizeData: " << normalizeData; - output.push_back(oss.str()); - oss.str(std::string()); + oss << "NormalizeData: " << normalizeData; + output.push_back(oss.str()); + oss.str(std::string()); - oss << "TimeStep: " << timeStep; - output.push_back(oss.str()); - oss.str(std::string()); + oss << "TimeStep: " << timeStep; + output.push_back(oss.str()); + oss.str(std::string()); - output.push_back(oss.str()); + output.push_back(oss.str()); - return output; + return output; } std::vector<std::string> L2NormTestBetweenKernels::buildErrorTestOutput() { - std::vector<std::string> output = buildBasicTestOutput(); - std::ostringstream oss; + std::vector<std::string> output = buildBasicTestOutput(); + std::ostringstream oss; - oss << "Error Message: " << basicPostProcessingStrategy->getErrorMessage(normalizeData); - output.push_back(oss.str()); - oss.str(std::string()); + oss << "Error Message: " << basicPostProcessingStrategy->getErrorMessage(normalizeData); + output.push_back(oss.str()); + oss.str(std::string()); - return output; + return output; } diff --git a/apps/gpu/tests/NumericalTests/Tests/L2NormTestBetweenKernels/L2NormTestBetweenKernels.h b/apps/gpu/tests/NumericalTests/Tests/L2NormTestBetweenKernels/L2NormTestBetweenKernels.h index dff57b6bcc374092805ab9db7f086aeae11c257b..a0283ff1175ba3aaa38bde9f0cab65764bcde3a4 100644 --- a/apps/gpu/tests/NumericalTests/Tests/L2NormTestBetweenKernels/L2NormTestBetweenKernels.h +++ b/apps/gpu/tests/NumericalTests/Tests/L2NormTestBetweenKernels/L2NormTestBetweenKernels.h @@ -14,38 +14,38 @@ class SimulationResults; class L2NormTestBetweenKernels : public TestImp { public: - static std::shared_ptr<L2NormTestBetweenKernels> getNewInstance(std::shared_ptr<ColorConsoleOutput> colorOutput, std::string dataToCalculate, unsigned int timeStep, std::string normalizeWith, std::shared_ptr<L2NormCalculatorFactory> factory); + static std::shared_ptr<L2NormTestBetweenKernels> getNewInstance(std::shared_ptr<ColorConsoleOutput> colorOutput, std::string dataToCalculate, unsigned int timeStep, std::string normalizeWith, std::shared_ptr<L2NormCalculatorFactory> factory); - void update(); - void evaluate(); - std::string getLogFileOutput(); - std::string getErrorLogFileOutput(); - double getBasicL2Result(); + void update(); + void evaluate(); + std::string getLogFileOutput(); + std::string getErrorLogFileOutput(); + double getBasicL2Result(); - void setBasicSimulation(std::shared_ptr<NumericalTestSimulation> sim, std::shared_ptr<SimulationInfo> simInfo, std::shared_ptr<L2NormBetweenKernelPostProcessingStrategy> postProcessingStrategy); - void setDivergentKernelSimulation(std::shared_ptr<NumericalTestSimulation> sim, std::shared_ptr<SimulationInfo> simInfo, std::shared_ptr<L2NormBetweenKernelPostProcessingStrategy> postProcessingStrategy); + void setBasicSimulation(std::shared_ptr<NumericalTestSimulation> sim, std::shared_ptr<SimulationInfo> simInfo, std::shared_ptr<L2NormBetweenKernelPostProcessingStrategy> postProcessingStrategy); + void setDivergentKernelSimulation(std::shared_ptr<NumericalTestSimulation> sim, std::shared_ptr<SimulationInfo> simInfo, std::shared_ptr<L2NormBetweenKernelPostProcessingStrategy> postProcessingStrategy); private: - L2NormTestBetweenKernels(std::shared_ptr<ColorConsoleOutput> colorOutput, std::string dataToCalculate, unsigned int timeStep, std::string normalizeWith, std::shared_ptr<L2NormCalculatorFactory> factory); - int calcTimeStepInResults(unsigned int timeStep); - std::vector<std::string> buildTestOutput(); - std::vector<std::string> buildBasicTestOutput(); - std::vector<std::string> buildErrorTestOutput(); - - unsigned int timeStep; - std::string dataToCalculate; - std::shared_ptr<NumericalTestSimulation> basicSim; - std::shared_ptr<SimulationInfo> basicSimInfo; - std::shared_ptr<SimulationResults> basicSimResults; - std::shared_ptr<L2NormBetweenKernelPostProcessingStrategy> basicPostProcessingStrategy; - double basicL2Result; - std::shared_ptr<NumericalTestSimulation> divergentSim; - std::shared_ptr<SimulationInfo> divergentSimInfo; - std::shared_ptr<SimulationResults> divergentSimResults; - std::shared_ptr<L2NormBetweenKernelPostProcessingStrategy> divergentPostProcessingStrategy; - double divergentL2Result; - std::shared_ptr<L2NormCalculator> l2Normcalculator; - std::string normalizeData; - double resultL2ToBasicKernel; + L2NormTestBetweenKernels(std::shared_ptr<ColorConsoleOutput> colorOutput, std::string dataToCalculate, unsigned int timeStep, std::string normalizeWith, std::shared_ptr<L2NormCalculatorFactory> factory); + int calcTimeStepInResults(unsigned int timeStep); + std::vector<std::string> buildTestOutput(); + std::vector<std::string> buildBasicTestOutput(); + std::vector<std::string> buildErrorTestOutput(); + + unsigned int timeStep; + std::string dataToCalculate; + std::shared_ptr<NumericalTestSimulation> basicSim; + std::shared_ptr<SimulationInfo> basicSimInfo; + std::shared_ptr<SimulationResults> basicSimResults; + std::shared_ptr<L2NormBetweenKernelPostProcessingStrategy> basicPostProcessingStrategy; + double basicL2Result; + std::shared_ptr<NumericalTestSimulation> divergentSim; + std::shared_ptr<SimulationInfo> divergentSimInfo; + std::shared_ptr<SimulationResults> divergentSimResults; + std::shared_ptr<L2NormBetweenKernelPostProcessingStrategy> divergentPostProcessingStrategy; + double divergentL2Result; + std::shared_ptr<L2NormCalculator> l2Normcalculator; + std::string normalizeData; + double resultL2ToBasicKernel; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Tests/L2NormTestBetweenKernels/L2NormTestBetweenKernelsParameterStruct.h b/apps/gpu/tests/NumericalTests/Tests/L2NormTestBetweenKernels/L2NormTestBetweenKernelsParameterStruct.h index ce32b89274cfc96907a67871ffbff67d833e58bc..8293b718e4da91d78abd182516359f75b6bf4705 100644 --- a/apps/gpu/tests/NumericalTests/Tests/L2NormTestBetweenKernels/L2NormTestBetweenKernelsParameterStruct.h +++ b/apps/gpu/tests/NumericalTests/Tests/L2NormTestBetweenKernels/L2NormTestBetweenKernelsParameterStruct.h @@ -9,14 +9,14 @@ struct L2NormTestBetweenKernelsParameterStruct { - std::shared_ptr<BasicTestParameterStruct> basicTestParameter; + std::shared_ptr<BasicTestParameterStruct> basicTestParameter; - std::string basicKernel; + std::string basicKernel; - std::vector<std::string> kernelsToTest; - std::vector<int> timeSteps; + std::vector<std::string> kernelsToTest; + std::vector<int> timeSteps; - std::vector<std::string> normalizeData; + std::vector<std::string> normalizeData; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Tests/L2NormTestBetweenKernels/LogFileInformation/L2NormLogFileInformationBetweenKernels.cpp b/apps/gpu/tests/NumericalTests/Tests/L2NormTestBetweenKernels/LogFileInformation/L2NormLogFileInformationBetweenKernels.cpp index c479b43c7ba06d4c1e851acd6407b819248be86e..c2aeeb28a43d61b6bbf61a57007aa804b897dfec 100644 --- a/apps/gpu/tests/NumericalTests/Tests/L2NormTestBetweenKernels/LogFileInformation/L2NormLogFileInformationBetweenKernels.cpp +++ b/apps/gpu/tests/NumericalTests/Tests/L2NormTestBetweenKernels/LogFileInformation/L2NormLogFileInformationBetweenKernels.cpp @@ -8,62 +8,62 @@ std::shared_ptr<L2NormBetweenKernelsInformation> L2NormBetweenKernelsInformation::getNewInstance(std::vector<std::shared_ptr<L2NormTestBetweenKernels> > tests, std::shared_ptr<L2NormTestBetweenKernelsParameterStruct> testPara, std::vector<std::string> dataToCalcTests) { - return std::shared_ptr<L2NormBetweenKernelsInformation>(new L2NormBetweenKernelsInformation(tests, testPara, dataToCalcTests)); + return std::shared_ptr<L2NormBetweenKernelsInformation>(new L2NormBetweenKernelsInformation(tests, testPara, dataToCalcTests)); } std::string L2NormBetweenKernelsInformation::getOutput() { - std::ostringstream headName; - headName << "L2Norm Test Between Kernels"; - makeCenterHead(headName.str()); + std::ostringstream headName; + headName << "L2Norm Test Between Kernels"; + makeCenterHead(headName.str()); - oss << "BasicKernel_L2Norm_BK=" << basicKernel << std::endl; - oss << "DataToCalculate_L2Norm_BK=\""; - for (int i = 0; i < dataToCalc.size(); i++) - oss << dataToCalc.at(i) << " "; - deleteLastCharInOss(); - oss << "\"" << std::endl; - oss << "TimeSteps_L2Norm_BK=\""; - for (int i = 0; i < timeSteps.size(); i++) - oss << timeSteps.at(i) << " "; - deleteLastCharInOss(); - oss << "\""<< std::endl << std::endl; - oss << "NormalizeWith_L2Norm_BK=\""; - for (int i = 0; i < normalizeData.size(); i++) - oss << normalizeData.at(i) << " "; - deleteLastCharInOss(); - oss << "\"" << std::endl << std::endl; + oss << "BasicKernel_L2Norm_BK=" << basicKernel << std::endl; + oss << "DataToCalculate_L2Norm_BK=\""; + for (int i = 0; i < dataToCalc.size(); i++) + oss << dataToCalc.at(i) << " "; + deleteLastCharInOss(); + oss << "\"" << std::endl; + oss << "TimeSteps_L2Norm_BK=\""; + for (int i = 0; i < timeSteps.size(); i++) + oss << timeSteps.at(i) << " "; + deleteLastCharInOss(); + oss << "\""<< std::endl << std::endl; + oss << "NormalizeWith_L2Norm_BK=\""; + for (int i = 0; i < normalizeData.size(); i++) + oss << normalizeData.at(i) << " "; + deleteLastCharInOss(); + oss << "\"" << std::endl << std::endl; - std::ostringstream failMessage; - failMessage << "FailTests_L2Norm_BK=\""; - for (int i = 0; i < tests.size(); i++) { - if (tests.at(i)->getTestStatus() == passed || tests.at(i)->getTestStatus() == failed) - oss << tests.at(i)->getLogFileOutput(); - if (tests.at(i)->getTestStatus() == test_error || tests.at(i)->getTestStatus() == simulationCrashed) - failMessage << tests.at(i)->getErrorLogFileOutput() << " "; - } - std::string fail = failMessage.str(); - if (fail.back() == ' ') - fail = fail.substr(0, fail.size() - 1); - failMessage.str(std::string()); - failMessage << fail << "\""; - oss << failMessage.str() << std::endl << std::endl; + std::ostringstream failMessage; + failMessage << "FailTests_L2Norm_BK=\""; + for (int i = 0; i < tests.size(); i++) { + if (tests.at(i)->getTestStatus() == passed || tests.at(i)->getTestStatus() == failed) + oss << tests.at(i)->getLogFileOutput(); + if (tests.at(i)->getTestStatus() == test_error || tests.at(i)->getTestStatus() == simulationCrashed) + failMessage << tests.at(i)->getErrorLogFileOutput() << " "; + } + std::string fail = failMessage.str(); + if (fail.back() == ' ') + fail = fail.substr(0, fail.size() - 1); + failMessage.str(std::string()); + failMessage << fail << "\""; + oss << failMessage.str() << std::endl << std::endl; - return oss.str(); + return oss.str(); } L2NormBetweenKernelsInformation::L2NormBetweenKernelsInformation(std::vector<std::shared_ptr<L2NormTestBetweenKernels> > tests, std::shared_ptr<L2NormTestBetweenKernelsParameterStruct> testPara, std::vector<std::string> dataToCalcTests) - : tests(tests), dataToCalc(dataToCalcTests) + : tests(tests), dataToCalc(dataToCalcTests) { - basicKernel = testPara->basicKernel; - timeSteps = testPara->timeSteps; - normalizeData = testPara->normalizeData; + basicKernel = testPara->basicKernel; + timeSteps = testPara->timeSteps; + normalizeData = testPara->normalizeData; } void L2NormBetweenKernelsInformation::deleteLastCharInOss() { - std::string myString = oss.str().substr(0, oss.str().size() - 1); - oss.str(""); - oss.clear(); - oss << myString; + std::string myString = oss.str().substr(0, oss.str().size() - 1); + oss.str(""); + oss.clear(); + oss << myString; } diff --git a/apps/gpu/tests/NumericalTests/Tests/L2NormTestBetweenKernels/LogFileInformation/L2NormLogFileInformationBetweenKernels.h b/apps/gpu/tests/NumericalTests/Tests/L2NormTestBetweenKernels/LogFileInformation/L2NormLogFileInformationBetweenKernels.h index 738d74f35876c3589564e9cc647fb0496cbe74de..1bfcdbfac8ae7e1dc9b916b5dea69cabec526fae 100644 --- a/apps/gpu/tests/NumericalTests/Tests/L2NormTestBetweenKernels/LogFileInformation/L2NormLogFileInformationBetweenKernels.h +++ b/apps/gpu/tests/NumericalTests/Tests/L2NormTestBetweenKernels/LogFileInformation/L2NormLogFileInformationBetweenKernels.h @@ -12,21 +12,21 @@ struct L2NormTestBetweenKernelsParameterStruct; class L2NormBetweenKernelsInformation : public TestLogFileInformation { public: - static std::shared_ptr<L2NormBetweenKernelsInformation> getNewInstance(std::vector<std::shared_ptr<L2NormTestBetweenKernels> > tests, std::shared_ptr<L2NormTestBetweenKernelsParameterStruct> testPara, std::vector<std::string> dataToCalcTests); + static std::shared_ptr<L2NormBetweenKernelsInformation> getNewInstance(std::vector<std::shared_ptr<L2NormTestBetweenKernels> > tests, std::shared_ptr<L2NormTestBetweenKernelsParameterStruct> testPara, std::vector<std::string> dataToCalcTests); - std::string getOutput(); + std::string getOutput(); private: - L2NormBetweenKernelsInformation() {}; - L2NormBetweenKernelsInformation(std::vector<std::shared_ptr<L2NormTestBetweenKernels> > tests, std::shared_ptr<L2NormTestBetweenKernelsParameterStruct> testPara, std::vector<std::string> dataToCalcTests); + L2NormBetweenKernelsInformation() {}; + L2NormBetweenKernelsInformation(std::vector<std::shared_ptr<L2NormTestBetweenKernels> > tests, std::shared_ptr<L2NormTestBetweenKernelsParameterStruct> testPara, std::vector<std::string> dataToCalcTests); - void deleteLastCharInOss(); + void deleteLastCharInOss(); - std::vector<std::shared_ptr<L2NormTestBetweenKernels> > tests; + std::vector<std::shared_ptr<L2NormTestBetweenKernels> > tests; - std::string basicKernel; - std::vector<int> timeSteps; - std::vector<std::string> dataToCalc; - std::vector<std::string> normalizeData; + std::string basicKernel; + std::vector<int> timeSteps; + std::vector<std::string> dataToCalc; + std::vector<std::string> normalizeData; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Tests/L2NormTestBetweenKernels/PostProcessingStrategy/L2NormBetweenKernelPostProcessingStrategy.cpp b/apps/gpu/tests/NumericalTests/Tests/L2NormTestBetweenKernels/PostProcessingStrategy/L2NormBetweenKernelPostProcessingStrategy.cpp index 9bdb6021b3961148a0fb71c99fd211308299c31b..b4c618feeeac450992eb6306388482af471399c6 100644 --- a/apps/gpu/tests/NumericalTests/Tests/L2NormTestBetweenKernels/PostProcessingStrategy/L2NormBetweenKernelPostProcessingStrategy.cpp +++ b/apps/gpu/tests/NumericalTests/Tests/L2NormTestBetweenKernels/PostProcessingStrategy/L2NormBetweenKernelPostProcessingStrategy.cpp @@ -9,95 +9,95 @@ std::shared_ptr<L2NormBetweenKernelPostProcessingStrategy> L2NormBetweenKernelPostProcessingStrategy::getNewInstance(std::shared_ptr<SimulationResults> simResult, std::shared_ptr<AnalyticalResults> analyticalResult, std::shared_ptr<L2NormTestBetweenKernelsParameterStruct> testPara, std::shared_ptr<L2NormCalculatorFactory> factory, std::vector<std::string> dataToCalcTests) { - return std::shared_ptr<L2NormBetweenKernelPostProcessingStrategy>(new L2NormBetweenKernelPostProcessingStrategy(simResult, analyticalResult, testPara, factory, dataToCalcTests)); + return std::shared_ptr<L2NormBetweenKernelPostProcessingStrategy>(new L2NormBetweenKernelPostProcessingStrategy(simResult, analyticalResult, testPara, factory, dataToCalcTests)); } void L2NormBetweenKernelPostProcessingStrategy::evaluate() { - if (!isEvaluated) { - analyticalResult->calc(simResult); + if (!isEvaluated) { + analyticalResult->calc(simResult); - l2Norm.resize(dataToCalculate.size()); - for (int i = 0; i < dataToCalculate.size(); i++) { - l2Norm.at(i).resize(normalizeData.size()); - for (int j = 0; j < normalizeData.size(); j++) { - l2Norm.at(i).at(j).resize(timeSteps.size()); - } - } + l2Norm.resize(dataToCalculate.size()); + for (int i = 0; i < dataToCalculate.size(); i++) { + l2Norm.at(i).resize(normalizeData.size()); + for (int j = 0; j < normalizeData.size(); j++) { + l2Norm.at(i).at(j).resize(timeSteps.size()); + } + } - for (int i = 0; i < dataToCalculate.size(); i++) { - for (int j = 0; j < normalizeData.size(); j++) { - for (int k = 0; k < timeSteps.size(); k++) { - int time = calcTimeStepInResults(timeSteps.at(k)); - if (dataToCalculate.at(i) == "Vx") - l2Norm.at(i).at(j).at(k) = l2Normcalculator.at(j)->calc(analyticalResult->getVx().at(time), simResult->getVx().at(time), simResult->getLevels().at(time), analyticalResult->getNumberOfXNodes(), analyticalResult->getNumberOfZNodes(), analyticalResult->getL0()); - if (dataToCalculate.at(i) == "Vy") - l2Norm.at(i).at(j).at(k) = l2Normcalculator.at(j)->calc(analyticalResult->getVy().at(time), simResult->getVy().at(time), simResult->getLevels().at(time), analyticalResult->getNumberOfXNodes(), analyticalResult->getNumberOfZNodes(), analyticalResult->getL0()); - if (dataToCalculate.at(i) == "Vz") - l2Norm.at(i).at(j).at(k) = l2Normcalculator.at(j)->calc(analyticalResult->getVz().at(time), simResult->getVz().at(time), simResult->getLevels().at(time), analyticalResult->getNumberOfXNodes(), analyticalResult->getNumberOfZNodes(), analyticalResult->getL0()); - if (dataToCalculate.at(i) == "Press") - l2Norm.at(i).at(j).at(k) = l2Normcalculator.at(j)->calc(analyticalResult->getPress().at(time), simResult->getPress().at(time), simResult->getLevels().at(time), analyticalResult->getNumberOfXNodes(), analyticalResult->getNumberOfZNodes(), analyticalResult->getL0()); - if (dataToCalculate.at(i) == "Rho") - l2Norm.at(i).at(j).at(k) = l2Normcalculator.at(j)->calc(analyticalResult->getRho().at(time), simResult->getRho().at(time), simResult->getLevels().at(time), analyticalResult->getNumberOfXNodes(), analyticalResult->getNumberOfZNodes(), analyticalResult->getL0()); - } - } - } - isEvaluated = true; - } + for (int i = 0; i < dataToCalculate.size(); i++) { + for (int j = 0; j < normalizeData.size(); j++) { + for (int k = 0; k < timeSteps.size(); k++) { + int time = calcTimeStepInResults(timeSteps.at(k)); + if (dataToCalculate.at(i) == "Vx") + l2Norm.at(i).at(j).at(k) = l2Normcalculator.at(j)->calc(analyticalResult->getVx().at(time), simResult->getVx().at(time), simResult->getLevels().at(time), analyticalResult->getNumberOfXNodes(), analyticalResult->getNumberOfZNodes(), analyticalResult->getL0()); + if (dataToCalculate.at(i) == "Vy") + l2Norm.at(i).at(j).at(k) = l2Normcalculator.at(j)->calc(analyticalResult->getVy().at(time), simResult->getVy().at(time), simResult->getLevels().at(time), analyticalResult->getNumberOfXNodes(), analyticalResult->getNumberOfZNodes(), analyticalResult->getL0()); + if (dataToCalculate.at(i) == "Vz") + l2Norm.at(i).at(j).at(k) = l2Normcalculator.at(j)->calc(analyticalResult->getVz().at(time), simResult->getVz().at(time), simResult->getLevels().at(time), analyticalResult->getNumberOfXNodes(), analyticalResult->getNumberOfZNodes(), analyticalResult->getL0()); + if (dataToCalculate.at(i) == "Press") + l2Norm.at(i).at(j).at(k) = l2Normcalculator.at(j)->calc(analyticalResult->getPress().at(time), simResult->getPress().at(time), simResult->getLevels().at(time), analyticalResult->getNumberOfXNodes(), analyticalResult->getNumberOfZNodes(), analyticalResult->getL0()); + if (dataToCalculate.at(i) == "Rho") + l2Norm.at(i).at(j).at(k) = l2Normcalculator.at(j)->calc(analyticalResult->getRho().at(time), simResult->getRho().at(time), simResult->getLevels().at(time), analyticalResult->getNumberOfXNodes(), analyticalResult->getNumberOfZNodes(), analyticalResult->getL0()); + } + } + } + isEvaluated = true; + } } double L2NormBetweenKernelPostProcessingStrategy::getL2Norm(std::string aDataToCalc, std::string aNormalizeData, int aTimeStep) { - for (int i = 0; i < dataToCalculate.size(); i++) { - for (int j = 0; j < normalizeData.size(); j++) { - for (int k = 0; k < timeSteps.size(); k++) { - if (aDataToCalc == dataToCalculate.at(i) && aNormalizeData == normalizeData.at(j) && aTimeStep == timeSteps.at(k)) - return l2Norm.at(i).at(j).at(k); - } - } - } + for (int i = 0; i < dataToCalculate.size(); i++) { + for (int j = 0; j < normalizeData.size(); j++) { + for (int k = 0; k < timeSteps.size(); k++) { + if (aDataToCalc == dataToCalculate.at(i) && aNormalizeData == normalizeData.at(j) && aTimeStep == timeSteps.at(k)) + return l2Norm.at(i).at(j).at(k); + } + } + } - return 0.0; + return 0.0; } std::string L2NormBetweenKernelPostProcessingStrategy::getErrorMessage(std::string aNormalizeData) { - for (int i = 0; i < normalizeData.size(); i++) { - if (aNormalizeData == normalizeData.at(i)) - return l2Normcalculator.at(i)->getErrorMessage(); - } - return std::string(); + for (int i = 0; i < normalizeData.size(); i++) { + if (aNormalizeData == normalizeData.at(i)) + return l2Normcalculator.at(i)->getErrorMessage(); + } + return std::string(); } std::shared_ptr<SimulationResults> L2NormBetweenKernelPostProcessingStrategy::getSimulationResult() { - return simResult; + return simResult; } L2NormBetweenKernelPostProcessingStrategy::L2NormBetweenKernelPostProcessingStrategy(std::shared_ptr<SimulationResults> simResult, std::shared_ptr<AnalyticalResults> analyticalResult, std::shared_ptr<L2NormTestBetweenKernelsParameterStruct> testPara, std::shared_ptr<L2NormCalculatorFactory> factory, std::vector<std::string> dataToCalcTests) - : PostProcessingStrategyImp(simResult), analyticalResult(analyticalResult), dataToCalculate(dataToCalcTests) + : PostProcessingStrategyImp(simResult), analyticalResult(analyticalResult), dataToCalculate(dataToCalcTests) { - isEvaluated = false; - normalizeData = testPara->normalizeData; - timeSteps = testPara->timeSteps; + isEvaluated = false; + normalizeData = testPara->normalizeData; + timeSteps = testPara->timeSteps; - l2Norm.resize(dataToCalculate.size()); - for (int i = 0; i < dataToCalculate.size(); i++) { - l2Norm.at(i).resize(normalizeData.size()); - for (int j = 0; j < normalizeData.size(); j++) { - l2Norm.at(i).at(j).resize(timeSteps.size()); - } - } + l2Norm.resize(dataToCalculate.size()); + for (int i = 0; i < dataToCalculate.size(); i++) { + l2Norm.at(i).resize(normalizeData.size()); + for (int j = 0; j < normalizeData.size(); j++) { + l2Norm.at(i).at(j).resize(timeSteps.size()); + } + } - for (int i = 0; i < normalizeData.size(); i++) - l2Normcalculator.push_back(factory->makeL2NormCalculator(normalizeData.at(i))); - + for (int i = 0; i < normalizeData.size(); i++) + l2Normcalculator.push_back(factory->makeL2NormCalculator(normalizeData.at(i))); + } int L2NormBetweenKernelPostProcessingStrategy::calcPosInTimeStep(int time) { - for (int i = 0; i < timeSteps.size(); i++) - if (timeSteps.at(i) == time) - return i; + for (int i = 0; i < timeSteps.size(); i++) + if (timeSteps.at(i) == time) + return i; } diff --git a/apps/gpu/tests/NumericalTests/Tests/L2NormTestBetweenKernels/PostProcessingStrategy/L2NormBetweenKernelPostProcessingStrategy.h b/apps/gpu/tests/NumericalTests/Tests/L2NormTestBetweenKernels/PostProcessingStrategy/L2NormBetweenKernelPostProcessingStrategy.h index 8f8ee2e37a009b99fff7db5c089abbd21e338cea..1bf5617a685809080118226bfe9f3df21fabd746 100644 --- a/apps/gpu/tests/NumericalTests/Tests/L2NormTestBetweenKernels/PostProcessingStrategy/L2NormBetweenKernelPostProcessingStrategy.h +++ b/apps/gpu/tests/NumericalTests/Tests/L2NormTestBetweenKernels/PostProcessingStrategy/L2NormBetweenKernelPostProcessingStrategy.h @@ -13,28 +13,28 @@ struct L2NormTestBetweenKernelsParameterStruct; class L2NormBetweenKernelPostProcessingStrategy : public PostProcessingStrategyImp { public: - static std::shared_ptr<L2NormBetweenKernelPostProcessingStrategy> getNewInstance(std::shared_ptr<SimulationResults> simResult, std::shared_ptr<AnalyticalResults> analyticalResult, std::shared_ptr<L2NormTestBetweenKernelsParameterStruct> testPara, std::shared_ptr<L2NormCalculatorFactory> factory, std::vector<std::string> dataToCalcTests); - void evaluate(); + static std::shared_ptr<L2NormBetweenKernelPostProcessingStrategy> getNewInstance(std::shared_ptr<SimulationResults> simResult, std::shared_ptr<AnalyticalResults> analyticalResult, std::shared_ptr<L2NormTestBetweenKernelsParameterStruct> testPara, std::shared_ptr<L2NormCalculatorFactory> factory, std::vector<std::string> dataToCalcTests); + void evaluate(); - double getL2Norm(std::string aDataToCalc, std::string aNormalizeData, int aTimeStep); + double getL2Norm(std::string aDataToCalc, std::string aNormalizeData, int aTimeStep); - std::string getErrorMessage(std::string aNormalizeData); + std::string getErrorMessage(std::string aNormalizeData); - virtual std::shared_ptr<SimulationResults> getSimulationResult(); + virtual std::shared_ptr<SimulationResults> getSimulationResult(); private: - L2NormBetweenKernelPostProcessingStrategy(std::shared_ptr<SimulationResults> simResult, std::shared_ptr<AnalyticalResults> analyticalResult, std::shared_ptr<L2NormTestBetweenKernelsParameterStruct> testPara, std::shared_ptr<L2NormCalculatorFactory> factory, std::vector<std::string> dataToCalcTests); + L2NormBetweenKernelPostProcessingStrategy(std::shared_ptr<SimulationResults> simResult, std::shared_ptr<AnalyticalResults> analyticalResult, std::shared_ptr<L2NormTestBetweenKernelsParameterStruct> testPara, std::shared_ptr<L2NormCalculatorFactory> factory, std::vector<std::string> dataToCalcTests); - int calcPosInTimeStep(int time); + int calcPosInTimeStep(int time); - std::shared_ptr<AnalyticalResults> analyticalResult; - std::vector<std::shared_ptr<L2NormCalculator> > l2Normcalculator; - std::vector<std::string> dataToCalculate; - std::vector<std::string> normalizeData; - std::vector<int> timeSteps; + std::shared_ptr<AnalyticalResults> analyticalResult; + std::vector<std::shared_ptr<L2NormCalculator> > l2Normcalculator; + std::vector<std::string> dataToCalculate; + std::vector<std::string> normalizeData; + std::vector<int> timeSteps; - std::vector<std::vector<std::vector<double> > > l2Norm; - bool isEvaluated; + std::vector<std::vector<std::vector<double> > > l2Norm; + bool isEvaluated; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Tests/NyTest/LogFileInformation/NyTestLogFileInformation.cpp b/apps/gpu/tests/NumericalTests/Tests/NyTest/LogFileInformation/NyTestLogFileInformation.cpp index 7d65d3d9f53aa3125420eee22e0de708cbe4c6ef..92107fed3dbf37a2715b65d8d1b7f779164973bf 100644 --- a/apps/gpu/tests/NumericalTests/Tests/NyTest/LogFileInformation/NyTestLogFileInformation.cpp +++ b/apps/gpu/tests/NumericalTests/Tests/NyTest/LogFileInformation/NyTestLogFileInformation.cpp @@ -9,128 +9,128 @@ std::shared_ptr<NyTestLogFileInformation> NyTestLogFileInformation::getNewInstance(std::shared_ptr<NyTestParameterStruct> testPara) { - return std::shared_ptr<NyTestLogFileInformation>(new NyTestLogFileInformation(testPara)); + return std::shared_ptr<NyTestLogFileInformation>(new NyTestLogFileInformation(testPara)); } std::string NyTestLogFileInformation::getOutput() { - std::ostringstream headName; - headName <<"Ny Test"; - makeCenterHead(headName.str()); - - oss << "StartTimeStepCalculation_NyTest=" << startTimeStepCalculation << std::endl; - oss << "EndTimeStepCalculation_NyTest=" << endTimeStepCalculation << std::endl; - oss << "DataToCalc_NyTest=\""; - for (int i = 0; i < testGroups.size(); i++) { - oss << testGroups.at(i).at(0)->getDataToCalculate(); - if (i < testGroups.size() - 1) - oss << " "; - else - oss << "\"" << std::endl; - } - oss << std::endl; - - std::ostringstream failMessageNy; - failMessageNy << "FailTests_Ny_NyTest=\""; - std::ostringstream failMessageOOA; - failMessageOOA << "FailTests_OOA_NyTest=\""; - for (int i = 0; i < testGroups.size(); i++) { - fillMyData(testGroups.at(i)); - for (int j = 0; j < lxForErase.size(); j++) { - if (status.at(j) == passed || status.at(j) == failed) { - oss << "Ny_" << lxForErase.at(j) << "_" << dataToCalc.at(j) << "=" << ny.at(j) << std::endl; - oss << "NyDiff_" << lxForErase.at(j) << "_" << dataToCalc.at(j) << "=" << nyDiff.at(j) << std::endl; - } - else - failMessageNy << lxForErase.at(j) << "_" << dataToCalc.at(j) << " "; - } - oss << std::endl; - for (int j = 0; j < orderOfAccuracyNyDiff.size(); j++) { - if (status.at(j) == passed || status.at(j) == failed) { - oss << "OrderOfAccuracy_NyDiff_" << lx.at(2 * j) << "_" << lx.at(2 * j + 1) << "_" << dataToCalc.at(j) << "=" << orderOfAccuracyNyDiff.at(j) << std::endl; - } - else - failMessageOOA << lx.at(2 * j) << "_" << lx.at(2 * j + 1) << "_" << dataToCalc.at(j) << " "; - } - oss << std::endl; - } - std::string failNy = failMessageNy.str(); - if (failNy.back() == ' ') - failNy = failNy.substr(0, failNy.size() - 1); - failMessageNy.str(std::string()); - failMessageNy << failNy << "\""; - oss << failMessageNy.str() << std::endl << std::endl; - - std::string failOOA = failMessageOOA.str(); - if (failOOA.back() == ' ') - failOOA = failOOA.substr(0, failOOA.size() - 1); - failMessageOOA.str(std::string()); - failMessageOOA << failOOA << "\""; - oss << failMessageOOA.str() << std::endl << std::endl; - - return oss.str(); + std::ostringstream headName; + headName <<"Ny Test"; + makeCenterHead(headName.str()); + + oss << "StartTimeStepCalculation_NyTest=" << startTimeStepCalculation << std::endl; + oss << "EndTimeStepCalculation_NyTest=" << endTimeStepCalculation << std::endl; + oss << "DataToCalc_NyTest=\""; + for (int i = 0; i < testGroups.size(); i++) { + oss << testGroups.at(i).at(0)->getDataToCalculate(); + if (i < testGroups.size() - 1) + oss << " "; + else + oss << "\"" << std::endl; + } + oss << std::endl; + + std::ostringstream failMessageNy; + failMessageNy << "FailTests_Ny_NyTest=\""; + std::ostringstream failMessageOOA; + failMessageOOA << "FailTests_OOA_NyTest=\""; + for (int i = 0; i < testGroups.size(); i++) { + fillMyData(testGroups.at(i)); + for (int j = 0; j < lxForErase.size(); j++) { + if (status.at(j) == passed || status.at(j) == failed) { + oss << "Ny_" << lxForErase.at(j) << "_" << dataToCalc.at(j) << "=" << ny.at(j) << std::endl; + oss << "NyDiff_" << lxForErase.at(j) << "_" << dataToCalc.at(j) << "=" << nyDiff.at(j) << std::endl; + } + else + failMessageNy << lxForErase.at(j) << "_" << dataToCalc.at(j) << " "; + } + oss << std::endl; + for (int j = 0; j < orderOfAccuracyNyDiff.size(); j++) { + if (status.at(j) == passed || status.at(j) == failed) { + oss << "OrderOfAccuracy_NyDiff_" << lx.at(2 * j) << "_" << lx.at(2 * j + 1) << "_" << dataToCalc.at(j) << "=" << orderOfAccuracyNyDiff.at(j) << std::endl; + } + else + failMessageOOA << lx.at(2 * j) << "_" << lx.at(2 * j + 1) << "_" << dataToCalc.at(j) << " "; + } + oss << std::endl; + } + std::string failNy = failMessageNy.str(); + if (failNy.back() == ' ') + failNy = failNy.substr(0, failNy.size() - 1); + failMessageNy.str(std::string()); + failMessageNy << failNy << "\""; + oss << failMessageNy.str() << std::endl << std::endl; + + std::string failOOA = failMessageOOA.str(); + if (failOOA.back() == ' ') + failOOA = failOOA.substr(0, failOOA.size() - 1); + failMessageOOA.str(std::string()); + failMessageOOA << failOOA << "\""; + oss << failMessageOOA.str() << std::endl << std::endl; + + return oss.str(); } void NyTestLogFileInformation::addTestGroup(std::vector<std::shared_ptr<NyTest> > tests) { - testGroups.push_back(tests); + testGroups.push_back(tests); } void NyTestLogFileInformation::fillMyData(std::vector<std::shared_ptr<NyTest> > testGroup) { - lxForErase.resize(0); - lx.resize(0); - ny.resize(0); - nyDiff.resize(0); - orderOfAccuracyNyDiff.resize(0); - dataToCalc.resize(0); - status.resize(0); - for (int i = 0; i < testGroup.size(); i++) { - status.push_back(testGroup.at(i)->getTestStatus()); - status.push_back(testGroup.at(i)->getTestStatus()); - - std::vector<int> myLx = testGroup.at(i)->getLx(); - std::vector<double> myNy; - std::vector<double> myNyDiff; - - if (testGroup.at(i)->getTestStatus() == simulationCrashed || testGroup.at(i)->getTestStatus() == test_error) { - for (int i = 0; i < myLx.size(); i++) { - myNy.push_back((double)0.0); - myNyDiff.push_back((double)0.0); - } - - } - else { - myNy = testGroup.at(i)->getNy(); - myNyDiff = testGroup.at(i)->getNyDiff(); - } - lx.insert(lx.end(), myLx.begin(), myLx.end()); - lxForErase.insert(lxForErase.end(), myLx.begin(), myLx.end()); - ny.insert(ny.end(), myNy.begin(), myNy.end()); - nyDiff.insert(nyDiff.end(), myNyDiff.begin(), myNyDiff.end()); - orderOfAccuracyNyDiff.push_back(testGroup.at(i)->getOrderOfAccuracyNyDiff()); - dataToCalc.push_back(testGroup.at(i)->getDataToCalculate()); - dataToCalc.push_back(testGroup.at(i)->getDataToCalculate()); - } - - for (int i = 0; i < lxForErase.size(); i++) - for (int j = i + 1; j < lxForErase.size(); j++) - if (lxForErase.at(i) == lxForErase.at(j)) - lxForErase.at(j) = -1; - - for (int i = lxForErase.size() - 1; i >= 0; i--) { - if (lxForErase.at(i) == -1) { - ny.erase(ny.begin() + i); - nyDiff.erase(nyDiff.begin() + i); - lxForErase.erase(lxForErase.begin() + i); - } - } - - + lxForErase.resize(0); + lx.resize(0); + ny.resize(0); + nyDiff.resize(0); + orderOfAccuracyNyDiff.resize(0); + dataToCalc.resize(0); + status.resize(0); + for (int i = 0; i < testGroup.size(); i++) { + status.push_back(testGroup.at(i)->getTestStatus()); + status.push_back(testGroup.at(i)->getTestStatus()); + + std::vector<int> myLx = testGroup.at(i)->getLx(); + std::vector<double> myNy; + std::vector<double> myNyDiff; + + if (testGroup.at(i)->getTestStatus() == simulationCrashed || testGroup.at(i)->getTestStatus() == test_error) { + for (int i = 0; i < myLx.size(); i++) { + myNy.push_back((double)0.0); + myNyDiff.push_back((double)0.0); + } + + } + else { + myNy = testGroup.at(i)->getNy(); + myNyDiff = testGroup.at(i)->getNyDiff(); + } + lx.insert(lx.end(), myLx.begin(), myLx.end()); + lxForErase.insert(lxForErase.end(), myLx.begin(), myLx.end()); + ny.insert(ny.end(), myNy.begin(), myNy.end()); + nyDiff.insert(nyDiff.end(), myNyDiff.begin(), myNyDiff.end()); + orderOfAccuracyNyDiff.push_back(testGroup.at(i)->getOrderOfAccuracyNyDiff()); + dataToCalc.push_back(testGroup.at(i)->getDataToCalculate()); + dataToCalc.push_back(testGroup.at(i)->getDataToCalculate()); + } + + for (int i = 0; i < lxForErase.size(); i++) + for (int j = i + 1; j < lxForErase.size(); j++) + if (lxForErase.at(i) == lxForErase.at(j)) + lxForErase.at(j) = -1; + + for (int i = lxForErase.size() - 1; i >= 0; i--) { + if (lxForErase.at(i) == -1) { + ny.erase(ny.begin() + i); + nyDiff.erase(nyDiff.begin() + i); + lxForErase.erase(lxForErase.begin() + i); + } + } + + } NyTestLogFileInformation::NyTestLogFileInformation(std::shared_ptr<NyTestParameterStruct> testPara) { - startTimeStepCalculation = testPara->startTimeStepCalculation; - endTimeStepCalculation = testPara->endTimeStepCalculation; + startTimeStepCalculation = testPara->startTimeStepCalculation; + endTimeStepCalculation = testPara->endTimeStepCalculation; } \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Tests/NyTest/LogFileInformation/NyTestLogFileInformation.h b/apps/gpu/tests/NumericalTests/Tests/NyTest/LogFileInformation/NyTestLogFileInformation.h index b554ac96574ed719c1121a579ed8531cd754fcdf..250881d583d259a57a42fe8d13215a17b3eba11b 100644 --- a/apps/gpu/tests/NumericalTests/Tests/NyTest/LogFileInformation/NyTestLogFileInformation.h +++ b/apps/gpu/tests/NumericalTests/Tests/NyTest/LogFileInformation/NyTestLogFileInformation.h @@ -13,24 +13,24 @@ struct NyTestParameterStruct; class NyTestLogFileInformation : public TestLogFileInformation { public: - static std::shared_ptr<NyTestLogFileInformation> getNewInstance(std::shared_ptr<NyTestParameterStruct> testPara); + static std::shared_ptr<NyTestLogFileInformation> getNewInstance(std::shared_ptr<NyTestParameterStruct> testPara); - std::string getOutput(); - void addTestGroup(std::vector<std::shared_ptr<NyTest> > tests); + std::string getOutput(); + void addTestGroup(std::vector<std::shared_ptr<NyTest> > tests); private: - NyTestLogFileInformation() {}; - NyTestLogFileInformation(std::shared_ptr<NyTestParameterStruct> testPara); - - void fillMyData(std::vector<std::shared_ptr<NyTest> > testGroup); - - std::vector<std::vector<std::shared_ptr<NyTest> > > testGroups; - unsigned int startTimeStepCalculation, endTimeStepCalculation; - std::vector<int> lx; - std::vector<int> lxForErase; - std::vector<double> ny, nyDiff; - std::vector<double> orderOfAccuracyNyDiff; - std::vector<std::string> dataToCalc; - std::vector<TestStatus> status; + NyTestLogFileInformation() {}; + NyTestLogFileInformation(std::shared_ptr<NyTestParameterStruct> testPara); + + void fillMyData(std::vector<std::shared_ptr<NyTest> > testGroup); + + std::vector<std::vector<std::shared_ptr<NyTest> > > testGroups; + unsigned int startTimeStepCalculation, endTimeStepCalculation; + std::vector<int> lx; + std::vector<int> lxForErase; + std::vector<double> ny, nyDiff; + std::vector<double> orderOfAccuracyNyDiff; + std::vector<std::string> dataToCalc; + std::vector<TestStatus> status; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Tests/NyTest/NyTest.cpp b/apps/gpu/tests/NumericalTests/Tests/NyTest/NyTest.cpp index 474ea1a4f4a32d244958a305001acf71e1f515ef..3b5c76d38167e48e90d00406e228d3703512fa39 100644 --- a/apps/gpu/tests/NumericalTests/Tests/NyTest/NyTest.cpp +++ b/apps/gpu/tests/NumericalTests/Tests/NyTest/NyTest.cpp @@ -12,195 +12,195 @@ std::shared_ptr<NyTest> NyTest::getNewInstance(std::shared_ptr<ColorConsoleOutput> colorOutput, double viscosity, std::shared_ptr<NyTestParameterStruct> testPara, std::string dataToCalculate) { - return std::shared_ptr<NyTest>(new NyTest(colorOutput, viscosity, testPara, dataToCalculate)); + return std::shared_ptr<NyTest>(new NyTest(colorOutput, viscosity, testPara, dataToCalculate)); } void NyTest::evaluate() { - for (int i = 0; i < postProStrategies.size(); i++) - ny.push_back(postProStrategies.at(i)->getNy(dataToCalculate)); - - if (checkNy(ny)) { - nyDiff = calcNyDiff(ny); - orderOfAccuracy = calcOrderOfAccuracy(nyDiff); - testStatus = checkTestPassed(orderOfAccuracy); - } - else - testStatus = test_error; - + for (int i = 0; i < postProStrategies.size(); i++) + ny.push_back(postProStrategies.at(i)->getNy(dataToCalculate)); + + if (checkNy(ny)) { + nyDiff = calcNyDiff(ny); + orderOfAccuracy = calcOrderOfAccuracy(nyDiff); + testStatus = checkTestPassed(orderOfAccuracy); + } + else + testStatus = test_error; + - makeConsoleOutput(); + makeConsoleOutput(); } void NyTest::update() { - TestImp::update(); + TestImp::update(); } void NyTest::addSimulation(std::shared_ptr<NumericalTestSimulation> sim, std::shared_ptr<SimulationInfo> simInfo, std::shared_ptr<NyTestPostProcessingStrategy> postProStrategy) { - TestImp::addSimulation(sim, simInfo, postProStrategy); - postProStrategies.push_back(postProStrategy); - lx.push_back(postProStrategy->getNumberOfXNodes()); + TestImp::addSimulation(sim, simInfo, postProStrategy); + postProStrategies.push_back(postProStrategy); + lx.push_back(postProStrategy->getNumberOfXNodes()); } std::string NyTest::getDataToCalculate() { - return dataToCalculate; + return dataToCalculate; } std::vector<int> NyTest::getLx() { - std::vector<int> lxINT; - for (int i = 0; i < lx.size(); i++) - lxINT.push_back((int)lx.at(i)); - return lxINT; + std::vector<int> lxINT; + for (int i = 0; i < lx.size(); i++) + lxINT.push_back((int)lx.at(i)); + return lxINT; } std::vector<double> NyTest::getNy() { - return ny; + return ny; } std::vector<double> NyTest::getNyDiff() { - return nyDiff; + return nyDiff; } double NyTest::getOrderOfAccuracyNyDiff() { - return orderOfAccuracy; + return orderOfAccuracy; } NyTest::NyTest(std::shared_ptr<ColorConsoleOutput> colorOutput, double viscosity, std::shared_ptr<NyTestParameterStruct> testPara, std::string dataToCalculate) - : TestImp(colorOutput), viscosity(viscosity), dataToCalculate(dataToCalculate) + : TestImp(colorOutput), viscosity(viscosity), dataToCalculate(dataToCalculate) { - minOrderOfAccuracy = testPara->minOrderOfAccuracy; - startStepCalculation = testPara->startTimeStepCalculation; - endStepCalculation = testPara->endTimeStepCalculation; + minOrderOfAccuracy = testPara->minOrderOfAccuracy; + startStepCalculation = testPara->startTimeStepCalculation; + endStepCalculation = testPara->endTimeStepCalculation; - lx.resize(0); - nyDiff.resize(0); + lx.resize(0); + nyDiff.resize(0); } double NyTest::calcOrderOfAccuracy(std::vector<double> data) { - double ooa = std::log(data.at(0) / data.at(1)) / std::log(lx.at(1) / lx.at(0)); - - return ooa; + double ooa = std::log(data.at(0) / data.at(1)) / std::log(lx.at(1) / lx.at(0)); + + return ooa; } TestStatus NyTest::checkTestPassed(double orderOfAccuracy) { - if (orderOfAccuracy > minOrderOfAccuracy) - return passed; - else - return failed; + if (orderOfAccuracy > minOrderOfAccuracy) + return passed; + else + return failed; } bool NyTest::checkNy(std::vector<double> ny) { - for(int i = 0; i < ny.size(); i++) - if(ny.at(i) < 0.0) - return false; - return true; + for(int i = 0; i < ny.size(); i++) + if(ny.at(i) < 0.0) + return false; + return true; } std::vector<double> NyTest::calcNyDiff(std::vector<double> ny) { - std::vector<double> results; - for (int i = 0; i < ny.size(); i++) - results.push_back(std::fabs((ny.at(i) - viscosity) / viscosity)); - return results; + std::vector<double> results; + for (int i = 0; i < ny.size(); i++) + results.push_back(std::fabs((ny.at(i) - viscosity) / viscosity)); + return results; } std::vector<std::string> NyTest::buildTestOutput() { - std::vector<std::string> output = buildBasicTestOutput(); - std::ostringstream oss; + std::vector<std::string> output = buildBasicTestOutput(); + std::ostringstream oss; - for (int i = 0; i < ny.size(); i++) { - oss << "Ny" << simInfos.at(i)->getLx() << ": " << ny.at(i); - output.push_back(oss.str()); - oss.str(std::string()); + for (int i = 0; i < ny.size(); i++) { + oss << "Ny" << simInfos.at(i)->getLx() << ": " << ny.at(i); + output.push_back(oss.str()); + oss.str(std::string()); - oss << "NyDiff" << simInfos.at(i)->getLx() << ": " << nyDiff.at(i); - output.push_back(oss.str()); - oss.str(std::string()); - } - oss << "OrderOfAccuracy: " << orderOfAccuracy; - output.push_back(oss.str()); - oss.str(std::string()); + oss << "NyDiff" << simInfos.at(i)->getLx() << ": " << nyDiff.at(i); + output.push_back(oss.str()); + oss.str(std::string()); + } + oss << "OrderOfAccuracy: " << orderOfAccuracy; + output.push_back(oss.str()); + oss.str(std::string()); - return output; + return output; } std::vector<std::string> NyTest::buildBasicTestOutput() { - std::vector<std::string> output; - std::ostringstream oss; + std::vector<std::string> output; + std::ostringstream oss; - output.push_back("Ny Test"); + output.push_back("Ny Test"); - oss << "Kernel: " << simInfos.at(0)->getKernelName(); - output.push_back(oss.str()); - oss.str(std::string()); + oss << "Kernel: " << simInfos.at(0)->getKernelName(); + output.push_back(oss.str()); + oss.str(std::string()); - oss << "Viscosity: " << simInfos.at(0)->getViscosity(); - output.push_back(oss.str()); - oss.str(std::string()); + oss << "Viscosity: " << simInfos.at(0)->getViscosity(); + output.push_back(oss.str()); + oss.str(std::string()); - output.push_back(oss.str()); + output.push_back(oss.str()); - oss << simInfos.at(0)->getSimulationName(); - output.push_back(oss.str()); - oss.str(std::string()); + oss << simInfos.at(0)->getSimulationName(); + output.push_back(oss.str()); + oss.str(std::string()); - for (int i = 0; i < simInfos.size(); i++) { - oss << "L: " << std::setfill(' ') << std::right << std::setw(4) << simInfos.at(i)->getLx() << simInfos.at(i)->getSimulationParameterString(); - output.push_back(oss.str()); - oss.str(std::string()); - } + for (int i = 0; i < simInfos.size(); i++) { + oss << "L: " << std::setfill(' ') << std::right << std::setw(4) << simInfos.at(i)->getLx() << simInfos.at(i)->getSimulationParameterString(); + output.push_back(oss.str()); + oss.str(std::string()); + } - output.push_back(oss.str()); + output.push_back(oss.str()); - oss << "DataToCalculate: " << dataToCalculate; - output.push_back(oss.str()); - oss.str(std::string()); + oss << "DataToCalculate: " << dataToCalculate; + output.push_back(oss.str()); + oss.str(std::string()); - oss << "StartTimeStep: " << startStepCalculation; - output.push_back(oss.str()); - oss.str(std::string()); + oss << "StartTimeStep: " << startStepCalculation; + output.push_back(oss.str()); + oss.str(std::string()); - oss << "EndTimeStep: " << endStepCalculation; - output.push_back(oss.str()); - oss.str(std::string()); + oss << "EndTimeStep: " << endStepCalculation; + output.push_back(oss.str()); + oss.str(std::string()); - output.push_back(oss.str()); + output.push_back(oss.str()); - return output; + return output; } std::vector<std::string> NyTest::buildErrorTestOutput() { - std::vector<std::string> output = buildBasicTestOutput(); - std::ostringstream oss; + std::vector<std::string> output = buildBasicTestOutput(); + std::ostringstream oss; - oss << "Error Message: Ny < 0"; - output.push_back(oss.str()); - oss.str(std::string()); + oss << "Error Message: Ny < 0"; + output.push_back(oss.str()); + oss.str(std::string()); - return output; + return output; } std::vector<std::string> NyTest::buildSimulationFailedTestOutput() { - std::vector<std::string> output = buildBasicTestOutput(); - std::ostringstream oss; + std::vector<std::string> output = buildBasicTestOutput(); + std::ostringstream oss; - oss << "Simulation crashed!"; - output.push_back(oss.str()); - oss.str(std::string()); + oss << "Simulation crashed!"; + output.push_back(oss.str()); + oss.str(std::string()); - return output; + return output; } diff --git a/apps/gpu/tests/NumericalTests/Tests/NyTest/NyTest.h b/apps/gpu/tests/NumericalTests/Tests/NyTest/NyTest.h index 2a6469fb0785db31b8a24d9fb6a090ec9c9a43a5..22899fc60312f07d49fd9cbb73b43eeb2d2ebdf8 100644 --- a/apps/gpu/tests/NumericalTests/Tests/NyTest/NyTest.h +++ b/apps/gpu/tests/NumericalTests/Tests/NyTest/NyTest.h @@ -14,40 +14,40 @@ struct NyTestParameterStruct; class NyTest : public TestImp { public: - static std::shared_ptr<NyTest> getNewInstance(std::shared_ptr<ColorConsoleOutput> colorOutput, double viscosity, std::shared_ptr<NyTestParameterStruct> testPara, std::string dataToCalculate); - - void update(); - void addSimulation(std::shared_ptr<NumericalTestSimulation> sim, std::shared_ptr<SimulationInfo> simInfo, std::shared_ptr<NyTestPostProcessingStrategy> postProStrategy); - - void evaluate(); - - std::string getDataToCalculate(); - std::vector<int> getLx(); - std::vector<double> getNy(); - std::vector<double> getNyDiff(); - double getOrderOfAccuracyNyDiff(); + static std::shared_ptr<NyTest> getNewInstance(std::shared_ptr<ColorConsoleOutput> colorOutput, double viscosity, std::shared_ptr<NyTestParameterStruct> testPara, std::string dataToCalculate); + + void update(); + void addSimulation(std::shared_ptr<NumericalTestSimulation> sim, std::shared_ptr<SimulationInfo> simInfo, std::shared_ptr<NyTestPostProcessingStrategy> postProStrategy); + + void evaluate(); + + std::string getDataToCalculate(); + std::vector<int> getLx(); + std::vector<double> getNy(); + std::vector<double> getNyDiff(); + double getOrderOfAccuracyNyDiff(); private: - NyTest(std::shared_ptr<ColorConsoleOutput> colorOutput, double viscosity, std::shared_ptr<NyTestParameterStruct> testPara, std::string dataToCalculate); - double calcOrderOfAccuracy(std::vector<double> data); - TestStatus checkTestPassed(double orderOfAccuracy); - bool checkNy(std::vector<double> ny); - std::vector<double> calcNyDiff(std::vector<double> ny); - std::vector<std::string> buildTestOutput(); - std::vector<std::string> buildBasicTestOutput(); - std::vector<std::string> buildErrorTestOutput(); - std::vector<std::string> buildSimulationFailedTestOutput(); - - - unsigned int startStepCalculation, endStepCalculation; - std::vector<double> lx; - std::vector<double> ny, nyDiff; - double orderOfAccuracy; - double minOrderOfAccuracy; - double viscosity; - std::string dataToCalculate; - - std::vector<std::shared_ptr<NyTestPostProcessingStrategy> > postProStrategies; + NyTest(std::shared_ptr<ColorConsoleOutput> colorOutput, double viscosity, std::shared_ptr<NyTestParameterStruct> testPara, std::string dataToCalculate); + double calcOrderOfAccuracy(std::vector<double> data); + TestStatus checkTestPassed(double orderOfAccuracy); + bool checkNy(std::vector<double> ny); + std::vector<double> calcNyDiff(std::vector<double> ny); + std::vector<std::string> buildTestOutput(); + std::vector<std::string> buildBasicTestOutput(); + std::vector<std::string> buildErrorTestOutput(); + std::vector<std::string> buildSimulationFailedTestOutput(); + + + unsigned int startStepCalculation, endStepCalculation; + std::vector<double> lx; + std::vector<double> ny, nyDiff; + double orderOfAccuracy; + double minOrderOfAccuracy; + double viscosity; + std::string dataToCalculate; + + std::vector<std::shared_ptr<NyTestPostProcessingStrategy> > postProStrategies; }; #endif diff --git a/apps/gpu/tests/NumericalTests/Tests/NyTest/NyTestParameterStruct.h b/apps/gpu/tests/NumericalTests/Tests/NyTest/NyTestParameterStruct.h index 577077d30b433791f4289fc79ed745687608f5d2..49e8f853aced24ad38acfc6f22a18095f1075642 100644 --- a/apps/gpu/tests/NumericalTests/Tests/NyTest/NyTestParameterStruct.h +++ b/apps/gpu/tests/NumericalTests/Tests/NyTest/NyTestParameterStruct.h @@ -7,10 +7,10 @@ struct NyTestParameterStruct { - std::shared_ptr<BasicTestParameterStruct> basicTestParameter; + std::shared_ptr<BasicTestParameterStruct> basicTestParameter; - double minOrderOfAccuracy; - unsigned int startTimeStepCalculation; - unsigned int endTimeStepCalculation; + double minOrderOfAccuracy; + unsigned int startTimeStepCalculation; + unsigned int endTimeStepCalculation; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Tests/NyTest/PostProcessingStrategy/NyTestPostProcessingStrategy.cpp b/apps/gpu/tests/NumericalTests/Tests/NyTest/PostProcessingStrategy/NyTestPostProcessingStrategy.cpp index 4147d91533ec010f0ca0c0b8960abab420c77ad9..283855ecdac0c3235779839c23270211c9b447d7 100644 --- a/apps/gpu/tests/NumericalTests/Tests/NyTest/PostProcessingStrategy/NyTestPostProcessingStrategy.cpp +++ b/apps/gpu/tests/NumericalTests/Tests/NyTest/PostProcessingStrategy/NyTestPostProcessingStrategy.cpp @@ -9,66 +9,66 @@ std::shared_ptr<NyTestPostProcessingStrategy> NyTestPostProcessingStrategy::getNewInstance(std::shared_ptr<SimulationResults> simResult, std::shared_ptr<AnalyticalResults> analyticalResult, std::shared_ptr<NyTestParameterStruct> testPara, std::vector<std::string> dataToCalcTests) { - return std::shared_ptr<NyTestPostProcessingStrategy>(new NyTestPostProcessingStrategy(simResult, analyticalResult, testPara, dataToCalcTests)); + return std::shared_ptr<NyTestPostProcessingStrategy>(new NyTestPostProcessingStrategy(simResult, analyticalResult, testPara, dataToCalcTests)); } NyTestPostProcessingStrategy::NyTestPostProcessingStrategy(std::shared_ptr<SimulationResults> simResult, std::shared_ptr<AnalyticalResults> analyticalResult, std::shared_ptr<NyTestParameterStruct> testPara, std::vector<std::string> dataToCalcTests) - : PostProcessingStrategyImp(simResult), analyticalResult(analyticalResult), dataToCalculate(dataToCalcTests) + : PostProcessingStrategyImp(simResult), analyticalResult(analyticalResult), dataToCalculate(dataToCalcTests) { - startTimeStepCalculation = testPara->startTimeStepCalculation; - endTimeStepCalculation = testPara->endTimeStepCalculation; - ny.resize(dataToCalculate.size()); + startTimeStepCalculation = testPara->startTimeStepCalculation; + endTimeStepCalculation = testPara->endTimeStepCalculation; + ny.resize(dataToCalculate.size()); - isEvaluated = false; - fftCalculator = FFTCalculator::getInstance(); + isEvaluated = false; + fftCalculator = FFTCalculator::getInstance(); } std::vector<std::vector<double> > NyTestPostProcessingStrategy::reduceDataToTimeSteps(std::vector<std::vector<double> > data, unsigned int startTimeStep, unsigned int endTimeStep) { - std::vector<int> timeStepsToDelete; + std::vector<int> timeStepsToDelete; - for (int i = simResult->getTimeSteps().size() - 1; i >= 0; i--) { - if (simResult->getTimeSteps().at(i) > endTimeStep) - timeStepsToDelete.push_back(i); - if (simResult->getTimeSteps().at(i) < startTimeStep) - timeStepsToDelete.push_back(i); - } + for (int i = simResult->getTimeSteps().size() - 1; i >= 0; i--) { + if (simResult->getTimeSteps().at(i) > endTimeStep) + timeStepsToDelete.push_back(i); + if (simResult->getTimeSteps().at(i) < startTimeStep) + timeStepsToDelete.push_back(i); + } - for (int i = 0; i < timeStepsToDelete.size(); i++) - data.erase(data.begin() + timeStepsToDelete.at(i)); + for (int i = 0; i < timeStepsToDelete.size(); i++) + data.erase(data.begin() + timeStepsToDelete.at(i)); - return data; + return data; } void NyTestPostProcessingStrategy::evaluate() { - if (!isEvaluated) { - for (int i = 0; i < dataToCalculate.size(); i++) { - if (dataToCalculate.at(i) == "Vx") { - ny.at(i) = fftCalculator->calcNy(reduceDataToTimeSteps(simResult->getVx(), startTimeStepCalculation, endTimeStepCalculation), false, simResult->getNumberOfXNodes(), simResult->getNumberOfZNodes(), simResult->getTimeStepLength()); - } - if (dataToCalculate.at(i) == "Vy") { - ny.at(i) = fftCalculator->calcNy(reduceDataToTimeSteps(simResult->getVy(), startTimeStepCalculation, endTimeStepCalculation), false, simResult->getNumberOfXNodes(), simResult->getNumberOfZNodes(), simResult->getTimeStepLength()); - } - if (dataToCalculate.at(i) == "Vz") { - ny.at(i) = fftCalculator->calcNy(reduceDataToTimeSteps(simResult->getVz(), startTimeStepCalculation, endTimeStepCalculation), true, simResult->getNumberOfXNodes(), simResult->getNumberOfZNodes(), simResult->getTimeStepLength()); - } - if (dataToCalculate.at(i) == "Press") { - ny.at(i) = fftCalculator->calcNy(reduceDataToTimeSteps(simResult->getVy(), startTimeStepCalculation, endTimeStepCalculation), false, simResult->getNumberOfXNodes(), simResult->getNumberOfZNodes(), simResult->getTimeStepLength()); - } - if (dataToCalculate.at(i) == "Rho") { - ny.at(i) = fftCalculator->calcNy(reduceDataToTimeSteps(simResult->getVz(), startTimeStepCalculation, endTimeStepCalculation), true, simResult->getNumberOfXNodes(), simResult->getNumberOfZNodes(), simResult->getTimeStepLength()); - } - } - isEvaluated = true; - } + if (!isEvaluated) { + for (int i = 0; i < dataToCalculate.size(); i++) { + if (dataToCalculate.at(i) == "Vx") { + ny.at(i) = fftCalculator->calcNy(reduceDataToTimeSteps(simResult->getVx(), startTimeStepCalculation, endTimeStepCalculation), false, simResult->getNumberOfXNodes(), simResult->getNumberOfZNodes(), simResult->getTimeStepLength()); + } + if (dataToCalculate.at(i) == "Vy") { + ny.at(i) = fftCalculator->calcNy(reduceDataToTimeSteps(simResult->getVy(), startTimeStepCalculation, endTimeStepCalculation), false, simResult->getNumberOfXNodes(), simResult->getNumberOfZNodes(), simResult->getTimeStepLength()); + } + if (dataToCalculate.at(i) == "Vz") { + ny.at(i) = fftCalculator->calcNy(reduceDataToTimeSteps(simResult->getVz(), startTimeStepCalculation, endTimeStepCalculation), true, simResult->getNumberOfXNodes(), simResult->getNumberOfZNodes(), simResult->getTimeStepLength()); + } + if (dataToCalculate.at(i) == "Press") { + ny.at(i) = fftCalculator->calcNy(reduceDataToTimeSteps(simResult->getVy(), startTimeStepCalculation, endTimeStepCalculation), false, simResult->getNumberOfXNodes(), simResult->getNumberOfZNodes(), simResult->getTimeStepLength()); + } + if (dataToCalculate.at(i) == "Rho") { + ny.at(i) = fftCalculator->calcNy(reduceDataToTimeSteps(simResult->getVz(), startTimeStepCalculation, endTimeStepCalculation), true, simResult->getNumberOfXNodes(), simResult->getNumberOfZNodes(), simResult->getTimeStepLength()); + } + } + isEvaluated = true; + } } double NyTestPostProcessingStrategy::getNy(std::string dataToCalculate) { - for (int i = 0; i < ny.size(); i++) { - if (dataToCalculate == this->dataToCalculate.at(i)) - return ny.at(i); - } + for (int i = 0; i < ny.size(); i++) { + if (dataToCalculate == this->dataToCalculate.at(i)) + return ny.at(i); + } } - \ No newline at end of file + \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Tests/NyTest/PostProcessingStrategy/NyTestPostProcessingStrategy.h b/apps/gpu/tests/NumericalTests/Tests/NyTest/PostProcessingStrategy/NyTestPostProcessingStrategy.h index 92a8ad83369611be9cee455f62add49b52b5e42a..b699b6064b3e93921b4216d8b118e5c2337d03b8 100644 --- a/apps/gpu/tests/NumericalTests/Tests/NyTest/PostProcessingStrategy/NyTestPostProcessingStrategy.h +++ b/apps/gpu/tests/NumericalTests/Tests/NyTest/PostProcessingStrategy/NyTestPostProcessingStrategy.h @@ -12,22 +12,22 @@ struct NyTestParameterStruct; class NyTestPostProcessingStrategy : public PostProcessingStrategyImp { public: - static std::shared_ptr<NyTestPostProcessingStrategy> getNewInstance(std::shared_ptr<SimulationResults> simResult, std::shared_ptr<AnalyticalResults> analyticalResult, std::shared_ptr<NyTestParameterStruct> testPara, std::vector<std::string> dataToCalcTests); - void evaluate(); + static std::shared_ptr<NyTestPostProcessingStrategy> getNewInstance(std::shared_ptr<SimulationResults> simResult, std::shared_ptr<AnalyticalResults> analyticalResult, std::shared_ptr<NyTestParameterStruct> testPara, std::vector<std::string> dataToCalcTests); + void evaluate(); - double getNy(std::string dataToCalculate); + double getNy(std::string dataToCalculate); private: - NyTestPostProcessingStrategy(std::shared_ptr<SimulationResults> simResult, std::shared_ptr<AnalyticalResults> analyticalResult, std::shared_ptr<NyTestParameterStruct> testPara, std::vector<std::string> dataToCalcTests); - - std::vector<std::vector<double> > reduceDataToTimeSteps(std::vector<std::vector<double> > data, unsigned int startTimeStep, unsigned int endTimeStep); + NyTestPostProcessingStrategy(std::shared_ptr<SimulationResults> simResult, std::shared_ptr<AnalyticalResults> analyticalResult, std::shared_ptr<NyTestParameterStruct> testPara, std::vector<std::string> dataToCalcTests); + + std::vector<std::vector<double> > reduceDataToTimeSteps(std::vector<std::vector<double> > data, unsigned int startTimeStep, unsigned int endTimeStep); - std::shared_ptr<AnalyticalResults> analyticalResult; - std::vector<std::string> dataToCalculate; - std::shared_ptr<FFTCalculator> fftCalculator; - unsigned int startTimeStepCalculation; - unsigned int endTimeStepCalculation; - std::vector<double> ny; - bool isEvaluated; + std::shared_ptr<AnalyticalResults> analyticalResult; + std::vector<std::string> dataToCalculate; + std::shared_ptr<FFTCalculator> fftCalculator; + unsigned int startTimeStepCalculation; + unsigned int endTimeStepCalculation; + std::vector<double> ny; + bool isEvaluated; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Tests/PhiTest/LogFileInformation/PhiTestLogFileInformation.cpp b/apps/gpu/tests/NumericalTests/Tests/PhiTest/LogFileInformation/PhiTestLogFileInformation.cpp index c837b98d9d035a92085657a4d6513da7904e737e..381ed0722e7451dc3b4d8857991e1370062e2eb1 100644 --- a/apps/gpu/tests/NumericalTests/Tests/PhiTest/LogFileInformation/PhiTestLogFileInformation.cpp +++ b/apps/gpu/tests/NumericalTests/Tests/PhiTest/LogFileInformation/PhiTestLogFileInformation.cpp @@ -9,120 +9,120 @@ std::shared_ptr<PhiTestLogFileInformation> PhiTestLogFileInformation::getNewInstance(std::shared_ptr<PhiTestParameterStruct> testPara) { - return std::shared_ptr<PhiTestLogFileInformation>(new PhiTestLogFileInformation(testPara)); + return std::shared_ptr<PhiTestLogFileInformation>(new PhiTestLogFileInformation(testPara)); } std::string PhiTestLogFileInformation::getOutput() { - std::ostringstream headName; - headName <<" Phi Test"; - makeCenterHead(headName.str()); - - oss << "StartTimeStepCalculation_PhiTest=" << startTimeStepCalculation << std::endl; - oss << "EndTimeStepCalculation_PhiTest=" << endTimeStepCalculation << std::endl; - oss << "DataToCalc_PhiTest=\""; - for (int i = 0; i < testGroups.size(); i++) { - oss << testGroups.at(i).at(0)->getDataToCalculate(); - if (i < testGroups.size() - 1) - oss << " "; - else - oss << "\"" << std::endl; - } - oss << std::endl; - - std::ostringstream failMessagePhi; - failMessagePhi << "FailTests_Phi_PhiTest=\""; - std::ostringstream failMessageOOA; - failMessageOOA << "FailTests_OOA_PhiTest=\""; - for (int i = 0; i < testGroups.size(); i++) { - fillMyData(testGroups.at(i)); - for (int j = 0; j < lxForErase.size(); j++) { - if (status.at(j) == passed || status.at(j) == failed) { - oss << "PhiDiff_" << lxForErase.at(j) << "_" << dataToCalc.at(j) << "=" << phiDiff.at(j) << std::endl; - } - else - failMessagePhi << lxForErase.at(j) << "_" << dataToCalc.at(j) << " "; - } - oss << std::endl; - for (int j = 0; j < orderOfAccuracy.size(); j++) { - if (status.at(j) == passed || status.at(j) == failed) { - oss << "OrderOfAccuracy_PhiDiff_" << lx.at(2 * j) << "_" << lx.at(2 * j + 1) << "_" << dataToCalc.at(j) << "=" << orderOfAccuracy.at(j) << std::endl; - } - else - failMessageOOA << lx.at(2 * j) << "_" << lx.at(2 * j + 1) << "_" << dataToCalc.at(j) << " "; - } - oss << std::endl; - - } - std::string failPhi = failMessagePhi.str(); - if (failPhi.back() == ' ') - failPhi = failPhi.substr(0, failPhi.size() - 1); - failMessagePhi.str(std::string()); - failMessagePhi << failPhi << "\""; - oss << failMessagePhi.str() << std::endl << std::endl; - - std::string failOOA = failMessageOOA.str(); - if (failOOA.back() == ' ') - failOOA = failOOA.substr(0, failOOA.size() - 1); - failMessageOOA.str(std::string()); - failMessageOOA << failOOA << "\""; - oss << failMessageOOA.str() << std::endl << std::endl; - - return oss.str(); + std::ostringstream headName; + headName <<" Phi Test"; + makeCenterHead(headName.str()); + + oss << "StartTimeStepCalculation_PhiTest=" << startTimeStepCalculation << std::endl; + oss << "EndTimeStepCalculation_PhiTest=" << endTimeStepCalculation << std::endl; + oss << "DataToCalc_PhiTest=\""; + for (int i = 0; i < testGroups.size(); i++) { + oss << testGroups.at(i).at(0)->getDataToCalculate(); + if (i < testGroups.size() - 1) + oss << " "; + else + oss << "\"" << std::endl; + } + oss << std::endl; + + std::ostringstream failMessagePhi; + failMessagePhi << "FailTests_Phi_PhiTest=\""; + std::ostringstream failMessageOOA; + failMessageOOA << "FailTests_OOA_PhiTest=\""; + for (int i = 0; i < testGroups.size(); i++) { + fillMyData(testGroups.at(i)); + for (int j = 0; j < lxForErase.size(); j++) { + if (status.at(j) == passed || status.at(j) == failed) { + oss << "PhiDiff_" << lxForErase.at(j) << "_" << dataToCalc.at(j) << "=" << phiDiff.at(j) << std::endl; + } + else + failMessagePhi << lxForErase.at(j) << "_" << dataToCalc.at(j) << " "; + } + oss << std::endl; + for (int j = 0; j < orderOfAccuracy.size(); j++) { + if (status.at(j) == passed || status.at(j) == failed) { + oss << "OrderOfAccuracy_PhiDiff_" << lx.at(2 * j) << "_" << lx.at(2 * j + 1) << "_" << dataToCalc.at(j) << "=" << orderOfAccuracy.at(j) << std::endl; + } + else + failMessageOOA << lx.at(2 * j) << "_" << lx.at(2 * j + 1) << "_" << dataToCalc.at(j) << " "; + } + oss << std::endl; + + } + std::string failPhi = failMessagePhi.str(); + if (failPhi.back() == ' ') + failPhi = failPhi.substr(0, failPhi.size() - 1); + failMessagePhi.str(std::string()); + failMessagePhi << failPhi << "\""; + oss << failMessagePhi.str() << std::endl << std::endl; + + std::string failOOA = failMessageOOA.str(); + if (failOOA.back() == ' ') + failOOA = failOOA.substr(0, failOOA.size() - 1); + failMessageOOA.str(std::string()); + failMessageOOA << failOOA << "\""; + oss << failMessageOOA.str() << std::endl << std::endl; + + return oss.str(); } void PhiTestLogFileInformation::addTestGroup(std::vector<std::shared_ptr<PhiTest> > tests) { - testGroups.push_back(tests); + testGroups.push_back(tests); } void PhiTestLogFileInformation::fillMyData(std::vector<std::shared_ptr<PhiTest> > testGroup) { - lxForErase.resize(0); - lx.resize(0); - phiDiff.resize(0); - orderOfAccuracy.resize(0); - dataToCalc.resize(0); - status.resize(0); - for (int i = 0; i < testGroup.size(); i++) { - status.push_back(testGroup.at(i)->getTestStatus()); - status.push_back(testGroup.at(i)->getTestStatus()); - - std::vector<int> myLx = testGroup.at(i)->getLx(); - std::vector<double> myPhiDiff; - if (testGroup.at(i)->getTestStatus() == simulationCrashed || testGroup.at(i)->getTestStatus() == test_error) { - for (int i = 0; i < myLx.size(); i++) - myPhiDiff.push_back((double)0.0); - } - else - myPhiDiff = testGroup.at(i)->getPhiDiff(); - - lx.insert(lx.end(), myLx.begin(), myLx.end()); - lxForErase.insert(lxForErase.end(), myLx.begin(), myLx.end()); - phiDiff.insert(phiDiff.end(), myPhiDiff.begin(), myPhiDiff.end()); - orderOfAccuracy.push_back(testGroup.at(i)->getOrderOfAccuracy()); - dataToCalc.push_back(testGroup.at(i)->getDataToCalculate()); - dataToCalc.push_back(testGroup.at(i)->getDataToCalculate()); - - } - - for (int i = 0; i < lxForErase.size(); i++) - for (int j = i + 1; j < lxForErase.size(); j++) - if (lxForErase.at(i) == lxForErase.at(j)) - lxForErase.at(j) = -1; - - for (int i = lxForErase.size() - 1; i >= 0; i--) { - if (lxForErase.at(i) == -1) { - phiDiff.erase(phiDiff.begin() + i); - lxForErase.erase(lxForErase.begin() + i); - } - } - - + lxForErase.resize(0); + lx.resize(0); + phiDiff.resize(0); + orderOfAccuracy.resize(0); + dataToCalc.resize(0); + status.resize(0); + for (int i = 0; i < testGroup.size(); i++) { + status.push_back(testGroup.at(i)->getTestStatus()); + status.push_back(testGroup.at(i)->getTestStatus()); + + std::vector<int> myLx = testGroup.at(i)->getLx(); + std::vector<double> myPhiDiff; + if (testGroup.at(i)->getTestStatus() == simulationCrashed || testGroup.at(i)->getTestStatus() == test_error) { + for (int i = 0; i < myLx.size(); i++) + myPhiDiff.push_back((double)0.0); + } + else + myPhiDiff = testGroup.at(i)->getPhiDiff(); + + lx.insert(lx.end(), myLx.begin(), myLx.end()); + lxForErase.insert(lxForErase.end(), myLx.begin(), myLx.end()); + phiDiff.insert(phiDiff.end(), myPhiDiff.begin(), myPhiDiff.end()); + orderOfAccuracy.push_back(testGroup.at(i)->getOrderOfAccuracy()); + dataToCalc.push_back(testGroup.at(i)->getDataToCalculate()); + dataToCalc.push_back(testGroup.at(i)->getDataToCalculate()); + + } + + for (int i = 0; i < lxForErase.size(); i++) + for (int j = i + 1; j < lxForErase.size(); j++) + if (lxForErase.at(i) == lxForErase.at(j)) + lxForErase.at(j) = -1; + + for (int i = lxForErase.size() - 1; i >= 0; i--) { + if (lxForErase.at(i) == -1) { + phiDiff.erase(phiDiff.begin() + i); + lxForErase.erase(lxForErase.begin() + i); + } + } + + } PhiTestLogFileInformation::PhiTestLogFileInformation(std::shared_ptr<PhiTestParameterStruct> testPara) { - startTimeStepCalculation = testPara->startTimeStepCalculation; - endTimeStepCalculation = testPara->endTimeStepCalculation; + startTimeStepCalculation = testPara->startTimeStepCalculation; + endTimeStepCalculation = testPara->endTimeStepCalculation; } \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Tests/PhiTest/LogFileInformation/PhiTestLogFileInformation.h b/apps/gpu/tests/NumericalTests/Tests/PhiTest/LogFileInformation/PhiTestLogFileInformation.h index f92b16a19f19bfbfabdf6985baf95d09090588fa..7ba0e269c7701c302b5d6275e710601d255d7282 100644 --- a/apps/gpu/tests/NumericalTests/Tests/PhiTest/LogFileInformation/PhiTestLogFileInformation.h +++ b/apps/gpu/tests/NumericalTests/Tests/PhiTest/LogFileInformation/PhiTestLogFileInformation.h @@ -13,24 +13,24 @@ struct PhiTestParameterStruct; class PhiTestLogFileInformation : public TestLogFileInformation { public: - static std::shared_ptr<PhiTestLogFileInformation> getNewInstance(std::shared_ptr<PhiTestParameterStruct> testPara); + static std::shared_ptr<PhiTestLogFileInformation> getNewInstance(std::shared_ptr<PhiTestParameterStruct> testPara); - std::string getOutput(); - void addTestGroup(std::vector<std::shared_ptr<PhiTest> > tests); + std::string getOutput(); + void addTestGroup(std::vector<std::shared_ptr<PhiTest> > tests); private: - PhiTestLogFileInformation() {}; - PhiTestLogFileInformation(std::shared_ptr<PhiTestParameterStruct> testPara); - - void fillMyData(std::vector<std::shared_ptr<PhiTest> > testGroup); - - std::vector<std::vector<std::shared_ptr<PhiTest> > > testGroups; - unsigned int startTimeStepCalculation, endTimeStepCalculation; - std::vector<int> lx; - std::vector<int> lxForErase; - std::vector<double> phiDiff; - std::vector<double> orderOfAccuracy; - std::vector<std::string> dataToCalc; - std::vector<TestStatus> status; + PhiTestLogFileInformation() {}; + PhiTestLogFileInformation(std::shared_ptr<PhiTestParameterStruct> testPara); + + void fillMyData(std::vector<std::shared_ptr<PhiTest> > testGroup); + + std::vector<std::vector<std::shared_ptr<PhiTest> > > testGroups; + unsigned int startTimeStepCalculation, endTimeStepCalculation; + std::vector<int> lx; + std::vector<int> lxForErase; + std::vector<double> phiDiff; + std::vector<double> orderOfAccuracy; + std::vector<std::string> dataToCalc; + std::vector<TestStatus> status; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Tests/PhiTest/PhiTest.cpp b/apps/gpu/tests/NumericalTests/Tests/PhiTest/PhiTest.cpp index a8a4a4df2e4d04564dbeb2a881cebd95ce6a1a9f..43414be681caa56a373d453b32924014c07d9064 100644 --- a/apps/gpu/tests/NumericalTests/Tests/PhiTest/PhiTest.cpp +++ b/apps/gpu/tests/NumericalTests/Tests/PhiTest/PhiTest.cpp @@ -12,152 +12,152 @@ std::shared_ptr<PhiTest> PhiTest::getNewInstance(std::shared_ptr<ColorConsoleOutput> colorOutput, double viscosity, std::shared_ptr<PhiTestParameterStruct> testPara, std::string dataToCalculate) { - return std::shared_ptr<PhiTest>(new PhiTest(colorOutput, viscosity, testPara, dataToCalculate)); + return std::shared_ptr<PhiTest>(new PhiTest(colorOutput, viscosity, testPara, dataToCalculate)); } void PhiTest::evaluate() { - for (uint i = 0; i < postProStrategies.size(); i++) - phiDiff.push_back(postProStrategies.at(i)->getPhiDiff(dataToCalculate)); - - orderOfAccuracy = calcOrderOfAccuracy(phiDiff); - testStatus = checkTestPassed(orderOfAccuracy); - - makeConsoleOutput(); + for (uint i = 0; i < postProStrategies.size(); i++) + phiDiff.push_back(postProStrategies.at(i)->getPhiDiff(dataToCalculate)); + + orderOfAccuracy = calcOrderOfAccuracy(phiDiff); + testStatus = checkTestPassed(orderOfAccuracy); + + makeConsoleOutput(); } void PhiTest::update() { - TestImp::update(); + TestImp::update(); } void PhiTest::addSimulation(std::shared_ptr<NumericalTestSimulation> sim, std::shared_ptr<SimulationInfo> simInfo, std::shared_ptr<PhiTestPostProcessingStrategy> postProStrategy) { - TestImp::addSimulation(sim, simInfo, postProStrategy); - postProStrategies.push_back(postProStrategy); - lx.push_back(postProStrategy->getNumberOfXNodes()); + TestImp::addSimulation(sim, simInfo, postProStrategy); + postProStrategies.push_back(postProStrategy); + lx.push_back(postProStrategy->getNumberOfXNodes()); } std::string PhiTest::getDataToCalculate() { - return dataToCalculate; + return dataToCalculate; } std::vector<int> PhiTest::getLx() { - std::vector<int> lxINT; - for (uint i = 0; i < lx.size(); i++) - lxINT.push_back((int)lx.at(i)); - return lxINT; + std::vector<int> lxINT; + for (uint i = 0; i < lx.size(); i++) + lxINT.push_back((int)lx.at(i)); + return lxINT; } std::vector<double> PhiTest::getPhiDiff() { - return phiDiff; + return phiDiff; } double PhiTest::getOrderOfAccuracy() { - return orderOfAccuracy; + return orderOfAccuracy; } PhiTest::PhiTest(std::shared_ptr<ColorConsoleOutput> colorOutput, double viscosity, std::shared_ptr<PhiTestParameterStruct> testPara, std::string dataToCalculate) - : TestImp(colorOutput), dataToCalculate(dataToCalculate) + : TestImp(colorOutput), dataToCalculate(dataToCalculate) { - minOrderOfAccuracy = testPara->minOrderOfAccuracy; - startStepCalculation = testPara->startTimeStepCalculation; - endStepCalculation = testPara->endTimeStepCalculation; + minOrderOfAccuracy = testPara->minOrderOfAccuracy; + startStepCalculation = testPara->startTimeStepCalculation; + endStepCalculation = testPara->endTimeStepCalculation; - lx.resize(0); - phiDiff.resize(0); + lx.resize(0); + phiDiff.resize(0); } double PhiTest::calcOrderOfAccuracy(std::vector<double> data) { - double ooa = std::log(data.at(0) / data.at(1)) / std::log(lx.at(1) / lx.at(0)); - - return ooa; + double ooa = std::log(data.at(0) / data.at(1)) / std::log(lx.at(1) / lx.at(0)); + + return ooa; } TestStatus PhiTest::checkTestPassed(double orderOfAccuracy) { - if (orderOfAccuracy > minOrderOfAccuracy) - return passed; - else - return failed; + if (orderOfAccuracy > minOrderOfAccuracy) + return passed; + else + return failed; } std::vector<std::string> PhiTest::buildTestOutput() { - std::vector<std::string> output = buildBasicTestOutput(); - std::ostringstream oss; - - for (uint i = 0; i < phiDiff.size(); i++) { - oss << "PhiDiff" << simInfos.at(i)->getLx() << ": " << phiDiff.at(i); - output.push_back(oss.str()); - oss.str(std::string()); - } - oss << "OrderOfAccuracy: " << orderOfAccuracy; - output.push_back(oss.str()); - oss.str(std::string()); - - return output; + std::vector<std::string> output = buildBasicTestOutput(); + std::ostringstream oss; + + for (uint i = 0; i < phiDiff.size(); i++) { + oss << "PhiDiff" << simInfos.at(i)->getLx() << ": " << phiDiff.at(i); + output.push_back(oss.str()); + oss.str(std::string()); + } + oss << "OrderOfAccuracy: " << orderOfAccuracy; + output.push_back(oss.str()); + oss.str(std::string()); + + return output; } std::vector<std::string> PhiTest::buildBasicTestOutput() { - std::vector<std::string> output; - std::ostringstream oss; + std::vector<std::string> output; + std::ostringstream oss; - output.push_back("Phi Test"); + output.push_back("Phi Test"); - oss << "Kernel: " << simInfos.at(0)->getKernelName(); - output.push_back(oss.str()); - oss.str(std::string()); + oss << "Kernel: " << simInfos.at(0)->getKernelName(); + output.push_back(oss.str()); + oss.str(std::string()); - oss << "Viscosity: " << simInfos.at(0)->getViscosity(); - output.push_back(oss.str()); - oss.str(std::string()); + oss << "Viscosity: " << simInfos.at(0)->getViscosity(); + output.push_back(oss.str()); + oss.str(std::string()); - output.push_back(oss.str()); + output.push_back(oss.str()); - oss << simInfos.at(0)->getSimulationName(); - output.push_back(oss.str()); - oss.str(std::string()); + oss << simInfos.at(0)->getSimulationName(); + output.push_back(oss.str()); + oss.str(std::string()); - for (uint i = 0; i < simInfos.size(); i++) { - oss << "L: " << std::setfill(' ') << std::right << std::setw(4) << simInfos.at(i)->getLx() << simInfos.at(i)->getSimulationParameterString(); - output.push_back(oss.str()); - oss.str(std::string()); - } + for (uint i = 0; i < simInfos.size(); i++) { + oss << "L: " << std::setfill(' ') << std::right << std::setw(4) << simInfos.at(i)->getLx() << simInfos.at(i)->getSimulationParameterString(); + output.push_back(oss.str()); + oss.str(std::string()); + } - output.push_back(oss.str()); + output.push_back(oss.str()); - oss << "DataToCalculate: " << dataToCalculate; - output.push_back(oss.str()); - oss.str(std::string()); + oss << "DataToCalculate: " << dataToCalculate; + output.push_back(oss.str()); + oss.str(std::string()); - oss << "StartTimeStep: " << startStepCalculation; - output.push_back(oss.str()); - oss.str(std::string()); + oss << "StartTimeStep: " << startStepCalculation; + output.push_back(oss.str()); + oss.str(std::string()); - oss << "EndTimeStep: " << endStepCalculation; - output.push_back(oss.str()); - oss.str(std::string()); + oss << "EndTimeStep: " << endStepCalculation; + output.push_back(oss.str()); + oss.str(std::string()); - output.push_back(oss.str()); + output.push_back(oss.str()); - return output; + return output; } std::vector<std::string> PhiTest::buildErrorTestOutput() { - std::vector<std::string> output = buildBasicTestOutput(); - std::ostringstream oss; + std::vector<std::string> output = buildBasicTestOutput(); + std::ostringstream oss; - oss << "Error Message: "; - output.push_back(oss.str()); - oss.str(std::string()); + oss << "Error Message: "; + output.push_back(oss.str()); + oss.str(std::string()); - return output; + return output; } diff --git a/apps/gpu/tests/NumericalTests/Tests/PhiTest/PhiTest.h b/apps/gpu/tests/NumericalTests/Tests/PhiTest/PhiTest.h index 4bf1c02f85e35b9cf1766642b6a0e9b58e6b4d07..513bfd693806cc8b84917e6e16080617ed74a3ba 100644 --- a/apps/gpu/tests/NumericalTests/Tests/PhiTest/PhiTest.h +++ b/apps/gpu/tests/NumericalTests/Tests/PhiTest/PhiTest.h @@ -14,35 +14,35 @@ struct PhiTestParameterStruct; class PhiTest : public TestImp { public: - static std::shared_ptr<PhiTest> getNewInstance(std::shared_ptr<ColorConsoleOutput> colorOutput, double viscosity, std::shared_ptr<PhiTestParameterStruct> testPara, std::string dataToCalculate); - - void update(); - void addSimulation(std::shared_ptr<NumericalTestSimulation> sim, std::shared_ptr<SimulationInfo> simInfo, std::shared_ptr<PhiTestPostProcessingStrategy> postProStrategy); - void evaluate(); + static std::shared_ptr<PhiTest> getNewInstance(std::shared_ptr<ColorConsoleOutput> colorOutput, double viscosity, std::shared_ptr<PhiTestParameterStruct> testPara, std::string dataToCalculate); + + void update(); + void addSimulation(std::shared_ptr<NumericalTestSimulation> sim, std::shared_ptr<SimulationInfo> simInfo, std::shared_ptr<PhiTestPostProcessingStrategy> postProStrategy); + void evaluate(); - std::string getDataToCalculate(); - std::vector<int> getLx(); - std::vector<double> getPhiDiff(); - double getOrderOfAccuracy(); + std::string getDataToCalculate(); + std::vector<int> getLx(); + std::vector<double> getPhiDiff(); + double getOrderOfAccuracy(); private: - PhiTest(std::shared_ptr<ColorConsoleOutput> colorOutput, double viscosity, std::shared_ptr<PhiTestParameterStruct> testPara, std::string dataToCalculate); - double calcOrderOfAccuracy(std::vector<double> data); - TestStatus checkTestPassed(double orderOfAccuracy); - std::vector<std::string> buildTestOutput(); - std::vector<std::string> buildBasicTestOutput(); - std::vector<std::string> buildErrorTestOutput(); - - unsigned int startStepCalculation, endStepCalculation; - std::vector<double> lx; - std::vector<double> phiDiff; - double orderOfAccuracy; - double minOrderOfAccuracy; - std::string dataToCalculate; - - std::vector<std::shared_ptr<PhiTestPostProcessingStrategy> > postProStrategies; + PhiTest(std::shared_ptr<ColorConsoleOutput> colorOutput, double viscosity, std::shared_ptr<PhiTestParameterStruct> testPara, std::string dataToCalculate); + double calcOrderOfAccuracy(std::vector<double> data); + TestStatus checkTestPassed(double orderOfAccuracy); + std::vector<std::string> buildTestOutput(); + std::vector<std::string> buildBasicTestOutput(); + std::vector<std::string> buildErrorTestOutput(); + + unsigned int startStepCalculation, endStepCalculation; + std::vector<double> lx; + std::vector<double> phiDiff; + double orderOfAccuracy; + double minOrderOfAccuracy; + std::string dataToCalculate; + + std::vector<std::shared_ptr<PhiTestPostProcessingStrategy> > postProStrategies; }; #endif diff --git a/apps/gpu/tests/NumericalTests/Tests/PhiTest/PhiTestParameterStruct.h b/apps/gpu/tests/NumericalTests/Tests/PhiTest/PhiTestParameterStruct.h index d46b0d6ab41ef5e69b85290cdfd00a8cee956f34..93b71bccbe368719f1760b19bc74d7513fc27ea5 100644 --- a/apps/gpu/tests/NumericalTests/Tests/PhiTest/PhiTestParameterStruct.h +++ b/apps/gpu/tests/NumericalTests/Tests/PhiTest/PhiTestParameterStruct.h @@ -7,10 +7,10 @@ struct PhiTestParameterStruct { - std::shared_ptr<BasicTestParameterStruct> basicTestParameter; + std::shared_ptr<BasicTestParameterStruct> basicTestParameter; - double minOrderOfAccuracy; - unsigned int startTimeStepCalculation; - unsigned int endTimeStepCalculation; + double minOrderOfAccuracy; + unsigned int startTimeStepCalculation; + unsigned int endTimeStepCalculation; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Tests/PhiTest/PostProcessingStrategy/PhiTestPostProcessingStrategy.cpp b/apps/gpu/tests/NumericalTests/Tests/PhiTest/PostProcessingStrategy/PhiTestPostProcessingStrategy.cpp index 53cee6c1113cfc8c313ec73bbac212015f2c1ccc..39d935d419bd13365b355084c2f4dfe76a643b5f 100644 --- a/apps/gpu/tests/NumericalTests/Tests/PhiTest/PostProcessingStrategy/PhiTestPostProcessingStrategy.cpp +++ b/apps/gpu/tests/NumericalTests/Tests/PhiTest/PostProcessingStrategy/PhiTestPostProcessingStrategy.cpp @@ -8,68 +8,68 @@ std::shared_ptr<PhiTestPostProcessingStrategy> PhiTestPostProcessingStrategy::getNewInstance(std::shared_ptr<SimulationResults> simResult, std::shared_ptr<AnalyticalResults> analyticalResult, std::shared_ptr<PhiTestParameterStruct> testPara, std::vector<std::string> dataToCalcTests) { - return std::shared_ptr<PhiTestPostProcessingStrategy>(new PhiTestPostProcessingStrategy(simResult, analyticalResult, testPara, dataToCalcTests)); + return std::shared_ptr<PhiTestPostProcessingStrategy>(new PhiTestPostProcessingStrategy(simResult, analyticalResult, testPara, dataToCalcTests)); } PhiTestPostProcessingStrategy::PhiTestPostProcessingStrategy(std::shared_ptr<SimulationResults> simResult, std::shared_ptr<AnalyticalResults> analyticalResult, std::shared_ptr<PhiTestParameterStruct> testPara, std::vector<std::string> dataToCalcTests) - : PostProcessingStrategyImp(simResult), analyticalResult(analyticalResult), dataToCalculate(dataToCalcTests) + : PostProcessingStrategyImp(simResult), analyticalResult(analyticalResult), dataToCalculate(dataToCalcTests) { - startTimeStepCalculation = testPara->startTimeStepCalculation; - endTimeStepCalculation = testPara->endTimeStepCalculation; - phiDiff.resize(dataToCalculate.size()); + startTimeStepCalculation = testPara->startTimeStepCalculation; + endTimeStepCalculation = testPara->endTimeStepCalculation; + phiDiff.resize(dataToCalculate.size()); - isEvaluated = false; - fftCalculator = FFTCalculator::getInstance(); + isEvaluated = false; + fftCalculator = FFTCalculator::getInstance(); } std::vector<std::vector<double> > PhiTestPostProcessingStrategy::reduceDataToTimeSteps(std::vector<std::vector<double> > data) { - std::vector<int> timeStepsToDelete; + std::vector<int> timeStepsToDelete; - for (int i = simResult->getTimeSteps().size() - 1; i >= 0; i--) { - if (simResult->getTimeSteps().at(i) > endTimeStepCalculation) - timeStepsToDelete.push_back(i); - if (simResult->getTimeSteps().at(i) < startTimeStepCalculation) - timeStepsToDelete.push_back(i); - } + for (int i = simResult->getTimeSteps().size() - 1; i >= 0; i--) { + if (simResult->getTimeSteps().at(i) > endTimeStepCalculation) + timeStepsToDelete.push_back(i); + if (simResult->getTimeSteps().at(i) < startTimeStepCalculation) + timeStepsToDelete.push_back(i); + } - for (int i = 0; i < timeStepsToDelete.size(); i++) - data.erase(data.begin() + timeStepsToDelete.at(i)); + for (int i = 0; i < timeStepsToDelete.size(); i++) + data.erase(data.begin() + timeStepsToDelete.at(i)); - return data; + return data; } void PhiTestPostProcessingStrategy::evaluate() { - if (!isEvaluated) { - bool transpose = false; - int xNodes = simResult->getNumberOfXNodes(); - int zNodes = simResult->getNumberOfZNodes(); - int timeStepLength = simResult->getTimeStepLength(); - for (int i = 0; i < dataToCalculate.size(); i++) { - std::vector<std::vector<double>> basicData; - if (dataToCalculate.at(i) == "Vx") - basicData = simResult->getVx(); - if (dataToCalculate.at(i) == "Vy") - basicData = simResult->getVy(); - if (dataToCalculate.at(i) == "Vz") - basicData = simResult->getVz(); - if (dataToCalculate.at(i) == "Press") - basicData = simResult->getPress(); - if (dataToCalculate.at(i) == "Rho") - basicData = simResult->getRho(); + if (!isEvaluated) { + bool transpose = false; + int xNodes = simResult->getNumberOfXNodes(); + int zNodes = simResult->getNumberOfZNodes(); + int timeStepLength = simResult->getTimeStepLength(); + for (int i = 0; i < dataToCalculate.size(); i++) { + std::vector<std::vector<double>> basicData; + if (dataToCalculate.at(i) == "Vx") + basicData = simResult->getVx(); + if (dataToCalculate.at(i) == "Vy") + basicData = simResult->getVy(); + if (dataToCalculate.at(i) == "Vz") + basicData = simResult->getVz(); + if (dataToCalculate.at(i) == "Press") + basicData = simResult->getPress(); + if (dataToCalculate.at(i) == "Rho") + basicData = simResult->getRho(); - std::vector<std::vector<double>> dataForCalculation; - dataForCalculation = reduceDataToTimeSteps(basicData); - phiDiff.at(i) = fftCalculator->calcPhiDiff(dataForCalculation, transpose, xNodes, zNodes, timeStepLength); - } - isEvaluated = true; - } + std::vector<std::vector<double>> dataForCalculation; + dataForCalculation = reduceDataToTimeSteps(basicData); + phiDiff.at(i) = fftCalculator->calcPhiDiff(dataForCalculation, transpose, xNodes, zNodes, timeStepLength); + } + isEvaluated = true; + } } double PhiTestPostProcessingStrategy::getPhiDiff(std::string dataToCalc) { - for (int i = 0; i < dataToCalculate.size(); i++) - if(dataToCalculate.at(i) == dataToCalc) - return phiDiff.at(i); + for (int i = 0; i < dataToCalculate.size(); i++) + if(dataToCalculate.at(i) == dataToCalc) + return phiDiff.at(i); } diff --git a/apps/gpu/tests/NumericalTests/Tests/PhiTest/PostProcessingStrategy/PhiTestPostProcessingStrategy.h b/apps/gpu/tests/NumericalTests/Tests/PhiTest/PostProcessingStrategy/PhiTestPostProcessingStrategy.h index 1f8ab77135dd42a8724874a73d2d82f2567fa23a..e0d5596ab870756437ecd6ad4ee88f005db56a4d 100644 --- a/apps/gpu/tests/NumericalTests/Tests/PhiTest/PostProcessingStrategy/PhiTestPostProcessingStrategy.h +++ b/apps/gpu/tests/NumericalTests/Tests/PhiTest/PostProcessingStrategy/PhiTestPostProcessingStrategy.h @@ -12,22 +12,22 @@ struct PhiTestParameterStruct; class PhiTestPostProcessingStrategy : public PostProcessingStrategyImp { public: - static std::shared_ptr<PhiTestPostProcessingStrategy> getNewInstance(std::shared_ptr<SimulationResults> simResult, std::shared_ptr<AnalyticalResults> analyticalResult, std::shared_ptr<PhiTestParameterStruct> testPara, std::vector<std::string> dataToCalcTests); - void evaluate(); + static std::shared_ptr<PhiTestPostProcessingStrategy> getNewInstance(std::shared_ptr<SimulationResults> simResult, std::shared_ptr<AnalyticalResults> analyticalResult, std::shared_ptr<PhiTestParameterStruct> testPara, std::vector<std::string> dataToCalcTests); + void evaluate(); - double getPhiDiff(std::string dataToCalc); + double getPhiDiff(std::string dataToCalc); private: - PhiTestPostProcessingStrategy(std::shared_ptr<SimulationResults> simResult, std::shared_ptr<AnalyticalResults> analyticalResult, std::shared_ptr<PhiTestParameterStruct> testPara, std::vector<std::string> dataToCalcTests); - - std::vector<std::vector<double> > reduceDataToTimeSteps(std::vector<std::vector<double> > data); + PhiTestPostProcessingStrategy(std::shared_ptr<SimulationResults> simResult, std::shared_ptr<AnalyticalResults> analyticalResult, std::shared_ptr<PhiTestParameterStruct> testPara, std::vector<std::string> dataToCalcTests); + + std::vector<std::vector<double> > reduceDataToTimeSteps(std::vector<std::vector<double> > data); - std::shared_ptr<AnalyticalResults> analyticalResult; - std::vector<std::string> dataToCalculate; - std::shared_ptr<FFTCalculator> fftCalculator; - unsigned int startTimeStepCalculation; - unsigned int endTimeStepCalculation; - std::vector<double> phiDiff; - bool isEvaluated; + std::shared_ptr<AnalyticalResults> analyticalResult; + std::vector<std::string> dataToCalculate; + std::shared_ptr<FFTCalculator> fftCalculator; + unsigned int startTimeStepCalculation; + unsigned int endTimeStepCalculation; + std::vector<double> phiDiff; + bool isEvaluated; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Utilities/Calculator/AlmostEquals.h b/apps/gpu/tests/NumericalTests/Utilities/Calculator/AlmostEquals.h index fd467aaa9ec710d909d4537aba3da7d9921bb59a..4a942afe7f8db1629d7184de7fff5e3c55f806be 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/Calculator/AlmostEquals.h +++ b/apps/gpu/tests/NumericalTests/Utilities/Calculator/AlmostEquals.h @@ -60,21 +60,21 @@ template <size_t size> class TypeWithSize { public: - // This prevents the user from using TypeWithSize<N> with incorrect - // values of N. - typedef void UInt; + // This prevents the user from using TypeWithSize<N> with incorrect + // values of N. + typedef void UInt; }; // The specialization for size 4. template <> class TypeWithSize<4> { public: - // unsigned int has size 4 in both gcc and MSVC. - // - // As base/basictypes.h doesn't compile on Windows, we cannot use - // uint32, uint64, and etc here. - typedef int Int; - typedef unsigned int UInt; + // unsigned int has size 4 in both gcc and MSVC. + // + // As base/basictypes.h doesn't compile on Windows, we cannot use + // uint32, uint64, and etc here. + typedef int Int; + typedef unsigned int UInt; }; // The specialization for size 8. @@ -82,11 +82,11 @@ template <> class TypeWithSize<8> { public: #if _MSC_VER - typedef __int64 Int; - typedef unsigned __int64 UInt; + typedef __int64 Int; + typedef unsigned __int64 UInt; #else - typedef long long Int; // NOLINT - typedef unsigned long long UInt; // NOLINT + typedef long long Int; // NOLINT + typedef unsigned long long UInt; // NOLINT #endif // _MSC_VER }; @@ -122,152 +122,152 @@ public: template <typename RawType> class FloatingPoint { public: - // Defines the unsigned integer type that has the same size as the - // floating point number. - typedef typename TypeWithSize<sizeof(RawType)>::UInt Bits; - - // Constants. - - // # of bits in a number. - static const size_t kBitCount = 8 * sizeof(RawType); - - // # of fraction bits in a number. - static const size_t kFractionBitCount = - std::numeric_limits<RawType>::digits - 1; - - // # of exponent bits in a number. - static const size_t kExponentBitCount = kBitCount - 1 - kFractionBitCount; - - // The mask for the sign bit. - static const Bits kSignBitMask = static_cast<Bits>(1) << (kBitCount - 1); - - // The mask for the fraction bits. - static const Bits kFractionBitMask = - ~static_cast<Bits>(0) >> (kExponentBitCount + 1); - - // The mask for the exponent bits. - static const Bits kExponentBitMask = ~(kSignBitMask | kFractionBitMask); - - // How many ULP's (Units in the Last Place) we want to tolerate when - // comparing two numbers. The larger the value, the more error we - // allow. A 0 value means that two numbers must be exactly the same - // to be considered equal. - // - // The maximum error of a single floating-point operation is 0.5 - // units in the last place. On Intel CPU's, all floating-point - // calculations are done with 80-bit precision, while double has 64 - // bits. Therefore, 4 should be enough for ordinary use. - // - // See the following article for more details on ULP: - // http://randomascii.wordpress.com/2012/02/25/comparing-floating-point-numbers-2012-edition/ - static const size_t kMaxUlps = 4; - - // Constructs a FloatingPoint from a raw floating-point number. - // - // On an Intel CPU, passing a non-normalized NAN (Not a Number) - // around may change its bits, although the new value is guaranteed - // to be also a NAN. Therefore, don't expect this constructor to - // preserve the bits in x when x is a NAN. - explicit FloatingPoint(const RawType& x) { u_.value_ = x; } - - // Static methods - - // Reinterprets a bit pattern as a floating-point number. - // - // This function is needed to test the AlmostEquals() method. - static RawType ReinterpretBits(const Bits bits) { - FloatingPoint fp(0); - fp.u_.bits_ = bits; - return fp.u_.value_; - } - - // Returns the floating-point number that represent positive infinity. - static RawType Infinity() { - return ReinterpretBits(kExponentBitMask); - } - - // Returns the maximum representable finite floating-point number. - static RawType Max(); - - // Non-static methods - - // Returns the bits that represents this number. - const Bits &bits() const { return u_.bits_; } - - // Returns the exponent bits of this number. - Bits exponent_bits() const { return kExponentBitMask & u_.bits_; } - - // Returns the fraction bits of this number. - Bits fraction_bits() const { return kFractionBitMask & u_.bits_; } - - // Returns the sign bit of this number. - Bits sign_bit() const { return kSignBitMask & u_.bits_; } - - // Returns true iff this is NAN (not a number). - bool is_nan() const { - // It's a NAN if the exponent bits are all ones and the fraction - // bits are not entirely zeros. - return (exponent_bits() == kExponentBitMask) && (fraction_bits() != 0); - } - - // Returns true iff this number is at most kMaxUlps ULP's away from - // rhs. In particular, this function: - // - // - returns false if either number is (or both are) NAN. - // - treats really large numbers as almost equal to infinity. - // - thinks +0.0 and -0.0 are 0 DLP's apart. - bool AlmostEquals(const FloatingPoint& rhs) const { - // The IEEE standard says that any comparison operation involving - // a NAN must return false. - if (is_nan() || rhs.is_nan()) return false; - - return DistanceBetweenSignAndMagnitudeNumbers(u_.bits_, rhs.u_.bits_) - <= kMaxUlps; - } + // Defines the unsigned integer type that has the same size as the + // floating point number. + typedef typename TypeWithSize<sizeof(RawType)>::UInt Bits; + + // Constants. + + // # of bits in a number. + static const size_t kBitCount = 8 * sizeof(RawType); + + // # of fraction bits in a number. + static const size_t kFractionBitCount = + std::numeric_limits<RawType>::digits - 1; + + // # of exponent bits in a number. + static const size_t kExponentBitCount = kBitCount - 1 - kFractionBitCount; + + // The mask for the sign bit. + static const Bits kSignBitMask = static_cast<Bits>(1) << (kBitCount - 1); + + // The mask for the fraction bits. + static const Bits kFractionBitMask = + ~static_cast<Bits>(0) >> (kExponentBitCount + 1); + + // The mask for the exponent bits. + static const Bits kExponentBitMask = ~(kSignBitMask | kFractionBitMask); + + // How many ULP's (Units in the Last Place) we want to tolerate when + // comparing two numbers. The larger the value, the more error we + // allow. A 0 value means that two numbers must be exactly the same + // to be considered equal. + // + // The maximum error of a single floating-point operation is 0.5 + // units in the last place. On Intel CPU's, all floating-point + // calculations are done with 80-bit precision, while double has 64 + // bits. Therefore, 4 should be enough for ordinary use. + // + // See the following article for more details on ULP: + // http://randomascii.wordpress.com/2012/02/25/comparing-floating-point-numbers-2012-edition/ + static const size_t kMaxUlps = 4; + + // Constructs a FloatingPoint from a raw floating-point number. + // + // On an Intel CPU, passing a non-normalized NAN (Not a Number) + // around may change its bits, although the new value is guaranteed + // to be also a NAN. Therefore, don't expect this constructor to + // preserve the bits in x when x is a NAN. + explicit FloatingPoint(const RawType& x) { u_.value_ = x; } + + // Static methods + + // Reinterprets a bit pattern as a floating-point number. + // + // This function is needed to test the AlmostEquals() method. + static RawType ReinterpretBits(const Bits bits) { + FloatingPoint fp(0); + fp.u_.bits_ = bits; + return fp.u_.value_; + } + + // Returns the floating-point number that represent positive infinity. + static RawType Infinity() { + return ReinterpretBits(kExponentBitMask); + } + + // Returns the maximum representable finite floating-point number. + static RawType Max(); + + // Non-static methods + + // Returns the bits that represents this number. + const Bits &bits() const { return u_.bits_; } + + // Returns the exponent bits of this number. + Bits exponent_bits() const { return kExponentBitMask & u_.bits_; } + + // Returns the fraction bits of this number. + Bits fraction_bits() const { return kFractionBitMask & u_.bits_; } + + // Returns the sign bit of this number. + Bits sign_bit() const { return kSignBitMask & u_.bits_; } + + // Returns true iff this is NAN (not a number). + bool is_nan() const { + // It's a NAN if the exponent bits are all ones and the fraction + // bits are not entirely zeros. + return (exponent_bits() == kExponentBitMask) && (fraction_bits() != 0); + } + + // Returns true iff this number is at most kMaxUlps ULP's away from + // rhs. In particular, this function: + // + // - returns false if either number is (or both are) NAN. + // - treats really large numbers as almost equal to infinity. + // - thinks +0.0 and -0.0 are 0 DLP's apart. + bool AlmostEquals(const FloatingPoint& rhs) const { + // The IEEE standard says that any comparison operation involving + // a NAN must return false. + if (is_nan() || rhs.is_nan()) return false; + + return DistanceBetweenSignAndMagnitudeNumbers(u_.bits_, rhs.u_.bits_) + <= kMaxUlps; + } private: - // The data type used to store the actual floating-point number. - union FloatingPointUnion { - RawType value_; // The raw floating-point number. - Bits bits_; // The bits that represent the number. - }; - - // Converts an integer from the sign-and-magnitude representation to - // the biased representation. More precisely, let N be 2 to the - // power of (kBitCount - 1), an integer x is represented by the - // unsigned number x + N. - // - // For instance, - // - // -N + 1 (the most negative number representable using - // sign-and-magnitude) is represented by 1; - // 0 is represented by N; and - // N - 1 (the biggest number representable using - // sign-and-magnitude) is represented by 2N - 1. - // - // Read http://en.wikipedia.org/wiki/Signed_number_representations - // for more details on signed number representations. - static Bits SignAndMagnitudeToBiased(const Bits &sam) { - if (kSignBitMask & sam) { - // sam represents a negative number. - return ~sam + 1; - } - else { - // sam represents a positive number. - return kSignBitMask | sam; - } - } - - // Given two numbers in the sign-and-magnitude representation, - // returns the distance between them as an unsigned number. - static Bits DistanceBetweenSignAndMagnitudeNumbers(const Bits &sam1, - const Bits &sam2) { - const Bits biased1 = SignAndMagnitudeToBiased(sam1); - const Bits biased2 = SignAndMagnitudeToBiased(sam2); - return (biased1 >= biased2) ? (biased1 - biased2) : (biased2 - biased1); - } - - FloatingPointUnion u_; + // The data type used to store the actual floating-point number. + union FloatingPointUnion { + RawType value_; // The raw floating-point number. + Bits bits_; // The bits that represent the number. + }; + + // Converts an integer from the sign-and-magnitude representation to + // the biased representation. More precisely, let N be 2 to the + // power of (kBitCount - 1), an integer x is represented by the + // unsigned number x + N. + // + // For instance, + // + // -N + 1 (the most negative number representable using + // sign-and-magnitude) is represented by 1; + // 0 is represented by N; and + // N - 1 (the biggest number representable using + // sign-and-magnitude) is represented by 2N - 1. + // + // Read http://en.wikipedia.org/wiki/Signed_number_representations + // for more details on signed number representations. + static Bits SignAndMagnitudeToBiased(const Bits &sam) { + if (kSignBitMask & sam) { + // sam represents a negative number. + return ~sam + 1; + } + else { + // sam represents a positive number. + return kSignBitMask | sam; + } + } + + // Given two numbers in the sign-and-magnitude representation, + // returns the distance between them as an unsigned number. + static Bits DistanceBetweenSignAndMagnitudeNumbers(const Bits &sam1, + const Bits &sam2) { + const Bits biased1 = SignAndMagnitudeToBiased(sam1); + const Bits biased2 = SignAndMagnitudeToBiased(sam2); + return (biased1 >= biased2) ? (biased1 - biased2) : (biased2 - biased1); + } + + FloatingPointUnion u_; }; // We cannot use std::numeric_limits<T>::max() as it clashes with the max() @@ -280,8 +280,8 @@ inline double FloatingPoint<double>::Max() { return DBL_MAX; } template <typename T> bool AlmostEquals(T first, T second) { - FloatingPoint<T> firstAsFloatingPoint(first); - FloatingPoint<T> secondAsFloatingPoint(second); + FloatingPoint<T> firstAsFloatingPoint(first); + FloatingPoint<T> secondAsFloatingPoint(second); - return firstAsFloatingPoint.AlmostEquals(secondAsFloatingPoint); + return firstAsFloatingPoint.AlmostEquals(secondAsFloatingPoint); } \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Utilities/Calculator/FFTCalculator/FFTCalculator.h b/apps/gpu/tests/NumericalTests/Utilities/Calculator/FFTCalculator/FFTCalculator.h index 7af2896f2d9ac2f98e29916db37fcd4e45b8e4cd..25e8119c54f2173a17838413b873c2a58c0f1415 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/Calculator/FFTCalculator/FFTCalculator.h +++ b/apps/gpu/tests/NumericalTests/Utilities/Calculator/FFTCalculator/FFTCalculator.h @@ -13,34 +13,34 @@ class PhiAndNuTest; class FFTCalculator { public: - static std::shared_ptr<FFTCalculator> getInstance(); - - double calcNy(std::vector<std::vector<double> > data, bool transposeData, int lx, int lz, int timeStepLength); - double calcPhiDiff(std::vector<std::vector<double> > data, bool transposeData, int lx, int lz, int timeStepLength); + static std::shared_ptr<FFTCalculator> getInstance(); + + double calcNy(std::vector<std::vector<double> > data, bool transposeData, int lx, int lz, int timeStepLength); + double calcPhiDiff(std::vector<std::vector<double> > data, bool transposeData, int lx, int lz, int timeStepLength); - double calcAmplitudeForTimeStep(std::vector<double> data, bool transposeData, int lx, int lz); + double calcAmplitudeForTimeStep(std::vector<double> data, bool transposeData, int lx, int lz); private: - FFTCalculator(); - void init(); - double calcNy(); - double calcPhiDiff(); - std::vector<double> calcPhiForAllSteps(); - std::vector<double> calcLinReg(std::vector<double> y); - std::vector<double> calcLogAmplitudeForAllSteps(); - std::vector<double> calcAmplitudeForAllSteps(); - void calcFFT2D(unsigned int step); - std::vector<std::vector<double> > transpose(std::vector<std::vector<double> >); - void initDataForFFT(fftw_complex* input, unsigned int step); - void setFFTResults(fftw_complex* result, unsigned int step); + FFTCalculator(); + void init(); + double calcNy(); + double calcPhiDiff(); + std::vector<double> calcPhiForAllSteps(); + std::vector<double> calcLinReg(std::vector<double> y); + std::vector<double> calcLogAmplitudeForAllSteps(); + std::vector<double> calcAmplitudeForAllSteps(); + void calcFFT2D(unsigned int step); + std::vector<std::vector<double> > transpose(std::vector<std::vector<double> >); + void initDataForFFT(fftw_complex* input, unsigned int step); + void setFFTResults(fftw_complex* result, unsigned int step); - std::vector<std::vector<double> > data; - std::vector<std::vector<double> > fftResultsIm; - std::vector<std::vector<double> > fftResultsRe; - - bool fftCalculated; - bool transposeData; - double lx, lz; - double timeStepLength; + std::vector<std::vector<double> > data; + std::vector<std::vector<double> > fftResultsIm; + std::vector<std::vector<double> > fftResultsRe; + + bool fftCalculated; + bool transposeData; + double lx, lz; + double timeStepLength; }; #endif diff --git a/apps/gpu/tests/NumericalTests/Utilities/Calculator/L2NormCalculator/L2CalculatorNormalizeWithAmplitude/L2CalculatorNormalizeWithAmplitude.cpp b/apps/gpu/tests/NumericalTests/Utilities/Calculator/L2NormCalculator/L2CalculatorNormalizeWithAmplitude/L2CalculatorNormalizeWithAmplitude.cpp index 0ef35604920afd0d323ce389a169004d0d12ce23..0db4e6a0d7297061d0d7c7f5f1dd4ffcbb7434a8 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/Calculator/L2NormCalculator/L2CalculatorNormalizeWithAmplitude/L2CalculatorNormalizeWithAmplitude.cpp +++ b/apps/gpu/tests/NumericalTests/Utilities/Calculator/L2NormCalculator/L2CalculatorNormalizeWithAmplitude/L2CalculatorNormalizeWithAmplitude.cpp @@ -6,20 +6,20 @@ std::shared_ptr<L2NormCalculator> L2CalculatorNormalizeWithAmplitude::getInstance() { - static std::shared_ptr<L2NormCalculator> uniqueInstance; - if (!uniqueInstance) - uniqueInstance = std::shared_ptr<L2NormCalculator>(new L2CalculatorNormalizeWithAmplitude()); - return uniqueInstance; + static std::shared_ptr<L2NormCalculator> uniqueInstance; + if (!uniqueInstance) + uniqueInstance = std::shared_ptr<L2NormCalculator>(new L2CalculatorNormalizeWithAmplitude()); + return uniqueInstance; } double L2CalculatorNormalizeWithAmplitude::calc(std::vector<double> basicData, std::vector<double> divergentData, std::vector<unsigned int> level, double lx, double lz, double l0) { - std::shared_ptr<FFTCalculator> fftCalc = FFTCalculator::getInstance(); - double amplitude = fftCalc->calcAmplitudeForTimeStep(basicData, false, lx, lz) * lx / l0; - if (equalDouble(amplitude, 0.0)) - return -1.0; - double counter = calcCounter(basicData, divergentData, level, lx, lz); - return std::sqrt(counter / (amplitude * amplitude)); + std::shared_ptr<FFTCalculator> fftCalc = FFTCalculator::getInstance(); + double amplitude = fftCalc->calcAmplitudeForTimeStep(basicData, false, lx, lz) * lx / l0; + if (equalDouble(amplitude, 0.0)) + return -1.0; + double counter = calcCounter(basicData, divergentData, level, lx, lz); + return std::sqrt(counter / (amplitude * amplitude)); } L2CalculatorNormalizeWithAmplitude::L2CalculatorNormalizeWithAmplitude() : L2NormCalculatorImp("Test could not run. Amplitude is zero. Normalization of the data is not possible.") diff --git a/apps/gpu/tests/NumericalTests/Utilities/Calculator/L2NormCalculator/L2CalculatorNormalizeWithAmplitude/L2CalculatorNormalizeWithAmplitude.h b/apps/gpu/tests/NumericalTests/Utilities/Calculator/L2NormCalculator/L2CalculatorNormalizeWithAmplitude/L2CalculatorNormalizeWithAmplitude.h index fd8416d0ae446facf8738e5f96627d65cfc85b94..43d97ade4a1e9c6a005bf98f3af3920cc3f058aa 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/Calculator/L2NormCalculator/L2CalculatorNormalizeWithAmplitude/L2CalculatorNormalizeWithAmplitude.h +++ b/apps/gpu/tests/NumericalTests/Utilities/Calculator/L2NormCalculator/L2CalculatorNormalizeWithAmplitude/L2CalculatorNormalizeWithAmplitude.h @@ -6,11 +6,11 @@ class L2CalculatorNormalizeWithAmplitude : public L2NormCalculatorImp { public: - static std::shared_ptr<L2NormCalculator> getInstance(); + static std::shared_ptr<L2NormCalculator> getInstance(); - double calc(std::vector<double> basicData, std::vector<double> divergentData, std::vector<unsigned int> level, double lx, double lz, double l0); + double calc(std::vector<double> basicData, std::vector<double> divergentData, std::vector<unsigned int> level, double lx, double lz, double l0); private: - L2CalculatorNormalizeWithAmplitude(); + L2CalculatorNormalizeWithAmplitude(); }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Utilities/Calculator/L2NormCalculator/L2CalculatorNormalizeWithBasicData/L2CalculatorNormalizeWithBasicData.cpp b/apps/gpu/tests/NumericalTests/Utilities/Calculator/L2NormCalculator/L2CalculatorNormalizeWithBasicData/L2CalculatorNormalizeWithBasicData.cpp index 012c7fcf63a2210561d01b2ea05ed6b04d2fd44c..b3f819e321708846ebaf7faff3797d8289ffe77c 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/Calculator/L2NormCalculator/L2CalculatorNormalizeWithBasicData/L2CalculatorNormalizeWithBasicData.cpp +++ b/apps/gpu/tests/NumericalTests/Utilities/Calculator/L2NormCalculator/L2CalculatorNormalizeWithBasicData/L2CalculatorNormalizeWithBasicData.cpp @@ -4,24 +4,24 @@ std::shared_ptr<L2NormCalculator> L2CalculatorNormalizeWithBasicData::getInstance() { - static std::shared_ptr<L2NormCalculator> uniqueInstance; - if (!uniqueInstance) - uniqueInstance = std::shared_ptr<L2NormCalculator>(new L2CalculatorNormalizeWithBasicData()); - return uniqueInstance; + static std::shared_ptr<L2NormCalculator> uniqueInstance; + if (!uniqueInstance) + uniqueInstance = std::shared_ptr<L2NormCalculator>(new L2CalculatorNormalizeWithBasicData()); + return uniqueInstance; } double L2CalculatorNormalizeWithBasicData::calc(std::vector<double> basicData, std::vector<double> divergentData, std::vector<unsigned int> level, double lx, double lz, double l0) { - double counter = calcCounter(basicData, divergentData, level, lx, lz); - double denominator = 0.0; - for (int i = 0; i < basicData.size(); i++) { - double area = (1 / std::pow(2.0, level.at(i))) * (1 / std::pow(2.0, level.at(i))); - denominator += (basicData.at(i)*basicData.at(i)) * area; - } - if (equalDouble(denominator, 0.0)) - return -1.0; + double counter = calcCounter(basicData, divergentData, level, lx, lz); + double denominator = 0.0; + for (int i = 0; i < basicData.size(); i++) { + double area = (1 / std::pow(2.0, level.at(i))) * (1 / std::pow(2.0, level.at(i))); + denominator += (basicData.at(i)*basicData.at(i)) * area; + } + if (equalDouble(denominator, 0.0)) + return -1.0; - return std::sqrt(counter / denominator); + return std::sqrt(counter / denominator); } L2CalculatorNormalizeWithBasicData::L2CalculatorNormalizeWithBasicData() : L2NormCalculatorImp("Test could not run. BasicData is zero. Normalization of the data is not possible.") diff --git a/apps/gpu/tests/NumericalTests/Utilities/Calculator/L2NormCalculator/L2CalculatorNormalizeWithBasicData/L2CalculatorNormalizeWithBasicData.h b/apps/gpu/tests/NumericalTests/Utilities/Calculator/L2NormCalculator/L2CalculatorNormalizeWithBasicData/L2CalculatorNormalizeWithBasicData.h index 2adfe9e4a6a56ab667e93224d63f97eb333dea81..3b824a171432e778ae13cca318e2e77a8bd86ec3 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/Calculator/L2NormCalculator/L2CalculatorNormalizeWithBasicData/L2CalculatorNormalizeWithBasicData.h +++ b/apps/gpu/tests/NumericalTests/Utilities/Calculator/L2NormCalculator/L2CalculatorNormalizeWithBasicData/L2CalculatorNormalizeWithBasicData.h @@ -6,11 +6,11 @@ class L2CalculatorNormalizeWithBasicData : public L2NormCalculatorImp { public: - static std::shared_ptr<L2NormCalculator> getInstance(); + static std::shared_ptr<L2NormCalculator> getInstance(); - double calc(std::vector<double> basicData, std::vector<double> divergentData, std::vector<unsigned int> level, double lx, double lz, double l0); + double calc(std::vector<double> basicData, std::vector<double> divergentData, std::vector<unsigned int> level, double lx, double lz, double l0); private: - L2CalculatorNormalizeWithBasicData(); + L2CalculatorNormalizeWithBasicData(); }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Utilities/Calculator/L2NormCalculator/L2NormCalculator.h b/apps/gpu/tests/NumericalTests/Utilities/Calculator/L2NormCalculator/L2NormCalculator.h index 5c90fa1ae0fe1332608d2932f2fa40435bb21fc5..37ec7a3787396f8b651c6c5050270982f1257749 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/Calculator/L2NormCalculator/L2NormCalculator.h +++ b/apps/gpu/tests/NumericalTests/Utilities/Calculator/L2NormCalculator/L2NormCalculator.h @@ -8,9 +8,9 @@ class L2NormCalculator { public: - virtual ~L2NormCalculator() = default; - virtual double calc(std::vector<double> basicData, std::vector<double> divergentData, std::vector<unsigned int> level, double lx, double lz, double l0) = 0; - virtual std::string getErrorMessage() = 0; + virtual ~L2NormCalculator() = default; + virtual double calc(std::vector<double> basicData, std::vector<double> divergentData, std::vector<unsigned int> level, double lx, double lz, double l0) = 0; + virtual std::string getErrorMessage() = 0; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Utilities/Calculator/L2NormCalculator/L2NormCalculatorFactory/L2NormCalculatorFactory.h b/apps/gpu/tests/NumericalTests/Utilities/Calculator/L2NormCalculator/L2NormCalculatorFactory/L2NormCalculatorFactory.h index ffd1030cfa2abf8fb8b82699fe209dcf4e2416de..7372d2e8dd580282dec65ebfc8a27d0090a67e24 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/Calculator/L2NormCalculator/L2NormCalculatorFactory/L2NormCalculatorFactory.h +++ b/apps/gpu/tests/NumericalTests/Utilities/Calculator/L2NormCalculator/L2NormCalculatorFactory/L2NormCalculatorFactory.h @@ -9,8 +9,8 @@ class L2NormCalculator; class L2NormCalculatorFactory { public: - virtual ~L2NormCalculatorFactory() = default; - virtual std::shared_ptr<L2NormCalculator> makeL2NormCalculator(std::string type) = 0; + virtual ~L2NormCalculatorFactory() = default; + virtual std::shared_ptr<L2NormCalculator> makeL2NormCalculator(std::string type) = 0; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Utilities/Calculator/L2NormCalculator/L2NormCalculatorFactory/L2NormCalculatorFactoryImp.cpp b/apps/gpu/tests/NumericalTests/Utilities/Calculator/L2NormCalculator/L2NormCalculatorFactory/L2NormCalculatorFactoryImp.cpp index e30ff286f1bc67c7ee6311fa6b48ccbf1e031c97..ac5b812b9323390ecad734d87e97e7d28170c131 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/Calculator/L2NormCalculator/L2NormCalculatorFactory/L2NormCalculatorFactoryImp.cpp +++ b/apps/gpu/tests/NumericalTests/Utilities/Calculator/L2NormCalculator/L2NormCalculatorFactory/L2NormCalculatorFactoryImp.cpp @@ -5,18 +5,18 @@ std::shared_ptr<L2NormCalculatorFactory> L2NormCalculatorFactoryImp::getInstance() { - static std::shared_ptr<L2NormCalculatorFactory> uniqueInstance; - if (!uniqueInstance) - uniqueInstance = std::shared_ptr<L2NormCalculatorFactory>(new L2NormCalculatorFactoryImp()); - return uniqueInstance; + static std::shared_ptr<L2NormCalculatorFactory> uniqueInstance; + if (!uniqueInstance) + uniqueInstance = std::shared_ptr<L2NormCalculatorFactory>(new L2NormCalculatorFactoryImp()); + return uniqueInstance; } std::shared_ptr<L2NormCalculator> L2NormCalculatorFactoryImp::makeL2NormCalculator(std::string type) { - if(type == "Amplitude") - return L2CalculatorNormalizeWithAmplitude::getInstance(); - if (type == "BasicData") - return L2CalculatorNormalizeWithBasicData::getInstance(); + if(type == "Amplitude") + return L2CalculatorNormalizeWithAmplitude::getInstance(); + if (type == "BasicData") + return L2CalculatorNormalizeWithBasicData::getInstance(); } L2NormCalculatorFactoryImp::L2NormCalculatorFactoryImp() diff --git a/apps/gpu/tests/NumericalTests/Utilities/Calculator/L2NormCalculator/L2NormCalculatorFactory/L2NormCalculatorFactoryImp.h b/apps/gpu/tests/NumericalTests/Utilities/Calculator/L2NormCalculator/L2NormCalculatorFactory/L2NormCalculatorFactoryImp.h index 11739a697180296735d1427701dceb3d212e448a..34319d555c403bf84d37256779a7491951d6c6d8 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/Calculator/L2NormCalculator/L2NormCalculatorFactory/L2NormCalculatorFactoryImp.h +++ b/apps/gpu/tests/NumericalTests/Utilities/Calculator/L2NormCalculator/L2NormCalculatorFactory/L2NormCalculatorFactoryImp.h @@ -6,11 +6,11 @@ class L2NormCalculatorFactoryImp : public L2NormCalculatorFactory { public: - static std::shared_ptr<L2NormCalculatorFactory> getInstance(); + static std::shared_ptr<L2NormCalculatorFactory> getInstance(); - std::shared_ptr<L2NormCalculator> makeL2NormCalculator(std::string type); + std::shared_ptr<L2NormCalculator> makeL2NormCalculator(std::string type); private: - L2NormCalculatorFactoryImp(); + L2NormCalculatorFactoryImp(); }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Utilities/Calculator/L2NormCalculator/L2NormCalculatorImp.cpp b/apps/gpu/tests/NumericalTests/Utilities/Calculator/L2NormCalculator/L2NormCalculatorImp.cpp index 86059f259c42094cd635232db13b5e22dcde0276..d7f68520685a4dadc18b67d2f3b064775401389e 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/Calculator/L2NormCalculator/L2NormCalculatorImp.cpp +++ b/apps/gpu/tests/NumericalTests/Utilities/Calculator/L2NormCalculator/L2NormCalculatorImp.cpp @@ -12,29 +12,29 @@ L2NormCalculatorImp::L2NormCalculatorImp(std::string errorMessage) : errorMessag bool L2NormCalculatorImp::equalDouble(double num1, double num2) { - const FloatingPoint<double> lhs(num1), rhs(num2); + const FloatingPoint<double> lhs(num1), rhs(num2); - if (lhs.AlmostEquals(rhs)) - return true; - return false; + if (lhs.AlmostEquals(rhs)) + return true; + return false; } double L2NormCalculatorImp::calcCounter(std::vector<double> basicData, std::vector<double> divergentData, std::vector<unsigned int> level, double lx, double lz) { - double counter = 0.0; - for (int i = 0; i < basicData.size(); i++) { - double area = (1 / pow(2.0, level.at(i))) * (1 / pow(2.0, level.at(i))); - counter += ((divergentData.at(i) - basicData.at(i))*(divergentData.at(i) - basicData.at(i))) * area; - } - return counter; + double counter = 0.0; + for (int i = 0; i < basicData.size(); i++) { + double area = (1 / pow(2.0, level.at(i))) * (1 / pow(2.0, level.at(i))); + counter += ((divergentData.at(i) - basicData.at(i))*(divergentData.at(i) - basicData.at(i))) * area; + } + return counter; } std::string L2NormCalculatorImp::getErrorMessage() { - return errorMessage; + return errorMessage; } L2NormCalculatorImp::L2NormCalculatorImp() { - + } \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Utilities/Calculator/L2NormCalculator/L2NormCalculatorImp.h b/apps/gpu/tests/NumericalTests/Utilities/Calculator/L2NormCalculator/L2NormCalculatorImp.h index de078439f7761b02d7ac3bbee4b375d857dfc5f0..eeef24233f857e35ca9eb141f5f0d411afd3d207 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/Calculator/L2NormCalculator/L2NormCalculatorImp.h +++ b/apps/gpu/tests/NumericalTests/Utilities/Calculator/L2NormCalculator/L2NormCalculatorImp.h @@ -10,18 +10,18 @@ class FFTCalculator; class L2NormCalculatorImp : public L2NormCalculator { public: - virtual double calc(std::vector<double> basicData, std::vector<double> divergentData, std::vector<unsigned int> level, double lx, double lz, double l0) = 0; - std::string getErrorMessage(); + virtual double calc(std::vector<double> basicData, std::vector<double> divergentData, std::vector<unsigned int> level, double lx, double lz, double l0) = 0; + std::string getErrorMessage(); protected: - L2NormCalculatorImp(std::string errorMessage); + L2NormCalculatorImp(std::string errorMessage); - bool equalDouble(double num1, double num2); - double calcCounter(std::vector<double> basicData, std::vector<double> divergentData, std::vector<unsigned int> level, double lx, double lz); + bool equalDouble(double num1, double num2); + double calcCounter(std::vector<double> basicData, std::vector<double> divergentData, std::vector<unsigned int> level, double lx, double lz); - std::string errorMessage; + std::string errorMessage; private: - L2NormCalculatorImp(); + L2NormCalculatorImp(); }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Utilities/ColorConsoleOutput/ColorConsoleOutput.h b/apps/gpu/tests/NumericalTests/Utilities/ColorConsoleOutput/ColorConsoleOutput.h index 5c9f03658f40e77cdd9d8ce8f82d3cd08e2c02d6..699c09dcf9b195ed3cfd0a8a93f3572316085604 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/ColorConsoleOutput/ColorConsoleOutput.h +++ b/apps/gpu/tests/NumericalTests/Utilities/ColorConsoleOutput/ColorConsoleOutput.h @@ -12,10 +12,10 @@ class SimulationInfo; class ColorConsoleOutput { public: - virtual ~ColorConsoleOutput() = default; - virtual void makeSimulationHeadOutput(std::shared_ptr<SimulationInfo> simInfo) = 0; - virtual void makeTestOutput(std::vector<std::string> testOutput, TestStatus status) = 0; - virtual void makeFinalTestOutputHead(int numberOfTests, int numberOfExecutedTest, int numberOfPassedTest, int numberOfFailedTest, int numberOfErrorTest, int numberOfNotExecutedTest) = 0; - virtual void makeFinalTestOutputFoot(int numberOfTests, int numberOfExecutedTest, int numberOfPassedTest, int numberOfFailedTest, int numberOfErrorTest, int numberOfNotExecutedTest) = 0; + virtual ~ColorConsoleOutput() = default; + virtual void makeSimulationHeadOutput(std::shared_ptr<SimulationInfo> simInfo) = 0; + virtual void makeTestOutput(std::vector<std::string> testOutput, TestStatus status) = 0; + virtual void makeFinalTestOutputHead(int numberOfTests, int numberOfExecutedTest, int numberOfPassedTest, int numberOfFailedTest, int numberOfErrorTest, int numberOfNotExecutedTest) = 0; + virtual void makeFinalTestOutputFoot(int numberOfTests, int numberOfExecutedTest, int numberOfPassedTest, int numberOfFailedTest, int numberOfErrorTest, int numberOfNotExecutedTest) = 0; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Utilities/ColorConsoleOutput/ColorConsoleOutputImp.cpp b/apps/gpu/tests/NumericalTests/Utilities/ColorConsoleOutput/ColorConsoleOutputImp.cpp index 577b392c593e94813aea64c16a2217ce8ee53141..56dd2be8af7cde3591cf4f470ebe5534cf7855c4 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/ColorConsoleOutput/ColorConsoleOutputImp.cpp +++ b/apps/gpu/tests/NumericalTests/Utilities/ColorConsoleOutput/ColorConsoleOutputImp.cpp @@ -13,177 +13,177 @@ void log(const char* fmt) { std::shared_ptr<ColorConsoleOutput> ColorConsoleOutputImp::getInstance() { - static std::shared_ptr<ColorConsoleOutput> uniqueInstance; - if (!uniqueInstance) - uniqueInstance = std::shared_ptr<ColorConsoleOutput>(new ColorConsoleOutputImp()); - return uniqueInstance; + static std::shared_ptr<ColorConsoleOutput> uniqueInstance; + if (!uniqueInstance) + uniqueInstance = std::shared_ptr<ColorConsoleOutput>(new ColorConsoleOutputImp()); + return uniqueInstance; } void ColorConsoleOutputImp::makeSimulationHeadOutput(std::shared_ptr<SimulationInfo> simInfo) { - std::ostringstream ossLine0; - ossLine0 << "# Simulation Number " << simInfo->getSimulationID() << " of " << simInfo->getNumberOfSimulations(); - int length = 49 - ossLine0.str().size(); - ossLine0 << std::setfill(' ') << std::right << std::setw(length) << "#"; + std::ostringstream ossLine0; + ossLine0 << "# Simulation Number " << simInfo->getSimulationID() << " of " << simInfo->getNumberOfSimulations(); + int length = 49 - ossLine0.str().size(); + ossLine0 << std::setfill(' ') << std::right << std::setw(length) << "#"; - std::ostringstream ossLine1; - ossLine1 << "# Kernel: " << std::setfill(' ') << std::left << std::setw(38) << simInfo->getKernelName() << "#"; + std::ostringstream ossLine1; + ossLine1 << "# Kernel: " << std::setfill(' ') << std::left << std::setw(38) << simInfo->getKernelName() << "#"; - std::ostringstream ossLine2; - ossLine2 << "# Viscosity: " << std::setfill(' ') << std::left << std::setw(35) << simInfo->getViscosity() << "#"; + std::ostringstream ossLine2; + ossLine2 << "# Viscosity: " << std::setfill(' ') << std::left << std::setw(35) << simInfo->getViscosity() << "#"; - std::ostringstream ossLine3; - ossLine3 << "# SIMULATION: " << std::setfill(' ') << std::left << std::setw(34) << simInfo->getSimulationName() << "#"; + std::ostringstream ossLine3; + ossLine3 << "# SIMULATION: " << std::setfill(' ') << std::left << std::setw(34) << simInfo->getSimulationName() << "#"; - std::ostringstream ossLine4; - ossLine4 << std::setfill(' ') << std::left << std::setw(14) << "#" << std::setw(34) << simInfo->getSimulationParameterString() << "#"; + std::ostringstream ossLine4; + ossLine4 << std::setfill(' ') << std::left << std::setw(14) << "#" << std::setw(34) << simInfo->getSimulationParameterString() << "#"; - std::ostringstream ossLine5; - ossLine5 << "# L: " << std::setfill(' ') << std::left << std::setw(43) << simInfo->getLx() << "#"; + std::ostringstream ossLine5; + ossLine5 << "# L: " << std::setfill(' ') << std::left << std::setw(43) << simInfo->getLx() << "#"; - std::ostringstream ossLine6; - time_t now; - struct tm nowLocal; - now = time(NULL); - nowLocal = *localtime(&now); - ossLine6 << "# DATE: " << std::setfill('0') << std::setw(2) << nowLocal.tm_mday << "." << std::setw(2) << nowLocal.tm_mon + 1 << "." << nowLocal.tm_year + 1900 << " TIME: " << std::setw(2) << nowLocal.tm_hour << ":" << std::setw(2) << nowLocal.tm_min << ":" << std::setw(2) << nowLocal.tm_sec << "\t" << "\t#"; + std::ostringstream ossLine6; + time_t now; + struct tm nowLocal; + now = time(NULL); + nowLocal = *localtime(&now); + ossLine6 << "# DATE: " << std::setfill('0') << std::setw(2) << nowLocal.tm_mday << "." << std::setw(2) << nowLocal.tm_mon + 1 << "." << nowLocal.tm_year + 1900 << " TIME: " << std::setw(2) << nowLocal.tm_hour << ":" << std::setw(2) << nowLocal.tm_min << ":" << std::setw(2) << nowLocal.tm_sec << "\t" << "\t#"; - printGreenHashLine(); - printGreen(ossLine0.str()); - printGreen(ossLine1.str()); - printGreen(ossLine2.str()); - printGreen(ossLine3.str()); - printGreen(ossLine4.str()); - printGreen(ossLine5.str()); - printGreen(ossLine6.str()); - printGreenHashLine(); + printGreenHashLine(); + printGreen(ossLine0.str()); + printGreen(ossLine1.str()); + printGreen(ossLine2.str()); + printGreen(ossLine3.str()); + printGreen(ossLine4.str()); + printGreen(ossLine5.str()); + printGreen(ossLine6.str()); + printGreenHashLine(); } void ColorConsoleOutputImp::makeTestOutput(std::vector<std::string> testOutput, TestStatus status) { - setColor(status); - printTestStart(); + setColor(status); + printTestStart(); - printColor(""); - printColor(testOutput.at(0)); - printColor(""); + printColor(""); + printColor(testOutput.at(0)); + printColor(""); - for (uint i = 1; i < testOutput.size(); i++) - print(testOutput.at(i)); + for (uint i = 1; i < testOutput.size(); i++) + print(testOutput.at(i)); - printColor(""); - printColor(testOutput.at(0)); - printColor(""); + printColor(""); + printColor(testOutput.at(0)); + printColor(""); - printTestEnd(status); + printTestEnd(status); } void ColorConsoleOutputImp::makeFinalTestOutputHead(int numberOfTests, int numberOfExecutedTest, int numberOfPassedTest, int numberOfFailedTest, int numberOfErrorTest, int numberOfNotExecutedTest) { - setColor(numberOfTests == numberOfPassedTest); - printTestPassed(numberOfTests, numberOfExecutedTest, numberOfPassedTest, numberOfFailedTest, numberOfErrorTest, numberOfNotExecutedTest); - printLine(); + setColor(numberOfTests == numberOfPassedTest); + printTestPassed(numberOfTests, numberOfExecutedTest, numberOfPassedTest, numberOfFailedTest, numberOfErrorTest, numberOfNotExecutedTest); + printLine(); } void ColorConsoleOutputImp::makeFinalTestOutputFoot(int numberOfTests, int numberOfExecutedTest, int numberOfPassedTest, int numberOfFailedTest, int numberOfErrorTest, int numberOfNotExecutedTest) { - setColor(numberOfTests == numberOfPassedTest); - printLine(); - printTestPassed(numberOfTests, numberOfExecutedTest, numberOfPassedTest, numberOfFailedTest, numberOfErrorTest, numberOfNotExecutedTest); + setColor(numberOfTests == numberOfPassedTest); + printLine(); + printTestPassed(numberOfTests, numberOfExecutedTest, numberOfPassedTest, numberOfFailedTest, numberOfErrorTest, numberOfNotExecutedTest); } void ColorConsoleOutputImp::printTestStart() { - log( "[-----------]"); - log( "[Run Test ]"); - log( "[TestInfo ]"); + log( "[-----------]"); + log( "[Run Test ]"); + log( "[TestInfo ]"); } void ColorConsoleOutputImp::printTestEnd(TestStatus status) { - log( "[ TestInfo]"); - switch (status) - { - case passed: log( "[ PASSED]"); - break; - case failed: log( "[ FAILED]"); - break; - case test_error: log( "[ ERROR]"); - break; - case simulationCrashed: log( "[Sim crashed]"); - break; - default: - break; - } - - log( "[-----------]"); + log( "[ TestInfo]"); + switch (status) + { + case passed: log( "[ PASSED]"); + break; + case failed: log( "[ FAILED]"); + break; + case test_error: log( "[ ERROR]"); + break; + case simulationCrashed: log( "[Sim crashed]"); + break; + default: + break; + } + + log( "[-----------]"); } void ColorConsoleOutputImp::print(std::string output) { - log("[ ] "); - log(output.c_str()); + log("[ ] "); + log(output.c_str()); } void ColorConsoleOutputImp::printColor(std::string output) { - log("[-----------] "); - log(output.c_str()); + log("[-----------] "); + log(output.c_str()); } void ColorConsoleOutputImp::setColor(TestStatus status) { - switch (status) - { - case passed: color = "green"; - break; - case failed: color = "red"; - break; - case test_error: color = "yellow"; - break; - case simulationCrashed: color = "yellow"; - break; - default: - break; - } + switch (status) + { + case passed: color = "green"; + break; + case failed: color = "red"; + break; + case test_error: color = "yellow"; + break; + case simulationCrashed: color = "yellow"; + break; + default: + break; + } } void ColorConsoleOutputImp::setColor(bool passed) { - if (passed) - color = "green"; - else - color = "red"; + if (passed) + color = "green"; + else + color = "red"; } void ColorConsoleOutputImp::printTestPassed(int numberOfTests, int numberOfExecutedTest, int numberOfPassedTest, int numberOfFailedTest, int numberOfErrorTest, int numberOfNotExecutedTest) { - std::ostringstream test; - test << "[-----------]" << std::endl; - test << "[-----------] Test Summary" << std::endl; - test << "[-----------] " << numberOfTests << " initialized Tests" << std::endl; - test << "[-----------]" << std::endl; - test << "[-----------] " << numberOfExecutedTest << " out of " << numberOfTests << " Tests executed" << std::endl; - test << "[-----------] " << numberOfErrorTest << " out of " << numberOfTests << " Tests executed and completed with error" << std::endl; - test << "[-----------] " << numberOfNotExecutedTest << " out of " << numberOfTests << " Tests not executed" << std::endl; - test << "[-----------]" << std::endl; - test << "[-----------] " << numberOfPassedTest << " out of " << numberOfExecutedTest << " executed Tests passed" << std::endl; - test << "[-----------] " << numberOfFailedTest << " out of " << numberOfExecutedTest << " executed Tests failed" << std::endl; - test << "[-----------]" << std::endl; - log(test.str().c_str()); + std::ostringstream test; + test << "[-----------]" << std::endl; + test << "[-----------] Test Summary" << std::endl; + test << "[-----------] " << numberOfTests << " initialized Tests" << std::endl; + test << "[-----------]" << std::endl; + test << "[-----------] " << numberOfExecutedTest << " out of " << numberOfTests << " Tests executed" << std::endl; + test << "[-----------] " << numberOfErrorTest << " out of " << numberOfTests << " Tests executed and completed with error" << std::endl; + test << "[-----------] " << numberOfNotExecutedTest << " out of " << numberOfTests << " Tests not executed" << std::endl; + test << "[-----------]" << std::endl; + test << "[-----------] " << numberOfPassedTest << " out of " << numberOfExecutedTest << " executed Tests passed" << std::endl; + test << "[-----------] " << numberOfFailedTest << " out of " << numberOfExecutedTest << " executed Tests failed" << std::endl; + test << "[-----------]" << std::endl; + log(test.str().c_str()); } void ColorConsoleOutputImp::printLine() { - log("----------------------------------------------------------------------"); + log("----------------------------------------------------------------------"); } void ColorConsoleOutputImp::printGreen(std::string output) { - log(output.c_str()); + log(output.c_str()); } void ColorConsoleOutputImp::printGreenHashLine() { - log("#################################################"); + log("#################################################"); } diff --git a/apps/gpu/tests/NumericalTests/Utilities/ColorConsoleOutput/ColorConsoleOutputImp.h b/apps/gpu/tests/NumericalTests/Utilities/ColorConsoleOutput/ColorConsoleOutputImp.h index 96b33663195a6982e140a78cf3dd64730a0019ec..57dbbfdb601881f6b37bfc50dcaab4499e454b1b 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/ColorConsoleOutput/ColorConsoleOutputImp.h +++ b/apps/gpu/tests/NumericalTests/Utilities/ColorConsoleOutput/ColorConsoleOutputImp.h @@ -10,26 +10,26 @@ class ColorConsoleOutputImp : public ColorConsoleOutput { public: - static std::shared_ptr<ColorConsoleOutput> getInstance(); + static std::shared_ptr<ColorConsoleOutput> getInstance(); - void makeSimulationHeadOutput(std::shared_ptr<SimulationInfo> simInfo); - void makeTestOutput(std::vector<std::string> testOutput, TestStatus status); - void makeFinalTestOutputHead(int numberOfTests, int numberOfExecutedTest, int numberOfPassedTest, int numberOfFailedTest, int numberOfErrorTest, int numberOfNotExecutedTest); - void makeFinalTestOutputFoot(int numberOfTests, int numberOfExecutedTest, int numberOfPassedTest, int numberOfFailedTest, int numberOfErrorTest, int numberOfNotExecutedTest); + void makeSimulationHeadOutput(std::shared_ptr<SimulationInfo> simInfo); + void makeTestOutput(std::vector<std::string> testOutput, TestStatus status); + void makeFinalTestOutputHead(int numberOfTests, int numberOfExecutedTest, int numberOfPassedTest, int numberOfFailedTest, int numberOfErrorTest, int numberOfNotExecutedTest); + void makeFinalTestOutputFoot(int numberOfTests, int numberOfExecutedTest, int numberOfPassedTest, int numberOfFailedTest, int numberOfErrorTest, int numberOfNotExecutedTest); private: - ColorConsoleOutputImp() {}; - void printTestStart(); - void printTestEnd(TestStatus status); - void print(std::string output); - void printColor(std::string output); - void setColor(TestStatus status); - void setColor(bool passed); - void printTestPassed(int numberOfTests, int numberOfExecutedTest, int numberOfPassedTest, int numberOfFailedTest, int numberOfErrorTest, int numberOfNotExecutedTest); - void printLine(); - - void printGreen(std::string output); - void printGreenHashLine(); + ColorConsoleOutputImp() {}; + void printTestStart(); + void printTestEnd(TestStatus status); + void print(std::string output); + void printColor(std::string output); + void setColor(TestStatus status); + void setColor(bool passed); + void printTestPassed(int numberOfTests, int numberOfExecutedTest, int numberOfPassedTest, int numberOfFailedTest, int numberOfErrorTest, int numberOfNotExecutedTest); + void printLine(); + + void printGreen(std::string output); + void printGreenHashLine(); // not used at the moment std::string color; diff --git a/apps/gpu/tests/NumericalTests/Utilities/DataWriter/AnalyticalResults2DToVTKWriter/AnalyticalResults2DToVTKWriter.h b/apps/gpu/tests/NumericalTests/Utilities/DataWriter/AnalyticalResults2DToVTKWriter/AnalyticalResults2DToVTKWriter.h index a6e1eecf4a976e8c8e6a34c34f8b1e5e08887fd1..96f34172054f59ec47b78990565eab2ca6b9027e 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/DataWriter/AnalyticalResults2DToVTKWriter/AnalyticalResults2DToVTKWriter.h +++ b/apps/gpu/tests/NumericalTests/Utilities/DataWriter/AnalyticalResults2DToVTKWriter/AnalyticalResults2DToVTKWriter.h @@ -10,8 +10,8 @@ class AnalyticalResults; class AnalyticalResults2DToVTKWriter { public: - virtual ~AnalyticalResults2DToVTKWriter() = default; - virtual void writeAnalyticalResult(std::shared_ptr<Parameter> para, std::shared_ptr<AnalyticalResults> analyticalResult) = 0; + virtual ~AnalyticalResults2DToVTKWriter() = default; + virtual void writeAnalyticalResult(std::shared_ptr<Parameter> para, std::shared_ptr<AnalyticalResults> analyticalResult) = 0; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Utilities/DataWriter/AnalyticalResults2DToVTKWriter/AnalyticalResults2DToVTKWriterImp.h b/apps/gpu/tests/NumericalTests/Utilities/DataWriter/AnalyticalResults2DToVTKWriter/AnalyticalResults2DToVTKWriterImp.h index 12f8f3583eb989e7c02c11126f403edcc4ba4f2b..34ebef276d1f366d4dae8575c499e1190c674955 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/DataWriter/AnalyticalResults2DToVTKWriter/AnalyticalResults2DToVTKWriterImp.h +++ b/apps/gpu/tests/NumericalTests/Utilities/DataWriter/AnalyticalResults2DToVTKWriter/AnalyticalResults2DToVTKWriterImp.h @@ -9,19 +9,19 @@ class AnalyticalResults2DToVTKWriterImp : public AnalyticalResults2DToVTKWriter { public: - static std::shared_ptr<AnalyticalResults2DToVTKWriterImp> getInstance(bool writeAnalyticalResults); + static std::shared_ptr<AnalyticalResults2DToVTKWriterImp> getInstance(bool writeAnalyticalResults); - void writeAnalyticalResult(std::shared_ptr<Parameter> para, std::shared_ptr<AnalyticalResults> analyticalResult); + void writeAnalyticalResult(std::shared_ptr<Parameter> para, std::shared_ptr<AnalyticalResults> analyticalResult); private: - AnalyticalResults2DToVTKWriterImp() {}; - AnalyticalResults2DToVTKWriterImp(bool writeAnalyticalResults); + AnalyticalResults2DToVTKWriterImp() {}; + AnalyticalResults2DToVTKWriterImp(bool writeAnalyticalResults); - void writeTimeStep(std::shared_ptr<Parameter> para, std::shared_ptr<AnalyticalResults> analyticalResult, int level, std::vector<std::string> & fname, int timeStep); - int CoordResults2DTo1D(int x, int z); + void writeTimeStep(std::shared_ptr<Parameter> para, std::shared_ptr<AnalyticalResults> analyticalResult, int level, std::vector<std::string> & fname, int timeStep); + int CoordResults2DTo1D(int x, int z); - std::shared_ptr<Parameter> para; - int maxX, maxY, maxZ; - bool writeAnalyticalResults; + std::shared_ptr<Parameter> para; + int maxX, maxY, maxZ; + bool writeAnalyticalResults; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Utilities/DataWriter/ToVectorWriter.cpp b/apps/gpu/tests/NumericalTests/Utilities/DataWriter/ToVectorWriter.cpp index 078bc7297679c6761ce387739735ace9805cc368..4f8ec6bd347a272b8a57c72b864992849bcac390 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/DataWriter/ToVectorWriter.cpp +++ b/apps/gpu/tests/NumericalTests/Utilities/DataWriter/ToVectorWriter.cpp @@ -11,36 +11,36 @@ ToVectorWriter::ToVectorWriter(std::shared_ptr<VectorWriterInformationStruct> vectorWriterInfo, unsigned int timeStepLength) { - this->startTimeVectorWriter = vectorWriterInfo->startTimeVectorWriter; - this->writeVTKFiles = vectorWriterInfo->writeVTKFiles; - this->startTimeVTKWriter = vectorWriterInfo->startTimeVTKDataWriter; + this->startTimeVectorWriter = vectorWriterInfo->startTimeVectorWriter; + this->writeVTKFiles = vectorWriterInfo->writeVTKFiles; + this->startTimeVTKWriter = vectorWriterInfo->startTimeVTKDataWriter; - this->vtkFileWriter = std::shared_ptr<FileWriter> (new FileWriter()); + this->vtkFileWriter = std::shared_ptr<FileWriter> (new FileWriter()); - this->timeStepLength = timeStepLength; + this->timeStepLength = timeStepLength; } void ToVectorWriter::writeInit(std::shared_ptr<Parameter> para, std::shared_ptr<CudaMemoryManager> cudaManager) { - if (startTimeVectorWriter == 0) { - for (int level = para->getCoarse(); level <= para->getFine(); level++) - cudaManager->cudaCopyPrint(level); - writeTimestep(para, 0); - } - - if (writeVTKFiles && startTimeVTKWriter == 0) - vtkFileWriter->writeTimestep(para, 0); + if (startTimeVectorWriter == 0) { + for (int level = para->getCoarse(); level <= para->getFine(); level++) + cudaManager->cudaCopyPrint(level); + writeTimestep(para, 0); + } + + if (writeVTKFiles && startTimeVTKWriter == 0) + vtkFileWriter->writeTimestep(para, 0); } void ToVectorWriter::writeTimestep(std::shared_ptr<Parameter> para, unsigned int t) { - if (startTimeVectorWriter <= t) - { - for (int level = para->getCoarse(); level <= para->getFine(); level++) - writeTimestep(para, t, level); - } - if (writeVTKFiles && startTimeVTKWriter < t) - vtkFileWriter->writeTimestep(para, t); + if (startTimeVectorWriter <= t) + { + for (int level = para->getCoarse(); level <= para->getFine(); level++) + writeTimestep(para, t, level); + } + if (writeVTKFiles && startTimeVTKWriter < t) + vtkFileWriter->writeTimestep(para, t); } ToVectorWriter::ToVectorWriter() diff --git a/apps/gpu/tests/NumericalTests/Utilities/DataWriter/ToVectorWriter.h b/apps/gpu/tests/NumericalTests/Utilities/DataWriter/ToVectorWriter.h index 1123a36a35e0de5971ce892058c0a62659edfb24..724fa8a65324308589e6c080652624483cff0389 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/DataWriter/ToVectorWriter.h +++ b/apps/gpu/tests/NumericalTests/Utilities/DataWriter/ToVectorWriter.h @@ -10,17 +10,17 @@ struct VectorWriterInformationStruct; class ToVectorWriter : public DataWriter { public: - void writeInit(std::shared_ptr<Parameter> para, std::shared_ptr<CudaMemoryManager> cudaManager); - void writeTimestep(std::shared_ptr<Parameter> para, unsigned int t); - + void writeInit(std::shared_ptr<Parameter> para, std::shared_ptr<CudaMemoryManager> cudaManager); + void writeTimestep(std::shared_ptr<Parameter> para, unsigned int t); + protected: - ToVectorWriter(); - ToVectorWriter(std::shared_ptr<VectorWriterInformationStruct> vectorWriterInfo, unsigned int timeStepLength); - virtual void writeTimestep(std::shared_ptr<Parameter> para, unsigned int t, int level) = 0; + ToVectorWriter(); + ToVectorWriter(std::shared_ptr<VectorWriterInformationStruct> vectorWriterInfo, unsigned int timeStepLength); + virtual void writeTimestep(std::shared_ptr<Parameter> para, unsigned int t, int level) = 0; - std::shared_ptr<FileWriter> vtkFileWriter; - bool writeVTKFiles; - unsigned int timeStepLength; - unsigned int startTimeVectorWriter, startTimeVTKWriter; + std::shared_ptr<FileWriter> vtkFileWriter; + bool writeVTKFiles; + unsigned int timeStepLength; + unsigned int startTimeVectorWriter, startTimeVTKWriter; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Utilities/DataWriter/Y2dSliceToResults/Y2dSliceToResults.h b/apps/gpu/tests/NumericalTests/Utilities/DataWriter/Y2dSliceToResults/Y2dSliceToResults.h index 87214e6be0c62291dcd6191551bdc53150e5da33..2676e8a93a1639d6807d75174a26f37978827154 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/DataWriter/Y2dSliceToResults/Y2dSliceToResults.h +++ b/apps/gpu/tests/NumericalTests/Utilities/DataWriter/Y2dSliceToResults/Y2dSliceToResults.h @@ -13,19 +13,19 @@ struct VectorWriterInformationStruct; class Y2dSliceToResults : public ToVectorWriter { public: - static std::shared_ptr<Y2dSliceToResults> getNewInstance(std::shared_ptr<VectorWriterInformationStruct> vectorWriterInfo, unsigned int timeStepLength, std::shared_ptr<SimulationResults> simResults, unsigned int ySliceForCalculation); + static std::shared_ptr<Y2dSliceToResults> getNewInstance(std::shared_ptr<VectorWriterInformationStruct> vectorWriterInfo, unsigned int timeStepLength, std::shared_ptr<SimulationResults> simResults, unsigned int ySliceForCalculation); - + private: - Y2dSliceToResults(); - Y2dSliceToResults(std::shared_ptr<VectorWriterInformationStruct> vectorWriterInfo, unsigned int timeStepLength, std::shared_ptr<SimulationResults> simResults, unsigned int ySliceForCalculation); - - void writeTimestep(std::shared_ptr<Parameter> para, unsigned int t, int level); - int CoordPara3DTo1D(int x, int y, int z); - int CoordResults2DTo1D(int x, int z); + Y2dSliceToResults(); + Y2dSliceToResults(std::shared_ptr<VectorWriterInformationStruct> vectorWriterInfo, unsigned int timeStepLength, std::shared_ptr<SimulationResults> simResults, unsigned int ySliceForCalculation); + + void writeTimestep(std::shared_ptr<Parameter> para, unsigned int t, int level); + int CoordPara3DTo1D(int x, int y, int z); + int CoordResults2DTo1D(int x, int z); - std::shared_ptr<SimulationResults> simResults; - unsigned int ySliceForCalculation; - unsigned int maxX, maxY, maxZ; + std::shared_ptr<SimulationResults> simResults; + unsigned int ySliceForCalculation; + unsigned int maxX, maxY, maxZ; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Utilities/InitialCondition/InitialCondition.h b/apps/gpu/tests/NumericalTests/Utilities/InitialCondition/InitialCondition.h index 62cead9311e1ab581091e7eceb660dbd6200c1cc..8eeb67bd173369cdf10a64517385c088c9ca2485 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/InitialCondition/InitialCondition.h +++ b/apps/gpu/tests/NumericalTests/Utilities/InitialCondition/InitialCondition.h @@ -11,14 +11,14 @@ class Parameter; class InitialCondition { public: - virtual ~InitialCondition() = default; - virtual void setParameter(std::shared_ptr<Parameter> para) = 0; - virtual void init(const int level) = 0; - virtual real getInitVX(int i, int level) = 0; - virtual real getInitVY(int i, int level) = 0; - virtual real getInitVZ(int i, int level) = 0; - virtual real getInitROH(int i, int level) = 0; - virtual real getInitPRESS(int i, int level) = 0; + virtual ~InitialCondition() = default; + virtual void setParameter(std::shared_ptr<Parameter> para) = 0; + virtual void init(const int level) = 0; + virtual real getInitVX(int i, int level) = 0; + virtual real getInitVY(int i, int level) = 0; + virtual real getInitVZ(int i, int level) = 0; + virtual real getInitROH(int i, int level) = 0; + virtual real getInitPRESS(int i, int level) = 0; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Utilities/InitialCondition/InitialConditionImp.cpp b/apps/gpu/tests/NumericalTests/Utilities/InitialCondition/InitialConditionImp.cpp index 60b37a5be4fb0afc01509467c22b50e220f106f8..456747a414af2bd29bcc534b1a4d73bb4fcb3bf2 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/InitialCondition/InitialConditionImp.cpp +++ b/apps/gpu/tests/NumericalTests/Utilities/InitialCondition/InitialConditionImp.cpp @@ -4,27 +4,27 @@ void InitialConditionImp::setParameter(std::shared_ptr<Parameter> para) { - this->para = para; + this->para = para; } void InitialConditionImp::init(const int level) { - XCoordStopNode = para->getGridX().at(level) - 1.0 + 0.5; - YCoordStopNode = para->getGridY().at(level) - 1.0 + 0.5; - ZCoordStopNode = para->getGridZ().at(level) - 1.0 + 0.5; + XCoordStopNode = para->getGridX().at(level) - 1.0 + 0.5; + YCoordStopNode = para->getGridY().at(level) - 1.0 + 0.5; + ZCoordStopNode = para->getGridZ().at(level) - 1.0 + 0.5; } real InitialConditionImp::getXCoord(int i, int level) { - return para->getParH(level)->coordinateX[i] - 1.0; + return para->getParH(level)->coordinateX[i] - 1.0; } real InitialConditionImp::getYCoord(int i, int level) { - return para->getParH(level)->coordinateY[i] - 1.0; + return para->getParH(level)->coordinateY[i] - 1.0; } real InitialConditionImp::getZCoord(int i, int level) { - return para->getParH(level)->coordinateZ[i] - 1.0; + return para->getParH(level)->coordinateZ[i] - 1.0; } \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Utilities/InitialCondition/InitialConditionImp.h b/apps/gpu/tests/NumericalTests/Utilities/InitialCondition/InitialConditionImp.h index f82ad6a9f2f6a690917c2710e40950c7d607faae..94dd945c6ebe22c1d3c913b10e7449ce5b69536d 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/InitialCondition/InitialConditionImp.h +++ b/apps/gpu/tests/NumericalTests/Utilities/InitialCondition/InitialConditionImp.h @@ -11,22 +11,22 @@ class Parameter; class InitialConditionImp : public InitialCondition { public: - void setParameter(std::shared_ptr<Parameter> para); - void init(const int level); - virtual real getInitVX(int i, int level) = 0; - virtual real getInitVY(int i, int level) = 0; - virtual real getInitVZ(int i, int level) = 0; - virtual real getInitROH(int i, int level) = 0; - virtual real getInitPRESS(int i, int level) = 0; + void setParameter(std::shared_ptr<Parameter> para); + void init(const int level); + virtual real getInitVX(int i, int level) = 0; + virtual real getInitVY(int i, int level) = 0; + virtual real getInitVZ(int i, int level) = 0; + virtual real getInitROH(int i, int level) = 0; + virtual real getInitPRESS(int i, int level) = 0; protected: - InitialConditionImp() {}; - real getXCoord(int i, int level); - real getYCoord(int i, int level); - real getZCoord(int i, int level); + InitialConditionImp() {}; + real getXCoord(int i, int level); + real getYCoord(int i, int level); + real getZCoord(int i, int level); - std::shared_ptr<Parameter> para; - real XCoordStopNode, YCoordStopNode, ZCoordStopNode; + std::shared_ptr<Parameter> para; + real XCoordStopNode, YCoordStopNode, ZCoordStopNode; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Utilities/KernelConfiguration/KernelConfiguration.h b/apps/gpu/tests/NumericalTests/Utilities/KernelConfiguration/KernelConfiguration.h index 7407fe4cc33da0a929d090a30878b8fe628f03bf..16b71e771c6d0fea73b0657a05cc222939366d99 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/KernelConfiguration/KernelConfiguration.h +++ b/apps/gpu/tests/NumericalTests/Utilities/KernelConfiguration/KernelConfiguration.h @@ -9,11 +9,11 @@ class KernelConfiguration public: virtual ~KernelConfiguration() = default; virtual std::string getMainKernel() = 0; - virtual bool getMultiKernelOn() = 0; - virtual std::vector<int> getMultiKernelLevel() = 0; + virtual bool getMultiKernelOn() = 0; + virtual std::vector<int> getMultiKernelLevel() = 0; virtual std::vector<std::string> getMultiKernel() = 0; -private: +private: }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Utilities/KernelConfiguration/KernelConfigurationImp.cpp b/apps/gpu/tests/NumericalTests/Utilities/KernelConfiguration/KernelConfigurationImp.cpp index 303fee85953e09dd7a2d20d2ac2e67eb7706716c..f7b22e1ede8a1b92493acc12b4bb50b421104730 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/KernelConfiguration/KernelConfigurationImp.cpp +++ b/apps/gpu/tests/NumericalTests/Utilities/KernelConfiguration/KernelConfigurationImp.cpp @@ -1,45 +1,45 @@ #include "KernelConfigurationImp.h" std::string KernelConfigurationImp::getMainKernel() { - return mainKernel; + return mainKernel; } bool KernelConfigurationImp::getMultiKernelOn() { - return multiKernelOn; + return multiKernelOn; } std::vector<int> KernelConfigurationImp::getMultiKernelLevel() { - return multiKernelLevel; + return multiKernelLevel; } std::vector<std::string> KernelConfigurationImp::getMultiKernel() { - return multiKernel; + return multiKernel; } std::shared_ptr<KernelConfigurationImp> KernelConfigurationImp::getNewInstance(std::string kernelName) { - return std::shared_ptr<KernelConfigurationImp>(new KernelConfigurationImp(kernelName)); + return std::shared_ptr<KernelConfigurationImp>(new KernelConfigurationImp(kernelName)); } std::shared_ptr<KernelConfigurationImp> KernelConfigurationImp::getNewInstance(std::string kernel, std::vector<int> multiKernelLevel, std::vector<std::string> multiKernelName) { - return std::shared_ptr<KernelConfigurationImp>(new KernelConfigurationImp(kernel, multiKernelLevel, multiKernelName)); + return std::shared_ptr<KernelConfigurationImp>(new KernelConfigurationImp(kernel, multiKernelLevel, multiKernelName)); } KernelConfigurationImp::KernelConfigurationImp(std::string kernel) { - this->mainKernel = kernel; - multiKernelOn = false; - multiKernelLevel.resize(0); - multiKernel.resize(0); + this->mainKernel = kernel; + multiKernelOn = false; + multiKernelLevel.resize(0); + multiKernel.resize(0); } KernelConfigurationImp::KernelConfigurationImp(std::string mainKernel, std::vector<int> multiKernelLevel, std::vector<std::string> multiKernel) { - this->mainKernel = mainKernel; - multiKernelOn = true; - this->multiKernelLevel = multiKernelLevel; - this->multiKernel = multiKernel; + this->mainKernel = mainKernel; + multiKernelOn = true; + this->multiKernelLevel = multiKernelLevel; + this->multiKernel = multiKernel; } \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Utilities/KernelConfiguration/KernelConfigurationImp.h b/apps/gpu/tests/NumericalTests/Utilities/KernelConfiguration/KernelConfigurationImp.h index 7e8ad9feedff3b51d0c90553f95aa6b4a9630c6b..a676810f1bc245e56ccf8ebc48e1e7eb90d6385c 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/KernelConfiguration/KernelConfigurationImp.h +++ b/apps/gpu/tests/NumericalTests/Utilities/KernelConfiguration/KernelConfigurationImp.h @@ -9,21 +9,21 @@ class KernelConfigurationImp : public KernelConfiguration { public: std::string getMainKernel(); - bool getMultiKernelOn(); - std::vector<int> getMultiKernelLevel(); + bool getMultiKernelOn(); + std::vector<int> getMultiKernelLevel(); std::vector<std::string> getMultiKernel(); - static std::shared_ptr<KernelConfigurationImp> getNewInstance(std::string kernel); - static std::shared_ptr<KernelConfigurationImp> getNewInstance(std::string kernel, std::vector<int> multiKernelLevel, std::vector<std::string> multiKernel); + static std::shared_ptr<KernelConfigurationImp> getNewInstance(std::string kernel); + static std::shared_ptr<KernelConfigurationImp> getNewInstance(std::string kernel, std::vector<int> multiKernelLevel, std::vector<std::string> multiKernel); private: KernelConfigurationImp(std::string kernel); KernelConfigurationImp(std::string kernel, std::vector<int> multiKernelLevel, std::vector<std::string> multiKernel); - KernelConfigurationImp() {}; + KernelConfigurationImp() {}; - std::string mainKernel; - bool multiKernelOn; - std::vector<int> multiKernelLevel; + std::string mainKernel; + bool multiKernelOn; + std::vector<int> multiKernelLevel; std::vector<std::string> multiKernel; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Utilities/LogFileInformation/BasicSimulationInfo/BasicSimulationInfo.cpp b/apps/gpu/tests/NumericalTests/Utilities/LogFileInformation/BasicSimulationInfo/BasicSimulationInfo.cpp index f01dccf5cfb2c127ac3a250f2a3269d19c0be5c8..c0a76a5dc90424006cfcab72ce46730bcdbf249b 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/LogFileInformation/BasicSimulationInfo/BasicSimulationInfo.cpp +++ b/apps/gpu/tests/NumericalTests/Utilities/LogFileInformation/BasicSimulationInfo/BasicSimulationInfo.cpp @@ -2,22 +2,22 @@ std::shared_ptr<BasicSimulationInfo> BasicSimulationInfo::getNewInstance(int numberOfTimeSteps, double viscosity, int basicTimeStepLength, std::string kernel) { - return std::shared_ptr<BasicSimulationInfo>(new BasicSimulationInfo(numberOfTimeSteps, viscosity, basicTimeStepLength, kernel)); + return std::shared_ptr<BasicSimulationInfo>(new BasicSimulationInfo(numberOfTimeSteps, viscosity, basicTimeStepLength, kernel)); } std::string BasicSimulationInfo::getOutput() { - makeCenterHead("Basic Simulation Information"); - oss << "Kernel=" << kernelName << std::endl; - oss << "NumberOfTimeSteps=" << numberOfTimeSteps << std::endl; - oss << "Viscosity=" << viscosity << std::endl; - oss << "BasisTimeStepLength=" << basicTimeStepLength << std::endl; - oss << std::endl; - return oss.str(); + makeCenterHead("Basic Simulation Information"); + oss << "Kernel=" << kernelName << std::endl; + oss << "NumberOfTimeSteps=" << numberOfTimeSteps << std::endl; + oss << "Viscosity=" << viscosity << std::endl; + oss << "BasisTimeStepLength=" << basicTimeStepLength << std::endl; + oss << std::endl; + return oss.str(); } BasicSimulationInfo::BasicSimulationInfo(int numberOfTimeSteps, double viscosity, int basicTimeStepLength, std::string kernel) : numberOfTimeSteps(numberOfTimeSteps), viscosity(viscosity), basicTimeStepLength(basicTimeStepLength) { - kernelName = kernel; + kernelName = kernel; } \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Utilities/LogFileInformation/BasicSimulationInfo/BasicSimulationInfo.h b/apps/gpu/tests/NumericalTests/Utilities/LogFileInformation/BasicSimulationInfo/BasicSimulationInfo.h index a8f14cab134f821b5dd46116e2b690779cab8176..530ee93f1b016091bc11278efdb5404ff8d96e5c 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/LogFileInformation/BasicSimulationInfo/BasicSimulationInfo.h +++ b/apps/gpu/tests/NumericalTests/Utilities/LogFileInformation/BasicSimulationInfo/BasicSimulationInfo.h @@ -8,16 +8,16 @@ class BasicSimulationInfo : public LogFileInformationImp { public: - static std::shared_ptr<BasicSimulationInfo> getNewInstance(int numberOfTimeSteps, double viscosity, int basicTimeStepLength, std::string kernel); - std::string getOutput(); + static std::shared_ptr<BasicSimulationInfo> getNewInstance(int numberOfTimeSteps, double viscosity, int basicTimeStepLength, std::string kernel); + std::string getOutput(); private: - BasicSimulationInfo() = default; + BasicSimulationInfo() = default; BasicSimulationInfo(int numberOfTimeSteps, double viscosity, int basicTimeStepLength, std::string kernel); - int numberOfTimeSteps; - int basicTimeStepLength; - double viscosity; - std::string kernelName; + int numberOfTimeSteps; + int basicTimeStepLength; + double viscosity; + std::string kernelName; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Utilities/LogFileInformation/BasicTestLogFileInformation/BasicTestLogFileInformation.cpp b/apps/gpu/tests/NumericalTests/Utilities/LogFileInformation/BasicTestLogFileInformation/BasicTestLogFileInformation.cpp index 13e0989fc23a9defb716fd736850a58106e60bfa..bb6799b7bd033a04304744a6b695bdf4ef6df405 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/LogFileInformation/BasicTestLogFileInformation/BasicTestLogFileInformation.cpp +++ b/apps/gpu/tests/NumericalTests/Utilities/LogFileInformation/BasicTestLogFileInformation/BasicTestLogFileInformation.cpp @@ -2,38 +2,38 @@ std::shared_ptr<BasicTestLogFileInformation> BasicTestLogFileInformation::getNewInstance() { - return std::shared_ptr<BasicTestLogFileInformation>(new BasicTestLogFileInformation());; + return std::shared_ptr<BasicTestLogFileInformation>(new BasicTestLogFileInformation());; } std::string BasicTestLogFileInformation::getOutput() { - if (!outputBuild) { - buildOutput(); - outputBuild = true; - } - return oss.str(); + if (!outputBuild) { + buildOutput(); + outputBuild = true; + } + return oss.str(); } void BasicTestLogFileInformation::addTest(std::string testName, bool testRun) { - this->testName.push_back(testName); - this->testRun.push_back(testRun); + this->testName.push_back(testName); + this->testRun.push_back(testRun); } BasicTestLogFileInformation::BasicTestLogFileInformation() { - testName.resize(0); - testRun.resize(0); - outputBuild = false; + testName.resize(0); + testRun.resize(0); + outputBuild = false; } void BasicTestLogFileInformation::buildOutput() { - makeCenterHead("Basic Test Information"); + makeCenterHead("Basic Test Information"); - for (int i = 0; i < testName.size(); i++) - oss << testName.at(i) << "=" << std::boolalpha << testRun.at(i) << std::endl; - oss << std::endl; + for (int i = 0; i < testName.size(); i++) + oss << testName.at(i) << "=" << std::boolalpha << testRun.at(i) << std::endl; + oss << std::endl; - outputBuild = true; + outputBuild = true; } diff --git a/apps/gpu/tests/NumericalTests/Utilities/LogFileInformation/BasicTestLogFileInformation/BasicTestLogFileInformation.h b/apps/gpu/tests/NumericalTests/Utilities/LogFileInformation/BasicTestLogFileInformation/BasicTestLogFileInformation.h index 635724af3f9356675138d46c6c319db61ba6a610..4152527371e2b01c042c2a990d7b2adf16f788b6 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/LogFileInformation/BasicTestLogFileInformation/BasicTestLogFileInformation.h +++ b/apps/gpu/tests/NumericalTests/Utilities/LogFileInformation/BasicTestLogFileInformation/BasicTestLogFileInformation.h @@ -10,18 +10,18 @@ class BasicTestLogFileInformation : public LogFileInformationImp { public: - static std::shared_ptr<BasicTestLogFileInformation> getNewInstance(); + static std::shared_ptr<BasicTestLogFileInformation> getNewInstance(); - std::string getOutput(); - void addTest(std::string testName, bool testRun); + std::string getOutput(); + void addTest(std::string testName, bool testRun); private: - BasicTestLogFileInformation(); + BasicTestLogFileInformation(); - void buildOutput(); + void buildOutput(); - bool outputBuild; - std::vector<std::string> testName; - std::vector<bool> testRun; + bool outputBuild; + std::vector<std::string> testName; + std::vector<bool> testRun; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Utilities/LogFileInformation/LogFileHead/LogFileHead.cpp b/apps/gpu/tests/NumericalTests/Utilities/LogFileInformation/LogFileHead/LogFileHead.cpp index 40a7e7d9902db2d6278e09476832973923eb71e0..84ae8d6c3145c96d2b809cc842cfe910f88f6ad1 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/LogFileInformation/LogFileHead/LogFileHead.cpp +++ b/apps/gpu/tests/NumericalTests/Utilities/LogFileInformation/LogFileHead/LogFileHead.cpp @@ -9,39 +9,39 @@ std::shared_ptr<LogFileHead> LogFileHead::getNewInstance(std::vector<int> devices) { - return std::shared_ptr<LogFileHead>(new LogFileHead(devices)); + return std::shared_ptr<LogFileHead>(new LogFileHead(devices)); } std::string LogFileHead::getOutput() { - calcDateAndTime(); - - makeCenterHead("LogFile Information"); - oss << "Date=" << std::setw(2) << std::setfill('0') << nowLocal.tm_mday << "." << std::setw(2) << nowLocal.tm_mon + 1 << "." << nowLocal.tm_year + 1900 << std::endl; - oss << "Time=" << std::setw(2) << std::setfill('0') << nowLocal.tm_hour << ":" << std::setw(2) << nowLocal.tm_min << ":" << std::setw(2) << nowLocal.tm_sec << std::endl; - oss << std::endl; - - oss << "GPU_Devices=\""; - for (int i = 0; i < devices.size(); i++) { - cudaDeviceProp prop; - cudaGetDeviceProperties(&prop, devices.at(i)); - std::string deviceName = prop.name; - deviceName.assign(deviceName.begin(), remove_if(deviceName.begin(), deviceName.end(), &isspace)); - oss << deviceName; - if (i < devices.size() - 1) - oss << " "; - else - oss << "\"" << std::endl; - } - oss << std::endl; - - return oss.str(); + calcDateAndTime(); + + makeCenterHead("LogFile Information"); + oss << "Date=" << std::setw(2) << std::setfill('0') << nowLocal.tm_mday << "." << std::setw(2) << nowLocal.tm_mon + 1 << "." << nowLocal.tm_year + 1900 << std::endl; + oss << "Time=" << std::setw(2) << std::setfill('0') << nowLocal.tm_hour << ":" << std::setw(2) << nowLocal.tm_min << ":" << std::setw(2) << nowLocal.tm_sec << std::endl; + oss << std::endl; + + oss << "GPU_Devices=\""; + for (int i = 0; i < devices.size(); i++) { + cudaDeviceProp prop; + cudaGetDeviceProperties(&prop, devices.at(i)); + std::string deviceName = prop.name; + deviceName.assign(deviceName.begin(), remove_if(deviceName.begin(), deviceName.end(), &isspace)); + oss << deviceName; + if (i < devices.size() - 1) + oss << " "; + else + oss << "\"" << std::endl; + } + oss << std::endl; + + return oss.str(); } void LogFileHead::calcDateAndTime() { - now = time(NULL); - nowLocal = *localtime(&now); + now = time(NULL); + nowLocal = *localtime(&now); } LogFileHead::LogFileHead(std::vector<int> devices) : devices(devices) diff --git a/apps/gpu/tests/NumericalTests/Utilities/LogFileInformation/LogFileHead/LogFileHead.h b/apps/gpu/tests/NumericalTests/Utilities/LogFileInformation/LogFileHead/LogFileHead.h index c574c0322cb5e0f8f3f3c7609a181c1340699709..b3282676f6ade005a3323d78696b2795a8adfb80 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/LogFileInformation/LogFileHead/LogFileHead.h +++ b/apps/gpu/tests/NumericalTests/Utilities/LogFileInformation/LogFileHead/LogFileHead.h @@ -9,16 +9,16 @@ class LogFileHead : public LogFileInformationImp { public: - static std::shared_ptr<LogFileHead> getNewInstance(std::vector<int> devices); - std::string getOutput(); + static std::shared_ptr<LogFileHead> getNewInstance(std::vector<int> devices); + std::string getOutput(); private: - void calcDateAndTime(); - LogFileHead() {}; - LogFileHead(std::vector<int> devices); + void calcDateAndTime(); + LogFileHead() {}; + LogFileHead(std::vector<int> devices); - std::vector<int> devices; - time_t now; - struct tm nowLocal; + std::vector<int> devices; + time_t now; + struct tm nowLocal; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Utilities/LogFileInformation/LogFileInformation.h b/apps/gpu/tests/NumericalTests/Utilities/LogFileInformation/LogFileInformation.h index b234c86551603df780613da31b07aa5836f528d0..ffc62e45c77da2b61fe96d553c97db0b37d84ed1 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/LogFileInformation/LogFileInformation.h +++ b/apps/gpu/tests/NumericalTests/Utilities/LogFileInformation/LogFileInformation.h @@ -6,8 +6,8 @@ class LogFileInformation { public: - virtual ~LogFileInformation() = default; - virtual std::string getOutput() = 0; + virtual ~LogFileInformation() = default; + virtual std::string getOutput() = 0; private: diff --git a/apps/gpu/tests/NumericalTests/Utilities/LogFileInformation/LogFileInformationImp.cpp b/apps/gpu/tests/NumericalTests/Utilities/LogFileInformation/LogFileInformationImp.cpp index b0dca4201f1fdfec3a5c2aca8020be8a2f59ed9f..81dc83699e8fa1f2e4cfc948b60697168989b4bb 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/LogFileInformation/LogFileInformationImp.cpp +++ b/apps/gpu/tests/NumericalTests/Utilities/LogFileInformation/LogFileInformationImp.cpp @@ -4,12 +4,12 @@ void LogFileInformationImp::makeHashLine() { - oss << "#################################################" << std::endl; + oss << "#################################################" << std::endl; } void LogFileInformationImp::makeCenterHead(std::string head) { - makeHashLine(); - oss << "#" << std::setfill(' ') << std::right << std::setw(24 + head.length() / 2) << head << std::setw(24 - head.length() / 2) << "#" << std::endl; - makeHashLine(); + makeHashLine(); + oss << "#" << std::setfill(' ') << std::right << std::setw(24 + head.length() / 2) << head << std::setw(24 - head.length() / 2) << "#" << std::endl; + makeHashLine(); } diff --git a/apps/gpu/tests/NumericalTests/Utilities/LogFileInformation/LogFileInformationImp.h b/apps/gpu/tests/NumericalTests/Utilities/LogFileInformation/LogFileInformationImp.h index c89decfe90014d2090a6d9a89ec3b8d79d49ce8d..1290f4a7c8ffa4da8c7e1fdb1ece3e9dfa0a04c2 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/LogFileInformation/LogFileInformationImp.h +++ b/apps/gpu/tests/NumericalTests/Utilities/LogFileInformation/LogFileInformationImp.h @@ -8,15 +8,15 @@ class LogFileInformationImp : public LogFileInformation { public: - LogFileInformationImp() = default; - virtual std::string getOutput() = 0; + LogFileInformationImp() = default; + virtual std::string getOutput() = 0; protected: - void makeCenterHead(std::string head); + void makeCenterHead(std::string head); - std::ostringstream oss; + std::ostringstream oss; private: - void makeHashLine(); + void makeHashLine(); }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Utilities/LogFileInformation/LogFileTimeInformation/LogFileTimeInformation.cpp b/apps/gpu/tests/NumericalTests/Utilities/LogFileInformation/LogFileTimeInformation/LogFileTimeInformation.cpp index 1deafc51f9bcb19c9052d01e3852b96b02ca9825..686acb7a93cff24710f65b00952e1baf222fa449 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/LogFileInformation/LogFileTimeInformation/LogFileTimeInformation.cpp +++ b/apps/gpu/tests/NumericalTests/Utilities/LogFileInformation/LogFileTimeInformation/LogFileTimeInformation.cpp @@ -6,17 +6,17 @@ std::shared_ptr<LogFileTimeInformation> LogFileTimeInformation::getNewInstance(std::vector<std::shared_ptr<SimulationInfo> > simInfo, bool fileWriting) { - return std::shared_ptr<LogFileTimeInformation>(new LogFileTimeInformation(simInfo, fileWriting)); + return std::shared_ptr<LogFileTimeInformation>(new LogFileTimeInformation(simInfo, fileWriting)); } std::string LogFileTimeInformation::getOutput() { - makeCenterHead("Simulation Time Information"); - oss << "VTKFileWriting=" << std::boolalpha << fileWriting <<std::endl << std::endl; - for (int i = 0; i < simInfo.size(); i++) { - oss << simInfo.at(i)->getRunTimeOutput() << std::endl; - } - return oss.str(); + makeCenterHead("Simulation Time Information"); + oss << "VTKFileWriting=" << std::boolalpha << fileWriting <<std::endl << std::endl; + for (int i = 0; i < simInfo.size(); i++) { + oss << simInfo.at(i)->getRunTimeOutput() << std::endl; + } + return oss.str(); } LogFileTimeInformation::LogFileTimeInformation(std::vector<std::shared_ptr<SimulationInfo> > simInfo, bool fileWriting) : simInfo(simInfo), fileWriting(fileWriting) diff --git a/apps/gpu/tests/NumericalTests/Utilities/LogFileInformation/LogFileTimeInformation/LogFileTimeInformation.h b/apps/gpu/tests/NumericalTests/Utilities/LogFileInformation/LogFileTimeInformation/LogFileTimeInformation.h index 172c74343c173cb06c496a806e30d33a9bce2ced..0f17a548717f051b9697294f8d3747bc91c4176d 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/LogFileInformation/LogFileTimeInformation/LogFileTimeInformation.h +++ b/apps/gpu/tests/NumericalTests/Utilities/LogFileInformation/LogFileTimeInformation/LogFileTimeInformation.h @@ -11,14 +11,14 @@ class SimulationInfo; class LogFileTimeInformation : public LogFileInformationImp { public: - static std::shared_ptr<LogFileTimeInformation> getNewInstance(std::vector<std::shared_ptr<SimulationInfo> > simInfo, bool fileWriting); - std::string getOutput(); + static std::shared_ptr<LogFileTimeInformation> getNewInstance(std::vector<std::shared_ptr<SimulationInfo> > simInfo, bool fileWriting); + std::string getOutput(); private: - LogFileTimeInformation(); - LogFileTimeInformation(std::vector<std::shared_ptr<SimulationInfo> > simInfo, bool fileWriting); + LogFileTimeInformation(); + LogFileTimeInformation(std::vector<std::shared_ptr<SimulationInfo> > simInfo, bool fileWriting); - std::vector<std::shared_ptr<SimulationInfo> > simInfo; - bool fileWriting; + std::vector<std::shared_ptr<SimulationInfo> > simInfo; + bool fileWriting; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Utilities/LogFileInformation/SimulationLogFileInformation/SimulationLogFileInformation.h b/apps/gpu/tests/NumericalTests/Utilities/LogFileInformation/SimulationLogFileInformation/SimulationLogFileInformation.h index 45a41cc1f43eae3d1fa6fb17457b77a83826e7d6..a6c579b77111aa32d40995749aea0796aad559fb 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/LogFileInformation/SimulationLogFileInformation/SimulationLogFileInformation.h +++ b/apps/gpu/tests/NumericalTests/Utilities/LogFileInformation/SimulationLogFileInformation/SimulationLogFileInformation.h @@ -9,10 +9,10 @@ class SimulationLogFileInformation : public LogFileInformationImp { public: - virtual ~SimulationLogFileInformation() = default; - virtual std::string getOutput() = 0; + virtual ~SimulationLogFileInformation() = default; + virtual std::string getOutput() = 0; - virtual std::vector<std::string> getFilePathExtension() = 0; + virtual std::vector<std::string> getFilePathExtension() = 0; private: diff --git a/apps/gpu/tests/NumericalTests/Utilities/LogFileInformation/TestLogFileInformation/TestLogFileInformation.h b/apps/gpu/tests/NumericalTests/Utilities/LogFileInformation/TestLogFileInformation/TestLogFileInformation.h index f4724fe3c1ee036977b6b5ef1b212ed7a30360d5..621226cfcdca6c2849fc5af6a7259b44251efe36 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/LogFileInformation/TestLogFileInformation/TestLogFileInformation.h +++ b/apps/gpu/tests/NumericalTests/Utilities/LogFileInformation/TestLogFileInformation/TestLogFileInformation.h @@ -8,7 +8,7 @@ class TestLogFileInformation : public LogFileInformationImp { public: - virtual std::string getOutput() = 0; + virtual std::string getOutput() = 0; private: diff --git a/apps/gpu/tests/NumericalTests/Utilities/LogFileQueue/LogFileQueue.h b/apps/gpu/tests/NumericalTests/Utilities/LogFileQueue/LogFileQueue.h index 013d553901a93328fbd5f44c0b035ecd24b49d3e..e0116cb0b0cff38610348debd908c03af84d72ae 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/LogFileQueue/LogFileQueue.h +++ b/apps/gpu/tests/NumericalTests/Utilities/LogFileQueue/LogFileQueue.h @@ -4,8 +4,8 @@ class LogFileQueue { public: - virtual ~LogFileQueue() = default; - virtual void writeLogFiles() = 0; + virtual ~LogFileQueue() = default; + virtual void writeLogFiles() = 0; private: diff --git a/apps/gpu/tests/NumericalTests/Utilities/LogFileQueue/LogFileQueueImp.cpp b/apps/gpu/tests/NumericalTests/Utilities/LogFileQueue/LogFileQueueImp.cpp index fa6b0b2b5a6c7e296dd4dc3b9034c027c416cbc5..e91e3cb28ac276e5dae79aa62811e08e0ca543f2 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/LogFileQueue/LogFileQueueImp.cpp +++ b/apps/gpu/tests/NumericalTests/Utilities/LogFileQueue/LogFileQueueImp.cpp @@ -8,35 +8,35 @@ std::shared_ptr<LogFileQueueImp> LogFileQueueImp::getNewInstance(std::string basicLogFilePath) { - return std::shared_ptr<LogFileQueueImp>(new LogFileQueueImp(basicLogFilePath)); + return std::shared_ptr<LogFileQueueImp>(new LogFileQueueImp(basicLogFilePath)); } void LogFileQueueImp::writeLogFiles() { - for (uint i = 0; i < logFileWriter.size(); i++){ - logFileWriter.at(i)->writeLogFile(basicLogFilePath); - } + for (uint i = 0; i < logFileWriter.size(); i++){ + logFileWriter.at(i)->writeLogFile(basicLogFilePath); + } } void LogFileQueueImp::addLogFileWriter(std::shared_ptr<LogFileWriter> aLogFileWriter) { - logFileWriter.push_back(aLogFileWriter); + logFileWriter.push_back(aLogFileWriter); } LogFileQueueImp::LogFileQueueImp(std::string basicLogFilePath) { - logFileWriter.resize(0); + logFileWriter.resize(0); - std::ostringstream oss; - oss << basicLogFilePath << "/NumericalTestLogFiles/"; - this->basicLogFilePath = oss.str(); + std::ostringstream oss; + oss << basicLogFilePath << "/NumericalTestLogFiles/"; + this->basicLogFilePath = oss.str(); } std::string LogFileQueueImp::calcDateAndTime() { - std::ostringstream oss; - now = time(NULL); - nowLocal = *localtime(&now); - oss << std::setfill('0') << nowLocal.tm_year + 1900 << std::setw(2) << nowLocal.tm_mon + 1 << std::setw(2) << nowLocal.tm_mday << "_" << std::setw(2) << nowLocal.tm_hour << std::setw(2) << nowLocal.tm_min << std::setw(2) << nowLocal.tm_sec; - return oss.str(); + std::ostringstream oss; + now = time(NULL); + nowLocal = *localtime(&now); + oss << std::setfill('0') << nowLocal.tm_year + 1900 << std::setw(2) << nowLocal.tm_mon + 1 << std::setw(2) << nowLocal.tm_mday << "_" << std::setw(2) << nowLocal.tm_hour << std::setw(2) << nowLocal.tm_min << std::setw(2) << nowLocal.tm_sec; + return oss.str(); } diff --git a/apps/gpu/tests/NumericalTests/Utilities/LogFileQueue/LogFileQueueImp.h b/apps/gpu/tests/NumericalTests/Utilities/LogFileQueue/LogFileQueueImp.h index 133924382995d2a91abfbb51185bccdd7fe33e63..3967609b4f141950099fe76d30edf24a8bd6b221 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/LogFileQueue/LogFileQueueImp.h +++ b/apps/gpu/tests/NumericalTests/Utilities/LogFileQueue/LogFileQueueImp.h @@ -12,20 +12,20 @@ class LogFileWriter; class LogFileQueueImp : public LogFileQueue { public: - static std::shared_ptr<LogFileQueueImp> getNewInstance(std::string basicLogFilePath); + static std::shared_ptr<LogFileQueueImp> getNewInstance(std::string basicLogFilePath); - void writeLogFiles() override; - void addLogFileWriter(std::shared_ptr<LogFileWriter> aLogFileWriter); + void writeLogFiles() override; + void addLogFileWriter(std::shared_ptr<LogFileWriter> aLogFileWriter); private: - LogFileQueueImp() = default; - LogFileQueueImp(std::string basicLogFilePath); + LogFileQueueImp() = default; + LogFileQueueImp(std::string basicLogFilePath); - std::string calcDateAndTime(); + std::string calcDateAndTime(); - std::string basicLogFilePath; - std::vector<std::shared_ptr<LogFileWriter> > logFileWriter; - time_t now; - struct tm nowLocal; + std::string basicLogFilePath; + std::vector<std::shared_ptr<LogFileWriter> > logFileWriter; + time_t now; + struct tm nowLocal; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Utilities/LogFileWriter/LogFileWriter.h b/apps/gpu/tests/NumericalTests/Utilities/LogFileWriter/LogFileWriter.h index 396deec9d1a771fd74e9ca7f3e23910a6c9c7fcb..355d88b12a7c130c01bcf0b9be6c037852d73f5a 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/LogFileWriter/LogFileWriter.h +++ b/apps/gpu/tests/NumericalTests/Utilities/LogFileWriter/LogFileWriter.h @@ -6,9 +6,9 @@ class LogFileWriter { public: - virtual ~LogFileWriter() = default; - virtual void writeLogFile(std::string basicFilePath) = 0; - + virtual ~LogFileWriter() = default; + virtual void writeLogFile(std::string basicFilePath) = 0; + private: }; diff --git a/apps/gpu/tests/NumericalTests/Utilities/LogFileWriter/LogFileWriterImp.cpp b/apps/gpu/tests/NumericalTests/Utilities/LogFileWriter/LogFileWriterImp.cpp index 4d9154563cdd7b46d9a987f46fddf669320f2a50..899c4b1fb4892123c807c8633aa1d7a06a215122 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/LogFileWriter/LogFileWriterImp.cpp +++ b/apps/gpu/tests/NumericalTests/Utilities/LogFileWriter/LogFileWriterImp.cpp @@ -14,53 +14,53 @@ LogFileWriterImp::LogFileWriterImp(std::shared_ptr<LogFileHead> logFileHead, std::shared_ptr<BasicSimulationInfo> basicSimInfo, std::shared_ptr<BasicTestLogFileInformation> basicTestInfo, std::vector<std::shared_ptr<TestLogFileInformation> > testLogFiles, std::shared_ptr<LogFileTimeInformation> logFileTimeInfo, std::shared_ptr<SimulationLogFileInformation> simLogInfo, std::string kernel, double viscosity) : viscosity(viscosity) { - kernelName = kernel; + kernelName = kernel; - logFileInfo.push_back(logFileHead); - logFileInfo.push_back(basicSimInfo); - this->simLogInfo = simLogInfo; - logFileInfo.push_back(simLogInfo); - logFileInfo.push_back(logFileTimeInfo); - logFileInfo.push_back(basicTestInfo); - for (int i = 0; i < testLogFiles.size(); i++) - logFileInfo.push_back(testLogFiles.at(i)); + logFileInfo.push_back(logFileHead); + logFileInfo.push_back(basicSimInfo); + this->simLogInfo = simLogInfo; + logFileInfo.push_back(simLogInfo); + logFileInfo.push_back(logFileTimeInfo); + logFileInfo.push_back(basicTestInfo); + for (int i = 0; i < testLogFiles.size(); i++) + logFileInfo.push_back(testLogFiles.at(i)); } std::shared_ptr<LogFileWriterImp> LogFileWriterImp::getNewInstance(std::shared_ptr<LogFileHead> logFileHead, std::shared_ptr<BasicSimulationInfo> basicSimInfo, std::shared_ptr<BasicTestLogFileInformation> basicTestInfo, std::vector<std::shared_ptr<TestLogFileInformation> > testLogFiles, std::shared_ptr<LogFileTimeInformation> logFileTimeInfo, std::shared_ptr<SimulationLogFileInformation> simLogInfo, std::string kernel, double viscosity) { - return std::shared_ptr<LogFileWriterImp>(new LogFileWriterImp(logFileHead, basicSimInfo, basicTestInfo, testLogFiles, logFileTimeInfo, simLogInfo, kernel, viscosity)); + return std::shared_ptr<LogFileWriterImp>(new LogFileWriterImp(logFileHead, basicSimInfo, basicTestInfo, testLogFiles, logFileTimeInfo, simLogInfo, kernel, viscosity)); } void LogFileWriterImp::writeLogFile(std::string basicFilePath) { - logFilePath = buildFilePath(basicFilePath); - logFile.open(logFilePath, std::ios::out); + logFilePath = buildFilePath(basicFilePath); + logFile.open(logFilePath, std::ios::out); - for (int i = 0; i < logFileInfo.size(); i++) - logFile << logFileInfo.at(i)->getOutput(); + for (int i = 0; i < logFileInfo.size(); i++) + logFile << logFileInfo.at(i)->getOutput(); - logFile.close(); + logFile.close(); } std::string LogFileWriterImp::calcDateAndTime() { - std::ostringstream oss; - now = time(NULL); - nowLocal = *localtime(&now); - oss << std::setfill('0') << nowLocal.tm_year + 1900 << std::setw(2) << nowLocal.tm_mon + 1 << std::setw(2) << nowLocal.tm_mday << "_" << std::setw(2) << nowLocal.tm_hour << std::setw(2) << nowLocal.tm_min << std::setw(2) << nowLocal.tm_sec; - return oss.str(); + std::ostringstream oss; + now = time(NULL); + nowLocal = *localtime(&now); + oss << std::setfill('0') << nowLocal.tm_year + 1900 << std::setw(2) << nowLocal.tm_mon + 1 << std::setw(2) << nowLocal.tm_mday << "_" << std::setw(2) << nowLocal.tm_hour << std::setw(2) << nowLocal.tm_min << std::setw(2) << nowLocal.tm_sec; + return oss.str(); } std::string LogFileWriterImp::buildFilePath(std::string basicFilePath) { - std::ostringstream filePath; - filePath << basicFilePath << simLogInfo->getFilePathExtension().at(0) << "/viscosity_" << viscosity << "/" << simLogInfo->getFilePathExtension().at(1) << "/" << kernelName; - - std::filesystem::path dir(filePath.str()); - if (!(std::filesystem::exists(dir))) - std::filesystem::create_directories(dir); + std::ostringstream filePath; + filePath << basicFilePath << simLogInfo->getFilePathExtension().at(0) << "/viscosity_" << viscosity << "/" << simLogInfo->getFilePathExtension().at(1) << "/" << kernelName; + + std::filesystem::path dir(filePath.str()); + if (!(std::filesystem::exists(dir))) + std::filesystem::create_directories(dir); - filePath << "/logfile_" << calcDateAndTime() << "_" << kernelName << "_vis_" << viscosity << ".txt"; - return filePath.str(); + filePath << "/logfile_" << calcDateAndTime() << "_" << kernelName << "_vis_" << viscosity << ".txt"; + return filePath.str(); } diff --git a/apps/gpu/tests/NumericalTests/Utilities/LogFileWriter/LogFileWriterImp.h b/apps/gpu/tests/NumericalTests/Utilities/LogFileWriter/LogFileWriterImp.h index f810e90a9ea1de416f925b81bca645f5aa89396f..5672baaf80e1824dd91cc7110f37bad2da64c9d5 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/LogFileWriter/LogFileWriterImp.h +++ b/apps/gpu/tests/NumericalTests/Utilities/LogFileWriter/LogFileWriterImp.h @@ -18,25 +18,25 @@ class TestLogFileInformation; class LogFileWriterImp : public LogFileWriter { public: - static std::shared_ptr<LogFileWriterImp> getNewInstance(std::shared_ptr<LogFileHead> logFileHead, std::shared_ptr<BasicSimulationInfo> basicSimInfo, std::shared_ptr<BasicTestLogFileInformation> basicTestInfo, std::vector<std::shared_ptr<TestLogFileInformation> > testLogFiles, - std::shared_ptr<LogFileTimeInformation> logFileTimeInfo, - std::shared_ptr<SimulationLogFileInformation> simLogInfo, - std::string kernel, double viscosity); - void writeLogFile(std::string basicFilePath); - + static std::shared_ptr<LogFileWriterImp> getNewInstance(std::shared_ptr<LogFileHead> logFileHead, std::shared_ptr<BasicSimulationInfo> basicSimInfo, std::shared_ptr<BasicTestLogFileInformation> basicTestInfo, std::vector<std::shared_ptr<TestLogFileInformation> > testLogFiles, + std::shared_ptr<LogFileTimeInformation> logFileTimeInfo, + std::shared_ptr<SimulationLogFileInformation> simLogInfo, + std::string kernel, double viscosity); + void writeLogFile(std::string basicFilePath); + private: - LogFileWriterImp(std::shared_ptr<LogFileHead> logFileHead, std::shared_ptr<BasicSimulationInfo> basicSimInfo, std::shared_ptr<BasicTestLogFileInformation> basicTestInfo, std::vector<std::shared_ptr<TestLogFileInformation> > testLogFiles, std::shared_ptr<LogFileTimeInformation> logFileTimeInfo, std::shared_ptr<SimulationLogFileInformation> simLogInfo, std::string kernel, double viscosity); - std::string calcDateAndTime(); - std::string buildFilePath(std::string basicFilePath); + LogFileWriterImp(std::shared_ptr<LogFileHead> logFileHead, std::shared_ptr<BasicSimulationInfo> basicSimInfo, std::shared_ptr<BasicTestLogFileInformation> basicTestInfo, std::vector<std::shared_ptr<TestLogFileInformation> > testLogFiles, std::shared_ptr<LogFileTimeInformation> logFileTimeInfo, std::shared_ptr<SimulationLogFileInformation> simLogInfo, std::string kernel, double viscosity); + std::string calcDateAndTime(); + std::string buildFilePath(std::string basicFilePath); - std::fstream logFile; - std::string logFilePath; - time_t now; - struct tm nowLocal; - std::string kernelName; - double viscosity; - std::vector<std::shared_ptr<LogFileInformation> > logFileInfo; - std::shared_ptr<SimulationLogFileInformation> simLogInfo; + std::fstream logFile; + std::string logFilePath; + time_t now; + struct tm nowLocal; + std::string kernelName; + double viscosity; + std::vector<std::shared_ptr<LogFileInformation> > logFileInfo; + std::shared_ptr<SimulationLogFileInformation> simLogInfo; }; #endif diff --git a/apps/gpu/tests/NumericalTests/Utilities/NumericalTestFactory/NumericalTestFactory.h b/apps/gpu/tests/NumericalTests/Utilities/NumericalTestFactory/NumericalTestFactory.h index d21deb7bda97df58830ec9f4dc3dcb8445915911..2296d51ea97500dc8ae0bfd765f6e0aa98f6c8b3 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/NumericalTestFactory/NumericalTestFactory.h +++ b/apps/gpu/tests/NumericalTests/Utilities/NumericalTestFactory/NumericalTestFactory.h @@ -12,10 +12,10 @@ class LogFileQueue; class NumericalTestFactory { public: - virtual ~NumericalTestFactory() = default; - virtual std::vector<std::shared_ptr<TestSimulation> > getTestSimulations() = 0; - virtual std::shared_ptr<TestQueue> getTestQueue() = 0; - virtual std::shared_ptr<LogFileQueue> getLogFileQueue() = 0; + virtual ~NumericalTestFactory() = default; + virtual std::vector<std::shared_ptr<TestSimulation> > getTestSimulations() = 0; + virtual std::shared_ptr<TestQueue> getTestQueue() = 0; + virtual std::shared_ptr<LogFileQueue> getLogFileQueue() = 0; private: }; diff --git a/apps/gpu/tests/NumericalTests/Utilities/NumericalTestFactory/NumericalTestFactoryImp.cpp b/apps/gpu/tests/NumericalTests/Utilities/NumericalTestFactory/NumericalTestFactoryImp.cpp index 95e8331882282d86f25848e87df1327b77748085..deab118b87410856f293578eea9a35896e2a1164 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/NumericalTestFactory/NumericalTestFactoryImp.cpp +++ b/apps/gpu/tests/NumericalTests/Utilities/NumericalTestFactory/NumericalTestFactoryImp.cpp @@ -62,428 +62,428 @@ std::shared_ptr<NumericalTestFactoryImp> NumericalTestFactoryImp::getNewInstance(std::shared_ptr<ConfigDataStruct> configFileData) { - return std::shared_ptr<NumericalTestFactoryImp>(new NumericalTestFactoryImp(configFileData)); + return std::shared_ptr<NumericalTestFactoryImp>(new NumericalTestFactoryImp(configFileData)); } NumericalTestFactoryImp::NumericalTestFactoryImp(std::shared_ptr<ConfigDataStruct> configFileData) { - colorOutput = ColorConsoleOutputImp::getInstance(); - myTestQueue = TestQueueImp::getNewInstance(colorOutput); - myLogFileWriterQueue = LogFileQueueImp::getNewInstance(configFileData->logFilePath); - anaResultWriter = AnalyticalResults2DToVTKWriterImp::getInstance(configFileData->writeAnalyticalToVTK); - l2NormCalculatorFactory = L2NormCalculatorFactoryImp::getInstance(); - l2NormTestsBetweenKernels.resize(0); - init(configFileData); + colorOutput = ColorConsoleOutputImp::getInstance(); + myTestQueue = TestQueueImp::getNewInstance(colorOutput); + myLogFileWriterQueue = LogFileQueueImp::getNewInstance(configFileData->logFilePath); + anaResultWriter = AnalyticalResults2DToVTKWriterImp::getInstance(configFileData->writeAnalyticalToVTK); + l2NormCalculatorFactory = L2NormCalculatorFactoryImp::getInstance(); + l2NormTestsBetweenKernels.resize(0); + init(configFileData); } std::vector<std::shared_ptr<TestSimulation> > NumericalTestFactoryImp::getTestSimulations() { - return myTestSimulations; + return myTestSimulations; } std::shared_ptr<TestQueue> NumericalTestFactoryImp::getTestQueue() { - return myTestQueue; + return myTestQueue; } std::shared_ptr<LogFileQueue> NumericalTestFactoryImp::getLogFileQueue() { - return myLogFileWriterQueue; + return myLogFileWriterQueue; } void NumericalTestFactoryImp::init(std::shared_ptr<ConfigDataStruct> configFileData) { - simID = 1; - numberOfSimulations = configFileData->numberOfSimulations; - - for (size_t i = 0; i < configFileData->kernelsToTest.size(); i++) { - for (size_t j = 0; j < configFileData->viscosity.size(); j++) { - for (size_t k = 0; k < configFileData->taylorGreenVortexUxParameter.size(); k++) { - std::shared_ptr<SimulationDataStruct> simDataStruct = makeTaylorGreenUxSimulationData(configFileData->kernelsToTest.at(i), configFileData->viscosity.at(j), configFileData->taylorGreenVortexUxParameter.at(k), configFileData->taylorGreenVortexUxGridInformation); - if (simDataStruct->simGroupRun) { - std::shared_ptr<NumericalTestStruct> numericalTestStruct = makeNumericalTestStruct(configFileData, simDataStruct, configFileData->kernelsToTest.at(i), configFileData->viscosity.at(j), configFileData->taylorGreenVortexUxParameter.at(k)->basicTimeStepLength); - addNumericalTestStruct(numericalTestStruct); - } - } - - for (size_t k = 0; k < configFileData->taylorGreenVortexUzParameter.size(); k++) { - std::shared_ptr<SimulationDataStruct> simDataStruct = makeTaylorGreenUzSimulationData(configFileData->kernelsToTest.at(i), configFileData->viscosity.at(j), configFileData->taylorGreenVortexUzParameter.at(k), configFileData->taylorGreenVortexUzGridInformation); - if (simDataStruct->simGroupRun) { - std::shared_ptr<NumericalTestStruct> numericalTestStruct = makeNumericalTestStruct(configFileData, simDataStruct, configFileData->kernelsToTest.at(i), configFileData->viscosity.at(j), configFileData->taylorGreenVortexUzParameter.at(k)->basicTimeStepLength); - addNumericalTestStruct(numericalTestStruct); - } - } - - for (size_t k = 0; k < configFileData->shearWaveParameter.size(); k++) { - std::shared_ptr<SimulationDataStruct> simDataStruct = makeShearWaveSimulationData(configFileData->kernelsToTest.at(i), configFileData->viscosity.at(j), configFileData->shearWaveParameter.at(k), configFileData->shearWaveGridInformation); - if (simDataStruct->simGroupRun) { - std::shared_ptr<NumericalTestStruct> numericalTestStruct = makeNumericalTestStruct(configFileData, simDataStruct, configFileData->kernelsToTest.at(i), configFileData->viscosity.at(j), configFileData->shearWaveParameter.at(k)->basicTimeStepLength); - addNumericalTestStruct(numericalTestStruct); - } - - } - - } - } + simID = 1; + numberOfSimulations = configFileData->numberOfSimulations; + + for (size_t i = 0; i < configFileData->kernelsToTest.size(); i++) { + for (size_t j = 0; j < configFileData->viscosity.size(); j++) { + for (size_t k = 0; k < configFileData->taylorGreenVortexUxParameter.size(); k++) { + std::shared_ptr<SimulationDataStruct> simDataStruct = makeTaylorGreenUxSimulationData(configFileData->kernelsToTest.at(i), configFileData->viscosity.at(j), configFileData->taylorGreenVortexUxParameter.at(k), configFileData->taylorGreenVortexUxGridInformation); + if (simDataStruct->simGroupRun) { + std::shared_ptr<NumericalTestStruct> numericalTestStruct = makeNumericalTestStruct(configFileData, simDataStruct, configFileData->kernelsToTest.at(i), configFileData->viscosity.at(j), configFileData->taylorGreenVortexUxParameter.at(k)->basicTimeStepLength); + addNumericalTestStruct(numericalTestStruct); + } + } + + for (size_t k = 0; k < configFileData->taylorGreenVortexUzParameter.size(); k++) { + std::shared_ptr<SimulationDataStruct> simDataStruct = makeTaylorGreenUzSimulationData(configFileData->kernelsToTest.at(i), configFileData->viscosity.at(j), configFileData->taylorGreenVortexUzParameter.at(k), configFileData->taylorGreenVortexUzGridInformation); + if (simDataStruct->simGroupRun) { + std::shared_ptr<NumericalTestStruct> numericalTestStruct = makeNumericalTestStruct(configFileData, simDataStruct, configFileData->kernelsToTest.at(i), configFileData->viscosity.at(j), configFileData->taylorGreenVortexUzParameter.at(k)->basicTimeStepLength); + addNumericalTestStruct(numericalTestStruct); + } + } + + for (size_t k = 0; k < configFileData->shearWaveParameter.size(); k++) { + std::shared_ptr<SimulationDataStruct> simDataStruct = makeShearWaveSimulationData(configFileData->kernelsToTest.at(i), configFileData->viscosity.at(j), configFileData->shearWaveParameter.at(k), configFileData->shearWaveGridInformation); + if (simDataStruct->simGroupRun) { + std::shared_ptr<NumericalTestStruct> numericalTestStruct = makeNumericalTestStruct(configFileData, simDataStruct, configFileData->kernelsToTest.at(i), configFileData->viscosity.at(j), configFileData->shearWaveParameter.at(k)->basicTimeStepLength); + addNumericalTestStruct(numericalTestStruct); + } + + } + + } + } } std::shared_ptr<NumericalTestStruct> NumericalTestFactoryImp::makeNumericalTestStruct(std::shared_ptr<ConfigDataStruct> configFileData, std::shared_ptr<SimulationDataStruct> simDataStruct, std::string kernel, double viscosity, int basicTimeStepLength) { - std::shared_ptr<NumericalTestStruct> numTestStruct = std::shared_ptr<NumericalTestStruct>(new NumericalTestStruct); + std::shared_ptr<NumericalTestStruct> numTestStruct = std::shared_ptr<NumericalTestStruct>(new NumericalTestStruct); - std::vector<std::shared_ptr<TestSimulationImp> > testSim = makeTestSimulations(simDataStruct->testSimData, configFileData->vectorWriterInfo, configFileData->ySliceForCalculation); - numTestStruct->testSimulations = testSim; - std::shared_ptr<BasicTestLogFileInformation> basicTestLogFileInfo = BasicTestLogFileInformation::getNewInstance(); - std::vector<std::shared_ptr<TestLogFileInformation> > testLogFileInfo; - - std::shared_ptr<TestStruct> phiTestStruct = makePhiTestsStructs(configFileData->phiTestParameter, testSim, viscosity); - initTestStruct(phiTestStruct, numTestStruct, testLogFileInfo, basicTestLogFileInfo); + std::vector<std::shared_ptr<TestSimulationImp> > testSim = makeTestSimulations(simDataStruct->testSimData, configFileData->vectorWriterInfo, configFileData->ySliceForCalculation); + numTestStruct->testSimulations = testSim; + std::shared_ptr<BasicTestLogFileInformation> basicTestLogFileInfo = BasicTestLogFileInformation::getNewInstance(); + std::vector<std::shared_ptr<TestLogFileInformation> > testLogFileInfo; + + std::shared_ptr<TestStruct> phiTestStruct = makePhiTestsStructs(configFileData->phiTestParameter, testSim, viscosity); + initTestStruct(phiTestStruct, numTestStruct, testLogFileInfo, basicTestLogFileInfo); - std::shared_ptr<TestStruct> nyTestStruct = makeNyTestsStructs(configFileData->nyTestParameter, testSim, viscosity); - initTestStruct(nyTestStruct, numTestStruct, testLogFileInfo, basicTestLogFileInfo); - - std::shared_ptr<TestStruct> l2NormTestSruct = makeL2NormTestsStructs(configFileData->l2NormTestParameter, testSim); - initTestStruct(l2NormTestSruct, numTestStruct, testLogFileInfo, basicTestLogFileInfo); + std::shared_ptr<TestStruct> nyTestStruct = makeNyTestsStructs(configFileData->nyTestParameter, testSim, viscosity); + initTestStruct(nyTestStruct, numTestStruct, testLogFileInfo, basicTestLogFileInfo); + + std::shared_ptr<TestStruct> l2NormTestSruct = makeL2NormTestsStructs(configFileData->l2NormTestParameter, testSim); + initTestStruct(l2NormTestSruct, numTestStruct, testLogFileInfo, basicTestLogFileInfo); - std::shared_ptr<TestStruct> l2NormTestBetweenKernelStruct = makeL2NormTestsBetweenKernelsStructs(configFileData->l2NormTestBetweenKernelsParameter, testSim, kernel); - initTestStruct(l2NormTestBetweenKernelStruct, numTestStruct, testLogFileInfo, basicTestLogFileInfo); + std::shared_ptr<TestStruct> l2NormTestBetweenKernelStruct = makeL2NormTestsBetweenKernelsStructs(configFileData->l2NormTestBetweenKernelsParameter, testSim, kernel); + initTestStruct(l2NormTestBetweenKernelStruct, numTestStruct, testLogFileInfo, basicTestLogFileInfo); - std::vector<std::shared_ptr<SimulationInfo> > simInfo; - for (size_t i = 0; i < simDataStruct->testSimData.size(); i++) - simInfo.push_back(simDataStruct->testSimData.at(i)->simInformation); + std::vector<std::shared_ptr<SimulationInfo> > simInfo; + for (size_t i = 0; i < simDataStruct->testSimData.size(); i++) + simInfo.push_back(simDataStruct->testSimData.at(i)->simInformation); - std::shared_ptr<LogFileWriter> logFileWriter = makeLogFileWriter(testLogFileInfo, simDataStruct->logFileInformation, simInfo, kernel, viscosity, basicTimeStepLength, configFileData->logFilePara, basicTestLogFileInfo); - numTestStruct->logFileWriter = logFileWriter; + std::shared_ptr<LogFileWriter> logFileWriter = makeLogFileWriter(testLogFileInfo, simDataStruct->logFileInformation, simInfo, kernel, viscosity, basicTimeStepLength, configFileData->logFilePara, basicTestLogFileInfo); + numTestStruct->logFileWriter = logFileWriter; - return numTestStruct; + return numTestStruct; } void NumericalTestFactoryImp::addNumericalTestStruct(std::shared_ptr<NumericalTestStruct> numericalTestStruct) { - for (size_t i = 0; i < numericalTestStruct->testSimulations.size(); i++) - myTestSimulations.push_back(numericalTestStruct->testSimulations.at(i)); + for (size_t i = 0; i < numericalTestStruct->testSimulations.size(); i++) + myTestSimulations.push_back(numericalTestStruct->testSimulations.at(i)); - for (size_t i = 0; i < numericalTestStruct->tests.size(); i++) - myTestQueue->addTest(numericalTestStruct->tests.at(i)); + for (size_t i = 0; i < numericalTestStruct->tests.size(); i++) + myTestQueue->addTest(numericalTestStruct->tests.at(i)); - myLogFileWriterQueue->addLogFileWriter(numericalTestStruct->logFileWriter); + myLogFileWriterQueue->addLogFileWriter(numericalTestStruct->logFileWriter); } std::shared_ptr<SimulationDataStruct> NumericalTestFactoryImp::makeTaylorGreenUxSimulationData(std::string kernel, double viscosity, std::shared_ptr<TaylorGreenVortexUxParameterStruct> simParaStruct, std::vector<std::shared_ptr<GridInformationStruct> > gridInfoStruct) { - std::shared_ptr<SimulationDataStruct> simDataStruct = std::shared_ptr<SimulationDataStruct>(new SimulationDataStruct); - - if (gridInfoStruct.size() > 0) { - for (size_t i = 0; i < gridInfoStruct.size(); i++) { - std::shared_ptr<TestSimulationDataStruct> aTestSimData = std::shared_ptr<TestSimulationDataStruct>(new TestSimulationDataStruct); - aTestSimData->simParameter = SimulationParameterTaylorGreenUx::getNewInstance(kernel, viscosity, simParaStruct, gridInfoStruct.at(i)); - aTestSimData->initialCondition = InitialConditionTaylorGreenUx::getNewInstance(simParaStruct, gridInfoStruct.at(i)); - aTestSimData->simInformation = SimulationInfoTaylorGreenUx::getNewInstance(simID, kernel, viscosity, simParaStruct, gridInfoStruct.at(i), numberOfSimulations); - simID++; - aTestSimData->analyticalResult = AnalyticalResultsTaylorGreenUx::getNewInstance(viscosity, simParaStruct); - simDataStruct->testSimData.push_back(aTestSimData); - } - simDataStruct->logFileInformation = LogFileInformationTaylorGreenUx::getNewInstance(simParaStruct, gridInfoStruct); - simDataStruct->simGroupRun = true; - } - else { - simDataStruct->simGroupRun = false; - } - return simDataStruct; + std::shared_ptr<SimulationDataStruct> simDataStruct = std::shared_ptr<SimulationDataStruct>(new SimulationDataStruct); + + if (gridInfoStruct.size() > 0) { + for (size_t i = 0; i < gridInfoStruct.size(); i++) { + std::shared_ptr<TestSimulationDataStruct> aTestSimData = std::shared_ptr<TestSimulationDataStruct>(new TestSimulationDataStruct); + aTestSimData->simParameter = SimulationParameterTaylorGreenUx::getNewInstance(kernel, viscosity, simParaStruct, gridInfoStruct.at(i)); + aTestSimData->initialCondition = InitialConditionTaylorGreenUx::getNewInstance(simParaStruct, gridInfoStruct.at(i)); + aTestSimData->simInformation = SimulationInfoTaylorGreenUx::getNewInstance(simID, kernel, viscosity, simParaStruct, gridInfoStruct.at(i), numberOfSimulations); + simID++; + aTestSimData->analyticalResult = AnalyticalResultsTaylorGreenUx::getNewInstance(viscosity, simParaStruct); + simDataStruct->testSimData.push_back(aTestSimData); + } + simDataStruct->logFileInformation = LogFileInformationTaylorGreenUx::getNewInstance(simParaStruct, gridInfoStruct); + simDataStruct->simGroupRun = true; + } + else { + simDataStruct->simGroupRun = false; + } + return simDataStruct; } std::shared_ptr<SimulationDataStruct> NumericalTestFactoryImp::makeTaylorGreenUzSimulationData(std::string kernel, double viscosity, std::shared_ptr<TaylorGreenVortexUzParameterStruct> simParaStruct, std::vector<std::shared_ptr<GridInformationStruct> > gridInfoStruct) { - std::shared_ptr<SimulationDataStruct> simDataStruct = std::shared_ptr<SimulationDataStruct>(new SimulationDataStruct); - if (gridInfoStruct.size() > 0) { - for (size_t i = 0; i < gridInfoStruct.size(); i++) { - std::shared_ptr<TestSimulationDataStruct> aTestSimData = std::shared_ptr<TestSimulationDataStruct>(new TestSimulationDataStruct); - aTestSimData->simParameter = SimulationParameterTaylorGreenUz::getNewInstance(kernel, viscosity, simParaStruct, gridInfoStruct.at(i)); - aTestSimData->initialCondition = InitialConditionTaylorGreenUz::getNewInstance(simParaStruct, gridInfoStruct.at(i)); - aTestSimData->simInformation = SimulationInfoTaylorGreenUz::getNewInstance(simID, kernel, viscosity, simParaStruct, gridInfoStruct.at(i), numberOfSimulations); - simID++; - aTestSimData->analyticalResult = AnalyticalResultsTaylorGreenUz::getNewInstance(viscosity, simParaStruct); - simDataStruct->testSimData.push_back(aTestSimData); - } - simDataStruct->logFileInformation = LogFileInformationTaylorGreenUz::getNewInstance(simParaStruct, gridInfoStruct); - simDataStruct->simGroupRun = true; - } - else { - simDataStruct->simGroupRun = false; - } - return simDataStruct; + std::shared_ptr<SimulationDataStruct> simDataStruct = std::shared_ptr<SimulationDataStruct>(new SimulationDataStruct); + if (gridInfoStruct.size() > 0) { + for (size_t i = 0; i < gridInfoStruct.size(); i++) { + std::shared_ptr<TestSimulationDataStruct> aTestSimData = std::shared_ptr<TestSimulationDataStruct>(new TestSimulationDataStruct); + aTestSimData->simParameter = SimulationParameterTaylorGreenUz::getNewInstance(kernel, viscosity, simParaStruct, gridInfoStruct.at(i)); + aTestSimData->initialCondition = InitialConditionTaylorGreenUz::getNewInstance(simParaStruct, gridInfoStruct.at(i)); + aTestSimData->simInformation = SimulationInfoTaylorGreenUz::getNewInstance(simID, kernel, viscosity, simParaStruct, gridInfoStruct.at(i), numberOfSimulations); + simID++; + aTestSimData->analyticalResult = AnalyticalResultsTaylorGreenUz::getNewInstance(viscosity, simParaStruct); + simDataStruct->testSimData.push_back(aTestSimData); + } + simDataStruct->logFileInformation = LogFileInformationTaylorGreenUz::getNewInstance(simParaStruct, gridInfoStruct); + simDataStruct->simGroupRun = true; + } + else { + simDataStruct->simGroupRun = false; + } + return simDataStruct; } std::shared_ptr<SimulationDataStruct> NumericalTestFactoryImp::makeShearWaveSimulationData(std::string kernel, double viscosity, std::shared_ptr<ShearWaveParameterStruct> simParaStruct, std::vector<std::shared_ptr<GridInformationStruct> > gridInfoStruct) { - std::shared_ptr<SimulationDataStruct> simDataStruct = std::shared_ptr<SimulationDataStruct>(new SimulationDataStruct); - if (gridInfoStruct.size() > 0) { - for (size_t i = 0; i < gridInfoStruct.size(); i++) { - std::shared_ptr<TestSimulationDataStruct> aTestSimData = std::shared_ptr<TestSimulationDataStruct>(new TestSimulationDataStruct); - aTestSimData->simParameter = ShearWaveSimulationParameter::getNewInstance(kernel, viscosity, simParaStruct, gridInfoStruct.at(i)); - aTestSimData->initialCondition = InitialConditionShearWave::getNewInstance(simParaStruct, gridInfoStruct.at(i)); - aTestSimData->simInformation = ShearWaveSimulationInfo::getNewInstance(simID, kernel, viscosity, simParaStruct, gridInfoStruct.at(i), numberOfSimulations); - simID++; - aTestSimData->analyticalResult = ShearWaveAnalyticalResults::getNewInstance(viscosity, simParaStruct); - simDataStruct->testSimData.push_back(aTestSimData); - } - simDataStruct->logFileInformation = ShearWaveInformation::getNewInstance(simParaStruct, gridInfoStruct); - simDataStruct->simGroupRun = true; - } - else { - simDataStruct->simGroupRun = false; - } - return simDataStruct; + std::shared_ptr<SimulationDataStruct> simDataStruct = std::shared_ptr<SimulationDataStruct>(new SimulationDataStruct); + if (gridInfoStruct.size() > 0) { + for (size_t i = 0; i < gridInfoStruct.size(); i++) { + std::shared_ptr<TestSimulationDataStruct> aTestSimData = std::shared_ptr<TestSimulationDataStruct>(new TestSimulationDataStruct); + aTestSimData->simParameter = ShearWaveSimulationParameter::getNewInstance(kernel, viscosity, simParaStruct, gridInfoStruct.at(i)); + aTestSimData->initialCondition = InitialConditionShearWave::getNewInstance(simParaStruct, gridInfoStruct.at(i)); + aTestSimData->simInformation = ShearWaveSimulationInfo::getNewInstance(simID, kernel, viscosity, simParaStruct, gridInfoStruct.at(i), numberOfSimulations); + simID++; + aTestSimData->analyticalResult = ShearWaveAnalyticalResults::getNewInstance(viscosity, simParaStruct); + simDataStruct->testSimData.push_back(aTestSimData); + } + simDataStruct->logFileInformation = ShearWaveInformation::getNewInstance(simParaStruct, gridInfoStruct); + simDataStruct->simGroupRun = true; + } + else { + simDataStruct->simGroupRun = false; + } + return simDataStruct; } std::vector<std::shared_ptr<TestSimulationImp> > NumericalTestFactoryImp::makeTestSimulations(std::vector<std::shared_ptr<TestSimulationDataStruct> > testSimDataStruct, std::shared_ptr<VectorWriterInformationStruct> vectorWriterInfo, unsigned int ySliceForCalculation) { - std::vector<std::shared_ptr<TestSimulationImp> > testSimulations; - for (size_t i = 0; i < testSimDataStruct.size(); i++) { - std::shared_ptr<TimeImp> time = TimeImp::getNewInstance(); - testSimDataStruct.at(i)->simInformation->setTimeInfo(time); - std::shared_ptr<SimulationResults> simResult = SimulationResults::getNewInstance(testSimDataStruct.at(i)->simParameter); - std::shared_ptr<ToVectorWriter> toVectorWriter = Y2dSliceToResults::getNewInstance(vectorWriterInfo, testSimDataStruct.at(i)->simParameter->getTimeStepLength(), simResult, ySliceForCalculation); - - - auto currentTestSimData = testSimDataStruct.at(i); - auto para = vf::gpu::tests::makeParameter(currentTestSimData->simParameter); - currentTestSimData->initialCondition->setParameter(para); - auto vfsim = vf::gpu::tests::makeVirtualFluidSimulation(para, currentTestSimData->initialCondition, toVectorWriter); - - auto testSim = std::make_shared<TestSimulationImp>(vfsim, currentTestSimData, simResult, time, toVectorWriter, anaResultWriter, colorOutput); - testSim->setParameter(para); - - testSimulations.push_back(testSim); - } - - return testSimulations; + std::vector<std::shared_ptr<TestSimulationImp> > testSimulations; + for (size_t i = 0; i < testSimDataStruct.size(); i++) { + std::shared_ptr<TimeImp> time = TimeImp::getNewInstance(); + testSimDataStruct.at(i)->simInformation->setTimeInfo(time); + std::shared_ptr<SimulationResults> simResult = SimulationResults::getNewInstance(testSimDataStruct.at(i)->simParameter); + std::shared_ptr<ToVectorWriter> toVectorWriter = Y2dSliceToResults::getNewInstance(vectorWriterInfo, testSimDataStruct.at(i)->simParameter->getTimeStepLength(), simResult, ySliceForCalculation); + + + auto currentTestSimData = testSimDataStruct.at(i); + auto para = vf::gpu::tests::makeParameter(currentTestSimData->simParameter); + currentTestSimData->initialCondition->setParameter(para); + auto vfsim = vf::gpu::tests::makeVirtualFluidSimulation(para, currentTestSimData->initialCondition, toVectorWriter); + + auto testSim = std::make_shared<TestSimulationImp>(vfsim, currentTestSimData, simResult, time, toVectorWriter, anaResultWriter, colorOutput); + testSim->setParameter(para); + + testSimulations.push_back(testSim); + } + + return testSimulations; } std::shared_ptr<TestStruct> NumericalTestFactoryImp::makePhiTestsStructs(std::shared_ptr<PhiTestParameterStruct> testParameter, std::vector<std::shared_ptr<TestSimulationImp>> testSimumlations, double viscosity) { - std::shared_ptr<TestStruct> testStruct = std::shared_ptr<TestStruct>(new TestStruct); - - if (testParameter->basicTestParameter->runTest && testSimumlations.size() > 1) { - std::shared_ptr<PhiTestLogFileInformation> testLogFileInfo = PhiTestLogFileInformation::getNewInstance(testParameter); - - std::vector<std::shared_ptr<PhiTestPostProcessingStrategy> > postProcessingStrategies; - for (size_t i = 0; i < testSimumlations.size(); i++) - postProcessingStrategies.push_back(PhiTestPostProcessingStrategy::getNewInstance(testSimumlations.at(i)->getSimulationResults(), testSimumlations.at(i)->getAnalyticalResults(), testParameter, testSimumlations.at(i)->getDataToCalcTests())); - - for (size_t i = 0; i < testSimumlations.at(0)->getDataToCalcTests().size(); i++) { - std::vector<std::shared_ptr<PhiTest> > phiTests = makePhiTests(testParameter, testSimumlations, postProcessingStrategies, viscosity, testSimumlations.at(0)->getDataToCalcTests().at(i)); - testLogFileInfo->addTestGroup(phiTests); - for (size_t j = 0; j < phiTests.size(); j++) - testStruct->tests.push_back(phiTests.at(j)); - } - testStruct->logFileInfo = testLogFileInfo; - testStruct->testName = "PhiTest"; - } - - return testStruct; + std::shared_ptr<TestStruct> testStruct = std::shared_ptr<TestStruct>(new TestStruct); + + if (testParameter->basicTestParameter->runTest && testSimumlations.size() > 1) { + std::shared_ptr<PhiTestLogFileInformation> testLogFileInfo = PhiTestLogFileInformation::getNewInstance(testParameter); + + std::vector<std::shared_ptr<PhiTestPostProcessingStrategy> > postProcessingStrategies; + for (size_t i = 0; i < testSimumlations.size(); i++) + postProcessingStrategies.push_back(PhiTestPostProcessingStrategy::getNewInstance(testSimumlations.at(i)->getSimulationResults(), testSimumlations.at(i)->getAnalyticalResults(), testParameter, testSimumlations.at(i)->getDataToCalcTests())); + + for (size_t i = 0; i < testSimumlations.at(0)->getDataToCalcTests().size(); i++) { + std::vector<std::shared_ptr<PhiTest> > phiTests = makePhiTests(testParameter, testSimumlations, postProcessingStrategies, viscosity, testSimumlations.at(0)->getDataToCalcTests().at(i)); + testLogFileInfo->addTestGroup(phiTests); + for (size_t j = 0; j < phiTests.size(); j++) + testStruct->tests.push_back(phiTests.at(j)); + } + testStruct->logFileInfo = testLogFileInfo; + testStruct->testName = "PhiTest"; + } + + return testStruct; } std::vector<std::shared_ptr<PhiTest>> NumericalTestFactoryImp::makePhiTests(std::shared_ptr<PhiTestParameterStruct> testParameter, std::vector<std::shared_ptr<TestSimulationImp>> testSim, std::vector<std::shared_ptr<PhiTestPostProcessingStrategy>> phiPostProStrategy, double viscosity, std::string dataToCalculate) { - std::vector<std::shared_ptr<PhiTest> > phiTests; - for (size_t i = 1; i < testSim.size(); i++) { - for (size_t j = 0; j < i; j++) { - std::shared_ptr<PhiTest> test = PhiTest::getNewInstance(colorOutput, viscosity, testParameter, dataToCalculate); - test->addSimulation(testSim.at(j), testSim.at(j)->getSimulationInfo(), phiPostProStrategy.at(j)); - test->addSimulation(testSim.at(i), testSim.at(i)->getSimulationInfo(), phiPostProStrategy.at(i)); - - testSim.at(j)->registerSimulationObserver(test); - testSim.at(i)->registerSimulationObserver(test); - - phiTests.push_back(test); - } - } - return phiTests; + std::vector<std::shared_ptr<PhiTest> > phiTests; + for (size_t i = 1; i < testSim.size(); i++) { + for (size_t j = 0; j < i; j++) { + std::shared_ptr<PhiTest> test = PhiTest::getNewInstance(colorOutput, viscosity, testParameter, dataToCalculate); + test->addSimulation(testSim.at(j), testSim.at(j)->getSimulationInfo(), phiPostProStrategy.at(j)); + test->addSimulation(testSim.at(i), testSim.at(i)->getSimulationInfo(), phiPostProStrategy.at(i)); + + testSim.at(j)->registerSimulationObserver(test); + testSim.at(i)->registerSimulationObserver(test); + + phiTests.push_back(test); + } + } + return phiTests; } std::shared_ptr<TestStruct> NumericalTestFactoryImp::makeNyTestsStructs(std::shared_ptr<NyTestParameterStruct> testParameter, std::vector<std::shared_ptr<TestSimulationImp>> testSimumlations, double viscosity) { - std::shared_ptr<TestStruct> testStruct = std::shared_ptr<TestStruct>(new TestStruct); - - if (testParameter->basicTestParameter->runTest && testSimumlations.size() > 1) { - std::shared_ptr<NyTestLogFileInformation> testLogFileInfo = NyTestLogFileInformation::getNewInstance(testParameter); - - std::vector<std::shared_ptr<NyTestPostProcessingStrategy> > postProcessingStrategies; - for (size_t i = 0; i < testSimumlations.size(); i++) - postProcessingStrategies.push_back(NyTestPostProcessingStrategy::getNewInstance(testSimumlations.at(i)->getSimulationResults(), testSimumlations.at(i)->getAnalyticalResults(), testParameter, testSimumlations.at(i)->getDataToCalcTests())); - - for (size_t i = 0; i < testSimumlations.at(0)->getDataToCalcTests().size(); i++) { - std::vector<std::shared_ptr<NyTest> > nyTests = makeNyTests(testParameter, testSimumlations, postProcessingStrategies, viscosity, testSimumlations.at(0)->getDataToCalcTests().at(i)); - testLogFileInfo->addTestGroup(nyTests); - for (size_t j = 0; j < nyTests.size(); j++) - testStruct->tests.push_back(nyTests.at(j)); - } - testStruct->logFileInfo = testLogFileInfo; - testStruct->testName = "NyTest"; - } - - return testStruct; + std::shared_ptr<TestStruct> testStruct = std::shared_ptr<TestStruct>(new TestStruct); + + if (testParameter->basicTestParameter->runTest && testSimumlations.size() > 1) { + std::shared_ptr<NyTestLogFileInformation> testLogFileInfo = NyTestLogFileInformation::getNewInstance(testParameter); + + std::vector<std::shared_ptr<NyTestPostProcessingStrategy> > postProcessingStrategies; + for (size_t i = 0; i < testSimumlations.size(); i++) + postProcessingStrategies.push_back(NyTestPostProcessingStrategy::getNewInstance(testSimumlations.at(i)->getSimulationResults(), testSimumlations.at(i)->getAnalyticalResults(), testParameter, testSimumlations.at(i)->getDataToCalcTests())); + + for (size_t i = 0; i < testSimumlations.at(0)->getDataToCalcTests().size(); i++) { + std::vector<std::shared_ptr<NyTest> > nyTests = makeNyTests(testParameter, testSimumlations, postProcessingStrategies, viscosity, testSimumlations.at(0)->getDataToCalcTests().at(i)); + testLogFileInfo->addTestGroup(nyTests); + for (size_t j = 0; j < nyTests.size(); j++) + testStruct->tests.push_back(nyTests.at(j)); + } + testStruct->logFileInfo = testLogFileInfo; + testStruct->testName = "NyTest"; + } + + return testStruct; } std::vector<std::shared_ptr<NyTest>> NumericalTestFactoryImp::makeNyTests(std::shared_ptr<NyTestParameterStruct> testParameter, std::vector<std::shared_ptr<TestSimulationImp>> testSim, std::vector<std::shared_ptr<NyTestPostProcessingStrategy>> nuPostProStrategy, double viscosity, std::string dataToCalculate) { - std::vector<std::shared_ptr<NyTest> > nyTests; - for (size_t i = 1; i < testSim.size(); i++) { - for (size_t j = 0; j < i; j++) { - std::shared_ptr<NyTest> test = NyTest::getNewInstance(colorOutput, viscosity, testParameter, dataToCalculate); - test->addSimulation(testSim.at(j), testSim.at(j)->getSimulationInfo(), nuPostProStrategy.at(j)); - test->addSimulation(testSim.at(i), testSim.at(i)->getSimulationInfo(), nuPostProStrategy.at(i)); - - testSim.at(j)->registerSimulationObserver(test); - testSim.at(i)->registerSimulationObserver(test); - - nyTests.push_back(test); - } - } - return nyTests; + std::vector<std::shared_ptr<NyTest> > nyTests; + for (size_t i = 1; i < testSim.size(); i++) { + for (size_t j = 0; j < i; j++) { + std::shared_ptr<NyTest> test = NyTest::getNewInstance(colorOutput, viscosity, testParameter, dataToCalculate); + test->addSimulation(testSim.at(j), testSim.at(j)->getSimulationInfo(), nuPostProStrategy.at(j)); + test->addSimulation(testSim.at(i), testSim.at(i)->getSimulationInfo(), nuPostProStrategy.at(i)); + + testSim.at(j)->registerSimulationObserver(test); + testSim.at(i)->registerSimulationObserver(test); + + nyTests.push_back(test); + } + } + return nyTests; } std::shared_ptr<TestStruct> NumericalTestFactoryImp::makeL2NormTestsStructs(std::shared_ptr<L2NormTestParameterStruct> testParameter, std::vector<std::shared_ptr<TestSimulationImp> > testSimumlations) { - std::shared_ptr<TestStruct> testStruct = std::shared_ptr<TestStruct> (new TestStruct); - - if (testParameter->basicTestParameter->runTest) { - std::vector<std::shared_ptr<L2NormPostProcessingStrategy> > postProcessingStrategies; - for (size_t i = 0; i < testSimumlations.size(); i++) - postProcessingStrategies.push_back(L2NormPostProcessingStrategy::getNewInstance(testSimumlations.at(i)->getSimulationResults(), testSimumlations.at(i)->getAnalyticalResults(), testParameter, l2NormCalculatorFactory, testSimumlations.at(i)->getDataToCalcTests())); - - std::vector<std::shared_ptr<L2NormTest> > tests = makeL2NormTests(testSimumlations, postProcessingStrategies, testParameter); - std::shared_ptr<L2NormInformation> testLogFileInfo = L2NormInformation::getNewInstance(tests, testParameter, testSimumlations.at(0)->getDataToCalcTests()); - - for(size_t i = 0; i < tests.size(); i++) - testStruct->tests.push_back(tests.at(i)); - testStruct->logFileInfo = testLogFileInfo; - testStruct->testName = "L2NormTest"; - } - return testStruct; + std::shared_ptr<TestStruct> testStruct = std::shared_ptr<TestStruct> (new TestStruct); + + if (testParameter->basicTestParameter->runTest) { + std::vector<std::shared_ptr<L2NormPostProcessingStrategy> > postProcessingStrategies; + for (size_t i = 0; i < testSimumlations.size(); i++) + postProcessingStrategies.push_back(L2NormPostProcessingStrategy::getNewInstance(testSimumlations.at(i)->getSimulationResults(), testSimumlations.at(i)->getAnalyticalResults(), testParameter, l2NormCalculatorFactory, testSimumlations.at(i)->getDataToCalcTests())); + + std::vector<std::shared_ptr<L2NormTest> > tests = makeL2NormTests(testSimumlations, postProcessingStrategies, testParameter); + std::shared_ptr<L2NormInformation> testLogFileInfo = L2NormInformation::getNewInstance(tests, testParameter, testSimumlations.at(0)->getDataToCalcTests()); + + for(size_t i = 0; i < tests.size(); i++) + testStruct->tests.push_back(tests.at(i)); + testStruct->logFileInfo = testLogFileInfo; + testStruct->testName = "L2NormTest"; + } + return testStruct; } std::vector<std::shared_ptr<L2NormTest> > NumericalTestFactoryImp::makeL2NormTests(std::vector<std::shared_ptr<TestSimulationImp> > testSim, std::vector<std::shared_ptr<L2NormPostProcessingStrategy> > postProStrategy, std::shared_ptr<L2NormTestParameterStruct> testParameter) { - std::vector<std::shared_ptr<L2NormTest> > l2Tests; - for (size_t k = 0; k < testParameter->normalizeData.size(); k++) { - for (size_t i = 0; i < testSim.size(); i++) { - for (size_t j = 0; j < testSim.at(i)->getDataToCalcTests().size(); j++) { - std::shared_ptr<L2NormTest> test = L2NormTest::getNewInstance(colorOutput, testParameter, testSim.at(i)->getDataToCalcTests().at(j), testParameter->maxDiff.at(k), testParameter->normalizeData.at(k)); - test->addSimulation(testSim.at(i), testSim.at(i)->getSimulationInfo(), postProStrategy.at(i)); - testSim.at(i)->registerSimulationObserver(test); - l2Tests.push_back(test); - } - } - } - return l2Tests; + std::vector<std::shared_ptr<L2NormTest> > l2Tests; + for (size_t k = 0; k < testParameter->normalizeData.size(); k++) { + for (size_t i = 0; i < testSim.size(); i++) { + for (size_t j = 0; j < testSim.at(i)->getDataToCalcTests().size(); j++) { + std::shared_ptr<L2NormTest> test = L2NormTest::getNewInstance(colorOutput, testParameter, testSim.at(i)->getDataToCalcTests().at(j), testParameter->maxDiff.at(k), testParameter->normalizeData.at(k)); + test->addSimulation(testSim.at(i), testSim.at(i)->getSimulationInfo(), postProStrategy.at(i)); + testSim.at(i)->registerSimulationObserver(test); + l2Tests.push_back(test); + } + } + } + return l2Tests; } std::shared_ptr<TestStruct> NumericalTestFactoryImp::makeL2NormTestsBetweenKernelsStructs(std::shared_ptr<L2NormTestBetweenKernelsParameterStruct> testPara, std::vector<std::shared_ptr<TestSimulationImp> > testSim, std::string kernelName) { - std::shared_ptr<TestStruct> testStruct = std::shared_ptr<TestStruct>(new TestStruct); - testStruct->testName = "L2NormTestBetweenKernel"; - - if (testPara->basicTestParameter->runTest) { - - std::vector<std::shared_ptr<L2NormBetweenKernelPostProcessingStrategy> > postProcessingStrategies; - for (size_t i = 0; i < testSim.size(); i++) - postProcessingStrategies.push_back(L2NormBetweenKernelPostProcessingStrategy::getNewInstance(testSim.at(i)->getSimulationResults(), testSim.at(i)->getAnalyticalResults(), testPara, l2NormCalculatorFactory, testSim.at(i)->getDataToCalcTests())); - - if (kernelName == testPara->basicKernel) { - std::vector<std::vector<std::shared_ptr<L2NormTestBetweenKernels> > > tests = makeL2NormTestsBetweenKernels(testPara, testSim, postProcessingStrategies); - - if (l2NormTestsBetweenKernels.size() == 0) { - l2NormTestsBetweenKernels = tests; - } - else { - for (size_t i = 0; i < tests.size(); i++) - for (size_t j = 0; j < tests.at(i).size(); j++) - l2NormTestsBetweenKernels.at(i).push_back(tests.at(i).at(j)); - } - - }else{ - std::vector<std::shared_ptr<L2NormTestBetweenKernels> > tests = linkL2NormTestsBetweenKernels(testPara, testSim, postProcessingStrategies); - for (size_t i = 0; i < tests.size(); i++) - testStruct->tests.push_back(tests.at(i)); - testStruct->logFileInfo = L2NormBetweenKernelsInformation::getNewInstance(tests, testPara, testSim.at(0)->getDataToCalcTests()); - } - } - return testStruct; + std::shared_ptr<TestStruct> testStruct = std::shared_ptr<TestStruct>(new TestStruct); + testStruct->testName = "L2NormTestBetweenKernel"; + + if (testPara->basicTestParameter->runTest) { + + std::vector<std::shared_ptr<L2NormBetweenKernelPostProcessingStrategy> > postProcessingStrategies; + for (size_t i = 0; i < testSim.size(); i++) + postProcessingStrategies.push_back(L2NormBetweenKernelPostProcessingStrategy::getNewInstance(testSim.at(i)->getSimulationResults(), testSim.at(i)->getAnalyticalResults(), testPara, l2NormCalculatorFactory, testSim.at(i)->getDataToCalcTests())); + + if (kernelName == testPara->basicKernel) { + std::vector<std::vector<std::shared_ptr<L2NormTestBetweenKernels> > > tests = makeL2NormTestsBetweenKernels(testPara, testSim, postProcessingStrategies); + + if (l2NormTestsBetweenKernels.size() == 0) { + l2NormTestsBetweenKernels = tests; + } + else { + for (size_t i = 0; i < tests.size(); i++) + for (size_t j = 0; j < tests.at(i).size(); j++) + l2NormTestsBetweenKernels.at(i).push_back(tests.at(i).at(j)); + } + + }else{ + std::vector<std::shared_ptr<L2NormTestBetweenKernels> > tests = linkL2NormTestsBetweenKernels(testPara, testSim, postProcessingStrategies); + for (size_t i = 0; i < tests.size(); i++) + testStruct->tests.push_back(tests.at(i)); + testStruct->logFileInfo = L2NormBetweenKernelsInformation::getNewInstance(tests, testPara, testSim.at(0)->getDataToCalcTests()); + } + } + return testStruct; } std::vector<std::vector<std::shared_ptr<L2NormTestBetweenKernels> > > NumericalTestFactoryImp::makeL2NormTestsBetweenKernels(std::shared_ptr<L2NormTestBetweenKernelsParameterStruct> testPara, std::vector<std::shared_ptr<TestSimulationImp> > testSim, std::vector<std::shared_ptr<L2NormBetweenKernelPostProcessingStrategy> > postProcessingStrategies) { - std::vector<std::vector<std::shared_ptr<L2NormTestBetweenKernels> > > testsForAllKernels; - - std::vector<std::shared_ptr<L2NormTestBetweenKernels> > testForOneKernel; - - for (size_t l = 0; l < testPara->kernelsToTest.size() - 1; l++) { - for (size_t k = 0; k < testSim.size(); k++) { - for(size_t j = 0; j < testSim.at(k)->getDataToCalcTests().size(); j++){ - for (size_t m = 0; m < testPara->normalizeData.size(); m++) { - for (size_t i = 0; i < testPara->timeSteps.size(); i++) { - std::shared_ptr<L2NormTestBetweenKernels> aTest = L2NormTestBetweenKernels::getNewInstance(colorOutput, testSim.at(k)->getDataToCalcTests().at(j), testPara->timeSteps.at(i), testPara->normalizeData.at(m), l2NormCalculatorFactory); - aTest->setBasicSimulation(testSim.at(k), testSim.at(k)->getSimulationInfo(), postProcessingStrategies.at(k)); - testSim.at(k)->registerSimulationObserver(aTest); - testForOneKernel.push_back(aTest); - } - } - } - } - testsForAllKernels.push_back(testForOneKernel); - testForOneKernel.resize(0); - } - - return testsForAllKernels; + std::vector<std::vector<std::shared_ptr<L2NormTestBetweenKernels> > > testsForAllKernels; + + std::vector<std::shared_ptr<L2NormTestBetweenKernels> > testForOneKernel; + + for (size_t l = 0; l < testPara->kernelsToTest.size() - 1; l++) { + for (size_t k = 0; k < testSim.size(); k++) { + for(size_t j = 0; j < testSim.at(k)->getDataToCalcTests().size(); j++){ + for (size_t m = 0; m < testPara->normalizeData.size(); m++) { + for (size_t i = 0; i < testPara->timeSteps.size(); i++) { + std::shared_ptr<L2NormTestBetweenKernels> aTest = L2NormTestBetweenKernels::getNewInstance(colorOutput, testSim.at(k)->getDataToCalcTests().at(j), testPara->timeSteps.at(i), testPara->normalizeData.at(m), l2NormCalculatorFactory); + aTest->setBasicSimulation(testSim.at(k), testSim.at(k)->getSimulationInfo(), postProcessingStrategies.at(k)); + testSim.at(k)->registerSimulationObserver(aTest); + testForOneKernel.push_back(aTest); + } + } + } + } + testsForAllKernels.push_back(testForOneKernel); + testForOneKernel.resize(0); + } + + return testsForAllKernels; } std::vector<std::shared_ptr<L2NormTestBetweenKernels> > NumericalTestFactoryImp::linkL2NormTestsBetweenKernels(std::shared_ptr<L2NormTestBetweenKernelsParameterStruct> testPara, std::vector<std::shared_ptr<TestSimulationImp> > testSim, std::vector<std::shared_ptr<L2NormBetweenKernelPostProcessingStrategy> > postProcessingStrategies) { - std::vector<std::shared_ptr<L2NormTestBetweenKernels> > tests; - - if (testSim.size() > 0) - if (l2NormTestsBetweenKernels.at(0).size() == 0) - l2NormTestsBetweenKernels.erase(l2NormTestsBetweenKernels.begin()); - - for (size_t k = 0; k < testSim.size(); k++) { - for (size_t j = 0; j < testSim.at(k)->getDataToCalcTests().size(); j++) { - for (size_t m = 0; m < testPara->normalizeData.size(); m++) { - for (size_t i = 0; i < testPara->timeSteps.size(); i++) { - std::shared_ptr<L2NormTestBetweenKernels> aTest = l2NormTestsBetweenKernels.at(0).at(0); - l2NormTestsBetweenKernels.at(0).erase(l2NormTestsBetweenKernels.at(0).begin()); - aTest->setDivergentKernelSimulation(testSim.at(k), testSim.at(k)->getSimulationInfo(), postProcessingStrategies.at(k)); - testSim.at(k)->registerSimulationObserver(aTest); - tests.push_back(aTest); - } - } - } - } - return tests; + std::vector<std::shared_ptr<L2NormTestBetweenKernels> > tests; + + if (testSim.size() > 0) + if (l2NormTestsBetweenKernels.at(0).size() == 0) + l2NormTestsBetweenKernels.erase(l2NormTestsBetweenKernels.begin()); + + for (size_t k = 0; k < testSim.size(); k++) { + for (size_t j = 0; j < testSim.at(k)->getDataToCalcTests().size(); j++) { + for (size_t m = 0; m < testPara->normalizeData.size(); m++) { + for (size_t i = 0; i < testPara->timeSteps.size(); i++) { + std::shared_ptr<L2NormTestBetweenKernels> aTest = l2NormTestsBetweenKernels.at(0).at(0); + l2NormTestsBetweenKernels.at(0).erase(l2NormTestsBetweenKernels.at(0).begin()); + aTest->setDivergentKernelSimulation(testSim.at(k), testSim.at(k)->getSimulationInfo(), postProcessingStrategies.at(k)); + testSim.at(k)->registerSimulationObserver(aTest); + tests.push_back(aTest); + } + } + } + } + return tests; } void NumericalTestFactoryImp::initTestStruct(std::shared_ptr<TestStruct> testStruct, std::shared_ptr<NumericalTestStruct> numericalTestStruct, std::vector<std::shared_ptr<TestLogFileInformation> > &testLogFileInfo, std::shared_ptr<BasicTestLogFileInformation> basicTestLogFileInfo) { - for (size_t i = 0; i < testStruct->tests.size(); i++) - numericalTestStruct->tests.push_back(testStruct->tests.at(i)); - if (testStruct->tests.size() > 0) { - testLogFileInfo.push_back(testStruct->logFileInfo); - basicTestLogFileInfo->addTest(testStruct->testName, true); - } - else { - basicTestLogFileInfo->addTest(testStruct->testName, false); - } + for (size_t i = 0; i < testStruct->tests.size(); i++) + numericalTestStruct->tests.push_back(testStruct->tests.at(i)); + if (testStruct->tests.size() > 0) { + testLogFileInfo.push_back(testStruct->logFileInfo); + basicTestLogFileInfo->addTest(testStruct->testName, true); + } + else { + basicTestLogFileInfo->addTest(testStruct->testName, false); + } } std::shared_ptr<LogFileWriter> NumericalTestFactoryImp::makeLogFileWriter(std::vector<std::shared_ptr<TestLogFileInformation> > testLogFiles, std::shared_ptr<SimulationLogFileInformation> simLogInfo, std::vector<std::shared_ptr<SimulationInfo> > simInfo, std::string kernel, double viscosity, int basicTimeStepLength, std::shared_ptr<LogFileParameterStruct> logFilePara, std::shared_ptr<BasicTestLogFileInformation> basicTestLogFileInfo) { - std::shared_ptr<LogFileHead> logFileHead = LogFileHead::getNewInstance(logFilePara->devices); - std::shared_ptr<BasicSimulationInfo> basicSimInfo = BasicSimulationInfo::getNewInstance(logFilePara->numberOfTimeSteps, viscosity, basicTimeStepLength, kernel); + std::shared_ptr<LogFileHead> logFileHead = LogFileHead::getNewInstance(logFilePara->devices); + std::shared_ptr<BasicSimulationInfo> basicSimInfo = BasicSimulationInfo::getNewInstance(logFilePara->numberOfTimeSteps, viscosity, basicTimeStepLength, kernel); - std::shared_ptr<LogFileTimeInformation> logFileTimeInfo = LogFileTimeInformation::getNewInstance(simInfo, logFilePara->writeAnalyticalToVTK); + std::shared_ptr<LogFileTimeInformation> logFileTimeInfo = LogFileTimeInformation::getNewInstance(simInfo, logFilePara->writeAnalyticalToVTK); - std::shared_ptr<LogFileWriterImp> logFileWriter = LogFileWriterImp::getNewInstance(logFileHead, basicSimInfo, basicTestLogFileInfo, testLogFiles, logFileTimeInfo, simLogInfo, kernel, viscosity); + std::shared_ptr<LogFileWriterImp> logFileWriter = LogFileWriterImp::getNewInstance(logFileHead, basicSimInfo, basicTestLogFileInfo, testLogFiles, logFileTimeInfo, simLogInfo, kernel, viscosity); - return logFileWriter; + return logFileWriter; } \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Utilities/NumericalTestFactory/NumericalTestFactoryImp.h b/apps/gpu/tests/NumericalTests/Utilities/NumericalTestFactory/NumericalTestFactoryImp.h index ff9753a4afde382e48fc8d07a8763f26f4c6b23d..079a6df321121c024ad659a78fe399559a492362 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/NumericalTestFactory/NumericalTestFactoryImp.h +++ b/apps/gpu/tests/NumericalTests/Utilities/NumericalTestFactory/NumericalTestFactoryImp.h @@ -47,53 +47,53 @@ class TestLogFileInformation; class NumericalTestFactoryImp : public NumericalTestFactory { public: - static std::shared_ptr<NumericalTestFactoryImp> getNewInstance(std::shared_ptr<ConfigDataStruct> configFileData); + static std::shared_ptr<NumericalTestFactoryImp> getNewInstance(std::shared_ptr<ConfigDataStruct> configFileData); - std::vector<std::shared_ptr<TestSimulation> > getTestSimulations(); - std::shared_ptr<TestQueue> getTestQueue(); - std::shared_ptr<LogFileQueue> getLogFileQueue(); + std::vector<std::shared_ptr<TestSimulation> > getTestSimulations(); + std::shared_ptr<TestQueue> getTestQueue(); + std::shared_ptr<LogFileQueue> getLogFileQueue(); private: - NumericalTestFactoryImp() {}; - NumericalTestFactoryImp(std::shared_ptr<ConfigDataStruct> configFileData); - - void init(std::shared_ptr<ConfigDataStruct> configFileData); - - std::shared_ptr<NumericalTestStruct> makeNumericalTestStruct(std::shared_ptr<ConfigDataStruct> configFileData, std::shared_ptr<SimulationDataStruct> simDataStruct, std::string kernel, double viscosity, int basicTimeStepLength); - void addNumericalTestStruct(std::shared_ptr<NumericalTestStruct> numericalTestStruct); - - std::shared_ptr<SimulationDataStruct> makeTaylorGreenUxSimulationData(std::string kernel, double viscosity, std::shared_ptr<TaylorGreenVortexUxParameterStruct> simParaStruct, std::vector<std::shared_ptr<GridInformationStruct> > gridInfoStruct); - std::shared_ptr<SimulationDataStruct> makeTaylorGreenUzSimulationData(std::string kernel, double viscosity, std::shared_ptr<TaylorGreenVortexUzParameterStruct> simParaStruct, std::vector<std::shared_ptr<GridInformationStruct> > gridInfoStruct); - std::shared_ptr<SimulationDataStruct> makeShearWaveSimulationData(std::string kernel, double viscosity, std::shared_ptr<ShearWaveParameterStruct> simParaStruct, std::vector<std::shared_ptr<GridInformationStruct> > gridInfoStruct); - - std::vector<std::shared_ptr<TestSimulationImp> > makeTestSimulations(std::vector<std::shared_ptr<TestSimulationDataStruct> > testSimDataStruct, std::shared_ptr<VectorWriterInformationStruct> vectorWriterInfo, unsigned int ySliceForCalculation); - - std::shared_ptr<TestStruct> makePhiTestsStructs(std::shared_ptr<PhiTestParameterStruct> testParameter, std::vector<std::shared_ptr<TestSimulationImp> > testSimumlations, double viscosity); - std::shared_ptr<TestStruct> makeNyTestsStructs(std::shared_ptr<NyTestParameterStruct> testParameter, std::vector<std::shared_ptr<TestSimulationImp> > testSimumlations, double viscosity); - std::shared_ptr<TestStruct> makeL2NormTestsStructs(std::shared_ptr<L2NormTestParameterStruct> testParameter, std::vector<std::shared_ptr<TestSimulationImp> > testSimumlations); - std::shared_ptr<TestStruct> makeL2NormTestsBetweenKernelsStructs(std::shared_ptr<L2NormTestBetweenKernelsParameterStruct> testPara, std::vector<std::shared_ptr<TestSimulationImp> > testSim, std::string kernel); - - std::vector<std::shared_ptr<PhiTest> > makePhiTests(std::shared_ptr<PhiTestParameterStruct> testParameter, std::vector<std::shared_ptr<TestSimulationImp> > testSim, std::vector<std::shared_ptr<PhiTestPostProcessingStrategy> > phiAndNuPostProStrategy, double viscosity, std::string dataToCalculate); - std::vector<std::shared_ptr<NyTest> > makeNyTests(std::shared_ptr<NyTestParameterStruct> testParameter, std::vector<std::shared_ptr<TestSimulationImp> > testSim, std::vector<std::shared_ptr<NyTestPostProcessingStrategy> > phiAndNuPostProStrategy, double viscosity, std::string dataToCalculate); - std::vector<std::shared_ptr<L2NormTest> > makeL2NormTests(std::vector<std::shared_ptr<TestSimulationImp> > testSim, std::vector<std::shared_ptr<L2NormPostProcessingStrategy> > postProStrategy, std::shared_ptr<L2NormTestParameterStruct> testParameter); - std::vector<std::vector<std::shared_ptr<L2NormTestBetweenKernels> > > makeL2NormTestsBetweenKernels(std::shared_ptr<L2NormTestBetweenKernelsParameterStruct> testPara, std::vector<std::shared_ptr<TestSimulationImp> > testSim, std::vector<std::shared_ptr<L2NormBetweenKernelPostProcessingStrategy> > postProcessingStrategies); - std::vector<std::shared_ptr<L2NormTestBetweenKernels> > linkL2NormTestsBetweenKernels(std::shared_ptr<L2NormTestBetweenKernelsParameterStruct> testPara, std::vector<std::shared_ptr<TestSimulationImp> > testSim, std::vector<std::shared_ptr<L2NormBetweenKernelPostProcessingStrategy> > postProcessingStrategies); - - std::shared_ptr<LogFileWriter> makeLogFileWriter(std::vector<std::shared_ptr<TestLogFileInformation> > testLogFiles, std::shared_ptr<SimulationLogFileInformation> simLogInfo, std::vector<std::shared_ptr<SimulationInfo> > simInfo, std::string kernel, double viscosity, int basicTimeStepLength, std::shared_ptr<LogFileParameterStruct> logFilePara, std::shared_ptr<BasicTestLogFileInformation> basicTestLogFileInfo); - - void initTestStruct(std::shared_ptr<TestStruct> testStruct, std::shared_ptr<NumericalTestStruct> numericalTestStruct, std::vector<std::shared_ptr<TestLogFileInformation> > &testLogFileInfo, std::shared_ptr<BasicTestLogFileInformation> basicTestLogFileInfo); - - std::vector<std::shared_ptr<TestSimulation> > myTestSimulations; - std::shared_ptr<TestQueueImp> myTestQueue; - std::shared_ptr<LogFileQueueImp> myLogFileWriterQueue; - std::vector<std::vector<std::shared_ptr<L2NormTestBetweenKernels> > > l2NormTestsBetweenKernels; - std::shared_ptr<ColorConsoleOutput> colorOutput; - std::shared_ptr<AnalyticalResults2DToVTKWriter> anaResultWriter; - std::shared_ptr<L2NormCalculatorFactory> l2NormCalculatorFactory; - - int simID; - int numberOfSimulations; - // int simPerKernel, numberOfTestGroupsBetweenKernels, numberOfTestsForOneSimulation, numberOfTestsBetweenKernels; - // int posBasicSimulationForL2Test, posDivergentSimulationForL2Test; + NumericalTestFactoryImp() {}; + NumericalTestFactoryImp(std::shared_ptr<ConfigDataStruct> configFileData); + + void init(std::shared_ptr<ConfigDataStruct> configFileData); + + std::shared_ptr<NumericalTestStruct> makeNumericalTestStruct(std::shared_ptr<ConfigDataStruct> configFileData, std::shared_ptr<SimulationDataStruct> simDataStruct, std::string kernel, double viscosity, int basicTimeStepLength); + void addNumericalTestStruct(std::shared_ptr<NumericalTestStruct> numericalTestStruct); + + std::shared_ptr<SimulationDataStruct> makeTaylorGreenUxSimulationData(std::string kernel, double viscosity, std::shared_ptr<TaylorGreenVortexUxParameterStruct> simParaStruct, std::vector<std::shared_ptr<GridInformationStruct> > gridInfoStruct); + std::shared_ptr<SimulationDataStruct> makeTaylorGreenUzSimulationData(std::string kernel, double viscosity, std::shared_ptr<TaylorGreenVortexUzParameterStruct> simParaStruct, std::vector<std::shared_ptr<GridInformationStruct> > gridInfoStruct); + std::shared_ptr<SimulationDataStruct> makeShearWaveSimulationData(std::string kernel, double viscosity, std::shared_ptr<ShearWaveParameterStruct> simParaStruct, std::vector<std::shared_ptr<GridInformationStruct> > gridInfoStruct); + + std::vector<std::shared_ptr<TestSimulationImp> > makeTestSimulations(std::vector<std::shared_ptr<TestSimulationDataStruct> > testSimDataStruct, std::shared_ptr<VectorWriterInformationStruct> vectorWriterInfo, unsigned int ySliceForCalculation); + + std::shared_ptr<TestStruct> makePhiTestsStructs(std::shared_ptr<PhiTestParameterStruct> testParameter, std::vector<std::shared_ptr<TestSimulationImp> > testSimumlations, double viscosity); + std::shared_ptr<TestStruct> makeNyTestsStructs(std::shared_ptr<NyTestParameterStruct> testParameter, std::vector<std::shared_ptr<TestSimulationImp> > testSimumlations, double viscosity); + std::shared_ptr<TestStruct> makeL2NormTestsStructs(std::shared_ptr<L2NormTestParameterStruct> testParameter, std::vector<std::shared_ptr<TestSimulationImp> > testSimumlations); + std::shared_ptr<TestStruct> makeL2NormTestsBetweenKernelsStructs(std::shared_ptr<L2NormTestBetweenKernelsParameterStruct> testPara, std::vector<std::shared_ptr<TestSimulationImp> > testSim, std::string kernel); + + std::vector<std::shared_ptr<PhiTest> > makePhiTests(std::shared_ptr<PhiTestParameterStruct> testParameter, std::vector<std::shared_ptr<TestSimulationImp> > testSim, std::vector<std::shared_ptr<PhiTestPostProcessingStrategy> > phiAndNuPostProStrategy, double viscosity, std::string dataToCalculate); + std::vector<std::shared_ptr<NyTest> > makeNyTests(std::shared_ptr<NyTestParameterStruct> testParameter, std::vector<std::shared_ptr<TestSimulationImp> > testSim, std::vector<std::shared_ptr<NyTestPostProcessingStrategy> > phiAndNuPostProStrategy, double viscosity, std::string dataToCalculate); + std::vector<std::shared_ptr<L2NormTest> > makeL2NormTests(std::vector<std::shared_ptr<TestSimulationImp> > testSim, std::vector<std::shared_ptr<L2NormPostProcessingStrategy> > postProStrategy, std::shared_ptr<L2NormTestParameterStruct> testParameter); + std::vector<std::vector<std::shared_ptr<L2NormTestBetweenKernels> > > makeL2NormTestsBetweenKernels(std::shared_ptr<L2NormTestBetweenKernelsParameterStruct> testPara, std::vector<std::shared_ptr<TestSimulationImp> > testSim, std::vector<std::shared_ptr<L2NormBetweenKernelPostProcessingStrategy> > postProcessingStrategies); + std::vector<std::shared_ptr<L2NormTestBetweenKernels> > linkL2NormTestsBetweenKernels(std::shared_ptr<L2NormTestBetweenKernelsParameterStruct> testPara, std::vector<std::shared_ptr<TestSimulationImp> > testSim, std::vector<std::shared_ptr<L2NormBetweenKernelPostProcessingStrategy> > postProcessingStrategies); + + std::shared_ptr<LogFileWriter> makeLogFileWriter(std::vector<std::shared_ptr<TestLogFileInformation> > testLogFiles, std::shared_ptr<SimulationLogFileInformation> simLogInfo, std::vector<std::shared_ptr<SimulationInfo> > simInfo, std::string kernel, double viscosity, int basicTimeStepLength, std::shared_ptr<LogFileParameterStruct> logFilePara, std::shared_ptr<BasicTestLogFileInformation> basicTestLogFileInfo); + + void initTestStruct(std::shared_ptr<TestStruct> testStruct, std::shared_ptr<NumericalTestStruct> numericalTestStruct, std::vector<std::shared_ptr<TestLogFileInformation> > &testLogFileInfo, std::shared_ptr<BasicTestLogFileInformation> basicTestLogFileInfo); + + std::vector<std::shared_ptr<TestSimulation> > myTestSimulations; + std::shared_ptr<TestQueueImp> myTestQueue; + std::shared_ptr<LogFileQueueImp> myLogFileWriterQueue; + std::vector<std::vector<std::shared_ptr<L2NormTestBetweenKernels> > > l2NormTestsBetweenKernels; + std::shared_ptr<ColorConsoleOutput> colorOutput; + std::shared_ptr<AnalyticalResults2DToVTKWriter> anaResultWriter; + std::shared_ptr<L2NormCalculatorFactory> l2NormCalculatorFactory; + + int simID; + int numberOfSimulations; + // int simPerKernel, numberOfTestGroupsBetweenKernels, numberOfTestsForOneSimulation, numberOfTestsBetweenKernels; + // int posBasicSimulationForL2Test, posDivergentSimulationForL2Test; }; #endif diff --git a/apps/gpu/tests/NumericalTests/Utilities/NumericalTestGridReader/NumericalTestGridReader.cpp b/apps/gpu/tests/NumericalTests/Utilities/NumericalTestGridReader/NumericalTestGridReader.cpp index 494eb79657ae9057496b50fa83d510159386b041..b8102eabeebacf21b4fc0e3c6bf4293afba0e42b 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/NumericalTestGridReader/NumericalTestGridReader.cpp +++ b/apps/gpu/tests/NumericalTests/Utilities/NumericalTestGridReader/NumericalTestGridReader.cpp @@ -10,19 +10,19 @@ std::shared_ptr<NumericalTestGridReader> NumericalTestGridReader::getNewInstance(std::shared_ptr<Parameter> para, std::shared_ptr<InitialCondition> initialCondition, std::shared_ptr<CudaMemoryManager> cudaManager) { - return std::shared_ptr<NumericalTestGridReader>(new NumericalTestGridReader(para, initialCondition, cudaManager)); + return std::shared_ptr<NumericalTestGridReader>(new NumericalTestGridReader(para, initialCondition, cudaManager)); } void NumericalTestGridReader::setInitialNodeValues(uint numberOfNodes, int level) const { - initialCondition->init(level); - for (uint j = 0; j <= numberOfNodes; j++){ - para->getParH(level)->velocityX[j] = initialCondition->getInitVX(j, level); - para->getParH(level)->velocityY[j] = initialCondition->getInitVY(j, level); - para->getParH(level)->velocityZ[j] = initialCondition->getInitVZ(j, level); - para->getParH(level)->rho[j] = initialCondition->getInitROH(j, level); - para->getParH(level)->pressure[j] = initialCondition->getInitPRESS(j, level); - } + initialCondition->init(level); + for (uint j = 0; j <= numberOfNodes; j++){ + para->getParH(level)->velocityX[j] = initialCondition->getInitVX(j, level); + para->getParH(level)->velocityY[j] = initialCondition->getInitVY(j, level); + para->getParH(level)->velocityZ[j] = initialCondition->getInitVZ(j, level); + para->getParH(level)->rho[j] = initialCondition->getInitROH(j, level); + para->getParH(level)->pressure[j] = initialCondition->getInitPRESS(j, level); + } } NumericalTestGridReader::NumericalTestGridReader(std::shared_ptr<Parameter> para, std::shared_ptr<InitialCondition> initialCondition, std::shared_ptr<CudaMemoryManager> cudaManager) : GridReader(FILEFORMAT::BINARY, para, cudaManager), initialCondition(initialCondition) diff --git a/apps/gpu/tests/NumericalTests/Utilities/NumericalTestGridReader/NumericalTestGridReader.h b/apps/gpu/tests/NumericalTests/Utilities/NumericalTestGridReader/NumericalTestGridReader.h index bde0a2bcb0c4740ed393e301b58339a9afcd180a..5e1791562177ed3e0f4c5ddc603b5b21b0749fed 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/NumericalTestGridReader/NumericalTestGridReader.h +++ b/apps/gpu/tests/NumericalTests/Utilities/NumericalTestGridReader/NumericalTestGridReader.h @@ -10,15 +10,15 @@ class InitialCondition; class NumericalTestGridReader : public GridReader { public: - static std::shared_ptr<NumericalTestGridReader> getNewInstance(std::shared_ptr<Parameter> para, std::shared_ptr<InitialCondition> initialCondition, std::shared_ptr<CudaMemoryManager> cudaManager); + static std::shared_ptr<NumericalTestGridReader> getNewInstance(std::shared_ptr<Parameter> para, std::shared_ptr<InitialCondition> initialCondition, std::shared_ptr<CudaMemoryManager> cudaManager); protected: - virtual void setInitialNodeValues(uint numberOfNodes, int level) const override; + virtual void setInitialNodeValues(uint numberOfNodes, int level) const override; private: - NumericalTestGridReader(std::shared_ptr<Parameter> para, std::shared_ptr<InitialCondition> initialCondition, std::shared_ptr<CudaMemoryManager> cudaManager); + NumericalTestGridReader(std::shared_ptr<Parameter> para, std::shared_ptr<InitialCondition> initialCondition, std::shared_ptr<CudaMemoryManager> cudaManager); - std::shared_ptr<InitialCondition> initialCondition; - + std::shared_ptr<InitialCondition> initialCondition; + }; #endif diff --git a/apps/gpu/tests/NumericalTests/Utilities/NumericalTestSimulation/NumericalTestSimulation.h b/apps/gpu/tests/NumericalTests/Utilities/NumericalTestSimulation/NumericalTestSimulation.h index 0e3c9fcb23964922b8ed155a89ca8c3504aa67fc..3e409b22577dd843cf35ce954939b18ef8679f05 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/NumericalTestSimulation/NumericalTestSimulation.h +++ b/apps/gpu/tests/NumericalTests/Utilities/NumericalTestSimulation/NumericalTestSimulation.h @@ -10,9 +10,9 @@ enum SimulationStatus { initialized , executed, crashed}; class NumericalTestSimulation { public: - virtual ~NumericalTestSimulation() = default; - virtual void run() = 0; - virtual SimulationStatus getSimulationStatus() = 0; - virtual void registerSimulationObserver(std::shared_ptr<SimulationObserver> simObserver) = 0; + virtual ~NumericalTestSimulation() = default; + virtual void run() = 0; + virtual SimulationStatus getSimulationStatus() = 0; + virtual void registerSimulationObserver(std::shared_ptr<SimulationObserver> simObserver) = 0; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Utilities/PostProcessingStrategy/PostProcessingStrategy.h b/apps/gpu/tests/NumericalTests/Utilities/PostProcessingStrategy/PostProcessingStrategy.h index e995bd4de187da87bce2cc987ac460138e3ffcb8..5953e49480eb663299ccf9d74b7a7a512b665861 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/PostProcessingStrategy/PostProcessingStrategy.h +++ b/apps/gpu/tests/NumericalTests/Utilities/PostProcessingStrategy/PostProcessingStrategy.h @@ -10,7 +10,7 @@ class SimulationResults; class PostProcessingStrategy { public: - virtual ~PostProcessingStrategy() = default; - virtual void evaluate() = 0; + virtual ~PostProcessingStrategy() = default; + virtual void evaluate() = 0; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Utilities/PostProcessingStrategy/PostProcessingStrategyImp.cpp b/apps/gpu/tests/NumericalTests/Utilities/PostProcessingStrategy/PostProcessingStrategyImp.cpp index 387457ae96c596f4059683dd1997f7fc9b7fc3c2..1aac2b33a0fcc25870d41265ddba045b3fe4752e 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/PostProcessingStrategy/PostProcessingStrategyImp.cpp +++ b/apps/gpu/tests/NumericalTests/Utilities/PostProcessingStrategy/PostProcessingStrategyImp.cpp @@ -4,17 +4,17 @@ int PostProcessingStrategyImp::getNumberOfXNodes() { - return simResult->getNumberOfXNodes(); + return simResult->getNumberOfXNodes(); } int PostProcessingStrategyImp::getNumberOfYNodes() { - return simResult->getNumberOfYNodes(); + return simResult->getNumberOfYNodes(); } int PostProcessingStrategyImp::getNumberOfZNodes() { - return simResult->getNumberOfZNodes(); + return simResult->getNumberOfZNodes(); } PostProcessingStrategyImp::PostProcessingStrategyImp(std::shared_ptr<SimulationResults> simResult) : simResult(simResult) @@ -23,8 +23,8 @@ PostProcessingStrategyImp::PostProcessingStrategyImp(std::shared_ptr<SimulationR int PostProcessingStrategyImp::calcTimeStepInResults(unsigned int timeStep) { - for (int i = 0; i < simResult->getTimeSteps().size(); i++) { - if (timeStep == simResult->getTimeSteps().at(i)) - return simResult->getTimeSteps().at(i); - } + for (int i = 0; i < simResult->getTimeSteps().size(); i++) { + if (timeStep == simResult->getTimeSteps().at(i)) + return simResult->getTimeSteps().at(i); + } } diff --git a/apps/gpu/tests/NumericalTests/Utilities/PostProcessingStrategy/PostProcessingStrategyImp.h b/apps/gpu/tests/NumericalTests/Utilities/PostProcessingStrategy/PostProcessingStrategyImp.h index 50786505fbd896ce7a340a702e3ebf5eb3220916..9e4169222614993a0c081c319f46bd82b058a549 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/PostProcessingStrategy/PostProcessingStrategyImp.h +++ b/apps/gpu/tests/NumericalTests/Utilities/PostProcessingStrategy/PostProcessingStrategyImp.h @@ -10,19 +10,19 @@ class SimulationResults; class PostProcessingStrategyImp : public PostProcessingStrategy { public: - virtual void evaluate() = 0; + virtual void evaluate() = 0; - int getNumberOfXNodes(); - int getNumberOfYNodes(); - int getNumberOfZNodes(); + int getNumberOfXNodes(); + int getNumberOfYNodes(); + int getNumberOfZNodes(); protected: - PostProcessingStrategyImp(std::shared_ptr<SimulationResults> simResult); - int calcTimeStepInResults(unsigned int timeStep); + PostProcessingStrategyImp(std::shared_ptr<SimulationResults> simResult); + int calcTimeStepInResults(unsigned int timeStep); - std::shared_ptr<SimulationResults> simResult; + std::shared_ptr<SimulationResults> simResult; private: - PostProcessingStrategyImp() {}; + PostProcessingStrategyImp() {}; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Utilities/Results/AnalyticalResults/AnalyticalResult.h b/apps/gpu/tests/NumericalTests/Utilities/Results/AnalyticalResults/AnalyticalResult.h index 979c57ec3a2fd2bc26f85d07db06e31169b5aa7a..ca2dab986c002c4781f65496bb4d1775a7026a2d 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/Results/AnalyticalResults/AnalyticalResult.h +++ b/apps/gpu/tests/NumericalTests/Utilities/Results/AnalyticalResults/AnalyticalResult.h @@ -10,8 +10,8 @@ class SimulationResults; class AnalyticalResults : public ResultsImp { public: - virtual ~AnalyticalResults() = default; - virtual void calc(std::shared_ptr<SimulationResults> simResults) = 0; - virtual bool isCalculated() = 0; + virtual ~AnalyticalResults() = default; + virtual void calc(std::shared_ptr<SimulationResults> simResults) = 0; + virtual bool isCalculated() = 0; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Utilities/Results/AnalyticalResults/AnalyticalResultImp.cpp b/apps/gpu/tests/NumericalTests/Utilities/Results/AnalyticalResults/AnalyticalResultImp.cpp index d2655ac9a5b73f9927f6426890918a1d44110857..62b5ba45a54f431fae41509f01e63b78ac3e1a54 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/Results/AnalyticalResults/AnalyticalResultImp.cpp +++ b/apps/gpu/tests/NumericalTests/Utilities/Results/AnalyticalResults/AnalyticalResultImp.cpp @@ -4,52 +4,52 @@ bool AnalyticalResultsImp::isCalculated() { - return calculated; + return calculated; } int AnalyticalResultsImp::getL0() { - return l0; + return l0; } AnalyticalResultsImp::AnalyticalResultsImp() { - calculated = false; + calculated = false; } AnalyticalResultsImp::AnalyticalResultsImp(int l0) { - this->l0 = l0; - calculated = false; + this->l0 = l0; + calculated = false; } void AnalyticalResultsImp::init(std::shared_ptr<SimulationResults> simResults) { - this->xNodes = simResults->getNumberOfXNodes(); - this->yNodes = simResults->getNumberOfYNodes(); - this->zNodes = simResults->getNumberOfZNodes(); - this->numberOfNodes = xNodes*yNodes*zNodes; - this->timeStepLength = simResults->getTimeStepLength(); - this->numberOfTimeSteps = simResults->getNumberOfTimeSteps(); - this->timeStep = simResults->getTimeSteps(); - this->time = simResults->getTime(); - this->x = simResults->getXNodes(); - this->y = simResults->getYNodes(); - this->z = simResults->getZNodes(); - this->level = simResults->getLevels(); - this->l0 = simResults->getL0(); - - this->vx.resize(numberOfTimeSteps); - this->vy.resize(numberOfTimeSteps); - this->vz.resize(numberOfTimeSteps); - this->press.resize(numberOfTimeSteps); - this->rho.resize(numberOfTimeSteps); - - for (int i = 0; i < numberOfTimeSteps; i++) { - this->vx.at(i).resize(numberOfNodes); - this->vy.at(i).resize(numberOfNodes); - this->vz.at(i).resize(numberOfNodes); - this->press.at(i).resize(numberOfNodes); - this->rho.at(i).resize(numberOfNodes); - } + this->xNodes = simResults->getNumberOfXNodes(); + this->yNodes = simResults->getNumberOfYNodes(); + this->zNodes = simResults->getNumberOfZNodes(); + this->numberOfNodes = xNodes*yNodes*zNodes; + this->timeStepLength = simResults->getTimeStepLength(); + this->numberOfTimeSteps = simResults->getNumberOfTimeSteps(); + this->timeStep = simResults->getTimeSteps(); + this->time = simResults->getTime(); + this->x = simResults->getXNodes(); + this->y = simResults->getYNodes(); + this->z = simResults->getZNodes(); + this->level = simResults->getLevels(); + this->l0 = simResults->getL0(); + + this->vx.resize(numberOfTimeSteps); + this->vy.resize(numberOfTimeSteps); + this->vz.resize(numberOfTimeSteps); + this->press.resize(numberOfTimeSteps); + this->rho.resize(numberOfTimeSteps); + + for (int i = 0; i < numberOfTimeSteps; i++) { + this->vx.at(i).resize(numberOfNodes); + this->vy.at(i).resize(numberOfNodes); + this->vz.at(i).resize(numberOfNodes); + this->press.at(i).resize(numberOfNodes); + this->rho.at(i).resize(numberOfNodes); + } } \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Utilities/Results/AnalyticalResults/AnalyticalResultImp.h b/apps/gpu/tests/NumericalTests/Utilities/Results/AnalyticalResults/AnalyticalResultImp.h index 7c1e09b9de89f972d3256e91507695c2960bee6e..4e907bd685a9fc38b130132c7be3ff220a135743 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/Results/AnalyticalResults/AnalyticalResultImp.h +++ b/apps/gpu/tests/NumericalTests/Utilities/Results/AnalyticalResults/AnalyticalResultImp.h @@ -8,18 +8,18 @@ class AnalyticalResultsImp : public AnalyticalResults { public: - virtual void calc(std::shared_ptr<SimulationResults> simResults) = 0; - bool isCalculated(); - int getL0(); + virtual void calc(std::shared_ptr<SimulationResults> simResults) = 0; + bool isCalculated(); + int getL0(); protected: - AnalyticalResultsImp(int l0); - void init(std::shared_ptr<SimulationResults> simResults); + AnalyticalResultsImp(int l0); + void init(std::shared_ptr<SimulationResults> simResults); - bool calculated; - int l0; + bool calculated; + int l0; private: - AnalyticalResultsImp(); + AnalyticalResultsImp(); }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Utilities/Results/Results.h b/apps/gpu/tests/NumericalTests/Utilities/Results/Results.h index 3744bf591d98769cee398fcfde78dac1d14737ae..096d87d1869e6ef7b73ce90c61a5460c874397da 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/Results/Results.h +++ b/apps/gpu/tests/NumericalTests/Utilities/Results/Results.h @@ -6,24 +6,24 @@ class Results { public: - virtual ~Results() = default; - virtual int getNumberOfTimeSteps() = 0; - virtual std::vector<std::vector<double> > getVx() = 0; - virtual std::vector<std::vector<double> > getVy() = 0; - virtual std::vector<std::vector<double> > getVz() = 0; - virtual int getNumberOfXNodes() = 0; - virtual int getNumberOfYNodes() = 0; - virtual int getNumberOfZNodes() = 0; - virtual std::vector<std::vector<double> > getXNodes() = 0; - virtual std::vector<std::vector<double> > getYNodes() = 0; - virtual std::vector<std::vector<double> > getZNodes() = 0; - virtual int getTimeStepLength() = 0; - virtual std::vector<unsigned int> getTimeSteps() = 0; - virtual std::vector < std::vector<unsigned int> > getLevels() = 0; + virtual ~Results() = default; + virtual int getNumberOfTimeSteps() = 0; + virtual std::vector<std::vector<double> > getVx() = 0; + virtual std::vector<std::vector<double> > getVy() = 0; + virtual std::vector<std::vector<double> > getVz() = 0; + virtual int getNumberOfXNodes() = 0; + virtual int getNumberOfYNodes() = 0; + virtual int getNumberOfZNodes() = 0; + virtual std::vector<std::vector<double> > getXNodes() = 0; + virtual std::vector<std::vector<double> > getYNodes() = 0; + virtual std::vector<std::vector<double> > getZNodes() = 0; + virtual int getTimeStepLength() = 0; + virtual std::vector<unsigned int> getTimeSteps() = 0; + virtual std::vector < std::vector<unsigned int> > getLevels() = 0; - virtual bool checkYourData() = 0; + virtual bool checkYourData() = 0; - virtual int getL0() = 0; + virtual int getL0() = 0; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Utilities/Results/ResultsImp.h b/apps/gpu/tests/NumericalTests/Utilities/Results/ResultsImp.h index 4e4cc80c9e3fefc86b174859bdc813b6dba22c99..9cb464af78c941b29f30f6bda0ba558e0fe2f36e 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/Results/ResultsImp.h +++ b/apps/gpu/tests/NumericalTests/Utilities/Results/ResultsImp.h @@ -6,44 +6,44 @@ class ResultsImp : public Results { public: - int getNumberOfTimeSteps(); - int getTimeStepLength(); - std::vector<unsigned int> getTimeSteps(); - std::vector<int> getTime(); - std::vector<std::vector<double> > getVx(); - std::vector<std::vector<double> > getVy(); - std::vector<std::vector<double> > getVz(); - int getNumberOfXNodes(); - int getNumberOfYNodes(); - int getNumberOfZNodes(); - std::vector<std::vector<double> > getXNodes(); - std::vector<std::vector<double> > getYNodes(); - std::vector<std::vector<double> > getZNodes(); - std::vector<std::vector<unsigned int> > getLevels(); - std::vector<std::vector<double> > getPress(); - std::vector<std::vector<double> > getRho(); - int getL0(); - - bool checkYourData(); + int getNumberOfTimeSteps(); + int getTimeStepLength(); + std::vector<unsigned int> getTimeSteps(); + std::vector<int> getTime(); + std::vector<std::vector<double> > getVx(); + std::vector<std::vector<double> > getVy(); + std::vector<std::vector<double> > getVz(); + int getNumberOfXNodes(); + int getNumberOfYNodes(); + int getNumberOfZNodes(); + std::vector<std::vector<double> > getXNodes(); + std::vector<std::vector<double> > getYNodes(); + std::vector<std::vector<double> > getZNodes(); + std::vector<std::vector<unsigned int> > getLevels(); + std::vector<std::vector<double> > getPress(); + std::vector<std::vector<double> > getRho(); + int getL0(); + + bool checkYourData(); protected: - ResultsImp(int l0); - ResultsImp() = default; - - unsigned int numberOfTimeSteps; - unsigned int timeStepLength; - unsigned int xNodes, yNodes, zNodes; - unsigned int numberOfNodes; - - std::vector<unsigned int> timeStep; - std::vector<int> time; - std::vector<std::vector<double> > x, y, z; - std::vector<std::vector<double> > vx, vy, vz; - std::vector<std::vector<double> > press; - std::vector<std::vector<double> > rho; - std::vector<std::vector<unsigned int> > level; - - int l0; + ResultsImp(int l0); + ResultsImp() = default; + + unsigned int numberOfTimeSteps; + unsigned int timeStepLength; + unsigned int xNodes, yNodes, zNodes; + unsigned int numberOfNodes; + + std::vector<unsigned int> timeStep; + std::vector<int> time; + std::vector<std::vector<double> > x, y, z; + std::vector<std::vector<double> > vx, vy, vz; + std::vector<std::vector<double> > press; + std::vector<std::vector<double> > rho; + std::vector<std::vector<unsigned int> > level; + + int l0; private: }; diff --git a/apps/gpu/tests/NumericalTests/Utilities/Results/SimulationResults/SimulationResults.cpp b/apps/gpu/tests/NumericalTests/Utilities/Results/SimulationResults/SimulationResults.cpp index 9dca88cd9fd55f8c777fa0d0f0da9260d61c1254..d1cfb8d82dcbfd66df2602ac1578ff523a9f4bf3 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/Results/SimulationResults/SimulationResults.cpp +++ b/apps/gpu/tests/NumericalTests/Utilities/Results/SimulationResults/SimulationResults.cpp @@ -7,31 +7,31 @@ SimulationResults::SimulationResults(std::shared_ptr<SimulationParameter> simPara) : ResultsImp(simPara->getL0()) { - this->xNodes = simPara->getLx(); - this->yNodes = 1; - this->zNodes = simPara->getLz(); - this->numberOfNodes = xNodes*yNodes*zNodes; - this->timeStepLength = simPara->getTimeStepLength(); - this->numberOfTimeSteps = 0; + this->xNodes = simPara->getLx(); + this->yNodes = 1; + this->zNodes = simPara->getLz(); + this->numberOfNodes = xNodes*yNodes*zNodes; + this->timeStepLength = simPara->getTimeStepLength(); + this->numberOfTimeSteps = 0; } std::shared_ptr<SimulationResults> SimulationResults::getNewInstance(std::shared_ptr<SimulationParameter> simPara) { - return std::shared_ptr<SimulationResults>(new SimulationResults(simPara)); + return std::shared_ptr<SimulationResults>(new SimulationResults(simPara)); } void SimulationResults::addTimeStep(unsigned int timeStep, unsigned int time, std::vector<unsigned int> level, std::vector<double> x, std::vector<double> y, std::vector<double> z, std::vector<double> vx, std::vector<double> vy, std::vector<double> vz, std::vector<double> press, std::vector<double> rho) { - this->timeStep.push_back(timeStep); - this->time.push_back(time); - this->x.push_back(x); - this->y.push_back(y); - this->z.push_back(z); - this->vx.push_back(vx); - this->vy.push_back(vy); - this->vz.push_back(vz); - this->press.push_back(press); - this->rho.push_back(rho); - this->level.push_back(level); - numberOfTimeSteps++; + this->timeStep.push_back(timeStep); + this->time.push_back(time); + this->x.push_back(x); + this->y.push_back(y); + this->z.push_back(z); + this->vx.push_back(vx); + this->vy.push_back(vy); + this->vz.push_back(vz); + this->press.push_back(press); + this->rho.push_back(rho); + this->level.push_back(level); + numberOfTimeSteps++; } \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Utilities/SimulationInfo/SimulationInfo.h b/apps/gpu/tests/NumericalTests/Utilities/SimulationInfo/SimulationInfo.h index aa49cba4875a6ad2090cdd715da9971b6bec8967..e122666357e1f12d3c0285e3baf68ec3df19f994 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/SimulationInfo/SimulationInfo.h +++ b/apps/gpu/tests/NumericalTests/Utilities/SimulationInfo/SimulationInfo.h @@ -10,17 +10,17 @@ class TimeInfo; class SimulationInfo { public: - virtual ~SimulationInfo() = default; - virtual std::string getKernelName() = 0; - virtual double getViscosity() = 0; - virtual std::string getSimulationName() = 0; - virtual std::string getSimulationParameterString() = 0; - virtual int getLx() = 0; - virtual int getNumberOfSimulations() = 0; - virtual int getSimulationID() = 0; - virtual std::string getRunTimeOutput() = 0; - virtual std::vector<std::string> getDataToCalcTests() = 0; + virtual ~SimulationInfo() = default; + virtual std::string getKernelName() = 0; + virtual double getViscosity() = 0; + virtual std::string getSimulationName() = 0; + virtual std::string getSimulationParameterString() = 0; + virtual int getLx() = 0; + virtual int getNumberOfSimulations() = 0; + virtual int getSimulationID() = 0; + virtual std::string getRunTimeOutput() = 0; + virtual std::vector<std::string> getDataToCalcTests() = 0; - virtual void setTimeInfo(std::shared_ptr<TimeInfo> timeInfo) = 0; + virtual void setTimeInfo(std::shared_ptr<TimeInfo> timeInfo) = 0; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Utilities/SimulationInfo/SimulationInfoImp.cpp b/apps/gpu/tests/NumericalTests/Utilities/SimulationInfo/SimulationInfoImp.cpp index 749bba1f20342a41228b598a150074fd5854080d..71ca003186851a36efff8b60dce6ddb88b70ef66 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/SimulationInfo/SimulationInfoImp.cpp +++ b/apps/gpu/tests/NumericalTests/Utilities/SimulationInfo/SimulationInfoImp.cpp @@ -7,61 +7,61 @@ void SimulationInfoImp::setTimeInfo(std::shared_ptr<TimeInfo> timeInfo) { - this->timeInfo = timeInfo; + this->timeInfo = timeInfo; } std::string SimulationInfoImp::getKernelName() { - return kernelName; + return kernelName; } double SimulationInfoImp::getViscosity() { - return viscosity; + return viscosity; } std::string SimulationInfoImp::getSimulationName() { - return simulationName; + return simulationName; } std::string SimulationInfoImp::getSimulationParameterString() { - return simulationParameterString; + return simulationParameterString; } int SimulationInfoImp::getLx() { - return lx; + return lx; } int SimulationInfoImp::getNumberOfSimulations() { - return numberOfSimulations; + return numberOfSimulations; } int SimulationInfoImp::getSimulationID() { - return simID; + return simID; } std::string SimulationInfoImp::getRunTimeOutput() { - std::ostringstream oss; - oss << "SimulationTime_" << lx << "=" << timeInfo->getSimulationTime() << std::endl; - oss << "ResultsCheckTime_" << lx << "=" << timeInfo->getResultCheckTime() << std::endl; - oss << "TestTime_" << lx << "=" << timeInfo->getTestTime() << std::endl; - oss << "AnalyticalVTKFileWritingTime_" << lx << "=" << timeInfo->getAnalyticalResultWriteTime() << std::endl; - return oss.str(); + std::ostringstream oss; + oss << "SimulationTime_" << lx << "=" << timeInfo->getSimulationTime() << std::endl; + oss << "ResultsCheckTime_" << lx << "=" << timeInfo->getResultCheckTime() << std::endl; + oss << "TestTime_" << lx << "=" << timeInfo->getTestTime() << std::endl; + oss << "AnalyticalVTKFileWritingTime_" << lx << "=" << timeInfo->getAnalyticalResultWriteTime() << std::endl; + return oss.str(); } std::vector<std::string> SimulationInfoImp::getDataToCalcTests() { - return dataToCalcTests; + return dataToCalcTests; } SimulationInfoImp::SimulationInfoImp(int simID, std::string kernel, double viscosity, int lx, int numberOfSimulations, std::string simulationName, std::vector<std::string> dataToCalcTests) - : simID(simID), lx(lx), viscosity(viscosity), numberOfSimulations(numberOfSimulations), simulationName(simulationName), dataToCalcTests(dataToCalcTests) + : simID(simID), lx(lx), viscosity(viscosity), numberOfSimulations(numberOfSimulations), simulationName(simulationName), dataToCalcTests(dataToCalcTests) { - this->kernelName = kernel; + this->kernelName = kernel; } diff --git a/apps/gpu/tests/NumericalTests/Utilities/SimulationInfo/SimulationInfoImp.h b/apps/gpu/tests/NumericalTests/Utilities/SimulationInfo/SimulationInfoImp.h index 8f44f1dc6d3d3d4bd61710fcaf5254128607ff8c..b658f8095fc0ec9554b0ff9bb3f9f891b22a7a68 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/SimulationInfo/SimulationInfoImp.h +++ b/apps/gpu/tests/NumericalTests/Utilities/SimulationInfo/SimulationInfoImp.h @@ -10,30 +10,30 @@ class TimeInfo; class SimulationInfoImp : public SimulationInfo { public: - void setTimeInfo(std::shared_ptr<TimeInfo> timeInfo); - - std::string getKernelName(); - double getViscosity(); - std::string getSimulationName(); - std::string getSimulationParameterString(); - int getLx(); - int getNumberOfSimulations(); - int getSimulationID(); - std::string getRunTimeOutput(); - std::vector<std::string> getDataToCalcTests(); + void setTimeInfo(std::shared_ptr<TimeInfo> timeInfo); + + std::string getKernelName(); + double getViscosity(); + std::string getSimulationName(); + std::string getSimulationParameterString(); + int getLx(); + int getNumberOfSimulations(); + int getSimulationID(); + std::string getRunTimeOutput(); + std::vector<std::string> getDataToCalcTests(); protected: - SimulationInfoImp() {}; - SimulationInfoImp(int simID, std::string kernel, double viscosity, int lx, int numberOfSimulations, std::string simulationName, std::vector<std::string> dataToCalcTests); - - double viscosity; - std::string kernelName; - std::string simulationName; - std::string simulationParameterString; - int lx; - int numberOfSimulations, simID; - std::shared_ptr<TimeInfo> timeInfo; - std::vector<std::string> dataToCalcTests; + SimulationInfoImp() {}; + SimulationInfoImp(int simID, std::string kernel, double viscosity, int lx, int numberOfSimulations, std::string simulationName, std::vector<std::string> dataToCalcTests); + + double viscosity; + std::string kernelName; + std::string simulationName; + std::string simulationParameterString; + int lx; + int numberOfSimulations, simID; + std::shared_ptr<TimeInfo> timeInfo; + std::vector<std::string> dataToCalcTests; private: diff --git a/apps/gpu/tests/NumericalTests/Utilities/SimulationParameter/SimulationParameter.h b/apps/gpu/tests/NumericalTests/Utilities/SimulationParameter/SimulationParameter.h index 7de661ce17d681c88fdeef50aebb56ce9af36202..ddbd511b804a7b5463bdef4a806e9b449944806b 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/SimulationParameter/SimulationParameter.h +++ b/apps/gpu/tests/NumericalTests/Utilities/SimulationParameter/SimulationParameter.h @@ -11,20 +11,20 @@ class KernelConfiguration; class SimulationParameter { public: - virtual ~SimulationParameter() = default; - virtual std::shared_ptr<KernelConfiguration> getKernelConfiguration() = 0; - virtual double getViscosity() = 0; - virtual std::string getGridPath() = 0; - virtual std::string getFilePath() = 0; - virtual unsigned int getNumberOfGridLevels() = 0; - virtual unsigned int getEndTime() = 0; - virtual unsigned int getTimeStepLength() = 0; - virtual std::vector<unsigned int> getDevices() = 0; - virtual double getMaxVelocity() = 0; + virtual ~SimulationParameter() = default; + virtual std::shared_ptr<KernelConfiguration> getKernelConfiguration() = 0; + virtual double getViscosity() = 0; + virtual std::string getGridPath() = 0; + virtual std::string getFilePath() = 0; + virtual unsigned int getNumberOfGridLevels() = 0; + virtual unsigned int getEndTime() = 0; + virtual unsigned int getTimeStepLength() = 0; + virtual std::vector<unsigned int> getDevices() = 0; + virtual double getMaxVelocity() = 0; - virtual unsigned int getLx() = 0; - virtual unsigned int getLz() = 0; - virtual unsigned int getL0() = 0; + virtual unsigned int getLx() = 0; + virtual unsigned int getLz() = 0; + virtual unsigned int getL0() = 0; }; #endif diff --git a/apps/gpu/tests/NumericalTests/Utilities/SimulationParameter/SimulationParameterImp.cpp b/apps/gpu/tests/NumericalTests/Utilities/SimulationParameter/SimulationParameterImp.cpp index 6e0a0ef66f0996c772b35757ddd0ae0031d46c7c..0e1f78d09b79c869d9d7c50d8f1cadfe94a47ad6 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/SimulationParameter/SimulationParameterImp.cpp +++ b/apps/gpu/tests/NumericalTests/Utilities/SimulationParameter/SimulationParameterImp.cpp @@ -8,84 +8,84 @@ #include <filesystem> SimulationParameterImp::SimulationParameterImp(std::string kernel, double viscosity, std::shared_ptr<BasicSimulationParameterStruct> basicSimPara, std::shared_ptr<GridInformationStruct> gridInfo) - : viscosity(viscosity) + : viscosity(viscosity) { - kernelConfig = KernelConfigurationImp::getNewInstance(kernel); - - devices = basicSimPara->devices; - numberOfTimeSteps = basicSimPara->numberOfTimeSteps; - - gridPath = gridInfo->gridPath; - lx = gridInfo->lx; - lz = gridInfo->lz; - l0 = basicSimPara->l0; - maxLevel = gridInfo->maxLevel; - numberOfGridLevels = gridInfo->numberOfGridLevels; + kernelConfig = KernelConfigurationImp::getNewInstance(kernel); + + devices = basicSimPara->devices; + numberOfTimeSteps = basicSimPara->numberOfTimeSteps; + + gridPath = gridInfo->gridPath; + lx = gridInfo->lx; + lz = gridInfo->lz; + l0 = basicSimPara->l0; + maxLevel = gridInfo->maxLevel; + numberOfGridLevels = gridInfo->numberOfGridLevels; } void SimulationParameterImp::generateFileDirectionInMyStystem(std::string filePath) { - std::filesystem::path dir(filePath); - if (!(std::filesystem::exists(dir))) - std::filesystem::create_directories(dir); + std::filesystem::path dir(filePath); + if (!(std::filesystem::exists(dir))) + std::filesystem::create_directories(dir); } double SimulationParameterImp::getViscosity() { - return viscosity; + return viscosity; } std::string SimulationParameterImp::getGridPath() { - return gridPath; + return gridPath; } std::string SimulationParameterImp::getFilePath() { - return filePath; + return filePath; } unsigned int SimulationParameterImp::getNumberOfGridLevels() { - return numberOfGridLevels; + return numberOfGridLevels; } unsigned int SimulationParameterImp::getEndTime() { - return timeStepLength * numberOfTimeSteps; + return timeStepLength * numberOfTimeSteps; } unsigned int SimulationParameterImp::getTimeStepLength() { - return timeStepLength; + return timeStepLength; } unsigned int SimulationParameterImp::getLx() { - return lx; + return lx; } unsigned int SimulationParameterImp::getLz() { - return lz; + return lz; } unsigned int SimulationParameterImp::getL0() { - return l0; + return l0; } std::vector<unsigned int> SimulationParameterImp::getDevices() { - return devices; + return devices; } double SimulationParameterImp::getMaxVelocity() { - return maxVelocity; + return maxVelocity; } std::shared_ptr<KernelConfiguration> SimulationParameterImp::getKernelConfiguration() { - return kernelConfig; + return kernelConfig; } \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Utilities/SimulationParameter/SimulationParameterImp.h b/apps/gpu/tests/NumericalTests/Utilities/SimulationParameter/SimulationParameterImp.h index f4c0792cb7f45dd65ccdab8b7a43c4810496df2f..09d2eefa256beac7654ed4393380b93aa7e3b136 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/SimulationParameter/SimulationParameterImp.h +++ b/apps/gpu/tests/NumericalTests/Utilities/SimulationParameter/SimulationParameterImp.h @@ -10,38 +10,38 @@ struct BasicSimulationParameterStruct; class SimulationParameterImp : public SimulationParameter { public: - double getViscosity(); - std::string getGridPath(); - std::string getFilePath(); - unsigned int getNumberOfGridLevels(); - unsigned int getEndTime(); - unsigned int getTimeStepLength(); - unsigned int getLx(); - unsigned int getLz(); - unsigned int getL0(); - std::vector<unsigned int> getDevices(); - double getMaxVelocity(); - - std::shared_ptr<KernelConfiguration> getKernelConfiguration(); + double getViscosity(); + std::string getGridPath(); + std::string getFilePath(); + unsigned int getNumberOfGridLevels(); + unsigned int getEndTime(); + unsigned int getTimeStepLength(); + unsigned int getLx(); + unsigned int getLz(); + unsigned int getL0(); + std::vector<unsigned int> getDevices(); + double getMaxVelocity(); + + std::shared_ptr<KernelConfiguration> getKernelConfiguration(); protected: - SimulationParameterImp() {}; - SimulationParameterImp(std::string kernelName, double viscosity, std::shared_ptr<BasicSimulationParameterStruct> basicSimPara, std::shared_ptr<GridInformationStruct> gridInfo); + SimulationParameterImp() {}; + SimulationParameterImp(std::string kernelName, double viscosity, std::shared_ptr<BasicSimulationParameterStruct> basicSimPara, std::shared_ptr<GridInformationStruct> gridInfo); - void generateFileDirectionInMyStystem(std::string filePath); + void generateFileDirectionInMyStystem(std::string filePath); - unsigned int timeStepLength; - std::string filePath; - double maxVelocity; - real lx, l0, lz; + unsigned int timeStepLength; + std::string filePath; + double maxVelocity; + real lx, l0, lz; private: - real viscosity; - unsigned int numberOfTimeSteps, basisTimeStepLength; - std::string gridPath; - std::vector<unsigned int> devices; - unsigned int maxLevel, numberOfGridLevels; - std::shared_ptr<KernelConfiguration> kernelConfig; + real viscosity; + unsigned int numberOfTimeSteps, basisTimeStepLength; + std::string gridPath; + std::vector<unsigned int> devices; + unsigned int maxLevel, numberOfGridLevels; + std::shared_ptr<KernelConfiguration> kernelConfig; }; #endif diff --git a/apps/gpu/tests/NumericalTests/Utilities/Structs/BasicSimulationParameterStruct.h b/apps/gpu/tests/NumericalTests/Utilities/Structs/BasicSimulationParameterStruct.h index c08bee1e616f001c1efda15f0a7853a0a289e8a2..e2a7080de35a08f0ff24f8af7c716c50bc5b04d8 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/Structs/BasicSimulationParameterStruct.h +++ b/apps/gpu/tests/NumericalTests/Utilities/Structs/BasicSimulationParameterStruct.h @@ -5,9 +5,9 @@ struct BasicSimulationParameterStruct { - std::vector<unsigned int> devices; - unsigned int numberOfTimeSteps; - unsigned int l0; + std::vector<unsigned int> devices; + unsigned int numberOfTimeSteps; + unsigned int l0; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Utilities/Structs/BasicTestParameterStruct.h b/apps/gpu/tests/NumericalTests/Utilities/Structs/BasicTestParameterStruct.h index 658f5ac16b9f6ca3dc72a4bfeabd7c1babc99dd6..88707ad6c331eb19c9186b7f406495c1231136a2 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/Structs/BasicTestParameterStruct.h +++ b/apps/gpu/tests/NumericalTests/Utilities/Structs/BasicTestParameterStruct.h @@ -6,7 +6,7 @@ struct BasicTestParameterStruct { - unsigned int ySliceForCalculation; - bool runTest; + unsigned int ySliceForCalculation; + bool runTest; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Utilities/Structs/ConfigDataStruct.h b/apps/gpu/tests/NumericalTests/Utilities/Structs/ConfigDataStruct.h index 021d5c40355bb413984d426ff6a0febbac6ed4b1..3d3dcca5ef96899a5755a2711cffe18ff4ac5a49 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/Structs/ConfigDataStruct.h +++ b/apps/gpu/tests/NumericalTests/Utilities/Structs/ConfigDataStruct.h @@ -19,36 +19,36 @@ struct ConfigDataStruct { - std::vector<double> viscosity; + std::vector<double> viscosity; std::vector<std::string> kernelsToTest; - std::vector<std::shared_ptr<TaylorGreenVortexUxParameterStruct> > taylorGreenVortexUxParameter; - std::vector<std::shared_ptr<GridInformationStruct> > taylorGreenVortexUxGridInformation; + std::vector<std::shared_ptr<TaylorGreenVortexUxParameterStruct> > taylorGreenVortexUxParameter; + std::vector<std::shared_ptr<GridInformationStruct> > taylorGreenVortexUxGridInformation; - std::vector<std::shared_ptr<TaylorGreenVortexUzParameterStruct> > taylorGreenVortexUzParameter; - std::vector<std::shared_ptr<GridInformationStruct> > taylorGreenVortexUzGridInformation; + std::vector<std::shared_ptr<TaylorGreenVortexUzParameterStruct> > taylorGreenVortexUzParameter; + std::vector<std::shared_ptr<GridInformationStruct> > taylorGreenVortexUzGridInformation; - std::vector<std::shared_ptr<ShearWaveParameterStruct> > shearWaveParameter; - std::vector<std::shared_ptr<GridInformationStruct> > shearWaveGridInformation; + std::vector<std::shared_ptr<ShearWaveParameterStruct> > shearWaveParameter; + std::vector<std::shared_ptr<GridInformationStruct> > shearWaveGridInformation; - + - bool writeAnalyticalToVTK; - unsigned int ySliceForCalculation; - - std::string logFilePath; + bool writeAnalyticalToVTK; + unsigned int ySliceForCalculation; + + std::string logFilePath; - int numberOfSimulations; + int numberOfSimulations; - std::shared_ptr<PhiTestParameterStruct> phiTestParameter; - std::shared_ptr<NyTestParameterStruct> nyTestParameter; - std::shared_ptr<L2NormTestParameterStruct> l2NormTestParameter; - std::shared_ptr<L2NormTestBetweenKernelsParameterStruct> l2NormTestBetweenKernelsParameter; + std::shared_ptr<PhiTestParameterStruct> phiTestParameter; + std::shared_ptr<NyTestParameterStruct> nyTestParameter; + std::shared_ptr<L2NormTestParameterStruct> l2NormTestParameter; + std::shared_ptr<L2NormTestBetweenKernelsParameterStruct> l2NormTestBetweenKernelsParameter; - std::shared_ptr<VectorWriterInformationStruct> vectorWriterInfo; + std::shared_ptr<VectorWriterInformationStruct> vectorWriterInfo; - std::shared_ptr<LogFileParameterStruct> logFilePara; + std::shared_ptr<LogFileParameterStruct> logFilePara; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Utilities/Structs/GridInformationStruct.h b/apps/gpu/tests/NumericalTests/Utilities/Structs/GridInformationStruct.h index 1cf837ec2b6c482cb0cbd4f2f806e58df07ed869..80cee2114d1e2e2efd817d28bcd7a45ef00d9534 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/Structs/GridInformationStruct.h +++ b/apps/gpu/tests/NumericalTests/Utilities/Structs/GridInformationStruct.h @@ -5,10 +5,10 @@ struct GridInformationStruct { - unsigned int numberOfGridLevels; - unsigned int maxLevel; - std::string gridPath; - double lx; - double lz; + unsigned int numberOfGridLevels; + unsigned int maxLevel; + std::string gridPath; + double lx; + double lz; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Utilities/Structs/LogFileParameterStruct.h b/apps/gpu/tests/NumericalTests/Utilities/Structs/LogFileParameterStruct.h index 9ed91eacc5ab610085b2e0ec7dcb8fedc6f30cb1..a933e981deccf5ceddccc260584137b963f7e0c1 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/Structs/LogFileParameterStruct.h +++ b/apps/gpu/tests/NumericalTests/Utilities/Structs/LogFileParameterStruct.h @@ -5,9 +5,9 @@ struct LogFileParameterStruct { - std::vector<int> devices; - int numberOfTimeSteps; - bool writeAnalyticalToVTK; + std::vector<int> devices; + int numberOfTimeSteps; + bool writeAnalyticalToVTK; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Utilities/Structs/NumericalTestStruct.h b/apps/gpu/tests/NumericalTests/Utilities/Structs/NumericalTestStruct.h index 75d432a5a97273305b517bfa47474d1ebac4b00e..25cfe2d2ae2c201a0dee2f60a4516b2e444bff09 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/Structs/NumericalTestStruct.h +++ b/apps/gpu/tests/NumericalTests/Utilities/Structs/NumericalTestStruct.h @@ -10,8 +10,8 @@ class TestSimulationImp; struct NumericalTestStruct { - std::vector<std::shared_ptr<TestSimulationImp> > testSimulations; - std::vector<std::shared_ptr<Test> > tests; - std::shared_ptr<LogFileWriter> logFileWriter; + std::vector<std::shared_ptr<TestSimulationImp> > testSimulations; + std::vector<std::shared_ptr<Test> > tests; + std::shared_ptr<LogFileWriter> logFileWriter; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Utilities/Structs/SimulationDataStruct.h b/apps/gpu/tests/NumericalTests/Utilities/Structs/SimulationDataStruct.h index 26c26a1f5e2731cf7906d0862c579e1f5b56ae91..b599223d444719e41b9355eb679ef409cde797d2 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/Structs/SimulationDataStruct.h +++ b/apps/gpu/tests/NumericalTests/Utilities/Structs/SimulationDataStruct.h @@ -8,9 +8,9 @@ struct SimulationDataStruct { - std::vector<std::shared_ptr<TestSimulationDataStruct> > testSimData; + std::vector<std::shared_ptr<TestSimulationDataStruct> > testSimData; - std::shared_ptr<SimulationLogFileInformation> logFileInformation; - bool simGroupRun; + std::shared_ptr<SimulationLogFileInformation> logFileInformation; + bool simGroupRun; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Utilities/Structs/TestSimulationDataStruct.h b/apps/gpu/tests/NumericalTests/Utilities/Structs/TestSimulationDataStruct.h index b1c93b8209b8565cafa1d2100aa68d344d69794b..ca69760bfc4aea2c9a155e5b984a667c131e8446 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/Structs/TestSimulationDataStruct.h +++ b/apps/gpu/tests/NumericalTests/Utilities/Structs/TestSimulationDataStruct.h @@ -12,9 +12,9 @@ class TimeImp; struct TestSimulationDataStruct { - std::shared_ptr<AnalyticalResults> analyticalResult; - std::shared_ptr<InitialCondition> initialCondition; - std::shared_ptr<SimulationInfo> simInformation; - std::shared_ptr<SimulationParameter> simParameter; + std::shared_ptr<AnalyticalResults> analyticalResult; + std::shared_ptr<InitialCondition> initialCondition; + std::shared_ptr<SimulationInfo> simInformation; + std::shared_ptr<SimulationParameter> simParameter; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Utilities/Structs/TestStruct.h b/apps/gpu/tests/NumericalTests/Utilities/Structs/TestStruct.h index d3d471f4e77d2fd309e3068b0f9a41a6a2a923c3..435481c5746746eccdd261def43af4001f45202f 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/Structs/TestStruct.h +++ b/apps/gpu/tests/NumericalTests/Utilities/Structs/TestStruct.h @@ -10,8 +10,8 @@ class Test; struct TestStruct { - std::shared_ptr<TestLogFileInformation> logFileInfo; - std::vector<std::shared_ptr<Test> > tests; - std::string testName; + std::shared_ptr<TestLogFileInformation> logFileInfo; + std::vector<std::shared_ptr<Test> > tests; + std::string testName; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Utilities/Structs/VectorWriterInformationStruct.h b/apps/gpu/tests/NumericalTests/Utilities/Structs/VectorWriterInformationStruct.h index 330e2ee5d3b7ae5ba1aa9f5282504be956f72e4e..a5fa5b7dede5bba2a2e2f6a3dd697e9591c57ee9 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/Structs/VectorWriterInformationStruct.h +++ b/apps/gpu/tests/NumericalTests/Utilities/Structs/VectorWriterInformationStruct.h @@ -5,9 +5,9 @@ struct VectorWriterInformationStruct { - unsigned int startTimeVectorWriter; - bool writeVTKFiles; - unsigned int startTimeVTKDataWriter; + unsigned int startTimeVectorWriter; + bool writeVTKFiles; + unsigned int startTimeVTKDataWriter; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Utilities/Test/SimulationObserver.h b/apps/gpu/tests/NumericalTests/Utilities/Test/SimulationObserver.h index ac579cdc97015c16b5bb8cf27ae664c82aa86655..2745975a2884354cec58041169d9217fbec001ab 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/Test/SimulationObserver.h +++ b/apps/gpu/tests/NumericalTests/Utilities/Test/SimulationObserver.h @@ -4,8 +4,8 @@ class SimulationObserver { public: - virtual ~SimulationObserver() = default; - virtual void update() = 0; + virtual ~SimulationObserver() = default; + virtual void update() = 0; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Utilities/Test/Test.h b/apps/gpu/tests/NumericalTests/Utilities/Test/Test.h index 994bf272eeae9c1d93f15748def233fa0672812c..23a3c43aa73f7acadffa52bfc2ab25dbd39b86cc 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/Test/Test.h +++ b/apps/gpu/tests/NumericalTests/Utilities/Test/Test.h @@ -10,11 +10,11 @@ class Test : public SimulationObserver { public: - virtual ~Test() = default; - virtual void run() = 0; + virtual ~Test() = default; + virtual void run() = 0; - virtual TestStatus getTestStatus() = 0; - virtual void makeConsoleOutput() = 0; + virtual TestStatus getTestStatus() = 0; + virtual void makeConsoleOutput() = 0; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Utilities/Test/TestImp.h b/apps/gpu/tests/NumericalTests/Utilities/Test/TestImp.h index 06c2b3013e22f9de7280dc42b86ad2c1974b1b40..91e7403f590c88d555ce63d6150a240f3d4232ab 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/Test/TestImp.h +++ b/apps/gpu/tests/NumericalTests/Utilities/Test/TestImp.h @@ -15,32 +15,32 @@ class PostProcessingStrategy; class TestImp : public Test { public: - void run() override; - void update() override; - TestStatus getTestStatus() override; - void makeConsoleOutput() override; + void run() override; + void update() override; + TestStatus getTestStatus() override; + void makeConsoleOutput() override; - void addSimulation(std::shared_ptr<NumericalTestSimulation> sim, std::shared_ptr<SimulationInfo> simInfo, std::shared_ptr<PostProcessingStrategy> postProStrategy); - + void addSimulation(std::shared_ptr<NumericalTestSimulation> sim, std::shared_ptr<SimulationInfo> simInfo, std::shared_ptr<PostProcessingStrategy> postProStrategy); + protected: - TestImp(std::shared_ptr<ColorConsoleOutput> colorOutput); - - virtual void evaluate() = 0; - virtual std::vector<std::string> buildTestOutput() = 0; - virtual std::vector<std::string> buildBasicTestOutput() = 0; - virtual std::vector<std::string> buildErrorTestOutput() = 0; - std::vector<std::string> buildSimulationFailedTestOutput(); - - bool CheckAllSimulationRun(); - - std::vector<std::shared_ptr<NumericalTestSimulation> > simulations; - std::vector<std::shared_ptr<PostProcessingStrategy> > postProStrategies; - std::vector<std::shared_ptr<SimulationInfo> > simInfos; - std::vector<bool> simulationRun; - std::shared_ptr<ColorConsoleOutput> colorOutput; - TestStatus testStatus; + TestImp(std::shared_ptr<ColorConsoleOutput> colorOutput); + + virtual void evaluate() = 0; + virtual std::vector<std::string> buildTestOutput() = 0; + virtual std::vector<std::string> buildBasicTestOutput() = 0; + virtual std::vector<std::string> buildErrorTestOutput() = 0; + std::vector<std::string> buildSimulationFailedTestOutput(); + + bool CheckAllSimulationRun(); + + std::vector<std::shared_ptr<NumericalTestSimulation> > simulations; + std::vector<std::shared_ptr<PostProcessingStrategy> > postProStrategies; + std::vector<std::shared_ptr<SimulationInfo> > simInfos; + std::vector<bool> simulationRun; + std::shared_ptr<ColorConsoleOutput> colorOutput; + TestStatus testStatus; private: - TestImp() {}; + TestImp() {}; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Utilities/TestQueue/TestQueueImp.h b/apps/gpu/tests/NumericalTests/Utilities/TestQueue/TestQueueImp.h index 386b5805fb1ff7068ee75e764d6374f2e2fda767..a6ff6324cd272bba1d38845644a656639becc3ac 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/TestQueue/TestQueueImp.h +++ b/apps/gpu/tests/NumericalTests/Utilities/TestQueue/TestQueueImp.h @@ -12,28 +12,28 @@ class ColorConsoleOutput; class TestQueueImp : public TestQueue { public: - TestSuiteResult run() override; - void makeFinalOutput() override; + TestSuiteResult run() override; + void makeFinalOutput() override; - int getNumberOfFailedTests() const noexcept override; + int getNumberOfFailedTests() const noexcept override; - static std::shared_ptr<TestQueueImp> getNewInstance(std::shared_ptr<ColorConsoleOutput> colorOutput); - void addTest(std::shared_ptr<Test> test); + static std::shared_ptr<TestQueueImp> getNewInstance(std::shared_ptr<ColorConsoleOutput> colorOutput); + void addTest(std::shared_ptr<Test> test); private: - TestQueueImp(std::shared_ptr<ColorConsoleOutput> colorOutput); + TestQueueImp(std::shared_ptr<ColorConsoleOutput> colorOutput); - void calcTestNumbers(); + void calcTestNumbers(); - std::shared_ptr<ColorConsoleOutput> colorOutput; - std::vector<std::shared_ptr<Test> > tests; - - int numberOfPassedTest; - int numberOfFailedTest; - int numberOfErrorTest; - int numberOfExecutedTest; - int numberOfNotExecutedTest; + std::shared_ptr<ColorConsoleOutput> colorOutput; + std::vector<std::shared_ptr<Test> > tests; + + int numberOfPassedTest; + int numberOfFailedTest; + int numberOfErrorTest; + int numberOfExecutedTest; + int numberOfNotExecutedTest; - int numberOfTests; + int numberOfTests; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Utilities/TestSimulation/TestSimulation.h b/apps/gpu/tests/NumericalTests/Utilities/TestSimulation/TestSimulation.h index 1f356304f05b1d08a52ed8c1842959af8f2965c1..3f312bc951cdf53b56c148906fa1697da06816d4 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/TestSimulation/TestSimulation.h +++ b/apps/gpu/tests/NumericalTests/Utilities/TestSimulation/TestSimulation.h @@ -17,8 +17,8 @@ class TestSimulation public: virtual ~TestSimulation() = default; virtual void run() = 0; - virtual void makeSimulationHeadOutput() = 0; - virtual void startPostProcessing() = 0; + virtual void makeSimulationHeadOutput() = 0; + virtual void startPostProcessing() = 0; virtual std::shared_ptr<SimulationParameter> getSimulationParameter() = 0; virtual std::shared_ptr<TimeTracking> getTimeTracking() = 0; diff --git a/apps/gpu/tests/NumericalTests/Utilities/Time/TimeImp.cpp b/apps/gpu/tests/NumericalTests/Utilities/Time/TimeImp.cpp index f9d380a0cba6211b3fdd5657003f1a4a8e4ff450..e84778fd9383c0302b9b15331c99f2601d00dfec 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/Time/TimeImp.cpp +++ b/apps/gpu/tests/NumericalTests/Utilities/Time/TimeImp.cpp @@ -4,7 +4,7 @@ std::shared_ptr<TimeImp> TimeImp::getNewInstance() { - return std::shared_ptr<TimeImp>(new TimeImp()); + return std::shared_ptr<TimeImp>(new TimeImp()); } TimeImp::TimeImp() @@ -14,90 +14,90 @@ TimeImp::TimeImp() void TimeImp::setSimulationStartTime() { - simulationStartTime = time(NULL); + simulationStartTime = time(NULL); } void TimeImp::setSimulationEndTime() { - simulationEndTime = time(NULL); + simulationEndTime = time(NULL); } void TimeImp::setTestStartTime() { - testStartTime = clock(); + testStartTime = clock(); } void TimeImp::setTestEndTime() { - testEndTime = clock(); + testEndTime = clock(); } void TimeImp::setAnalyticalResultWriteStartTime() { - analyticalResultWriteStartTime = time(NULL); + analyticalResultWriteStartTime = time(NULL); } void TimeImp::setAnalyticalResultWriteEndTime() { - analyticalResultWriteEndTime = time(NULL); + analyticalResultWriteEndTime = time(NULL); } void TimeImp::setResultCheckStartTime() { - resultCheckStartTime = clock(); + resultCheckStartTime = clock(); } void TimeImp::setResultCheckEndTime() { - resultCheckEndTime = clock(); + resultCheckEndTime = clock(); } std::string TimeImp::getSimulationTime() { - std::ostringstream oss; - oss << calcSimulationTime() << "sec"; - return oss.str(); + std::ostringstream oss; + oss << calcSimulationTime() << "sec"; + return oss.str(); } std::string TimeImp::getResultCheckTime() { - std::ostringstream oss; - oss << calcResultCheckTime() << "sec"; - return oss.str(); + std::ostringstream oss; + oss << calcResultCheckTime() << "sec"; + return oss.str(); } std::string TimeImp::getTestTime() { - std::ostringstream oss; - oss << calcTestTime() << "sec"; - return oss.str(); + std::ostringstream oss; + oss << calcTestTime() << "sec"; + return oss.str(); } std::string TimeImp::getAnalyticalResultWriteTime() { - std::ostringstream oss; - oss << calcAnalyticalResultWriteTime() << "sec"; - return oss.str(); + std::ostringstream oss; + oss << calcAnalyticalResultWriteTime() << "sec"; + return oss.str(); } double TimeImp::calcSimulationTime() { - return difftime(simulationEndTime, simulationStartTime); + return difftime(simulationEndTime, simulationStartTime); } float TimeImp::calcResultCheckTime() { - float timeInMiliSec = ((float)(resultCheckEndTime - resultCheckStartTime) / CLOCKS_PER_SEC); - return timeInMiliSec; + float timeInMiliSec = ((float)(resultCheckEndTime - resultCheckStartTime) / CLOCKS_PER_SEC); + return timeInMiliSec; } float TimeImp::calcTestTime() { - float timeInMiliSec = ((float)(testEndTime - testStartTime) / CLOCKS_PER_SEC); - return timeInMiliSec; + float timeInMiliSec = ((float)(testEndTime - testStartTime) / CLOCKS_PER_SEC); + return timeInMiliSec; } double TimeImp::calcAnalyticalResultWriteTime() { - return difftime(analyticalResultWriteEndTime, analyticalResultWriteStartTime); + return difftime(analyticalResultWriteEndTime, analyticalResultWriteStartTime); } diff --git a/apps/gpu/tests/NumericalTests/Utilities/Time/TimeImp.h b/apps/gpu/tests/NumericalTests/Utilities/Time/TimeImp.h index f6f6c39ef9e641c67af5ae8a7c5af220f68c7c66..82c55af054fd2dcc377b6e99e87a8dd9877dbae7 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/Time/TimeImp.h +++ b/apps/gpu/tests/NumericalTests/Utilities/Time/TimeImp.h @@ -10,32 +10,32 @@ class TimeImp : public TimeTracking, public TimeInfo { public: - static std::shared_ptr<TimeImp> getNewInstance(); + static std::shared_ptr<TimeImp> getNewInstance(); - void setSimulationStartTime() override; - void setSimulationEndTime() override; - void setTestStartTime() override; - void setTestEndTime() override; - void setAnalyticalResultWriteStartTime() override; - void setAnalyticalResultWriteEndTime() override; - void setResultCheckStartTime() override; - void setResultCheckEndTime() override; + void setSimulationStartTime() override; + void setSimulationEndTime() override; + void setTestStartTime() override; + void setTestEndTime() override; + void setAnalyticalResultWriteStartTime() override; + void setAnalyticalResultWriteEndTime() override; + void setResultCheckStartTime() override; + void setResultCheckEndTime() override; - std::string getSimulationTime() override; - std::string getResultCheckTime() override; - std::string getTestTime() override; - std::string getAnalyticalResultWriteTime() override; + std::string getSimulationTime() override; + std::string getResultCheckTime() override; + std::string getTestTime() override; + std::string getAnalyticalResultWriteTime() override; private: - TimeImp(); - double calcSimulationTime(); - float calcResultCheckTime(); - float calcTestTime(); - double calcAnalyticalResultWriteTime(); + TimeImp(); + double calcSimulationTime(); + float calcResultCheckTime(); + float calcTestTime(); + double calcAnalyticalResultWriteTime(); - time_t simulationStartTime, simulationEndTime; - clock_t resultCheckStartTime, resultCheckEndTime; - clock_t testStartTime, testEndTime; - time_t analyticalResultWriteStartTime, analyticalResultWriteEndTime; + time_t simulationStartTime, simulationEndTime; + clock_t resultCheckStartTime, resultCheckEndTime; + clock_t testStartTime, testEndTime; + time_t analyticalResultWriteStartTime, analyticalResultWriteEndTime; }; #endif \ No newline at end of file diff --git a/apps/gpu/tests/NumericalTests/Utilities/Time/TimeTracking.h b/apps/gpu/tests/NumericalTests/Utilities/Time/TimeTracking.h index 663456d6a2c0d428f23a373448ac3c93ad19067f..78f3fd626667ddfbb6465f7dba6b0b2e7b2945cb 100644 --- a/apps/gpu/tests/NumericalTests/Utilities/Time/TimeTracking.h +++ b/apps/gpu/tests/NumericalTests/Utilities/Time/TimeTracking.h @@ -4,17 +4,17 @@ class TimeTracking { public: - virtual ~TimeTracking() = default; - virtual void setSimulationStartTime() = 0; - virtual void setSimulationEndTime() = 0; + virtual ~TimeTracking() = default; + virtual void setSimulationStartTime() = 0; + virtual void setSimulationEndTime() = 0; - virtual void setResultCheckStartTime() = 0; - virtual void setResultCheckEndTime() = 0; + virtual void setResultCheckStartTime() = 0; + virtual void setResultCheckEndTime() = 0; - virtual void setTestStartTime() = 0; - virtual void setTestEndTime() = 0; + virtual void setTestStartTime() = 0; + virtual void setTestEndTime() = 0; - virtual void setAnalyticalResultWriteStartTime() = 0; - virtual void setAnalyticalResultWriteEndTime() = 0; + virtual void setAnalyticalResultWriteStartTime() = 0; + virtual void setAnalyticalResultWriteEndTime() = 0; }; #endif diff --git a/lizard.txt b/lizard.txt new file mode 100644 index 0000000000000000000000000000000000000000..927eca599897274df6b26beab673c50248f58b7d --- /dev/null +++ b/lizard.txt @@ -0,0 +1,185 @@ +src/gpu/GridGenerator/geometries/TriangularMesh/TriangularMeshStrategy.cpp:90: warning: RayCastingDiscretizationStrategy::doDiscretize has 117 NLOC, 33 CCN, 1018 token, 4 PARAM, 138 length +src/gpu/GridGenerator/TransientBCSetter/TransientBCSetter.cpp:259: warning: VTKReader::fillArrays has 110 NLOC, 23 CCN, 976 token, 2 PARAM, 132 length +src/gpu/GridGenerator/grid/GridBuilder/MultipleGridBuilder.cpp:232: warning: MultipleGridBuilder::getStaggeredCoordinates has 61 NLOC, 24 CCN, 827 token, 6 PARAM, 114 length +src/gpu/GridGenerator/grid/GridImp.cpp:364: warning: GridImp::fixRefinementIntoWall has 36 NLOC, 44 CCN, 630 token, 4 PARAM, 58 length +src/gpu/GridGenerator/grid/GridImp.cpp:612: warning: GridImp::nodeInNextCellIs has 24 NLOC, 17 CCN, 346 token, 2 PARAM, 30 length +src/gpu/GridGenerator/grid/GridImp.cpp:643: warning: GridImp::nodeInPreviousCellIs has 24 NLOC, 17 CCN, 346 token, 2 PARAM, 30 length +src/gpu/GridGenerator/io/STLReaderWriter/STLReader.cpp:110: warning: STLReader::readASCIISTLWithPatches has 76 NLOC, 24 CCN, 599 token, 2 PARAM, 99 length +src/gpu/GridGenerator/io/GridVTKWriter/GridVTKWriter.cpp:162: warning: GridVTKWriter::writeInterpolationCellsToVTKXML has 84 NLOC, 16 CCN, 1035 token, 3 PARAM, 114 length +src/gpu/core/LBM/Simulation.cpp:88: warning: Simulation::init has 127 NLOC, 24 CCN, 1214 token, 4 PARAM, 307 length +src/gpu/core/LBM/Simulation.cpp:506: warning: Simulation::calculateTimestep has 151 NLOC, 31 CCN, 1391 token, 1 PARAM, 209 length +src/gpu/core/LBM/Simulation.cpp:716: warning: Simulation::readAndWriteFiles has 77 NLOC, 21 CCN, 718 token, 1 PARAM, 258 length +src/gpu/core/LBM/Simulation.cpp:975: warning: Simulation::~Simulation has 96 NLOC, 24 CCN, 748 token, 0 PARAM, 153 length +src/gpu/core/GPU/GeometryUtils.h:19: warning: findNearestCellBSW has 18 NLOC, 16 CCN, 347 token, 11 PARAM, 23 length +src/gpu/core/DataStructureInitializer/GridReaderFiles/GridReader.cpp:329: warning: GridReader::initalValuesDomainDecompostion has 157 NLOC, 21 CCN, 2302 token, 1 PARAM, 212 length +src/gpu/core/DataStructureInitializer/GridReaderGenerator/GridGenerator.cpp:210: warning: GridGenerator::allocArrays_BoundaryValues has 177 NLOC, 23 CCN, 2395 token, 0 PARAM, 272 length +src/gpu/core/DataStructureInitializer/GridReaderGenerator/GridGenerator.cpp:483: warning: GridGenerator::initalValuesDomainDecompostion has 321 NLOC, 42 CCN, 4222 token, 0 PARAM, 429 length +src/gpu/core/DataStructureInitializer/GridReaderGenerator/GridGenerator.cpp:913: warning: GridGenerator::allocArrays_BoundaryQs has 135 NLOC, 21 CCN, 1339 token, 0 PARAM, 235 length +src/gpu/core/Particles/Particles.cpp:58: warning: initParticles has 156 NLOC, 29 CCN, 2248 token, 1 PARAM, 239 length +src/gpu/core/Calculation/Cp.cpp:224: warning: excludeGridInterfaceNodesForMirror has 55 NLOC, 16 CCN, 899 token, 2 PARAM, 59 length +src/gpu/core/Calculation/Cp.cpp:373: warning: printGeoFile has 132 NLOC, 25 CCN, 1208 token, 2 PARAM, 166 length +src/gpu/core/Parameter/Parameter.cpp:83: warning: Parameter::readConfigData has 175 NLOC, 82 CCN, 1974 token, 1 PARAM, 268 length +src/gpu/core/FindInterface/FindInterface.cpp:3: warning: interpolation has 2320 NLOC, 271 CCN, 22540 token, 16 PARAM, 2893 length +src/gpu/core/Output/UnstructuredGridWriter.hpp:170: warning: UnstructuredGridWriter::writeUnstrucuredGridLT has 86 NLOC, 20 CCN, 978 token, 3 PARAM, 129 length +src/gpu/core/Output/UnstructuredGridWriter.hpp:307: warning: UnstructuredGridWriter::writeUnstrucuredGridLTwithTurbulentViscosity has 89 NLOC, 20 CCN, 1018 token, 3 PARAM, 115 length +src/gpu/core/Output/UnstructuredGridWriter.hpp:430: warning: UnstructuredGridWriter::writeUnstrucuredGridLTwithTurbulentViscosityDebug has 122 NLOC, 20 CCN, 1566 token, 3 PARAM, 146 length +src/gpu/core/Output/UnstructuredGridWriter.hpp:584: warning: UnstructuredGridWriter::writeUnstrucuredGridPM has 86 NLOC, 36 CCN, 1278 token, 3 PARAM, 128 length +src/gpu/core/Output/UnstructuredGridWriter.hpp:720: warning: UnstructuredGridWriter::writeUnstrucuredGridLTConc has 89 NLOC, 20 CCN, 1030 token, 3 PARAM, 112 length +src/gpu/core/Output/UnstructuredGridWriter.hpp:845: warning: UnstructuredGridWriter::writeUnstrucuredGridBig has 169 NLOC, 42 CCN, 2461 token, 4 PARAM, 246 length +src/gpu/core/Output/UnstructuredGridWriter.hpp:1285: warning: UnstructuredGridWriter::writeUnstrucuredGridMedianLT has 86 NLOC, 20 CCN, 965 token, 3 PARAM, 109 length +src/gpu/core/Output/UnstructuredGridWriter.hpp:1403: warning: UnstructuredGridWriter::writeUnstrucuredGridMedianLTConc has 88 NLOC, 20 CCN, 993 token, 3 PARAM, 108 length +src/gpu/core/Output/UnstructuredGridWriter.hpp:1520: warning: UnstructuredGridWriter::writeUnstrucuredGridMedianLTwithDerivationsAndSqaredVelos has 115 NLOC, 20 CCN, 1669 token, 3 PARAM, 138 length +src/gpu/core/Output/UnstructuredGridWriter.hpp:2209: warning: UnstructuredGridWriter::writeQs has 81 NLOC, 30 CCN, 1196 token, 3 PARAM, 96 length +src/gpu/core/Output/UnstructuredGridWriter.hpp:2313: warning: UnstructuredGridWriter::writeQsInflow has 82 NLOC, 31 CCN, 1210 token, 3 PARAM, 97 length +src/gpu/core/Output/UnstructuredGridWriter.hpp:2418: warning: UnstructuredGridWriter::writeQsPressure has 82 NLOC, 31 CCN, 1210 token, 3 PARAM, 97 length +src/gpu/core/Output/FileWriter.cpp:305: warning: FileWriter::writeUnstructuredGridMedianLT has 79 NLOC, 23 CCN, 957 token, 3 PARAM, 101 length +src/gpu/core/Output/InterfaceDebugWriter.hpp:719: warning: InterfaceDebugWriter::writeSendNodesStream has 79 NLOC, 16 CCN, 943 token, 2 PARAM, 96 length +src/gpu/core/Output/VtkSGWriter.hpp:118: warning: VtkSGWriter::writeVTKsgSP has 119 NLOC, 21 CCN, 1071 token, 25 PARAM, 146 length +src/gpu/core/Output/VtkSGWriter.hpp:272: warning: VtkSGWriter::writeVTKsgSPbin has 120 NLOC, 24 CCN, 1229 token, 26 PARAM, 138 length +src/gpu/core/Output/VtkSGWriter.hpp:413: warning: VtkSGWriter::writeVTKmedSPbin has 120 NLOC, 24 CCN, 1252 token, 27 PARAM, 138 length +src/gpu/core/Output/VtkSGWriter.hpp:554: warning: VtkSGWriter::writeVTKsgSPbinTEST has 77 NLOC, 17 CCN, 643 token, 1 PARAM, 85 length +src/gpu/core/Output/VtkSGWriter.hpp:646: warning: VtkSGWriter::writeVTKsgThS has 109 NLOC, 20 CCN, 999 token, 25 PARAM, 125 length +src/gpu/core/Output/VtkSGWriter.hpp:776: warning: VtkSGWriter::writeVTKsgSPbinAS has 125 NLOC, 30 CCN, 1207 token, 28 PARAM, 153 length +src/gpu/core/Output/VtkSGWriter.hpp:932: warning: VtkSGWriter::writeVTKmedSPbinAS has 125 NLOC, 30 CCN, 1233 token, 29 PARAM, 155 length +src/cpu/MultiphaseFlow/LBM/MultiphaseScaleDistributionLBMKernel.cpp:153: warning: MultiphaseScaleDistributionLBMKernel::calculate has 841 NLOC, 95 CCN, 15448 token, 1 PARAM, 4867 length +src/cpu/MultiphaseFlow/LBM/MultiphasePressureFilterLBMKernel.cpp:147: warning: MultiphasePressureFilterLBMKernel::calculate has 1056 NLOC, 38 CCN, 15517 token, 1 PARAM, 1485 length +src/cpu/MultiphaseFlow/LBM/MultiphaseScratchCumulantLBMKernel.cpp:136: warning: MultiphaseScratchCumulantLBMKernel::calculate has 998 NLOC, 15 CCN, 15155 token, 1 PARAM, 2793 length +src/cpu/MultiphaseFlow/LBM/MultiphasePressureFilterCompressibleAirLBMKernel.cpp:147: warning: MultiphasePressureFilterCompressibleAirLBMKernel::calculate has 954 NLOC, 37 CCN, 13902 token, 1 PARAM, 1337 length +src/cpu/MultiphaseFlow/LBM/MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel.cpp:139: warning: MultiphaseTwoPhaseFieldsVelocityCumulantLBMKernel::calculate has 1183 NLOC, 48 CCN, 17408 token, 1 PARAM, 3150 length +src/cpu/MultiphaseFlow/LBM/MultiphaseSimpleVelocityBaseExternalPressureLBMKernel.cpp:145: warning: MultiphaseSimpleVelocityBaseExternalPressureLBMKernel::calculate has 1091 NLOC, 20 CCN, 16030 token, 1 PARAM, 2659 length +src/cpu/MultiphaseFlow/LBM/MultiphaseCumulantLBMKernel.cpp:83: warning: MultiphaseCumulantLBMKernel::calculate has 840 NLOC, 21 CCN, 11775 token, 1 PARAM, 1099 length +src/cpu/MultiphaseFlow/LBM/MultiphaseSharpInterfaceLBMKernel.cpp:153: warning: MultiphaseSharpInterfaceLBMKernel::calculate has 780 NLOC, 87 CCN, 13990 token, 1 PARAM, 1305 length +src/cpu/MultiphaseFlow/LBM/MultiphaseTwoPhaseFieldsCumulantLBMKernel.cpp:137: warning: MultiphaseTwoPhaseFieldsCumulantLBMKernel::calculate has 1183 NLOC, 14 CCN, 17738 token, 1 PARAM, 2855 length +src/cpu/MultiphaseFlow/LBM/MultiphaseTwoPhaseFieldsPressureFilterLBMKernel.cpp:151: warning: MultiphaseTwoPhaseFieldsPressureFilterLBMKernel::calculate has 1173 NLOC, 37 CCN, 17390 token, 1 PARAM, 3207 length +src/cpu/MultiphaseFlow/LBM/MultiphaseScaleDistributionLBMKernel.h:138: warning: MultiphaseScaleDistributionLBMKernel::isGas has 33 NLOC, 28 CCN, 282 token, 3 PARAM, 33 length +src/cpu/MultiphaseFlow/SimulationObservers/WriteSharpInterfaceQuantitiesSimulationObserver.cpp:144: warning: WriteSharpInterfaceQuantitiesSimulationObserver::addDataMQ has 151 NLOC, 30 CCN, 2116 token, 1 PARAM, 226 length +src/cpu/MultiphaseFlow/SimulationObservers/WriteMultiphaseQuantitiesSimulationObserver.cpp:147: warning: WriteMultiphaseQuantitiesSimulationObserver::addDataMQ has 235 NLOC, 37 CCN, 3976 token, 1 PARAM, 329 length +src/cpu/MultiphaseFlow/BoundaryConditions/MultiphaseVelocityBC.cpp:177: warning: MultiphaseVelocityBC::init has 82 NLOC, 30 CCN, 907 token, 2 PARAM, 91 length +src/cpu/MultiphaseFlow/BoundaryConditions/MultiphaseSlipBCStrategy.cpp:65: warning: MultiphaseSlipBCStrategy::applyBC has 64 NLOC, 29 CCN, 1117 token, 0 PARAM, 79 length +src/cpu/LiggghtsCoupling/LBM/IBcumulantK17LBMKernel.cpp:99: warning: IBcumulantK17LBMKernel::calculate has 502 NLOC, 20 CCN, 7949 token, 1 PARAM, 809 length +src/cpu/LiggghtsCoupling/LBM/IBsharpInterfaceLBMKernel.cpp:173: warning: IBsharpInterfaceLBMKernel::calculate has 919 NLOC, 97 CCN, 17677 token, 1 PARAM, 1367 length +src/cpu/LiggghtsCoupling/SimulationObserver/LiggghtsCouplingSimulationObserver.cpp:92: warning: LiggghtsCouplingSimulationObserver::setSingleSphere3D has 64 NLOC, 21 CCN, 839 token, 5 PARAM, 112 length +src/cpu/NonNewtonianFluids/LBM/RheologyK17LBMKernel.cpp:97: warning: RheologyK17LBMKernel::calculate has 613 NLOC, 16 CCN, 8545 token, 1 PARAM, 1037 length +src/cpu/NonNewtonianFluids/LBM/ThixotropyLBMKernel.cpp:68: warning: ThixotropyLBMKernel::calculate has 1355 NLOC, 14 CCN, 25623 token, 1 PARAM, 1750 length +src/cpu/NonNewtonianFluids/LBM/ThixotropyExpLBMKernel.cpp:68: warning: ThixotropyExpLBMKernel::calculate has 1353 NLOC, 14 CCN, 25585 token, 1 PARAM, 1756 length +src/cpu/NonNewtonianFluids/BoundaryConditions/ThixotropyVelocityWithDensityBCStrategy.cpp:65: warning: ThixotropyVelocityWithDensityBCStrategy::applyBC has 50 NLOC, 16 CCN, 520 token, 0 PARAM, 67 length +src/cpu/NonNewtonianFluids/BoundaryConditions/ThixotropyNonReflectingOutflowBCStrategy.cpp:70: warning: ThixotropyNonReflectingOutflowBCStrategy::applyBC has 280 NLOC, 19 CCN, 7096 token, 0 PARAM, 305 length +src/cpu/NonNewtonianFluids/Visitors/RheologyBoundaryConditionsBlockVisitor.cpp:61: warning: BoundaryConditionsBlockVisitor::visit has 63 NLOC, 16 CCN, 551 token, 2 PARAM, 75 length +src/cpu/core/LBM/Interpolation/Interpolator.cpp:77: warning: Interpolator::findNeighborICell has 220 NLOC, 53 CCN, 1748 token, 12 PARAM, 255 length +src/cpu/core/LBM/IncompressibleCumulantWithSpongeLayerLBMKernel.cpp:35: warning: IncompressibleCumulantWithSpongeLayerLBMKernel::initRelaxFactor has 74 NLOC, 16 CCN, 597 token, 4 PARAM, 82 length +src/cpu/core/LBM/D3Q27System.h:246: warning: D3Q27System::getDirectionString has 60 NLOC, 27 CCN, 182 token, 1 PARAM, 61 length +src/cpu/core/LBM/D3Q27System.h:308: warning: D3Q27System::setNeighborCoordinatesForDirection has 114 NLOC, 27 CCN, 337 token, 4 PARAM, 115 length +src/cpu/core/LBM/D3Q27System.h:551: warning: D3Q27System::getCompFeqForDirection has 93 NLOC, 28 CCN, 1594 token, 5 PARAM, 94 length +src/cpu/core/LBM/D3Q27System.h:695: warning: D3Q27System::getIncompFeqForDirection has 84 NLOC, 28 CCN, 1472 token, 5 PARAM, 86 length +src/cpu/core/LBM/D3Q27System.h:826: warning: D3Q27System::getBoundaryVelocityForDirection has 61 NLOC, 27 CCN, 676 token, 4 PARAM, 62 length +src/cpu/core/Connectors/CoarseToFineVectorConnector.h:150: warning: CoarseToFineVectorConnector<VectorTransmitter>::CoarseToFineVectorConnector has 23 NLOC, 27 CCN, 227 token, 11 PARAM, 24 length +src/cpu/core/Connectors/CoarseToFineVectorConnector.h:182: warning: CoarseToFineVectorConnector<VectorTransmitter>::isRemoteConnector has 11 NLOC, 16 CCN, 93 token, 0 PARAM, 11 length +src/cpu/core/Connectors/CoarseToFineVectorConnector.h:301: warning: CoarseToFineVectorConnector<VectorTransmitter>::init has 80 NLOC, 35 CCN, 526 token, 0 PARAM, 87 length +src/cpu/core/Connectors/CoarseToFineVectorConnector.h:390: warning: CoarseToFineVectorConnector<VectorTransmitter>::fillSendVectors has 311 NLOC, 27 CCN, 3140 token, 0 PARAM, 406 length +src/cpu/core/Connectors/CoarseToFineVectorConnector.h:896: warning: CoarseToFineVectorConnector<VectorTransmitter>::distributeReceiveVectors has 592 NLOC, 27 CCN, 6167 token, 0 PARAM, 706 length +src/cpu/core/Connectors/CoarseToFineVectorConnector.h:1634: warning: CoarseToFineVectorConnector<VectorTransmitter>::getLocalMinMax has 120 NLOC, 73 CCN, 933 token, 6 PARAM, 139 length +src/cpu/core/Connectors/CoarseToFineVectorConnector.h:1775: warning: CoarseToFineVectorConnector<VectorTransmitter>::getLocalMinMax has 121 NLOC, 73 CCN, 935 token, 7 PARAM, 138 length +src/cpu/core/Connectors/FullDirectConnector.cpp:60: warning: FullDirectConnector::exchangeData has 115 NLOC, 51 CCN, 1071 token, 0 PARAM, 129 length +src/cpu/core/Connectors/ThreeDistributionsDoubleGhostLayerFullDirectConnector.cpp:64: warning: ThreeDistributionsDoubleGhostLayerFullDirectConnector::exchangeData has 234 NLOC, 51 CCN, 2628 token, 0 PARAM, 256 length +src/cpu/core/Connectors/ThreeDistributionsDoubleGhostLayerFullVectorConnector.cpp:51: warning: ThreeDistributionsDoubleGhostLayerFullVectorConnector::init has 42 NLOC, 28 CCN, 384 token, 0 PARAM, 50 length +src/cpu/core/Connectors/ThreeDistributionsDoubleGhostLayerFullVectorConnector.cpp:108: warning: ThreeDistributionsDoubleGhostLayerFullVectorConnector::fillData has 230 NLOC, 51 CCN, 2353 token, 0 PARAM, 258 length +src/cpu/core/Connectors/ThreeDistributionsDoubleGhostLayerFullVectorConnector.cpp:373: warning: ThreeDistributionsDoubleGhostLayerFullVectorConnector::distributeData has 230 NLOC, 51 CCN, 2353 token, 0 PARAM, 248 length +src/cpu/core/Connectors/TwoDistributionsFullVectorConnector.cpp:51: warning: TwoDistributionsFullVectorConnector::init has 40 NLOC, 28 CCN, 322 token, 0 PARAM, 48 length +src/cpu/core/Connectors/OneDistributionFullVectorConnector.cpp:13: warning: OneDistributionFullVectorConnector::init has 55 NLOC, 28 CCN, 294 token, 0 PARAM, 63 length +src/cpu/core/Connectors/FullVectorConnector.cpp:60: warning: FullVectorConnector::fillData has 177 NLOC, 62 CCN, 979 token, 0 PARAM, 189 length +src/cpu/core/Connectors/FullVectorConnector.cpp:256: warning: FullVectorConnector::distributeData has 175 NLOC, 62 CCN, 925 token, 0 PARAM, 185 length +src/cpu/core/Connectors/FineToCoarseVectorConnector.h:140: warning: FineToCoarseVectorConnector<VectorTransmitter>::FineToCoarseVectorConnector has 22 NLOC, 27 CCN, 187 token, 6 PARAM, 25 length +src/cpu/core/Connectors/FineToCoarseVectorConnector.h:227: warning: FineToCoarseVectorConnector<VectorTransmitter>::init has 57 NLOC, 27 CCN, 373 token, 0 PARAM, 61 length +src/cpu/core/Connectors/FineToCoarseVectorConnector.h:290: warning: FineToCoarseVectorConnector<VectorTransmitter>::fillSendVectors has 422 NLOC, 28 CCN, 3315 token, 0 PARAM, 500 length +src/cpu/core/Connectors/FineToCoarseVectorConnector.h:856: warning: FineToCoarseVectorConnector<VectorTransmitter>::distributeReceiveVectors has 233 NLOC, 27 CCN, 1623 token, 0 PARAM, 262 length +src/cpu/core/Connectors/FineToCoarseVectorConnector.h:1164: warning: FineToCoarseVectorConnector<VectorTransmitter>::getLocalMinMax has 120 NLOC, 73 CCN, 933 token, 6 PARAM, 140 length +src/cpu/core/Connectors/FineToCoarseVectorConnector.h:1306: warning: FineToCoarseVectorConnector<VectorTransmitter>::getLocalMinMax has 121 NLOC, 73 CCN, 935 token, 7 PARAM, 139 length +src/cpu/core/Connectors/FineToCoarseVectorConnector.h:1458: warning: FineToCoarseVectorConnector<VectorTransmitter>::getLocalMins has 74 NLOC, 37 CCN, 312 token, 6 PARAM, 101 length +src/cpu/core/Connectors/TwoDistributionsDoubleGhostLayerFullDirectConnector.cpp:62: warning: TwoDistributionsDoubleGhostLayerFullDirectConnector::exchangeData has 234 NLOC, 51 CCN, 2628 token, 0 PARAM, 256 length +src/cpu/core/Connectors/TwoDistributionsDoubleGhostLayerFullVectorConnector.cpp:51: warning: TwoDistributionsDoubleGhostLayerFullVectorConnector::init has 41 NLOC, 28 CCN, 358 token, 0 PARAM, 49 length +src/cpu/core/Connectors/TwoDistributionsDoubleGhostLayerFullVectorConnector.cpp:107: warning: TwoDistributionsDoubleGhostLayerFullVectorConnector::fillData has 230 NLOC, 51 CCN, 2353 token, 0 PARAM, 258 length +src/cpu/core/Connectors/TwoDistributionsDoubleGhostLayerFullVectorConnector.cpp:372: warning: TwoDistributionsDoubleGhostLayerFullVectorConnector::distributeData has 230 NLOC, 51 CCN, 2353 token, 0 PARAM, 248 length +src/cpu/core/Connectors/ThreeDistributionsFullVectorConnector.cpp:51: warning: ThreeDistributionsFullVectorConnector::init has 41 NLOC, 28 CCN, 348 token, 0 PARAM, 49 length +src/cpu/core/Interactors/D3Q27Interactor.cpp:286: warning: D3Q27Interactor::setDifferencesToGbObject3D has 233 NLOC, 55 CCN, 2007 token, 1 PARAM, 289 length +src/cpu/core/Interactors/D3Q27Interactor.cpp:576: warning: D3Q27Interactor::addQsLineSet has 180 NLOC, 35 CCN, 1190 token, 2 PARAM, 192 length +src/cpu/core/Interactors/D3Q27Interactor.cpp:769: warning: D3Q27Interactor::getQsLineSet has 213 NLOC, 71 CCN, 1422 token, 0 PARAM, 223 length +src/cpu/core/Interactors/D3Q27TriFaceMeshInteractor.cpp:123: warning: D3Q27TriFaceMeshInteractor::setQs has 290 NLOC, 46 CCN, 3345 token, 1 PARAM, 454 length +src/cpu/core/Interactors/D3Q27TriFaceMeshInteractor.cpp:592: warning: D3Q27TriFaceMeshInteractor::initInteractor2 has 389 NLOC, 62 CCN, 4303 token, 1 PARAM, 719 length +src/cpu/core/Interactors/D3Q27TriFaceMeshInteractor.cpp:1312: warning: D3Q27TriFaceMeshInteractor::refineBlockGridToLevel has 129 NLOC, 26 CCN, 1733 token, 3 PARAM, 181 length +src/cpu/core/Interactors/Interactor3D.cpp:107: warning: Interactor3D::isBlockOutsideGeoObject has 33 NLOC, 21 CCN, 406 token, 7 PARAM, 39 length +src/cpu/core/Interactors/Interactor3D.cpp:147: warning: Interactor3D::isBlockInsideGeoObject has 33 NLOC, 21 CCN, 405 token, 7 PARAM, 39 length +src/cpu/core/Interactors/Interactor3D.cpp:187: warning: Interactor3D::isBlockCuttingGeoObject has 33 NLOC, 21 CCN, 405 token, 7 PARAM, 39 length +src/cpu/core/Parallel/SimpleGeometricPartitioner.h:21: warning: SimpleGeometricPartitioner::createDimensions has 59 NLOC, 20 CCN, 414 token, 4 PARAM, 69 length +src/cpu/core/SimulationObservers/InSituCatalystSimulationObserver.cpp:92: warning: InSituCatalystSimulationObserver::addData has 63 NLOC, 16 CCN, 655 token, 1 PARAM, 76 length +src/cpu/core/SimulationObservers/InSituCatalystSimulationObserver.cpp:209: warning: InSituCatalystSimulationObserver::addVTKGridData has 97 NLOC, 21 CCN, 1115 token, 1 PARAM, 126 length +src/cpu/core/SimulationObservers/MPIIOMigrationBESimulationObserver.cpp:855: warning: MPIIOMigrationBESimulationObserver::writeDataSet.MPIIOMigrationBESimulationObserver::writeDataSet.MPIIOMigrationBESimulationObserver::write4DArray.MPIIOMigrationBESimulationObserver::writeDataSet.MPIIOMigrationBESimulationObserver::writeDataSet.MPIIOMigrationBESimulationObserver::write4DArray.MPIIOMigrationBESimulationObserver::write3DArray.MPIIOMigrationBESimulationObserver::writeDataSet.MPIIOMigrationBESimulationObserver::writeDataSet.MPIIOMigrationBESimulationObserver::write4DArray.MPIIOMigrationBESimulationObserver::writeDataSet.MPIIOMigrationBESimulationObserver::writeDataSet.MPIIOMigrationBESimulationObserver::write4DArray.MPIIOMigrationBESimulationObserver::write3DArray.MPIIOMigrationBESimulationObserver::writeBoundaryConds.MPIIOMigrationBESimulationObserver::blocksExchange has 110 NLOC, 21 CCN, 939 token, 6 PARAM, 132 length +src/cpu/core/SimulationObservers/InSituVTKSimulationObserver.cpp:125: warning: InSituVTKSimulationObserver::addData has 101 NLOC, 21 CCN, 1188 token, 1 PARAM, 136 length +src/cpu/core/SimulationObservers/WriteMQFromSelectionSimulationObserver.cpp:111: warning: WriteMQFromSelectionSimulationObserver::addDataMQ has 74 NLOC, 16 CCN, 756 token, 1 PARAM, 103 length +src/cpu/core/SimulationObservers/QCriterionSimulationObserver.cpp:205: warning: QCriterionSimulationObserver::getNeighborVelocities has 103 NLOC, 30 CCN, 1174 token, 9 PARAM, 143 length +src/cpu/core/SimulationObservers/WriteMacroscopicQuantitiesSimulationObserver.cpp:144: warning: WriteMacroscopicQuantitiesSimulationObserver::addDataMQ has 79 NLOC, 18 CCN, 1004 token, 1 PARAM, 135 length +src/cpu/core/SimulationObservers/PressureCoefficientSimulationObserver.cpp:43: warning: PressureCoefficientSimulationObserver::calculateRho has 68 NLOC, 16 CCN, 642 token, 0 PARAM, 79 length +src/cpu/core/SimulationObservers/LineTimeSeriesSimulationObserver.cpp:89: warning: LineTimeSeriesSimulationObserver::collectData has 111 NLOC, 26 CCN, 957 token, 0 PARAM, 116 length +src/cpu/core/SimulationObservers/WriteMacroscopicQuantitiesPlusMassSimulationObserver.cpp:144: warning: WriteMacroscopicQuantitiesPlusMassSimulationObserver::addDataMQ has 79 NLOC, 19 CCN, 1016 token, 1 PARAM, 135 length +src/cpu/core/SimulationObservers/TimeAveragedValuesSimulationObserver.cpp:193: warning: TimeAveragedValuesSimulationObserver::addData has 126 NLOC, 18 CCN, 1543 token, 1 PARAM, 161 length +src/cpu/core/SimulationObservers/TimeAveragedValuesSimulationObserver.cpp:579: warning: TimeAveragedValuesSimulationObserver::calculateAverageValues.TimeAveragedValuesSimulationObserver::planarAverage has 97 NLOC, 19 CCN, 805 token, 1 PARAM, 122 length +src/cpu/core/SimulationObservers/ShearStressSimulationObserver.cpp:413: warning: ShearStressSimulationObserver::findPlane has 399 NLOC, 122 CCN, 3322 token, 10 PARAM, 417 length +src/cpu/core/SimulationObservers/ShearStressSimulationObserver.cpp:845: warning: ShearStressSimulationObserver::initDistance has 85 NLOC, 24 CCN, 739 token, 0 PARAM, 109 length +src/cpu/core/Data/D3Q27EsoTwist3DSplittedVector.cpp:199: warning: D3Q27EsoTwist3DSplittedVector::setPostCollisionDistributionForDirection has 59 NLOC, 28 CCN, 1083 token, 5 PARAM, 60 length +src/cpu/core/Data/D3Q27EsoTwist3DSplittedVector.cpp:260: warning: D3Q27EsoTwist3DSplittedVector::setPostCollisionDistributionForDirection has 90 NLOC, 28 CCN, 772 token, 5 PARAM, 91 length +src/cpu/core/Data/D3Q27EsoTwist3DSplittedVector.cpp:352: warning: D3Q27EsoTwist3DSplittedVector::setPreCollisionDistributionForDirection has 59 NLOC, 28 CCN, 1083 token, 5 PARAM, 60 length +src/cpu/core/Data/D3Q27EsoTwist3DSplittedVector.cpp:413: warning: D3Q27EsoTwist3DSplittedVector::setPreCollisionDistributionForDirection has 90 NLOC, 28 CCN, 774 token, 5 PARAM, 91 length +src/cpu/core/Data/D3Q27EsoTwist3DSplittedVector.cpp:505: warning: D3Q27EsoTwist3DSplittedVector::getPreCollisionDistributionForDirection has 62 NLOC, 28 CCN, 688 token, 4 PARAM, 63 length +src/cpu/core/Data/D3Q27EsoTwist3DSplittedVector.cpp:569: warning: D3Q27EsoTwist3DSplittedVector::getDistributionInvForDirection has 62 NLOC, 28 CCN, 688 token, 4 PARAM, 63 length +src/cpu/core/Simulation/Simulation.cpp:128: warning: Simulation::initRemoteConnectors has 50 NLOC, 16 CCN, 435 token, 0 PARAM, 67 length +src/cpu/core/Simulation/Simulation.cpp:245: warning: Simulation::run has 59 NLOC, 20 CCN, 452 token, 0 PARAM, 110 length +src/cpu/core/Simulation/Grid3D.cpp:181: warning: Grid3D::getBlock has 29 NLOC, 21 CCN, 316 token, 4 PARAM, 32 length +src/cpu/core/Simulation/Grid3D.cpp:1103: warning: Grid3D::getNeighborBlocksForDirection has 87 NLOC, 27 CCN, 641 token, 7 PARAM, 88 length +src/cpu/core/Simulation/Grid3D.cpp:1209: warning: Grid3D::getSubBlocksZero has 50 NLOC, 17 CCN, 510 token, 6 PARAM, 58 length +src/cpu/core/Simulation/Grid3D.cpp:1268: warning: Grid3D::getNeighborBlocksForDirectionWithREST has 90 NLOC, 28 CCN, 663 token, 7 PARAM, 91 length +src/cpu/core/BoundaryConditions/BoundaryConditions.h:194: warning: BoundaryConditions::getBoundaryVelocity has 62 NLOC, 27 CCN, 661 token, 1 PARAM, 63 length +src/cpu/core/BoundaryConditions/VelocityBC.cpp:201: warning: VelocityBC::init has 77 NLOC, 30 CCN, 901 token, 2 PARAM, 85 length +src/cpu/core/BoundaryConditions/SimpleSlipBCStrategy.cpp:59: warning: SimpleSlipBCStrategy::applyBC has 56 NLOC, 29 CCN, 928 token, 0 PARAM, 62 length +src/cpu/core/BoundaryConditions/SlipBCStrategy.cpp:21: warning: SlipBCStrategy::applyBC has 57 NLOC, 29 CCN, 1020 token, 0 PARAM, 64 length +src/cpu/core/Visitors/SetInterpolationConnectorsBlockVisitor.cpp:73: warning: SetInterpolationConnectorsBlockVisitor::setInterpolationConnectors has 221 NLOC, 101 CCN, 2901 token, 2 PARAM, 264 length +src/cpu/core/Visitors/SetInterpolationConnectorsBlockVisitor.cpp:338: warning: SetInterpolationConnectorsBlockVisitor::setInterpolationConnectors has 67 NLOC, 22 CCN, 678 token, 6 PARAM, 72 length +src/cpu/core/Visitors/SetUndefinedNodesBlockVisitor.cpp:16: warning: SetUndefinedNodesBlockVisitor::visit has 630 NLOC, 119 CCN, 4504 token, 2 PARAM, 653 length +src/cpu/core/Visitors/SetInterpolationDirsBlockVisitor.cpp:12: warning: SetInterpolationDirsBlockVisitor::visit has 128 NLOC, 46 CCN, 822 token, 2 PARAM, 133 length +src/cpu/core/Visitors/InitDistributionsWithInterpolationGridVisitor.cpp:26: warning: InitDistributionsWithInterpolationGridVisitor::visit has 57 NLOC, 19 CCN, 479 token, 1 PARAM, 69 length +src/basics/utilities/Vector3D.cpp:274: warning: Vector3D::GetBarycentrics has 154 NLOC, 25 CCN, 1462 token, 5 PARAM, 186 length +src/basics/writer/WbWriterAvsASCII.cpp:219: warning: WbWriterAvsASCII::writeQuadsWithNodeData has 104 NLOC, 17 CCN, 1162 token, 5 PARAM, 131 length +src/basics/writer/WbWriterAvsASCII.cpp:351: warning: WbWriterAvsASCII::writeQuadsWithCellData has 106 NLOC, 17 CCN, 1166 token, 5 PARAM, 134 length +src/basics/writer/WbWriterAvsASCII.cpp:486: warning: WbWriterAvsASCII::writeQuadsWithNodeAndCellData has 140 NLOC, 25 CCN, 1567 token, 7 PARAM, 181 length +src/basics/writer/WbWriterAvsASCII.cpp:741: warning: WbWriterAvsASCII::writeTrianglesWithNodeData has 105 NLOC, 17 CCN, 1146 token, 5 PARAM, 132 length +src/basics/writer/WbWriterAvsASCII.cpp:874: warning: WbWriterAvsASCII::writeOctsWithCellData has 112 NLOC, 17 CCN, 1286 token, 5 PARAM, 140 length +src/basics/writer/WbWriterAvsASCII.cpp:1015: warning: WbWriterAvsASCII::writeOctsWithNodeData has 116 NLOC, 19 CCN, 1334 token, 5 PARAM, 144 length +src/basics/writer/WbWriterVtkBinary.cpp:373: warning: WbWriterVtkBinary::writeQuadsWithNodeAndCellData has 105 NLOC, 19 CCN, 1147 token, 7 PARAM, 128 length +src/basics/writer/WbWriterAvsBinary.cpp:389: warning: WbWriterAvsBinary::writeTrianglesWithNodeData has 105 NLOC, 17 CCN, 1144 token, 5 PARAM, 132 length +src/basics/writer/WbWriterAvsBinary.cpp:522: warning: WbWriterAvsBinary::writeQuadsWithNodeData has 105 NLOC, 17 CCN, 1162 token, 5 PARAM, 132 length +src/basics/writer/WbWriterAvsBinary.cpp:655: warning: WbWriterAvsBinary::writeQuadsWithCellData has 105 NLOC, 17 CCN, 1164 token, 5 PARAM, 133 length +src/basics/writer/WbWriterAvsBinary.cpp:789: warning: WbWriterAvsBinary::writeQuadsWithNodeAndCellData has 139 NLOC, 25 CCN, 1565 token, 7 PARAM, 180 length +src/basics/writer/WbWriterAvsBinary.cpp:970: warning: WbWriterAvsBinary::writeOctsWithCellData has 112 NLOC, 17 CCN, 1284 token, 5 PARAM, 140 length +src/basics/writer/WbWriterAvsBinary.cpp:1111: warning: WbWriterAvsBinary::writeOctsWithNodeData has 116 NLOC, 19 CCN, 1332 token, 5 PARAM, 144 length +src/basics/geometry3d/KdTree/splitalgorithms/KdSAHSplit.h:162: warning: Kd::SAHSplit::findPossibleSplitCandidates has 37 NLOC, 18 CCN, 440 token, 3 PARAM, 61 length +src/basics/geometry3d/GbObject3D.cpp:59: warning: GbObject3D::isCellCuttingGbObject3D has 15 NLOC, 17 CCN, 232 token, 6 PARAM, 15 length +src/basics/geometry3d/GbTriangularMesh3D.cpp:156: warning: GbTriangularMesh3D::deleteRedundantNodes has 78 NLOC, 17 CCN, 740 token, 0 PARAM, 85 length +src/basics/geometry3d/GbTriangularMesh3D.cpp:1339: warning: GbTriangularMesh3D::InTri2D has 21 NLOC, 34 CCN, 368 token, 2 PARAM, 30 length +src/basics/geometry3d/GbTriangularMesh3D.cpp:1426: warning: GbTriangularMesh3D::SegTriCross has 27 NLOC, 25 CCN, 358 token, 3 PARAM, 42 length +src/basics/geometry3d/GbMeshTools3D.h:70: warning: GbMeshTools3D::triBoxOverlap has 159 NLOC, 35 CCN, 1686 token, 3 PARAM, 245 length +src/basics/geometry3d/GbTriFaceMesh3D.cpp:150: warning: GbTriFaceMesh3D::deleteRedundantNodes has 69 NLOC, 18 CCN, 589 token, 0 PARAM, 127 length +src/basics/geometry3d/GbHalfSpaceKrischan3D.cpp:100: warning: GbHalfSpaceKrischan3D::getCellVolumeInsideGbObject3D has 117 NLOC, 27 CCN, 1378 token, 6 PARAM, 203 length +src/basics/geometry3d/GbVoxelMatrix3D.cpp:173: warning: GbVoxelMatrix3D::getIntersectionRaytraceFactor has 36 NLOC, 26 CCN, 533 token, 6 PARAM, 43 length +src/basics/geometry3d/GbVoxelMatrix3D.cpp:722: warning: GbVoxelMatrix3D::rotateAroundY has 44 NLOC, 20 CCN, 411 token, 1 PARAM, 63 length +src/basics/geometry3d/GbSystem3D.cpp:47: warning: GbSystem3D::calculateIntersectionPoint3D has 55 NLOC, 22 CCN, 634 token, 4 PARAM, 60 length +src/basics/geometry3d/GbSystem3D.cpp:109: warning: GbSystem3D::hasIntersectionPoint3D has 55 NLOC, 22 CCN, 626 token, 4 PARAM, 59 length +src/basics/geometry3d/GbSystem3D.cpp:202: warning: GbSystem3D::createClipLine3D has 119 NLOC, 22 CCN, 1168 token, 8 PARAM, 147 length +src/basics/geometry3d/GbSystem3D.cpp:687: warning: GbSystem3D::clipPolygon3D has 256 NLOC, 53 CCN, 3060 token, 7 PARAM, 292 length +src/basics/geometry3d/GbSystem3D.cpp:980: warning: GbSystem3D::clipRectangle3D has 50 NLOC, 16 CCN, 388 token, 8 PARAM, 53 length +src/basics/geometry3d/GbVector3D.cpp:308: warning: GbVector3D::GetBarycentrics has 156 NLOC, 25 CCN, 1574 token, 5 PARAM, 181 length +src/basics/geometry3d/GbSphere3D.cpp:760: warning: GbSphere3D::getCellVolumeInsideGbObject3DHelperFunction has 113 NLOC, 27 CCN, 1309 token, 6 PARAM, 155 length +src/basics/geometry3d/GbCylinder3D.cpp:114: warning: GbCylinder3D::calculateValues has 47 NLOC, 17 CCN, 407 token, 0 PARAM, 52 length +src/basics/geometry3d/GbCylinder3D.cpp:252: warning: GbCylinder3D::isPointInGbObject3D has 23 NLOC, 21 CCN, 278 token, 4 PARAM, 31 length +src/basics/geometry3d/GbCylinder3D.cpp:325: warning: GbCylinder3D::isCellInsideOrCuttingGbObject3D has 59 NLOC, 31 CCN, 657 token, 6 PARAM, 78 length +src/basics/geometry3d/GbCylinder3D.cpp:404: warning: GbCylinder3D::createClippedLine3D has 250 NLOC, 48 CCN, 3201 token, 2 PARAM, 301 length +src/basics/geometry3d/GbCylinder3D.cpp:1155: warning: GbCylinder3D::getIntersectionRaytraceFactor has 138 NLOC, 54 CCN, 1319 token, 6 PARAM, 189 length +src/basics/geometry3d/GbTriangle3D.cpp:645: warning: GbTriangle3D::enclosesPoint2D has 79 NLOC, 30 CCN, 640 token, 2 PARAM, 88 length +src/basics/geometry3d/GbTriangle3D.cpp:965: warning: GbTriangle3D::getDistanceFromPoint has 171 NLOC, 26 CCN, 1453 token, 1 PARAM, 184 length diff --git a/pythonbindings/pyfluids-stubs/basics/__init__.pyi b/pythonbindings/pyfluids-stubs/basics/__init__.pyi index ed74e648a0b6739b31853c9633d63eeac3b91df4..360e83620d5081c8c85fc76991a19f2229127141 100644 --- a/pythonbindings/pyfluids-stubs/basics/__init__.pyi +++ b/pythonbindings/pyfluids-stubs/basics/__init__.pyi @@ -34,11 +34,8 @@ r""" """ from __future__ import annotations -from typing import ClassVar, overload +from typing import overload -from . import logger as logger - -from pyfluids.bindings.basics import logger as logger class ConfigurationFile: def __init__(self) -> None: ... def contains(self, key: str) -> bool: ... diff --git a/pythonbindings/pyfluids-stubs/gpu/grid_generator.pyi b/pythonbindings/pyfluids-stubs/gpu/grid_generator.pyi index b1afd89f6455b5fdf5df568c7e03656229d69c1d..baf5c8b6def1bbc37f818d149943542b944e2c4e 100644 --- a/pythonbindings/pyfluids-stubs/gpu/grid_generator.pyi +++ b/pythonbindings/pyfluids-stubs/gpu/grid_generator.pyi @@ -40,7 +40,6 @@ from typing import overload import gpu - class BoundingBox: def __init__(self, min_x: float, max_x: float, min_y: float, max_y: float, min_z: float, max_z: float) -> None: ... @@ -81,24 +80,33 @@ class LevelGridBuilder(GridBuilder): def set_slip_boundary_condition(self, side_type: gpu.SideType, normal_x: float, normal_y: float, normal_z: float) -> None: ... def set_stress_boundary_condition(self, side_type: gpu.SideType, normal_x: float, normal_y: float, normal_z: float, sampling_offset: int, z0: float, dx: float, q: float = ...) -> None: ... def set_velocity_boundary_condition(self, side_type: gpu.SideType, vx: float, vy: float, vz: float) -> None: ... + def set_periodic_shift_on_x_boundary_in_y_direction(self, shift: float) -> None: ... + def set_periodic_shift_on_x_boundary_in_z_direction(self, shift: float) -> None: ... + def set_periodic_shift_on_y_boundary_in_x_direction(self, shift: float) -> None: ... + def set_periodic_shift_on_y_boundary_in_z_direction(self, shift: float) -> None: ... + def set_periodic_shift_on_z_boundary_in_x_direction(self, shift: float) -> None: ... + def set_periodic_shift_on_z_boundary_in_y_direction(self, shift: float) -> None: ... + def set_communication_process(self, direction: int, process: int) -> None: ... class MultipleGridBuilder(LevelGridBuilder): def __init__(self, *args, **kwargs) -> None: ... + @staticmethod + def make_shared(grid_factory: GridFactory) -> MultipleGridBuilder: ... def add_coarse_grid(self, start_x: float, start_y: float, start_z: float, end_x: float, end_y: float, end_z: float, delta: float) -> None: ... @overload - def add_geometry(self, solid_object: Object) -> None: ... - @overload - def add_geometry(self, solid_object: Object, level: int) -> None: ... - @overload def add_grid(self, grid_shape: Object) -> None: ... @overload def add_grid(self, grid_shape: Object, level_fine: int) -> None: ... + @overload + def add_geometry(self, solid_object: Object) -> None: ... + @overload + def add_geometry(self, solid_object: Object, level: int) -> None: ... def build_grids(self, enable_thin_walls: bool) -> None: ... + def set_subdomain_box(self, sub_domain_box: BoundingBox) -> None: ... + def find_communication_indices(self, direction: int, do_shift: bool = False) -> None: ... def get_number_of_levels(self) -> int: ... - @staticmethod - def make_shared(grid_factory: GridFactory) -> MultipleGridBuilder: ... class Sphere(Object): diff --git a/pythonbindings/pyfluids-stubs/lbm.pyi b/pythonbindings/pyfluids-stubs/lbm.pyi new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/pythonbindings/src/communicator.cpp b/pythonbindings/src/communicator.cpp index fe706bb9eba4083f2a1a705a3ee615b727de77c8..cf5157fe497ac9c08183f4c5092a150f517670b4 100644 --- a/pythonbindings/src/communicator.cpp +++ b/pythonbindings/src/communicator.cpp @@ -37,13 +37,13 @@ namespace communicator_bindings { -namespace py = pybind11; + namespace py = pybind11; -PYBIND11_MODULE(communicator, m) -{ - py::class_<vf::parallel::MPICommunicator, std::shared_ptr<vf::parallel::MPICommunicator>>(m, "Communicator") - .def_static("get_instance", &vf::parallel::MPICommunicator::getInstance) - .def("get_number_of_processes", &vf::parallel::MPICommunicator::getNumberOfProcesses) - .def("get_process_id", py::overload_cast<>(&vf::parallel::MPICommunicator::getProcessID, py::const_)); -} + PYBIND11_MODULE(communicator, m) + { + py::class_<vf::parallel::MPICommunicator, std::shared_ptr<vf::parallel::MPICommunicator>>(m, "Communicator") + .def_static("get_instance", &vf::parallel::MPICommunicator::getInstance) + .def("get_number_of_processes", &vf::parallel::MPICommunicator::getNumberOfProcesses) + .def("get_process_id", py::overload_cast<>(&vf::parallel::MPICommunicator::getProcessID, py::const_)); + } } // namespace communicator_bindings diff --git a/pythonbindings/src/gpu/submodules/grid_generator.cpp b/pythonbindings/src/gpu/submodules/grid_generator.cpp index 6c57900e4298094b59355e82a22433e1b647e059..e313be7cae97e8dbab47cb36b1835769657c63ab 100644 --- a/pythonbindings/src/gpu/submodules/grid_generator.cpp +++ b/pythonbindings/src/gpu/submodules/grid_generator.cpp @@ -92,7 +92,14 @@ namespace grid_generator .def("set_periodic_boundary_condition", &LevelGridBuilder::setPeriodicBoundaryCondition, py::arg("periodic_x"), py::arg("periodic_y"), py::arg("periodic_z")) .def("set_no_slip_boundary_condition", &LevelGridBuilder::setNoSlipBoundaryCondition, py::arg("side_type")) .def("set_precursor_boundary_condition", &LevelGridBuilder::setPrecursorBoundaryCondition, py::arg("side_type"), py::arg("file_collection"), py::arg("n_t_read"), py::arg("velocity_x")=c0o1, py::arg("velocity_y")=c0o1, py::arg("velocity_z")=c0o1, py::arg("file_level_to_grid_level_map")=std::vector<uint>()) - .def("set_stress_boundary_condition", &LevelGridBuilder::setStressBoundaryCondition, py::arg("side_type"), py::arg("normal_x"), py::arg("normal_y"), py::arg("normal_z"), py::arg("sampling_offset"), py::arg("z0"), py::arg("dx")); + .def("set_stress_boundary_condition", &LevelGridBuilder::setStressBoundaryCondition, py::arg("side_type"), py::arg("normal_x"), py::arg("normal_y"), py::arg("normal_z"), py::arg("sampling_offset"), py::arg("z0"), py::arg("dx")) + .def("set_periodic_shift_on_x_boundary_in_y_direction", &LevelGridBuilder::setPeriodicShiftOnXBoundaryInYDirection, py::arg("shift")) + .def("set_periodic_shift_on_x_boundary_in_z_direction", &LevelGridBuilder::setPeriodicShiftOnXBoundaryInZDirection, py::arg("shift")) + .def("set_periodic_shift_on_y_boundary_in_x_direction", &LevelGridBuilder::setPeriodicShiftOnYBoundaryInXDirection, py::arg("shift")) + .def("set_periodic_shift_on_y_boundary_in_z_direction", &LevelGridBuilder::setPeriodicShiftOnYBoundaryInZDirection, py::arg("shift")) + .def("set_periodic_shift_on_z_boundary_in_x_direction", &LevelGridBuilder::setPeriodicShiftOnZBoundaryInXDirection, py::arg("shift")) + .def("set_periodic_shift_on_z_boundary_in_y_direction", &LevelGridBuilder::setPeriodicShiftOnZBoundaryInYDirection, py::arg("shift")) + .def("set_communication_process", &LevelGridBuilder::setCommunicationProcess, py::arg("direction"), py::arg("process")); py::class_<MultipleGridBuilder, LevelGridBuilder, std::shared_ptr<MultipleGridBuilder>>(gridGeneratorModule, "MultipleGridBuilder") .def(py::init()) @@ -104,8 +111,7 @@ namespace grid_generator .def("get_number_of_levels", &MultipleGridBuilder::getNumberOfLevels) .def("build_grids", &MultipleGridBuilder::buildGrids, py::arg("enable_thin_walls")) .def("set_subdomain_box", &MultipleGridBuilder::setSubDomainBox, py::arg("bounding_box")) - .def("find_communication_indices", &MultipleGridBuilder::findCommunicationIndices) - .def("set_communication_process", &MultipleGridBuilder::setCommunicationProcess) + .def("find_communication_indices", &MultipleGridBuilder::findCommunicationIndices, py::arg("direction"), py::arg("do_shift")=false) .def("set_number_of_layers", &MultipleGridBuilder::setNumberOfLayers, py::arg("number_of_layers_fine"), py::arg("number_of_layers_between_levels")); return gridGeneratorModule; diff --git a/pythonbindings/src/gpu/submodules/probes.cpp b/pythonbindings/src/gpu/submodules/probes.cpp index 5a679bb4d32b3b24fb4fe8ccd327d185e2b3a6df..3953fca579dd43bf9c2272378216fc8a982fe6bb 100644 --- a/pythonbindings/src/gpu/submodules/probes.cpp +++ b/pythonbindings/src/gpu/submodules/probes.cpp @@ -82,8 +82,7 @@ namespace probes py::arg("t_out"), py::arg("output_timeseries")) .def("add_probe_point", &PointProbe::addProbePoint, py::arg("point_coord_x"), py::arg("point_coord_y"), py::arg("point_coord_z")) - .def("add_probe_points_from_list", &PointProbe::addProbePointsFromList, py::arg("point_coords_x"), py::arg("point_coords_y"), py::arg("point_coords_z")) - .def("add_probe_points_from_x_normal_plane", &PointProbe::addProbePointsFromXNormalPlane, py::arg("pos_x"), py::arg("pos0_y"), py::arg("pos0_z"), py::arg("pos1_y"), py::arg("pos1_z"), py::arg("n_y"), py::arg("n_z")); + .def("add_probe_points_from_list", &PointProbe::addProbePointsFromList, py::arg("point_coords_x"), py::arg("point_coords_y"), py::arg("point_coords_z")); py::class_<PlaneProbe, Probe, std::shared_ptr<PlaneProbe>>(probeModule, "PlaneProbe") .def(py::init< diff --git a/src/cpu/core/LBM/CumulantK17LBMKernel.cpp b/src/cpu/core/LBM/CumulantK17LBMKernel.cpp index 9c89f6c6b549fed93fca097232bcc086e3c380a8..ec59cf3493c327d9b485d387cc8e2aa913fddbc9 100644 --- a/src/cpu/core/LBM/CumulantK17LBMKernel.cpp +++ b/src/cpu/core/LBM/CumulantK17LBMKernel.cpp @@ -39,10 +39,13 @@ #include "Block3D.h" #include "BCArray3D.h" +#include <lbm/ChimeraTransformation.h> + #define PROOF_CORRECTNESS //using namespace UbMath; using namespace vf::basics::constant; +using namespace vf::lbm; ////////////////////////////////////////////////////////////////////////// CumulantK17LBMKernel::CumulantK17LBMKernel() diff --git a/src/cpu/core/LBM/CumulantK17LBMKernel.h b/src/cpu/core/LBM/CumulantK17LBMKernel.h index 2bcdf8551bef28aa46932a180268f05873d7ecc0..aa202d7894243cd407ec30db94e0678d72b68aea 100644 --- a/src/cpu/core/LBM/CumulantK17LBMKernel.h +++ b/src/cpu/core/LBM/CumulantK17LBMKernel.h @@ -58,11 +58,6 @@ public: real getCalculationTime() override { return .0; } protected: - inline void forwardInverseChimeraWithK(real& mfa, real& mfb, real& mfc, real vv, real v2, real Kinverse, real K); - inline void backwardInverseChimeraWithK(real& mfa, real& mfb, real& mfc, real vv, real v2, real Kinverse, real K); - inline void forwardChimera(real& mfa, real& mfb, real& mfc, real vv, real v2); - inline void backwardChimera(real& mfa, real& mfb, real& mfc, real vv, real v2); - virtual void initDataSet(); real f[D3Q27System::ENDF + 1]; @@ -78,77 +73,4 @@ protected: real forcingX3; }; -//////////////////////////////////////////////////////////////////////////////// -//! \brief forward chimera transformation \ref forwardInverseChimeraWithK -//! Transformation from distributions to central moments according to Eq. (6)-(14) in -//! <a href="https://doi.org/10.1016/j.jcp.2017.05.040"><b>[ M. Geier et al. (2017), DOI:10.1016/j.jcp.2017.05.040 ]</b></a> -//! Modified for lower round-off errors. -//////////////////////////////////////////////////////////////////////////////// -inline void CumulantK17LBMKernel::forwardInverseChimeraWithK(real& mfa, real& mfb, real& mfc, real vv, real v2, real Kinverse, real K) -{ -// using namespace UbMath; - using namespace vf::basics::constant; - real m2 = mfa + mfc; - real m1 = mfc - mfa; - real m0 = m2 + mfb; - mfa = m0; - m0 *= Kinverse; - m0 += c1o1; - mfb = (m1 * Kinverse - m0 * vv) * K; - mfc = ((m2 - c2o1 * m1 * vv) * Kinverse + v2 * m0) * K; -} -//////////////////////////////////////////////////////////////////////////////// -//! \brief backward chimera transformation \ref backwardInverseChimeraWithK -//! Transformation from central moments to distributions according to Eq. (57)-(65) in -//! <a href="https://doi.org/10.1016/j.jcp.2017.05.040"><b>[ M. Geier et al. (2017), DOI:10.1016/j.jcp.2017.05.040 ]</b></a> -//! ] Modified for lower round-off errors. -//////////////////////////////////////////////////////////////////////////////// -inline void CumulantK17LBMKernel::backwardInverseChimeraWithK(real& mfa, real& mfb, real& mfc, real vv, real v2, real Kinverse, real K) -{ -// using namespace UbMath; - using namespace vf::basics::constant; - - real m0 = (((mfc - mfb) * c1o2 + mfb * vv) * Kinverse + (mfa * Kinverse + c1o1) * (v2 - vv) * c1o2) * K; - real m1 = (((mfa - mfc) - c2o1 * mfb * vv) * Kinverse + (mfa * Kinverse + c1o1) * (-v2)) * K; - mfc = (((mfc + mfb) * c1o2 + mfb * vv) * Kinverse + (mfa * Kinverse + c1o1) * (v2 + vv) * c1o2) * K; - mfa = m0; - mfb = m1; -} -//////////////////////////////////////////////////////////////////////////////// -//! \brief forward chimera transformation \ref forwardChimera -//! Transformation from distributions to central moments according to Eq. (6)-(14) in -//! <a href="https://doi.org/10.1016/j.jcp.2017.05.040"><b>[ M. Geier et al. (2017), DOI:10.1016/j.jcp.2017.05.040 ]</b></a> -//! for \f$ K_{abc}=0 \f$. This is to avoid unnessary floating point operations. -//! Modified for lower round-off errors. -//////////////////////////////////////////////////////////////////////////////// -inline void CumulantK17LBMKernel::forwardChimera(real& mfa, real& mfb, real& mfc, real vv, real v2) -{ -// using namespace UbMath; - using namespace vf::basics::constant; - - real m1 = (mfa + mfc) + mfb; - real m2 = mfc - mfa; - mfc = (mfc + mfa) + (v2 * m1 - c2o1 * vv * m2); - mfb = m2 - vv * m1; - mfa = m1; -} -//////////////////////////////////////////////////////////////////////////////// -//! \brief backward chimera transformation \ref backwardChimera -//! Transformation from central moments to distributions according to Eq. (57)-(65) in -//! <a href="https://doi.org/10.1016/j.jcp.2017.05.040"><b>[ M. Geier et al. (2017), DOI:10.1016/j.jcp.2017.05.040 ]</b></a> -//! for \f$ K_{abc}=0 \f$. This is to avoid unnessary floating point operations. -//! Modified for lower round-off errors. -//////////////////////////////////////////////////////////////////////////////// -inline void CumulantK17LBMKernel::backwardChimera(real& mfa, real& mfb, real& mfc, real vv, real v2) -{ -// using namespace UbMath; - using namespace vf::basics::constant; - - real ma = (mfc + mfa * (v2 - vv)) * c1o2 + mfb * (vv - c1o2); - real mb = ((mfa - mfc) - mfa * v2) - c2o1 * mfb * vv; - mfc = (mfc + mfa * (v2 + vv)) * c1o2 + mfb * (vv + c1o2); - mfb = mb; - mfa = ma; -} - #endif // CumulantK17LBMKernel_h__ diff --git a/src/gpu/GridGenerator/geometries/Arrow/Arrow.h b/src/gpu/GridGenerator/geometries/Arrow/Arrow.h index 945f1e3a8af7bd14fb9c3a8d5d9d26ab7405a7b7..682443c17639247ee9002957dffa10f98c39e465 100644 --- a/src/gpu/GridGenerator/geometries/Arrow/Arrow.h +++ b/src/gpu/GridGenerator/geometries/Arrow/Arrow.h @@ -40,14 +40,14 @@ struct Vertex; class Arrow { public: - virtual ~Arrow() {}; + virtual ~Arrow() {}; protected: - Arrow() {}; + Arrow() {}; public: - virtual std::shared_ptr<Vertex> getStart() const = 0; - virtual std::shared_ptr<Vertex> getEnd() const = 0; - virtual void print() const = 0; + virtual std::shared_ptr<Vertex> getStart() const = 0; + virtual std::shared_ptr<Vertex> getEnd() const = 0; + virtual void print() const = 0; }; diff --git a/src/gpu/GridGenerator/geometries/Arrow/ArrowImp.cpp b/src/gpu/GridGenerator/geometries/Arrow/ArrowImp.cpp index f7ee7330c6c57f076fd4f45c8bf7a3f0749df6a1..dda8253dc035dc0566d47780a0b1169f7c627abb 100644 --- a/src/gpu/GridGenerator/geometries/Arrow/ArrowImp.cpp +++ b/src/gpu/GridGenerator/geometries/Arrow/ArrowImp.cpp @@ -36,7 +36,7 @@ std::shared_ptr<Arrow> ArrowImp::make(const Vertex &start, const Vertex &end) { - return std::shared_ptr<ArrowImp>(new ArrowImp(start, end)); + return std::shared_ptr<ArrowImp>(new ArrowImp(start, end)); } ArrowImp::ArrowImp(const Vertex &start, const Vertex &end) : start(std::make_shared<Vertex>(start)), end(std::make_shared<Vertex>(end)) @@ -51,19 +51,19 @@ ArrowImp::~ArrowImp() std::shared_ptr<Vertex> ArrowImp::getStart() const { - return this->start; + return this->start; } std::shared_ptr<Vertex> ArrowImp::getEnd() const { - return this->end; + return this->end; } void ArrowImp::print() const { - printf("v1: "); - start->print(); - printf("v2: "); - end->print(); + printf("v1: "); + start->print(); + printf("v2: "); + end->print(); } diff --git a/src/gpu/GridGenerator/geometries/Arrow/ArrowImp.h b/src/gpu/GridGenerator/geometries/Arrow/ArrowImp.h index 1fb509e0c6092dd3f00d4abf1849014191425db2..bd074b5f26978b3d7df8104919fb3426b9a3094a 100644 --- a/src/gpu/GridGenerator/geometries/Arrow/ArrowImp.h +++ b/src/gpu/GridGenerator/geometries/Arrow/ArrowImp.h @@ -44,18 +44,18 @@ struct Vertex; class ArrowImp : public Arrow { public: - GRIDGENERATOR_EXPORT virtual ~ArrowImp(); - GRIDGENERATOR_EXPORT static std::shared_ptr<Arrow> make(const Vertex &start, const Vertex &end); + GRIDGENERATOR_EXPORT virtual ~ArrowImp(); + GRIDGENERATOR_EXPORT static std::shared_ptr<Arrow> make(const Vertex &start, const Vertex &end); - GRIDGENERATOR_EXPORT std::shared_ptr<Vertex> getStart() const; - GRIDGENERATOR_EXPORT std::shared_ptr<Vertex> getEnd() const; + GRIDGENERATOR_EXPORT std::shared_ptr<Vertex> getStart() const; + GRIDGENERATOR_EXPORT std::shared_ptr<Vertex> getEnd() const; - GRIDGENERATOR_EXPORT void print() const; + GRIDGENERATOR_EXPORT void print() const; private: - ArrowImp(const Vertex &start, const Vertex &end); + ArrowImp(const Vertex &start, const Vertex &end); - std::shared_ptr<Vertex> start; - std::shared_ptr<Vertex> end; + std::shared_ptr<Vertex> start; + std::shared_ptr<Vertex> end; }; diff --git a/src/gpu/GridGenerator/geometries/BoundingBox/BoundingBox.cpp b/src/gpu/GridGenerator/geometries/BoundingBox/BoundingBox.cpp index 1532e57e8cc4b0db93ed79c03074d7845ff9c87f..cd969e8fbb5f1f3aa309e852164c2c713840a292 100644 --- a/src/gpu/GridGenerator/geometries/BoundingBox/BoundingBox.cpp +++ b/src/gpu/GridGenerator/geometries/BoundingBox/BoundingBox.cpp @@ -94,85 +94,85 @@ bool BoundingBox::isInside(const Vertex &v) const { if (v.isXbetween(minX, maxX) && v.isYbetween(minY, maxY) && v.isZbetween(minZ, maxZ)) - return true; - return false; + return true; + return false; } std::vector<std::vector<Vertex> > BoundingBox::getIntersectionPoints(const BoundingBox &b) const { - std::vector<std::vector<Vertex> > intersectionBox; - intersectionBox.resize(6); - - int intersects = 0; - if (b.minX < maxX && b.maxX > maxX) { //maxX is intersect - intersectionBox[intersects].push_back(Vertex((real)maxX, (real)minY, (real)minZ)); - intersectionBox[intersects].push_back(Vertex((real)maxX, (real)maxY, (real)minZ)); - intersectionBox[intersects].push_back(Vertex((real)maxX, (real)minY, (real)maxZ)); - intersects++; - } - if (b.minX < minX && b.maxX > minX) { //minX is intersect - intersectionBox[intersects].push_back(Vertex((real)minX, (real)minY, (real)minZ)); - intersectionBox[intersects].push_back(Vertex((real)minX, (real)maxY, (real)minZ)); - intersectionBox[intersects].push_back(Vertex((real)minX, (real)minY, (real)maxZ)); - intersects++; - } - if (b.minY < minY && b.maxY > minY) { //minY is intersect - intersectionBox[intersects].push_back(Vertex((real)minX, (real)minY, (real)minZ)); - intersectionBox[intersects].push_back(Vertex((real)maxX, (real)minY, (real)minZ)); - intersectionBox[intersects].push_back(Vertex((real)minX, (real)minY, (real)maxZ)); - intersects++; - } - if (b.minY < maxY && b.maxY > maxY) { //maxY is intersect - intersectionBox[intersects].push_back(Vertex((real)minX, (real)maxY, (real)minZ)); - intersectionBox[intersects].push_back(Vertex((real)maxX, (real)maxY, (real)minZ)); - intersectionBox[intersects].push_back(Vertex((real)minX, (real)maxY, (real)maxZ)); - intersects++; - } - if (b.minZ < minZ && b.maxZ > minZ) { //minZ is intersect - intersectionBox[intersects].push_back(Vertex((real)minX, (real)minY, (real)minZ)); - intersectionBox[intersects].push_back(Vertex((real)maxX, (real)minY, (real)minZ)); - intersectionBox[intersects].push_back(Vertex((real)minX, (real)maxY, (real)minZ)); - intersects++; - } - if (b.minZ < maxZ && b.maxZ > maxZ) { //maxZ is intersect - intersectionBox[intersects].push_back(Vertex((real)minX, (real)minY, (real)maxZ)); - intersectionBox[intersects].push_back(Vertex((real)maxX, (real)minY, (real)maxZ)); - intersectionBox[intersects].push_back(Vertex((real)minX, (real)maxY, (real)maxZ)); - intersects++; - } - - return intersectionBox; + std::vector<std::vector<Vertex> > intersectionBox; + intersectionBox.resize(6); + + int intersects = 0; + if (b.minX < maxX && b.maxX > maxX) { //maxX is intersect + intersectionBox[intersects].push_back(Vertex((real)maxX, (real)minY, (real)minZ)); + intersectionBox[intersects].push_back(Vertex((real)maxX, (real)maxY, (real)minZ)); + intersectionBox[intersects].push_back(Vertex((real)maxX, (real)minY, (real)maxZ)); + intersects++; + } + if (b.minX < minX && b.maxX > minX) { //minX is intersect + intersectionBox[intersects].push_back(Vertex((real)minX, (real)minY, (real)minZ)); + intersectionBox[intersects].push_back(Vertex((real)minX, (real)maxY, (real)minZ)); + intersectionBox[intersects].push_back(Vertex((real)minX, (real)minY, (real)maxZ)); + intersects++; + } + if (b.minY < minY && b.maxY > minY) { //minY is intersect + intersectionBox[intersects].push_back(Vertex((real)minX, (real)minY, (real)minZ)); + intersectionBox[intersects].push_back(Vertex((real)maxX, (real)minY, (real)minZ)); + intersectionBox[intersects].push_back(Vertex((real)minX, (real)minY, (real)maxZ)); + intersects++; + } + if (b.minY < maxY && b.maxY > maxY) { //maxY is intersect + intersectionBox[intersects].push_back(Vertex((real)minX, (real)maxY, (real)minZ)); + intersectionBox[intersects].push_back(Vertex((real)maxX, (real)maxY, (real)minZ)); + intersectionBox[intersects].push_back(Vertex((real)minX, (real)maxY, (real)maxZ)); + intersects++; + } + if (b.minZ < minZ && b.maxZ > minZ) { //minZ is intersect + intersectionBox[intersects].push_back(Vertex((real)minX, (real)minY, (real)minZ)); + intersectionBox[intersects].push_back(Vertex((real)maxX, (real)minY, (real)minZ)); + intersectionBox[intersects].push_back(Vertex((real)minX, (real)maxY, (real)minZ)); + intersects++; + } + if (b.minZ < maxZ && b.maxZ > maxZ) { //maxZ is intersect + intersectionBox[intersects].push_back(Vertex((real)minX, (real)minY, (real)maxZ)); + intersectionBox[intersects].push_back(Vertex((real)maxX, (real)minY, (real)maxZ)); + intersectionBox[intersects].push_back(Vertex((real)minX, (real)maxY, (real)maxZ)); + intersects++; + } + + return intersectionBox; } bool BoundingBox::intersect(const BoundingBox &box) const { - struct Vertex v[8]; - box.getPoints(v); - - for (int i = 0; i < 8; i++) { - if (isInside(v[i])) - return true; - } - return false; + struct Vertex v[8]; + box.getPoints(v); + + for (int i = 0; i < 8; i++) { + if (isInside(v[i])) + return true; + } + return false; } void BoundingBox::getPoints(Vertex v[8]) const { - v[0] = Vertex(minX, minY, minZ); - v[1] = Vertex(maxX, minY, minZ); - v[2] = Vertex(minX, maxY, minZ); - v[3] = Vertex(maxX, maxY, minZ); - - v[4] = Vertex(minX, minY, maxZ); - v[5] = Vertex(maxX, minY, maxZ); - v[6] = Vertex(minX, maxY, maxZ); - v[7] = Vertex(maxX, maxY, maxZ); + v[0] = Vertex(minX, minY, minZ); + v[1] = Vertex(maxX, minY, minZ); + v[2] = Vertex(minX, maxY, minZ); + v[3] = Vertex(maxX, maxY, minZ); + + v[4] = Vertex(minX, minY, maxZ); + v[5] = Vertex(maxX, minY, maxZ); + v[6] = Vertex(minX, maxY, maxZ); + v[7] = Vertex(maxX, maxY, maxZ); } void BoundingBox::print() const { - printf("min/max - x: %2.4f/ %2.4f, y: %2.4f, %2.4f, z: %2.4f, %2.4f \n", minX, maxX, minY, maxY, minZ, maxZ); + printf("min/max - x: %2.4f/ %2.4f, y: %2.4f, %2.4f, z: %2.4f, %2.4f \n", minX, maxX, minY, maxY, minZ, maxZ); } diff --git a/src/gpu/GridGenerator/geometries/BoundingBox/BoundingBox.h b/src/gpu/GridGenerator/geometries/BoundingBox/BoundingBox.h index 2a495d3a4b7a4854079b62ba979baaea0d7db5f0..04ebd3a373004db40ff2510519ec6f66f627575e 100644 --- a/src/gpu/GridGenerator/geometries/BoundingBox/BoundingBox.h +++ b/src/gpu/GridGenerator/geometries/BoundingBox/BoundingBox.h @@ -44,14 +44,14 @@ struct Triangle; class GRIDGENERATOR_EXPORT BoundingBox { public: - real minX; - real maxX; - real minY; - real maxY; - real minZ; - real maxZ; + real minX; + real maxX; + real minY; + real maxY; + real minZ; + real maxZ; - BoundingBox(real minX, real maxX, real minY, real maxY, real minZ, real maxZ); + BoundingBox(real minX, real maxX, real minY, real maxY, real minZ, real maxZ); BoundingBox() = default; public: @@ -60,20 +60,20 @@ public: void setMinMax(const Triangle &t); void print() const; - bool isInside(const Triangle &t) const; + bool isInside(const Triangle &t) const; bool isInside(const real x, const real y, const real z) const; bool intersect(const Triangle &t) const; - std::vector<std::vector<Vertex> > getIntersectionPoints(const BoundingBox &b) const; - bool intersect(const BoundingBox &box) const; + std::vector<std::vector<Vertex> > getIntersectionPoints(const BoundingBox &b) const; + bool intersect(const BoundingBox &box) const; bool operator==(const BoundingBox &box) const; void extend(real delta); private: - bool isInside(const Vertex &v) const; - void getPoints(Vertex v[8]) const; + bool isInside(const Vertex &v) const; + void getPoints(Vertex v[8]) const; }; diff --git a/src/gpu/GridGenerator/geometries/Conglomerate/Conglomerate.cpp b/src/gpu/GridGenerator/geometries/Conglomerate/Conglomerate.cpp index b41813e12da1727ba03b7f179c93b4c6b042b76f..14b35e69b7fb6e2f76f93909e1ebe81af320bc74 100644 --- a/src/gpu/GridGenerator/geometries/Conglomerate/Conglomerate.cpp +++ b/src/gpu/GridGenerator/geometries/Conglomerate/Conglomerate.cpp @@ -104,7 +104,7 @@ double Conglomerate::getX2Minimum() for (uint i = 1; i < numberOfAddObjects; i++) minimum = getMinimum(minimum, addObjects[i]->getX2Minimum()); return minimum; -} +} double Conglomerate::getX2Maximum() { @@ -125,7 +125,7 @@ double Conglomerate::getX3Minimum() for (uint i = 1; i < numberOfAddObjects; i++) minimum = getMinimum(minimum, addObjects[i]->getX3Minimum()); return minimum; -} +} double Conglomerate::getX3Maximum() { diff --git a/src/gpu/GridGenerator/geometries/Cuboid/Cuboid.cpp b/src/gpu/GridGenerator/geometries/Cuboid/Cuboid.cpp index 2cf56a867954abecf14f7dc2a74f735ebb0660a7..fde944bc8a035caf0bbf19de01ec8d9f9005031d 100644 --- a/src/gpu/GridGenerator/geometries/Cuboid/Cuboid.cpp +++ b/src/gpu/GridGenerator/geometries/Cuboid/Cuboid.cpp @@ -69,7 +69,7 @@ double Cuboid::getX2Centroid() double Cuboid::getX2Minimum() { return getMinimum(minX2, maxX2); -} +} double Cuboid::getX2Maximum() { @@ -82,9 +82,9 @@ double Cuboid::getX3Centroid() } double Cuboid::getX3Minimum() -{ +{ return getMinimum(minX3, maxX3); -} +} double Cuboid::getX3Maximum() { diff --git a/src/gpu/GridGenerator/geometries/Triangle/Triangle.cpp b/src/gpu/GridGenerator/geometries/Triangle/Triangle.cpp index 8d459e75b5b27c5d5a1c9e645b08b5fc663e8be6..8f9b2490526ccc4ade74bf2140276879dd637da1 100644 --- a/src/gpu/GridGenerator/geometries/Triangle/Triangle.cpp +++ b/src/gpu/GridGenerator/geometries/Triangle/Triangle.cpp @@ -219,8 +219,8 @@ real Triangle::getHalfAngleBetweenToAdjacentTriangle(const Triangle &t2) const if (isEqual(t2)) return 0.0f; real alpha = normal.getInnerAngle(t2.normal); - if (alpha == 0.0f) - return 90.0f; + if (alpha == 0.0f) + return 90.0f; if(doesNormalsShowToEachOther(t2)) return (180.0f + alpha) / 2.0f; @@ -246,12 +246,12 @@ bool Triangle::doesNormalsShowToEachOther(const Triangle &t2) const int Triangle::getCommonEdge(const Triangle &t2) const { bool edgeOneCommon = false; - bool edgeTwoCommon = false; - bool edgeThreeCommon = false; + bool edgeTwoCommon = false; + bool edgeThreeCommon = false; - edgeOneCommon = t2.contains(v1); - edgeTwoCommon = t2.contains(v2); - edgeThreeCommon = t2.contains(v3); + edgeOneCommon = t2.contains(v1); + edgeTwoCommon = t2.contains(v2); + edgeThreeCommon = t2.contains(v3); if (edgeOneCommon && edgeTwoCommon) return 0; @@ -265,19 +265,19 @@ int Triangle::getCommonEdge(const Triangle &t2) const bool Triangle::contains(const Vertex& v) const { - return (v == v1 || v == v2 || v == v3); + return (v == v1 || v == v2 || v == v3); } int Triangle::getNumberOfCommonEdge(const Triangle &t2) const { - int commonEdge = 0; - if (t2.contains(v1)) - commonEdge++; - if (t2.contains(v2)) - commonEdge++; - if (t2.contains(v3)) - commonEdge++; + int commonEdge = 0; + if (t2.contains(v1)) + commonEdge++; + if (t2.contains(v2)) + commonEdge++; + if (t2.contains(v3)) + commonEdge++; if (commonEdge == 2 || commonEdge == 3) return commonEdge; return 0; @@ -286,8 +286,8 @@ int Triangle::getNumberOfCommonEdge(const Triangle &t2) const int Triangle::getTriangleIntersection(const Vertex &P, const Vertex &direction, Vertex &pointOnTri, real &qVal) const { - ///// taken from ///// - //http://www.scratchapixel.com/lessons/3d-basic-rendering/ray-tracing-rendering-a-triangle/moller-trumbore-ray-triangle-intersection + ///// taken from ///// + //http://www.scratchapixel.com/lessons/3d-basic-rendering/ray-tracing-rendering-a-triangle/moller-trumbore-ray-triangle-intersection Vertex edge1, edge2, tvec, pvec, qvec, tuv; @@ -307,14 +307,14 @@ int Triangle::getTriangleIntersection(const Vertex &P, const Vertex &direction, tvec = P - v1; tuv.y = (tvec * pvec) * inv_det; - if (!vf::Math::greaterEqual(tuv.y, 0.0) || !vf::Math::lessEqual(tuv.y, 1.0)) - //if (tuv.y < 0.0 || tuv.y > 1.0) + if (!vf::Math::greaterEqual(tuv.y, 0.0) || !vf::Math::lessEqual(tuv.y, 1.0)) + //if (tuv.y < 0.0 || tuv.y > 1.0) return 1; qvec = tvec.crossProduct(edge1); tuv.z = (direction * qvec) * inv_det; - if ( !vf::Math::greaterEqual(tuv.z, 0.0) || !vf::Math::lessEqual((tuv.y + tuv.z), 1.0)) + if ( !vf::Math::greaterEqual(tuv.z, 0.0) || !vf::Math::lessEqual((tuv.y + tuv.z), 1.0)) //if (tuv.z < 0.0 || (tuv.y + tuv.z) > 1.0) return 2; diff --git a/src/gpu/GridGenerator/geometries/Triangle/Triangle.h b/src/gpu/GridGenerator/geometries/Triangle/Triangle.h index 0c62f2c0db5ced3c749c2ffd6196087192aab3df..abc3857295386b7104c19d36c004c47daf864f2c 100644 --- a/src/gpu/GridGenerator/geometries/Triangle/Triangle.h +++ b/src/gpu/GridGenerator/geometries/Triangle/Triangle.h @@ -48,28 +48,28 @@ struct GRIDGENERATOR_EXPORT Triangle uint patchIndex; - Triangle(Vertex &v1, Vertex &v2, Vertex &v3, Vertex &normal); - Triangle(Vertex &v1, Vertex &v2, Vertex &v3); - Triangle(); + Triangle(Vertex &v1, Vertex &v2, Vertex &v3, Vertex &normal); + Triangle(Vertex &v1, Vertex &v2, Vertex &v3); + Triangle(); - void set(const Vertex &v1, const Vertex &v2, const Vertex &v3); + void set(const Vertex &v1, const Vertex &v2, const Vertex &v3); void set(int index, Vertex value); Vertex get(int index); - void calcNormal(); + void calcNormal(); void initalLayerThickness(real delta); - Vertex getCenterOfMass() const; - real getHalfAngleBetweenToAdjacentTriangle(const Triangle &t2) const; - int isEqual(const Triangle &t2) const; - bool doesNormalsShowToEachOther(const Triangle &t2) const; - int getCommonEdge(const Triangle &t2) const; + Vertex getCenterOfMass() const; + real getHalfAngleBetweenToAdjacentTriangle(const Triangle &t2) const; + int isEqual(const Triangle &t2) const; + bool doesNormalsShowToEachOther(const Triangle &t2) const; + int getCommonEdge(const Triangle &t2) const; - bool contains(const Vertex& v)const; - int getNumberOfCommonEdge(const Triangle &t2) const; - int getTriangleIntersection(const Vertex &P, const Vertex &direction, Vertex &pointOnTri, real &qVal) const; - void print() const; + bool contains(const Vertex& v)const; + int getNumberOfCommonEdge(const Triangle &t2) const; + int getTriangleIntersection(const Vertex &P, const Vertex &direction, Vertex &pointOnTri, real &qVal) const; + void print() const; char isUnderFace(const Vertex &point) const; diff --git a/src/gpu/GridGenerator/geometries/TriangularMesh/triangleNeighborFinder/TriangleNeighborFinder.h b/src/gpu/GridGenerator/geometries/TriangularMesh/triangleNeighborFinder/TriangleNeighborFinder.h index 2b42ff3ad2dacaade3bbc8da4f6d4b3c61b14442..91ed94ef7e12ee0fbfc9b28c05de0128c25a1814 100644 --- a/src/gpu/GridGenerator/geometries/TriangularMesh/triangleNeighborFinder/TriangleNeighborFinder.h +++ b/src/gpu/GridGenerator/geometries/TriangularMesh/triangleNeighborFinder/TriangleNeighborFinder.h @@ -60,7 +60,7 @@ public: std::vector< std::vector<Triangle> > getTrianglesPerVertex() const; void GRIDGENERATOR_EXPORT fillWithNeighborIndices(IntegerPtr2D *indices, Triangle *triangles); - void GRIDGENERATOR_EXPORT fillWithNeighborAngles(TriangularMesh *geom) const; + void GRIDGENERATOR_EXPORT fillWithNeighborAngles(TriangularMesh *geom) const; void printSortedToTriangles() const; void printSortedInSpace() const; diff --git a/src/gpu/GridGenerator/geometries/TriangularMesh/triangleRefinement/TriangleRefinement.cpp b/src/gpu/GridGenerator/geometries/TriangularMesh/triangleRefinement/TriangleRefinement.cpp index c1babac2324e80362c62c2b448cd1e309d7c5adf..4a0700fa79b078b210ac7195292632a203fb6f97 100644 --- a/src/gpu/GridGenerator/geometries/TriangularMesh/triangleRefinement/TriangleRefinement.cpp +++ b/src/gpu/GridGenerator/geometries/TriangularMesh/triangleRefinement/TriangleRefinement.cpp @@ -59,14 +59,14 @@ void TriangleRefinement::redoubleTriangles() void TriangleRefinement::refineUntilMinDistance(double d_min) { double d = 10e9; - int counter = 0; + int counter = 0; - while (d > d_min) { + while (d > d_min) { int triangleToRefine = findIndexFromTriangleWithLongestEdge(&d); refine(triangleToRefine); counter++; - if (counter % 50 == 0) + if (counter % 50 == 0) printf("triangle refine: %d, actual dMAX = %2.6f, d_min = %2.6f\n", counter, d, d_min); } diff --git a/src/gpu/GridGenerator/geometries/Vertex/Vertex.cpp b/src/gpu/GridGenerator/geometries/Vertex/Vertex.cpp index 100e88dda9567a43f90ea346260164b30f06e2c9..b2188df24c48438fd46ae3c4a3efc45c71e72779 100644 --- a/src/gpu/GridGenerator/geometries/Vertex/Vertex.cpp +++ b/src/gpu/GridGenerator/geometries/Vertex/Vertex.cpp @@ -139,7 +139,7 @@ void Vertex::printFormatted(std::ostream &ost) const bool Vertex::operator==(const Vertex &v) const { - return vf::Math::equal(x, v.x) && vf::Math::equal(y, v.y) && vf::Math::equal(z, v.z); + return vf::Math::equal(x, v.x) && vf::Math::equal(y, v.y) && vf::Math::equal(z, v.z); } diff --git a/src/gpu/GridGenerator/geometries/Vertex/Vertex.h b/src/gpu/GridGenerator/geometries/Vertex/Vertex.h index 48e4712d7d701e3710c6ff7c0876e3f762a464d9..78e6f775a87f54b665be18ff383e7811a7a97e34 100644 --- a/src/gpu/GridGenerator/geometries/Vertex/Vertex.h +++ b/src/gpu/GridGenerator/geometries/Vertex/Vertex.h @@ -44,24 +44,24 @@ struct GRIDGENERATOR_EXPORT Vertex public: real x, y, z; - Vertex(real x, real y, real z); - Vertex(); + Vertex(real x, real y, real z); + Vertex(); - real getEuclideanDistanceTo(const Vertex &w) const; - Vertex operator-(const Vertex &v) const; - Vertex operator+(const Vertex &v) const; - Vertex operator*(const real& value) const; + real getEuclideanDistanceTo(const Vertex &w) const; + Vertex operator-(const Vertex &v) const; + Vertex operator+(const Vertex &v) const; + Vertex operator*(const real& value) const; Vertex operator/(const real& value) const; - real operator*(const Vertex &w) const; - struct Vertex crossProduct(const Vertex &w) const; - real length() const; - void normalize(); - real getMagnitude() const; - int isEqual(const Vertex &w) const; - real getInnerAngle(const Vertex &w) const; + real operator*(const Vertex &w) const; + struct Vertex crossProduct(const Vertex &w) const; + real length() const; + void normalize(); + real getMagnitude() const; + int isEqual(const Vertex &w) const; + real getInnerAngle(const Vertex &w) const; - bool operator==(const Vertex &v) const; + bool operator==(const Vertex &v) const; bool isXbetween(real min, real max) const; bool isYbetween(real min, real max) const; diff --git a/src/gpu/GridGenerator/grid/Grid.h b/src/gpu/GridGenerator/grid/Grid.h index d0969cd8a5318a91c5a486ba1f8811940aa69bd0..e79205ec8b3225f427eb90705939e6537442be62 100644 --- a/src/gpu/GridGenerator/grid/Grid.h +++ b/src/gpu/GridGenerator/grid/Grid.h @@ -138,6 +138,13 @@ public: virtual bool getPeriodicityY() const = 0; virtual bool getPeriodicityZ() const = 0; + virtual void setPeriodicBoundaryShiftsOnXinY(real shift) = 0; + virtual void setPeriodicBoundaryShiftsOnXinZ(real shift) = 0; + virtual void setPeriodicBoundaryShiftsOnYinX(real shift) = 0; + virtual void setPeriodicBoundaryShiftsOnYinZ(real shift) = 0; + virtual void setPeriodicBoundaryShiftsOnZinX(real shift) = 0; + virtual void setPeriodicBoundaryShiftsOnZinY(real shift) = 0; + virtual void setEnableFixRefinementIntoTheWall(bool enableFixRefinementIntoTheWall) = 0; virtual void freeMemory() = 0; @@ -159,7 +166,7 @@ public: virtual void setNumberOfLayers(uint numberOfLayers) = 0; - virtual void findCommunicationIndices(int direction, SPtr<BoundingBox> subDomainBox) = 0; + virtual void findCommunicationIndices(int direction, SPtr<BoundingBox> subDomainBox, bool doShift) = 0; virtual uint getNumberOfSendNodes(int direction) = 0; virtual uint getNumberOfReceiveNodes(int direction) = 0; diff --git a/src/gpu/GridGenerator/grid/GridBuilder/LevelGridBuilder.cpp b/src/gpu/GridGenerator/grid/GridBuilder/LevelGridBuilder.cpp index 87ec7bab021064de527d251b5fe2908af8b5055d..950acff0e3d4a5522b1ebeae6ca8fa8ad6736bc4 100644 --- a/src/gpu/GridGenerator/grid/GridBuilder/LevelGridBuilder.cpp +++ b/src/gpu/GridGenerator/grid/GridBuilder/LevelGridBuilder.cpp @@ -207,13 +207,61 @@ void LevelGridBuilder::setPressureBoundaryCondition(SideType sideType, real rho) VF_LOG_INFO("Set Pressure BC on level {} with {}", level, pressureBoundaryCondition->indices.size()); } } - void LevelGridBuilder::setPeriodicBoundaryCondition(bool periodic_X, bool periodic_Y, bool periodic_Z) { for( uint level = 0; level < this->grids.size(); level++ ) grids[level]->setPeriodicity(periodic_X, periodic_Y, periodic_Z); } +real adjustShift(real shift, real delta, real length) +{ + shift = std::fmod(shift, length); + shift = shift < 0 ? shift + length : shift; + return std::rint(shift/delta) * delta; +} + +void LevelGridBuilder::setPeriodicShiftOnXBoundaryInYDirection(real shift) +{ + shift = adjustShift(shift, grids[0]->getDelta(), grids[0]->getEndY() - grids[0]->getStartY()); + for( uint level = 0; level < this->grids.size(); level++ ) + grids[level]->setPeriodicBoundaryShiftsOnXinY(shift); +} + +void LevelGridBuilder::setPeriodicShiftOnXBoundaryInZDirection(real shift) +{ + shift = adjustShift(shift, grids[0]->getDelta(), grids[0]->getEndZ() - grids[0]->getStartZ()); + for( uint level = 0; level < this->grids.size(); level++ ) + grids[level]->setPeriodicBoundaryShiftsOnXinZ(shift); +} + +void LevelGridBuilder::setPeriodicShiftOnYBoundaryInXDirection(real shift) +{ + shift = adjustShift(shift, grids[0]->getDelta(), grids[0]->getEndX() - grids[0]->getStartX()); + for( uint level = 0; level < this->grids.size(); level++ ) + grids[level]->setPeriodicBoundaryShiftsOnYinX(shift); +} + +void LevelGridBuilder::setPeriodicShiftOnYBoundaryInZDirection(real shift) +{ + shift = adjustShift(shift, grids[0]->getDelta(), grids[0]->getEndZ() - grids[0]->getStartZ()); + for( uint level = 0; level < this->grids.size(); level++ ) + grids[level]->setPeriodicBoundaryShiftsOnYinZ(shift); +} + +void LevelGridBuilder::setPeriodicShiftOnZBoundaryInXDirection(real shift) +{ + shift = adjustShift(shift, grids[0]->getDelta(), grids[0]->getEndX() - grids[0]->getStartX()); + for( uint level = 0; level < this->grids.size(); level++ ) + grids[level]->setPeriodicBoundaryShiftsOnZinX(shift); +} + +void LevelGridBuilder::setPeriodicShiftOnZBoundaryInYDirection(real shift) +{ + shift = adjustShift(shift, grids[0]->getDelta(), grids[0]->getEndY() - grids[0]->getStartY()); + for( uint level = 0; level < this->grids.size(); level++ ) + grids[level]->setPeriodicBoundaryShiftsOnZinY(shift); +} + void LevelGridBuilder::setNoSlipBoundaryCondition(SideType sideType) { if (sideType == SideType::GEOMETRY) diff --git a/src/gpu/GridGenerator/grid/GridBuilder/LevelGridBuilder.h b/src/gpu/GridGenerator/grid/GridBuilder/LevelGridBuilder.h index fddcc7f790142e6ae5fae2eb07b78e0c18aa5d60..cad97a0e3347a12a6ba6a58391f0ec90f5ab2b2e 100644 --- a/src/gpu/GridGenerator/grid/GridBuilder/LevelGridBuilder.h +++ b/src/gpu/GridGenerator/grid/GridBuilder/LevelGridBuilder.h @@ -85,6 +85,12 @@ public: GRIDGENERATOR_EXPORT void setVelocityBoundaryCondition(SideType sideType, real vx, real vy, real vz); GRIDGENERATOR_EXPORT void setPressureBoundaryCondition(SideType sideType, real rho); GRIDGENERATOR_EXPORT void setPeriodicBoundaryCondition(bool periodic_X, bool periodic_Y, bool periodic_Z); + GRIDGENERATOR_EXPORT void setPeriodicShiftOnXBoundaryInYDirection(real shift); + GRIDGENERATOR_EXPORT void setPeriodicShiftOnXBoundaryInZDirection(real shift); + GRIDGENERATOR_EXPORT void setPeriodicShiftOnYBoundaryInXDirection(real shift); + GRIDGENERATOR_EXPORT void setPeriodicShiftOnYBoundaryInZDirection(real shift); + GRIDGENERATOR_EXPORT void setPeriodicShiftOnZBoundaryInXDirection(real shift); + GRIDGENERATOR_EXPORT void setPeriodicShiftOnZBoundaryInYDirection(real shift); GRIDGENERATOR_EXPORT void setNoSlipBoundaryCondition(SideType sideType); GRIDGENERATOR_EXPORT void setPrecursorBoundaryCondition(SideType sideType, SPtr<FileCollection> fileCollection, int timeStepsBetweenReads, real velocityX=c0o1, real velocityY=c0o1, real velocityZ=c0o1, diff --git a/src/gpu/GridGenerator/grid/GridBuilder/MultipleGridBuilder.cpp b/src/gpu/GridGenerator/grid/GridBuilder/MultipleGridBuilder.cpp index 7febc828f6d479b315d160e6c3db6e2bffaeb473..31eec205fd92cd1aa991cccd72fac489debf31cd 100644 --- a/src/gpu/GridGenerator/grid/GridBuilder/MultipleGridBuilder.cpp +++ b/src/gpu/GridGenerator/grid/GridBuilder/MultipleGridBuilder.cpp @@ -207,9 +207,9 @@ SPtr<Grid> MultipleGridBuilder::makeGrid(SPtr<Object> gridShape, uint level, uin bool xOddStart = false, yOddStart = false, zOddStart = false; - auto staggeredCoordinates = getStaggeredCoordinates(gridShape, level, levelFine, xOddStart, yOddStart, zOddStart); + auto staggeredCoordinates = getStaggeredCoordinates(gridShape, level, levelFine, xOddStart, yOddStart, zOddStart); - SPtr<Grid> newGrid = this->makeGrid(gridShape, staggeredCoordinates[0], + SPtr<Grid> newGrid = this->makeGrid(gridShape, staggeredCoordinates[0], staggeredCoordinates[1], staggeredCoordinates[2], staggeredCoordinates[3], @@ -252,13 +252,13 @@ std::array<real, 6> MultipleGridBuilder::getStaggeredCoordinates(SPtr<Object> gr // Step 4) | x<------ | ------>x | // Step 5) | | | x<--x<--x<-- | // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - const real deltaCoarse = this->grids[level-1]->getDelta(); + const real deltaCoarse = this->grids[level-1]->getDelta(); const real delta = 0.5 * deltaCoarse; - std::array<real, 6> staggeredCoordinates; + std::array<real, 6> staggeredCoordinates; real X1Minimum = gridShape->getX1Minimum(); real X2Minimum = gridShape->getX2Minimum(); @@ -290,41 +290,41 @@ std::array<real, 6> MultipleGridBuilder::getStaggeredCoordinates(SPtr<Object> gr X3Maximum += overlap; } - // Step 1 + // Step 1 // go to boundary of coarse grid - staggeredCoordinates[0] = this->grids[level-1]->getStartX(); - staggeredCoordinates[1] = this->grids[level-1]->getStartY(); - staggeredCoordinates[2] = this->grids[level-1]->getStartZ(); - staggeredCoordinates[3] = this->grids[level-1]->getEndX(); - staggeredCoordinates[4] = this->grids[level-1]->getEndY(); - staggeredCoordinates[5] = this->grids[level-1]->getEndZ(); - - // Step 2 + staggeredCoordinates[0] = this->grids[level-1]->getStartX(); + staggeredCoordinates[1] = this->grids[level-1]->getStartY(); + staggeredCoordinates[2] = this->grids[level-1]->getStartZ(); + staggeredCoordinates[3] = this->grids[level-1]->getEndX(); + staggeredCoordinates[4] = this->grids[level-1]->getEndY(); + staggeredCoordinates[5] = this->grids[level-1]->getEndZ(); + + // Step 2 // move to first coarse node in refinement region - while (staggeredCoordinates[0] < X1Minimum) staggeredCoordinates[0] += deltaCoarse; - while (staggeredCoordinates[1] < X2Minimum) staggeredCoordinates[1] += deltaCoarse; - while (staggeredCoordinates[2] < X3Minimum) staggeredCoordinates[2] += deltaCoarse; - while (staggeredCoordinates[3] > X1Maximum) staggeredCoordinates[3] -= deltaCoarse; - while (staggeredCoordinates[4] > X2Maximum) staggeredCoordinates[4] -= deltaCoarse; - while (staggeredCoordinates[5] > X3Maximum) staggeredCoordinates[5] -= deltaCoarse; - - // Step 3 + while (staggeredCoordinates[0] < X1Minimum) staggeredCoordinates[0] += deltaCoarse; + while (staggeredCoordinates[1] < X2Minimum) staggeredCoordinates[1] += deltaCoarse; + while (staggeredCoordinates[2] < X3Minimum) staggeredCoordinates[2] += deltaCoarse; + while (staggeredCoordinates[3] > X1Maximum) staggeredCoordinates[3] -= deltaCoarse; + while (staggeredCoordinates[4] > X2Maximum) staggeredCoordinates[4] -= deltaCoarse; + while (staggeredCoordinates[5] > X3Maximum) staggeredCoordinates[5] -= deltaCoarse; + + // Step 3 // make the grid staggered with one layer of stopper nodes on the outside - staggeredCoordinates[0] -= 0.25 * deltaCoarse; - staggeredCoordinates[1] -= 0.25 * deltaCoarse; - staggeredCoordinates[2] -= 0.25 * deltaCoarse; - staggeredCoordinates[3] += 0.25 * deltaCoarse; - staggeredCoordinates[4] += 0.25 * deltaCoarse; - staggeredCoordinates[5] += 0.25 * deltaCoarse; - - // Step 4 + staggeredCoordinates[0] -= 0.25 * deltaCoarse; + staggeredCoordinates[1] -= 0.25 * deltaCoarse; + staggeredCoordinates[2] -= 0.25 * deltaCoarse; + staggeredCoordinates[3] += 0.25 * deltaCoarse; + staggeredCoordinates[4] += 0.25 * deltaCoarse; + staggeredCoordinates[5] += 0.25 * deltaCoarse; + + // Step 4 // add two layers until the refinement region is completely inside the fine grid - if (staggeredCoordinates[0] > X1Minimum) staggeredCoordinates[0] -= deltaCoarse; - if (staggeredCoordinates[1] > X2Minimum) staggeredCoordinates[1] -= deltaCoarse; - if (staggeredCoordinates[2] > X3Minimum) staggeredCoordinates[2] -= deltaCoarse; - if (staggeredCoordinates[3] < X1Maximum) staggeredCoordinates[3] += deltaCoarse; - if (staggeredCoordinates[4] < X2Maximum) staggeredCoordinates[4] += deltaCoarse; - if (staggeredCoordinates[5] < X3Maximum) staggeredCoordinates[5] += deltaCoarse; + if (staggeredCoordinates[0] > X1Minimum) staggeredCoordinates[0] -= deltaCoarse; + if (staggeredCoordinates[1] > X2Minimum) staggeredCoordinates[1] -= deltaCoarse; + if (staggeredCoordinates[2] > X3Minimum) staggeredCoordinates[2] -= deltaCoarse; + if (staggeredCoordinates[3] < X1Maximum) staggeredCoordinates[3] += deltaCoarse; + if (staggeredCoordinates[4] < X2Maximum) staggeredCoordinates[4] += deltaCoarse; + if (staggeredCoordinates[5] < X3Maximum) staggeredCoordinates[5] += deltaCoarse; // Step 5 @@ -341,13 +341,13 @@ std::array<real, 6> MultipleGridBuilder::getStaggeredCoordinates(SPtr<Object> gr while (staggeredCoordinates[4] > this->grids[level - 1]->getEndY() ) staggeredCoordinates[4] -= delta; while (staggeredCoordinates[5] > this->grids[level - 1]->getEndZ() ) staggeredCoordinates[5] -= delta; - return staggeredCoordinates; + return staggeredCoordinates; } std::array<real, 6> MultipleGridBuilder::getStaggeredCoordinates(real startX, real startY, real startZ, real endX, real endY, real endZ, real delta, uint level) const { - //previous version of Soeren P. - auto offset = getOffset(delta); + //previous version of Soeren P. + auto offset = getOffset(delta); const real startXStaggered = std::floor(startX) - offset[0]; const real startYStaggered = std::floor(startY) - offset[1]; @@ -607,13 +607,13 @@ void MultipleGridBuilder::emitGridIsNotInCoarseGridWarning() VF_LOG_WARNING("Grid lies not inside of coarse grid. Actual Grid is not added."); } -void MultipleGridBuilder::findCommunicationIndices(int direction) +void MultipleGridBuilder::findCommunicationIndices(int direction, bool doShift) { VF_LOG_TRACE("Start findCommunicationIndices()"); if( this->subDomainBox ) for (size_t i = 0; i < grids.size(); i++) - grids[i]->findCommunicationIndices(direction, this->subDomainBox); + grids[i]->findCommunicationIndices(direction, this->subDomainBox, doShift); VF_LOG_TRACE("Done findCommunicationIndices()"); } diff --git a/src/gpu/GridGenerator/grid/GridBuilder/MultipleGridBuilder.h b/src/gpu/GridGenerator/grid/GridBuilder/MultipleGridBuilder.h index 0c90c90a6479187ac3b18c880a94da51b1ba7cbf..44ec17fec633f2bee09bdb2240ef55bc8c4f594a 100644 --- a/src/gpu/GridGenerator/grid/GridBuilder/MultipleGridBuilder.h +++ b/src/gpu/GridGenerator/grid/GridBuilder/MultipleGridBuilder.h @@ -108,7 +108,7 @@ private: SPtr<BoundingBox> subDomainBox; public: - GRIDGENERATOR_EXPORT void findCommunicationIndices(int direction); + GRIDGENERATOR_EXPORT void findCommunicationIndices(int direction, bool doShift=false); }; #endif diff --git a/src/gpu/GridGenerator/grid/GridImp.cpp b/src/gpu/GridGenerator/grid/GridImp.cpp index 8ece061168883544d9857f109d505614ca005a43..9186395c1800939af6e19264b219476dd829fb9b 100644 --- a/src/gpu/GridGenerator/grid/GridImp.cpp +++ b/src/gpu/GridGenerator/grid/GridImp.cpp @@ -37,7 +37,7 @@ # include <algorithm> #include <cmath> #include <vector> - +#include <stdexcept> #include "global.h" #include "geometries/Object.h" @@ -56,10 +56,13 @@ #include "utilities/communication.h" #include "utilities/math/Math.h" +#include "basics/constants/NumericConstants.h" +#include "basics/DataTypes.h" int DIRECTIONS[DIR_END_MAX][DIMENSION]; using namespace vf::gpu; +using namespace vf::basics::constant; GridImp::GridImp(SPtr<Object> object, real startX, real startY, real startZ, real endX, real endY, real endZ, real delta, Distribution distribution, uint level) : object(object), @@ -763,6 +766,55 @@ bool GridImp::getPeriodicityZ() const return this->periodicityZ; } +void GridImp::setPeriodicBoundaryShiftsOnXinY(real shift) +{ + if(!this->periodicityY) + throw std::runtime_error("Domain needs to be periodic in X and Y to shift periodic boundary!"); + + VF_LOG_INFO("Shifting periodicity in X direction by {} in Y direction.", shift); + this->periodicShiftOnXinY = shift; +} +void GridImp::setPeriodicBoundaryShiftsOnXinZ(real shift) +{ + if(!this->periodicityX || !this->periodicityZ) + throw std::runtime_error("Domain needs to be periodic in X and Z to shift periodic boundary!"); + + VF_LOG_INFO("Shifting periodicity in X direction by {} in Z direction.", shift); + this->periodicShiftOnXinZ = shift; +} +void GridImp::setPeriodicBoundaryShiftsOnYinX(real shift) +{ + if(!this->periodicityY || !this->periodicityX) + throw std::runtime_error("Domain needs to be periodic in Y and X to shift periodic boundary!"); + + VF_LOG_INFO("Shifting periodicity in Y direction by {} in X direction.", shift); + this->periodicShiftOnYinX = shift; +} +void GridImp::setPeriodicBoundaryShiftsOnYinZ(real shift) +{ + if(!this->periodicityY || !this->periodicityZ) + throw std::runtime_error("Domain needs to be periodic in Y and Z to shift periodic boundary!"); + + VF_LOG_INFO("Shifting periodicity in Y direction by {} in Z direction.", shift); + this->periodicShiftOnYinZ = shift; +} +void GridImp::setPeriodicBoundaryShiftsOnZinX(real shift) +{ + if(!this->periodicityZ || !this->periodicityX) + throw std::runtime_error("Domain needs to be periodic in Z and X to shift periodic boundary!"); + + VF_LOG_INFO("Shifting periodicity in Z direction by {} in X direction.", shift); + this->periodicShiftOnZinX = shift; +} +void GridImp::setPeriodicBoundaryShiftsOnZinY(real shift) +{ + if(!this->periodicityZ || !this->periodicityY) + throw std::runtime_error("Domain needs to be periodic in Z and Y to shift periodic boundary!"); + + VF_LOG_INFO("Shifting periodicity in Z direction by {} in Y direction.", shift); + this->periodicShiftOnZinY = shift; +} + void GridImp::setEnableFixRefinementIntoTheWall(bool enableFixRefinementIntoTheWall) { this->enableFixRefinementIntoTheWall = enableFixRefinementIntoTheWall; @@ -846,7 +898,7 @@ uint GridImp::getQPatch(const uint index) const void GridImp::setInnerRegionFromFinerGrid(bool innerRegionFromFinerGrid) { - this->innerRegionFromFinerGrid = innerRegionFromFinerGrid; + this->innerRegionFromFinerGrid = innerRegionFromFinerGrid; } void GridImp::setNumberOfLayers(uint numberOfLayers) @@ -974,21 +1026,11 @@ void GridImp::setNeighborIndices(uint index) if (this->sparseIndices[index] == -1) return; - - - real neighborXCoord, neighborYCoord, neighborZCoord; - this->getNeighborCoords(neighborXCoord, neighborYCoord, neighborZCoord, x, y, z); - const int neighborX = getSparseIndex(neighborXCoord, y, z); - const int neighborY = getSparseIndex(x, neighborYCoord, z); - const int neighborZ = getSparseIndex(x, y, neighborZCoord); - - this->getNegativeNeighborCoords(neighborXCoord, neighborYCoord, neighborZCoord, x, y, z); - const int neighborNegative = getSparseIndex(neighborXCoord, neighborYCoord, neighborZCoord); - - this->neighborIndexX[index] = neighborX; - this->neighborIndexY[index] = neighborY; - this->neighborIndexZ[index] = neighborZ; - this->neighborIndexNegative[index] = neighborNegative; + + this->neighborIndexX[index] = this->getNeighborIndex(x, y, z, 0, periodicityX); + this->neighborIndexY[index] = this->getNeighborIndex(x, y, z, 1, periodicityY); + this->neighborIndexZ[index] = this->getNeighborIndex(x, y, z, 2, periodicityZ); + this->neighborIndexNegative[index] = this->getNegativeNeighborIndex(x, y, z); } void GridImp::setStopperNeighborCoords(uint index) @@ -1014,61 +1056,116 @@ void GridImp::setStopperNeighborCoords(uint index) } } -void GridImp::getNeighborCoords(real &neighborX, real &neighborY, real &neighborZ, real x, real y, real z) const +inline real wrapCoord(real coord, real start, real end) { - real coords[3] = { x, y, z }; - neighborX = getNeighborCoord(periodicityX, startX, coords, 0); - neighborY = getNeighborCoord(periodicityY, startY, coords, 1); - neighborZ = getNeighborCoord(periodicityZ, startZ, coords, 2); + const real length = end - start; + if(coord < start) + return coord + length; + if(coord > end) + return coord - length; + return coord; } -real GridImp::getNeighborCoord(bool periodicity, real startCoord, real coords[3], int direction) const + +int GridImp::getNeighborIndex(real x, real y, real z, int direction, bool periodicity) const { - if (periodicity) - { - real neighborCoords[3] = {coords[0], coords[1] , coords[2] }; - neighborCoords[direction] = neighborCoords[direction] + delta; - const int neighborIndex = this->transCoordToIndex(neighborCoords[0], neighborCoords[1], neighborCoords[2]); + real neighborCoords[3] = { x, y, z }; + neighborCoords[direction] = neighborCoords[direction] + delta; + if(periodicity) + getPeriodicNeighborCoords(x, y, z, neighborCoords, direction); - ////////////////////////////////////////////////////////////////////////// + return getSparseIndex(neighborCoords[0], neighborCoords[1], neighborCoords[2]); +} - if( field.is(neighborIndex, STOPPER_OUT_OF_GRID_BOUNDARY) ) - return getFirstFluidNode(coords, direction, startCoord); - else - return coords[direction] + delta; - } +void GridImp::getPeriodicNeighborCoords(real x, real y, real z, real* neighborCoords, int direction) const +{ + const int neighborIndex = this->transCoordToIndex(neighborCoords[0], neighborCoords[1], neighborCoords[2]); + if( !field.is(neighborIndex, STOPPER_OUT_OF_GRID_BOUNDARY) ) return; - return coords[direction] + delta; + real coords[3] = {x, y, z}; + switch(direction) + { + case 0: + neighborCoords[0] = getFirstFluidNode(coords, 0, startX); + neighborCoords[1] = wrapCoord(neighborCoords[1] + periodicShiftOnXinY, startY + c1o2*delta, endY - c1o2*delta); + neighborCoords[2] = wrapCoord(neighborCoords[2] + periodicShiftOnXinZ, startZ + c1o2*delta, endZ - c1o2*delta); + break; + case 1: + neighborCoords[0] = wrapCoord(neighborCoords[0] + periodicShiftOnYinX, startX + c1o2*delta, endX - c1o2*delta); + neighborCoords[1] = getFirstFluidNode(coords, 1, startY); + neighborCoords[2] = wrapCoord(neighborCoords[2] + periodicShiftOnYinZ, startZ + c1o2*delta, endZ - c1o2*delta); + break; + case 2: + neighborCoords[0] = wrapCoord(neighborCoords[0] + periodicShiftOnZinX, startX + c1o2*delta, endX - c1o2*delta); + neighborCoords[1] = wrapCoord(neighborCoords[1] + periodicShiftOnZinY, startY + c1o2*delta, endY - c1o2*delta); + neighborCoords[2] = getFirstFluidNode(coords, 2, startZ); + break; + default: + throw std::runtime_error("GridImp::getPeriodicNeighbor() -> direction must be 0, 1 or 2."); + break; + } } -void GridImp::getNegativeNeighborCoords(real &neighborX, real &neighborY, real &neighborZ, real x, real y, real z) const + +int GridImp::getNegativeNeighborIndex(real x, real y, real z) const { - real coords[3] = { x, y, z }; + real neighborCoords[3] = { x-delta, y-delta, z-delta }; - neighborX = getNegativeNeighborCoord(periodicityX, endX, coords, 0); - neighborY = getNegativeNeighborCoord(periodicityY, endY, coords, 1); - neighborZ = getNegativeNeighborCoord(periodicityZ, endZ, coords, 2); + if(periodicityX || periodicityY || periodicityZ) + getNegativePeriodicNeighborCoords(x, y, z, neighborCoords); + + return getSparseIndex(neighborCoords[0], neighborCoords[1], neighborCoords[2]); } -real GridImp::getNegativeNeighborCoord(bool periodicity, real startCoord, real coords[3], int direction) const + +void GridImp::getNegativePeriodicNeighborCoords(real x, real y, real z, real* neighborCoords) const { - if (periodicity) - { - real neighborCoords[3] = {coords[0], coords[1] , coords[2] }; - neighborCoords[direction] = neighborCoords[direction] - delta; - const uint neighborIndex = this->transCoordToIndex(neighborCoords[0], neighborCoords[1], neighborCoords[2]); + const bool periodicity[3] = {periodicityX, periodicityY, periodicityZ}; + real coords[3] = {x, y, z}; + bool onBoundary[3] = {false, false, false}; - if(neighborIndex != INVALID_INDEX && !field.isStopperOutOfGrid(neighborIndex) && !field.is(neighborIndex, STOPPER_OUT_OF_GRID_BOUNDARY) ) - return coords[direction] - delta; + for(uint direction=0; direction<3; direction++){ + if(!periodicity[direction]) continue; + + real neighborInThisDirection[3] = {x, y, z}; + neighborInThisDirection[direction] -= delta; - return getLastFluidNode(coords, direction, startCoord); + const int neighborIndex = getSparseIndex(neighborInThisDirection[0], neighborInThisDirection[1], neighborInThisDirection[2]); + if( !field.is(neighborIndex, STOPPER_OUT_OF_GRID_BOUNDARY) ) continue; + + onBoundary[direction] = true; } - return coords[direction] - delta; + + + for(int direction=0; direction<3; direction++){ + switch(direction){ + + case 0: + if( (onBoundary[1] && periodicShiftOnYinX > 0) || (onBoundary[2] && periodicShiftOnZinX > 0) ) + neighborCoords[direction] = wrapCoord(neighborCoords[direction] - (periodicShiftOnYinX + periodicShiftOnZinX), startX + c1o2*delta, endX - c1o2*delta); + else if(onBoundary[direction]) + neighborCoords[direction] = getLastFluidNode(coords, direction, endX); + break; + case 1: + if( (onBoundary[0] && periodicShiftOnXinY > 0) || (onBoundary[2] && periodicShiftOnZinY > 0) ) + neighborCoords[direction] = wrapCoord(neighborCoords[direction] - (periodicShiftOnXinY + periodicShiftOnZinY), startY + c1o2*delta, endY - c1o2*delta); + else if(onBoundary[direction]) + neighborCoords[direction] = getLastFluidNode(coords, direction, endY); + break; + case 2: + if( (onBoundary[0] && periodicShiftOnXinZ > 0) || (onBoundary[1] && periodicShiftOnYinZ > 0) ) + neighborCoords[direction] = wrapCoord(neighborCoords[direction] - (periodicShiftOnXinZ + periodicShiftOnYinZ), startZ + c1o2*delta, endZ - c1o2*delta); + else if(onBoundary[direction]) + neighborCoords[direction] = getLastFluidNode(coords, direction, endZ); + break; + } + } } + real GridImp::getLastFluidNode(real coords[3], int direction, real startCoord) const { coords[direction] = startCoord; @@ -1632,26 +1729,71 @@ bool GridImp::checkIfAtLeastOneValidQ(const uint index, const Vertex & point, co return false; } -void GridImp::findCommunicationIndices(int direction, SPtr<BoundingBox> subDomainBox) +int GridImp::getShiftedCommunicationIndex(uint index, int direction) +{ + real x, y, z; + this->transIndexToCoords(index, x, y, z); + + switch (direction) + { + case CommunicationDirections::MX: + y = wrapCoord(y - (this->periodicShiftOnXinY + delta), startY - c1o2*delta, endY + c1o2*delta); + z = wrapCoord(z - (this->periodicShiftOnXinZ + delta), startZ - c1o2*delta, endZ + c1o2*delta); + break; + case CommunicationDirections::PX: + y = wrapCoord(y + (this->periodicShiftOnXinY + delta), startY - c1o2*delta, endY + c1o2*delta); + z = wrapCoord(z + (this->periodicShiftOnXinZ + delta), startZ - c1o2*delta, endZ + c1o2*delta); + break; + case CommunicationDirections::MY: + x = wrapCoord(x - (this->periodicShiftOnYinX + delta), startX - c1o2*delta, endX + c1o2*delta); + z = wrapCoord(z - (this->periodicShiftOnYinZ + delta), startZ - c1o2*delta, endZ + c1o2*delta); + break; + case CommunicationDirections::PY: + x = wrapCoord(x + (this->periodicShiftOnYinX + delta), startX - c1o2*delta, endX + c1o2*delta); + z = wrapCoord(z + (this->periodicShiftOnYinZ + delta), startZ - c1o2*delta, endZ + c1o2*delta); + break; + case CommunicationDirections::MZ: + x = wrapCoord(x - (this->periodicShiftOnZinX + delta), startX - c1o2*delta, endX + c1o2*delta); + y = wrapCoord(y - (this->periodicShiftOnZinY + delta), startY - c1o2*delta, endY + c1o2*delta); + break; + case CommunicationDirections::PZ: + x = wrapCoord(x + (this->periodicShiftOnZinX + delta), startX - c1o2*delta, endX + c1o2*delta); + y = wrapCoord(y + (this->periodicShiftOnZinY + delta), startY - c1o2*delta, endY + c1o2*delta); + break; + default: + break; + } + + return this->transCoordToIndex(x, y, z); +} + +void GridImp::findCommunicationIndices(int direction, SPtr<BoundingBox> subDomainBox, bool doShift) { for( uint index = 0; index < this->size; index++ ){ + + int shiftedIndex = doShift ? getShiftedCommunicationIndex(index, direction) : index; + + const char fieldEntry = this->getFieldEntry(shiftedIndex); + if( fieldEntry == INVALID_OUT_OF_GRID || + fieldEntry == INVALID_SOLID || + fieldEntry == INVALID_COARSE_UNDER_FINE || + fieldEntry == STOPPER_OUT_OF_GRID || + fieldEntry == STOPPER_COARSE_UNDER_FINE || + fieldEntry == STOPPER_OUT_OF_GRID_BOUNDARY || + fieldEntry == STOPPER_SOLID ) continue; + real x, y, z; - this->transIndexToCoords(index, x, y, z); + this->transIndexToCoords(shiftedIndex, x, y, z); - if( this->getFieldEntry(index) == INVALID_OUT_OF_GRID || - this->getFieldEntry(index) == INVALID_SOLID || - this->getFieldEntry(index) == INVALID_COARSE_UNDER_FINE || - this->getFieldEntry(index) == STOPPER_OUT_OF_GRID || - this->getFieldEntry(index) == STOPPER_COARSE_UNDER_FINE ) continue; - - if( this->getFieldEntry(index) == STOPPER_OUT_OF_GRID_BOUNDARY ) continue; - if( this->getFieldEntry(index) == STOPPER_SOLID ) continue; - if( direction == CommunicationDirections::MX ) findCommunicationIndex( index, x, subDomainBox->minX, direction); - if( direction == CommunicationDirections::PX ) findCommunicationIndex( index, x, subDomainBox->maxX, direction); - if( direction == CommunicationDirections::MY ) findCommunicationIndex( index, y, subDomainBox->minY, direction); - if( direction == CommunicationDirections::PY ) findCommunicationIndex( index, y, subDomainBox->maxY, direction); - if( direction == CommunicationDirections::MZ ) findCommunicationIndex( index, z, subDomainBox->minZ, direction); - if( direction == CommunicationDirections::PZ ) findCommunicationIndex( index, z, subDomainBox->maxZ, direction); + switch(direction) + { + case CommunicationDirections::MX: findCommunicationIndex( shiftedIndex, x, subDomainBox->minX, direction); break; + case CommunicationDirections::PX: findCommunicationIndex( shiftedIndex, x, subDomainBox->maxX, direction); break; + case CommunicationDirections::MY: findCommunicationIndex( shiftedIndex, y, subDomainBox->minY, direction); break; + case CommunicationDirections::PY: findCommunicationIndex( shiftedIndex, y, subDomainBox->maxY, direction); break; + case CommunicationDirections::MZ: findCommunicationIndex( shiftedIndex, z, subDomainBox->minZ, direction); break; + case CommunicationDirections::PZ: findCommunicationIndex( shiftedIndex, z, subDomainBox->maxZ, direction); break; + } } } diff --git a/src/gpu/GridGenerator/grid/GridImp.h b/src/gpu/GridGenerator/grid/GridImp.h index 9377bbd407475add75a25af3fa38cb1fa74c833c..83629313ab2ce12a0becf30c85fa2cb2ba77d639 100644 --- a/src/gpu/GridGenerator/grid/GridImp.h +++ b/src/gpu/GridGenerator/grid/GridImp.h @@ -82,8 +82,8 @@ private: void initalNumberOfNodesAndSize(); Cell getOddCellFromIndex(uint index) const; bool isValidSolidStopper(uint index) const; - bool shouldBeBoundarySolidNode(uint index) const; - bool isValidEndOfGridStopper(uint index) const; + bool shouldBeBoundarySolidNode(uint index) const; + bool isValidEndOfGridStopper(uint index) const; bool isValidEndOfGridBoundaryStopper(uint index) const; bool isOutSideOfGrid(Cell &cell) const; bool contains(Cell &cell, char type) const; @@ -105,11 +105,14 @@ private: bool xOddStart = false, yOddStart = false, zOddStart = false; - uint nx, ny, nz; + uint nx, ny, nz; - uint size; + uint size; uint sparseSize; bool periodicityX = false, periodicityY = false, periodicityZ = false; + real periodicShiftOnXinY = 0.0, periodicShiftOnXinZ = 0.0; + real periodicShiftOnYinX = 0.0, periodicShiftOnYinZ = 0.0; + real periodicShiftOnZinX = 0.0, periodicShiftOnZinY = 0.0; SPtr<Object> object; GridInterface *gridInterface; @@ -122,8 +125,8 @@ private: std::vector<uint> fluidNodeIndicesApplyBodyForce; // run on CollisionTemplate::ApplyBodyForce std::vector<uint> fluidNodeIndicesAllFeatures; // run on CollisionTemplate::AllFeatures - uint *qIndices; //maps from matrix index to qIndex - real *qValues; + uint *qIndices; //maps from matrix index to qIndex + real *qValues; uint *qPatches; bool innerRegionFromFinerGrid; @@ -156,6 +159,13 @@ public: bool getPeriodicityY() const override; bool getPeriodicityZ() const override; + void setPeriodicBoundaryShiftsOnXinY(real shift) override; + void setPeriodicBoundaryShiftsOnXinZ(real shift) override; + void setPeriodicBoundaryShiftsOnYinX(real shift) override; + void setPeriodicBoundaryShiftsOnYinZ(real shift) override; + void setPeriodicBoundaryShiftsOnZinX(real shift) override; + void setPeriodicBoundaryShiftsOnZinY(real shift) override; + void setEnableFixRefinementIntoTheWall(bool enableFixRefinementIntoTheWall) override; void setCellTo(uint index, char type); @@ -270,9 +280,9 @@ public: bool isStopperForBC(uint index) const override; int *getNeighborsX() const override; - int* getNeighborsY() const override; - int* getNeighborsZ() const override; - int* getNeighborsNegative() const override; + int *getNeighborsY() const override; + int *getNeighborsZ() const override; + int *getNeighborsNegative() const override; uint *getCF_coarse() const override; uint *getCF_fine() const override; @@ -295,12 +305,11 @@ public: protected: virtual void setStopperNeighborCoords(uint index); private: - void getNeighborCoords(real &neighborX, real &neighborY, real &neighborZ, real x, real y, real z) const; - real getNeighborCoord(bool periodicity, real endCoord, real coords[3], int direction) const; - void getNegativeNeighborCoords(real &neighborX, real &neighborY, real &neighborZ, real x, real y, real z) const; - real getNegativeNeighborCoord(bool periodicity, real endCoord, real coords[3], int direction) const; + int getNeighborIndex(real x, real y, real z, int direction, bool periodicity) const; + void getPeriodicNeighborCoords(real x, real y, real z, real* neighborCoords, int direction) const; + int getNegativeNeighborIndex(real x, real y, real z) const; + void getNegativePeriodicNeighborCoords(real x, real y, real z, real* neighborCoords) const; - virtual int getSparseIndex(const real &expectedX, const real &expectedY, const real &expectedZ) const; static real getMinimumOnNodes(const real &minExact, const real &decimalStart, const real &delta); @@ -353,7 +362,8 @@ private: void allocateQs(); public: - void findCommunicationIndices(int direction, SPtr<BoundingBox> subDomainBox) override; + int getShiftedCommunicationIndex(uint index, int direction); + void findCommunicationIndices(int direction, SPtr<BoundingBox> subDomainBox, bool doShift) override; void findCommunicationIndex(uint index, real coordinate, real limit, int direction); uint getNumberOfSendNodes(int direction) override; diff --git a/src/gpu/GridGenerator/grid/GridImpTest.cpp b/src/gpu/GridGenerator/grid/GridImpTest.cpp index fcbf7cc92a97bcea7ca72525dc1981cd7b95dfee..3f688ebf2a30559d745572ed5843b3f6a12c7982 100644 --- a/src/gpu/GridGenerator/grid/GridImpTest.cpp +++ b/src/gpu/GridGenerator/grid/GridImpTest.cpp @@ -10,6 +10,8 @@ #include "grid/Field.h" #include "grid/GridBuilder/MultipleGridBuilder.h" #include "grid/distributions/Distribution.h" +#include "geometries/BoundingBox/BoundingBox.h" +#include "utilities/communication.h" // This test is commented out because it causes a compiler error in Clang 10 --> The bug is fixed in Clang 14 (https://github.com/google/googletest/issues/2271) @@ -249,3 +251,767 @@ TEST_F(findNeighborsIntegrationTest, validFluidNeighbors2) EXPECT_THAT(numberInvalidFluidNeighbors[1], testing::Eq(0)); EXPECT_THAT(numberInvalidFluidNeighbors[2], testing::Eq(0)); } + + +class PeriodicBoundaryShiftIntegrationTest : public testing::TestWithParam<std::tuple<int, int>> +{ +protected: + SPtr<MultipleGridBuilder> gridBuilder; + const real dx{1.0}; + const int nx{5}, ny{std::get<0>(GetParam())}, nz{5}; + const int direction{std::get<1>(GetParam())}; + + void SetUp() override + { + gridBuilder = std::make_shared<MultipleGridBuilder>(); + gridBuilder->addCoarseGrid(0.0, 0.0, 0.0, nx*dx, ny*dx, nz*dx, dx); + } +}; + +int getIndex(std::shared_ptr<Grid> grid, uint ix, uint iy, uint iz) +{ + return ix + grid->getNumberOfNodesX() * (iy + grid->getNumberOfNodesY() * iz); +} + +void compareNodeToCoordinates(SPtr<Grid> grid, int index, real xExpected, real yExpected, real zExpected , const std::string& message) +{ + real xNode, yNode, zNode; + grid->transIndexToCoords(index, xNode, yNode, zNode); + EXPECT_FLOAT_EQ(xNode, xExpected) << message; + EXPECT_FLOAT_EQ(yNode, yExpected) << message; + EXPECT_FLOAT_EQ(zNode, zExpected) << message; +} + +void iterateOverXLine(std::shared_ptr<Grid> grid, uint iy, uint iz, std::function<void(int, const std::string&)> func) +{ + const std::string msg = "Failed at X Line with iy: " + std::to_string(iy) + " and iz: " + std::to_string(iz); + for(uint ix = 2; ix < grid->getNumberOfNodesX()-2; ix++){ + func(getIndex(grid, ix, iy, iz), msg); + } +} + +void iterateOverYLine(std::shared_ptr<Grid> grid, uint ix, uint iz, std::function<void(int, const std::string&)> func) +{ + const std::string msg = "Failed at Y Line with ix: " + std::to_string(ix) + " and iz: " + std::to_string(iz); + for(uint iy = 2; iy < grid->getNumberOfNodesY()-2; iy++){ + func(getIndex(grid, ix, iy, iz), msg); + } +} + +void iterateOverZLine(std::shared_ptr<Grid> grid, uint ix, uint iy, std::function<void(int, const std::string&)> func) +{ + const std::string msg = "Failed at Z Line with ix: " + std::to_string(ix) + " and iy: " + std::to_string(iy); + for(uint iz = 2; iz < grid->getNumberOfNodesZ()-2; iz++){ + func(getIndex(grid, ix, iy, iz), msg); + } +} +void iterateOverYZPlane(std::shared_ptr<Grid> grid, uint ix, std::function<void(int, const std::string&)> func) +{ + const std::string msg = "Failed at YZ Plane with ix: " + std::to_string(ix); + for(uint iz = 2; iz < grid->getNumberOfNodesZ()-2; iz++){ + for(uint iy = 2; iy < grid->getNumberOfNodesY()-2; iy++){ + func(getIndex(grid, ix, iy, iz), msg); + }} +} + +void iterateOverXZPlane(std::shared_ptr<Grid> grid, uint iy, std::function<void(int, const std::string&)> func) +{ + const std::string msg = "Failed at XZ Plane with iy: " + std::to_string(iy); + for(uint iz = 2; iz < grid->getNumberOfNodesZ()-2; iz++){ + for(uint ix = 2; ix < grid->getNumberOfNodesX()-2; ix++){ + func(getIndex(grid, ix, iy, iz), msg); + }} +} +void iterateOverXYPlane(std::shared_ptr<Grid> grid, uint iz, std::function<void(int, const std::string&)> func) +{ + const std::string msg = "Failed at XY Plane with iz: " + std::to_string(iz); + for(uint iy = 2; iy < grid->getNumberOfNodesY()-2; iy++){ + for(uint ix = 2; ix < grid->getNumberOfNodesX()-2; ix++){ + func(getIndex(grid, ix, iy, iz), msg); + }} +} +void iterateOverInnerDomain(std::shared_ptr<Grid> grid, std::function<void(int, const std::string&)> func) +{ + const std::string msg = "Failed at Inner Domain"; + for(uint iz = 2; iz < grid->getNumberOfNodesZ()-2; iz++){ + for(uint iy = 2; iy < grid->getNumberOfNodesY()-2; iy++){ + for(uint ix = 2; ix < grid->getNumberOfNodesX()-2; ix++){ + func(getIndex(grid, ix, iy, iz), msg); + }}} +} + + + +TEST_P(PeriodicBoundaryShiftIntegrationTest, NoPeriodicity) +{ + gridBuilder->buildGrids(false); + auto grid = gridBuilder->getGrid(0); + auto func = [&](int index, const std::string msg){ + real x, y, z; + grid->transIndexToCoords(index, x, y, z); + compareNodeToCoordinates(grid, grid->getNeighborsX()[index], x+dx, y, z, msg); + compareNodeToCoordinates(grid, grid->getNeighborsY()[index], x, y+dx, z, msg); + compareNodeToCoordinates(grid, grid->getNeighborsZ()[index], x, y, z+dx, msg); + compareNodeToCoordinates(grid, grid->getNeighborsNegative()[index], x-dx, y-dx, z-dx, msg); + }; + iterateOverInnerDomain(grid, func); + + iterateOverYZPlane(grid, 1, func); + iterateOverYZPlane(grid, nx, func); + + iterateOverXZPlane(grid, 1, func); + iterateOverXZPlane(grid, ny, func); + + iterateOverXYPlane(grid, 1, func); + iterateOverXYPlane(grid, nz, func); + + iterateOverXLine(grid, 1, 1, func); + iterateOverXLine(grid, 1, nz, func); + iterateOverXLine(grid, ny, 1, func); + iterateOverXLine(grid, ny, nz, func); + + iterateOverYLine(grid, 1, 1, func); + iterateOverYLine(grid, 1, nz, func); + iterateOverYLine(grid, nx, 1, func); + iterateOverYLine(grid, nx, nz, func); + + iterateOverZLine(grid, 1, 1, func); + iterateOverZLine(grid, 1, ny, func); + iterateOverZLine(grid, nx, 1, func); + iterateOverZLine(grid, nx, ny, func); +} + +TEST_P(PeriodicBoundaryShiftIntegrationTest, PeriodicNoShift) +{ + gridBuilder->setPeriodicBoundaryCondition(true, true, true); + gridBuilder->buildGrids(false); + auto grid = gridBuilder->getGrid(0); + iterateOverInnerDomain(grid, [&](int index, const std::string& msg){ + real x, y, z; + grid->transIndexToCoords(index, x, y, z); + compareNodeToCoordinates(grid, grid->getNeighborsX()[index], x+dx, y, z, msg); + compareNodeToCoordinates(grid, grid->getNeighborsY()[index], x, y+dx, z, msg); + compareNodeToCoordinates(grid, grid->getNeighborsZ()[index], x, y, z+dx, msg); + compareNodeToCoordinates(grid, grid->getNeighborsNegative()[index], x-dx, y-dx, z-dx, msg); + }); + iterateOverYZPlane(grid, 1, [&](int index, const std::string& msg){ + real x, y, z; + grid->transIndexToCoords(index, x, y, z); + compareNodeToCoordinates(grid, grid->getNeighborsX()[index], x+dx, y, z, msg); + compareNodeToCoordinates(grid, grid->getNeighborsY()[index], x, y+dx, z, msg); + compareNodeToCoordinates(grid, grid->getNeighborsZ()[index], x, y, z+dx, msg); + compareNodeToCoordinates(grid, grid->getNeighborsNegative()[index], (nx-0.5)*dx, y-dx, z-dx, msg); + }); + iterateOverYZPlane(grid, nx, [&](int index, const std::string& msg){ + real x, y, z; + grid->transIndexToCoords(index, x, y, z); + compareNodeToCoordinates(grid, grid->getNeighborsX()[index], 0.5*dx, y, z, msg); + compareNodeToCoordinates(grid, grid->getNeighborsY()[index], x, y+dx, z, msg); + compareNodeToCoordinates(grid, grid->getNeighborsZ()[index], x, y, z+dx, msg); + compareNodeToCoordinates(grid, grid->getNeighborsNegative()[index], x-dx, y-dx, z-dx, msg); + }); + iterateOverXLine(grid, 1, 1, [&](int index, const std::string& msg){ + real x, y, z; + grid->transIndexToCoords(index, x, y, z); + compareNodeToCoordinates(grid, grid->getNeighborsX()[index], x+dx, y, z, msg); + compareNodeToCoordinates(grid, grid->getNeighborsY()[index], x, y+dx, z, msg); + compareNodeToCoordinates(grid, grid->getNeighborsZ()[index], x, y, z+dx, msg); + compareNodeToCoordinates(grid, grid->getNeighborsNegative()[index], x-dx, (ny-0.5)*dx, (nz-0.5)*dx, msg); + }); + iterateOverXLine(grid, ny, nz, [&](int index, const std::string& msg){ + real x, y, z; + grid->transIndexToCoords(index, x, y, z); + compareNodeToCoordinates(grid, grid->getNeighborsX()[index], x+dx, y, z, msg); + compareNodeToCoordinates(grid, grid->getNeighborsY()[index], x, 0.5*dx, z, msg); + compareNodeToCoordinates(grid, grid->getNeighborsZ()[index], x, y, 0.5*dx, msg); + compareNodeToCoordinates(grid, grid->getNeighborsNegative()[index], x-dx, y-dx, z-dx, msg); + }); +} + +real wrap(real coord, real length){ + if(coord<0.0) + return coord + length; + if(coord>length) + return coord - length; + return coord; +} + +real shiftCoordForward(real coord, real shift, real delta, int n, int direction, int caseNumber){ + if(caseNumber == direction) + return wrap(coord + shift, n*delta); + return coord; +} + +real shiftCoordForward(real coord, real shift, real delta, int n, int direction, int caseNumber1, int caseNumber2) +{ + if(direction==caseNumber1 || direction==caseNumber2) + return shiftCoordForward(coord, shift, delta, n, 0, 0); + return shiftCoordForward(coord, shift, delta, n, 0, 1); + +} + +real shiftCoordBackward(real coord, real shift, real delta, int n, int direction, int caseNumber){ + if(caseNumber == direction) + return wrap(coord - (shift+delta), n*delta); + return wrap(coord - delta, n*delta); +} + +real shiftCoordBackward(real coord, real shift, real delta, int n, int direction, int caseNumber1, int caseNumber2){ + if(direction==caseNumber1 || direction==caseNumber2) + return shiftCoordBackward(coord, shift, delta, n, 0, 0); + return shiftCoordBackward(coord, shift, delta, n, 0, 1); +} + + +TEST_P(PeriodicBoundaryShiftIntegrationTest, PeriodicWithShift){ + const real shift = 3*dx; // must be integer multiple of dx because gridBuilder shortens shift to multiple of dx + gridBuilder->setPeriodicBoundaryCondition(true, true, true); + switch(direction){ + case 0: gridBuilder->setPeriodicShiftOnXBoundaryInYDirection(shift); break; + case 1: gridBuilder->setPeriodicShiftOnXBoundaryInZDirection(shift); break; + case 2: gridBuilder->setPeriodicShiftOnYBoundaryInXDirection(shift); break; + case 3: gridBuilder->setPeriodicShiftOnYBoundaryInZDirection(shift); break; + case 4: gridBuilder->setPeriodicShiftOnZBoundaryInXDirection(shift); break; + case 5: gridBuilder->setPeriodicShiftOnZBoundaryInYDirection(shift); break; + } + + gridBuilder->buildGrids(false); + auto grid = gridBuilder->getGrid(0); +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//!Test inner domain + iterateOverInnerDomain(grid, [&](int index, const std::string& msg){ + real x, y, z; + grid->transIndexToCoords(index, x, y, z); + compareNodeToCoordinates(grid, grid->getNeighborsX()[index], x+dx, y, z, msg); + compareNodeToCoordinates(grid, grid->getNeighborsY()[index], x, y+dx, z, msg); + compareNodeToCoordinates(grid, grid->getNeighborsZ()[index], x, y, z+dx, msg); + compareNodeToCoordinates(grid, grid->getNeighborsNegative()[index], x-dx, y-dx, z-dx, msg); + }); +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//!Test faces of the domain + iterateOverYZPlane(grid, 1, [&](int index, const std::string& msg){ + real x, y, z; + grid->transIndexToCoords(index, x, y, z); + const real y_shifted = shiftCoordBackward(y, shift, dx, ny, direction, 0); + const real z_shifted = shiftCoordBackward(z, shift, dx, nz, direction, 1); + compareNodeToCoordinates(grid, grid->getNeighborsX()[index], x+dx, y, z, msg); + compareNodeToCoordinates(grid, grid->getNeighborsY()[index], x, y+dx, z, msg); + compareNodeToCoordinates(grid, grid->getNeighborsZ()[index], x, y, z+dx, msg); + compareNodeToCoordinates(grid, grid->getNeighborsNegative()[index], (nx-0.5)*dx, y_shifted, z_shifted, msg); + }); + + iterateOverXZPlane(grid, 1, [&](int index, const std::string& msg){ + real x, y, z; + grid->transIndexToCoords(index, x, y, z); + const real x_shifted = shiftCoordBackward(x, shift, dx, nx, direction, 2); + const real z_shifted = shiftCoordBackward(z, shift, dx, nz, direction, 3); + compareNodeToCoordinates(grid, grid->getNeighborsX()[index], x+dx, y, z, msg); + compareNodeToCoordinates(grid, grid->getNeighborsY()[index], x, y+dx, z, msg); + compareNodeToCoordinates(grid, grid->getNeighborsZ()[index], x, y, z+dx, msg); + compareNodeToCoordinates(grid, grid->getNeighborsNegative()[index], x_shifted, (ny-0.5)*dx , z_shifted, msg); + }); + + iterateOverXYPlane(grid, 1, [&](int index, const std::string& msg){ + real x, y, z; + grid->transIndexToCoords(index, x, y, z); + const real x_shifted = shiftCoordBackward(x, shift, dx, nx, direction, 4); + const real y_shifted = shiftCoordBackward(y, shift, dx, ny, direction, 5); + compareNodeToCoordinates(grid, grid->getNeighborsX()[index], x+dx, y, z, msg); + compareNodeToCoordinates(grid, grid->getNeighborsY()[index], x, y+dx, z, msg); + compareNodeToCoordinates(grid, grid->getNeighborsZ()[index], x, y, z+dx, msg); + compareNodeToCoordinates(grid, grid->getNeighborsNegative()[index], x_shifted, y_shifted, (nz-0.5)*dx, msg); + }); + + iterateOverYZPlane(grid, nx, [&](int index, const std::string& msg){ + real x, y, z; + grid->transIndexToCoords(index, x, y, z); + const real y_shifted = shiftCoordForward(y, shift, dx, ny, direction, 0); + const real z_shifted = shiftCoordForward(z, shift, dx, nz, direction, 1); + compareNodeToCoordinates(grid, grid->getNeighborsX()[index], 0.5*dx, y_shifted, z_shifted, msg); + compareNodeToCoordinates(grid, grid->getNeighborsY()[index], x, y+dx, z, msg); + compareNodeToCoordinates(grid, grid->getNeighborsZ()[index], x, y, z+dx, msg); + compareNodeToCoordinates(grid, grid->getNeighborsNegative()[index], x-dx, y-dx, z-dx, msg); + }); + + iterateOverXZPlane(grid, ny, [&](int index, const std::string& msg){ + real x, y, z; + grid->transIndexToCoords(index, x, y, z); + const real x_shifted = shiftCoordForward(x, shift, dx, nx, direction, 2); + const real z_shifted = shiftCoordForward(z, shift, dx, nz, direction, 3); + compareNodeToCoordinates(grid, grid->getNeighborsX()[index], x+dx, y, z, msg); + compareNodeToCoordinates(grid, grid->getNeighborsY()[index], x_shifted, 0.5*dx, z_shifted, msg); + compareNodeToCoordinates(grid, grid->getNeighborsZ()[index], x, y, z+dx, msg); + compareNodeToCoordinates(grid, grid->getNeighborsNegative()[index], x-dx, y-dx , z-dx, msg); + }); + + iterateOverXYPlane(grid, nz, [&](int index, const std::string& msg){ + real x, y, z; + grid->transIndexToCoords(index, x, y, z); + const real x_shifted = shiftCoordForward(x, shift, dx, nx, direction, 4); + const real y_shifted = shiftCoordForward(y, shift, dx, ny, direction, 5); + compareNodeToCoordinates(grid, grid->getNeighborsX()[index], x+dx, y, z, msg); + compareNodeToCoordinates(grid, grid->getNeighborsY()[index], x, y+dx, z, msg); + compareNodeToCoordinates(grid, grid->getNeighborsZ()[index], x_shifted, y_shifted, 0.5*dx, msg); + compareNodeToCoordinates(grid, grid->getNeighborsNegative()[index], x-dx, y-dx , z-dx, msg); + }); + + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//!Test edges of x-z faces + iterateOverYLine(grid, 1, 1, [&](int index, const std::string& msg){ + real x, y, z; + grid->transIndexToCoords(index, x, y, z); + const real x_shifted = shiftCoordBackward(x, shift, dx, nx, direction, 4); + const real y_shifted = shiftCoordBackward(y, shift, dx, ny, direction, 0, 5); + const real z_shifted = shiftCoordBackward(z, shift, dx, nz, direction, 1); + compareNodeToCoordinates(grid, grid->getNeighborsX()[index], x+dx, y, z, msg); + compareNodeToCoordinates(grid, grid->getNeighborsY()[index], x, y+dx, z, msg); + compareNodeToCoordinates(grid, grid->getNeighborsZ()[index], x, y, z+dx, msg); + compareNodeToCoordinates(grid, grid->getNeighborsNegative()[index], x_shifted, y_shifted, z_shifted, msg); + }); + + iterateOverYLine(grid, 1, nz, [&](int index, const std::string& msg){ + real x, y, z; + grid->transIndexToCoords(index, x, y, z); + const real y_shifted_on_x = shiftCoordBackward(y, shift, dx, ny, direction, 0); + const real z_shifted_on_x = shiftCoordBackward(z, shift, dx, nz, direction, 1); + const real x_shifted_on_z = shiftCoordForward(x, shift, dx, nx, direction, 4); + const real y_shifted_on_z = shiftCoordForward(y, shift, dx, ny, direction, 5); + + compareNodeToCoordinates(grid, grid->getNeighborsX()[index], x+dx, y, z, msg); + compareNodeToCoordinates(grid, grid->getNeighborsY()[index], x, y+dx, z, msg); + compareNodeToCoordinates(grid, grid->getNeighborsZ()[index], x_shifted_on_z, y_shifted_on_z, 0.5*dx, msg); + compareNodeToCoordinates(grid, grid->getNeighborsNegative()[index], (nx-0.5)*dx, y_shifted_on_x, z_shifted_on_x, msg); + }); + + iterateOverYLine(grid, nx, 1, [&](int index, const std::string& msg){ + real x, y, z; + grid->transIndexToCoords(index, x, y, z); + const real y_shifted_on_x = shiftCoordForward(y, shift, dx, ny, direction, 0); + const real z_shifted_on_x = shiftCoordForward(z, shift, dx, nz, direction, 1); + const real x_shifted_on_z = shiftCoordBackward(x, shift, dx, nx, direction, 4); + const real y_shifted_on_z = shiftCoordBackward(y, shift, dx, ny, direction, 5); + + compareNodeToCoordinates(grid, grid->getNeighborsX()[index], 0.5*dx, y_shifted_on_x, z_shifted_on_x, msg); + compareNodeToCoordinates(grid, grid->getNeighborsY()[index], x, y+dx, z, msg); + compareNodeToCoordinates(grid, grid->getNeighborsZ()[index], x, y, z+dx, msg); + compareNodeToCoordinates(grid, grid->getNeighborsNegative()[index], x_shifted_on_z, y_shifted_on_z, (nz-0.5)*dx, msg); + }); + + iterateOverYLine(grid, nx, nz, [&](int index, const std::string& msg){ + real x, y, z; + grid->transIndexToCoords(index, x, y, z); + const real y_shifted_on_x = shiftCoordForward(y, shift, dx, ny, direction, 0); + const real z_shifted_on_x = shiftCoordForward(z, shift, dx, nz, direction, 1); + const real x_shifted_on_z = shiftCoordForward(x, shift, dx, nx, direction, 4); + const real y_shifted_on_z = shiftCoordForward(y, shift, dx, ny, direction, 5); + + compareNodeToCoordinates(grid, grid->getNeighborsX()[index], 0.5*dx, y_shifted_on_x, z_shifted_on_x, msg); + compareNodeToCoordinates(grid, grid->getNeighborsY()[index], x, y+dx, z, msg); + compareNodeToCoordinates(grid, grid->getNeighborsZ()[index], x_shifted_on_z, y_shifted_on_z, 0.5*dx, msg); + compareNodeToCoordinates(grid, grid->getNeighborsNegative()[index], x-dx, y-dx, z-dx, msg); + }); +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//!Test edges of x-y faces + iterateOverZLine(grid, 1, 1, [&](int index, const std::string& msg){ + real x, y, z; + grid->transIndexToCoords(index, x, y, z); + const real x_shifted = shiftCoordBackward(x, shift, dx, nx, direction, 2); + const real y_shifted = shiftCoordBackward(y, shift, dx, ny, direction, 0); + const real z_shifted = shiftCoordBackward(z, shift, dx, nz, direction, 1, 3); + + compareNodeToCoordinates(grid, grid->getNeighborsX()[index], x+dx, y, z, msg); + compareNodeToCoordinates(grid, grid->getNeighborsY()[index], x, y+dx, z, msg); + compareNodeToCoordinates(grid, grid->getNeighborsZ()[index], x, y, z+dx, msg); + compareNodeToCoordinates(grid, grid->getNeighborsNegative()[index], x_shifted, y_shifted, z_shifted, msg); + }); + + iterateOverZLine(grid, 1, ny, [&](int index, const std::string& msg){ + real x, y, z; + grid->transIndexToCoords(index, x, y, z); + const real x_shifted_on_y = shiftCoordForward(x, shift, dx, nx, direction, 2); + const real y_shifted_on_x = shiftCoordBackward(y, shift, dx, ny, direction, 0); + const real z_shifted_on_x = shiftCoordBackward(z, shift, dx, nz, direction, 1); + const real z_shifted_on_y = shiftCoordForward(z, shift, dx, nz, direction, 3); + + compareNodeToCoordinates(grid, grid->getNeighborsX()[index], x+dx, y, z, msg); + compareNodeToCoordinates(grid, grid->getNeighborsY()[index], x_shifted_on_y, 0.5*dx, z_shifted_on_y, msg); + compareNodeToCoordinates(grid, grid->getNeighborsZ()[index], x, y, z+dx, msg); + compareNodeToCoordinates(grid, grid->getNeighborsNegative()[index], (nx-0.5)*dx, y_shifted_on_x, z_shifted_on_x, msg); + }); + + iterateOverZLine(grid, nx, 1, [&](int index, const std::string& msg){ + real x, y, z; + grid->transIndexToCoords(index, x, y, z); + const real x_shifted_on_y = shiftCoordBackward(x, shift, dx, nx, direction, 2); + const real y_shifted_on_x = shiftCoordForward(y, shift, dx, ny, direction, 0); + const real z_shifted_on_x = shiftCoordForward(z, shift, dx, nz, direction, 1); + const real z_shifted_on_y = shiftCoordBackward(z, shift, dx, nz, direction, 3); + + compareNodeToCoordinates(grid, grid->getNeighborsX()[index], 0.5*dx, y_shifted_on_x, z_shifted_on_x, msg); + compareNodeToCoordinates(grid, grid->getNeighborsY()[index], x, y+dx, z, msg); + compareNodeToCoordinates(grid, grid->getNeighborsZ()[index], x, y, z+dx, msg); + compareNodeToCoordinates(grid, grid->getNeighborsNegative()[index], x_shifted_on_y, (ny-0.5)*dx, z_shifted_on_y, msg); + }); + + iterateOverZLine(grid, nx, ny, [&](int index, const std::string& msg){ + real x, y, z; + grid->transIndexToCoords(index, x, y, z); + const real x_shifted_on_y = shiftCoordForward(x, shift, dx, nx, direction, 2); + const real y_shifted_on_x = shiftCoordForward(y, shift, dx, ny, direction, 0); + const real z_shifted_on_x = shiftCoordForward(z, shift, dx, nz, direction, 1); + const real z_shifted_on_y = shiftCoordForward(z, shift, dx, nz, direction, 3); + + compareNodeToCoordinates(grid, grid->getNeighborsX()[index], 0.5*dx, y_shifted_on_x, z_shifted_on_x, msg); + compareNodeToCoordinates(grid, grid->getNeighborsY()[index], x_shifted_on_y, 0.5*dx, z_shifted_on_y, msg); + compareNodeToCoordinates(grid, grid->getNeighborsZ()[index], x, y, z+dx, msg); + compareNodeToCoordinates(grid, grid->getNeighborsNegative()[index], x-dx, y-dx, z-dx, msg); + }); + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//!Test edges of y-z faces + iterateOverXLine(grid, 1, 1, [&](int index, const std::string& msg){ + real x, y, z; + grid->transIndexToCoords(index, x, y, z); + const real x_shifted = shiftCoordBackward(x, shift, dx, nx, direction, 2, 4); + const real y_shifted = shiftCoordBackward(y, shift, dx, ny, direction, 5); + const real z_shifted = shiftCoordBackward(z, shift, dx, nz, direction, 3); + + compareNodeToCoordinates(grid, grid->getNeighborsX()[index], x+dx, y, z, msg); + compareNodeToCoordinates(grid, grid->getNeighborsY()[index], x, y+dx, z, msg); + compareNodeToCoordinates(grid, grid->getNeighborsZ()[index], x, y, z+dx, msg); + compareNodeToCoordinates(grid, grid->getNeighborsNegative()[index], x_shifted, y_shifted, z_shifted, msg); + }); + + iterateOverXLine(grid, 1, nz, [&](int index, const std::string& msg){ + real x, y, z; + grid->transIndexToCoords(index, x, y, z); + const real x_shifted_on_y = shiftCoordBackward(x, shift, dx, nx, direction, 2); + const real x_shifted_on_z = shiftCoordForward(x, shift, dx, nx, direction, 4); + const real y_shifted_on_z = shiftCoordForward(y, shift, dx, ny, direction, 5); + const real z_shifted_on_y = shiftCoordBackward(z, shift, dx, nz, direction, 3); + + compareNodeToCoordinates(grid, grid->getNeighborsX()[index], x+dx, y, z, msg); + compareNodeToCoordinates(grid, grid->getNeighborsY()[index], x, y+dx, z, msg); + compareNodeToCoordinates(grid, grid->getNeighborsZ()[index], x_shifted_on_z, y_shifted_on_z, 0.5*dx, msg); + compareNodeToCoordinates(grid, grid->getNeighborsNegative()[index], x_shifted_on_y, (ny-0.5)*dx, z_shifted_on_y, msg); + }); + + iterateOverXLine(grid, ny, 1, [&](int index, const std::string& msg){ + real x, y, z; + grid->transIndexToCoords(index, x, y, z); + const real x_shifted_on_y = shiftCoordForward(x, shift, dx, nx, direction, 2); + const real x_shifted_on_z = shiftCoordBackward(x, shift, dx, nx, direction, 4); + const real y_shifted_on_z = shiftCoordBackward(y, shift, dx, ny, direction, 5); + const real z_shifted_on_y = shiftCoordForward(z, shift, dx, nz, direction, 3); + + compareNodeToCoordinates(grid, grid->getNeighborsX()[index], x+dx, y, z, msg); + compareNodeToCoordinates(grid, grid->getNeighborsY()[index], x_shifted_on_y, 0.5*dx, z_shifted_on_y, msg); + compareNodeToCoordinates(grid, grid->getNeighborsZ()[index], x, y, z+dx, msg); + compareNodeToCoordinates(grid, grid->getNeighborsNegative()[index], x_shifted_on_z, y_shifted_on_z, (nz-0.5)*dx, msg); + }); + + iterateOverXLine(grid, ny, nz, [&](int index, const std::string& msg){ + real x, y, z; + grid->transIndexToCoords(index, x, y, z); + const real x_shifted_on_y = shiftCoordForward(x, shift, dx, nx, direction, 2); + const real x_shifted_on_z = shiftCoordForward(x, shift, dx, nx, direction, 4); + const real y_shifted_on_z = shiftCoordForward(y, shift, dx, ny, direction, 5); + const real z_shifted_on_y = shiftCoordForward(z, shift, dx, nz, direction, 3); + + compareNodeToCoordinates(grid, grid->getNeighborsX()[index], x+dx, y, z, msg); + compareNodeToCoordinates(grid, grid->getNeighborsY()[index], x_shifted_on_y, 0.5*dx, z_shifted_on_y, msg); + compareNodeToCoordinates(grid, grid->getNeighborsZ()[index], x_shifted_on_z, y_shifted_on_z, 0.5*dx, msg); + compareNodeToCoordinates(grid, grid->getNeighborsNegative()[index], x-dx, y-dx, z-dx, msg); + }); + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//!Test corners + + { + const int ix{1}, iy{1}, iz{1}; + const std::string msg = "Failed at Corner 0"; + real x, y, z; + grid->transIndexToCoords(getIndex(grid, ix, iy, iz), x, y, z); + const real x_shifted = shiftCoordBackward(x, shift, dx, nx, direction, 2, 4); + const real y_shifted = shiftCoordBackward(y, shift, dx, ny, direction, 0, 5); + const real z_shifted = shiftCoordBackward(z, shift, dx, nz, direction, 1, 3); + compareNodeToCoordinates(grid, grid->getNeighborsX()[getIndex(grid, ix, iy, iz)], x+dx, y, z, msg); + compareNodeToCoordinates(grid, grid->getNeighborsY()[getIndex(grid, ix, iy, iz)], x, y+dx, z, msg); + compareNodeToCoordinates(grid, grid->getNeighborsZ()[getIndex(grid, ix, iy, iz)], x, y, z+dx, msg); + compareNodeToCoordinates(grid, grid->getNeighborsNegative()[getIndex(grid, ix, iy, iz)], x_shifted, y_shifted, z_shifted, msg); + } + + { + const int ix{nx}, iy{1}, iz{1}; + const std::string msg = "Failed at Corner 1"; + real x, y, z; + grid->transIndexToCoords(getIndex(grid, ix, iy, iz), x, y, z); + const real x_shifted = shiftCoordBackward(x, shift, dx, nx, direction, 2, 4); + const real y_shifted_on_x = shiftCoordForward(y, shift, dx, ny, direction, 0); + const real y_shifted_on_z = shiftCoordBackward(y, shift, dx, ny, direction, 5); + const real z_shifted_on_x = shiftCoordForward(z, shift, dx, nz, direction, 1); + const real z_shifted_on_y = shiftCoordBackward(z, shift, dx, nz, direction, 3); + compareNodeToCoordinates(grid, grid->getNeighborsX()[getIndex(grid, ix, iy, iz)], 0.5*dx, y_shifted_on_x, z_shifted_on_x, msg); + compareNodeToCoordinates(grid, grid->getNeighborsY()[getIndex(grid, ix, iy, iz)], x, y+dx, z, msg); + compareNodeToCoordinates(grid, grid->getNeighborsZ()[getIndex(grid, ix, iy, iz)], x, y, z+dx, msg); + compareNodeToCoordinates(grid, grid->getNeighborsNegative()[getIndex(grid, ix, iy, iz)], x_shifted, y_shifted_on_z, z_shifted_on_y, msg); + } + { + const int ix{1}, iy{ny}, iz{1}; + const std::string msg = "Failed at Corner 2"; + real x, y, z; + grid->transIndexToCoords(getIndex(grid, ix, iy, iz), x, y, z); + const real x_shifted_on_y = shiftCoordForward(x, shift, dx, nx, direction, 2); + const real x_shifted_on_z = shiftCoordBackward(x, shift, dx, nx, direction, 4); + const real y_shifted = shiftCoordBackward(y, shift, dx, ny, direction, 0, 5); + const real z_shifted_on_x = shiftCoordBackward(z, shift, dx, nz, direction, 1); + const real z_shifted_on_y = shiftCoordForward(z, shift, dx, nz, direction, 3); + compareNodeToCoordinates(grid, grid->getNeighborsX()[getIndex(grid, ix, iy, iz)], x+dx, y, z, msg); + compareNodeToCoordinates(grid, grid->getNeighborsY()[getIndex(grid, ix, iy, iz)], x_shifted_on_y, 0.5*dx, z_shifted_on_y, msg); + compareNodeToCoordinates(grid, grid->getNeighborsZ()[getIndex(grid, ix, iy, iz)], x, y, z+dx, msg); + compareNodeToCoordinates(grid, grid->getNeighborsNegative()[getIndex(grid, ix, iy, iz)], x_shifted_on_z, y_shifted, z_shifted_on_x, msg); + } + { + const int ix{1}, iy{1}, iz{nz}; + const std::string msg = "Failed at Corner 3"; + real x, y, z; + grid->transIndexToCoords(getIndex(grid, ix, iy, iz), x, y, z); + const real x_shifted_on_y = shiftCoordBackward(x, shift, dx, nx, direction, 2); + const real x_shifted_on_z = shiftCoordForward(x, shift, dx, nx, direction, 4); + const real y_shifted_on_x = shiftCoordBackward(y, shift, dx, ny, direction, 0); + const real y_shifted_on_z = shiftCoordForward(y, shift, dx, ny, direction, 5); + const real z_shifted = shiftCoordBackward(z, shift, dx, nz, direction, 1, 3); + compareNodeToCoordinates(grid, grid->getNeighborsX()[getIndex(grid, ix, iy, iz)], x+dx, y, z, msg); + compareNodeToCoordinates(grid, grid->getNeighborsY()[getIndex(grid, ix, iy, iz)], x, y+dx, z, msg); + compareNodeToCoordinates(grid, grid->getNeighborsZ()[getIndex(grid, ix, iy, iz)], x_shifted_on_z, y_shifted_on_z, 0.5*dx, msg); + compareNodeToCoordinates(grid, grid->getNeighborsNegative()[getIndex(grid, ix, iy, iz)], x_shifted_on_y, y_shifted_on_x, z_shifted, msg); + } +} + +INSTANTIATE_TEST_SUITE_P(PeriodicBoundaryShiftSingleGPU, PeriodicBoundaryShiftIntegrationTest, + testing::Combine(testing::Values(7, 100), testing::Range(0,6))); + +class PeriodicBoundaryShiftMultiGPUIntegrationTest : public ::testing::TestWithParam<std::tuple<int, int>> +{ +protected: + SPtr<MultipleGridBuilder> gridBuilder; + SPtr<BoundingBox> subdomain; + const real dx{1.0}; + const int nx{5}, ny{std::get<0>(GetParam())}, nz{5}; + const int direction{std::get<1>(GetParam())}; + + void SetUp() override + { + gridBuilder = std::make_shared<MultipleGridBuilder>(); + gridBuilder->addCoarseGrid(0.0, 0.0, 0.0, (nx+2)*dx, (ny+2)*dx, (nz+2)*dx, dx); + gridBuilder->setPeriodicBoundaryCondition(true, true, true); + subdomain = std::make_shared<BoundingBox>(dx, (nx+1)*dx, dx, (ny+1)*dx, dx, (nz+1)*dx); + } +}; + + +TEST_P(PeriodicBoundaryShiftMultiGPUIntegrationTest, PX) +{ + const real shift = 3.0f*dx; + gridBuilder->setPeriodicBoundaryCondition(true, true, true); + + switch(direction){ + case 0: gridBuilder->setPeriodicShiftOnXBoundaryInYDirection(shift); break; + case 1: gridBuilder->setPeriodicShiftOnXBoundaryInZDirection(shift); break; + case 2: gridBuilder->setPeriodicShiftOnYBoundaryInXDirection(shift); break; + case 3: gridBuilder->setPeriodicShiftOnYBoundaryInZDirection(shift); break; + case 4: gridBuilder->setPeriodicShiftOnZBoundaryInXDirection(shift); break; + case 5: gridBuilder->setPeriodicShiftOnZBoundaryInYDirection(shift); break; + case 6: break; + } + + gridBuilder->buildGrids(); + auto grid = gridBuilder->getGrid(0); + grid->findCommunicationIndices(CommunicationDirections::PX, subdomain, direction!=6); + uint nodeIndex=0; + for(uint iz=1; iz<grid->getNumberOfNodesZ()-1; iz++){ + for(uint iy=1; iy<grid->getNumberOfNodesY()-1; iy++){ + real x, y, z; + grid->transIndexToCoords(getIndex(grid, nx+1, iy, iz), x, y, z); + if(direction==0) + y = wrap(y+shift, (ny+2)*dx); + if(direction==1) + z = wrap(z+shift, (nz+2)*dx); + compareNodeToCoordinates(grid, grid->getSendIndex(CommunicationDirections::PX, nodeIndex), x, y, z, "Send"); + compareNodeToCoordinates(grid, grid->getReceiveIndex(CommunicationDirections::PX, nodeIndex), x+dx, y, z, "Receive"); + nodeIndex++; + }}; + EXPECT_EQ(nodeIndex, grid->getNumberOfSendNodes(CommunicationDirections::PX)); + EXPECT_EQ(nodeIndex, grid->getNumberOfReceiveNodes(CommunicationDirections::PX)); +} + +TEST_P(PeriodicBoundaryShiftMultiGPUIntegrationTest, MX) +{ + const real shift = 3.0f*dx; + gridBuilder->setPeriodicBoundaryCondition(true, true, true); + switch(direction){ + case 0: gridBuilder->setPeriodicShiftOnXBoundaryInYDirection(shift); break; + case 1: gridBuilder->setPeriodicShiftOnXBoundaryInZDirection(shift); break; + case 2: gridBuilder->setPeriodicShiftOnYBoundaryInXDirection(shift); break; + case 3: gridBuilder->setPeriodicShiftOnYBoundaryInZDirection(shift); break; + case 4: gridBuilder->setPeriodicShiftOnZBoundaryInXDirection(shift); break; + case 5: gridBuilder->setPeriodicShiftOnZBoundaryInYDirection(shift); break; + case 6: break; + } + gridBuilder->buildGrids(); + auto grid = gridBuilder->getGrid(0); + grid->findCommunicationIndices(CommunicationDirections::MX, subdomain, direction!=6); + uint nodeIndex=0; + for(uint iz=1; iz<grid->getNumberOfNodesZ()-1; iz++){ + for(uint iy=1; iy<grid->getNumberOfNodesY()-1; iy++){ + real x, y, z; + grid->transIndexToCoords(getIndex(grid, 2, iy, iz), x, y, z); + if(direction==0) + y = wrap(y-shift, (ny+2)*dx); + if(direction==1) + z = wrap(z-shift, (nz+2)*dx); + compareNodeToCoordinates(grid, grid->getSendIndex(CommunicationDirections::MX, nodeIndex), x, y, z, "Send"); + compareNodeToCoordinates(grid, grid->getReceiveIndex(CommunicationDirections::MX, nodeIndex), x-dx, y, z, "Receive"); + nodeIndex++; + }}; + EXPECT_EQ(nodeIndex, grid->getNumberOfSendNodes(CommunicationDirections::MX)); + EXPECT_EQ(nodeIndex, grid->getNumberOfReceiveNodes(CommunicationDirections::MX)); +} + +TEST_P(PeriodicBoundaryShiftMultiGPUIntegrationTest, PY) +{ + const real shift = 3.0f*dx; + gridBuilder->setPeriodicBoundaryCondition(true, true, true); + + switch(direction){ + case 0: gridBuilder->setPeriodicShiftOnXBoundaryInYDirection(shift); break; + case 1: gridBuilder->setPeriodicShiftOnXBoundaryInZDirection(shift); break; + case 2: gridBuilder->setPeriodicShiftOnYBoundaryInXDirection(shift); break; + case 3: gridBuilder->setPeriodicShiftOnYBoundaryInZDirection(shift); break; + case 4: gridBuilder->setPeriodicShiftOnZBoundaryInXDirection(shift); break; + case 5: gridBuilder->setPeriodicShiftOnZBoundaryInYDirection(shift); break; + case 6: break; + } + + gridBuilder->buildGrids(); + auto grid = gridBuilder->getGrid(0); + grid->findCommunicationIndices(CommunicationDirections::PY, subdomain, direction!=6); + uint nodeIndex=0; + for(uint iz=1; iz<grid->getNumberOfNodesZ()-1; iz++){ + for(uint ix=1; ix<grid->getNumberOfNodesX()-1; ix++){ + real x, y, z; + grid->transIndexToCoords(getIndex(grid, ix, ny+1, iz), x, y, z); + if(direction==2) + x = wrap(x+shift, (nx+2)*dx); + if(direction==3) + z = wrap(z+shift, (nz+2)*dx); + compareNodeToCoordinates(grid, grid->getSendIndex(CommunicationDirections::PY, nodeIndex), x, y, z, "Send"); + compareNodeToCoordinates(grid, grid->getReceiveIndex(CommunicationDirections::PY, nodeIndex), x, y+dx, z, "Receive"); + nodeIndex++; + }}; + EXPECT_EQ(nodeIndex, grid->getNumberOfSendNodes(CommunicationDirections::PY)); + EXPECT_EQ(nodeIndex, grid->getNumberOfReceiveNodes(CommunicationDirections::PY)); +} + +TEST_P(PeriodicBoundaryShiftMultiGPUIntegrationTest, MY) +{ + const real shift = 3.0f*dx; + gridBuilder->setPeriodicBoundaryCondition(true, true, true); + switch(direction){ + case 0: gridBuilder->setPeriodicShiftOnXBoundaryInYDirection(shift); break; + case 1: gridBuilder->setPeriodicShiftOnXBoundaryInZDirection(shift); break; + case 2: gridBuilder->setPeriodicShiftOnYBoundaryInXDirection(shift); break; + case 3: gridBuilder->setPeriodicShiftOnYBoundaryInZDirection(shift); break; + case 4: gridBuilder->setPeriodicShiftOnZBoundaryInXDirection(shift); break; + case 5: gridBuilder->setPeriodicShiftOnZBoundaryInYDirection(shift); break; + case 6: break; + } + gridBuilder->buildGrids(); + auto grid = gridBuilder->getGrid(0); + grid->findCommunicationIndices(CommunicationDirections::MY, subdomain, direction!=6); + uint nodeIndex=0; + for(uint iz=1; iz<grid->getNumberOfNodesZ()-1; iz++){ + for(uint ix=1; ix<grid->getNumberOfNodesX()-1; ix++){ + real x, y, z; + grid->transIndexToCoords(getIndex(grid, ix, 2, iz), x, y, z); + if(direction==2) + x = wrap(x-shift, (nx+2)*dx); + if(direction==3) + z = wrap(z-shift, (nz+2)*dx); + compareNodeToCoordinates(grid, grid->getSendIndex(CommunicationDirections::MY, nodeIndex), x, y, z, "Send"); + compareNodeToCoordinates(grid, grid->getReceiveIndex(CommunicationDirections::MY, nodeIndex), x, y-dx, z, "Receive"); + nodeIndex++; + }}; + EXPECT_EQ(nodeIndex, grid->getNumberOfSendNodes(CommunicationDirections::MY)); + EXPECT_EQ(nodeIndex, grid->getNumberOfReceiveNodes(CommunicationDirections::MY)); +} + +TEST_P(PeriodicBoundaryShiftMultiGPUIntegrationTest, PZ) +{ + const real shift = 3.0f*dx; + gridBuilder->setPeriodicBoundaryCondition(true, true, true); + + switch(direction){ + case 0: gridBuilder->setPeriodicShiftOnXBoundaryInYDirection(shift); break; + case 1: gridBuilder->setPeriodicShiftOnXBoundaryInZDirection(shift); break; + case 2: gridBuilder->setPeriodicShiftOnYBoundaryInXDirection(shift); break; + case 3: gridBuilder->setPeriodicShiftOnYBoundaryInZDirection(shift); break; + case 4: gridBuilder->setPeriodicShiftOnZBoundaryInXDirection(shift); break; + case 5: gridBuilder->setPeriodicShiftOnZBoundaryInYDirection(shift); break; + case 6: break; + } + + gridBuilder->buildGrids(); + auto grid = gridBuilder->getGrid(0); + grid->findCommunicationIndices(CommunicationDirections::PZ, subdomain, direction!=6); + uint nodeIndex=0; + for(uint iy=1; iy<grid->getNumberOfNodesY()-1; iy++){ + for(uint ix=1; ix<grid->getNumberOfNodesX()-1; ix++){ + real x, y, z; + grid->transIndexToCoords(getIndex(grid, ix, iy, nx+1), x, y, z); + if(direction==4) + x = wrap(x+shift, (nx+2)*dx); + if(direction==5) + y = wrap(y+shift, (ny+2)*dx); + compareNodeToCoordinates(grid, grid->getSendIndex(CommunicationDirections::PZ, nodeIndex), x, y, z, "Send"); + compareNodeToCoordinates(grid, grid->getReceiveIndex(CommunicationDirections::PZ, nodeIndex), x, y, z+dx, "Receive"); + nodeIndex++; + }}; + EXPECT_EQ(nodeIndex, grid->getNumberOfSendNodes(CommunicationDirections::PZ)); + EXPECT_EQ(nodeIndex, grid->getNumberOfReceiveNodes(CommunicationDirections::PZ)); +} + +TEST_P(PeriodicBoundaryShiftMultiGPUIntegrationTest, MZ) +{ + const real shift = 3.0f*dx; + gridBuilder->setPeriodicBoundaryCondition(true, true, true); + switch(direction){ + case 0: gridBuilder->setPeriodicShiftOnXBoundaryInYDirection(shift); break; + case 1: gridBuilder->setPeriodicShiftOnXBoundaryInZDirection(shift); break; + case 2: gridBuilder->setPeriodicShiftOnYBoundaryInXDirection(shift); break; + case 3: gridBuilder->setPeriodicShiftOnYBoundaryInZDirection(shift); break; + case 4: gridBuilder->setPeriodicShiftOnZBoundaryInXDirection(shift); break; + case 5: gridBuilder->setPeriodicShiftOnZBoundaryInYDirection(shift); break; + case 6: break; + } + gridBuilder->buildGrids(); + auto grid = gridBuilder->getGrid(0); + grid->findCommunicationIndices(CommunicationDirections::MZ, subdomain, direction!=6); + uint nodeIndex=0; + for(uint iy=1; iy<grid->getNumberOfNodesY()-1; iy++){ + for(uint ix=1; ix<grid->getNumberOfNodesX()-1; ix++){ + real x, y, z; + grid->transIndexToCoords(getIndex(grid, ix, iy, 2), x, y, z); + if(direction==4) + x = wrap(x-shift, (nx+2)*dx); + if(direction==5) + y = wrap(y-shift, (ny+2)*dx); + compareNodeToCoordinates(grid, grid->getSendIndex(CommunicationDirections::MZ, nodeIndex), x, y, z, "Send"); + compareNodeToCoordinates(grid, grid->getReceiveIndex(CommunicationDirections::MZ, nodeIndex), x, y, z-dx, "Receive"); + nodeIndex++; + }}; + EXPECT_EQ(nodeIndex, grid->getNumberOfSendNodes(CommunicationDirections::MZ)); + EXPECT_EQ(nodeIndex, grid->getNumberOfReceiveNodes(CommunicationDirections::MZ)); +} +INSTANTIATE_TEST_SUITE_P(PeriodicBoundaryShiftMultiGPUIntegration, PeriodicBoundaryShiftMultiGPUIntegrationTest, testing::Combine(testing::Values(5), testing::Range(0,7))); diff --git a/src/gpu/GridGenerator/grid/GridInterface.cpp b/src/gpu/GridGenerator/grid/GridInterface.cpp index 66ca05a16fcdbc859f1b808f551e7efb9df1d5f1..367588141be4d7392f45a37861c76d1a6d2e737f 100644 --- a/src/gpu/GridGenerator/grid/GridInterface.cpp +++ b/src/gpu/GridGenerator/grid/GridInterface.cpp @@ -113,8 +113,8 @@ void GridInterface::findBoundaryGridInterfaceCF(const uint& indexOnCoarseGrid, G const bool isFineGridNeighborInvalid = isNeighborFineInvalid(x + dir[0] * coarseGrid->getDelta(), y + dir[1] * coarseGrid->getDelta(), z + dir[2] * coarseGrid->getDelta(), coarseGrid, fineGrid); if(isFineGridNeighborInvalid) { - cf.coarse[cf.numberOfEntries] = this->findOffsetCF(indexOnCoarseGrid, coarseGrid, cf.numberOfEntries); - cf.fine[cf.numberOfEntries] = indexOnFineGridCF; + cf.coarse[cf.numberOfEntries] = this->findOffsetCF(indexOnCoarseGrid, coarseGrid, cf.numberOfEntries); + cf.fine[cf.numberOfEntries] = indexOnFineGridCF; cf.numberOfEntries++; @@ -147,21 +147,21 @@ void GridInterface::findInterfaceFC(const uint& indexOnCoarseGrid, GridImp* coar for (const auto dir : coarseGrid->distribution) { const uint neighborIndex = coarseGrid->transCoordToIndex(x + dir[0] * coarseGrid->getDelta(), y + dir[1] * coarseGrid->getDelta(), z + dir[2] * coarseGrid->getDelta()); - if (neighborIndex != INVALID_INDEX) - { - const bool neighborBelongsToCoarseToFineInterpolationCell = coarseGrid->getField().isCoarseToFineNode(neighborIndex); - if (neighborBelongsToCoarseToFineInterpolationCell) - { - fc.coarse[fc.numberOfEntries] = indexOnCoarseGrid; - fc.fine[fc.numberOfEntries] = this->findOffsetFC(indexOnFineGridFC, fineGrid, fc.numberOfEntries); - - fc.numberOfEntries++; - - fineGrid->setNonStopperOutOfGridCellTo(indexOnFineGridFC, FLUID_FCF); - coarseGrid->getField().setFieldEntry(indexOnCoarseGrid, FLUID_FCC); - break; - } - } + if (neighborIndex != INVALID_INDEX) + { + const bool neighborBelongsToCoarseToFineInterpolationCell = coarseGrid->getField().isCoarseToFineNode(neighborIndex); + if (neighborBelongsToCoarseToFineInterpolationCell) + { + fc.coarse[fc.numberOfEntries] = indexOnCoarseGrid; + fc.fine[fc.numberOfEntries] = this->findOffsetFC(indexOnFineGridFC, fineGrid, fc.numberOfEntries); + + fc.numberOfEntries++; + + fineGrid->setNonStopperOutOfGridCellTo(indexOnFineGridFC, FLUID_FCF); + coarseGrid->getField().setFieldEntry(indexOnCoarseGrid, FLUID_FCC); + break; + } + } } } @@ -184,7 +184,7 @@ void GridInterface::findOverlapStopper(const uint& indexOnCoarseGrid, GridImp* c for (const auto dir : coarseGrid->distribution) { //if (dir[0] > 0 || dir[1] > 0 || dir[2] > 0) //only Esoteric Twist stopper, not perfectly implemented - // continue; //should not be here, should be made conditional + // continue; //should not be here, should be made conditional const uint neighborIndex = coarseGrid->transCoordToIndex(x + dir[0] * coarseGrid->getDelta(), y + dir[1] * coarseGrid->getDelta(), z + dir[2] * coarseGrid->getDelta()); neighborBelongsToFineToCoarseInterpolationCell = neighborIndex != INVALID_INDEX ? coarseGrid->getField().isFineToCoarseNode(neighborIndex) : false; @@ -195,11 +195,11 @@ void GridInterface::findOverlapStopper(const uint& indexOnCoarseGrid, GridImp* c } } - //should be inside of fine grid and can be deleted + //should be inside of fine grid and can be deleted if(!neighborBelongsToFineToCoarseInterpolationCell && (fineGrid->getField().isInvalidSolid(indexOnFineGridFC) || - fineGrid->getField().isFluid(indexOnFineGridFC) || - fineGrid->getField().is(indexOnFineGridFC, STOPPER_SOLID) || - fineGrid->getField().is(indexOnFineGridFC, BC_SOLID))) + fineGrid->getField().isFluid(indexOnFineGridFC) || + fineGrid->getField().is(indexOnFineGridFC, STOPPER_SOLID) || + fineGrid->getField().is(indexOnFineGridFC, BC_SOLID))) coarseGrid->getField().setFieldEntryToInvalidCoarseUnderFine(indexOnCoarseGrid); } @@ -369,16 +369,16 @@ uint GridInterface::findOffsetCF(const uint& indexOnCoarseGrid, GridImp* coarseG if( coarseGrid->cellContainsOnly( neighborCell, FLUID, FLUID_CFC ) ){ this->cf.offset[ interfaceIndex ] = dirIndex; - return coarseGrid->transCoordToIndex( x + dir[0] * coarseGrid->getDelta(), - y + dir[1] * coarseGrid->getDelta(), - z + dir[2] * coarseGrid->getDelta() ); + return coarseGrid->transCoordToIndex( x + dir[0] * coarseGrid->getDelta(), + y + dir[1] * coarseGrid->getDelta(), + z + dir[2] * coarseGrid->getDelta() ); } dirIndex++; } - // this point should never be reached - return indexOnCoarseGrid; + // this point should never be reached + return indexOnCoarseGrid; } uint GridInterface::findOffsetFC(const uint& indexOnFineGrid, GridImp* fineGrid, uint interfaceIndex) @@ -402,18 +402,18 @@ uint GridInterface::findOffsetFC(const uint& indexOnFineGrid, GridImp* fineGrid, fineGrid->getDelta() ); if( fineGrid->cellContainsOnly( neighborCell, FLUID, FLUID_CFC ) ){ - this->fc.offset[interfaceIndex] = dirIndex; + this->fc.offset[interfaceIndex] = dirIndex; - return fineGrid->transCoordToIndex(x + dir[0] * fineGrid->getDelta(), - y + dir[1] * fineGrid->getDelta(), - z + dir[2] * fineGrid->getDelta()); + return fineGrid->transCoordToIndex(x + dir[0] * fineGrid->getDelta(), + y + dir[1] * fineGrid->getDelta(), + z + dir[2] * fineGrid->getDelta()); } dirIndex++; } - // this point should never be reached - return indexOnFineGrid; + // this point should never be reached + return indexOnFineGrid; } void GridInterface::print() const diff --git a/src/gpu/GridGenerator/io/QLineWriter.cpp b/src/gpu/GridGenerator/io/QLineWriter.cpp index 1aece49ceeabc5ca195146f2ac6dcb7ba960f3ea..b642482b3e2ac943227713ee301e1069c554bb82 100644 --- a/src/gpu/GridGenerator/io/QLineWriter.cpp +++ b/src/gpu/GridGenerator/io/QLineWriter.cpp @@ -48,11 +48,11 @@ void writeLines(std::string filename, std::vector<UbTupleFloat3> nodes, std::vec void QLineWriter::writeArrows(std::string fileName, SPtr<GeometryBoundaryCondition> geometryBoundaryCondition, SPtr<Grid> grid) { - if (geometryBoundaryCondition == nullptr) - { + if (geometryBoundaryCondition == nullptr) + { VF_LOG_WARNING("(QLineWriter::writeArrows) no geometry bc on this grid level."); - return; - } + return; + } std::vector<UbTupleFloat3> nodes; std::vector<UbTupleInt2> cells; @@ -60,7 +60,7 @@ void QLineWriter::writeArrows(std::string fileName, SPtr<GeometryBoundaryConditi for (std::size_t index = 0; index < geometryBoundaryCondition->indices.size(); index++) { Vertex startNode = getVertex(geometryBoundaryCondition->indices[index], grid); - for (int qi = 0; qi <= 26; qi++) + for (int qi = 0; qi <= 26; qi++) { real qval = geometryBoundaryCondition->qs[index][qi]; if (qval > 0.0f) diff --git a/src/gpu/GridGenerator/io/STLReaderWriter/STLReader.cpp b/src/gpu/GridGenerator/io/STLReaderWriter/STLReader.cpp index 669d7fb258759266b06a5cc214befdb3f1a6ec29..4ec6e71e21c901ea5802b511c83259928fd3eecb 100644 --- a/src/gpu/GridGenerator/io/STLReaderWriter/STLReader.cpp +++ b/src/gpu/GridGenerator/io/STLReaderWriter/STLReader.cpp @@ -234,34 +234,34 @@ std::vector<Triangle> STLReader::readBinarySTL(const std::string& name) triangles.push_back(Triangle(p1, p2, p3, normal)); } (void)sizef; - fclose(file); + fclose(file); return triangles; } std::vector<Triangle> STLReader::readSTL(const BoundingBox &box, const std::string& name) { - std::ifstream file(name.c_str()); - if (file.is_open()) { - std::string line; - std::getline(file, line); - line[strcspn(line.c_str(), "\r\n")] = 0; - if (strcmp(line.c_str(), "solid ascii") == 0) { - file.close(); + std::ifstream file(name.c_str()); + if (file.is_open()) { + std::string line; + std::getline(file, line); + line[strcspn(line.c_str(), "\r\n")] = 0; + if (strcmp(line.c_str(), "solid ascii") == 0) { + file.close(); VF_LOG_INFO("start reading ascii STL file {}", name); - return readASCIISTL(box, name); - } - else { - file.close(); + return readASCIISTL(box, name); + } + else { + file.close(); VF_LOG_INFO("start reading binary STL file {}", name); - std::vector<Triangle> triangles = readBinarySTL(box, name); - return triangles; - } - } - else { + std::vector<Triangle> triangles = readBinarySTL(box, name); + return triangles; + } + } + else { VF_LOG_CRITICAL("can't open STL-file {}", name); - exit(1); - } + exit(1); + } } std::vector<Triangle> STLReader::readASCIISTL(const BoundingBox &box, const std::string& name) @@ -332,7 +332,7 @@ std::vector<Triangle> STLReader::readBinarySTL(const BoundingBox &box, const std VF_LOG_INFO("Number of Triangles in process: {}", size); VF_LOG_INFO("Complete reading STL file"); (void)sizef; - fclose(file); + fclose(file); return triangles; } diff --git a/src/gpu/GridGenerator/io/STLReaderWriter/STLReader.h b/src/gpu/GridGenerator/io/STLReaderWriter/STLReader.h index 333313727530ae551c76a76984cd63f6cd0f11ce..e9a76b9fbb8c99557b6825845349dde942158eb6 100644 --- a/src/gpu/GridGenerator/io/STLReaderWriter/STLReader.h +++ b/src/gpu/GridGenerator/io/STLReaderWriter/STLReader.h @@ -51,13 +51,13 @@ public: static std::vector<Triangle> readSTL(const std::string& name); static std::vector<Triangle> readSTL(const std::string& name, FileType fileType, const std::vector<uint> ignorePatches = std::vector<uint>() ); - static std::vector<Triangle> readSTL(const BoundingBox &box, const std::string& name); + static std::vector<Triangle> readSTL(const BoundingBox &box, const std::string& name); static std::vector<Triangle> readBinarySTL(const std::string& name); static std::vector<Triangle> readASCIISTL(const std::string& name); static std::vector<Triangle> readASCIISTLWithPatches(const std::string& name, const std::vector<uint> ignorePatches); - static std::vector<Triangle> readBinarySTL(const BoundingBox &box, const std::string& name); - static std::vector<Triangle> readASCIISTL(const BoundingBox &box, const std::string& name); + static std::vector<Triangle> readBinarySTL(const BoundingBox &box, const std::string& name); + static std::vector<Triangle> readASCIISTL(const BoundingBox &box, const std::string& name); private: STLReader(){}; diff --git a/src/gpu/GridGenerator/io/SimulationFileWriter/SimulationFileNames.cpp b/src/gpu/GridGenerator/io/SimulationFileWriter/SimulationFileNames.cpp index 34b6b1d3c30b15333afb0afeb5d35d2894e07e52..f8585e2015c9d063d335332bf8a127775bd74aa9 100644 --- a/src/gpu/GridGenerator/io/SimulationFileWriter/SimulationFileNames.cpp +++ b/src/gpu/GridGenerator/io/SimulationFileWriter/SimulationFileNames.cpp @@ -50,25 +50,25 @@ const std::string simulationFileNames::scaleFCF = "scaleFCF" + fileEnding; const std::string simulationFileNames::offsetVecCF = "offsetVecCF" + fileEnding; const std::string simulationFileNames::offsetVecFC = "offsetVecFC" + fileEnding; - + const std::string simulationFileNames::geomBoundaryQ = "geomBoundaryQs" + fileEnding; const std::string simulationFileNames::geomBoundaryValues = "geomBoundaryValues" + fileEnding; - + const std::string simulationFileNames::topBoundaryQ = "topBoundaryQs" + fileEnding; const std::string simulationFileNames::topBoundaryValues = "topBoundaryValues" + fileEnding; - + const std::string simulationFileNames::bottomBoundaryQ = "bottomBoundaryQs" + fileEnding; const std::string simulationFileNames::bottomBoundaryValues = "bottomBoundaryValues" + fileEnding; - + const std::string simulationFileNames::frontBoundaryQ = "frontBoundaryQs" + fileEnding; const std::string simulationFileNames::frontBoundaryValues = "frontBoundaryValues" + fileEnding; - + const std::string simulationFileNames::backBoundaryQ = "backBoundaryQs" + fileEnding; const std::string simulationFileNames::backBoundaryValues = "backBoundaryValues" + fileEnding; - + const std::string simulationFileNames::inletBoundaryQ = "inletBoundaryQs" + fileEnding; const std::string simulationFileNames::inletBoundaryValues = "inletBoundaryValues" + fileEnding; - + const std::string simulationFileNames::outletBoundaryQ = "outletBoundaryQs" + fileEnding; const std::string simulationFileNames::outletBoundaryValues = "outletBoundaryValues" + fileEnding; diff --git a/src/gpu/GridGenerator/io/SimulationFileWriter/SimulationFileNames.h b/src/gpu/GridGenerator/io/SimulationFileWriter/SimulationFileNames.h index 4be5b44bd4760764da672239052e17bd406316d3..58de6dd5d27c37cf126221b6cf44ff6f5f4cd4c0 100644 --- a/src/gpu/GridGenerator/io/SimulationFileWriter/SimulationFileNames.h +++ b/src/gpu/GridGenerator/io/SimulationFileWriter/SimulationFileNames.h @@ -39,14 +39,14 @@ struct GRIDGENERATOR_EXPORT simulationFileNames { - static const std::string coordX; - static const std::string coordY; - static const std::string coordZ; - static const std::string neighborX; - static const std::string neighborY; - static const std::string neighborZ; - static const std::string neighborWSB; - static const std::string geoVec; + static const std::string coordX; + static const std::string coordY; + static const std::string coordZ; + static const std::string neighborX; + static const std::string neighborY; + static const std::string neighborZ; + static const std::string neighborWSB; + static const std::string geoVec; static const std::string scaleCFC; static const std::string scaleCFF; @@ -55,27 +55,27 @@ struct GRIDGENERATOR_EXPORT simulationFileNames static const std::string offsetVecCF; static const std::string offsetVecFC; - - static const std::string geomBoundaryQ; - static const std::string geomBoundaryValues; - - static const std::string topBoundaryQ; - static const std::string topBoundaryValues; - - static const std::string bottomBoundaryQ; - static const std::string bottomBoundaryValues; - - static const std::string frontBoundaryQ; - static const std::string frontBoundaryValues; - - static const std::string backBoundaryQ; - static const std::string backBoundaryValues; - - static const std::string inletBoundaryQ; - static const std::string inletBoundaryValues; - - static const std::string outletBoundaryQ; - static const std::string outletBoundaryValues; + + static const std::string geomBoundaryQ; + static const std::string geomBoundaryValues; + + static const std::string topBoundaryQ; + static const std::string topBoundaryValues; + + static const std::string bottomBoundaryQ; + static const std::string bottomBoundaryValues; + + static const std::string frontBoundaryQ; + static const std::string frontBoundaryValues; + + static const std::string backBoundaryQ; + static const std::string backBoundaryValues; + + static const std::string inletBoundaryQ; + static const std::string inletBoundaryValues; + + static const std::string outletBoundaryQ; + static const std::string outletBoundaryValues; static const std::string numberNodes; static const std::string LBMvsSI; diff --git a/src/gpu/GridGenerator/utilities/math/Math.cpp b/src/gpu/GridGenerator/utilities/math/Math.cpp index 0f5f5cc8e05c9ce08a2854c0354371e18964610e..458aa2c1c83b972ad670aead1ab9f3b18ba0d3a6 100644 --- a/src/gpu/GridGenerator/utilities/math/Math.cpp +++ b/src/gpu/GridGenerator/utilities/math/Math.cpp @@ -38,28 +38,28 @@ bool vf::Math::equal(const real& val1, const real& val2, real maxRelDiff) { - const real diff = std::fabs(val1 - val2); - const real val1_abs = std::fabs(val1); - const real val2_abs = std::fabs(val2); + const real diff = std::fabs(val1 - val2); + const real val1_abs = std::fabs(val1); + const real val2_abs = std::fabs(val2); - const real largest = (val2_abs > val1_abs) ? val2_abs : val1_abs; - if (diff <= largest * maxRelDiff) - return true; - return false; + const real largest = (val2_abs > val1_abs) ? val2_abs : val1_abs; + if (diff <= largest * maxRelDiff) + return true; + return false; } bool vf::Math::lessEqual(const real& val1, const real& val2, real maxRelDiff) { - if (val1 < val2 || equal(val1, val2, maxRelDiff)) - return true; - return false; + if (val1 < val2 || equal(val1, val2, maxRelDiff)) + return true; + return false; } bool vf::Math::greaterEqual(const real& val1, const real& val2, real maxRelDiff) { - if (val1 > val2 || equal(val1, val2, maxRelDiff)) - return true; - return false; + if (val1 > val2 || equal(val1, val2, maxRelDiff)) + return true; + return false; } real vf::Math::sqrtReal(const real& val) diff --git a/src/gpu/GridGenerator/utilities/transformator/ArrowTransformator.h b/src/gpu/GridGenerator/utilities/transformator/ArrowTransformator.h index ad80114945c9e9be4cc38afa46c493edc1c55b66..c82b4aecdfb83a39729345a78699f1fbb10eb151 100644 --- a/src/gpu/GridGenerator/utilities/transformator/ArrowTransformator.h +++ b/src/gpu/GridGenerator/utilities/transformator/ArrowTransformator.h @@ -43,13 +43,13 @@ class ArrowTransformator { public: static GRIDGENERATOR_EXPORT std::shared_ptr<ArrowTransformator> makeTransformator(real delta, real dx, real dy, real dz); - virtual ~ArrowTransformator() {} + virtual ~ArrowTransformator() {} protected: - ArrowTransformator() {} - + ArrowTransformator() {} + public: - virtual void transformGridToWorld(std::shared_ptr<Arrow> arrow) const = 0; + virtual void transformGridToWorld(std::shared_ptr<Arrow> arrow) const = 0; }; diff --git a/src/gpu/GridGenerator/utilities/transformator/Transformator.h b/src/gpu/GridGenerator/utilities/transformator/Transformator.h index 9510e818f3467bc4346fc9e8ece58a83c139e11d..36c499269272d7b65bbfbd94aa286b566abc81eb 100644 --- a/src/gpu/GridGenerator/utilities/transformator/Transformator.h +++ b/src/gpu/GridGenerator/utilities/transformator/Transformator.h @@ -47,21 +47,21 @@ class Transformator { public: static GRIDGENERATOR_EXPORT std::shared_ptr<Transformator> makeTransformator(real delta, real dx, real dy, real dz); - virtual ~Transformator() {} + virtual ~Transformator() {} protected: - Transformator(){} + Transformator(){} public: - virtual void transformWorldToGrid(Triangle &value) const = 0; - virtual void transformWorldToGrid(TriangularMesh &geom) const = 0; - virtual void transformWorldToGrid(Vertex &value) const = 0; + virtual void transformWorldToGrid(Triangle &value) const = 0; + virtual void transformWorldToGrid(TriangularMesh &geom) const = 0; + virtual void transformWorldToGrid(Vertex &value) const = 0; virtual void transformGridToWorld(Triangle &t) const = 0; - virtual void transformGridToWorld(Vertex &value) const = 0; - - virtual void transformGridToWorld(BoundingBox &box) const = 0; - virtual void transformWorldToGrid(BoundingBox &box) const = 0; + virtual void transformGridToWorld(Vertex &value) const = 0; + + virtual void transformGridToWorld(BoundingBox &box) const = 0; + virtual void transformWorldToGrid(BoundingBox &box) const = 0; }; diff --git a/src/gpu/GridGenerator/utilities/transformator/TransformatorImp.cpp b/src/gpu/GridGenerator/utilities/transformator/TransformatorImp.cpp index 3c7a3b675104eabab89c59d481797ff41b2033c8..ec99818cdea2e62c93c318388fb14cb4c4eb7b02 100644 --- a/src/gpu/GridGenerator/utilities/transformator/TransformatorImp.cpp +++ b/src/gpu/GridGenerator/utilities/transformator/TransformatorImp.cpp @@ -42,16 +42,16 @@ TransformatorImp::TransformatorImp() { - this->translater = std::shared_ptr<Vertex>(new Vertex()); - this->delta = 1.0; - this->translater->x = 0; - this->translater->y = 0; - this->translater->z = 0; + this->translater = std::shared_ptr<Vertex>(new Vertex()); + this->delta = 1.0; + this->translater->x = 0; + this->translater->y = 0; + this->translater->z = 0; } TransformatorImp::TransformatorImp(real delta, const Vertex& translater) : delta(delta), translater(std::make_shared<Vertex>(translater)) { - this->verifyDelta(delta); + this->verifyDelta(delta); } TransformatorImp::TransformatorImp(real delta, real dx, real dy, real dz) : TransformatorImp(delta, Vertex(dx,dy,dz)) @@ -61,8 +61,8 @@ TransformatorImp::TransformatorImp(real delta, real dx, real dy, real dz) : Tran TransformatorImp::TransformatorImp(const TransformatorImp& trafo) { - this->delta = trafo.delta; - this->translater = std::shared_ptr<Vertex>(new Vertex(*trafo.translater.get())); + this->delta = trafo.delta; + this->translater = std::shared_ptr<Vertex>(new Vertex(*trafo.translater.get())); } TransformatorImp::~TransformatorImp() @@ -72,38 +72,38 @@ TransformatorImp::~TransformatorImp() void TransformatorImp::transformWorldToGrid(TriangularMesh &geom) const { - for (int i = 0; i < geom.size; i++) - transformWorldToGrid(geom.triangleVec[i]); + for (int i = 0; i < geom.size; i++) + transformWorldToGrid(geom.triangleVec[i]); } void TransformatorImp::transformWorldToGrid(Triangle &value) const { - transformWorldToGrid(value.v1); - transformWorldToGrid(value.v2); - transformWorldToGrid(value.v3); + transformWorldToGrid(value.v1); + transformWorldToGrid(value.v2); + transformWorldToGrid(value.v3); } void TransformatorImp::transformGridToWorld(std::shared_ptr<Arrow> arrow) const { - transformGridToWorld(*arrow->getStart()); - transformGridToWorld(*arrow->getEnd()); + transformGridToWorld(*arrow->getStart()); + transformGridToWorld(*arrow->getEnd()); } void TransformatorImp::transformWorldToGrid(Vertex &v) const { - translateWorldToView(v); - scaleWorldToView(v); + translateWorldToView(v); + scaleWorldToView(v); } void TransformatorImp::translateWorldToView(Vertex& v) const { - v = *translater.get() + v; + v = *translater.get() + v; } void TransformatorImp::scaleWorldToView(Vertex& v) const { - v = v * (1.0f / this->delta); + v = v * (1.0f / this->delta); } @@ -116,75 +116,75 @@ void TransformatorImp::transformGridToWorld(Triangle & t) const void TransformatorImp::transformGridToWorld(Vertex &value) const { - scaleGridToWorld(value); - translateGridToWorld(value); + scaleGridToWorld(value); + translateGridToWorld(value); } void TransformatorImp::scaleGridToWorld(Vertex & value) const { - value = value * this->delta; + value = value * this->delta; } void TransformatorImp::translateGridToWorld(Vertex & value) const { - value = value - *translater.get(); + value = value - *translater.get(); } void TransformatorImp::transformGridToWorld(BoundingBox &box) const { - //scale - box.minX = (box.minX * this->delta); - box.minY = (box.minY * this->delta); - box.minZ = (box.minZ * this->delta); + //scale + box.minX = (box.minX * this->delta); + box.minY = (box.minY * this->delta); + box.minZ = (box.minZ * this->delta); - box.maxX = (box.maxX * this->delta); - box.maxY = (box.maxY * this->delta); - box.maxZ = (box.maxZ * this->delta); + box.maxX = (box.maxX * this->delta); + box.maxY = (box.maxY * this->delta); + box.maxZ = (box.maxZ * this->delta); - //translate - box.minX = (box.minX - this->translater->x); - box.minY = (box.minY - this->translater->y); - box.minZ = (box.minZ - this->translater->z); + //translate + box.minX = (box.minX - this->translater->x); + box.minY = (box.minY - this->translater->y); + box.minZ = (box.minZ - this->translater->z); - box.maxX = (box.maxX - this->translater->x); - box.maxY = (box.maxY - this->translater->y); - box.maxZ = (box.maxZ - this->translater->z); + box.maxX = (box.maxX - this->translater->x); + box.maxY = (box.maxY - this->translater->y); + box.maxZ = (box.maxZ - this->translater->z); } void TransformatorImp::transformWorldToGrid(BoundingBox &box) const { - //translate - box.minX += this->translater->x; - box.minY += this->translater->y; - box.minZ += this->translater->z; + //translate + box.minX += this->translater->x; + box.minY += this->translater->y; + box.minZ += this->translater->z; - box.maxX += this->translater->x; - box.maxY += this->translater->y; - box.maxZ += this->translater->z; + box.maxX += this->translater->x; + box.maxY += this->translater->y; + box.maxZ += this->translater->z; - //scale - box.minX *= (1.0f / this->delta); - box.minY *= (1.0f / this->delta); - box.minZ *= (1.0f / this->delta); + //scale + box.minX *= (1.0f / this->delta); + box.minY *= (1.0f / this->delta); + box.minZ *= (1.0f / this->delta); - box.maxX *= (1.0f / this->delta); - box.maxY *= (1.0f / this->delta); - box.maxZ *= (1.0f / this->delta); + box.maxX *= (1.0f / this->delta); + box.maxY *= (1.0f / this->delta); + box.maxZ *= (1.0f / this->delta); } void TransformatorImp::verifyDelta(real delta) const { - if (delta <= 0.0) - throw invalidDelta(); + if (delta <= 0.0) + throw invalidDelta(); } bool TransformatorImp::operator==(const TransformatorImp& trafo) const { - return (this->delta == trafo.delta - && this->translater->x == trafo.translater->x - && this->translater->y == trafo.translater->y - && this->translater->z == trafo.translater->z); + return (this->delta == trafo.delta + && this->translater->x == trafo.translater->x + && this->translater->y == trafo.translater->y + && this->translater->z == trafo.translater->z); } diff --git a/src/gpu/GridGenerator/utilities/transformator/TransformatorImp.h b/src/gpu/GridGenerator/utilities/transformator/TransformatorImp.h index 40110a15d7deb0d62f12943a48536201022f2321..8df4f6ac18c6f7eb2dcccdfb747eb96959053158 100644 --- a/src/gpu/GridGenerator/utilities/transformator/TransformatorImp.h +++ b/src/gpu/GridGenerator/utilities/transformator/TransformatorImp.h @@ -52,50 +52,50 @@ class invalidDelta : public std::exception invalidDelta() : error_message ("Delta cant be < Null. To enable no changes change delta to 1.0.") {} - const char* what() const noexcept + const char* what() const noexcept { - return error_message.c_str(); - } + return error_message.c_str(); + } private: std::string error_message; }; class TransformatorImp - : public Transformator, public ArrowTransformator + : public Transformator, public ArrowTransformator { public: - GRIDGENERATOR_EXPORT TransformatorImp(); - GRIDGENERATOR_EXPORT TransformatorImp(const TransformatorImp& trafo); - GRIDGENERATOR_EXPORT TransformatorImp(real delta, const Vertex& translater); - GRIDGENERATOR_EXPORT TransformatorImp(real delta, real dx, real dy, real dz); - GRIDGENERATOR_EXPORT virtual ~TransformatorImp(); - - GRIDGENERATOR_EXPORT void transformWorldToGrid(Triangle &value) const override; - GRIDGENERATOR_EXPORT void transformWorldToGrid(TriangularMesh &geom) const override; - GRIDGENERATOR_EXPORT void transformWorldToGrid(Vertex &value) const override; + GRIDGENERATOR_EXPORT TransformatorImp(); + GRIDGENERATOR_EXPORT TransformatorImp(const TransformatorImp& trafo); + GRIDGENERATOR_EXPORT TransformatorImp(real delta, const Vertex& translater); + GRIDGENERATOR_EXPORT TransformatorImp(real delta, real dx, real dy, real dz); + GRIDGENERATOR_EXPORT virtual ~TransformatorImp(); + + GRIDGENERATOR_EXPORT void transformWorldToGrid(Triangle &value) const override; + GRIDGENERATOR_EXPORT void transformWorldToGrid(TriangularMesh &geom) const override; + GRIDGENERATOR_EXPORT void transformWorldToGrid(Vertex &value) const override; GRIDGENERATOR_EXPORT void transformGridToWorld(Triangle &t) const override; - GRIDGENERATOR_EXPORT void transformGridToWorld(Vertex &value) const override; + GRIDGENERATOR_EXPORT void transformGridToWorld(Vertex &value) const override; - GRIDGENERATOR_EXPORT void transformGridToWorld(BoundingBox &box) const override; - GRIDGENERATOR_EXPORT void transformWorldToGrid(BoundingBox &box) const override; + GRIDGENERATOR_EXPORT void transformGridToWorld(BoundingBox &box) const override; + GRIDGENERATOR_EXPORT void transformWorldToGrid(BoundingBox &box) const override; - GRIDGENERATOR_EXPORT bool operator==(const TransformatorImp& trafo) const; + GRIDGENERATOR_EXPORT bool operator==(const TransformatorImp& trafo) const; - GRIDGENERATOR_EXPORT virtual void transformGridToWorld(std::shared_ptr<Arrow> arrow) const override; + GRIDGENERATOR_EXPORT virtual void transformGridToWorld(std::shared_ptr<Arrow> arrow) const override; private: - real delta; - std::shared_ptr<Vertex> translater; + real delta; + std::shared_ptr<Vertex> translater; - void scaleWorldToView(Vertex & v) const; - void translateWorldToView(Vertex & v) const; + void scaleWorldToView(Vertex & v) const; + void translateWorldToView(Vertex & v) const; - void translateGridToWorld(Vertex & value) const; - void scaleGridToWorld(Vertex & value) const; + void translateGridToWorld(Vertex & value) const; + void scaleGridToWorld(Vertex & value) const; - void verifyDelta(real delta) const; + void verifyDelta(real delta) const; }; diff --git a/src/gpu/core/CMakeLists.txt b/src/gpu/core/CMakeLists.txt index a99217f58a89af86aa766c9ae6e19155e20b323b..52c0ba96d4ac37f0ae9f6af76537155d5b24a063 100644 --- a/src/gpu/core/CMakeLists.txt +++ b/src/gpu/core/CMakeLists.txt @@ -26,6 +26,7 @@ if(BUILD_VF_UNIT_TESTS) set_source_files_properties(DataStructureInitializer/GridReaderGenerator/IndexRearrangementForStreamsTest.cpp PROPERTIES LANGUAGE CUDA) set_source_files_properties(Kernel/Kernels/BasicKernels/FluidFlow/Compressible/CumulantK17/CumulantK17Test.cpp PROPERTIES LANGUAGE CUDA) set_source_files_properties(LBM/GPUHelperFunctions/KernelUtilitiesTests.cpp PROPERTIES LANGUAGE CUDA) + set_source_files_properties(Output/DistributionDebugWriterTest.cpp PROPERTIES LANGUAGE CUDA) set_source_files_properties(Parameter/ParameterTest.cpp PROPERTIES LANGUAGE CUDA) set_source_files_properties(PreCollisionInteractor/ActuatorFarmInlinesTest.cpp PROPERTIES LANGUAGE CUDA) endif() diff --git a/src/gpu/core/Calculation/Calc2ndMoments.cpp b/src/gpu/core/Calculation/Calc2ndMoments.cpp index e3f344231dc9d5e19c09f7ce1fde7d31f1770232..ad60eb6f21583027bbfdd6b5fd922a50dcb0d9a2 100644 --- a/src/gpu/core/Calculation/Calc2ndMoments.cpp +++ b/src/gpu/core/Calculation/Calc2ndMoments.cpp @@ -4,61 +4,61 @@ void alloc2ndMoments(Parameter* para, CudaMemoryManager* cudaMemoryManager) { - for (int lev=para->getCoarse(); lev <= para->getFine(); lev++) - { - ////////////////////////////////////////////////////////////////////////// - //allocation (device-memory + host-memory) - cudaMemoryManager->cudaAlloc2ndMoments(lev, para->getParH(lev)->numberOfNodes); - ////////////////////////////////////////////////////////////////////////// - } + for (int lev=para->getCoarse(); lev <= para->getFine(); lev++) + { + ////////////////////////////////////////////////////////////////////////// + //allocation (device-memory + host-memory) + cudaMemoryManager->cudaAlloc2ndMoments(lev, para->getParH(lev)->numberOfNodes); + ////////////////////////////////////////////////////////////////////////// + } } void init2ndMoments(Parameter* para) { - for (int lev = para->getCoarse(); lev <= para->getFine(); lev++) - { - ////////////////////////////////////////////////////////////////////////// - //init host arrays - for (size_t pos = 0; pos < para->getParH(lev)->numberOfNodes; pos++) - { - para->getParH(lev)->kxyFromfcNEQ[pos] = 0.0; - para->getParH(lev)->kyzFromfcNEQ[pos] = 0.0; - para->getParH(lev)->kxzFromfcNEQ[pos] = 0.0; - para->getParH(lev)->kxxMyyFromfcNEQ[pos] = 0.0; - para->getParH(lev)->kxxMzzFromfcNEQ[pos] = 0.0; - } - ////////////////////////////////////////////////////////////////////////// - } + for (int lev = para->getCoarse(); lev <= para->getFine(); lev++) + { + ////////////////////////////////////////////////////////////////////////// + //init host arrays + for (size_t pos = 0; pos < para->getParH(lev)->numberOfNodes; pos++) + { + para->getParH(lev)->kxyFromfcNEQ[pos] = 0.0; + para->getParH(lev)->kyzFromfcNEQ[pos] = 0.0; + para->getParH(lev)->kxzFromfcNEQ[pos] = 0.0; + para->getParH(lev)->kxxMyyFromfcNEQ[pos] = 0.0; + para->getParH(lev)->kxxMzzFromfcNEQ[pos] = 0.0; + } + ////////////////////////////////////////////////////////////////////////// + } } void calc2ndMoments(Parameter* para, CudaMemoryManager* cudaMemoryManager) { - for (int lev=para->getCoarse(); lev <= para->getFine(); lev++) - { - ////////////////////////////////////////////////////////////////////////// - //calc 2nd Moments on device - Calc2ndMomentsCompSP27( para->getParD(lev)->kxyFromfcNEQ, - para->getParD(lev)->kyzFromfcNEQ, - para->getParD(lev)->kxzFromfcNEQ, - para->getParD(lev)->kxxMyyFromfcNEQ, - para->getParD(lev)->kxxMzzFromfcNEQ, - para->getParD(lev)->typeOfGridNode, - para->getParD(lev)->neighborX, - para->getParD(lev)->neighborY, - para->getParD(lev)->neighborZ, - para->getParD(lev)->numberOfNodes, - para->getParD(lev)->numberofthreads, - para->getParD(lev)->distributions.f[0], - para->getParD(lev)->isEvenTimestep); - ////////////////////////////////////////////////////////////////////////// - //copy results to host - cudaMemoryManager->cudaCopy2ndMoments(lev, para->getParH(lev)->numberOfNodes); - ////////////////////////////////////////////////////////////////////////// - } + for (int lev=para->getCoarse(); lev <= para->getFine(); lev++) + { + ////////////////////////////////////////////////////////////////////////// + //calc 2nd Moments on device + Calc2ndMomentsCompSP27( para->getParD(lev)->kxyFromfcNEQ, + para->getParD(lev)->kyzFromfcNEQ, + para->getParD(lev)->kxzFromfcNEQ, + para->getParD(lev)->kxxMyyFromfcNEQ, + para->getParD(lev)->kxxMzzFromfcNEQ, + para->getParD(lev)->typeOfGridNode, + para->getParD(lev)->neighborX, + para->getParD(lev)->neighborY, + para->getParD(lev)->neighborZ, + para->getParD(lev)->numberOfNodes, + para->getParD(lev)->numberofthreads, + para->getParD(lev)->distributions.f[0], + para->getParD(lev)->isEvenTimestep); + ////////////////////////////////////////////////////////////////////////// + //copy results to host + cudaMemoryManager->cudaCopy2ndMoments(lev, para->getParH(lev)->numberOfNodes); + ////////////////////////////////////////////////////////////////////////// + } } @@ -99,65 +99,65 @@ void calc2ndMoments(Parameter* para, CudaMemoryManager* cudaMemoryManager) void alloc3rdMoments(Parameter* para, CudaMemoryManager* cudaMemoryManager) { - for (int lev=para->getCoarse(); lev <= para->getFine(); lev++) - { - ////////////////////////////////////////////////////////////////////////// - //allocation (device-memory + host-memory) - cudaMemoryManager->cudaAlloc3rdMoments(lev, para->getParH(lev)->numberOfNodes); - ////////////////////////////////////////////////////////////////////////// - } + for (int lev=para->getCoarse(); lev <= para->getFine(); lev++) + { + ////////////////////////////////////////////////////////////////////////// + //allocation (device-memory + host-memory) + cudaMemoryManager->cudaAlloc3rdMoments(lev, para->getParH(lev)->numberOfNodes); + ////////////////////////////////////////////////////////////////////////// + } } void init3rdMoments(Parameter* para) { - for (int lev=para->getCoarse(); lev <= para->getFine(); lev++) - { - ////////////////////////////////////////////////////////////////////////// - //init host arrays - for (size_t pos = 0; pos < para->getParH(lev)->numberOfNodes; pos++) - { - para->getParH(lev)->CUMbbb[pos] = 0.0; - para->getParH(lev)->CUMabc[pos] = 0.0; - para->getParH(lev)->CUMbac[pos] = 0.0; - para->getParH(lev)->CUMbca[pos] = 0.0; - para->getParH(lev)->CUMcba[pos] = 0.0; - para->getParH(lev)->CUMacb[pos] = 0.0; - para->getParH(lev)->CUMcab[pos] = 0.0; - } - ////////////////////////////////////////////////////////////////////////// - } + for (int lev=para->getCoarse(); lev <= para->getFine(); lev++) + { + ////////////////////////////////////////////////////////////////////////// + //init host arrays + for (size_t pos = 0; pos < para->getParH(lev)->numberOfNodes; pos++) + { + para->getParH(lev)->CUMbbb[pos] = 0.0; + para->getParH(lev)->CUMabc[pos] = 0.0; + para->getParH(lev)->CUMbac[pos] = 0.0; + para->getParH(lev)->CUMbca[pos] = 0.0; + para->getParH(lev)->CUMcba[pos] = 0.0; + para->getParH(lev)->CUMacb[pos] = 0.0; + para->getParH(lev)->CUMcab[pos] = 0.0; + } + ////////////////////////////////////////////////////////////////////////// + } } void calc3rdMoments(Parameter* para, CudaMemoryManager* cudaMemoryManager) { - for (int lev=para->getCoarse(); lev <= para->getFine(); lev++) - { - ////////////////////////////////////////////////////////////////////////// - //calc 2nd Moments on device - Calc3rdMomentsCompSP27( para->getParD(lev)->CUMbbb, - para->getParD(lev)->CUMabc, - para->getParD(lev)->CUMbac, - para->getParD(lev)->CUMbca, - para->getParD(lev)->CUMcba, - para->getParD(lev)->CUMacb, - para->getParD(lev)->CUMcab, - para->getParD(lev)->typeOfGridNode, - para->getParD(lev)->neighborX, - para->getParD(lev)->neighborY, - para->getParD(lev)->neighborZ, - para->getParD(lev)->numberOfNodes, - para->getParD(lev)->numberofthreads, - para->getParD(lev)->distributions.f[0], - para->getParD(lev)->isEvenTimestep); - ////////////////////////////////////////////////////////////////////////// - //copy results to host - cudaMemoryManager->cudaCopy3rdMoments(lev, para->getParH(lev)->numberOfNodes); - ////////////////////////////////////////////////////////////////////////// - } + for (int lev=para->getCoarse(); lev <= para->getFine(); lev++) + { + ////////////////////////////////////////////////////////////////////////// + //calc 2nd Moments on device + Calc3rdMomentsCompSP27( para->getParD(lev)->CUMbbb, + para->getParD(lev)->CUMabc, + para->getParD(lev)->CUMbac, + para->getParD(lev)->CUMbca, + para->getParD(lev)->CUMcba, + para->getParD(lev)->CUMacb, + para->getParD(lev)->CUMcab, + para->getParD(lev)->typeOfGridNode, + para->getParD(lev)->neighborX, + para->getParD(lev)->neighborY, + para->getParD(lev)->neighborZ, + para->getParD(lev)->numberOfNodes, + para->getParD(lev)->numberofthreads, + para->getParD(lev)->distributions.f[0], + para->getParD(lev)->isEvenTimestep); + ////////////////////////////////////////////////////////////////////////// + //copy results to host + cudaMemoryManager->cudaCopy3rdMoments(lev, para->getParH(lev)->numberOfNodes); + ////////////////////////////////////////////////////////////////////////// + } } @@ -198,69 +198,69 @@ void calc3rdMoments(Parameter* para, CudaMemoryManager* cudaMemoryManager) void allocHigherOrderMoments(Parameter* para, CudaMemoryManager* cudaMemoryManager) { - for (int lev = para->getCoarse(); lev <= para->getFine(); lev++) - { - ////////////////////////////////////////////////////////////////////////// - //allocation (device-memory + host-memory) - cudaMemoryManager->cudaAllocHigherMoments(lev, para->getParH(lev)->numberOfNodes); - ////////////////////////////////////////////////////////////////////////// - } + for (int lev = para->getCoarse(); lev <= para->getFine(); lev++) + { + ////////////////////////////////////////////////////////////////////////// + //allocation (device-memory + host-memory) + cudaMemoryManager->cudaAllocHigherMoments(lev, para->getParH(lev)->numberOfNodes); + ////////////////////////////////////////////////////////////////////////// + } } void initHigherOrderMoments(Parameter* para) { - for (int lev = para->getCoarse(); lev <= para->getFine(); lev++) - { - ////////////////////////////////////////////////////////////////////////// - //init host arrays - for (size_t pos = 0; pos < para->getParH(lev)->numberOfNodes; pos++) - { - para->getParH(lev)->CUMcbb[pos] = 0.0; - para->getParH(lev)->CUMbcb[pos] = 0.0; - para->getParH(lev)->CUMbbc[pos] = 0.0; - para->getParH(lev)->CUMcca[pos] = 0.0; - para->getParH(lev)->CUMcac[pos] = 0.0; - para->getParH(lev)->CUMacc[pos] = 0.0; - para->getParH(lev)->CUMbcc[pos] = 0.0; - para->getParH(lev)->CUMcbc[pos] = 0.0; - para->getParH(lev)->CUMccb[pos] = 0.0; - para->getParH(lev)->CUMccc[pos] = 0.0; - } - ////////////////////////////////////////////////////////////////////////// - } + for (int lev = para->getCoarse(); lev <= para->getFine(); lev++) + { + ////////////////////////////////////////////////////////////////////////// + //init host arrays + for (size_t pos = 0; pos < para->getParH(lev)->numberOfNodes; pos++) + { + para->getParH(lev)->CUMcbb[pos] = 0.0; + para->getParH(lev)->CUMbcb[pos] = 0.0; + para->getParH(lev)->CUMbbc[pos] = 0.0; + para->getParH(lev)->CUMcca[pos] = 0.0; + para->getParH(lev)->CUMcac[pos] = 0.0; + para->getParH(lev)->CUMacc[pos] = 0.0; + para->getParH(lev)->CUMbcc[pos] = 0.0; + para->getParH(lev)->CUMcbc[pos] = 0.0; + para->getParH(lev)->CUMccb[pos] = 0.0; + para->getParH(lev)->CUMccc[pos] = 0.0; + } + ////////////////////////////////////////////////////////////////////////// + } } void calcHigherOrderMoments(Parameter* para, CudaMemoryManager* cudaMemoryManager) { - for (int lev=para->getCoarse(); lev <= para->getFine(); lev++) - { - ////////////////////////////////////////////////////////////////////////// - //calc 2nd Moments on device - CalcHigherMomentsCompSP27( para->getParD(lev)->CUMcbb, - para->getParD(lev)->CUMbcb, - para->getParD(lev)->CUMbbc, - para->getParD(lev)->CUMcca, - para->getParD(lev)->CUMcac, - para->getParD(lev)->CUMacc, - para->getParD(lev)->CUMbcc, - para->getParD(lev)->CUMcbc, - para->getParD(lev)->CUMccb, - para->getParD(lev)->CUMccc, - para->getParD(lev)->typeOfGridNode, - para->getParD(lev)->neighborX, - para->getParD(lev)->neighborY, - para->getParD(lev)->neighborZ, - para->getParD(lev)->numberOfNodes, - para->getParD(lev)->numberofthreads, - para->getParD(lev)->distributions.f[0], - para->getParD(lev)->isEvenTimestep); - ////////////////////////////////////////////////////////////////////////// - //copy results to host - cudaMemoryManager->cudaCopyHigherMoments(lev, para->getParH(lev)->numberOfNodes); - ////////////////////////////////////////////////////////////////////////// - } + for (int lev=para->getCoarse(); lev <= para->getFine(); lev++) + { + ////////////////////////////////////////////////////////////////////////// + //calc 2nd Moments on device + CalcHigherMomentsCompSP27( para->getParD(lev)->CUMcbb, + para->getParD(lev)->CUMbcb, + para->getParD(lev)->CUMbbc, + para->getParD(lev)->CUMcca, + para->getParD(lev)->CUMcac, + para->getParD(lev)->CUMacc, + para->getParD(lev)->CUMbcc, + para->getParD(lev)->CUMcbc, + para->getParD(lev)->CUMccb, + para->getParD(lev)->CUMccc, + para->getParD(lev)->typeOfGridNode, + para->getParD(lev)->neighborX, + para->getParD(lev)->neighborY, + para->getParD(lev)->neighborZ, + para->getParD(lev)->numberOfNodes, + para->getParD(lev)->numberofthreads, + para->getParD(lev)->distributions.f[0], + para->getParD(lev)->isEvenTimestep); + ////////////////////////////////////////////////////////////////////////// + //copy results to host + cudaMemoryManager->cudaCopyHigherMoments(lev, para->getParH(lev)->numberOfNodes); + ////////////////////////////////////////////////////////////////////////// + } } diff --git a/src/gpu/core/Calculation/CalcMedian.cpp b/src/gpu/core/Calculation/CalcMedian.cpp index 80a667f91976b745b619fed5d5763b5429a6559c..f2056c24c6baffa5b227a111bd66d7dbf815e373 100644 --- a/src/gpu/core/Calculation/CalcMedian.cpp +++ b/src/gpu/core/Calculation/CalcMedian.cpp @@ -11,18 +11,18 @@ void allocMedian(Parameter* para, CudaMemoryManager* cudaMemoryManager) { - for (int lev = para->getCoarse(); lev <= para->getFine(); lev++) - { - cudaMemoryManager->cudaAllocMedianOut(lev); - for (size_t pos = 0; pos < para->getParH(lev)->numberOfNodes; pos++) - { - para->getParH(lev)->vx_SP_Med_Out[pos] = (real)0.0; - para->getParH(lev)->vy_SP_Med_Out[pos] = (real)0.0; - para->getParH(lev)->vz_SP_Med_Out[pos] = (real)0.0; - para->getParH(lev)->rho_SP_Med_Out[pos] = (real)0.0; - para->getParH(lev)->press_SP_Med_Out[pos] = (real)0.0; - } - } + for (int lev = para->getCoarse(); lev <= para->getFine(); lev++) + { + cudaMemoryManager->cudaAllocMedianOut(lev); + for (size_t pos = 0; pos < para->getParH(lev)->numberOfNodes; pos++) + { + para->getParH(lev)->vx_SP_Med_Out[pos] = (real)0.0; + para->getParH(lev)->vy_SP_Med_Out[pos] = (real)0.0; + para->getParH(lev)->vz_SP_Med_Out[pos] = (real)0.0; + para->getParH(lev)->rho_SP_Med_Out[pos] = (real)0.0; + para->getParH(lev)->press_SP_Med_Out[pos] = (real)0.0; + } + } } @@ -31,17 +31,17 @@ void allocMedian(Parameter* para, CudaMemoryManager* cudaMemoryManager) void calcMedian(Parameter* para, uint tdiff) { - for (int lev = para->getCoarse(); lev <= para->getFine(); lev++) - { + for (int lev = para->getCoarse(); lev <= para->getFine(); lev++) + { for (size_t pos = 0; pos < para->getParH(lev)->numberOfNodes; pos++) - { - para->getParH(lev)->vx_SP_Med_Out[pos] = para->getParH(lev)->vx_SP_Med[pos] / (real)tdiff; - para->getParH(lev)->vy_SP_Med_Out[pos] = para->getParH(lev)->vy_SP_Med[pos] / (real)tdiff; - para->getParH(lev)->vz_SP_Med_Out[pos] = para->getParH(lev)->vz_SP_Med[pos] / (real)tdiff; - para->getParH(lev)->rho_SP_Med_Out[pos] = para->getParH(lev)->rho_SP_Med[pos] / (real)tdiff; - para->getParH(lev)->press_SP_Med_Out[pos] = para->getParH(lev)->press_SP_Med[pos]/ (real)tdiff; - } - } + { + para->getParH(lev)->vx_SP_Med_Out[pos] = para->getParH(lev)->vx_SP_Med[pos] / (real)tdiff; + para->getParH(lev)->vy_SP_Med_Out[pos] = para->getParH(lev)->vy_SP_Med[pos] / (real)tdiff; + para->getParH(lev)->vz_SP_Med_Out[pos] = para->getParH(lev)->vz_SP_Med[pos] / (real)tdiff; + para->getParH(lev)->rho_SP_Med_Out[pos] = para->getParH(lev)->rho_SP_Med[pos] / (real)tdiff; + para->getParH(lev)->press_SP_Med_Out[pos] = para->getParH(lev)->press_SP_Med[pos]/ (real)tdiff; + } + } } @@ -50,19 +50,19 @@ void calcMedian(Parameter* para, uint tdiff) void resetMedian(Parameter* para) { - for (int lev = para->getCoarse(); lev <= para->getFine(); lev++) - { - ResetMedianValuesSP27( - para->getParD(lev)->vx_SP_Med, - para->getParD(lev)->vy_SP_Med, - para->getParD(lev)->vz_SP_Med, - para->getParD(lev)->rho_SP_Med, - para->getParD(lev)->press_SP_Med, - para->getParD(lev)->numberOfNodes, - para->getParD(lev)->numberofthreads, - para->getParD(lev)->isEvenTimestep); - getLastCudaError("ResetMedianValuesSP27 execution failed"); - } + for (int lev = para->getCoarse(); lev <= para->getFine(); lev++) + { + ResetMedianValuesSP27( + para->getParD(lev)->vx_SP_Med, + para->getParD(lev)->vy_SP_Med, + para->getParD(lev)->vz_SP_Med, + para->getParD(lev)->rho_SP_Med, + para->getParD(lev)->press_SP_Med, + para->getParD(lev)->numberOfNodes, + para->getParD(lev)->numberofthreads, + para->getParD(lev)->isEvenTimestep); + getLastCudaError("ResetMedianValuesSP27 execution failed"); + } } @@ -72,19 +72,19 @@ void resetMedian(Parameter* para) //Advection-Diffusion void allocMedianAD(Parameter* para, CudaMemoryManager* cudaMemoryManager) { - for (int lev = para->getCoarse(); lev <= para->getFine(); lev++) - { + for (int lev = para->getCoarse(); lev <= para->getFine(); lev++) + { cudaMemoryManager->cudaAllocMedianOutAD(lev); - for (size_t pos = 0; pos < para->getParH(lev)->numberOfNodes; pos++) - { - para->getParH(lev)->vx_SP_Med_Out[pos] = (real)0.0; - para->getParH(lev)->vy_SP_Med_Out[pos] = (real)0.0; - para->getParH(lev)->vz_SP_Med_Out[pos] = (real)0.0; - para->getParH(lev)->rho_SP_Med_Out[pos] = (real)0.0; - para->getParH(lev)->press_SP_Med_Out[pos] = (real)0.0; - para->getParH(lev)->Conc_Med_Out[pos] = (real)0.0; - } - } + for (size_t pos = 0; pos < para->getParH(lev)->numberOfNodes; pos++) + { + para->getParH(lev)->vx_SP_Med_Out[pos] = (real)0.0; + para->getParH(lev)->vy_SP_Med_Out[pos] = (real)0.0; + para->getParH(lev)->vz_SP_Med_Out[pos] = (real)0.0; + para->getParH(lev)->rho_SP_Med_Out[pos] = (real)0.0; + para->getParH(lev)->press_SP_Med_Out[pos] = (real)0.0; + para->getParH(lev)->Conc_Med_Out[pos] = (real)0.0; + } + } } @@ -93,18 +93,18 @@ void allocMedianAD(Parameter* para, CudaMemoryManager* cudaMemoryManager) void calcMedianAD(Parameter* para, uint tdiff) { - for (int lev = para->getCoarse(); lev <= para->getFine(); lev++) - { - for (size_t pos = 0; pos < para->getParH(lev)->numberOfNodes; pos++) - { - para->getParH(lev)->vx_SP_Med_Out[pos] = para->getParH(lev)->vx_SP_Med[pos] / (real)tdiff; - para->getParH(lev)->vy_SP_Med_Out[pos] = para->getParH(lev)->vy_SP_Med[pos] / (real)tdiff; - para->getParH(lev)->vz_SP_Med_Out[pos] = para->getParH(lev)->vz_SP_Med[pos] / (real)tdiff; - para->getParH(lev)->rho_SP_Med_Out[pos] = para->getParH(lev)->rho_SP_Med[pos] / (real)tdiff; - para->getParH(lev)->press_SP_Med_Out[pos] = para->getParH(lev)->press_SP_Med[pos] / (real)tdiff; - para->getParH(lev)->Conc_Med_Out[pos] = para->getParH(lev)->Conc_Med[pos] / (real)tdiff; - } - } + for (int lev = para->getCoarse(); lev <= para->getFine(); lev++) + { + for (size_t pos = 0; pos < para->getParH(lev)->numberOfNodes; pos++) + { + para->getParH(lev)->vx_SP_Med_Out[pos] = para->getParH(lev)->vx_SP_Med[pos] / (real)tdiff; + para->getParH(lev)->vy_SP_Med_Out[pos] = para->getParH(lev)->vy_SP_Med[pos] / (real)tdiff; + para->getParH(lev)->vz_SP_Med_Out[pos] = para->getParH(lev)->vz_SP_Med[pos] / (real)tdiff; + para->getParH(lev)->rho_SP_Med_Out[pos] = para->getParH(lev)->rho_SP_Med[pos] / (real)tdiff; + para->getParH(lev)->press_SP_Med_Out[pos] = para->getParH(lev)->press_SP_Med[pos] / (real)tdiff; + para->getParH(lev)->Conc_Med_Out[pos] = para->getParH(lev)->Conc_Med[pos] / (real)tdiff; + } + } } @@ -113,20 +113,20 @@ void calcMedianAD(Parameter* para, uint tdiff) void resetMedianAD(Parameter* para) { - for (int lev = para->getCoarse(); lev <= para->getFine(); lev++) - { - ResetMedianValuesAD27( - para->getParD(lev)->vx_SP_Med, - para->getParD(lev)->vy_SP_Med, - para->getParD(lev)->vz_SP_Med, - para->getParD(lev)->rho_SP_Med, - para->getParD(lev)->press_SP_Med, - para->getParD(lev)->Conc_Med, - para->getParD(lev)->numberOfNodes, - para->getParD(lev)->numberofthreads, - para->getParD(lev)->isEvenTimestep); - getLastCudaError("ResetMedianValuesSP27 execution failed"); - } + for (int lev = para->getCoarse(); lev <= para->getFine(); lev++) + { + ResetMedianValuesAD27( + para->getParD(lev)->vx_SP_Med, + para->getParD(lev)->vy_SP_Med, + para->getParD(lev)->vz_SP_Med, + para->getParD(lev)->rho_SP_Med, + para->getParD(lev)->press_SP_Med, + para->getParD(lev)->Conc_Med, + para->getParD(lev)->numberOfNodes, + para->getParD(lev)->numberofthreads, + para->getParD(lev)->isEvenTimestep); + getLastCudaError("ResetMedianValuesSP27 execution failed"); + } } diff --git a/src/gpu/core/Calculation/Cp.cpp b/src/gpu/core/Calculation/Cp.cpp index 2bb2bd943f6f24a8b904f949a43e75426e497ba1..8cd8aefe9dd3ae51db6523f04290703f4cc49d6f 100644 --- a/src/gpu/core/Calculation/Cp.cpp +++ b/src/gpu/core/Calculation/Cp.cpp @@ -19,185 +19,185 @@ using namespace std; void calcCp(Parameter* para, CudaMemoryManager* cudaMemoryManager, int lev) { - ////////////////////////////////////////////////////////////////////////// - //copy to host - cudaMemoryManager->cudaCopyCpTop(lev); - cudaMemoryManager->cudaCopyCpBottom(lev); - cudaMemoryManager->cudaCopyCpBottom2(lev); - ////////////////////////////////////////////////////////////////////////// - //Parameter - double rhoSI = 1.204; // kg/m^3 - double veloSI = (double)para->getVelocity() * (double)para->getVelocityRatio(); // m/s - double pressSI; - double cp; - std::vector< double > cpTopRow; - std::vector< double > cpBottomRow; - std::vector< double > cpBottom2Row; - ////////////////////////////////////////////////////////////////////////// - //calc cp top - for (unsigned int it = 0; it < para->getParH((int)lev)->numberOfPointsCpTop; it++) - { - pressSI = (double)(para->getParH((int)lev)->cpPressTop[it] / (double)3.0 * (double)para->getDensityRatio() * (double)para->getVelocityRatio() * (double)para->getVelocityRatio()); - cp = (double) (pressSI / (0.5 * rhoSI * veloSI * veloSI)); - cpTopRow.push_back(cp); - } - para->getParH((int)lev)->cpTop.push_back(cpTopRow); - ////////////////////////////////////////////////////////////////////////// - //calc cp bottom - for (uint it = 0; it < para->getParH((int)lev)->numberOfPointsCpBottom; it++) - { - pressSI = (double)(para->getParH((int)lev)->cpPressBottom[it] / (double)3.0 * (double)para->getDensityRatio() * (double)para->getVelocityRatio() * (double)para->getVelocityRatio()); - cp = (double) (pressSI / (0.5 * rhoSI * veloSI * veloSI)); - cpBottomRow.push_back(cp); - } - para->getParH((int)lev)->cpBottom.push_back(cpBottomRow); - ////////////////////////////////////////////////////////////////////////// - //calc cp bottom 2 - for (uint it = 0; it < para->getParH((int)lev)->numberOfPointsCpBottom2; it++) - { - pressSI = (double)(para->getParH((int)lev)->cpPressBottom2[it] / (double)3.0 * (double)para->getDensityRatio() * (double)para->getVelocityRatio() * (double)para->getVelocityRatio()); - cp = (double) (pressSI / (0.5 * rhoSI * veloSI * veloSI)); - cpBottom2Row.push_back(cp); - } - para->getParH((int)lev)->cpBottom2.push_back(cpBottom2Row); - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// + //copy to host + cudaMemoryManager->cudaCopyCpTop(lev); + cudaMemoryManager->cudaCopyCpBottom(lev); + cudaMemoryManager->cudaCopyCpBottom2(lev); + ////////////////////////////////////////////////////////////////////////// + //Parameter + double rhoSI = 1.204; // kg/m^3 + double veloSI = (double)para->getVelocity() * (double)para->getVelocityRatio(); // m/s + double pressSI; + double cp; + std::vector< double > cpTopRow; + std::vector< double > cpBottomRow; + std::vector< double > cpBottom2Row; + ////////////////////////////////////////////////////////////////////////// + //calc cp top + for (unsigned int it = 0; it < para->getParH((int)lev)->numberOfPointsCpTop; it++) + { + pressSI = (double)(para->getParH((int)lev)->cpPressTop[it] / (double)3.0 * (double)para->getDensityRatio() * (double)para->getVelocityRatio() * (double)para->getVelocityRatio()); + cp = (double) (pressSI / (0.5 * rhoSI * veloSI * veloSI)); + cpTopRow.push_back(cp); + } + para->getParH((int)lev)->cpTop.push_back(cpTopRow); + ////////////////////////////////////////////////////////////////////////// + //calc cp bottom + for (uint it = 0; it < para->getParH((int)lev)->numberOfPointsCpBottom; it++) + { + pressSI = (double)(para->getParH((int)lev)->cpPressBottom[it] / (double)3.0 * (double)para->getDensityRatio() * (double)para->getVelocityRatio() * (double)para->getVelocityRatio()); + cp = (double) (pressSI / (0.5 * rhoSI * veloSI * veloSI)); + cpBottomRow.push_back(cp); + } + para->getParH((int)lev)->cpBottom.push_back(cpBottomRow); + ////////////////////////////////////////////////////////////////////////// + //calc cp bottom 2 + for (uint it = 0; it < para->getParH((int)lev)->numberOfPointsCpBottom2; it++) + { + pressSI = (double)(para->getParH((int)lev)->cpPressBottom2[it] / (double)3.0 * (double)para->getDensityRatio() * (double)para->getVelocityRatio() * (double)para->getVelocityRatio()); + cp = (double) (pressSI / (0.5 * rhoSI * veloSI * veloSI)); + cpBottom2Row.push_back(cp); + } + para->getParH((int)lev)->cpBottom2.push_back(cpBottom2Row); + ////////////////////////////////////////////////////////////////////////// } void printCpTopIntermediateStep(Parameter* para, unsigned int t, int lev) { - ////////////////////////////////////////////////////////////////////////// - //set filename - std::string ffname = para->getFName() + StringUtil::toString<int>(para->getMyProcessID()) + "_" + StringUtil::toString<int>(t) + "_cp_top.txt"; - const char* fname = ffname.c_str(); - ////////////////////////////////////////////////////////////////////////// - //set ofstream - std::ofstream ostr; - ////////////////////////////////////////////////////////////////////////// - //open file - ostr.open(fname); - ////////////////////////////////////////////////////////////////////////// - //fill file with data - for (vector< vector<double> >::const_iterator i = para->getParH((int)lev)->cpTop.begin(); i != para->getParH((int)lev)->cpTop.end(); ++i) - { - for (vector<double>::const_iterator j = i->begin(); j != i->end(); ++j) - { - ostr << *j << " "; - } - ostr << endl; - } - ////////////////////////////////////////////////////////////////////////// - //close file - ostr.close(); - ////////////////////////////////////////////////////////////////////////// - para->getParH((int)lev)->cpTop.clear(); - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// + //set filename + std::string ffname = para->getFName() + StringUtil::toString<int>(para->getMyProcessID()) + "_" + StringUtil::toString<int>(t) + "_cp_top.txt"; + const char* fname = ffname.c_str(); + ////////////////////////////////////////////////////////////////////////// + //set ofstream + std::ofstream ostr; + ////////////////////////////////////////////////////////////////////////// + //open file + ostr.open(fname); + ////////////////////////////////////////////////////////////////////////// + //fill file with data + for (vector< vector<double> >::const_iterator i = para->getParH((int)lev)->cpTop.begin(); i != para->getParH((int)lev)->cpTop.end(); ++i) + { + for (vector<double>::const_iterator j = i->begin(); j != i->end(); ++j) + { + ostr << *j << " "; + } + ostr << endl; + } + ////////////////////////////////////////////////////////////////////////// + //close file + ostr.close(); + ////////////////////////////////////////////////////////////////////////// + para->getParH((int)lev)->cpTop.clear(); + ////////////////////////////////////////////////////////////////////////// } void printCpTop(Parameter* para, CudaMemoryManager* cudaMemoryManager, int lev) { - ////////////////////////////////////////////////////////////////////////// - //set filename - std::string ffname = para->getFName()+StringUtil::toString<int>(para->getMyProcessID())+"_cp_top.txt"; - const char* fname = ffname.c_str(); - ////////////////////////////////////////////////////////////////////////// - //set ofstream - ofstream ostr; - ////////////////////////////////////////////////////////////////////////// - //open file - ostr.open(fname); - ////////////////////////////////////////////////////////////////////////// - //fill file with data - for (vector< vector<double> >::const_iterator i = para->getParH((int)lev)->cpTop.begin() ; i != para->getParH((int)lev)->cpTop.end(); ++i) - { - for (vector<double>::const_iterator j=i->begin(); j!=i->end(); ++j) - { - ostr << *j << " "; - } - ostr << endl; - } - ////////////////////////////////////////////////////////////////////////// - //close file - ostr.close(); - ////////////////////////////////////////////////////////////////////////// - para->getParH((int)lev)->cpTop.clear(); - cudaMemoryManager->cudaFreeCpTop(lev); - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// + //set filename + std::string ffname = para->getFName()+StringUtil::toString<int>(para->getMyProcessID())+"_cp_top.txt"; + const char* fname = ffname.c_str(); + ////////////////////////////////////////////////////////////////////////// + //set ofstream + ofstream ostr; + ////////////////////////////////////////////////////////////////////////// + //open file + ostr.open(fname); + ////////////////////////////////////////////////////////////////////////// + //fill file with data + for (vector< vector<double> >::const_iterator i = para->getParH((int)lev)->cpTop.begin() ; i != para->getParH((int)lev)->cpTop.end(); ++i) + { + for (vector<double>::const_iterator j=i->begin(); j!=i->end(); ++j) + { + ostr << *j << " "; + } + ostr << endl; + } + ////////////////////////////////////////////////////////////////////////// + //close file + ostr.close(); + ////////////////////////////////////////////////////////////////////////// + para->getParH((int)lev)->cpTop.clear(); + cudaMemoryManager->cudaFreeCpTop(lev); + ////////////////////////////////////////////////////////////////////////// } void printCpBottom(Parameter* para, CudaMemoryManager* cudaMemoryManager) { - ////////////////////////////////////////////////////////////////////////// - //set level - int lev = para->getMaxLevel(); - ////////////////////////////////////////////////////////////////////////// - //set filename - std::string ffname = para->getFName()+StringUtil::toString<int>(para->getMyProcessID())+"_cp_bottom.txt"; - const char* fname = ffname.c_str(); - ////////////////////////////////////////////////////////////////////////// - //set ofstream - ofstream ostr; - ////////////////////////////////////////////////////////////////////////// - //open file - ostr.open(fname); - ////////////////////////////////////////////////////////////////////////// - //fill file with data - for (vector< vector<double> >::const_iterator i = para->getParH((int)lev)->cpBottom.begin() ; i != para->getParH((int)lev)->cpBottom.end(); ++i) - { - for (vector<double>::const_iterator j=i->begin(); j!=i->end(); ++j) - { - ostr << *j << " "; - } - ostr << endl; - } - ////////////////////////////////////////////////////////////////////////// - //close file - ostr.close(); - ////////////////////////////////////////////////////////////////////////// - para->getParH((int)lev)->cpBottom.clear(); - cudaMemoryManager->cudaFreeCpBottom(lev); - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// + //set level + int lev = para->getMaxLevel(); + ////////////////////////////////////////////////////////////////////////// + //set filename + std::string ffname = para->getFName()+StringUtil::toString<int>(para->getMyProcessID())+"_cp_bottom.txt"; + const char* fname = ffname.c_str(); + ////////////////////////////////////////////////////////////////////////// + //set ofstream + ofstream ostr; + ////////////////////////////////////////////////////////////////////////// + //open file + ostr.open(fname); + ////////////////////////////////////////////////////////////////////////// + //fill file with data + for (vector< vector<double> >::const_iterator i = para->getParH((int)lev)->cpBottom.begin() ; i != para->getParH((int)lev)->cpBottom.end(); ++i) + { + for (vector<double>::const_iterator j=i->begin(); j!=i->end(); ++j) + { + ostr << *j << " "; + } + ostr << endl; + } + ////////////////////////////////////////////////////////////////////////// + //close file + ostr.close(); + ////////////////////////////////////////////////////////////////////////// + para->getParH((int)lev)->cpBottom.clear(); + cudaMemoryManager->cudaFreeCpBottom(lev); + ////////////////////////////////////////////////////////////////////////// } void printCpBottom2(Parameter* para, CudaMemoryManager* cudaMemoryManager) { - ////////////////////////////////////////////////////////////////////////// - //set level - int lev = para->getMaxLevel(); - ////////////////////////////////////////////////////////////////////////// - //set filename - std::string ffname = para->getFName()+StringUtil::toString<int>(para->getMyProcessID())+"_cp_bottom2.txt"; - const char* fname = ffname.c_str(); - ////////////////////////////////////////////////////////////////////////// - //set ofstream - ofstream ostr; - ////////////////////////////////////////////////////////////////////////// - //open file - ostr.open(fname); - ////////////////////////////////////////////////////////////////////////// - //fill file with data - for (vector< vector<double> >::const_iterator i = para->getParH((int)lev)->cpBottom2.begin() ; i != para->getParH((int)lev)->cpBottom2.end(); ++i) - { - for (vector<double>::const_iterator j=i->begin(); j!=i->end(); ++j) - { - ostr << *j << " "; - } - ostr << endl; - } - ////////////////////////////////////////////////////////////////////////// - //close file - ostr.close(); - ////////////////////////////////////////////////////////////////////////// - para->getParH((int)lev)->cpBottom2.clear(); - cudaMemoryManager->cudaFreeCpBottom2(lev); - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// + //set level + int lev = para->getMaxLevel(); + ////////////////////////////////////////////////////////////////////////// + //set filename + std::string ffname = para->getFName()+StringUtil::toString<int>(para->getMyProcessID())+"_cp_bottom2.txt"; + const char* fname = ffname.c_str(); + ////////////////////////////////////////////////////////////////////////// + //set ofstream + ofstream ostr; + ////////////////////////////////////////////////////////////////////////// + //open file + ostr.open(fname); + ////////////////////////////////////////////////////////////////////////// + //fill file with data + for (vector< vector<double> >::const_iterator i = para->getParH((int)lev)->cpBottom2.begin() ; i != para->getParH((int)lev)->cpBottom2.end(); ++i) + { + for (vector<double>::const_iterator j=i->begin(); j!=i->end(); ++j) + { + ostr << *j << " "; + } + ostr << endl; + } + ////////////////////////////////////////////////////////////////////////// + //close file + ostr.close(); + ////////////////////////////////////////////////////////////////////////// + para->getParH((int)lev)->cpBottom2.clear(); + cudaMemoryManager->cudaFreeCpBottom2(lev); + ////////////////////////////////////////////////////////////////////////// } @@ -223,86 +223,86 @@ void printCpBottom2(Parameter* para, CudaMemoryManager* cudaMemoryManager) void excludeGridInterfaceNodesForMirror(Parameter* para, int lev) { - bool tempBool = true; - para->getParH((int)lev)->numberOfPointsPressWindow = 0; - para->getParH(lev + 1)->numberOfPointsPressWindow = 0; - ////////////////////////////////////////////////////////////////////////// - //define bool vector for nodes outside the interface - for (unsigned int it = 0; it < para->getParH(lev + 1)->numberOfPointsCpTop; it++) - { + bool tempBool = true; + para->getParH((int)lev)->numberOfPointsPressWindow = 0; + para->getParH(lev + 1)->numberOfPointsPressWindow = 0; + ////////////////////////////////////////////////////////////////////////// + //define bool vector for nodes outside the interface + for (unsigned int it = 0; it < para->getParH(lev + 1)->numberOfPointsCpTop; it++) + { for (unsigned int ifit = 0; ifit < para->getParH((int)lev)->coarseToFine.numberOfCells; ifit++) - { - if ((para->getParH(lev + 1)->cpTopIndex[it] == (int)para->getParH((int)lev)->coarseToFine.fineCellIndices[ifit]) || - (para->getParH(lev + 1)->cpTopIndex[it] == (int)para->getParH(lev + 1)->neighborX[para->getParH((int)lev)->coarseToFine.fineCellIndices[ifit]]) || - (para->getParH(lev + 1)->cpTopIndex[it] == (int)para->getParH(lev + 1)->neighborY[para->getParH((int)lev)->coarseToFine.fineCellIndices[ifit]]) || - (para->getParH(lev + 1)->cpTopIndex[it] == (int)para->getParH(lev + 1)->neighborZ[para->getParH((int)lev)->coarseToFine.fineCellIndices[ifit]]) || - (para->getParH(lev + 1)->cpTopIndex[it] == (int)para->getParH(lev + 1)->neighborY[para->getParH(lev + 1)->neighborX[para->getParH((int)lev)->coarseToFine.fineCellIndices[ifit]]]) || - (para->getParH(lev + 1)->cpTopIndex[it] == (int)para->getParH(lev + 1)->neighborZ[para->getParH(lev + 1)->neighborX[para->getParH((int)lev)->coarseToFine.fineCellIndices[ifit]]]) || - (para->getParH(lev + 1)->cpTopIndex[it] == (int)para->getParH(lev + 1)->neighborZ[para->getParH(lev + 1)->neighborY[para->getParH((int)lev)->coarseToFine.fineCellIndices[ifit]]]) || - (para->getParH(lev + 1)->cpTopIndex[it] == (int)para->getParH(lev + 1)->neighborZ[para->getParH(lev + 1)->neighborY[para->getParH(lev + 1)->neighborX[para->getParH((int)lev)->coarseToFine.fineCellIndices[ifit]]]])) - { - para->getParH(lev + 1)->isOutsideInterface.push_back(false); - tempBool = false; - break; - } - } - if (tempBool == true) - { - para->getParH(lev + 1)->isOutsideInterface.push_back(true); - para->getParH(lev + 1)->numberOfPointsPressWindow++; - } - tempBool = true; - } - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - for (unsigned int it = 0; it < para->getParH((int)lev)->numberOfPointsCpTop; it++) - { + { + if ((para->getParH(lev + 1)->cpTopIndex[it] == (int)para->getParH((int)lev)->coarseToFine.fineCellIndices[ifit]) || + (para->getParH(lev + 1)->cpTopIndex[it] == (int)para->getParH(lev + 1)->neighborX[para->getParH((int)lev)->coarseToFine.fineCellIndices[ifit]]) || + (para->getParH(lev + 1)->cpTopIndex[it] == (int)para->getParH(lev + 1)->neighborY[para->getParH((int)lev)->coarseToFine.fineCellIndices[ifit]]) || + (para->getParH(lev + 1)->cpTopIndex[it] == (int)para->getParH(lev + 1)->neighborZ[para->getParH((int)lev)->coarseToFine.fineCellIndices[ifit]]) || + (para->getParH(lev + 1)->cpTopIndex[it] == (int)para->getParH(lev + 1)->neighborY[para->getParH(lev + 1)->neighborX[para->getParH((int)lev)->coarseToFine.fineCellIndices[ifit]]]) || + (para->getParH(lev + 1)->cpTopIndex[it] == (int)para->getParH(lev + 1)->neighborZ[para->getParH(lev + 1)->neighborX[para->getParH((int)lev)->coarseToFine.fineCellIndices[ifit]]]) || + (para->getParH(lev + 1)->cpTopIndex[it] == (int)para->getParH(lev + 1)->neighborZ[para->getParH(lev + 1)->neighborY[para->getParH((int)lev)->coarseToFine.fineCellIndices[ifit]]]) || + (para->getParH(lev + 1)->cpTopIndex[it] == (int)para->getParH(lev + 1)->neighborZ[para->getParH(lev + 1)->neighborY[para->getParH(lev + 1)->neighborX[para->getParH((int)lev)->coarseToFine.fineCellIndices[ifit]]]])) + { + para->getParH(lev + 1)->isOutsideInterface.push_back(false); + tempBool = false; + break; + } + } + if (tempBool == true) + { + para->getParH(lev + 1)->isOutsideInterface.push_back(true); + para->getParH(lev + 1)->numberOfPointsPressWindow++; + } + tempBool = true; + } + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + for (unsigned int it = 0; it < para->getParH((int)lev)->numberOfPointsCpTop; it++) + { for (unsigned int ifit = 0; ifit < para->getParH((int)lev)->fineToCoarse.numberOfCells; ifit++) - { - if (para->getParH((int)lev)->cpTopIndex[it] == (int)para->getParH((int)lev)->fineToCoarse.coarseCellIndices[ifit]) - { - para->getParH((int)lev)->isOutsideInterface.push_back(false); - tempBool = false; - break; - } - } - if (tempBool == true) - { - para->getParH((int)lev)->isOutsideInterface.push_back(true); - para->getParH((int)lev)->numberOfPointsPressWindow++; - } - tempBool = true; - } - //////////////////////////////////////////////////////////////////////////// - std::cout << "number of nodes cp top level 7:" << para->getParH((int)lev)->numberOfPointsCpTop << endl; - std::cout << "number of nodes bool level 7:" << para->getParH((int)lev)->isOutsideInterface.size() << endl; - std::cout << "number of nodes press window level 7:" << para->getParH((int)lev)->numberOfPointsPressWindow << endl; - std::cout << "number of nodes cp top level 8:" << para->getParH(lev + 1)->numberOfPointsCpTop << endl; - std::cout << "number of nodes bool level 8:" << para->getParH(lev + 1)->isOutsideInterface.size() << endl; - std::cout << "number of nodes press window level 8:" << para->getParH(lev + 1)->numberOfPointsPressWindow << endl; + { + if (para->getParH((int)lev)->cpTopIndex[it] == (int)para->getParH((int)lev)->fineToCoarse.coarseCellIndices[ifit]) + { + para->getParH((int)lev)->isOutsideInterface.push_back(false); + tempBool = false; + break; + } + } + if (tempBool == true) + { + para->getParH((int)lev)->isOutsideInterface.push_back(true); + para->getParH((int)lev)->numberOfPointsPressWindow++; + } + tempBool = true; + } + //////////////////////////////////////////////////////////////////////////// + std::cout << "number of nodes cp top level 7:" << para->getParH((int)lev)->numberOfPointsCpTop << endl; + std::cout << "number of nodes bool level 7:" << para->getParH((int)lev)->isOutsideInterface.size() << endl; + std::cout << "number of nodes press window level 7:" << para->getParH((int)lev)->numberOfPointsPressWindow << endl; + std::cout << "number of nodes cp top level 8:" << para->getParH(lev + 1)->numberOfPointsCpTop << endl; + std::cout << "number of nodes bool level 8:" << para->getParH(lev + 1)->isOutsideInterface.size() << endl; + std::cout << "number of nodes press window level 8:" << para->getParH(lev + 1)->numberOfPointsPressWindow << endl; } void calcPressForMirror(Parameter* para, CudaMemoryManager* cudaMemoryManager, int lev) { - ////////////////////////////////////////////////////////////////////////// - //copy to host - cudaMemoryManager->cudaCopyCpTop(lev); - ////////////////////////////////////////////////////////////////////////// - //Parameter - double pressSI; - ////////////////////////////////////////////////////////////////////////// - //calc press - for (unsigned int it = 0; it < para->getParH((int)lev)->numberOfPointsCpTop; it++) - { - if (para->getParH((int)lev)->isOutsideInterface[it]) - { - pressSI = (double)(para->getParH((int)lev)->cpPressTop[it] / (double)3.0 * (double)para->getDensityRatio() * (double)para->getVelocityRatio() * (double)para->getVelocityRatio()); - para->getParH((int)lev)->pressMirror.push_back(pressSI); - } - } - //////////////////////////////////////////////////////////////////////////// - //std::cout << "number of nodes press mirror:" << para->getParH((int)lev)->pressMirror.size() << ", at level: " << lev << endl; + ////////////////////////////////////////////////////////////////////////// + //copy to host + cudaMemoryManager->cudaCopyCpTop(lev); + ////////////////////////////////////////////////////////////////////////// + //Parameter + double pressSI; + ////////////////////////////////////////////////////////////////////////// + //calc press + for (unsigned int it = 0; it < para->getParH((int)lev)->numberOfPointsCpTop; it++) + { + if (para->getParH((int)lev)->isOutsideInterface[it]) + { + pressSI = (double)(para->getParH((int)lev)->cpPressTop[it] / (double)3.0 * (double)para->getDensityRatio() * (double)para->getVelocityRatio() * (double)para->getVelocityRatio()); + para->getParH((int)lev)->pressMirror.push_back(pressSI); + } + } + //////////////////////////////////////////////////////////////////////////// + //std::cout << "number of nodes press mirror:" << para->getParH((int)lev)->pressMirror.size() << ", at level: " << lev << endl; } @@ -310,59 +310,59 @@ void calcPressForMirror(Parameter* para, CudaMemoryManager* cudaMemoryManager, i //Ensight Gold void printCaseFile(Parameter* para) { - ////////////////////////////////////////////////////////////////////////// - double deltaXcoarse = 0.256; // [m] - double deltat = (para->getVelocity() * deltaXcoarse) / (para->getVelocity() * para->getVelocityRatio()); - unsigned int numberOfSteps = (unsigned int)((para->getTimestepEnd() - para->getTimestepStartOut()) * pow(2,5) ); - //cout << "number of nodes:" << numberOfSteps << endl; - ////////////////////////////////////////////////////////////////////////// - //set filename - std::string ffname = para->getFName() + "_" + StringUtil::toString<int>(para->getMyProcessID()) + ".case"; - const char* fname = ffname.c_str(); - ////////////////////////////////////////////////////////////////////////// - //set filename geo - std::string ffnameGeo = para->getOutputPrefix() + "_" + StringUtil::toString<int>(para->getMyProcessID()) + ".geo"; - const char* fnameGeo = ffnameGeo.c_str(); - ////////////////////////////////////////////////////////////////////////// - //set filename scalar - std::string ffnameScalar = para->getOutputPrefix() + "_" + StringUtil::toString<int>(para->getMyProcessID()) + ".*****.p"; - const char* fnameScalar = ffnameScalar.c_str(); - ////////////////////////////////////////////////////////////////////////// - //set ofstream - ofstream ostr; - ////////////////////////////////////////////////////////////////////////// - //open file - ostr.open(fname); - ////////////////////////////////////////////////////////////////////////// - //fill file with data - ostr << "###########################################################" << std::endl; - ostr << "#### Casefile written by VirtualFluidsGPU" << std::endl; - ostr << "###########################################################" << std::endl << std::endl; - - ostr << "FORMAT " << std::endl; - ostr << "type: ensight gold" << std::endl << std::endl; - - ostr << "GEOMETRY " << std::endl; - ostr << "model: " << "Data/" << fnameGeo << std::endl << std::endl; - - ostr << "VARIABLE " << std::endl; - ostr << "scalar per element: 1 Pressure \t" << "Data/" << fnameScalar << std::endl << std::endl; - - ostr << "TIME " << std::endl; - ostr << "time set: 1" << std::endl; - ostr << "number of steps: " << numberOfSteps << "\n"; - ostr << "filename start number: 0" << std::endl; - ostr << "filename increment: 1" << std::endl; - ostr << "time values:" << std::endl; - ////////////////////////////////////////////////////////////////////////// - for (unsigned int t = 0; t < numberOfSteps; t++) - { - ostr << "\t" << t * deltat / (pow(2, 5)) << std::endl; - } - ////////////////////////////////////////////////////////////////////////// - //close file - ostr.close(); - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// + double deltaXcoarse = 0.256; // [m] + double deltat = (para->getVelocity() * deltaXcoarse) / (para->getVelocity() * para->getVelocityRatio()); + unsigned int numberOfSteps = (unsigned int)((para->getTimestepEnd() - para->getTimestepStartOut()) * pow(2,5) ); + //cout << "number of nodes:" << numberOfSteps << endl; + ////////////////////////////////////////////////////////////////////////// + //set filename + std::string ffname = para->getFName() + "_" + StringUtil::toString<int>(para->getMyProcessID()) + ".case"; + const char* fname = ffname.c_str(); + ////////////////////////////////////////////////////////////////////////// + //set filename geo + std::string ffnameGeo = para->getOutputPrefix() + "_" + StringUtil::toString<int>(para->getMyProcessID()) + ".geo"; + const char* fnameGeo = ffnameGeo.c_str(); + ////////////////////////////////////////////////////////////////////////// + //set filename scalar + std::string ffnameScalar = para->getOutputPrefix() + "_" + StringUtil::toString<int>(para->getMyProcessID()) + ".*****.p"; + const char* fnameScalar = ffnameScalar.c_str(); + ////////////////////////////////////////////////////////////////////////// + //set ofstream + ofstream ostr; + ////////////////////////////////////////////////////////////////////////// + //open file + ostr.open(fname); + ////////////////////////////////////////////////////////////////////////// + //fill file with data + ostr << "###########################################################" << std::endl; + ostr << "#### Casefile written by VirtualFluidsGPU" << std::endl; + ostr << "###########################################################" << std::endl << std::endl; + + ostr << "FORMAT " << std::endl; + ostr << "type: ensight gold" << std::endl << std::endl; + + ostr << "GEOMETRY " << std::endl; + ostr << "model: " << "Data/" << fnameGeo << std::endl << std::endl; + + ostr << "VARIABLE " << std::endl; + ostr << "scalar per element: 1 Pressure \t" << "Data/" << fnameScalar << std::endl << std::endl; + + ostr << "TIME " << std::endl; + ostr << "time set: 1" << std::endl; + ostr << "number of steps: " << numberOfSteps << "\n"; + ostr << "filename start number: 0" << std::endl; + ostr << "filename increment: 1" << std::endl; + ostr << "time values:" << std::endl; + ////////////////////////////////////////////////////////////////////////// + for (unsigned int t = 0; t < numberOfSteps; t++) + { + ostr << "\t" << t * deltat / (pow(2, 5)) << std::endl; + } + ////////////////////////////////////////////////////////////////////////// + //close file + ostr.close(); + ////////////////////////////////////////////////////////////////////////// } @@ -372,25 +372,25 @@ void printCaseFile(Parameter* para) void printGeoFile(Parameter* para, bool fileFormat) { - ////////////////////////////////////////////////////////////////////////// - //set filename geo - std::string ffnameGeo = para->getOutputPrefix() + "_" + StringUtil::toString<int>(para->getMyProcessID()); - const char* fnameGeo = ffnameGeo.c_str(); - ////////////////////////////////////////////////////////////////////////// - char fname[1024]; - sprintf(fname, "%s/Data/%s.geo", para->getOutputPath().c_str(), fnameGeo); - ////////////////////////////////////////////////////////////////////////// - size_t startlevel = para->getMaxLevel() - 1; - size_t endlevel = para->getMaxLevel(); - ////////////////////////////////////////////////////////////////////////// - unsigned int non = 0; - for (size_t lev = startlevel; lev <= endlevel; lev++) - { - non += para->getParH((int)lev)->numberOfPointsPressWindow; - } - ////////////////////////////////////////////////////////////////////////// - - if (!fileFormat) //ASCII + ////////////////////////////////////////////////////////////////////////// + //set filename geo + std::string ffnameGeo = para->getOutputPrefix() + "_" + StringUtil::toString<int>(para->getMyProcessID()); + const char* fnameGeo = ffnameGeo.c_str(); + ////////////////////////////////////////////////////////////////////////// + char fname[1024]; + sprintf(fname, "%s/Data/%s.geo", para->getOutputPath().c_str(), fnameGeo); + ////////////////////////////////////////////////////////////////////////// + size_t startlevel = para->getMaxLevel() - 1; + size_t endlevel = para->getMaxLevel(); + ////////////////////////////////////////////////////////////////////////// + unsigned int non = 0; + for (size_t lev = startlevel; lev <= endlevel; lev++) + { + non += para->getParH((int)lev)->numberOfPointsPressWindow; + } + ////////////////////////////////////////////////////////////////////////// + + if (!fileFormat) //ASCII { ////////////////////////////////////////////////////////////////////////// //set ofstream @@ -544,21 +544,21 @@ void printGeoFile(Parameter* para, bool fileFormat) void printScalars(Parameter* para, bool fileFormat) { - ////////////////////////////////////////////////////////////////////////// - //set filename scalar - std::string ffnameScalar = para->getOutputPrefix() + "_" + StringUtil::toString<int>(para->getMyProcessID()); - const char* fnameScalar = ffnameScalar.c_str(); - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// + //set filename scalar + std::string ffnameScalar = para->getOutputPrefix() + "_" + StringUtil::toString<int>(para->getMyProcessID()); + const char* fnameScalar = ffnameScalar.c_str(); + ////////////////////////////////////////////////////////////////////////// char fname[1024]; sprintf(fname, "%s/Data/%s.%05u.p", para->getOutputPath().c_str(), fnameScalar, para->getStepEnsight()); - para->setStepEnsight(para->getStepEnsight()+1); - ////////////////////////////////////////////////////////////////////////// - size_t startlevel = para->getMaxLevel() - 1; - size_t endlevel = para->getMaxLevel(); - ////////////////////////////////////////////////////////////////////////// - - if (!fileFormat) //ASCII - { + para->setStepEnsight(para->getStepEnsight()+1); + ////////////////////////////////////////////////////////////////////////// + size_t startlevel = para->getMaxLevel() - 1; + size_t endlevel = para->getMaxLevel(); + ////////////////////////////////////////////////////////////////////////// + + if (!fileFormat) //ASCII + { ofstream ostr; ostr.open(fname); ////////////////////////////////////////////////////////////////////////// @@ -615,22 +615,22 @@ void printScalars(Parameter* para, bool fileFormat) //functions to write binary files void writeIntToFile(const int &i, std::ofstream &ofile) { - ofile.write((char*)&i, sizeof(int)); + ofile.write((char*)&i, sizeof(int)); } void writeFloatToFile(const float &f, std::ofstream &ofile) { - ofile.write((char*)&f, sizeof(float)); + ofile.write((char*)&f, sizeof(float)); } void writeStringToFile(const std::string &s, std::ofstream &ofile) { - assert(s.size() <= 80); - char cbuffer[81]; - // Terminate the buffer to avoid static analyzer warnings about strncpy not - // NUL-terminating its destination buffer in case the input is too long. - cbuffer[80] = '\0'; - strncpy(cbuffer, s.c_str(), 80); - // Write a constant 80 bytes to the file. - ofile.write(cbuffer, 80); + assert(s.size() <= 80); + char cbuffer[81]; + // Terminate the buffer to avoid static analyzer warnings about strncpy not + // NUL-terminating its destination buffer in case the input is too long. + cbuffer[80] = '\0'; + strncpy(cbuffer, s.c_str(), 80); + // Write a constant 80 bytes to the file. + ofile.write(cbuffer, 80); } diff --git a/src/gpu/core/Calculation/DragLift.cpp b/src/gpu/core/Calculation/DragLift.cpp index 2c2dc19795959c87a02705778a9768210580be41..e0318d6ca4f34d040889395daaf2e589f48744d3 100644 --- a/src/gpu/core/Calculation/DragLift.cpp +++ b/src/gpu/core/Calculation/DragLift.cpp @@ -18,113 +18,113 @@ using namespace std; void calcDragLift(Parameter* para, CudaMemoryManager* cudaMemoryManager, int lev) { - ////////////////////////////////////////////////////////////////////////// - //copy to host - //finest Grid ... with the geometry nodes - //please test -> Copy == Alloc ?? - cudaMemoryManager->cudaCopyDragLift(lev, para->getParH(lev)->geometryBC.numberOfBCnodes); - ////////////////////////////////////////////////////////////////////////// - //calc drag - double dragX = 0., dragY = 0., dragZ = 0.; - double CDX = 0., CDY = 0., CDZ = 0.; - //double Pi = 3.14159265358979323846; - //double A = Pi * 1000.0 * 1000.0;// Sphere - ////////////////////////////////////////////////////////////////////////// - //Cars - //double delta_x_F = 0.00625;//[m] fine 11.25MI - //double delta_x_F = 0.0045;//[m] fine 12.54MI - //double delta_x_F = 0.00359375;//[m] fine 13.54MI - /////////////////////////////// - //double delta_x_F = 0.00703125;//[m] fine 16.22MI - ////double delta_x_F = 0.00625;//[m] fine 16.22MI - ////double delta_x_F = 0.0046875;//[m] fine 16.43MI - ////double delta_x_F = 0.003125;//[m] fine 16.117MI - /////////////////////////////// - //DLC - double delta_x_F = 0.00625;//[m] - - ////////////////////////////////////////////////////////////////////////// - //double A = 2.16693/(delta_x_F*delta_x_F);// Car - double A = 2.19/(delta_x_F*delta_x_F);// DLC - ////////////////////////////////////////////////////////////////////////// - - //double LBtoSI = 1.0;//Sphere - //double A = 110.0 * 28.0; //Ship width times height in fine nodes - //double delta_x = 0.0045;//[m] fine - //double delta_t = para->getVelocity() * delta_x / 15.96; - //double LBtoSI = 1.204 * (pow(delta_x, 4))/(pow(delta_t,2));//rho_SI * delta_x^4 / delta_t^2 = 1.204 kg/m^3 * (0.0045m)^4 / (0.00000757s)^2 ... LB to kg*m/s^2 - //double LBtoSI = 1000 * (pow(delta_x, 4))/(pow(delta_t,2));//rho_SI * delta_x^4 / delta_t^2 = 1000 kg/m^3 * (0.1m)^4 / (0.00187s)^2 ... LB to kg*m/s^2 - - for (unsigned int it = 0; it < para->getParH(lev)->geometryBC.numberOfBCnodes; it++) - { - dragX += (double) (para->getParH(lev)->DragPreX[it] - para->getParH(lev)->DragPostX[it]); //Kraft da Impuls pro Zeitschritt merke: andere nennen es FD - dragY += (double) (para->getParH(lev)->DragPreY[it] - para->getParH(lev)->DragPostY[it]); //Kraft da Impuls pro Zeitschritt merke: andere nennen es FD - dragZ += (double) (para->getParH(lev)->DragPreZ[it] - para->getParH(lev)->DragPostZ[it]); //Kraft da Impuls pro Zeitschritt merke: andere nennen es FD - } - ////////////////////////////////////////////////////////////////////////// - //calc CD - CDX = 2.0 * dragX / (1.0 /*rho_0*/ * para->getVelocity() * para->getVelocity() * A); - CDY = 2.0 * dragY / (1.0 /*rho_0*/ * para->getVelocity() * para->getVelocity() * A); - CDZ = 2.0 * dragZ / (1.0 /*rho_0*/ * para->getVelocity() * para->getVelocity() * A); - ////////////////////////////////////////////////////////////////////////// - //transform CD to SI - //CDX *= LBtoSI; - //CDY *= LBtoSI; - //CDZ *= LBtoSI; - ////////////////////////////////////////////////////////////////////////// - //Copy to vector x,y,z - para->getParH(lev)->DragXvector.push_back(CDX); - para->getParH(lev)->DragYvector.push_back(CDY); - para->getParH(lev)->DragZvector.push_back(CDZ); - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// + //copy to host + //finest Grid ... with the geometry nodes + //please test -> Copy == Alloc ?? + cudaMemoryManager->cudaCopyDragLift(lev, para->getParH(lev)->geometryBC.numberOfBCnodes); + ////////////////////////////////////////////////////////////////////////// + //calc drag + double dragX = 0., dragY = 0., dragZ = 0.; + double CDX = 0., CDY = 0., CDZ = 0.; + //double Pi = 3.14159265358979323846; + //double A = Pi * 1000.0 * 1000.0;// Sphere + ////////////////////////////////////////////////////////////////////////// + //Cars + //double delta_x_F = 0.00625;//[m] fine 11.25MI + //double delta_x_F = 0.0045;//[m] fine 12.54MI + //double delta_x_F = 0.00359375;//[m] fine 13.54MI + /////////////////////////////// + //double delta_x_F = 0.00703125;//[m] fine 16.22MI + ////double delta_x_F = 0.00625;//[m] fine 16.22MI + ////double delta_x_F = 0.0046875;//[m] fine 16.43MI + ////double delta_x_F = 0.003125;//[m] fine 16.117MI + /////////////////////////////// + //DLC + double delta_x_F = 0.00625;//[m] + + ////////////////////////////////////////////////////////////////////////// + //double A = 2.16693/(delta_x_F*delta_x_F);// Car + double A = 2.19/(delta_x_F*delta_x_F);// DLC + ////////////////////////////////////////////////////////////////////////// + + //double LBtoSI = 1.0;//Sphere + //double A = 110.0 * 28.0; //Ship width times height in fine nodes + //double delta_x = 0.0045;//[m] fine + //double delta_t = para->getVelocity() * delta_x / 15.96; + //double LBtoSI = 1.204 * (pow(delta_x, 4))/(pow(delta_t,2));//rho_SI * delta_x^4 / delta_t^2 = 1.204 kg/m^3 * (0.0045m)^4 / (0.00000757s)^2 ... LB to kg*m/s^2 + //double LBtoSI = 1000 * (pow(delta_x, 4))/(pow(delta_t,2));//rho_SI * delta_x^4 / delta_t^2 = 1000 kg/m^3 * (0.1m)^4 / (0.00187s)^2 ... LB to kg*m/s^2 + + for (unsigned int it = 0; it < para->getParH(lev)->geometryBC.numberOfBCnodes; it++) + { + dragX += (double) (para->getParH(lev)->DragPreX[it] - para->getParH(lev)->DragPostX[it]); //Kraft da Impuls pro Zeitschritt merke: andere nennen es FD + dragY += (double) (para->getParH(lev)->DragPreY[it] - para->getParH(lev)->DragPostY[it]); //Kraft da Impuls pro Zeitschritt merke: andere nennen es FD + dragZ += (double) (para->getParH(lev)->DragPreZ[it] - para->getParH(lev)->DragPostZ[it]); //Kraft da Impuls pro Zeitschritt merke: andere nennen es FD + } + ////////////////////////////////////////////////////////////////////////// + //calc CD + CDX = 2.0 * dragX / (1.0 /*rho_0*/ * para->getVelocity() * para->getVelocity() * A); + CDY = 2.0 * dragY / (1.0 /*rho_0*/ * para->getVelocity() * para->getVelocity() * A); + CDZ = 2.0 * dragZ / (1.0 /*rho_0*/ * para->getVelocity() * para->getVelocity() * A); + ////////////////////////////////////////////////////////////////////////// + //transform CD to SI + //CDX *= LBtoSI; + //CDY *= LBtoSI; + //CDZ *= LBtoSI; + ////////////////////////////////////////////////////////////////////////// + //Copy to vector x,y,z + para->getParH(lev)->DragXvector.push_back(CDX); + para->getParH(lev)->DragYvector.push_back(CDY); + para->getParH(lev)->DragZvector.push_back(CDZ); + ////////////////////////////////////////////////////////////////////////// } void allocDragLift(Parameter* para, CudaMemoryManager* cudaMemoryManager) { - ////////////////////////////////////////////////////////////////////////// - //set level - int lev = para->getMaxLevel(); - ////////////////////////////////////////////////////////////////////////// - //allocation - //finest Grid ... with the geometry nodes - //please test -> Copy == Alloc ?? - cudaMemoryManager->cudaAllocDragLift(lev, para->getParH(lev)->geometryBC.numberOfBCnodes); - ////////////////////////////////////////////////////////////////////////// - printf("\n Anzahl Elemente fuer Drag Lift = %d \n", para->getParH(lev)->geometryBC.numberOfBCnodes); + ////////////////////////////////////////////////////////////////////////// + //set level + int lev = para->getMaxLevel(); + ////////////////////////////////////////////////////////////////////////// + //allocation + //finest Grid ... with the geometry nodes + //please test -> Copy == Alloc ?? + cudaMemoryManager->cudaAllocDragLift(lev, para->getParH(lev)->geometryBC.numberOfBCnodes); + ////////////////////////////////////////////////////////////////////////// + printf("\n Anzahl Elemente fuer Drag Lift = %d \n", para->getParH(lev)->geometryBC.numberOfBCnodes); } void printDragLift(Parameter* para, CudaMemoryManager* cudaMemoryManager, int timestep) { - ////////////////////////////////////////////////////////////////////////// - //set level - int lev = para->getMaxLevel(); - ////////////////////////////////////////////////////////////////////////// - //set filename - std::string ffname = para->getFName()+StringUtil::toString<int>(para->getMyProcessID())+"_"+StringUtil::toString<int>(timestep)+"_DragLift.txt"; - const char* fname = ffname.c_str(); - ////////////////////////////////////////////////////////////////////////// - //set ofstream - ofstream ostr; - ////////////////////////////////////////////////////////////////////////// - //open file - ostr.open(fname); - ////////////////////////////////////////////////////////////////////////// - //fill file with data - for (size_t i = 0; i < para->getParH(lev)->DragXvector.size(); i++) - { - ostr << para->getParH(lev)->DragXvector[i] << "\t" << para->getParH(lev)->DragYvector[i] << "\t" << para->getParH(lev)->DragZvector[i] << endl ; - } - ////////////////////////////////////////////////////////////////////////// - //close file - ostr.close(); - ////////////////////////////////////////////////////////////////////////// - if (timestep == (int)para->getTimestepEnd()) - { - cudaMemoryManager->cudaFreeDragLift(lev); - } - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// + //set level + int lev = para->getMaxLevel(); + ////////////////////////////////////////////////////////////////////////// + //set filename + std::string ffname = para->getFName()+StringUtil::toString<int>(para->getMyProcessID())+"_"+StringUtil::toString<int>(timestep)+"_DragLift.txt"; + const char* fname = ffname.c_str(); + ////////////////////////////////////////////////////////////////////////// + //set ofstream + ofstream ostr; + ////////////////////////////////////////////////////////////////////////// + //open file + ostr.open(fname); + ////////////////////////////////////////////////////////////////////////// + //fill file with data + for (size_t i = 0; i < para->getParH(lev)->DragXvector.size(); i++) + { + ostr << para->getParH(lev)->DragXvector[i] << "\t" << para->getParH(lev)->DragYvector[i] << "\t" << para->getParH(lev)->DragZvector[i] << endl ; + } + ////////////////////////////////////////////////////////////////////////// + //close file + ostr.close(); + ////////////////////////////////////////////////////////////////////////// + if (timestep == (int)para->getTimestepEnd()) + { + cudaMemoryManager->cudaFreeDragLift(lev); + } + ////////////////////////////////////////////////////////////////////////// } \ No newline at end of file diff --git a/src/gpu/core/Calculation/ForceCalculations.cpp b/src/gpu/core/Calculation/ForceCalculations.cpp index c498721e56ff3aea1eab6258b26bfd2c4d95e33a..c0becbf5f4fb15017a3169df8bd0e59a4d97f8c8 100644 --- a/src/gpu/core/Calculation/ForceCalculations.cpp +++ b/src/gpu/core/Calculation/ForceCalculations.cpp @@ -15,113 +15,113 @@ ForceCalculations::ForceCalculations(Parameter* para) { - Ta = 10.0; // number of time steps between adjusting - vx1Targed = para->getVelocity(); // objected LB velocity + Ta = 10.0; // number of time steps between adjusting + vx1Targed = para->getVelocity(); // objected LB velocity - Kpcrit = 3.0 / Ta;// 0.3; - Tcrit = 3.0 * Ta; // 30.0; - Tn = 1.0 * Tcrit; //0.5 * Tcrit; - Tv = 0.24 * Tcrit; //0.12 * Tcrit; + Kpcrit = 3.0 / Ta;// 0.3; + Tcrit = 3.0 * Ta; // 30.0; + Tn = 1.0 * Tcrit; //0.5 * Tcrit; + Tv = 0.24 * Tcrit; //0.12 * Tcrit; - Kp = 0.6 * Kpcrit; - Ki = Kp / Tn; - Kd = Kp * Tv; + Kp = 0.6 * Kpcrit; + Ki = Kp / Tn; + Kd = Kp * Tv; - y = 0.0; - e = 0.0; - esum = 0.0; - eold = 0.0; + y = 0.0; + e = 0.0; + esum = 0.0; + eold = 0.0; - isPID = true; + isPID = true; } void ForceCalculations::calcPIDControllerForForce(Parameter* para, CudaMemoryManager* cudaMemoryManager) { - ////////////////////////////////////////////////////////////////////////// - double tempVeloX = 0.0; - double veloAverageX = 0.0; - double levelVeloAverageX = 0.0; - int counter = 0; - ////////////////////////////////////////////////////////////////////////// - for (int lev = para->getCoarse(); lev <= para->getFine(); lev++) - { - ////////////////////////////////////////////////////////////////////// - //measure the velocity - unsigned long long numberOfElements = para->getParH(lev)->numberOfNodes; - if (numberOfElements > 0) - { - CalcMacCompSP27(para->getParD(lev)->velocityX, - para->getParD(lev)->velocityY, - para->getParD(lev)->velocityZ, - para->getParD(lev)->rho, - para->getParD(lev)->pressure, - para->getParD(lev)->typeOfGridNode, - para->getParD(lev)->neighborX, - para->getParD(lev)->neighborY, - para->getParD(lev)->neighborZ, - para->getParD(lev)->numberOfNodes, - para->getParD(lev)->numberofthreads, - para->getParD(lev)->distributions.f[0], - para->getParD(lev)->isEvenTimestep); - getLastCudaError("CalcMacSP27 execution failed"); - ////////////////////////////////////////////////////////////////// - cudaMemoryManager->cudaCopyPrint(lev); - ////////////////////////////////////////////////////////////////// - for (size_t pos = 0; pos < numberOfElements; pos++) - { - tempVeloX += (double)para->getParH(lev)->velocityX[pos]; - } - tempVeloX /= (double)numberOfElements; - ////////////////////////////////////////////////////////////////// - levelVeloAverageX += tempVeloX; - ////////////////////////////////////////////////////////////////// - counter++; - ////////////////////////////////////////////////////////////////// - } - } - ////////////////////////////////////////////////////////////////////////// - veloAverageX = levelVeloAverageX / (double)counter; - ////////////////////////////////////////////////////////////////////////// - if (isPID) - { - //PID-Controller - e = vx1Targed - veloAverageX; - esum = esum + e; - y = Kp * e + Ki * Ta * esum + Kd * (e - eold) / Ta; - eold = e; + ////////////////////////////////////////////////////////////////////////// + double tempVeloX = 0.0; + double veloAverageX = 0.0; + double levelVeloAverageX = 0.0; + int counter = 0; + ////////////////////////////////////////////////////////////////////////// + for (int lev = para->getCoarse(); lev <= para->getFine(); lev++) + { + ////////////////////////////////////////////////////////////////////// + //measure the velocity + unsigned long long numberOfElements = para->getParH(lev)->numberOfNodes; + if (numberOfElements > 0) + { + CalcMacCompSP27(para->getParD(lev)->velocityX, + para->getParD(lev)->velocityY, + para->getParD(lev)->velocityZ, + para->getParD(lev)->rho, + para->getParD(lev)->pressure, + para->getParD(lev)->typeOfGridNode, + para->getParD(lev)->neighborX, + para->getParD(lev)->neighborY, + para->getParD(lev)->neighborZ, + para->getParD(lev)->numberOfNodes, + para->getParD(lev)->numberofthreads, + para->getParD(lev)->distributions.f[0], + para->getParD(lev)->isEvenTimestep); + getLastCudaError("CalcMacSP27 execution failed"); + ////////////////////////////////////////////////////////////////// + cudaMemoryManager->cudaCopyPrint(lev); + ////////////////////////////////////////////////////////////////// + for (size_t pos = 0; pos < numberOfElements; pos++) + { + tempVeloX += (double)para->getParH(lev)->velocityX[pos]; + } + tempVeloX /= (double)numberOfElements; + ////////////////////////////////////////////////////////////////// + levelVeloAverageX += tempVeloX; + ////////////////////////////////////////////////////////////////// + counter++; + ////////////////////////////////////////////////////////////////// + } + } + ////////////////////////////////////////////////////////////////////////// + veloAverageX = levelVeloAverageX / (double)counter; + ////////////////////////////////////////////////////////////////////////// + if (isPID) + { + //PID-Controller + e = vx1Targed - veloAverageX; + esum = esum + e; + y = Kp * e + Ki * Ta * esum + Kd * (e - eold) / Ta; + eold = e; - y = y / 2.0; - } - ////////////////////////////////////////////////////////////////////////// - para->getForcesDouble()[0] = (para->getForcesDouble()[0] + y); - para->getForcesDouble()[1] = (para->getForcesDouble()[1] + y) * 0.0; - para->getForcesDouble()[2] = (para->getForcesDouble()[2] + y) * 0.0; - ////////////////////////////////////////////////////////////////////////// - para->getForcesHost()[0] = (real)(para->getForcesHost()[0] + y); - para->getForcesHost()[1] = (real)(para->getForcesHost()[1] + y) * (real)0.0; - para->getForcesHost()[2] = (real)(para->getForcesHost()[2] + y) * (real)0.0; - ////////////////////////////////////////////////////////////////////////// - cudaMemoryManager->cudaCopyForcingToDevice(); - ////////////////////////////////////////////////////////////////////////// + y = y / 2.0; + } + ////////////////////////////////////////////////////////////////////////// + para->getForcesDouble()[0] = (para->getForcesDouble()[0] + y); + para->getForcesDouble()[1] = (para->getForcesDouble()[1] + y) * 0.0; + para->getForcesDouble()[2] = (para->getForcesDouble()[2] + y) * 0.0; + ////////////////////////////////////////////////////////////////////////// + para->getForcesHost()[0] = (real)(para->getForcesHost()[0] + y); + para->getForcesHost()[1] = (real)(para->getForcesHost()[1] + y) * (real)0.0; + para->getForcesHost()[2] = (real)(para->getForcesHost()[2] + y) * (real)0.0; + ////////////////////////////////////////////////////////////////////////// + cudaMemoryManager->cudaCopyForcingToDevice(); + ////////////////////////////////////////////////////////////////////////// } void ForceCalculations::printForcing(Parameter* para) { - ////////////////////////////////////////////////////////////////////////// - //set filename - std::string ffname = para->getFName() + StringUtil::toString<int>(para->getMyProcessID()) + "_forcing.txt"; - const char* fname = ffname.c_str(); - ////////////////////////////////////////////////////////////////////////// - //set ofstream - std::ofstream ostr; - ////////////////////////////////////////////////////////////////////////// - //open file - ostr.open(fname, std::fstream::app); - ostr << para->getForcesHost()[0] << " " << para->getForcesHost()[1] << " " << para->getForcesHost()[2]; - ostr << std::endl; - ////////////////////////////////////////////////////////////////////////// - //close file - ostr.close(); - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// + //set filename + std::string ffname = para->getFName() + StringUtil::toString<int>(para->getMyProcessID()) + "_forcing.txt"; + const char* fname = ffname.c_str(); + ////////////////////////////////////////////////////////////////////////// + //set ofstream + std::ofstream ostr; + ////////////////////////////////////////////////////////////////////////// + //open file + ostr.open(fname, std::fstream::app); + ostr << para->getForcesHost()[0] << " " << para->getForcesHost()[1] << " " << para->getForcesHost()[2]; + ostr << std::endl; + ////////////////////////////////////////////////////////////////////////// + //close file + ostr.close(); + ////////////////////////////////////////////////////////////////////////// } diff --git a/src/gpu/core/Calculation/ForceCalculations.h b/src/gpu/core/Calculation/ForceCalculations.h index 867e1327d1a6e2fefaa049f9e3d8e3dd6eb19666..1b8bb4859cc7acfd30b620bf1ba4aeeb37ab7a0b 100644 --- a/src/gpu/core/Calculation/ForceCalculations.h +++ b/src/gpu/core/Calculation/ForceCalculations.h @@ -12,25 +12,25 @@ class CudaMemoryManager; class ForceCalculations { public: - ForceCalculations(Parameter* para); - void calcPIDControllerForForce(Parameter* para, CudaMemoryManager* cudaMemoryManager); - void printForcing(Parameter* para); + ForceCalculations(Parameter* para); + void calcPIDControllerForForce(Parameter* para, CudaMemoryManager* cudaMemoryManager); + void printForcing(Parameter* para); private: - double vx1Targed; //!< target velocity. - double Kpcrit; //Kp critical - double Tcrit; //the oscillation period - double Tn; - double Tv; - double e; - double Ta; - double Kp; - double Ki; - double Kd; - double y; - double esum; - double eold; - bool isPID; + double vx1Targed; //!< target velocity. + double Kpcrit; //Kp critical + double Tcrit; //the oscillation period + double Tn; + double Tv; + double e; + double Ta; + double Kp; + double Ki; + double Kd; + double y; + double esum; + double eold; + bool isPID; }; #endif /* FORCE_CALCULATIONS_H */ diff --git a/src/gpu/core/Calculation/PlaneCalculations.cpp b/src/gpu/core/Calculation/PlaneCalculations.cpp index 48896c9e1f809552092d10f538f0b184e523d3b8..edeab64e9bf3c5c8c730cfae75f96b3f2b3b3c02 100644 --- a/src/gpu/core/Calculation/PlaneCalculations.cpp +++ b/src/gpu/core/Calculation/PlaneCalculations.cpp @@ -54,9 +54,9 @@ void setSizeOfPlane(Parameter* para, int lev, unsigned int z) void calcPressure(Parameter* para, std::string inorout, int lev) { - unsigned int m = para->getParH(lev)->startP; + unsigned int m = para->getParH(lev)->startP; unsigned int anz = 0; - double sumrho = 0.0, mrho = 0.0; + double sumrho = 0.0, mrho = 0.0; double PressIn, PressOut; for (unsigned int i = 0; i < para->getParH(lev)->sizePlanePress; i++) @@ -65,23 +65,23 @@ void calcPressure(Parameter* para, std::string inorout, int lev) anz++; m++; } - mrho = sumrho/anz; - double deltav = para->getVelocityRatio(); - std::cout << "\n sumrho = " << sumrho ; - std::cout << "\n anz = " << anz ; - std::cout << "\n mrho = " << mrho ; - std::cout << "\n deltarho = " << para->getDensityRatio(); - std::cout << "\n deltav = " << deltav ; - if (inorout=="in") - { - PressIn = para->getDensityRatio() * deltav * deltav * mrho/3.0; - std::cout << "\n Druck Ein: " << PressIn << " Pa \n"; - } - else if (inorout=="out") - { - PressOut = para->getDensityRatio() * deltav * deltav * mrho/3.0; - std::cout << "\n Druck Aus: " << PressOut << " Pa \n"; - } + mrho = sumrho/anz; + double deltav = para->getVelocityRatio(); + std::cout << "\n sumrho = " << sumrho ; + std::cout << "\n anz = " << anz ; + std::cout << "\n mrho = " << mrho ; + std::cout << "\n deltarho = " << para->getDensityRatio(); + std::cout << "\n deltav = " << deltav ; + if (inorout=="in") + { + PressIn = para->getDensityRatio() * deltav * deltav * mrho/3.0; + std::cout << "\n Druck Ein: " << PressIn << " Pa \n"; + } + else if (inorout=="out") + { + PressOut = para->getDensityRatio() * deltav * deltav * mrho/3.0; + std::cout << "\n Druck Aus: " << PressOut << " Pa \n"; + } } @@ -161,172 +161,172 @@ void calcFlowRate(Parameter* para, int lev) void calcPlaneConc(Parameter* para, CudaMemoryManager* cudaMemoryManager, int lev) { - ////////////////////////////////////////////////////////////////////////// - //copy to host - //coarsest Grid ... with the pressure nodes - //please test -> Copy == Alloc ?? - //////////////////////////////////////////// - //Version Press neighbor - unsigned int NoNin = para->getParH(lev)->numberOfPointsCpTop; - unsigned int NoNout1 = para->getParH(lev)->numberOfPointsCpBottom; - unsigned int NoNout2 = para->getParH(lev)->pressureBC.numberOfBCnodes; - //////////////////////////////////////////// - ////Version cp top - //unsigned int NoN = para->getParH(lev)->numberOfPointsCpTop; - //////////////////////////////////////////// - ////Version cp bottom - //unsigned int NoN = para->getParH(lev)->numberOfPointsCpBottom; - - cudaMemoryManager->cudaCopyPlaneConcIn(lev, NoNin); - cudaMemoryManager->cudaCopyPlaneConcOut1(lev, NoNout1); - cudaMemoryManager->cudaCopyPlaneConcOut2(lev, NoNout2); - //////////////////////////////////////////// - //calculate concentration - double concPlaneIn = 0.; - double concPlaneOut1 = 0.; - double concPlaneOut2 = 0.; - //////////////////////////////////////////// - double counter1 = 0.; - for (unsigned int it = 0; it < NoNin; it++) - { - if (para->getParH(lev)->typeOfGridNode[it] == GEO_FLUID) - { - concPlaneIn += (double) (para->getParH(lev)->ConcPlaneIn[it]); - counter1 += 1.; - } - } - concPlaneIn /= (double)(counter1); - //////////////////////////////////////////// - counter1 = 0.; - for (unsigned int it = 0; it < NoNout1; it++) - { - if (para->getParH(lev)->typeOfGridNode[it] == GEO_FLUID) - { - concPlaneOut1 += (double) (para->getParH(lev)->ConcPlaneOut1[it]); - counter1 += 1.; - } - } - concPlaneOut1 /= (double)(counter1); - //////////////////////////////////////////// - counter1 = 0.; - for (unsigned int it = 0; it < NoNout2; it++) - { - if (para->getParH(lev)->typeOfGridNode[it] == GEO_FLUID) - { - concPlaneOut2 += (double) (para->getParH(lev)->ConcPlaneOut2[it]); - counter1 += 1.; - } - } - concPlaneOut2 /= (double)(counter1); - //////////////////////////////////////////// - //concPlaneIn /= (double)(NoN); - //concPlaneOut1 /= (double)(NoN); - //concPlaneOut2 /= (double)(NoN); - ////////////////////////////////////////////////////////////////////////// - //Copy to vector x,y,z - para->getParH(lev)->PlaneConcVectorIn.push_back(concPlaneIn); - para->getParH(lev)->PlaneConcVectorOut1.push_back(concPlaneOut1); - para->getParH(lev)->PlaneConcVectorOut2.push_back(concPlaneOut2); - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// + //copy to host + //coarsest Grid ... with the pressure nodes + //please test -> Copy == Alloc ?? + //////////////////////////////////////////// + //Version Press neighbor + unsigned int NoNin = para->getParH(lev)->numberOfPointsCpTop; + unsigned int NoNout1 = para->getParH(lev)->numberOfPointsCpBottom; + unsigned int NoNout2 = para->getParH(lev)->pressureBC.numberOfBCnodes; + //////////////////////////////////////////// + ////Version cp top + //unsigned int NoN = para->getParH(lev)->numberOfPointsCpTop; + //////////////////////////////////////////// + ////Version cp bottom + //unsigned int NoN = para->getParH(lev)->numberOfPointsCpBottom; + + cudaMemoryManager->cudaCopyPlaneConcIn(lev, NoNin); + cudaMemoryManager->cudaCopyPlaneConcOut1(lev, NoNout1); + cudaMemoryManager->cudaCopyPlaneConcOut2(lev, NoNout2); + //////////////////////////////////////////// + //calculate concentration + double concPlaneIn = 0.; + double concPlaneOut1 = 0.; + double concPlaneOut2 = 0.; + //////////////////////////////////////////// + double counter1 = 0.; + for (unsigned int it = 0; it < NoNin; it++) + { + if (para->getParH(lev)->typeOfGridNode[it] == GEO_FLUID) + { + concPlaneIn += (double) (para->getParH(lev)->ConcPlaneIn[it]); + counter1 += 1.; + } + } + concPlaneIn /= (double)(counter1); + //////////////////////////////////////////// + counter1 = 0.; + for (unsigned int it = 0; it < NoNout1; it++) + { + if (para->getParH(lev)->typeOfGridNode[it] == GEO_FLUID) + { + concPlaneOut1 += (double) (para->getParH(lev)->ConcPlaneOut1[it]); + counter1 += 1.; + } + } + concPlaneOut1 /= (double)(counter1); + //////////////////////////////////////////// + counter1 = 0.; + for (unsigned int it = 0; it < NoNout2; it++) + { + if (para->getParH(lev)->typeOfGridNode[it] == GEO_FLUID) + { + concPlaneOut2 += (double) (para->getParH(lev)->ConcPlaneOut2[it]); + counter1 += 1.; + } + } + concPlaneOut2 /= (double)(counter1); + //////////////////////////////////////////// + //concPlaneIn /= (double)(NoN); + //concPlaneOut1 /= (double)(NoN); + //concPlaneOut2 /= (double)(NoN); + ////////////////////////////////////////////////////////////////////////// + //Copy to vector x,y,z + para->getParH(lev)->PlaneConcVectorIn.push_back(concPlaneIn); + para->getParH(lev)->PlaneConcVectorOut1.push_back(concPlaneOut1); + para->getParH(lev)->PlaneConcVectorOut2.push_back(concPlaneOut2); + ////////////////////////////////////////////////////////////////////////// } void allocPlaneConc(Parameter* para, CudaMemoryManager* cudaMemoryManager) { - ////////////////////////////////////////////////////////////////////////// - //set level ---> maybe we need a loop - int lev = para->getCoarse(); - ////////////////////////////////////////////////////////////////////////// - //allocation - //coarsest Grid ... with the pressure nodes - //please test -> Copy == Alloc ?? - //////////////////////////////////////////// - //Version Press neighbor - cudaMemoryManager->cudaAllocPlaneConcIn(lev, para->getParH(lev)->numberOfPointsCpTop); - cudaMemoryManager->cudaAllocPlaneConcOut1(lev, para->getParH(lev)->numberOfPointsCpBottom); - cudaMemoryManager->cudaAllocPlaneConcOut2(lev, para->getParH(lev)->pressureBC.numberOfBCnodes); - printf("\n Number of elements plane concentration = %d + %d + %d \n", para->getParH(lev)->numberOfPointsCpTop, para->getParH(lev)->numberOfPointsCpBottom, para->getParH(lev)->pressureBC.numberOfBCnodes); - //////////////////////////////////////////// - ////Version cp top - //para->cudaAllocPlaneConc(lev, para->getParH(lev)->numberOfPointsCpTop); - //printf("\n Number of elements plane concentration = %d \n", para->getParH(lev)->numberOfPointsCpTop); - //////////////////////////////////////////// - ////Version cp bottom - //para->cudaAllocPlaneConc(lev, para->getParH(lev)->numberOfPointsCpBottom); - //printf("\n Number of elements plane concentration = %d \n", para->getParH(lev)->numberOfPointsCpBottom); - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// + //set level ---> maybe we need a loop + int lev = para->getCoarse(); + ////////////////////////////////////////////////////////////////////////// + //allocation + //coarsest Grid ... with the pressure nodes + //please test -> Copy == Alloc ?? + //////////////////////////////////////////// + //Version Press neighbor + cudaMemoryManager->cudaAllocPlaneConcIn(lev, para->getParH(lev)->numberOfPointsCpTop); + cudaMemoryManager->cudaAllocPlaneConcOut1(lev, para->getParH(lev)->numberOfPointsCpBottom); + cudaMemoryManager->cudaAllocPlaneConcOut2(lev, para->getParH(lev)->pressureBC.numberOfBCnodes); + printf("\n Number of elements plane concentration = %d + %d + %d \n", para->getParH(lev)->numberOfPointsCpTop, para->getParH(lev)->numberOfPointsCpBottom, para->getParH(lev)->pressureBC.numberOfBCnodes); + //////////////////////////////////////////// + ////Version cp top + //para->cudaAllocPlaneConc(lev, para->getParH(lev)->numberOfPointsCpTop); + //printf("\n Number of elements plane concentration = %d \n", para->getParH(lev)->numberOfPointsCpTop); + //////////////////////////////////////////// + ////Version cp bottom + //para->cudaAllocPlaneConc(lev, para->getParH(lev)->numberOfPointsCpBottom); + //printf("\n Number of elements plane concentration = %d \n", para->getParH(lev)->numberOfPointsCpBottom); + ////////////////////////////////////////////////////////////////////////// } void printPlaneConc(Parameter* para, CudaMemoryManager* cudaMemoryManager) { - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //set level ---> maybe we need a loop - int lev = para->getCoarse(); - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //set filename - std::string ffnameIn = para->getFName() + UbSystem::toString(para->getMyProcessID()) + "_" + "In" + "_PlaneConc.txt"; - const char* fnameIn = ffnameIn.c_str(); - ////////////////////////////////////////////////////////////////////////// - //set ofstream - std::ofstream ostrIn; - ////////////////////////////////////////////////////////////////////////// - //open file - ostrIn.open(fnameIn); - ////////////////////////////////////////////////////////////////////////// - //fill file with data - for (size_t i = 0; i < para->getParH(lev)->PlaneConcVectorIn.size(); i++) - { - ostrIn << para->getParH(lev)->PlaneConcVectorIn[i] << std::endl ; - } - ////////////////////////////////////////////////////////////////////////// - //close file - ostrIn.close(); - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //set filename - std::string ffnameOut1 = para->getFName() + UbSystem::toString(para->getMyProcessID()) + "_" + "Out1" + "_PlaneConc.txt"; - const char* fnameOut1 = ffnameOut1.c_str(); - ////////////////////////////////////////////////////////////////////////// - //set ofstream + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //set level ---> maybe we need a loop + int lev = para->getCoarse(); + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //set filename + std::string ffnameIn = para->getFName() + UbSystem::toString(para->getMyProcessID()) + "_" + "In" + "_PlaneConc.txt"; + const char* fnameIn = ffnameIn.c_str(); + ////////////////////////////////////////////////////////////////////////// + //set ofstream + std::ofstream ostrIn; + ////////////////////////////////////////////////////////////////////////// + //open file + ostrIn.open(fnameIn); + ////////////////////////////////////////////////////////////////////////// + //fill file with data + for (size_t i = 0; i < para->getParH(lev)->PlaneConcVectorIn.size(); i++) + { + ostrIn << para->getParH(lev)->PlaneConcVectorIn[i] << std::endl ; + } + ////////////////////////////////////////////////////////////////////////// + //close file + ostrIn.close(); + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //set filename + std::string ffnameOut1 = para->getFName() + UbSystem::toString(para->getMyProcessID()) + "_" + "Out1" + "_PlaneConc.txt"; + const char* fnameOut1 = ffnameOut1.c_str(); + ////////////////////////////////////////////////////////////////////////// + //set ofstream std::ofstream ostrOut1; - ////////////////////////////////////////////////////////////////////////// - //open file - ostrOut1.open(fnameOut1); - ////////////////////////////////////////////////////////////////////////// - //fill file with data - for (size_t i = 0; i < para->getParH(lev)->PlaneConcVectorOut1.size(); i++) - { - ostrOut1 << para->getParH(lev)->PlaneConcVectorOut1[i] << std::endl ; - } - ////////////////////////////////////////////////////////////////////////// - //close file - ostrOut1.close(); - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //set filename - std::string ffnameOut2 = para->getFName() + UbSystem::toString(para->getMyProcessID()) + "_" + "Out2" + "_PlaneConc.txt"; - const char* fnameOut2 = ffnameOut2.c_str(); - ////////////////////////////////////////////////////////////////////////// - //set ofstream + ////////////////////////////////////////////////////////////////////////// + //open file + ostrOut1.open(fnameOut1); + ////////////////////////////////////////////////////////////////////////// + //fill file with data + for (size_t i = 0; i < para->getParH(lev)->PlaneConcVectorOut1.size(); i++) + { + ostrOut1 << para->getParH(lev)->PlaneConcVectorOut1[i] << std::endl ; + } + ////////////////////////////////////////////////////////////////////////// + //close file + ostrOut1.close(); + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //set filename + std::string ffnameOut2 = para->getFName() + UbSystem::toString(para->getMyProcessID()) + "_" + "Out2" + "_PlaneConc.txt"; + const char* fnameOut2 = ffnameOut2.c_str(); + ////////////////////////////////////////////////////////////////////////// + //set ofstream std::ofstream ostrOut2; - ////////////////////////////////////////////////////////////////////////// - //open file - ostrOut2.open(fnameOut2); - ////////////////////////////////////////////////////////////////////////// - //fill file with data - for (size_t i = 0; i < para->getParH(lev)->PlaneConcVectorOut2.size(); i++) - { - ostrOut2 << para->getParH(lev)->PlaneConcVectorOut2[i] << std::endl ; - } - ////////////////////////////////////////////////////////////////////////// - //close file - ostrOut2.close(); - ////////////////////////////////////////////////////////////////////////// - cudaMemoryManager->cudaFreePlaneConc(lev); - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// + //open file + ostrOut2.open(fnameOut2); + ////////////////////////////////////////////////////////////////////////// + //fill file with data + for (size_t i = 0; i < para->getParH(lev)->PlaneConcVectorOut2.size(); i++) + { + ostrOut2 << para->getParH(lev)->PlaneConcVectorOut2[i] << std::endl ; + } + ////////////////////////////////////////////////////////////////////////// + //close file + ostrOut2.close(); + ////////////////////////////////////////////////////////////////////////// + cudaMemoryManager->cudaFreePlaneConc(lev); + ////////////////////////////////////////////////////////////////////////// } @@ -337,47 +337,47 @@ void printPlaneConc(Parameter* para, CudaMemoryManager* cudaMemoryManager) //Print Test round of Error void printRE(Parameter* para, CudaMemoryManager* cudaMemoryManager, int timestep) { - ////////////////////////////////////////////////////////////////////////// - //set level - int lev = 0; - ////////////////////////////////////////////////////////////////////////// - //set filename - std::string ffname = para->getFName()+StringUtil::toString<int>(para->getMyProcessID())+"_"+StringUtil::toString<int>(timestep)+"_RE.txt"; - const char* fname = ffname.c_str(); - ////////////////////////////////////////////////////////////////////////// - //set ofstream + ////////////////////////////////////////////////////////////////////////// + //set level + int lev = 0; + ////////////////////////////////////////////////////////////////////////// + //set filename + std::string ffname = para->getFName()+StringUtil::toString<int>(para->getMyProcessID())+"_"+StringUtil::toString<int>(timestep)+"_RE.txt"; + const char* fname = ffname.c_str(); + ////////////////////////////////////////////////////////////////////////// + //set ofstream std::ofstream ostr; - ////////////////////////////////////////////////////////////////////////// - //open file - ostr.open(fname); - ////////////////////////////////////////////////////////////////////////// - //fill file with data - bool doNothing = false; - for (unsigned int i = 0; i < para->getParH(lev)->pressureBC.numberOfBCnodes; i++) - { - doNothing = false; - for (std::size_t j = 0; j < 27; j++) - { - if (para->getParH(lev)->kDistTestRE.f[0][j*para->getParH(lev)->pressureBC.numberOfBCnodes + i]==0) - { - doNothing = true; - continue; - } - ostr << para->getParH(lev)->kDistTestRE.f[0][j*para->getParH(lev)->pressureBC.numberOfBCnodes + i] << "\t"; - } - if (doNothing==true) - { - continue; - } - ostr << std::endl; - } - ////////////////////////////////////////////////////////////////////////// - //close file - ostr.close(); - ////////////////////////////////////////////////////////////////////////// - if (timestep == (int)para->getTimestepEnd()) - { - cudaMemoryManager->cudaFreeTestRE(lev); - } - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// + //open file + ostr.open(fname); + ////////////////////////////////////////////////////////////////////////// + //fill file with data + bool doNothing = false; + for (unsigned int i = 0; i < para->getParH(lev)->pressureBC.numberOfBCnodes; i++) + { + doNothing = false; + for (std::size_t j = 0; j < 27; j++) + { + if (para->getParH(lev)->kDistTestRE.f[0][j*para->getParH(lev)->pressureBC.numberOfBCnodes + i]==0) + { + doNothing = true; + continue; + } + ostr << para->getParH(lev)->kDistTestRE.f[0][j*para->getParH(lev)->pressureBC.numberOfBCnodes + i] << "\t"; + } + if (doNothing==true) + { + continue; + } + ostr << std::endl; + } + ////////////////////////////////////////////////////////////////////////// + //close file + ostr.close(); + ////////////////////////////////////////////////////////////////////////// + if (timestep == (int)para->getTimestepEnd()) + { + cudaMemoryManager->cudaFreeTestRE(lev); + } + ////////////////////////////////////////////////////////////////////////// } diff --git a/src/gpu/core/DataStructureInitializer/GridReaderFiles/BoundaryQs.cpp b/src/gpu/core/DataStructureInitializer/GridReaderFiles/BoundaryQs.cpp index ab266e499fbe9aae16eef29c8bd35b67019323f3..06b0ddb837fdeefe2656f50f5c62bc1e3afcf059 100644 --- a/src/gpu/core/DataStructureInitializer/GridReaderFiles/BoundaryQs.cpp +++ b/src/gpu/core/DataStructureInitializer/GridReaderFiles/BoundaryQs.cpp @@ -10,36 +10,36 @@ BoundaryQs::BoundaryQs(std::string path, bool isBinary) { - if (isBinary) - { - file.open(path.c_str(), std::ios::in | std::ios::binary); - checkFileStatus(path); - init_Binary(); - } - else - { - file.open(path.c_str(), std::ios::in ); - checkFileStatus(path); - init(); - } + if (isBinary) + { + file.open(path.c_str(), std::ios::in | std::ios::binary); + checkFileStatus(path); + init_Binary(); + } + else + { + file.open(path.c_str(), std::ios::in ); + checkFileStatus(path); + init(); + } } BoundaryQs::BoundaryQs(std::string path, std::shared_ptr<Parameter> para, std::string str, bool isBinary) { - if (isBinary) file.open(path.c_str(), std::ios::in | std::ios::binary); - else file.open(path.c_str(), std::ios::in); - - if (!file) - para->setObj(str, false); - else - { - para->setObj(str, true); - if(isBinary) - init_Binary(); - else - init(); - } - + if (isBinary) file.open(path.c_str(), std::ios::in | std::ios::binary); + else file.open(path.c_str(), std::ios::in); + + if (!file) + para->setObj(str, false); + else + { + para->setObj(str, true); + if(isBinary) + init_Binary(); + else + init(); + } + } BoundaryQs::BoundaryQs() @@ -50,119 +50,119 @@ BoundaryQs::BoundaryQs() void BoundaryQs::checkFileStatus(std::string path) { - if (!file) - { - std::cerr << "can not open q-file: " << path << std::endl; - exit(1); - } + if (!file) + { + std::cerr << "can not open q-file: " << path << std::endl; + exit(1); + } } BoundaryQs::~BoundaryQs() { - file.close(); + file.close(); } void BoundaryQs::init() { - std::vector<uint32_t> vec1D_code; - std::string bufferString; - - file >> maxLevel; - resizeVectors(); - - for (unsigned int level = 0; level <= maxLevel; level++) - { - file >> levelSizes[level]; - resizeVectorsPerLevel(level, vec1D_code); - if (levelSizes[level] == 0) - continue; - - for (unsigned int elem = 0; elem < levelSizes[level]; elem++) - { - int columnCounter = 26; - file >> indices[level][elem]; - file >> vec1D_code[elem]; - - while (vec1D_code[elem] != 0) - { - if (vec1D_code[elem] % 2 == 1) - file >> values[level][columnCounter][elem]; - vec1D_code[elem] /= 2; - columnCounter--; - } - getline(file, bufferString); - } - vec1D_code.clear(); - } + std::vector<uint32_t> vec1D_code; + std::string bufferString; + + file >> maxLevel; + resizeVectors(); + + for (unsigned int level = 0; level <= maxLevel; level++) + { + file >> levelSizes[level]; + resizeVectorsPerLevel(level, vec1D_code); + if (levelSizes[level] == 0) + continue; + + for (unsigned int elem = 0; elem < levelSizes[level]; elem++) + { + int columnCounter = 26; + file >> indices[level][elem]; + file >> vec1D_code[elem]; + + while (vec1D_code[elem] != 0) + { + if (vec1D_code[elem] % 2 == 1) + file >> values[level][columnCounter][elem]; + vec1D_code[elem] /= 2; + columnCounter--; + } + getline(file, bufferString); + } + vec1D_code.clear(); + } } void BoundaryQs::init_Binary() { - std::vector<uint32_t> vec1D_code; - - std::string bufferString; - unsigned int bufferInt; - real bufferDouble; - uint32_t bufferUint32_t; - - file >> maxLevel; - resizeVectors(); - - for (unsigned int level = 0; level <= maxLevel; level++) - { - file >> levelSizes[level]; - resizeVectorsPerLevel(level, vec1D_code); - if (levelSizes[level] == 0) - continue; - - for (unsigned int elem = 0; elem < levelSizes[level]; elem++) - { - int zaehler = 26; - file.read((char*)&bufferInt, sizeof(int)); - indices[level][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)); - values[level][zaehler][elem] = bufferDouble; - } - vec1D_code[elem] /= 2; - zaehler--; - } - getline(file, bufferString); - } - vec1D_code.clear(); - } + std::vector<uint32_t> vec1D_code; + + std::string bufferString; + unsigned int bufferInt; + real bufferDouble; + uint32_t bufferUint32_t; + + file >> maxLevel; + resizeVectors(); + + for (unsigned int level = 0; level <= maxLevel; level++) + { + file >> levelSizes[level]; + resizeVectorsPerLevel(level, vec1D_code); + if (levelSizes[level] == 0) + continue; + + for (unsigned int elem = 0; elem < levelSizes[level]; elem++) + { + int zaehler = 26; + file.read((char*)&bufferInt, sizeof(int)); + indices[level][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)); + values[level][zaehler][elem] = bufferDouble; + } + vec1D_code[elem] /= 2; + zaehler--; + } + getline(file, bufferString); + } + vec1D_code.clear(); + } } void BoundaryQs::resizeVectors() { - levelSizes.resize(maxLevel + 1); - values.resize(maxLevel + 1); - indices.resize(maxLevel + 1); + levelSizes.resize(maxLevel + 1); + values.resize(maxLevel + 1); + indices.resize(maxLevel + 1); } void BoundaryQs::resizeVectorsPerLevel(unsigned int level, std::vector<uint32_t> &vec1D_code) { - values[level].resize(QCOLUMNS); - for (int i = 0; i < QCOLUMNS; i++) - values[level][i].resize(levelSizes[level], -1); - indices[level].resize(levelSizes[level]); - vec1D_code.resize(levelSizes[level]); + values[level].resize(QCOLUMNS); + for (int i = 0; i < QCOLUMNS; i++) + values[level][i].resize(levelSizes[level], -1); + indices[level].resize(levelSizes[level]); + vec1D_code.resize(levelSizes[level]); } unsigned int BoundaryQs::getSize(unsigned int level) { - return this->levelSizes[level]; + return this->levelSizes[level]; } unsigned int BoundaryQs::getLevel() { - return maxLevel; + return maxLevel; } @@ -175,9 +175,9 @@ void BoundaryQs::setValuesInVector(std::vector<std::vector<std::vector<real>>> & void BoundaryQs::setValues(real **q27, unsigned int level) const { - for (std::size_t column = 0; column < values[level].size(); column++) - for (std::size_t index = 0; index < values[level][column].size(); index++) - q27[column][index] = values[level][column][index]; + for (std::size_t column = 0; column < values[level].size(); column++) + for (std::size_t index = 0; index < values[level][column].size(); index++) + q27[column][index] = values[level][column][index]; } void BoundaryQs::setIndexInVector(std::vector<std::vector<int>> &data, unsigned int level) const @@ -188,30 +188,30 @@ void BoundaryQs::setIndexInVector(std::vector<std::vector<int>> &data, unsigned void BoundaryQs::setIndex(int *data, unsigned int level) const { - for (std::size_t index = 0; index < indices[level].size(); index++) - data[index] = indices[level][index]; + for (std::size_t index = 0; index < indices[level].size(); index++) + data[index] = indices[level][index]; } void BoundaryQs::getQs(std::vector<std::vector<std::vector<real> > > &qs) { - int j = 0; - int i = 0; - for (std::vector<std::vector<std::vector<real> > >::iterator it = values.begin(); it != values.end(); it++) { - i = 0; - for (std::vector<std::vector<real> >::iterator it2 = it->begin(); it2 != it->end(); it2++) { + int j = 0; + int i = 0; + for (std::vector<std::vector<std::vector<real> > >::iterator it = values.begin(); it != values.end(); it++) { + i = 0; + for (std::vector<std::vector<real> >::iterator it2 = it->begin(); it2 != it->end(); it2++) { - for (std::vector<real>::iterator it3 = it2->begin(); it3 != it2->end(); it3++) { - qs[j][i].push_back(*it3); - } - i++; - } - j++; - } + for (std::vector<real>::iterator it3 = it2->begin(); it3 != it2->end(); it3++) { + qs[j][i].push_back(*it3); + } + i++; + } + j++; + } } void BoundaryQs::getIndices(std::vector<std::vector<uint> > &indices) { - for (std::size_t level = 0; level < this->indices.size(); level++) - for (std::size_t index = 0; index < this->indices[level].size(); index++) - indices[level].push_back(this->indices[level][index]); + for (std::size_t level = 0; level < this->indices.size(); level++) + for (std::size_t index = 0; index < this->indices[level].size(); index++) + indices[level].push_back(this->indices[level][index]); } diff --git a/src/gpu/core/DataStructureInitializer/GridReaderFiles/BoundaryQs.h b/src/gpu/core/DataStructureInitializer/GridReaderFiles/BoundaryQs.h index 804051824b5c8ca01809c78e58034eb06d45874e..30c13e06a5112e4d8d599907edb80201bd1585f4 100644 --- a/src/gpu/core/DataStructureInitializer/GridReaderFiles/BoundaryQs.h +++ b/src/gpu/core/DataStructureInitializer/GridReaderFiles/BoundaryQs.h @@ -13,41 +13,41 @@ class Parameter; class BoundaryQs { public: - BoundaryQs(); - BoundaryQs(std::string q, bool binaer); - BoundaryQs(std::string q, std::shared_ptr<Parameter> para, std::string str, bool binaer); - ~BoundaryQs(void); + BoundaryQs(); + BoundaryQs(std::string q, bool binaer); + BoundaryQs(std::string q, std::shared_ptr<Parameter> para, std::string str, bool binaer); + ~BoundaryQs(void); public: - unsigned int getSize(unsigned int level); - unsigned int getLevel(); + unsigned int getSize(unsigned int level); + unsigned int getLevel(); -private: - void checkFileStatus(std::string path); - void init(); - void resizeVectors(); - void resizeVectorsPerLevel(unsigned int level, std::vector<uint32_t> &vec1D_code); +private: + void checkFileStatus(std::string path); + void init(); + void resizeVectors(); + void resizeVectorsPerLevel(unsigned int level, std::vector<uint32_t> &vec1D_code); - void init_Binary(); + void init_Binary(); public: void setIndexInVector(std::vector<std::vector<int>> &data, unsigned int level) const; void setValuesInVector(std::vector<std::vector<std::vector<real>>> &q27, unsigned int level) const; void setIndex(int *indices, unsigned int level) const; - void setValues(real** q27, unsigned int level) const; - void getQs(std::vector<std::vector<std::vector<real> > > &qs); - void getIndices(std::vector<std::vector<uint> > &indices); - //void initArray(real* ptr, unsigned int level, unsigned int column); - //void initIndex(int *ptr, unsigned int level); + void setValues(real** q27, unsigned int level) const; + void getQs(std::vector<std::vector<std::vector<real> > > &qs); + void getIndices(std::vector<std::vector<uint> > &indices); + //void initArray(real* ptr, unsigned int level, unsigned int column); + //void initIndex(int *ptr, unsigned int level); private: - std::vector< std::vector<std::vector<real> > >values; - std::vector< std::vector<unsigned int> >indices; + std::vector< std::vector<std::vector<real> > >values; + std::vector< std::vector<unsigned int> >indices; - std::ifstream file; - unsigned int maxLevel; - std::vector<unsigned int> levelSizes; + std::ifstream file; + unsigned int maxLevel; + std::vector<unsigned int> levelSizes; }; diff --git a/src/gpu/core/DataStructureInitializer/GridReaderFiles/BoundaryValues.cpp b/src/gpu/core/DataStructureInitializer/GridReaderFiles/BoundaryValues.cpp index 9fbf2105b85424996ac67c8edbc42915b369a04e..d77bf9316349343594dafb0e75680e26c077feb5 100644 --- a/src/gpu/core/DataStructureInitializer/GridReaderFiles/BoundaryValues.cpp +++ b/src/gpu/core/DataStructureInitializer/GridReaderFiles/BoundaryValues.cpp @@ -8,254 +8,254 @@ BoundaryValues::BoundaryValues(std::string path) { - file.open(path.c_str(), std::ios::in); + file.open(path.c_str(), std::ios::in); - if (!file) { - std::cerr << "error can not open value file:" << path << std::endl; - exit(1); - } - init(); + if (!file) { + std::cerr << "error can not open value file:" << path << std::endl; + exit(1); + } + init(); } BoundaryValues::BoundaryValues(std::string path, std::shared_ptr<Parameter> para, std::string str) { - if (!file) { - std::cerr << "error can not open value file:" << path << std::endl; - exit(1); - } - - file.open(path.c_str(), std::ios::in); - if (!file) { - para->setObj(str, false); - } else { - init(); - para->setObj(str, true); - } + if (!file) { + std::cerr << "error can not open value file:" << path << std::endl; + exit(1); + } + + file.open(path.c_str(), std::ios::in); + if (!file) { + para->setObj(str, false); + } else { + init(); + para->setObj(str, true); + } } BoundaryValues::BoundaryValues(int neighbor, std::shared_ptr<Parameter> para, std::string sor, std::string direction) { - if (direction=="X") - { - std::string ad = para->getPossNeighborFilesX(sor)[neighbor]; - file.open(ad.c_str(), std::ios::in); - - if (file.fail()) { - para->setIsNeighborX(false); - } else { - para->setIsNeighborX(true); - init(); - } - } - else if (direction=="Y") - { - std::string ad = para->getPossNeighborFilesY(sor)[neighbor]; - file.open(ad.c_str(), std::ios::in); - - if (file.fail()) { - para->setIsNeighborY(false); - } else { - para->setIsNeighborY(true); - init(); - } - } - else - { - std::string ad = para->getPossNeighborFilesZ(sor)[neighbor]; - file.open(ad.c_str(), std::ios::in); - - if (file.fail()) { - para->setIsNeighborZ(false); - } else { - para->setIsNeighborZ(true); - init(); - } - } + if (direction=="X") + { + std::string ad = para->getPossNeighborFilesX(sor)[neighbor]; + file.open(ad.c_str(), std::ios::in); + + if (file.fail()) { + para->setIsNeighborX(false); + } else { + para->setIsNeighborX(true); + init(); + } + } + else if (direction=="Y") + { + std::string ad = para->getPossNeighborFilesY(sor)[neighbor]; + file.open(ad.c_str(), std::ios::in); + + if (file.fail()) { + para->setIsNeighborY(false); + } else { + para->setIsNeighborY(true); + init(); + } + } + else + { + std::string ad = para->getPossNeighborFilesZ(sor)[neighbor]; + file.open(ad.c_str(), std::ios::in); + + if (file.fail()) { + para->setIsNeighborZ(false); + } else { + para->setIsNeighborZ(true); + init(); + } + } } BoundaryValues::~BoundaryValues(void) { - file.close(); + file.close(); } int BoundaryValues::getNumberOfColumns() { - if (boundaryCondition == "velocity") - return 3; - if (boundaryCondition == "noSlip") - return 3; - if (boundaryCondition == "pressure") - return 2; - if (boundaryCondition == "processor") - return 0; - if (boundaryCondition == "concentration") - return 0; - else - return -1; + if (boundaryCondition == "velocity") + return 3; + if (boundaryCondition == "noSlip") + return 3; + if (boundaryCondition == "pressure") + return 2; + if (boundaryCondition == "processor") + return 0; + if (boundaryCondition == "concentration") + return 0; + else + return -1; } void BoundaryValues::init() { - readBC(); - readNumberOfLevels(); - resizeVectors(); + readBC(); + readNumberOfLevels(); + resizeVectors(); - int maxColumn = getNumberOfColumns(); + int maxColumn = getNumberOfColumns(); - if (maxColumn == -1) - initalVectorsWithSingleZero(); - else - initalVectors(maxColumn); + if (maxColumn == -1) + initalVectorsWithSingleZero(); + else + initalVectors(maxColumn); } void BoundaryValues::initalVectors(unsigned int maxColumn) { - for (unsigned int level = 0; level <= maxLevel; level++) - { - readLevelSize(level); + for (unsigned int level = 0; level <= maxLevel; level++) + { + readLevelSize(level); - if (levelSizes[level] == 0) - { - skipLine(); - continue; - } + if (levelSizes[level] == 0) + { + skipLine(); + continue; + } - resizeVectorsPerLevel(level, maxColumn); + resizeVectorsPerLevel(level, maxColumn); - for (unsigned int index = 0; index < levelSizes[level]; index++) - readData(level, index, maxColumn); + for (unsigned int index = 0; index < levelSizes[level]; index++) + readData(level, index, maxColumn); - } + } } void BoundaryValues::readData(unsigned int level, int index, unsigned int maxColumn) { - file >> indices[level][index]; - for (unsigned int column = 0; column < maxColumn; column++) - file >> values[level][column][index]; + file >> indices[level][index]; + for (unsigned int column = 0; column < maxColumn; column++) + file >> values[level][column][index]; } void BoundaryValues::resizeVectorsPerLevel(unsigned int level, unsigned int maxColumn) { - values[level].resize(maxColumn); - indices[level].resize(levelSizes[level]); - for (unsigned int column = 0; column < maxColumn; column++) - values[level][column].resize(levelSizes[level]); + values[level].resize(maxColumn); + indices[level].resize(levelSizes[level]); + for (unsigned int column = 0; column < maxColumn; column++) + values[level][column].resize(levelSizes[level]); } void BoundaryValues::skipLine() { - std::string bufferString; - getline(file, bufferString); + std::string bufferString; + getline(file, bufferString); } void BoundaryValues::readLevelSize(unsigned int level) { - file >> levelSizes[level]; + file >> levelSizes[level]; } void BoundaryValues::initalVectorsWithSingleZero() { - indices = { {0} }; - values = { { {0.0} } }; + indices = { {0} }; + values = { { {0.0} } }; } void BoundaryValues::readNumberOfLevels() { - file >> maxLevel; + file >> maxLevel; } void BoundaryValues::readBC() { - file >> boundaryCondition; + file >> boundaryCondition; } void BoundaryValues::resizeVectors() { - levelSizes.resize(maxLevel + 1); - values.resize(maxLevel + 1); - indices.resize(maxLevel + 1); + levelSizes.resize(maxLevel + 1); + values.resize(maxLevel + 1); + indices.resize(maxLevel + 1); } void BoundaryValues::setBoundarys(std::vector<std::vector<std::vector<real> > > &qs) const { - for (unsigned int level = 0; level < values.size(); level++) - for (unsigned int index = 0; index < values[level].size(); index++) - for (unsigned int value = 0; value < values[level][index].size(); value++) - qs[level][index].push_back(values[level][index][value]); + for (unsigned int level = 0; level < values.size(); level++) + for (unsigned int index = 0; index < values[level].size(); index++) + for (unsigned int value = 0; value < values[level][index].size(); value++) + qs[level][index].push_back(values[level][index][value]); } void BoundaryValues::setValues(real* velo, unsigned int level, unsigned int column) const { - for (std::size_t index = 0; index < values[level][column].size(); index++) - velo[index] = values[level][column][index]; + for (std::size_t index = 0; index < values[level][column].size(); index++) + velo[index] = values[level][column][index]; } void BoundaryValues::initIndex(/*unsigned*/ int *ptr, unsigned int level) { - for (std::size_t i = 0; i < indices[level].size(); i++) - ptr[i] = indices[level][i]; + for (std::size_t i = 0; i < indices[level].size(); i++) + ptr[i] = indices[level][i]; } unsigned int BoundaryValues::getLevel() { - return maxLevel; + return maxLevel; } unsigned int BoundaryValues::getSize(unsigned int level) { - return this->levelSizes[level]; + return this->levelSizes[level]; } std::string BoundaryValues::getBoundaryCondition() { - return this->boundaryCondition; + return this->boundaryCondition; } void BoundaryValues::setProcNeighbor(bool pN) { - procNeighbor = pN; + procNeighbor = pN; } bool BoundaryValues::getProcNeighbor() { - return procNeighbor; + return procNeighbor; } void BoundaryValues::setPressValues(real *RhoBC, int* kN, int level) const { - for (std::size_t column = 0; column < values[level].size(); column++) { - for (std::size_t index = 0; index < values[level][column].size(); index++) { - if (column == 0) RhoBC[index] = values[level][column][index]; - if (column == 1) kN[index] = (int)values[level][column][index]; - } - } + for (std::size_t column = 0; column < values[level].size(); column++) { + for (std::size_t index = 0; index < values[level][column].size(); index++) { + if (column == 0) RhoBC[index] = values[level][column][index]; + if (column == 1) kN[index] = (int)values[level][column][index]; + } + } } void BoundaryValues::setVelocityValues(real *vx, real *vy, real *vz, int level) const { - for (std::size_t column = 0; column < values[level].size(); column++) { - for (std::size_t index = 0; index < values[level][column].size(); index++) { - if (column == 0) vx[index] = values[level][column][index]; - if (column == 1) vy[index] = values[level][column][index]; - if (column == 2) vz[index] = values[level][column][index]; - } - } + for (std::size_t column = 0; column < values[level].size(); column++) { + for (std::size_t index = 0; index < values[level][column].size(); index++) { + if (column == 0) vx[index] = values[level][column][index]; + if (column == 1) vy[index] = values[level][column][index]; + if (column == 2) vz[index] = values[level][column][index]; + } + } } void BoundaryValues::setOutflowValues(real *RhoBC, int* kN, int level) const { - for (std::size_t column = 0; column < values[level].size(); column++) { - for (std::size_t index = 0; index < values[level][column].size(); index++) { - if (column == 0) RhoBC[index] = values[level][column][index]; - if (column == 1) kN[index] = (int)values[level][column][index]; - } - } + for (std::size_t column = 0; column < values[level].size(); column++) { + for (std::size_t index = 0; index < values[level][column].size(); index++) { + if (column == 0) RhoBC[index] = values[level][column][index]; + if (column == 1) kN[index] = (int)values[level][column][index]; + } + } } diff --git a/src/gpu/core/DataStructureInitializer/GridReaderFiles/BoundaryValues.h b/src/gpu/core/DataStructureInitializer/GridReaderFiles/BoundaryValues.h index da3693d5c7e7fcf3c8879ec14464050359a44e28..903893f21574da02c1bd7ae7022624b033ced8d1 100644 --- a/src/gpu/core/DataStructureInitializer/GridReaderFiles/BoundaryValues.h +++ b/src/gpu/core/DataStructureInitializer/GridReaderFiles/BoundaryValues.h @@ -13,48 +13,48 @@ class Parameter; class BoundaryValues { private: - std::string boundaryCondition; - bool procNeighbor; + std::string boundaryCondition; + bool procNeighbor; - std::vector< std::vector<std::vector<real> > >values; - std::vector< std::vector<unsigned int> >indices; - std::vector<unsigned int> levelSizes; + std::vector< std::vector<std::vector<real> > >values; + std::vector< std::vector<unsigned int> >indices; + std::vector<unsigned int> levelSizes; - std::ifstream file; - unsigned int maxLevel; - + std::ifstream file; + unsigned int maxLevel; + public: - BoundaryValues(std::string path); - BoundaryValues(std::string path, std::shared_ptr<Parameter> para, std::string str); - BoundaryValues(int neighbor, std::shared_ptr<Parameter> para, std::string sor, std::string dir); - ~BoundaryValues(); + BoundaryValues(std::string path); + BoundaryValues(std::string path, std::shared_ptr<Parameter> para, std::string str); + BoundaryValues(int neighbor, std::shared_ptr<Parameter> para, std::string sor, std::string dir); + ~BoundaryValues(); - unsigned int getLevel(); - unsigned int getSize(unsigned int level); - std::string getBoundaryCondition(); - void setBoundarys(std::vector<std::vector<std::vector<real> > > &qs) const; - void setValues(real* velo, unsigned int level, unsigned int column) const; - void initIndex(/*unsigned*/ int *ptr, unsigned int level); + unsigned int getLevel(); + unsigned int getSize(unsigned int level); + std::string getBoundaryCondition(); + void setBoundarys(std::vector<std::vector<std::vector<real> > > &qs) const; + void setValues(real* velo, unsigned int level, unsigned int column) const; + void initIndex(/*unsigned*/ int *ptr, unsigned int level); - void setProcNeighbor(bool pN); - bool getProcNeighbor(); + void setProcNeighbor(bool pN); + bool getProcNeighbor(); - void setPressValues(real *RhoBC, int* kN, int level) const; - void setVelocityValues(real *vx, real *vy, real *vz, int level) const; - void setOutflowValues(real *RhoBC, int* kN, int level) const; + void setPressValues(real *RhoBC, int* kN, int level) const; + void setVelocityValues(real *vx, real *vy, real *vz, int level) const; + void setOutflowValues(real *RhoBC, int* kN, int level) const; private: - void init(); - int getNumberOfColumns(); - void initalVectors(unsigned int maxColumn); - void readData(unsigned int level, int index, unsigned int maxColumn); - void resizeVectorsPerLevel(unsigned int level, unsigned int maxColumn); - void skipLine(); - void readLevelSize(unsigned int level); - void initalVectorsWithSingleZero(); - void readNumberOfLevels(); - void readBC(); - void resizeVectors(); + void init(); + int getNumberOfColumns(); + void initalVectors(unsigned int maxColumn); + void readData(unsigned int level, int index, unsigned int maxColumn); + void resizeVectorsPerLevel(unsigned int level, unsigned int maxColumn); + void skipLine(); + void readLevelSize(unsigned int level); + void initalVectorsWithSingleZero(); + void readNumberOfLevels(); + void readBC(); + void resizeVectors(); }; diff --git a/src/gpu/core/DataStructureInitializer/GridReaderFiles/CoordNeighborGeoV.cpp b/src/gpu/core/DataStructureInitializer/GridReaderFiles/CoordNeighborGeoV.cpp index 4b857e0d4f7d8bcab407eb8954235d23c9325395..c973f19b319c2d09fe2c1a4de9c6b4b58295f595 100644 --- a/src/gpu/core/DataStructureInitializer/GridReaderFiles/CoordNeighborGeoV.cpp +++ b/src/gpu/core/DataStructureInitializer/GridReaderFiles/CoordNeighborGeoV.cpp @@ -12,152 +12,152 @@ CoordNeighborGeoV::CoordNeighborGeoV() CoordNeighborGeoV::CoordNeighborGeoV(std::string path, bool binaer, bool coord) { - file.open(path.c_str(), std::ios::in | std::ios::binary); - if (!file) - { - std::cerr << "error: can not open file CoordNeighborGeo: " << path << std::endl; - exit(1); - } - if(binaer) - init_Binary(coord); - else - init(coord); + file.open(path.c_str(), std::ios::in | std::ios::binary); + if (!file) + { + std::cerr << "error: can not open file CoordNeighborGeo: " << path << std::endl; + exit(1); + } + if(binaer) + init_Binary(coord); + else + init(coord); } CoordNeighborGeoV::~CoordNeighborGeoV() { - file.close(); + file.close(); } void CoordNeighborGeoV::init(bool isCoord) { - this->readLevel(); - resizeVectors(); + this->readLevel(); + resizeVectors(); - for (unsigned int i = 0; i <= maxLevel; i++) - { - readLevelSize(i); - if (isCoord) - { - coordinates[i].resize(levelSizes[i] + 1); - for (unsigned int j = 0; j <= levelSizes[i]; j++) - file >> coordinates[i][j]; - } - else - { - neighbors[i].resize(levelSizes[i] + 1); - for (unsigned int j = 0; j <= levelSizes[i]; j++) - file >> neighbors[i][j]; - } - } + for (unsigned int i = 0; i <= maxLevel; i++) + { + readLevelSize(i); + if (isCoord) + { + coordinates[i].resize(levelSizes[i] + 1); + for (unsigned int j = 0; j <= levelSizes[i]; j++) + file >> coordinates[i][j]; + } + else + { + neighbors[i].resize(levelSizes[i] + 1); + for (unsigned int j = 0; j <= levelSizes[i]; j++) + file >> neighbors[i][j]; + } + } } void CoordNeighborGeoV::resizeVectors() { - levelSizes.resize(maxLevel + 1); - coordinates.resize(maxLevel + 1); - neighbors.resize(maxLevel + 1); + levelSizes.resize(maxLevel + 1); + coordinates.resize(maxLevel + 1); + neighbors.resize(maxLevel + 1); } void CoordNeighborGeoV::readLevel() { - file >> this->maxLevel; + file >> this->maxLevel; } void CoordNeighborGeoV::init_Binary(bool isCoord) { - this->readLevel(); - this->resizeVectors(); + this->readLevel(); + this->resizeVectors(); - readLevelSize(0); + readLevelSize(0); - for(unsigned int level = 0; level <= maxLevel; level++) - { + for(unsigned int level = 0; level <= maxLevel; level++) + { //readLevelSize(level); - if(isCoord) - readCoordinates(level); - else - readNeighbors(level); + if(isCoord) + readCoordinates(level); + else + readNeighbors(level); - if(level == maxLevel) break; + if(level == maxLevel) break; - skipSpace(); - readLevelSize(level+1); - } + skipSpace(); + readLevelSize(level+1); + } } void CoordNeighborGeoV::readLevelSize(unsigned int level) { - file >> levelSizes[level]; + file >> levelSizes[level]; } void CoordNeighborGeoV::readNeighbors(unsigned int level) { - unsigned int bufferInt; - neighbors[level].resize(levelSizes[level] + 1); - file >> neighbors[level][0]; - skipSpace(); + unsigned int bufferInt; + neighbors[level].resize(levelSizes[level] + 1); + file >> neighbors[level][0]; + skipSpace(); - for (unsigned int j = 0; j < levelSizes[level]; j++) - { - file.read((char*)&bufferInt, sizeof(unsigned int)); - neighbors[level][j + 1] = bufferInt; - } + for (unsigned int j = 0; j < levelSizes[level]; j++) + { + file.read((char*)&bufferInt, sizeof(unsigned int)); + neighbors[level][j + 1] = bufferInt; + } } void CoordNeighborGeoV::readCoordinates(unsigned int level) { - double bufferDouble; - coordinates[level].resize(levelSizes[level] + 1); - file >> coordinates[level][0]; - skipSpace(); + double bufferDouble; + coordinates[level].resize(levelSizes[level] + 1); + file >> coordinates[level][0]; + skipSpace(); - for (unsigned int j = 0; j < levelSizes[level]; j++) - { - file.read((char*)&bufferDouble, sizeof(double)); - coordinates[level][j + 1] = (real)bufferDouble; - } + for (unsigned int j = 0; j < levelSizes[level]; j++) + { + file.read((char*)&bufferDouble, sizeof(double)); + coordinates[level][j + 1] = (real)bufferDouble; + } } unsigned int CoordNeighborGeoV::getLevel() { - return maxLevel; + return maxLevel; } unsigned int CoordNeighborGeoV::getSize(unsigned int level) { - return this->levelSizes[level]; + return this->levelSizes[level]; } std::vector<unsigned int> CoordNeighborGeoV::getVec(unsigned int level) { - return this->neighbors[level]; + return this->neighbors[level]; } void CoordNeighborGeoV::setVec(unsigned int level, std::vector<unsigned int> vec) { - this->neighbors[level]=vec; - //for (int i=0; i<=2200; i++) { - //std::cout <<"Test im Setter: "<< i <<": " << vec[i] << std::endl; - //} + this->neighbors[level]=vec; + //for (int i=0; i<=2200; i++) { + //std::cout <<"Test im Setter: "<< i <<": " << vec[i] << std::endl; + //} } void CoordNeighborGeoV::initalCoords(real *data, unsigned int level) const { - for (std::size_t index = 0; index < coordinates[level].size(); index++) - data[index] = coordinates[level][index]; + for (std::size_t index = 0; index < coordinates[level].size(); index++) + data[index] = coordinates[level][index]; } void CoordNeighborGeoV::initalNeighbors(unsigned int *data, unsigned int level) const { - for (std::size_t index = 0; index < neighbors[level].size(); index++) - data[index] = neighbors[level][index]; + for (std::size_t index = 0; index < neighbors[level].size(); index++) + data[index] = neighbors[level][index]; } void CoordNeighborGeoV::skipSpace() { - char c; - file.get(c); + char c; + file.get(c); } diff --git a/src/gpu/core/DataStructureInitializer/GridReaderFiles/CoordNeighborGeoV.h b/src/gpu/core/DataStructureInitializer/GridReaderFiles/CoordNeighborGeoV.h index 4de581a2c51448fabd012665269debd4f5bcf39b..416c8fae8e3b544d72b9ebeb48c411e387500942 100644 --- a/src/gpu/core/DataStructureInitializer/GridReaderFiles/CoordNeighborGeoV.h +++ b/src/gpu/core/DataStructureInitializer/GridReaderFiles/CoordNeighborGeoV.h @@ -10,35 +10,35 @@ class CoordNeighborGeoV { protected: - std::ifstream file; - unsigned int maxLevel; - std::vector<unsigned int> levelSizes; - std::vector< std::vector<unsigned int> > neighbors; - std::vector< std::vector< real> > coordinates; + std::ifstream file; + unsigned int maxLevel; + std::vector<unsigned int> levelSizes; + std::vector< std::vector<unsigned int> > neighbors; + std::vector< std::vector< real> > coordinates; public: - CoordNeighborGeoV(); - CoordNeighborGeoV(std::string ad, bool binaer, bool coord); - ~CoordNeighborGeoV(void); + CoordNeighborGeoV(); + CoordNeighborGeoV(std::string ad, bool binaer, bool coord); + ~CoordNeighborGeoV(void); - void init(bool coord); - void init_Binary(bool coord); + void init(bool coord); + void init_Binary(bool coord); - unsigned int getLevel(); - unsigned int getSize(unsigned int level); - std::vector<unsigned int>getVec(unsigned int level); - void setVec(unsigned int level, std::vector<unsigned int> vec); + unsigned int getLevel(); + unsigned int getSize(unsigned int level); + std::vector<unsigned int>getVec(unsigned int level); + void setVec(unsigned int level, std::vector<unsigned int> vec); - void initalNeighbors(unsigned int *int_ptr, unsigned int level ) const; - void initalCoords(real *int_ptr, unsigned int level ) const; + void initalNeighbors(unsigned int *int_ptr, unsigned int level ) const; + void initalCoords(real *int_ptr, unsigned int level ) const; protected: - void skipSpace(); - void readLevelSize(unsigned int level); - void readNeighbors(unsigned int level); - void readCoordinates(unsigned int level); - void resizeVectors(); - void readLevel(); + void skipSpace(); + void readLevelSize(unsigned int level); + void readNeighbors(unsigned int level); + void readCoordinates(unsigned int level); + void resizeVectors(); + void readLevel(); }; diff --git a/src/gpu/core/DataStructureInitializer/GridReaderFiles/GridReader.cpp b/src/gpu/core/DataStructureInitializer/GridReaderFiles/GridReader.cpp index 0c306567a663be8c2dc3520c7965037c04efee24..af96315cdbb3e6dd53427a7480d1004fdc652fde 100644 --- a/src/gpu/core/DataStructureInitializer/GridReaderFiles/GridReader.cpp +++ b/src/gpu/core/DataStructureInitializer/GridReaderFiles/GridReader.cpp @@ -18,26 +18,26 @@ GridReader::GridReader(FILEFORMAT format, std::shared_ptr<Parameter> para, std:: this->para = para; this->cudaMemoryManager = cudaMemoryManager; - if (format == FILEFORMAT::ASCII) - this->binaer = false; - else - this->binaer = true; + if (format == FILEFORMAT::ASCII) + this->binaer = false; + else + this->binaer = true; - channelDirections.resize(6); - channelBoundaryConditions.resize(6); - BC_Values.resize(6); + channelDirections.resize(6); + channelBoundaryConditions.resize(6); + BC_Values.resize(6); - channelDirections[0] = "inlet"; - channelDirections[1] = "outlet"; - channelDirections[2] = "front"; - channelDirections[3] = "back"; - channelDirections[4] = "top"; - channelDirections[5] = "bottom"; + channelDirections[0] = "inlet"; + channelDirections[1] = "outlet"; + channelDirections[2] = "front"; + channelDirections[3] = "back"; + channelDirections[4] = "top"; + channelDirections[5] = "bottom"; } bool GridReader::getBinaer() { - return binaer; + return binaer; } void rearrangeGeometry(Parameter* para, int lev) @@ -55,18 +55,18 @@ void GridReader::allocArrays_CoordNeighborGeo() { VF_LOG_TRACE("-----Config Arrays Coord, Neighbor, Geo------"); - CoordNeighborGeoV coordX(para->getcoordX(), binaer, true); - CoordNeighborGeoV coordY(para->getcoordY(), binaer, true); - CoordNeighborGeoV coordZ(para->getcoordZ(), binaer, true); - neighX = std::shared_ptr<CoordNeighborGeoV>(new CoordNeighborGeoV(para->getneighborX(), binaer, false)); - neighY = std::shared_ptr<CoordNeighborGeoV>(new CoordNeighborGeoV(para->getneighborY(), binaer, false)); - neighZ = std::shared_ptr<CoordNeighborGeoV>(new CoordNeighborGeoV(para->getneighborZ(), binaer, false)); + CoordNeighborGeoV coordX(para->getcoordX(), binaer, true); + CoordNeighborGeoV coordY(para->getcoordY(), binaer, true); + CoordNeighborGeoV coordZ(para->getcoordZ(), binaer, true); + neighX = std::shared_ptr<CoordNeighborGeoV>(new CoordNeighborGeoV(para->getneighborX(), binaer, false)); + neighY = std::shared_ptr<CoordNeighborGeoV>(new CoordNeighborGeoV(para->getneighborY(), binaer, false)); + neighZ = std::shared_ptr<CoordNeighborGeoV>(new CoordNeighborGeoV(para->getneighborZ(), binaer, false)); neighWSB = std::shared_ptr<CoordNeighborGeoV>(new CoordNeighborGeoV(para->getneighborWSB(), binaer, false)); CoordNeighborGeoV geoV(para->getgeoVec(), binaer, false); - uint maxLevel = coordX.getLevel(); + uint maxLevel = coordX.getLevel(); VF_LOG_INFO("Number of Level: {}", maxLevel + 1); - uint numberOfNodesGlobal = 0; + uint numberOfNodesGlobal = 0; VF_LOG_INFO("Number of Nodes: "); for (uint level = 0; level <= maxLevel; level++) @@ -75,28 +75,28 @@ void GridReader::allocArrays_CoordNeighborGeo() numberOfNodesGlobal += numberOfNodesPerLevel; VF_LOG_INFO("Level {} = {} Nodes", level, numberOfNodesPerLevel); - setNumberOfNodes(numberOfNodesPerLevel, level); + setNumberOfNodes(numberOfNodesPerLevel, level); cudaMemoryManager->cudaAllocCoord(level); - cudaMemoryManager->cudaAllocSP(level); + cudaMemoryManager->cudaAllocSP(level); //cudaMemoryManager->cudaAllocF3SP(level); cudaMemoryManager->cudaAllocNeighborWSB(level); - coordX.initalCoords( para->getParH(level)->coordinateX, level); - coordY.initalCoords( para->getParH(level)->coordinateY, level); - coordZ.initalCoords( para->getParH(level)->coordinateZ, level); - neighX->initalNeighbors( para->getParH(level)->neighborX, level); - neighY->initalNeighbors( para->getParH(level)->neighborY, level); - neighZ->initalNeighbors( para->getParH(level)->neighborZ, level); + coordX.initalCoords( para->getParH(level)->coordinateX, level); + coordY.initalCoords( para->getParH(level)->coordinateY, level); + coordZ.initalCoords( para->getParH(level)->coordinateZ, level); + neighX->initalNeighbors( para->getParH(level)->neighborX, level); + neighY->initalNeighbors( para->getParH(level)->neighborY, level); + neighZ->initalNeighbors( para->getParH(level)->neighborZ, level); neighWSB->initalNeighbors(para->getParH(level)->neighborInverse, level); geoV.initalNeighbors( para->getParH(level)->typeOfGridNode, level); rearrangeGeometry(para.get(), level); - setInitialNodeValues(numberOfNodesPerLevel, level); + setInitialNodeValues(numberOfNodesPerLevel, level); cudaMemoryManager->cudaCopyNeighborWSB(level); cudaMemoryManager->cudaCopySP(level); cudaMemoryManager->cudaCopyCoord(level); - } + } VF_LOG_INFO("Number of Nodes: {}", numberOfNodesGlobal); VF_LOG_TRACE("-----finish Config Arrays Coord, Neighbor, Geo------"); } @@ -106,11 +106,11 @@ void GridReader::allocArrays_BoundaryValues() VF_LOG_TRACE("------read BoundaryValues-------"); - this->makeReader(para); - this->setChannelBoundaryCondition(); - int level = BC_Values[0]->getLevel(); + this->makeReader(para); + this->setChannelBoundaryCondition(); + int level = BC_Values[0]->getLevel(); - for (int i = 0; i <= level; i++) { + for (int i = 0; i <= level; i++) { velocityX_BCvalues.push_back(std::vector<real>()); velocityY_BCvalues.push_back(std::vector<real>()); velocityZ_BCvalues.push_back(std::vector<real>()); @@ -128,9 +128,9 @@ void GridReader::allocArrays_BoundaryValues() else if (this->channelBoundaryConditions[i] == "outflow") { setOutflowValues(i); } } - setVelocityValues(); + setVelocityValues(); - initalValuesDomainDecompostion(level); + initalValuesDomainDecompostion(level); } void GridReader::allocArrays_OffsetScale() @@ -167,10 +167,10 @@ void GridReader::allocArrays_OffsetScale() para->getParD(i)->fineToCoarse.numberOfCells = para->getParH(i)->fineToCoarse.numberOfCells; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //alloc - cudaMemoryManager->cudaAllocInterfaceCF(i); - cudaMemoryManager->cudaAllocInterfaceFC(i); - cudaMemoryManager->cudaAllocInterfaceOffCF(i); - cudaMemoryManager->cudaAllocInterfaceOffFC(i); + cudaMemoryManager->cudaAllocInterfaceCF(i); + cudaMemoryManager->cudaAllocInterfaceFC(i); + cudaMemoryManager->cudaAllocInterfaceOffCF(i); + cudaMemoryManager->cudaAllocInterfaceOffFC(i); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //init obj_offCF->initArrayOffset(para->getParH(i)->neighborCoarseToFine.x, para->getParH(i)->neighborCoarseToFine.y, para->getParH(i)->neighborCoarseToFine.z, i); @@ -181,10 +181,10 @@ void GridReader::allocArrays_OffsetScale() obj_scaleFCF->initScale(para->getParH(i)->fineToCoarse.fineCellIndices, i); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //copy - cudaMemoryManager->cudaCopyInterfaceCF(i); - cudaMemoryManager->cudaCopyInterfaceFC(i); - cudaMemoryManager->cudaCopyInterfaceOffCF(i); - cudaMemoryManager->cudaCopyInterfaceOffFC(i); + cudaMemoryManager->cudaCopyInterfaceCF(i); + cudaMemoryManager->cudaCopyInterfaceFC(i); + cudaMemoryManager->cudaCopyInterfaceOffCF(i); + cudaMemoryManager->cudaCopyInterfaceOffFC(i); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// } VF_LOG_INFO("Total number of Nodes CF = {}", AnzahlKnotenGesCF); @@ -201,7 +201,7 @@ void GridReader::allocArrays_OffsetScale() void GridReader::allocArrays_taggedFluidNodes() { VF_LOG_WARNING("GridReader::allocArrays_fluidNodeIndices not implemented"); - // TODO + // TODO } void GridReader::tagFluidNodeIndices(const std::vector<uint>& taggedFluidNodeIndices, CollisionTemplate tag, uint level){ @@ -216,39 +216,39 @@ void GridReader::sortFluidNodeTags(){ void GridReader::setPressureValues(int channelSide) const { - for (unsigned int level = 0; level <= BC_Values[channelSide]->getLevel(); level++) - { - int sizePerLevel = BC_Values[channelSide]->getSize(level); + for (unsigned int level = 0; level <= BC_Values[channelSide]->getLevel(); level++) + { + int sizePerLevel = BC_Values[channelSide]->getSize(level); setPressSizePerLevel(level, sizePerLevel); - if (sizePerLevel > 0) - { + if (sizePerLevel > 0) + { VF_LOG_INFO("size pressure level {}: {}", level, sizePerLevel); cudaMemoryManager->cudaAllocPress(level); - setPressRhoBC(sizePerLevel, level, channelSide); + setPressRhoBC(sizePerLevel, level, channelSide); cudaMemoryManager->cudaCopyPress(level); - } - } + } + } } void GridReader::setPressRhoBC(int sizePerLevel, int level, int channelSide) const { - BC_Values[channelSide]->setPressValues(para->getParH(level)->pressureBC.RhoBC, para->getParH(level)->pressureBC.kN, level); - for (int m = 0; m < sizePerLevel; m++) - para->getParH(level)->pressureBC.RhoBC[m] = (para->getParH(level)->pressureBC.RhoBC[m] / para->getFactorPressBC()); + BC_Values[channelSide]->setPressValues(para->getParH(level)->pressureBC.RhoBC, para->getParH(level)->pressureBC.kN, level); + for (int m = 0; m < sizePerLevel; m++) + para->getParH(level)->pressureBC.RhoBC[m] = (para->getParH(level)->pressureBC.RhoBC[m] / para->getFactorPressBC()); } void GridReader::fillVelocityVectors(int channelSide) { for (unsigned int level = 0; level <= BC_Values[channelSide]->getLevel(); level++) - { - const int sizePerLevel = BC_Values[channelSide]->getSize(level); + { + const int sizePerLevel = BC_Values[channelSide]->getSize(level); - if (sizePerLevel > 1) - { + if (sizePerLevel > 1) + { // set local vectors per side and level real *veloX_ValuesPerSide = new real[sizePerLevel]; real *veloY_ValuesPerSide = new real[sizePerLevel]; @@ -263,7 +263,7 @@ void GridReader::fillVelocityVectors(int channelSide) this->velocityZ_BCvalues[level].push_back(veloZ_ValuesPerSide[i]); } - delete[] veloX_ValuesPerSide; + delete[] veloX_ValuesPerSide; delete[] veloY_ValuesPerSide; delete[] veloZ_ValuesPerSide; } @@ -289,283 +289,283 @@ void GridReader::setVelocityValues() { void GridReader::setVelocity(int level, int sizePerLevel) const { - for (int index = 0; index < sizePerLevel; index++) - { + for (int index = 0; index < sizePerLevel; index++) + { para->getParH(level)->velocityBC.Vx[index] = this->velocityX_BCvalues[level][index] / para->getVelocityRatio(); para->getParH(level)->velocityBC.Vy[index] = this->velocityY_BCvalues[level][index] / para->getVelocityRatio(); para->getParH(level)->velocityBC.Vz[index] = this->velocityZ_BCvalues[level][index] / para->getVelocityRatio(); - } + } } void GridReader::setOutflowValues(int channelSide) const { - for (unsigned int level = 0; level <= BC_Values[channelSide]->getLevel(); level++) - { - int sizePerLevel = BC_Values[channelSide]->getSize(level); + for (unsigned int level = 0; level <= BC_Values[channelSide]->getLevel(); level++) + { + int sizePerLevel = BC_Values[channelSide]->getSize(level); setOutflowSizePerLevel(level, sizePerLevel); - if (sizePerLevel > 1) - { + if (sizePerLevel > 1) + { VF_LOG_INFO("size outflow level {}: {}", level, sizePerLevel); cudaMemoryManager->cudaAllocOutflowBC(level); - setOutflow(level, sizePerLevel, channelSide); + setOutflow(level, sizePerLevel, channelSide); cudaMemoryManager->cudaCopyOutflowBC(level); - } - } + } + } } void GridReader::setOutflow(int level, int sizePerLevel, int channelSide) const { - BC_Values[channelSide]->setOutflowValues(para->getParH(level)->outflowBC.RhoBC, para->getParH(level)->outflowBC.kN, level); - for (int index = 0; index < sizePerLevel; index++) - para->getParH(level)->outflowBC.RhoBC[index] = (para->getParH(level)->outflowBC.RhoBC[index] / para->getFactorPressBC()) * (real)0.0; + BC_Values[channelSide]->setOutflowValues(para->getParH(level)->outflowBC.RhoBC, para->getParH(level)->outflowBC.kN, level); + for (int index = 0; index < sizePerLevel; index++) + para->getParH(level)->outflowBC.RhoBC[index] = (para->getParH(level)->outflowBC.RhoBC[index] / para->getFactorPressBC()) * (real)0.0; } void GridReader::initalValuesDomainDecompostion(int level) { - //////////////////////////////////////////////////////////////////////// - //3D domain decomposition - std::vector< std::shared_ptr<BoundaryValues> > procNeighborsSendX, procNeighborsSendY, procNeighborsSendZ; - std::vector< std::shared_ptr<BoundaryValues> > procNeighborsRecvX, procNeighborsRecvY, procNeighborsRecvZ; - std::vector< int > neighborRankX, neighborRankY, neighborRankZ; - - if (para->getNumprocs() > 1) - { - for (int process = 0; process < para->getNumprocs(); process++) - { - std::shared_ptr<BoundaryValues> pnXsend = std::shared_ptr<BoundaryValues> (new BoundaryValues(process, para, "send", "X")); - std::shared_ptr<BoundaryValues> pnYsend = std::shared_ptr<BoundaryValues> (new BoundaryValues(process, para, "send", "Y")); - std::shared_ptr<BoundaryValues> pnZsend = std::shared_ptr<BoundaryValues> (new BoundaryValues(process, para, "send", "Z")); - std::shared_ptr<BoundaryValues> pnXrecv = std::shared_ptr<BoundaryValues> (new BoundaryValues(process, para, "recv", "X")); - std::shared_ptr<BoundaryValues> pnYrecv = std::shared_ptr<BoundaryValues> (new BoundaryValues(process, para, "recv", "Y")); - std::shared_ptr<BoundaryValues> pnZrecv = std::shared_ptr<BoundaryValues> (new BoundaryValues(process, para, "recv", "Z")); - if (para->getIsNeighborX()) - { - procNeighborsSendX.push_back(pnXsend); - procNeighborsRecvX.push_back(pnXrecv); - neighborRankX.push_back(process); - std::cout << "MyID: " << para->getMyProcessID() << ", neighborRankX: " << process << std::endl; - } - if (para->getIsNeighborY()) - { - procNeighborsSendY.push_back(pnYsend); - procNeighborsRecvY.push_back(pnYrecv); - neighborRankY.push_back(process); - std::cout << "MyID: " << para->getMyProcessID() << ", neighborRankY: " << process << std::endl; - } - if (para->getIsNeighborZ()) - { - procNeighborsSendZ.push_back(pnZsend); - procNeighborsRecvZ.push_back(pnZrecv); - neighborRankZ.push_back(process); - std::cout << "MyID: " << para->getMyProcessID() << ", neighborRankZ: " << process << std::endl; - } - } - std::cout << "MyID: " << para->getMyProcessID() << ", size of neighborRankX: " << neighborRankX.size() << ", size of neighborRankY: " << neighborRankY.size() << ", size of neighborRankZ: " << neighborRankZ.size() << std::endl; - } - - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //3D domain decomposition - // X - if ((para->getNumprocs() > 1) && (procNeighborsSendX.size() == procNeighborsRecvX.size())) - { - for (std::size_t 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 + //////////////////////////////////////////////////////////////////////// + //3D domain decomposition + std::vector< std::shared_ptr<BoundaryValues> > procNeighborsSendX, procNeighborsSendY, procNeighborsSendZ; + std::vector< std::shared_ptr<BoundaryValues> > procNeighborsRecvX, procNeighborsRecvY, procNeighborsRecvZ; + std::vector< int > neighborRankX, neighborRankY, neighborRankZ; + + if (para->getNumprocs() > 1) + { + for (int process = 0; process < para->getNumprocs(); process++) + { + std::shared_ptr<BoundaryValues> pnXsend = std::shared_ptr<BoundaryValues> (new BoundaryValues(process, para, "send", "X")); + std::shared_ptr<BoundaryValues> pnYsend = std::shared_ptr<BoundaryValues> (new BoundaryValues(process, para, "send", "Y")); + std::shared_ptr<BoundaryValues> pnZsend = std::shared_ptr<BoundaryValues> (new BoundaryValues(process, para, "send", "Z")); + std::shared_ptr<BoundaryValues> pnXrecv = std::shared_ptr<BoundaryValues> (new BoundaryValues(process, para, "recv", "X")); + std::shared_ptr<BoundaryValues> pnYrecv = std::shared_ptr<BoundaryValues> (new BoundaryValues(process, para, "recv", "Y")); + std::shared_ptr<BoundaryValues> pnZrecv = std::shared_ptr<BoundaryValues> (new BoundaryValues(process, para, "recv", "Z")); + if (para->getIsNeighborX()) + { + procNeighborsSendX.push_back(pnXsend); + procNeighborsRecvX.push_back(pnXrecv); + neighborRankX.push_back(process); + std::cout << "MyID: " << para->getMyProcessID() << ", neighborRankX: " << process << std::endl; + } + if (para->getIsNeighborY()) + { + procNeighborsSendY.push_back(pnYsend); + procNeighborsRecvY.push_back(pnYrecv); + neighborRankY.push_back(process); + std::cout << "MyID: " << para->getMyProcessID() << ", neighborRankY: " << process << std::endl; + } + if (para->getIsNeighborZ()) + { + procNeighborsSendZ.push_back(pnZsend); + procNeighborsRecvZ.push_back(pnZrecv); + neighborRankZ.push_back(process); + std::cout << "MyID: " << para->getMyProcessID() << ", neighborRankZ: " << process << std::endl; + } + } + std::cout << "MyID: " << para->getMyProcessID() << ", size of neighborRankX: " << neighborRankX.size() << ", size of neighborRankY: " << neighborRankY.size() << ", size of neighborRankZ: " << neighborRankZ.size() << std::endl; + } + + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //3D domain decomposition + // X + if ((para->getNumprocs() > 1) && (procNeighborsSendX.size() == procNeighborsRecvX.size())) + { + for (std::size_t 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 VF_LOG_INFO("size of Data for X send buffer, Level {} : {}", i, tempSend); - //////////////////////////////////////////////////////////////////////////////////////// - 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(real) *tempSend; - para->getParD(i)->sendProcessNeighborX[j].memsizeFs = sizeof(real) *tempSend; - //////////////////////////////////////////////////////////////////////////////////////// - //recv - std::cout << "size of Data for X receive buffer, Level " << i << " : " << tempRecv << std::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(real) *tempRecv; - para->getParD(i)->recvProcessNeighborX[j].memsizeFs = sizeof(real) *tempRecv; - //////////////////////////////////////////////////////////////////////////////////////// - //malloc on host and device + //////////////////////////////////////////////////////////////////////////////////////// + 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(real) *tempSend; + para->getParD(i)->sendProcessNeighborX[j].memsizeFs = sizeof(real) *tempSend; + //////////////////////////////////////////////////////////////////////////////////////// + //recv + std::cout << "size of Data for X receive buffer, Level " << i << " : " << tempRecv << std::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(real) *tempRecv; + para->getParD(i)->recvProcessNeighborX[j].memsizeFs = sizeof(real) *tempRecv; + //////////////////////////////////////////////////////////////////////////////////////// + //malloc on host and device cudaMemoryManager->cudaAllocProcessNeighborX(i, (uint)j); - //////////////////////////////////////////////////////////////////////////////////////// - //init index arrays - procNeighborsSendX[j]->initIndex(para->getParH(i)->sendProcessNeighborX[j].index, i); - procNeighborsRecvX[j]->initIndex(para->getParH(i)->recvProcessNeighborX[j].index, i); - //////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////////// + //init index arrays + procNeighborsSendX[j]->initIndex(para->getParH(i)->sendProcessNeighborX[j].index, i); + procNeighborsRecvX[j]->initIndex(para->getParH(i)->recvProcessNeighborX[j].index, i); + //////////////////////////////////////////////////////////////////////////////////////// cudaMemoryManager->cudaCopyProcessNeighborXIndex(i, (uint)j); - //////////////////////////////////////////////////////////////////////////////////////// - } - } - } - } - - ////////////////////////////////////////////////////////////////////////// - // Y - if ((para->getNumprocs() > 1) && (procNeighborsSendY.size() == procNeighborsRecvY.size())) - { - for (std::size_t 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 - std::cout << "size of Data for Y send buffer Level " << i << " : " << tempSend << std::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(real) *tempSend; - para->getParD(i)->sendProcessNeighborY[j].memsizeFs = sizeof(real) *tempSend; - //////////////////////////////////////////////////////////////////////////////////////// - //recv - std::cout << "size of Data for Y receive buffer, Level " << i << " : " << tempRecv << std::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(real) *tempRecv; - para->getParD(i)->recvProcessNeighborY[j].memsizeFs = sizeof(real) *tempRecv; - //////////////////////////////////////////////////////////////////////////////////////// - //malloc on host and device + //////////////////////////////////////////////////////////////////////////////////////// + } + } + } + } + + ////////////////////////////////////////////////////////////////////////// + // Y + if ((para->getNumprocs() > 1) && (procNeighborsSendY.size() == procNeighborsRecvY.size())) + { + for (std::size_t 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 + std::cout << "size of Data for Y send buffer Level " << i << " : " << tempSend << std::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(real) *tempSend; + para->getParD(i)->sendProcessNeighborY[j].memsizeFs = sizeof(real) *tempSend; + //////////////////////////////////////////////////////////////////////////////////////// + //recv + std::cout << "size of Data for Y receive buffer, Level " << i << " : " << tempRecv << std::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(real) *tempRecv; + para->getParD(i)->recvProcessNeighborY[j].memsizeFs = sizeof(real) *tempRecv; + //////////////////////////////////////////////////////////////////////////////////////// + //malloc on host and device cudaMemoryManager->cudaAllocProcessNeighborY(i, (uint)j); - //////////////////////////////////////////////////////////////////////////////////////// - //init index arrays - procNeighborsSendY[j]->initIndex(para->getParH(i)->sendProcessNeighborY[j].index, i); - procNeighborsRecvY[j]->initIndex(para->getParH(i)->recvProcessNeighborY[j].index, i); - //////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////////// + //init index arrays + procNeighborsSendY[j]->initIndex(para->getParH(i)->sendProcessNeighborY[j].index, i); + procNeighborsRecvY[j]->initIndex(para->getParH(i)->recvProcessNeighborY[j].index, i); + //////////////////////////////////////////////////////////////////////////////////////// cudaMemoryManager->cudaCopyProcessNeighborYIndex(i, (uint)j); - //////////////////////////////////////////////////////////////////////////////////////// - } - } - } - } - - ////////////////////////////////////////////////////////////////////////// - // Z - if ((para->getNumprocs() > 1) && (procNeighborsSendZ.size() == procNeighborsRecvZ.size())) - { - for (std::size_t 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 - std::cout << "size of Data for Z send buffer, Level " << i << " : " << tempSend << std::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(real) *tempSend; - para->getParD(i)->sendProcessNeighborZ[j].memsizeFs = sizeof(real) *tempSend; - //////////////////////////////////////////////////////////////////////////////////////// - //recv - std::cout << "size of Data for Z receive buffer, Level " << i << " : " << tempRecv << std::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(real) *tempRecv; - para->getParD(i)->recvProcessNeighborZ[j].memsizeFs = sizeof(real) *tempRecv; - //////////////////////////////////////////////////////////////////////////////////////// - //malloc on host and device + //////////////////////////////////////////////////////////////////////////////////////// + } + } + } + } + + ////////////////////////////////////////////////////////////////////////// + // Z + if ((para->getNumprocs() > 1) && (procNeighborsSendZ.size() == procNeighborsRecvZ.size())) + { + for (std::size_t 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 + std::cout << "size of Data for Z send buffer, Level " << i << " : " << tempSend << std::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(real) *tempSend; + para->getParD(i)->sendProcessNeighborZ[j].memsizeFs = sizeof(real) *tempSend; + //////////////////////////////////////////////////////////////////////////////////////// + //recv + std::cout << "size of Data for Z receive buffer, Level " << i << " : " << tempRecv << std::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(real) *tempRecv; + para->getParD(i)->recvProcessNeighborZ[j].memsizeFs = sizeof(real) *tempRecv; + //////////////////////////////////////////////////////////////////////////////////////// + //malloc on host and device cudaMemoryManager->cudaAllocProcessNeighborZ(i, (uint)j); - //////////////////////////////////////////////////////////////////////////////////////// - //init index arrays - procNeighborsSendZ[j]->initIndex(para->getParH(i)->sendProcessNeighborZ[j].index, i); - procNeighborsRecvZ[j]->initIndex(para->getParH(i)->recvProcessNeighborZ[j].index, i); - //////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////////// + //init index arrays + procNeighborsSendZ[j]->initIndex(para->getParH(i)->sendProcessNeighborZ[j].index, i); + procNeighborsRecvZ[j]->initIndex(para->getParH(i)->recvProcessNeighborZ[j].index, i); + //////////////////////////////////////////////////////////////////////////////////////// cudaMemoryManager->cudaCopyProcessNeighborZIndex(i, (uint)j); - //////////////////////////////////////////////////////////////////////////////////////// - } - } - } - } + //////////////////////////////////////////////////////////////////////////////////////// + } + } + } + } } void GridReader::allocArrays_BoundaryQs() { VF_LOG_TRACE("------read BoundaryQs-------"); - std::vector<std::shared_ptr<BoundaryQs> > BC_Qs(channelDirections.size()); - this->makeReader(BC_Qs, para); + std::vector<std::shared_ptr<BoundaryQs> > BC_Qs(channelDirections.size()); + this->makeReader(BC_Qs, para); - for (std::size_t i = 0; i < channelBoundaryConditions.size(); i++) - { - if ( this->channelBoundaryConditions[i] == "noSlip" ) { setNoSlipQs(BC_Qs[i]); } - else if (this->channelBoundaryConditions[i] == "velocity") { setVelocityQs(BC_Qs[i]); } - else if (this->channelBoundaryConditions[i] == "pressure") { setPressQs(BC_Qs[i]); } - else if (this->channelBoundaryConditions[i] == "outflow" ) { setOutflowQs(BC_Qs[i]); } - } + for (std::size_t i = 0; i < channelBoundaryConditions.size(); i++) + { + if ( this->channelBoundaryConditions[i] == "noSlip" ) { setNoSlipQs(BC_Qs[i]); } + else if (this->channelBoundaryConditions[i] == "velocity") { setVelocityQs(BC_Qs[i]); } + else if (this->channelBoundaryConditions[i] == "pressure") { setPressQs(BC_Qs[i]); } + else if (this->channelBoundaryConditions[i] == "outflow" ) { setOutflowQs(BC_Qs[i]); } + } - for (int lev = 0; lev < (int)(velocityIndex.size()); lev++) { + for (int lev = 0; lev < (int)(velocityIndex.size()); lev++) { if (velocityIndex[lev].size() > 1) { copyVectorsToQStruct(velocityQs[lev], velocityIndex[lev], para->getParH(lev)->velocityBC); cudaMemoryManager->cudaCopyVeloBC(lev); } } - std::shared_ptr<BoundaryQs> obj_geomQ = std::shared_ptr<BoundaryQs>(new BoundaryQs(para->getgeomBoundaryBcQs(), para, "geo", false)); - if (para->getIsGeo()) - setGeoQs(obj_geomQ); + std::shared_ptr<BoundaryQs> obj_geomQ = std::shared_ptr<BoundaryQs>(new BoundaryQs(para->getgeomBoundaryBcQs(), para, "geo", false)); + if (para->getIsGeo()) + setGeoQs(obj_geomQ); - VF_LOG_TRACE("------finish BoundaryQs-------"); + VF_LOG_TRACE("------finish BoundaryQs-------"); } @@ -574,80 +574,80 @@ void GridReader::allocArrays_BoundaryQs() /*------------------------------------------------------------------------------------------------*/ void GridReader::setPressQs(std::shared_ptr<BoundaryQs> boundaryQ) const { - for (unsigned int level = 0; level <= boundaryQ->getLevel(); level++) - { - if (hasQs(boundaryQ, level)) - { - this->printQSize("pressure", boundaryQ, level); - this->initalQStruct(para->getParH(level)->pressureBC, boundaryQ, level); + for (unsigned int level = 0; level <= boundaryQ->getLevel(); level++) + { + if (hasQs(boundaryQ, level)) + { + this->printQSize("pressure", boundaryQ, level); + this->initalQStruct(para->getParH(level)->pressureBC, boundaryQ, level); cudaMemoryManager->cudaCopyPress(level); - } - } + } + } } void GridReader::setVelocityQs(std::shared_ptr<BoundaryQs> boundaryQ) { - for (unsigned int level = 0; level <= boundaryQ->getLevel(); level++) - { - if (hasQs(boundaryQ, level)) - { - this->printQSize("velocity", boundaryQ, level); + for (unsigned int level = 0; level <= boundaryQ->getLevel(); level++) + { + if (hasQs(boundaryQ, level)) + { + this->printQSize("velocity", boundaryQ, level); this->initalVectorForQStruct(velocityQs, velocityIndex, boundaryQ, level); - } - } + } + } } void GridReader::setOutflowQs(std::shared_ptr<BoundaryQs> boundaryQ) const { - for (unsigned int level = 0; level <= boundaryQ->getLevel(); level++) - { - if (hasQs(boundaryQ, level)) - { - this->printQSize("outflow", boundaryQ, level); - this->initalQStruct(para->getParH(level)->outflowBC, boundaryQ, level); + for (unsigned int level = 0; level <= boundaryQ->getLevel(); level++) + { + if (hasQs(boundaryQ, level)) + { + this->printQSize("outflow", boundaryQ, level); + this->initalQStruct(para->getParH(level)->outflowBC, boundaryQ, level); cudaMemoryManager->cudaCopyOutflowBC(level); - } - } + } + } } void GridReader::setNoSlipQs(std::shared_ptr<BoundaryQs> boundaryQ) const { - for (unsigned int level = 0; level <= boundaryQ->getLevel(); level++) - { - if (hasQs(boundaryQ, level)) - { - this->printQSize("no slip", boundaryQ, level); - this->setSizeNoSlip(boundaryQ, level); - this->initalQStruct(para->getParH(level)->noSlipBC, boundaryQ, level); + for (unsigned int level = 0; level <= boundaryQ->getLevel(); level++) + { + if (hasQs(boundaryQ, level)) + { + this->printQSize("no slip", boundaryQ, level); + this->setSizeNoSlip(boundaryQ, level); + this->initalQStruct(para->getParH(level)->noSlipBC, boundaryQ, level); cudaMemoryManager->cudaCopyNoSlipBC(level); - } - } + } + } } void GridReader::setGeoQs(std::shared_ptr<BoundaryQs> boundaryQ) const { - for (unsigned int level = 0; level <= boundaryQ->getLevel(); level++) - { - if (hasQs(boundaryQ, level)) - { - this->printQSize("geo Qs", boundaryQ, level); - this->setSizeGeoQs(boundaryQ, level); - this->initalQStruct(para->getParH(level)->geometryBC, boundaryQ, level); + for (unsigned int level = 0; level <= boundaryQ->getLevel(); level++) + { + if (hasQs(boundaryQ, level)) + { + this->printQSize("geo Qs", boundaryQ, level); + this->setSizeGeoQs(boundaryQ, level); + this->initalQStruct(para->getParH(level)->geometryBC, boundaryQ, level); - modifyQElement(boundaryQ, level); + modifyQElement(boundaryQ, level); cudaMemoryManager->cudaCopyGeomBC(level); - } - } + } + } } void GridReader::modifyQElement(std::shared_ptr<BoundaryQs> boundaryQ, unsigned int level) const { - QforBoundaryConditions Q; - real* QQ = para->getParH(level)->geometryBC.q27[0]; - Q.q27[vf::lbm::dir::d000] = &QQ[vf::lbm::dir::d000 * para->getParH(level)->geometryBC.numberOfBCnodes]; - for (unsigned int i = 0; i < boundaryQ->getSize(level); i++) - Q.q27[vf::lbm::dir::d000][i] = 0.0f; + QforBoundaryConditions Q; + real* QQ = para->getParH(level)->geometryBC.q27[0]; + Q.q27[vf::lbm::dir::d000] = &QQ[vf::lbm::dir::d000 * para->getParH(level)->geometryBC.numberOfBCnodes]; + for (unsigned int i = 0; i < boundaryQ->getSize(level); i++) + Q.q27[vf::lbm::dir::d000][i] = 0.0f; } /*------------------------------------------------------------------------------------------------*/ @@ -666,9 +666,9 @@ void GridReader::copyVectorsToQStruct(std::vector<std::vector<real>> &Qs, QforBoundaryConditions qTemp; this->setQ27Size(qTemp, Q.q27[0], Q.numberOfBCnodes); - uint sizeOfValues = (uint)index.size(); + uint sizeOfValues = (uint)index.size(); - for (int direction = 0; direction < para->getD3Qxx(); direction++) { + for (int direction = 0; direction < para->getD3Qxx(); direction++) { for (size_t indexQ = 0; indexQ < sizeOfValues; indexQ++) { qTemp.q27[direction][indexQ] = Qs[direction][indexQ]; } @@ -682,15 +682,15 @@ void GridReader::copyVectorsToQStruct(std::vector<std::vector<real>> &Qs, void GridReader::initalQStruct(QforBoundaryConditions &Q, std::shared_ptr<BoundaryQs> boundaryQ, unsigned int level) const { - QforBoundaryConditions qTemp; - this->setQ27Size(qTemp, Q.q27[0], Q.numberOfBCnodes); - boundaryQ->setValues(qTemp.q27, level); - boundaryQ->setIndex(Q.k, level); + QforBoundaryConditions qTemp; + this->setQ27Size(qTemp, Q.q27[0], Q.numberOfBCnodes); + boundaryQ->setValues(qTemp.q27, level); + boundaryQ->setIndex(Q.k, level); } bool GridReader::hasQs(std::shared_ptr<BoundaryQs> boundaryQ, unsigned int level) const { - return boundaryQ->getSize(level) > 0; + return boundaryQ->getSize(level) > 0; } void GridReader::initalGridInformations() @@ -699,7 +699,7 @@ void GridReader::initalGridInformations() std::vector<int> gridX, gridY, gridZ; std::vector<int> distX, distY, distZ; - for (int i = 0; i <= maxLevel; i++) { + for (int i = 0; i <= maxLevel; i++) { gridX.push_back(0); gridY.push_back(0); gridZ.push_back(0); @@ -718,116 +718,116 @@ void GridReader::initalGridInformations() void GridReader::setQ27Size(QforBoundaryConditions &Q, real* QQ, unsigned int sizeQ) const { - Q.q27[dP00] = &QQ[dP00 *sizeQ]; - Q.q27[dM00] = &QQ[dM00 *sizeQ]; - Q.q27[d0P0] = &QQ[d0P0 *sizeQ]; - Q.q27[d0M0] = &QQ[d0M0 *sizeQ]; - Q.q27[d00P] = &QQ[d00P *sizeQ]; - Q.q27[d00M] = &QQ[d00M *sizeQ]; - Q.q27[dPP0] = &QQ[dPP0 *sizeQ]; - Q.q27[dMM0] = &QQ[dMM0 *sizeQ]; - Q.q27[dPM0] = &QQ[dPM0 *sizeQ]; - Q.q27[dMP0] = &QQ[dMP0 *sizeQ]; - Q.q27[dP0P] = &QQ[dP0P *sizeQ]; - Q.q27[dM0M] = &QQ[dM0M *sizeQ]; - Q.q27[dP0M] = &QQ[dP0M *sizeQ]; - Q.q27[dM0P] = &QQ[dM0P *sizeQ]; - Q.q27[d0PP] = &QQ[d0PP *sizeQ]; - Q.q27[d0MM] = &QQ[d0MM *sizeQ]; - Q.q27[d0PM] = &QQ[d0PM *sizeQ]; - Q.q27[d0MP] = &QQ[d0MP *sizeQ]; - Q.q27[d000] = &QQ[d000*sizeQ]; - Q.q27[dPPP] = &QQ[dPPP *sizeQ]; - Q.q27[dMMP] = &QQ[dMMP *sizeQ]; - Q.q27[dPMP] = &QQ[dPMP *sizeQ]; - Q.q27[dMPP] = &QQ[dMPP *sizeQ]; - Q.q27[dPPM] = &QQ[dPPM *sizeQ]; - Q.q27[dMMM] = &QQ[dMMM *sizeQ]; - Q.q27[dPMM] = &QQ[dPMM *sizeQ]; - Q.q27[dMPM] = &QQ[dMPM *sizeQ]; + Q.q27[dP00] = &QQ[dP00 *sizeQ]; + Q.q27[dM00] = &QQ[dM00 *sizeQ]; + Q.q27[d0P0] = &QQ[d0P0 *sizeQ]; + Q.q27[d0M0] = &QQ[d0M0 *sizeQ]; + Q.q27[d00P] = &QQ[d00P *sizeQ]; + Q.q27[d00M] = &QQ[d00M *sizeQ]; + Q.q27[dPP0] = &QQ[dPP0 *sizeQ]; + Q.q27[dMM0] = &QQ[dMM0 *sizeQ]; + Q.q27[dPM0] = &QQ[dPM0 *sizeQ]; + Q.q27[dMP0] = &QQ[dMP0 *sizeQ]; + Q.q27[dP0P] = &QQ[dP0P *sizeQ]; + Q.q27[dM0M] = &QQ[dM0M *sizeQ]; + Q.q27[dP0M] = &QQ[dP0M *sizeQ]; + Q.q27[dM0P] = &QQ[dM0P *sizeQ]; + Q.q27[d0PP] = &QQ[d0PP *sizeQ]; + Q.q27[d0MM] = &QQ[d0MM *sizeQ]; + Q.q27[d0PM] = &QQ[d0PM *sizeQ]; + Q.q27[d0MP] = &QQ[d0MP *sizeQ]; + Q.q27[d000] = &QQ[d000*sizeQ]; + Q.q27[dPPP] = &QQ[dPPP *sizeQ]; + Q.q27[dMMP] = &QQ[dMMP *sizeQ]; + Q.q27[dPMP] = &QQ[dPMP *sizeQ]; + Q.q27[dMPP] = &QQ[dMPP *sizeQ]; + Q.q27[dPPM] = &QQ[dPPM *sizeQ]; + Q.q27[dMMM] = &QQ[dMMM *sizeQ]; + Q.q27[dPMM] = &QQ[dPMM *sizeQ]; + Q.q27[dMPM] = &QQ[dMPM *sizeQ]; } void GridReader::setSizeNoSlip(std::shared_ptr<BoundaryQs> boundaryQ, unsigned int level) const { - para->getParH(level)->noSlipBC.numberOfBCnodes = boundaryQ->getSize(level); - para->getParD(level)->noSlipBC.numberOfBCnodes = para->getParH(level)->noSlipBC.numberOfBCnodes; + para->getParH(level)->noSlipBC.numberOfBCnodes = boundaryQ->getSize(level); + para->getParD(level)->noSlipBC.numberOfBCnodes = para->getParH(level)->noSlipBC.numberOfBCnodes; cudaMemoryManager->cudaAllocNoSlipBC(level); } void GridReader::setSizeGeoQs(std::shared_ptr<BoundaryQs> boundaryQ, unsigned int level) const { - para->getParH(level)->geometryBC.numberOfBCnodes = boundaryQ->getSize(level); - para->getParD(level)->geometryBC.numberOfBCnodes = para->getParH(level)->geometryBC.numberOfBCnodes; + para->getParH(level)->geometryBC.numberOfBCnodes = boundaryQ->getSize(level); + para->getParD(level)->geometryBC.numberOfBCnodes = para->getParH(level)->geometryBC.numberOfBCnodes; cudaMemoryManager->cudaAllocGeomBC(level); } void GridReader::printQSize(std::string bc, std::shared_ptr<BoundaryQs> boundaryQ, unsigned int level) const { - std::cout << "level " << level << ", " << bc << "-size: " << boundaryQ->getSize(level) << std::endl; + std::cout << "level " << level << ", " << bc << "-size: " << boundaryQ->getSize(level) << std::endl; } void GridReader::setDimensions() { - std::ifstream numberNodes; - numberNodes.open(para->getnumberNodes().c_str(), std::ios::in); - if (!numberNodes) { - std::cerr << "can't open file NumberNodes: " << para->getnumberNodes() << std::endl; - exit(1); - } - - std::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; - localGridNX.push_back(bufferInt); - numberNodes >> bufferInt; - localGridNY.push_back(bufferInt); - numberNodes >> bufferInt; - localGridNZ.push_back(bufferInt); - } - para->setGridX(localGridNX); - para->setGridY(localGridNY); - para->setGridZ(localGridNZ); + std::ifstream numberNodes; + numberNodes.open(para->getnumberNodes().c_str(), std::ios::in); + if (!numberNodes) { + std::cerr << "can't open file NumberNodes: " << para->getnumberNodes() << std::endl; + exit(1); + } + + std::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; + localGridNX.push_back(bufferInt); + numberNodes >> bufferInt; + localGridNY.push_back(bufferInt); + numberNodes >> bufferInt; + localGridNZ.push_back(bufferInt); + } + para->setGridX(localGridNX); + para->setGridY(localGridNY); + para->setGridZ(localGridNZ); } void GridReader::setBoundingBox() { - std::ifstream numberNodes; - numberNodes.open(para->getLBMvsSI().c_str(), std::ios::in); - if (!numberNodes) { - std::cerr << "can't open file LBMvsSI" << std::endl; - exit(1); - } - real bufferreal; - std::vector<real> minX, maxX, minY, maxY, minZ, maxZ; - - for (int i = 0; i <= para->getMaxLevel(); i++) { - numberNodes >> bufferreal; - minX.push_back(bufferreal); - numberNodes >> bufferreal; - minY.push_back(bufferreal); - numberNodes >> bufferreal; - minZ.push_back(bufferreal); - numberNodes >> bufferreal; - maxX.push_back(bufferreal); - numberNodes >> bufferreal; - maxY.push_back(bufferreal); - numberNodes >> bufferreal; - maxZ.push_back(bufferreal); - } - para->setMinCoordX(minX); - para->setMinCoordY(minY); - para->setMinCoordZ(minZ); - para->setMaxCoordX(maxX); - para->setMaxCoordY(maxY); - para->setMaxCoordZ(maxZ); + std::ifstream numberNodes; + numberNodes.open(para->getLBMvsSI().c_str(), std::ios::in); + if (!numberNodes) { + std::cerr << "can't open file LBMvsSI" << std::endl; + exit(1); + } + real bufferreal; + std::vector<real> minX, maxX, minY, maxY, minZ, maxZ; + + for (int i = 0; i <= para->getMaxLevel(); i++) { + numberNodes >> bufferreal; + minX.push_back(bufferreal); + numberNodes >> bufferreal; + minY.push_back(bufferreal); + numberNodes >> bufferreal; + minZ.push_back(bufferreal); + numberNodes >> bufferreal; + maxX.push_back(bufferreal); + numberNodes >> bufferreal; + maxY.push_back(bufferreal); + numberNodes >> bufferreal; + maxZ.push_back(bufferreal); + } + para->setMinCoordX(minX); + para->setMinCoordY(minY); + para->setMinCoordZ(minZ); + para->setMaxCoordX(maxX); + para->setMaxCoordY(maxY); + para->setMaxCoordZ(maxZ); } void GridReader::initPeriodicNeigh(std::vector<std::vector<std::vector<unsigned int> > > periodV, std::vector<std::vector<unsigned int> > periodIndex, std::string boundaryCondition) @@ -876,28 +876,28 @@ void GridReader::initPeriodicNeigh(std::vector<std::vector<std::vector<unsigned void GridReader::makeReader(std::shared_ptr<Parameter> para) { - for (std::size_t i = 0; i < BC_Values.size(); i++) - { - if (channelDirections[i].compare("inlet") == 0){ BC_Values[i] = std::shared_ptr<BoundaryValues>(new BoundaryValues(para->getinletBcValues())); } - if (channelDirections[i].compare("outlet") == 0){ BC_Values[i] = std::shared_ptr<BoundaryValues>(new BoundaryValues(para->getoutletBcValues())); } - if (channelDirections[i].compare("back") == 0){ BC_Values[i] = std::shared_ptr<BoundaryValues>(new BoundaryValues(para->getbackBcValues())); } - if (channelDirections[i].compare("front") == 0){ BC_Values[i] = std::shared_ptr<BoundaryValues>(new BoundaryValues(para->getfrontBcValues())); } - if (channelDirections[i].compare("top") == 0){ BC_Values[i] = std::shared_ptr<BoundaryValues>(new BoundaryValues(para->gettopBcValues())); } - if (channelDirections[i].compare("bottom") == 0){ BC_Values[i] = std::shared_ptr<BoundaryValues>(new BoundaryValues(para->getbottomBcValues()));} - } + for (std::size_t i = 0; i < BC_Values.size(); i++) + { + if (channelDirections[i].compare("inlet") == 0){ BC_Values[i] = std::shared_ptr<BoundaryValues>(new BoundaryValues(para->getinletBcValues())); } + if (channelDirections[i].compare("outlet") == 0){ BC_Values[i] = std::shared_ptr<BoundaryValues>(new BoundaryValues(para->getoutletBcValues())); } + if (channelDirections[i].compare("back") == 0){ BC_Values[i] = std::shared_ptr<BoundaryValues>(new BoundaryValues(para->getbackBcValues())); } + if (channelDirections[i].compare("front") == 0){ BC_Values[i] = std::shared_ptr<BoundaryValues>(new BoundaryValues(para->getfrontBcValues())); } + if (channelDirections[i].compare("top") == 0){ BC_Values[i] = std::shared_ptr<BoundaryValues>(new BoundaryValues(para->gettopBcValues())); } + if (channelDirections[i].compare("bottom") == 0){ BC_Values[i] = std::shared_ptr<BoundaryValues>(new BoundaryValues(para->getbottomBcValues()));} + } } void GridReader::makeReader(std::vector<std::shared_ptr<BoundaryQs> > &BC_Qs, std::shared_ptr<Parameter> para) { - for (std::size_t i = 0; i < BC_Qs.size(); i++) - { - if (channelDirections[i].compare("inlet") == 0){ BC_Qs[i] = std::shared_ptr<BoundaryQs>(new BoundaryQs(para->getinletBcQs(), false)); } - if (channelDirections[i].compare("outlet") == 0){ BC_Qs[i] = std::shared_ptr<BoundaryQs>(new BoundaryQs(para->getoutletBcQs(), false)); } - if (channelDirections[i].compare("back") == 0){ BC_Qs[i] = std::shared_ptr<BoundaryQs>(new BoundaryQs(para->getbackBcQs(), false)); } - if (channelDirections[i].compare("front") == 0){ BC_Qs[i] = std::shared_ptr<BoundaryQs>(new BoundaryQs(para->getfrontBcQs(), false)); } - if (channelDirections[i].compare("top") == 0){ BC_Qs[i] = std::shared_ptr<BoundaryQs>(new BoundaryQs(para->gettopBcQs(), false)); } - if (channelDirections[i].compare("bottom") == 0){ BC_Qs[i] = std::shared_ptr<BoundaryQs>(new BoundaryQs(para->getbottomBcQs(), false)); } - } + for (std::size_t i = 0; i < BC_Qs.size(); i++) + { + if (channelDirections[i].compare("inlet") == 0){ BC_Qs[i] = std::shared_ptr<BoundaryQs>(new BoundaryQs(para->getinletBcQs(), false)); } + if (channelDirections[i].compare("outlet") == 0){ BC_Qs[i] = std::shared_ptr<BoundaryQs>(new BoundaryQs(para->getoutletBcQs(), false)); } + if (channelDirections[i].compare("back") == 0){ BC_Qs[i] = std::shared_ptr<BoundaryQs>(new BoundaryQs(para->getbackBcQs(), false)); } + if (channelDirections[i].compare("front") == 0){ BC_Qs[i] = std::shared_ptr<BoundaryQs>(new BoundaryQs(para->getfrontBcQs(), false)); } + if (channelDirections[i].compare("top") == 0){ BC_Qs[i] = std::shared_ptr<BoundaryQs>(new BoundaryQs(para->gettopBcQs(), false)); } + if (channelDirections[i].compare("bottom") == 0){ BC_Qs[i] = std::shared_ptr<BoundaryQs>(new BoundaryQs(para->getbottomBcQs(), false)); } + } } void GridReader::setChannelBoundaryCondition() diff --git a/src/gpu/core/DataStructureInitializer/GridReaderFiles/MeasuredPoints.cpp b/src/gpu/core/DataStructureInitializer/GridReaderFiles/MeasuredPoints.cpp index 7ec0f3d3705cb6408ee6045f3442e5ea0f6b8f97..3caaa5ae0195546ba519af136f4a62cc083038f7 100644 --- a/src/gpu/core/DataStructureInitializer/GridReaderFiles/MeasuredPoints.cpp +++ b/src/gpu/core/DataStructureInitializer/GridReaderFiles/MeasuredPoints.cpp @@ -9,14 +9,14 @@ MeasuredPoints::MeasuredPoints(void) } MeasuredPoints::MeasuredPoints(std::string ad){ - file.open(ad.c_str(), std::ios::in | std::ios::binary); + file.open(ad.c_str(), std::ios::in | std::ios::binary); - if (!file) { - std::cerr << "Fehler beim Oeffnen Measured Points" << std::endl; - exit(1); - } + if (!file) { + std::cerr << "Fehler beim Oeffnen Measured Points" << std::endl; + exit(1); + } - this->init(); + this->init(); } @@ -28,33 +28,33 @@ MeasuredPoints::~MeasuredPoints(void) void MeasuredPoints::init() { - - std::string bufferString; - unsigned int bufferInt; + + std::string bufferString; + unsigned int bufferInt; - getline(file,bufferString); + getline(file,bufferString); readLevel(); - this->levelSizes.resize(maxLevel); - this->points.resize(maxLevel); + this->levelSizes.resize(maxLevel); + this->points.resize(maxLevel); - for (uint i=0; i<maxLevel; i++) { - getline(file,bufferString); - bufferInt = atoi(bufferString.c_str()); + for (uint i=0; i<maxLevel; i++) { + getline(file,bufferString); + bufferInt = atoi(bufferString.c_str()); - this->levelSizes[i]=bufferInt; + this->levelSizes[i]=bufferInt; - this->points[i].resize(levelSizes[i]); - if(levelSizes[i] != 0) { - for ( uint j = 0; j < levelSizes[i]; j++) { - getline(file,bufferString); - bufferInt = atoi(bufferString.c_str()); - this->points[i][j]=bufferInt; - } - } + this->points[i].resize(levelSizes[i]); + if(levelSizes[i] != 0) { + for ( uint j = 0; j < levelSizes[i]; j++) { + getline(file,bufferString); + bufferInt = atoi(bufferString.c_str()); + this->points[i][j]=bufferInt; + } + } - } + } diff --git a/src/gpu/core/DataStructureInitializer/GridReaderFiles/MeasuredPoints.h b/src/gpu/core/DataStructureInitializer/GridReaderFiles/MeasuredPoints.h index 3c15040ad7f4b5e2379f43fc0a31fcce53d25f36..2ce8b501758843a54d3b3fe7ead61a277100216d 100644 --- a/src/gpu/core/DataStructureInitializer/GridReaderFiles/MeasuredPoints.h +++ b/src/gpu/core/DataStructureInitializer/GridReaderFiles/MeasuredPoints.h @@ -7,17 +7,17 @@ class MeasuredPoints - : public CoordNeighborGeoV + : public CoordNeighborGeoV { private: std::vector< std::vector<unsigned int> > points; public: - MeasuredPoints(); - MeasuredPoints(std::string ad); - ~MeasuredPoints(); + MeasuredPoints(); + MeasuredPoints(std::string ad); + ~MeasuredPoints(); - void init(); + void init(); }; diff --git a/src/gpu/core/DataStructureInitializer/GridReaderFiles/OffsetScale.cpp b/src/gpu/core/DataStructureInitializer/GridReaderFiles/OffsetScale.cpp index 1c2363d3edd5ddba10e50d2998552b929144623d..18960aaa3d15b05694a8cedbb872d9b253b7cd02 100644 --- a/src/gpu/core/DataStructureInitializer/GridReaderFiles/OffsetScale.cpp +++ b/src/gpu/core/DataStructureInitializer/GridReaderFiles/OffsetScale.cpp @@ -7,27 +7,27 @@ using namespace std; OffsetScale::OffsetScale(std::string ad, bool off) { - file.open(ad.c_str(), std::ios::in); - - if (!file) { - cerr << "Fehler beim Oeffnen" <<endl; - exit(1); - } - if(off==true){ - initOffset(); - }else { - init(); - } + file.open(ad.c_str(), std::ios::in); + + if (!file) { + cerr << "Fehler beim Oeffnen" <<endl; + exit(1); + } + if(off==true){ + initOffset(); + }else { + init(); + } } OffsetScale::~OffsetScale(void) { - file.close(); + file.close(); } void OffsetScale::init() { - //Level aus der ersten Zeile wird ausgelesen - //string buffer; - //unsigned int bufferInt; + //Level aus der ersten Zeile wird ausgelesen + //string buffer; + //unsigned int bufferInt; this->readLevel(); levelSizes.resize(maxLevel); @@ -41,30 +41,30 @@ void OffsetScale::init() { file >> scale[level][index]; } - ////Schleife zum Einlesen der Levelgroessen - //for(unsigned int i=1; i<= maxLevel; i++) { - // getline(file,buffer); - // unsigned int bufferInt = atoi(buffer.c_str()); //eingelesene Zeile wird zum Integer gecastet + ////Schleife zum Einlesen der Levelgroessen + //for(unsigned int i=1; i<= maxLevel; i++) { + // getline(file,buffer); + // unsigned int bufferInt = atoi(buffer.c_str()); //eingelesene Zeile wird zum Integer gecastet // levelSizes.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 + // 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 + ////einlesen der Werte // scale.resize(maxLevel +1); - //for(unsigned lvl = 0; lvl < maxLevel; lvl++){/////////////Unterschied zu CoordNeighborGeoV: < statt <=////////////////////// - // getline(file,buffer); // Groesse ignorieren - // for (unsigned int i = 0; i < levelSizes[lvl]; i++)/////////////Unterschied zu CoordNeighborGeoV: < statt <=////////////////////// - // { - // file >> bufferInt; + //for(unsigned lvl = 0; lvl < maxLevel; lvl++){/////////////Unterschied zu CoordNeighborGeoV: < statt <=////////////////////// + // getline(file,buffer); // Groesse ignorieren + // for (unsigned int i = 0; i < levelSizes[lvl]; i++)/////////////Unterschied zu CoordNeighborGeoV: < statt <=////////////////////// + // { + // file >> bufferInt; // scale[lvl].push_back(bufferInt); - // } - // getline(file, buffer); - //} + // } + // getline(file, buffer); + //} } void OffsetScale::initOffset() @@ -86,37 +86,37 @@ 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; - //real bufferDouble; + //file.clear(); + //file.seekg (0, ios::beg); // file wird wieder auf den Anfang gesetzt + ////Level aus der ersten Zeile wird ausgelesen + //string buffer; + //real bufferDouble; // this->readLevel(); - ////Schleife zum Einlesen der Levelgroessen - //for(unsigned int i=1; i<= maxLevel; i++) { - // getline(file,buffer); - // unsigned int bufferInt = atoi(buffer.c_str()); //eingelesene Zeile wird zum Integer gecastet + ////Schleife zum Einlesen der Levelgroessen + //for(unsigned int i=1; i<= maxLevel; i++) { + // getline(file,buffer); + // unsigned int bufferInt = atoi(buffer.c_str()); //eingelesene Zeile wird zum Integer gecastet // levelSizes.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 - //offset.resize(maxLevel +1); - //for(unsigned lvl = 0; lvl < maxLevel; lvl++){/////////////Unterschied zu CoordNeighborGeoV: < statt <=////////////////////// - // getline(file,buffer); // Groesse ignorieren - // for (unsigned int i = 0; i < levelSizes[lvl]*3; i++)/////////////Unterschied zu CoordNeighborGeoV: < statt <=////////////////////// - // /////////////Unterschied zu Scale: vec_Size[lvl]*3 ////////////////////// - // { - // file >> bufferDouble; - // offset[lvl].push_back(bufferDouble); - // } - // getline(file, buffer); - //} + // 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 + //offset.resize(maxLevel +1); + //for(unsigned lvl = 0; lvl < maxLevel; lvl++){/////////////Unterschied zu CoordNeighborGeoV: < statt <=////////////////////// + // getline(file,buffer); // Groesse ignorieren + // for (unsigned int i = 0; i < levelSizes[lvl]*3; i++)/////////////Unterschied zu CoordNeighborGeoV: < statt <=////////////////////// + // /////////////Unterschied zu Scale: vec_Size[lvl]*3 ////////////////////// + // { + // file >> bufferDouble; + // offset[lvl].push_back(bufferDouble); + // } + // getline(file, buffer); + //} } diff --git a/src/gpu/core/DataStructureInitializer/GridReaderFiles/OffsetScale.h b/src/gpu/core/DataStructureInitializer/GridReaderFiles/OffsetScale.h index 2367a282df40b1f31b97a82615931bbe2de33fe2..1688673fd790012efd41897658c19aab6380a864 100644 --- a/src/gpu/core/DataStructureInitializer/GridReaderFiles/OffsetScale.h +++ b/src/gpu/core/DataStructureInitializer/GridReaderFiles/OffsetScale.h @@ -7,20 +7,20 @@ #include "CoordNeighborGeoV.h" class OffsetScale : - public CoordNeighborGeoV + public CoordNeighborGeoV { private: std::vector<std::vector<real> >offset; std::vector<std::vector<unsigned int> > scale; public: - OffsetScale(std::string ad, bool off); - ~OffsetScale(void); - void init(); + OffsetScale(std::string ad, bool off); + ~OffsetScale(void); + void init(); void initScale(unsigned int* data, unsigned int level); void initOffset(); - void initArrayOffset(real *x_ptr,real *y_ptr,real *z_ptr, unsigned int level); + void initArrayOffset(real *x_ptr,real *y_ptr,real *z_ptr, unsigned int level); }; #endif diff --git a/src/gpu/core/FindInterface/FindInterface.cpp b/src/gpu/core/FindInterface/FindInterface.cpp index 9a0eae2282ca0abf11c77e6e8503c2a5b2bcc0b7..a2efa941eda46d713d42b727908b2406f77c58bc 100644 --- a/src/gpu/core/FindInterface/FindInterface.cpp +++ b/src/gpu/core/FindInterface/FindInterface.cpp @@ -137,9 +137,9 @@ void interpolation(InterpolationCells &intCF, InterpolationCells &intFC, iC = FC_Coarse[ INTERFACE_W]; iF = FC_Fine[ INTERFACE_W]; for (hF = FC_zDefaultFine, hC = FC_zDefaultCoarse ; hF<=LzFine-7; hC++,hF+=2) - { + { for (jF = FC_yDefaultFine, jC = FC_yDefaultCoarse ; jF<=LyFine-7; jC++,jF+=2) - { + { posC=vectorPosition( iC, jC, hC, LxCoarse, LyCoarse); posFSWB=vectorPosition(iF, jF, hF, LxFine, LyFine); intFC.coarseCellIndices[intFC.numberOfCells] = kCoarse[posC]; @@ -161,7 +161,7 @@ void interpolation(InterpolationCells &intCF, InterpolationCells &intFC, jC = CF_Coarse[ INTERFACE_N]; jF = CF_Fine[ INTERFACE_N]; for (hF = CF_zDefaultFine, hC = CF_zDefaultCoarse ; hF <= LzFine-4; hC++,hF+=2) - { + { for (iF = CF_xDefaultFine, iC = CF_xDefaultCoarse ; iF<=LxFine-4; iC++,iF+=2) { posCSWB=vectorPosition(iC, jC, hC, LxCoarse, LyCoarse); @@ -178,9 +178,9 @@ void interpolation(InterpolationCells &intCF, InterpolationCells &intFC, jC = FC_Coarse[ INTERFACE_N]; jF = FC_Fine[ INTERFACE_N]; for (hF = FC_zDefaultFine, hC = FC_zDefaultCoarse ; hF<=LzFine-7; hC++,hF+=2) - { + { for (iF = FC_xDefaultFine, iC = FC_xDefaultCoarse ; iF<=LxFine-7; iC++,iF+=2) - { + { posC=vectorPosition( iC, jC, hC, LxCoarse, LyCoarse); posFSWB=vectorPosition(iF, jF, hF, LxFine, LyFine); intFC.coarseCellIndices[intFC.numberOfCells] = kCoarse[posC]; @@ -219,9 +219,9 @@ void interpolation(InterpolationCells &intCF, InterpolationCells &intFC, iC = FC_Coarse[ INTERFACE_E]; iF = FC_Fine[ INTERFACE_E]; for (hF = FC_zDefaultFine, hC = FC_zDefaultCoarse ; hF<=LzFine-7; hC++,hF+=2) - { + { for (jF = FC_yDefaultFine, jC = FC_yDefaultCoarse ; jF<=LyFine-7; jC++,jF+=2) - { + { posC=vectorPosition( iC, jC, hC, LxCoarse, LyCoarse); posFSWB=vectorPosition(iF, jF, hF, LxFine, LyFine); intFC.coarseCellIndices[intFC.numberOfCells] = kCoarse[posC]; @@ -243,7 +243,7 @@ void interpolation(InterpolationCells &intCF, InterpolationCells &intFC, jC = CF_Coarse[ INTERFACE_S]; jF = CF_Fine[ INTERFACE_S]; for (hF = CF_zDefaultFine, hC = CF_zDefaultCoarse ; hF <= LzFine-4; hC++,hF+=2) - { + { for (iF = CF_xDefaultFine, iC = CF_xDefaultCoarse ; iF<=LxFine-4; iC++,iF+=2) { posCSWB=vectorPosition(iC, jC, hC, LxCoarse, LyCoarse); @@ -260,9 +260,9 @@ void interpolation(InterpolationCells &intCF, InterpolationCells &intFC, jC = FC_Coarse[ INTERFACE_S]; jF = FC_Fine[ INTERFACE_S]; for (hF = FC_zDefaultFine, hC = FC_zDefaultCoarse ; hF<=LzFine-7; hC++,hF+=2) - { + { for (iF = FC_xDefaultFine, iC = FC_xDefaultCoarse ; iF<=LxFine-7; iC++,iF+=2) - { + { posC=vectorPosition( iC, jC, hC, LxCoarse, LyCoarse); posFSWB=vectorPosition(iF, jF, hF, LxFine, LyFine); intFC.coarseCellIndices[intFC.numberOfCells] = kCoarse[posC]; @@ -301,9 +301,9 @@ void interpolation(InterpolationCells &intCF, InterpolationCells &intFC, hC = FC_Coarse[ INTERFACE_T]; hF = FC_Fine[ INTERFACE_T]; for (jF = FC_yDefaultFine, jC = FC_yDefaultCoarse ; jF<=LyFine-7; jC++,jF+=2) - { + { for (iF = FC_xDefaultFine, iC = FC_xDefaultCoarse ; iF<=LxFine-7; iC++,iF+=2) - { + { posC=vectorPosition( iC, jC, hC, LxCoarse, LyCoarse); posFSWB=vectorPosition(iF, jF, hF, LxFine, LyFine); intFC.coarseCellIndices[intFC.numberOfCells] = kCoarse[posC]; @@ -342,9 +342,9 @@ void interpolation(InterpolationCells &intCF, InterpolationCells &intFC, hC = FC_Coarse[ INTERFACE_B]; hF = FC_Fine[ INTERFACE_B]; for (jF = FC_yDefaultFine, jC = FC_yDefaultCoarse ; jF<=LyFine-7; jC++,jF+=2) - { + { for (iF = FC_xDefaultFine, iC = FC_xDefaultCoarse ; iF<=LxFine-7; iC++,iF+=2) - { + { posC=vectorPosition( iC, jC, hC, LxCoarse, LyCoarse); posFSWB=vectorPosition(iF, jF, hF, LxFine, LyFine); intFC.coarseCellIndices[intFC.numberOfCells] = kCoarse[posC]; @@ -424,7 +424,7 @@ void interpolation(InterpolationCells &intCF, InterpolationCells &intFC, jC = FC_Coarse[ INTERFACE_N]; jF = FC_Fine[ INTERFACE_N]; for (hF = FC_zDefaultFine, hC = FC_zDefaultCoarse ; hF<=LzFine-7; hC++,hF+=2) - { + { posC=vectorPosition( iC, jC, hC, LxCoarse, LyCoarse); posFSWB=vectorPosition(iF, jF, hF, LxFine, LyFine); intFC.coarseCellIndices[intFC.numberOfCells] = kCoarse[posC]; @@ -440,7 +440,7 @@ void interpolation(InterpolationCells &intCF, InterpolationCells &intFC, jC = FC_Coarse[ INTERFACE_N]; jF = FC_Fine[ INTERFACE_N]; for (hF = FC_zDefaultFine, hC = FC_zDefaultCoarse ; hF<=LzFine-7; hC++,hF+=2) - { + { posC=vectorPosition( iC, jC, hC, LxCoarse, LyCoarse); posFSWB=vectorPosition(iF, jF, hF, LxFine, LyFine); intFC.coarseCellIndices[intFC.numberOfCells] = kCoarse[posC]; @@ -457,7 +457,7 @@ void interpolation(InterpolationCells &intCF, InterpolationCells &intFC, jC = FC_NCoarse[INTERFACE_N]; jF = FC_NFine[INTERFACE_N]; for (hF = FC_zDefaultFine, hC = FC_zDefaultCoarse ; hF<=LzFine-7; hC++,hF+=2) - { + { posC=vectorPosition( iC, jC, hC, LxCoarse, LyCoarse); posFSWB=vectorPosition(iF, jF, hF, LxFine, LyFine); intFC.coarseCellIndices[intFC.numberOfCells] = kCoarse[posC]; @@ -529,7 +529,7 @@ void interpolation(InterpolationCells &intCF, InterpolationCells &intFC, jC = FC_Coarse[ INTERFACE_S]; jF = FC_Fine[ INTERFACE_S]; for (hF = FC_zDefaultFine, hC = FC_zDefaultCoarse ; hF<=LzFine-7; hC++,hF+=2) - { + { posC=vectorPosition( iC, jC, hC, LxCoarse, LyCoarse); posFSWB=vectorPosition(iF, jF, hF, LxFine, LyFine); intFC.coarseCellIndices[intFC.numberOfCells] = kCoarse[posC]; @@ -545,7 +545,7 @@ void interpolation(InterpolationCells &intCF, InterpolationCells &intFC, jC = FC_Coarse[ INTERFACE_S]; jF = FC_Fine[ INTERFACE_S]; for (hF = FC_zDefaultFine, hC = FC_zDefaultCoarse ; hF<=LzFine-7; hC++,hF+=2) - { + { posC=vectorPosition( iC, jC, hC, LxCoarse, LyCoarse); posFSWB=vectorPosition(iF, jF, hF, LxFine, LyFine); intFC.coarseCellIndices[intFC.numberOfCells] = kCoarse[posC]; @@ -562,7 +562,7 @@ void interpolation(InterpolationCells &intCF, InterpolationCells &intFC, jC = FC_NCoarse[INTERFACE_S]; jF = FC_NFine[INTERFACE_S]; for (hF = FC_zDefaultFine, hC = FC_zDefaultCoarse ; hF<=LzFine-7; hC++,hF+=2) - { + { posC=vectorPosition( iC, jC, hC, LxCoarse, LyCoarse); posFSWB=vectorPosition(iF, jF, hF, LxFine, LyFine); intFC.coarseCellIndices[intFC.numberOfCells] = kCoarse[posC]; @@ -634,7 +634,7 @@ void interpolation(InterpolationCells &intCF, InterpolationCells &intFC, hC = FC_Coarse[ INTERFACE_T]; hF = FC_Fine[ INTERFACE_T]; for (jF = FC_yDefaultFine, jC = FC_yDefaultCoarse ; jF<=LyFine-7; jC++,jF+=2) - { + { posC=vectorPosition( iC, jC, hC, LxCoarse, LyCoarse); posFSWB=vectorPosition(iF, jF, hF, LxFine, LyFine); intFC.coarseCellIndices[intFC.numberOfCells] = kCoarse[posC]; @@ -650,7 +650,7 @@ void interpolation(InterpolationCells &intCF, InterpolationCells &intFC, hC = FC_Coarse[ INTERFACE_T]; hF = FC_Fine[ INTERFACE_T]; for (jF = FC_yDefaultFine, jC = FC_yDefaultCoarse ; jF<=LyFine-7; jC++,jF+=2) - { + { posC=vectorPosition( iC, jC, hC, LxCoarse, LyCoarse); posFSWB=vectorPosition(iF, jF, hF, LxFine, LyFine); intFC.coarseCellIndices[intFC.numberOfCells] = kCoarse[posC]; @@ -667,7 +667,7 @@ void interpolation(InterpolationCells &intCF, InterpolationCells &intFC, hC = FC_NCoarse[INTERFACE_T]; hF = FC_NFine[INTERFACE_T]; for (jF = FC_yDefaultFine, jC = FC_yDefaultCoarse ; jF<=LyFine-7; jC++,jF+=2) - { + { posC=vectorPosition( iC, jC, hC, LxCoarse, LyCoarse); posFSWB=vectorPosition(iF, jF, hF, LxFine, LyFine); intFC.coarseCellIndices[intFC.numberOfCells] = kCoarse[posC]; @@ -739,7 +739,7 @@ void interpolation(InterpolationCells &intCF, InterpolationCells &intFC, hC = FC_Coarse[ INTERFACE_B]; hF = FC_Fine[ INTERFACE_B]; for (jF = FC_yDefaultFine, jC = FC_yDefaultCoarse ; jF<=LyFine-7; jC++,jF+=2) - { + { posC=vectorPosition( iC, jC, hC, LxCoarse, LyCoarse); posFSWB=vectorPosition(iF, jF, hF, LxFine, LyFine); intFC.coarseCellIndices[intFC.numberOfCells] = kCoarse[posC]; @@ -755,7 +755,7 @@ void interpolation(InterpolationCells &intCF, InterpolationCells &intFC, hC = FC_Coarse[ INTERFACE_B]; hF = FC_Fine[ INTERFACE_B]; for (jF = FC_yDefaultFine, jC = FC_yDefaultCoarse ; jF<=LyFine-7; jC++,jF+=2) - { + { posC=vectorPosition( iC, jC, hC, LxCoarse, LyCoarse); posFSWB=vectorPosition(iF, jF, hF, LxFine, LyFine); intFC.coarseCellIndices[intFC.numberOfCells] = kCoarse[posC]; @@ -772,7 +772,7 @@ void interpolation(InterpolationCells &intCF, InterpolationCells &intFC, hC = FC_NCoarse[INTERFACE_B]; hF = FC_NFine[INTERFACE_B]; for (jF = FC_yDefaultFine, jC = FC_yDefaultCoarse ; jF<=LyFine-7; jC++,jF+=2) - { + { posC=vectorPosition( iC, jC, hC, LxCoarse, LyCoarse); posFSWB=vectorPosition(iF, jF, hF, LxFine, LyFine); intFC.coarseCellIndices[intFC.numberOfCells] = kCoarse[posC]; @@ -844,7 +844,7 @@ void interpolation(InterpolationCells &intCF, InterpolationCells &intFC, jC = FC_Coarse[ INTERFACE_N]; jF = FC_Fine[ INTERFACE_N]; for (hF = FC_zDefaultFine, hC = FC_zDefaultCoarse ; hF<=LzFine-7; hC++,hF+=2) - { + { posC=vectorPosition( iC, jC, hC, LxCoarse, LyCoarse); posFSWB=vectorPosition(iF, jF, hF, LxFine, LyFine); intFC.coarseCellIndices[intFC.numberOfCells] = kCoarse[posC]; @@ -860,7 +860,7 @@ void interpolation(InterpolationCells &intCF, InterpolationCells &intFC, jC = FC_Coarse[ INTERFACE_N]; jF = FC_Fine[ INTERFACE_N]; for (hF = FC_zDefaultFine, hC = FC_zDefaultCoarse ; hF<=LzFine-7; hC++,hF+=2) - { + { posC=vectorPosition( iC, jC, hC, LxCoarse, LyCoarse); posFSWB=vectorPosition(iF, jF, hF, LxFine, LyFine); intFC.coarseCellIndices[intFC.numberOfCells] = kCoarse[posC]; @@ -877,7 +877,7 @@ void interpolation(InterpolationCells &intCF, InterpolationCells &intFC, jC = FC_NCoarse[INTERFACE_N]; jF = FC_NFine[INTERFACE_N]; for (hF = FC_zDefaultFine, hC = FC_zDefaultCoarse ; hF<=LzFine-7; hC++,hF+=2) - { + { posC=vectorPosition( iC, jC, hC, LxCoarse, LyCoarse); posFSWB=vectorPosition(iF, jF, hF, LxFine, LyFine); intFC.coarseCellIndices[intFC.numberOfCells] = kCoarse[posC]; @@ -949,7 +949,7 @@ void interpolation(InterpolationCells &intCF, InterpolationCells &intFC, jC = FC_Coarse[ INTERFACE_S]; jF = FC_Fine[ INTERFACE_S]; for (hF = FC_zDefaultFine, hC = FC_zDefaultCoarse ; hF<=LzFine-7; hC++,hF+=2) - { + { posC=vectorPosition( iC, jC, hC, LxCoarse, LyCoarse); posFSWB=vectorPosition(iF, jF, hF, LxFine, LyFine); intFC.coarseCellIndices[intFC.numberOfCells] = kCoarse[posC]; @@ -965,7 +965,7 @@ void interpolation(InterpolationCells &intCF, InterpolationCells &intFC, jC = FC_Coarse[ INTERFACE_S]; jF = FC_Fine[ INTERFACE_S]; for (hF = FC_zDefaultFine, hC = FC_zDefaultCoarse ; hF<=LzFine-7; hC++,hF+=2) - { + { posC=vectorPosition( iC, jC, hC, LxCoarse, LyCoarse); posFSWB=vectorPosition(iF, jF, hF, LxFine, LyFine); intFC.coarseCellIndices[intFC.numberOfCells] = kCoarse[posC]; @@ -982,7 +982,7 @@ void interpolation(InterpolationCells &intCF, InterpolationCells &intFC, jC = FC_NCoarse[INTERFACE_S]; jF = FC_NFine[INTERFACE_S]; for (hF = FC_zDefaultFine, hC = FC_zDefaultCoarse ; hF<=LzFine-7; hC++,hF+=2) - { + { posC=vectorPosition( iC, jC, hC, LxCoarse, LyCoarse); posFSWB=vectorPosition(iF, jF, hF, LxFine, LyFine); intFC.coarseCellIndices[intFC.numberOfCells] = kCoarse[posC]; @@ -1054,7 +1054,7 @@ void interpolation(InterpolationCells &intCF, InterpolationCells &intFC, hC = FC_Coarse[ INTERFACE_T]; hF = FC_Fine[ INTERFACE_T]; for (jF = FC_yDefaultFine, jC = FC_yDefaultCoarse ; jF<=LyFine-7; jC++,jF+=2) - { + { posC=vectorPosition( iC, jC, hC, LxCoarse, LyCoarse); posFSWB=vectorPosition(iF, jF, hF, LxFine, LyFine); intFC.coarseCellIndices[intFC.numberOfCells] = kCoarse[posC]; @@ -1070,7 +1070,7 @@ void interpolation(InterpolationCells &intCF, InterpolationCells &intFC, hC = FC_Coarse[ INTERFACE_T]; hF = FC_Fine[ INTERFACE_T]; for (jF = FC_yDefaultFine, jC = FC_yDefaultCoarse ; jF<=LyFine-7; jC++,jF+=2) - { + { posC=vectorPosition( iC, jC, hC, LxCoarse, LyCoarse); posFSWB=vectorPosition(iF, jF, hF, LxFine, LyFine); intFC.coarseCellIndices[intFC.numberOfCells] = kCoarse[posC]; @@ -1087,7 +1087,7 @@ void interpolation(InterpolationCells &intCF, InterpolationCells &intFC, hC = FC_NCoarse[INTERFACE_T]; hF = FC_NFine[INTERFACE_T]; for (jF = FC_yDefaultFine, jC = FC_yDefaultCoarse ; jF<=LyFine-7; jC++,jF+=2) - { + { posC=vectorPosition( iC, jC, hC, LxCoarse, LyCoarse); posFSWB=vectorPosition(iF, jF, hF, LxFine, LyFine); intFC.coarseCellIndices[intFC.numberOfCells] = kCoarse[posC]; @@ -1159,7 +1159,7 @@ void interpolation(InterpolationCells &intCF, InterpolationCells &intFC, hC = FC_Coarse[ INTERFACE_B]; hF = FC_Fine[ INTERFACE_B]; for (jF = FC_yDefaultFine, jC = FC_yDefaultCoarse ; jF<=LyFine-7; jC++,jF+=2) - { + { posC=vectorPosition( iC, jC, hC, LxCoarse, LyCoarse); posFSWB=vectorPosition(iF, jF, hF, LxFine, LyFine); intFC.coarseCellIndices[intFC.numberOfCells] = kCoarse[posC]; @@ -1175,7 +1175,7 @@ void interpolation(InterpolationCells &intCF, InterpolationCells &intFC, hC = FC_Coarse[ INTERFACE_B]; hF = FC_Fine[ INTERFACE_B]; for (jF = FC_yDefaultFine, jC = FC_yDefaultCoarse ; jF<=LyFine-7; jC++,jF+=2) - { + { posC=vectorPosition( iC, jC, hC, LxCoarse, LyCoarse); posFSWB=vectorPosition(iF, jF, hF, LxFine, LyFine); intFC.coarseCellIndices[intFC.numberOfCells] = kCoarse[posC]; @@ -1192,7 +1192,7 @@ void interpolation(InterpolationCells &intCF, InterpolationCells &intFC, hC = FC_NCoarse[INTERFACE_B]; hF = FC_NFine[INTERFACE_B]; for (jF = FC_yDefaultFine, jC = FC_yDefaultCoarse ; jF<=LyFine-7; jC++,jF+=2) - { + { posC=vectorPosition( iC, jC, hC, LxCoarse, LyCoarse); posFSWB=vectorPosition(iF, jF, hF, LxFine, LyFine); intFC.coarseCellIndices[intFC.numberOfCells] = kCoarse[posC]; @@ -1264,7 +1264,7 @@ void interpolation(InterpolationCells &intCF, InterpolationCells &intFC, hC = FC_Coarse[ INTERFACE_T]; hF = FC_Fine[ INTERFACE_T]; for (iF = FC_xDefaultFine, iC = FC_xDefaultCoarse ; iF<=LxFine-7; iC++,iF+=2) - { + { posC=vectorPosition( iC, jC, hC, LxCoarse, LyCoarse); posFSWB=vectorPosition(iF, jF, hF, LxFine, LyFine); intFC.coarseCellIndices[intFC.numberOfCells] = kCoarse[posC]; @@ -1280,7 +1280,7 @@ void interpolation(InterpolationCells &intCF, InterpolationCells &intFC, hC = FC_Coarse[ INTERFACE_T]; hF = FC_Fine[ INTERFACE_T]; for (iF = FC_xDefaultFine, iC = FC_xDefaultCoarse ; iF<=LxFine-7; iC++,iF+=2) - { + { posC=vectorPosition( iC, jC, hC, LxCoarse, LyCoarse); posFSWB=vectorPosition(iF, jF, hF, LxFine, LyFine); intFC.coarseCellIndices[intFC.numberOfCells] = kCoarse[posC]; @@ -1297,7 +1297,7 @@ void interpolation(InterpolationCells &intCF, InterpolationCells &intFC, hC = FC_NCoarse[INTERFACE_T]; hF = FC_NFine[INTERFACE_T]; for (iF = FC_xDefaultFine, iC = FC_xDefaultCoarse ; iF<=LxFine-7; iC++,iF+=2) - { + { posC=vectorPosition( iC, jC, hC, LxCoarse, LyCoarse); posFSWB=vectorPosition(iF, jF, hF, LxFine, LyFine); intFC.coarseCellIndices[intFC.numberOfCells] = kCoarse[posC]; @@ -1369,7 +1369,7 @@ void interpolation(InterpolationCells &intCF, InterpolationCells &intFC, hC = FC_Coarse[ INTERFACE_B]; hF = FC_Fine[ INTERFACE_B]; for (iF = FC_xDefaultFine, iC = FC_xDefaultCoarse ; iF<=LxFine-7; iC++,iF+=2) - { + { posC=vectorPosition( iC, jC, hC, LxCoarse, LyCoarse); posFSWB=vectorPosition(iF, jF, hF, LxFine, LyFine); intFC.coarseCellIndices[intFC.numberOfCells] = kCoarse[posC]; @@ -1385,7 +1385,7 @@ void interpolation(InterpolationCells &intCF, InterpolationCells &intFC, hC = FC_Coarse[ INTERFACE_B]; hF = FC_Fine[ INTERFACE_B]; for (iF = FC_xDefaultFine, iC = FC_xDefaultCoarse ; iF<=LxFine-7; iC++,iF+=2) - { + { posC=vectorPosition( iC, jC, hC, LxCoarse, LyCoarse); posFSWB=vectorPosition(iF, jF, hF, LxFine, LyFine); intFC.coarseCellIndices[intFC.numberOfCells] = kCoarse[posC]; @@ -1402,7 +1402,7 @@ void interpolation(InterpolationCells &intCF, InterpolationCells &intFC, hC = FC_NCoarse[INTERFACE_B]; hF = FC_NFine[INTERFACE_B]; for (iF = FC_xDefaultFine, iC = FC_xDefaultCoarse ; iF<=LxFine-7; iC++,iF+=2) - { + { posC=vectorPosition( iC, jC, hC, LxCoarse, LyCoarse); posFSWB=vectorPosition(iF, jF, hF, LxFine, LyFine); intFC.coarseCellIndices[intFC.numberOfCells] = kCoarse[posC]; @@ -1474,7 +1474,7 @@ void interpolation(InterpolationCells &intCF, InterpolationCells &intFC, hC = FC_Coarse[ INTERFACE_T]; hF = FC_Fine[ INTERFACE_T]; for (iF = FC_xDefaultFine, iC = FC_xDefaultCoarse ; iF<=LxFine-7; iC++,iF+=2) - { + { posC=vectorPosition( iC, jC, hC, LxCoarse, LyCoarse); posFSWB=vectorPosition(iF, jF, hF, LxFine, LyFine); intFC.coarseCellIndices[intFC.numberOfCells] = kCoarse[posC]; @@ -1490,7 +1490,7 @@ void interpolation(InterpolationCells &intCF, InterpolationCells &intFC, hC = FC_Coarse[ INTERFACE_T]; hF = FC_Fine[ INTERFACE_T]; for (iF = FC_xDefaultFine, iC = FC_xDefaultCoarse ; iF<=LxFine-7; iC++,iF+=2) - { + { posC=vectorPosition( iC, jC, hC, LxCoarse, LyCoarse); posFSWB=vectorPosition(iF, jF, hF, LxFine, LyFine); intFC.coarseCellIndices[intFC.numberOfCells] = kCoarse[posC]; @@ -1507,7 +1507,7 @@ void interpolation(InterpolationCells &intCF, InterpolationCells &intFC, hC = FC_NCoarse[INTERFACE_T]; hF = FC_NFine[INTERFACE_T]; for (iF = FC_xDefaultFine, iC = FC_xDefaultCoarse ; iF<=LxFine-7; iC++,iF+=2) - { + { posC=vectorPosition( iC, jC, hC, LxCoarse, LyCoarse); posFSWB=vectorPosition(iF, jF, hF, LxFine, LyFine); intFC.coarseCellIndices[intFC.numberOfCells] = kCoarse[posC]; @@ -1579,7 +1579,7 @@ void interpolation(InterpolationCells &intCF, InterpolationCells &intFC, hC = FC_Coarse[ INTERFACE_B]; hF = FC_Fine[ INTERFACE_B]; for (iF = FC_xDefaultFine, iC = FC_xDefaultCoarse ; iF<=LxFine-7; iC++,iF+=2) - { + { posC=vectorPosition( iC, jC, hC, LxCoarse, LyCoarse); posFSWB=vectorPosition(iF, jF, hF, LxFine, LyFine); intFC.coarseCellIndices[intFC.numberOfCells] = kCoarse[posC]; @@ -1595,7 +1595,7 @@ void interpolation(InterpolationCells &intCF, InterpolationCells &intFC, hC = FC_Coarse[ INTERFACE_B]; hF = FC_Fine[ INTERFACE_B]; for (iF = FC_xDefaultFine, iC = FC_xDefaultCoarse ; iF<=LxFine-7; iC++,iF+=2) - { + { posC=vectorPosition( iC, jC, hC, LxCoarse, LyCoarse); posFSWB=vectorPosition(iF, jF, hF, LxFine, LyFine); intFC.coarseCellIndices[intFC.numberOfCells] = kCoarse[posC]; @@ -1612,7 +1612,7 @@ void interpolation(InterpolationCells &intCF, InterpolationCells &intFC, hC = FC_NCoarse[INTERFACE_B]; hF = FC_NFine[INTERFACE_B]; for (iF = FC_xDefaultFine, iC = FC_xDefaultCoarse ; iF<=LxFine-7; iC++,iF+=2) - { + { posC=vectorPosition( iC, jC, hC, LxCoarse, LyCoarse); posFSWB=vectorPosition(iF, jF, hF, LxFine, LyFine); intFC.coarseCellIndices[intFC.numberOfCells] = kCoarse[posC]; @@ -2942,9 +2942,9 @@ void interpolation(InterpolationCells &intCF, InterpolationCells &intFC, // hC = dNz + 2; hF = 3; // // for (hF = 3, hC = dNz + 2 ; hF<=LzFine-5; hC++,hF+=2) -// { +// { // for (jF = 3, jC = dNy + 2 ; jF<=LyFine-5; jC++,jF+=2) -// { +// { // posC=vectorPosition( iC, jC, hC, LxCoarse, LyCoarse); // posFSWB=vectorPosition(iF, jF, hF, LxFine, LyFine); // intFC.ICellFCC[intFC.kFC] = kCoarse[posC]; @@ -2968,7 +2968,7 @@ void interpolation(InterpolationCells &intCF, InterpolationCells &intFC, // hC = dNz; hF = 0; // // for (hF = 0, hC = dNz ; hF <= LzFine-2; hC++,hF+=2) -// { +// { // for (iF = 0 , iC = dNx ; iF<=LxFine-2; iC++,iF+=2) // { // posCSWB=vectorPosition(iC, jC, hC, LxCoarse, LyCoarse); @@ -2987,9 +2987,9 @@ void interpolation(InterpolationCells &intCF, InterpolationCells &intFC, // hC = dNz + 2; hF = 3; // // for (hF = 3, hC = dNz + 2 ; hF<=LzFine-5; hC++,hF+=2) -// { +// { // for (iF = 3, iC = dNx + 2 ; iF<=LxFine-5; iC++,iF+=2) -// { +// { // posC=vectorPosition( iC, jC, hC, LxCoarse, LyCoarse); // posFSWB=vectorPosition(iF, jF, hF, LxFine, LyFine); // intFC.ICellFCC[intFC.kFC] = kCoarse[posC]; @@ -3013,7 +3013,7 @@ void interpolation(InterpolationCells &intCF, InterpolationCells &intFC, // hC = dNz; hF = 0; // // for (hF = 0, hC = dNz ; hF<=LzFine-2; hC++,hF+=2) -// { +// { // for (jF = 0, jC = dNy ; jF<=LyFine-2; jC++,jF+=2) // { // posCSWB=vectorPosition(iC, jC, hC, LxCoarse, LyCoarse); @@ -3032,9 +3032,9 @@ void interpolation(InterpolationCells &intCF, InterpolationCells &intFC, // hC = dNz + 2; hF = 3; // // for (hF = 3, hC = dNz + 2 ; hF<=LzFine-5; hC++,hF+=2) -// { +// { // for (jF = 3, jC = dNy + 2 ; jF<=LyFine-5; jC++,jF+=2) -// { +// { // posC=vectorPosition( iC, jC, hC, LxCoarse, LyCoarse); // posFSWB=vectorPosition(iF, jF, hF, LxFine, LyFine); // intFC.ICellFCC[intFC.kFC] = kCoarse[posC]; @@ -3058,7 +3058,7 @@ void interpolation(InterpolationCells &intCF, InterpolationCells &intFC, // hC = dNz; hF = 0; // // for (hF = 0, hC = dNz ; hF <= LzFine-2; hC++,hF+=2) -// { +// { // for (iF = 0, iC = dNx ; iF<=LxFine-2; iC++,iF+=2) // { // posCSWB=vectorPosition(iC, jC, hC, LxCoarse, LyCoarse); @@ -3077,9 +3077,9 @@ void interpolation(InterpolationCells &intCF, InterpolationCells &intFC, // hC = dNz + 2; hF = 3; // // for (hF = 3, hC = dNz + 2 ; hF<=LzFine-5; hC++,hF+=2) -// { +// { // for (iF = 3, iC = dNx + 2 ; iF<=LxFine-5; iC++,iF+=2) -// { +// { // posC=vectorPosition( iC, jC, hC, LxCoarse, LyCoarse); // posFSWB=vectorPosition(iF, jF, hF, LxFine, LyFine); // intFC.ICellFCC[intFC.kFC] = kCoarse[posC]; @@ -3122,9 +3122,9 @@ void interpolation(InterpolationCells &intCF, InterpolationCells &intFC, // hC = dNz + 2; hF = 3; // // for (jF = 3, jC = dNy + 2 ; jF<=LyFine-5; jC++,jF+=2) -// { +// { // for (iF = 3, iC = dNx + 2 ; iF<=LxFine-5; iC++,iF+=2) -// { +// { // posC=vectorPosition( iC, jC, hC, LxCoarse, LyCoarse); // posFSWB=vectorPosition(iF, jF, hF, LxFine, LyFine); // intFC.ICellFCC[intFC.kFC] = kCoarse[posC]; @@ -3148,7 +3148,7 @@ void interpolation(InterpolationCells &intCF, InterpolationCells &intFC, // hC = dNz + LzFine/2 -1; hF = LzFine - 2; // // for (jF = 0, jC = dNy ; jF<=LyFine-2; jC++,jF+=2) -// { +// { // for (iF = 0, iC = dNx ; iF<=LxFine-2; iC++,iF+=2) // { // posCSWB=vectorPosition(iC, jC, hC, LxCoarse, LyCoarse); @@ -3167,9 +3167,9 @@ void interpolation(InterpolationCells &intCF, InterpolationCells &intFC, // hC = dNz + LzFine/2 - 2; hF = LzFine - 5; // // for (jF = 3, jC = dNy + 2 ; jF<=LyFine-5; jC++,jF+=2) -// { +// { // for (iF = 3, iC = dNx + 2 ; iF<=LxFine-5; iC++,iF+=2) -// { +// { // posC=vectorPosition( iC, jC, hC, LxCoarse, LyCoarse); // posFSWB=vectorPosition(iF, jF, hF, LxFine, LyFine); // intFC.ICellFCC[intFC.kFC] = kCoarse[posC]; diff --git a/src/gpu/core/FindQ/DefineBCs.cpp b/src/gpu/core/FindQ/DefineBCs.cpp index d36d3f9a58246eb344a90a21709314ade414378c..3aab8a8cb628ad0da30f366b0371363c2dfcfef9 100644 --- a/src/gpu/core/FindQ/DefineBCs.cpp +++ b/src/gpu/core/FindQ/DefineBCs.cpp @@ -3,23 +3,23 @@ void findPressQShip(Parameter* para, CudaMemoryManager* cudaMemoryManager) { - //x = begin (0) - findKforQPressX0(para, para->getCoarse()); - cudaMemoryManager->cudaAllocPressX0(para->getCoarse()); - findQPressX0(para, para->getCoarse()); - cudaMemoryManager->cudaCopyPressX0(para->getCoarse()); - //x = end (1) - findKforQPressX1(para, para->getCoarse()); - cudaMemoryManager->cudaAllocPressX1(para->getCoarse()); - findQPressX1(para, para->getCoarse()); - cudaMemoryManager->cudaCopyPressX1(para->getCoarse()); - //for (int lev = para->getFine(); lev >= para->getCoarse(); lev--) - //{ - // findKforQPressX1(para, lev); - // para->cudaAllocPressX1(lev); - // findQPressX1(para, lev); - // para->cudaCopyPressX1(lev); - //} + //x = begin (0) + findKforQPressX0(para, para->getCoarse()); + cudaMemoryManager->cudaAllocPressX0(para->getCoarse()); + findQPressX0(para, para->getCoarse()); + cudaMemoryManager->cudaCopyPressX0(para->getCoarse()); + //x = end (1) + findKforQPressX1(para, para->getCoarse()); + cudaMemoryManager->cudaAllocPressX1(para->getCoarse()); + findQPressX1(para, para->getCoarse()); + cudaMemoryManager->cudaCopyPressX1(para->getCoarse()); + //for (int lev = para->getFine(); lev >= para->getCoarse(); lev--) + //{ + // findKforQPressX1(para, lev); + // para->cudaAllocPressX1(lev); + // findQPressX1(para, lev); + // para->cudaCopyPressX1(lev); + //} } @@ -30,16 +30,16 @@ void findQ27(Parameter* para, CudaMemoryManager* cudaMemoryManager) for (int lev = para->getFine(); lev >= para->getCoarse(); lev--) { findKforQ(para, lev); - para->getParD(lev)->noSlipBC.numberOfBCnodes = para->getParH(lev)->noSlipBC.numberOfBCnodes; + para->getParD(lev)->noSlipBC.numberOfBCnodes = para->getParH(lev)->noSlipBC.numberOfBCnodes; printf("numberOfBCnodes= %d\n", para->getParH(lev)->noSlipBC.numberOfBCnodes); - cudaMemoryManager->cudaAllocNoSlipBC(lev); + cudaMemoryManager->cudaAllocNoSlipBC(lev); findQ(para, lev); - para->getParD(lev)->noSlipBC.numberOfBCnodes = para->getParH(lev)->noSlipBC.numberOfBCnodes; + para->getParD(lev)->noSlipBC.numberOfBCnodes = para->getParH(lev)->noSlipBC.numberOfBCnodes; printf("numberOfBCnodes= %d\n", para->getParH(lev)->noSlipBC.numberOfBCnodes); - cudaMemoryManager->cudaCopyNoSlipBC(lev); + cudaMemoryManager->cudaCopyNoSlipBC(lev); } } @@ -56,11 +56,11 @@ void findBC27(Parameter* para, CudaMemoryManager* cudaMemoryManager) printf("numberOfVeloBCnodes= %d\n", para->getParH(para->getCoarse())->velocityBC.numberOfBCnodes); - cudaMemoryManager->cudaAllocVeloBC(0); //level = 0 + cudaMemoryManager->cudaAllocVeloBC(0); //level = 0 findQInflow(para); - cudaMemoryManager->cudaCopyVeloBC(0); //level = 0 + cudaMemoryManager->cudaCopyVeloBC(0); //level = 0 } // TODO: https://git.rz.tu-bs.de/irmb/VirtualFluids_dev/-/issues/29 @@ -69,15 +69,15 @@ void findBC27(Parameter* para, CudaMemoryManager* cudaMemoryManager) //{ // //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // //Outflow - // findKforQOutflow(para); + // findKforQOutflow(para); - // printf("numberOfOutflowBCnodes= %d\n", para->getParH(para->getCoarse())->outflowBC.numberOfBCnodes); + // printf("numberOfOutflowBCnodes= %d\n", para->getParH(para->getCoarse())->outflowBC.numberOfBCnodes); - // para->cudaAllocPressBC(); + // para->cudaAllocPressBC(); - // findQOutflow(para); + // findQOutflow(para); - // para->cudaCopyPressBC(); + // para->cudaCopyPressBC(); //} diff --git a/src/gpu/core/FindQ/FindQ.cpp b/src/gpu/core/FindQ/FindQ.cpp index a961fdf71e2f518c8cb41c0d57fe9c87616ec7d4..469bc0c05fa706175ab553bf1583503eb41f5c54 100644 --- a/src/gpu/core/FindQ/FindQ.cpp +++ b/src/gpu/core/FindQ/FindQ.cpp @@ -488,7 +488,7 @@ void findQInflow(Parameter* para) if(geo_mat[m]==GEO_FLUID){ QIN.k[QIN.numberOfBCnodes] = kk[m]; //vx[QIN.numberOfBCnodes] = (real)0.f; - vx[QIN.numberOfBCnodes] = u0; + vx[QIN.numberOfBCnodes] = u0; vy[QIN.numberOfBCnodes] = (real)0.f; vz[QIN.numberOfBCnodes] = (real)0.f; //vz[QIN.numberOfBCnodes] = u0; @@ -496,7 +496,7 @@ void findQInflow(Parameter* para) //vz[QIN.numberOfBCnodes] = (real)(16.f*(u0*2.f)*(i-(STARTOFFX+1)-0.5f)*(li-1.5f-(i-(STARTOFFX+1)))*(j-(STARTOFFY+1)-0.5f)*(lj-1.5f-(j-(STARTOFFY+1))))/(li*lj*li*lj); //vz[QIN.numberOfBCnodes] = (real)(16.f*(u0*2.f)*i*j*(nx-i)*(ny-j))/(nx*nx*ny*ny); deltaVz[QIN.numberOfBCnodes] = (real)0.f; - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// //Q.q27[dP00 ][QIN.numberOfBCnodes] = (real)-1.f; //Q.q27[dM00 ][QIN.numberOfBCnodes] = (real)-1.f; //Q.q27[d0P0 ][QIN.numberOfBCnodes] = (real)-1.f; @@ -524,42 +524,42 @@ void findQInflow(Parameter* para) //Q.q27[dMMM ][QIN.numberOfBCnodes] = (real)1.f; //Q.q27[dPMM ][QIN.numberOfBCnodes] = (real)1.f; //Q.q27[dMPM ][QIN.numberOfBCnodes] = (real)1.f; - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// // ! CAUTION ! Do not use this function! // As the order of the distributions was changed in July 2022, this does not work anymore. // https://git.rz.tu-bs.de/irmb/VirtualFluids_dev/-/issues/14 - Q.q27[dP00 ][QIN.numberOfBCnodes] = (real)-1.f; - Q.q27[dM00 ][QIN.numberOfBCnodes] = (real)-1.f; - Q.q27[d0P0 ][QIN.numberOfBCnodes] = (real)-1.f; - Q.q27[d0M0 ][QIN.numberOfBCnodes] = (real)-1.f; - Q.q27[d00P ][QIN.numberOfBCnodes] = (real)1.f; - Q.q27[d00M ][QIN.numberOfBCnodes] = (real)-1.f; - Q.q27[dPP0 ][QIN.numberOfBCnodes] = (real)-1.f; - Q.q27[dMM0 ][QIN.numberOfBCnodes] = (real)-1.f; - Q.q27[dPM0 ][QIN.numberOfBCnodes] = (real)-1.f; - Q.q27[dMP0 ][QIN.numberOfBCnodes] = (real)-1.f; - Q.q27[dP0P ][QIN.numberOfBCnodes] = (real)1.f; - Q.q27[dM0M ][QIN.numberOfBCnodes] = (real)-1.f; - Q.q27[dP0M ][QIN.numberOfBCnodes] = (real)-1.f; - Q.q27[dM0P ][QIN.numberOfBCnodes] = (real)1.f; - Q.q27[d0PP ][QIN.numberOfBCnodes] = (real)1.f; - Q.q27[d0MM ][QIN.numberOfBCnodes] = (real)-1.f; - Q.q27[d0PM ][QIN.numberOfBCnodes] = (real)-1.f; - Q.q27[d0MP ][QIN.numberOfBCnodes] = (real)1.f; - Q.q27[d000][QIN.numberOfBCnodes] = (real)-1.f; - Q.q27[dPPP ][QIN.numberOfBCnodes] = (real)1.f; - Q.q27[dMMP ][QIN.numberOfBCnodes] = (real)1.f; - Q.q27[dPMP ][QIN.numberOfBCnodes] = (real)1.f; - Q.q27[dMPP ][QIN.numberOfBCnodes] = (real)1.f; - Q.q27[dPPM ][QIN.numberOfBCnodes] = (real)-1.f; - Q.q27[dMMM ][QIN.numberOfBCnodes] = (real)-1.f; - Q.q27[dPMM ][QIN.numberOfBCnodes] = (real)-1.f; - Q.q27[dMPM ][QIN.numberOfBCnodes] = (real)-1.f; - ////////////////////////////////////////////////////////////////////////// - QIN.numberOfBCnodes++; + Q.q27[dP00 ][QIN.numberOfBCnodes] = (real)-1.f; + Q.q27[dM00 ][QIN.numberOfBCnodes] = (real)-1.f; + Q.q27[d0P0 ][QIN.numberOfBCnodes] = (real)-1.f; + Q.q27[d0M0 ][QIN.numberOfBCnodes] = (real)-1.f; + Q.q27[d00P ][QIN.numberOfBCnodes] = (real)1.f; + Q.q27[d00M ][QIN.numberOfBCnodes] = (real)-1.f; + Q.q27[dPP0 ][QIN.numberOfBCnodes] = (real)-1.f; + Q.q27[dMM0 ][QIN.numberOfBCnodes] = (real)-1.f; + Q.q27[dPM0 ][QIN.numberOfBCnodes] = (real)-1.f; + Q.q27[dMP0 ][QIN.numberOfBCnodes] = (real)-1.f; + Q.q27[dP0P ][QIN.numberOfBCnodes] = (real)1.f; + Q.q27[dM0M ][QIN.numberOfBCnodes] = (real)-1.f; + Q.q27[dP0M ][QIN.numberOfBCnodes] = (real)-1.f; + Q.q27[dM0P ][QIN.numberOfBCnodes] = (real)1.f; + Q.q27[d0PP ][QIN.numberOfBCnodes] = (real)1.f; + Q.q27[d0MM ][QIN.numberOfBCnodes] = (real)-1.f; + Q.q27[d0PM ][QIN.numberOfBCnodes] = (real)-1.f; + Q.q27[d0MP ][QIN.numberOfBCnodes] = (real)1.f; + Q.q27[d000][QIN.numberOfBCnodes] = (real)-1.f; + Q.q27[dPPP ][QIN.numberOfBCnodes] = (real)1.f; + Q.q27[dMMP ][QIN.numberOfBCnodes] = (real)1.f; + Q.q27[dPMP ][QIN.numberOfBCnodes] = (real)1.f; + Q.q27[dMPP ][QIN.numberOfBCnodes] = (real)1.f; + Q.q27[dPPM ][QIN.numberOfBCnodes] = (real)-1.f; + Q.q27[dMMM ][QIN.numberOfBCnodes] = (real)-1.f; + Q.q27[dPMM ][QIN.numberOfBCnodes] = (real)-1.f; + Q.q27[dMPM ][QIN.numberOfBCnodes] = (real)-1.f; + ////////////////////////////////////////////////////////////////////////// + QIN.numberOfBCnodes++; } } } @@ -737,7 +737,7 @@ void findKforQInflow(Parameter* para) } if (test>0) { - QIN.numberOfBCnodes++; + QIN.numberOfBCnodes++; } } } @@ -857,7 +857,7 @@ void findQOutflow(Parameter* para) rhoBC[QIN.numberOfBCnodes] = (real)0.f; vx[QIN.numberOfBCnodes] = (real)0.f; vy[QIN.numberOfBCnodes] = (real)0.f; - //vz[QIN.numberOfBCnodes] = u0; + //vz[QIN.numberOfBCnodes] = u0; vz[QIN.numberOfBCnodes] = (real)(u0*2.f)*((-4.f*i*i + nnx*(-2.f - 4.f*STARTOFFX) - 4.f*(-1.5f + STARTOFFX)*(0.5f + STARTOFFX) + i*(-4.f + 4.f*nnx + 8.f*STARTOFFX))*(-4.f*j*j + nny*(-2.f - 4.f*STARTOFFY) - 4.f*(-1.5f + STARTOFFY)*(0.5f + STARTOFFY) + j*(-4.f + 4.f*nny + 8.f*STARTOFFY)))/((2.f - nnx)*(2.f - nnx)*(2.f - nny)*(2.f - nny)); //vz[QIN.numberOfBCnodes] = (real)(16.f*(u0*2.f)*(i-(STARTOFFX+1)-0.5f)*(li-1.5f-(i-(STARTOFFX+1)))*(j-(STARTOFFY+1)-0.5f)*(lj-1.5f-(j-(STARTOFFY+1))))/(li*lj*li*lj); //vz[QIN.numberOfBCnodes] = (real)(16.f*(u0*2.f)*i*j*(nx-i)*(ny-j))/(nx*nx*ny*ny); @@ -1068,114 +1068,114 @@ void findQPressX0(Parameter* para, int lev) // https://git.rz.tu-bs.de/irmb/VirtualFluids_dev/-/issues/14 VF_LOG_CRITICAL("findKforQPressX0() is deprecated! - see comment above for more information"); - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - ////////////// dP00 dM00 d0P0 d0M0 d00P d00M dPP0 dMM0 dPM0 dMP0 dP0P dM0M dP0M dM0P d0PP d0MM d0PM d0MP ZERO dPPP dPPM dPMP dPMM dMPP dMPM dMMP dMMM //////////////////////// - //int ex[27]={ 1, -1, 0, 0, 0, 0, 1, -1, 1, -1, 1, -1, 1, -1, 0, 0, 0, 0, 0, 1, 1, 1, 1, -1, -1, -1, -1}; - //int ey[27]={ 0, 0, 1, -1, 0, 0, 1, -1, -1, 1, 0, 0, 0, 0, 1, -1, 1, -1, 0, 1, 1, -1, -1, 1, 1, -1, -1}; - //int ez[27]={ 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 1, -1, -1, 1, 1, -1, -1, 1, 0, 1, -1, 1, -1, 1, -1, 1, -1}; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - unsigned int i, j, k, m; - int nx = para->getParH(lev)->nx; - int ny = para->getParH(lev)->ny; - unsigned int nnx = para->getParH(lev)->gridNX; - unsigned int nny = para->getParH(lev)->gridNY; - unsigned int nnz = para->getParH(lev)->gridNZ; - int* geo_mat = para->getParH(lev)->geo; - unsigned int* kk = para->getParH(lev)->k; - //unsigned int sizeQ = para->getParH(lev)->outflowBC.numberOfBCnodes; - unsigned int sizeQ = para->getParH(lev)->QpressX0.numberOfBCnodes; - real* rhoBC = para->getParH(lev)->QpressX0.RhoBC; - real u0 = para->getVelocity(); - real* vx = para->getParH(lev)->QpressX0.Vx; - real* vy = para->getParH(lev)->QpressX0.Vy; - real* vz = para->getParH(lev)->QpressX0.Vz; - real*deltaVz = para->getParH(lev)->QpressX0.deltaVz; - real* QQ = para->getParH(lev)->QpressX0.q27[0]; - QforBoundaryConditions &QIN = para->getParH(lev)->QpressX0; - //unsigned int nxny = nx*ny; - QIN.numberOfBCnodes = 0; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - QforBoundaryConditions Q; - Q.q27[dP00 ] = &QQ[dP00 *sizeQ]; - Q.q27[dM00 ] = &QQ[dM00 *sizeQ]; - Q.q27[d0P0 ] = &QQ[d0P0 *sizeQ]; - Q.q27[d0M0 ] = &QQ[d0M0 *sizeQ]; - Q.q27[d00P ] = &QQ[d00P *sizeQ]; - Q.q27[d00M ] = &QQ[d00M *sizeQ]; - Q.q27[dPP0 ] = &QQ[dPP0 *sizeQ]; - Q.q27[dMM0 ] = &QQ[dMM0 *sizeQ]; - Q.q27[dPM0 ] = &QQ[dPM0 *sizeQ]; - Q.q27[dMP0 ] = &QQ[dMP0 *sizeQ]; - Q.q27[dP0P ] = &QQ[dP0P *sizeQ]; - Q.q27[dM0M ] = &QQ[dM0M *sizeQ]; - Q.q27[dP0M ] = &QQ[dP0M *sizeQ]; - Q.q27[dM0P ] = &QQ[dM0P *sizeQ]; - Q.q27[d0PP ] = &QQ[d0PP *sizeQ]; - Q.q27[d0MM ] = &QQ[d0MM *sizeQ]; - Q.q27[d0PM ] = &QQ[d0PM *sizeQ]; - Q.q27[d0MP ] = &QQ[d0MP *sizeQ]; - Q.q27[d000] = &QQ[d000*sizeQ]; - Q.q27[dPPP ] = &QQ[dPPP *sizeQ]; - Q.q27[dMMP ] = &QQ[dMMP *sizeQ]; - Q.q27[dPMP ] = &QQ[dPMP *sizeQ]; - Q.q27[dMPP ] = &QQ[dMPP *sizeQ]; - Q.q27[dPPM ] = &QQ[dPPM *sizeQ]; - Q.q27[dMMM ] = &QQ[dMMM *sizeQ]; - Q.q27[dPMM ] = &QQ[dPMM *sizeQ]; - Q.q27[dMPM ] = &QQ[dMPM *sizeQ]; - - - //unsigned int li = ((nnx+STARTOFFX-2)-(STARTOFFX+1)-1); - //unsigned int lj = ((nny+STARTOFFY-2)-(STARTOFFY+1)-1); - - i=STARTOFFX+1; - //k=nnz+STARTOFFZ-3; - for(k=STARTOFFZ+1 ; k<=nnz+STARTOFFZ-2 ; k++){ - for(j=STARTOFFY+1 ; j<=nny+STARTOFFY-2 ; j++){ - //for(i=STARTOFFX+1; i<=nnx+STARTOFFX-2 ; i++){ - m = nx*(ny*k + j) + i; - if(geo_mat[m]==GEO_FLUID){ - QIN.k[QIN.numberOfBCnodes] = kk[m]; - QIN.kN[QIN.numberOfBCnodes] = kk[m+1]; - rhoBC[QIN.numberOfBCnodes] = (real)0.f; - vx[QIN.numberOfBCnodes] = (real)0.f; - vy[QIN.numberOfBCnodes] = (real)0.f; - //vz[QIN.numberOfBCnodes] = u0; - vz[QIN.numberOfBCnodes] = (real)(u0*2.f)*((-4.f*i*i + nnx*(-2.f - 4.f*STARTOFFX) - 4.f*(-1.5f + STARTOFFX)*(0.5f + STARTOFFX) + i*(-4.f + 4.f*nnx + 8.f*STARTOFFX))*(-4.f*j*j + nny*(-2.f - 4.f*STARTOFFY) - 4.f*(-1.5f + STARTOFFY)*(0.5f + STARTOFFY) + j*(-4.f + 4.f*nny + 8.f*STARTOFFY)))/((2.f - nnx)*(2.f - nnx)*(2.f - nny)*(2.f - nny)); - //vz[QIN.numberOfBCnodes] = (real)(16.f*(u0*2.f)*(i-(STARTOFFX+1)-0.5f)*(li-1.5f-(i-(STARTOFFX+1)))*(j-(STARTOFFY+1)-0.5f)*(lj-1.5f-(j-(STARTOFFY+1))))/(li*lj*li*lj); - //vz[QIN.numberOfBCnodes] = (real)(16.f*(u0*2.f)*i*j*(nx-i)*(ny-j))/(nx*nx*ny*ny); - deltaVz[QIN.numberOfBCnodes] = (real)0.f; - Q.q27[dP00 ][QIN.numberOfBCnodes] = (real)-1.f; - Q.q27[dM00 ][QIN.numberOfBCnodes] = (real)1.f; - Q.q27[d0P0 ][QIN.numberOfBCnodes] = (real)-1.f; - Q.q27[d0M0 ][QIN.numberOfBCnodes] = (real)-1.f; - Q.q27[d00P ][QIN.numberOfBCnodes] = (real)-1.f; - Q.q27[d00M ][QIN.numberOfBCnodes] = (real)-1.f; - Q.q27[dPP0 ][QIN.numberOfBCnodes] = (real)-1.f; - Q.q27[dMM0 ][QIN.numberOfBCnodes] = (real)1.f; - Q.q27[dPM0 ][QIN.numberOfBCnodes] = (real)-1.f; - Q.q27[dMP0 ][QIN.numberOfBCnodes] = (real)1.f; - Q.q27[dP0P ][QIN.numberOfBCnodes] = (real)-1.f; - Q.q27[dM0M ][QIN.numberOfBCnodes] = (real)1.f; - Q.q27[dP0M ][QIN.numberOfBCnodes] = (real)-1.f; - Q.q27[dM0P ][QIN.numberOfBCnodes] = (real)1.f; - Q.q27[d0PP ][QIN.numberOfBCnodes] = (real)-1.f; - Q.q27[d0MM ][QIN.numberOfBCnodes] = (real)-1.f; - Q.q27[d0PM ][QIN.numberOfBCnodes] = (real)-1.f; - Q.q27[d0MP ][QIN.numberOfBCnodes] = (real)-1.f; - Q.q27[d000][QIN.numberOfBCnodes] = (real)-1.f; - Q.q27[dPPP ][QIN.numberOfBCnodes] = (real)-1.f; - Q.q27[dMMP ][QIN.numberOfBCnodes] = (real)1.f; - Q.q27[dPMP ][QIN.numberOfBCnodes] = (real)-1.f; - Q.q27[dMPP ][QIN.numberOfBCnodes] = (real)1.f; - Q.q27[dPPM ][QIN.numberOfBCnodes] = (real)-1.f; - Q.q27[dMMM ][QIN.numberOfBCnodes] = (real)1.f; - Q.q27[dPMM ][QIN.numberOfBCnodes] = (real)-1.f; - Q.q27[dMPM ][QIN.numberOfBCnodes] = (real)1.f; - QIN.numberOfBCnodes++; - } - } - } + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + ////////////// dP00 dM00 d0P0 d0M0 d00P d00M dPP0 dMM0 dPM0 dMP0 dP0P dM0M dP0M dM0P d0PP d0MM d0PM d0MP ZERO dPPP dPPM dPMP dPMM dMPP dMPM dMMP dMMM //////////////////////// + //int ex[27]={ 1, -1, 0, 0, 0, 0, 1, -1, 1, -1, 1, -1, 1, -1, 0, 0, 0, 0, 0, 1, 1, 1, 1, -1, -1, -1, -1}; + //int ey[27]={ 0, 0, 1, -1, 0, 0, 1, -1, -1, 1, 0, 0, 0, 0, 1, -1, 1, -1, 0, 1, 1, -1, -1, 1, 1, -1, -1}; + //int ez[27]={ 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 1, -1, -1, 1, 1, -1, -1, 1, 0, 1, -1, 1, -1, 1, -1, 1, -1}; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + unsigned int i, j, k, m; + int nx = para->getParH(lev)->nx; + int ny = para->getParH(lev)->ny; + unsigned int nnx = para->getParH(lev)->gridNX; + unsigned int nny = para->getParH(lev)->gridNY; + unsigned int nnz = para->getParH(lev)->gridNZ; + int* geo_mat = para->getParH(lev)->geo; + unsigned int* kk = para->getParH(lev)->k; + //unsigned int sizeQ = para->getParH(lev)->outflowBC.numberOfBCnodes; + unsigned int sizeQ = para->getParH(lev)->QpressX0.numberOfBCnodes; + real* rhoBC = para->getParH(lev)->QpressX0.RhoBC; + real u0 = para->getVelocity(); + real* vx = para->getParH(lev)->QpressX0.Vx; + real* vy = para->getParH(lev)->QpressX0.Vy; + real* vz = para->getParH(lev)->QpressX0.Vz; + real*deltaVz = para->getParH(lev)->QpressX0.deltaVz; + real* QQ = para->getParH(lev)->QpressX0.q27[0]; + QforBoundaryConditions &QIN = para->getParH(lev)->QpressX0; + //unsigned int nxny = nx*ny; + QIN.numberOfBCnodes = 0; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + QforBoundaryConditions Q; + Q.q27[dP00 ] = &QQ[dP00 *sizeQ]; + Q.q27[dM00 ] = &QQ[dM00 *sizeQ]; + Q.q27[d0P0 ] = &QQ[d0P0 *sizeQ]; + Q.q27[d0M0 ] = &QQ[d0M0 *sizeQ]; + Q.q27[d00P ] = &QQ[d00P *sizeQ]; + Q.q27[d00M ] = &QQ[d00M *sizeQ]; + Q.q27[dPP0 ] = &QQ[dPP0 *sizeQ]; + Q.q27[dMM0 ] = &QQ[dMM0 *sizeQ]; + Q.q27[dPM0 ] = &QQ[dPM0 *sizeQ]; + Q.q27[dMP0 ] = &QQ[dMP0 *sizeQ]; + Q.q27[dP0P ] = &QQ[dP0P *sizeQ]; + Q.q27[dM0M ] = &QQ[dM0M *sizeQ]; + Q.q27[dP0M ] = &QQ[dP0M *sizeQ]; + Q.q27[dM0P ] = &QQ[dM0P *sizeQ]; + Q.q27[d0PP ] = &QQ[d0PP *sizeQ]; + Q.q27[d0MM ] = &QQ[d0MM *sizeQ]; + Q.q27[d0PM ] = &QQ[d0PM *sizeQ]; + Q.q27[d0MP ] = &QQ[d0MP *sizeQ]; + Q.q27[d000] = &QQ[d000*sizeQ]; + Q.q27[dPPP ] = &QQ[dPPP *sizeQ]; + Q.q27[dMMP ] = &QQ[dMMP *sizeQ]; + Q.q27[dPMP ] = &QQ[dPMP *sizeQ]; + Q.q27[dMPP ] = &QQ[dMPP *sizeQ]; + Q.q27[dPPM ] = &QQ[dPPM *sizeQ]; + Q.q27[dMMM ] = &QQ[dMMM *sizeQ]; + Q.q27[dPMM ] = &QQ[dPMM *sizeQ]; + Q.q27[dMPM ] = &QQ[dMPM *sizeQ]; + + + //unsigned int li = ((nnx+STARTOFFX-2)-(STARTOFFX+1)-1); + //unsigned int lj = ((nny+STARTOFFY-2)-(STARTOFFY+1)-1); + + i=STARTOFFX+1; + //k=nnz+STARTOFFZ-3; + for(k=STARTOFFZ+1 ; k<=nnz+STARTOFFZ-2 ; k++){ + for(j=STARTOFFY+1 ; j<=nny+STARTOFFY-2 ; j++){ + //for(i=STARTOFFX+1; i<=nnx+STARTOFFX-2 ; i++){ + m = nx*(ny*k + j) + i; + if(geo_mat[m]==GEO_FLUID){ + QIN.k[QIN.numberOfBCnodes] = kk[m]; + QIN.kN[QIN.numberOfBCnodes] = kk[m+1]; + rhoBC[QIN.numberOfBCnodes] = (real)0.f; + vx[QIN.numberOfBCnodes] = (real)0.f; + vy[QIN.numberOfBCnodes] = (real)0.f; + //vz[QIN.numberOfBCnodes] = u0; + vz[QIN.numberOfBCnodes] = (real)(u0*2.f)*((-4.f*i*i + nnx*(-2.f - 4.f*STARTOFFX) - 4.f*(-1.5f + STARTOFFX)*(0.5f + STARTOFFX) + i*(-4.f + 4.f*nnx + 8.f*STARTOFFX))*(-4.f*j*j + nny*(-2.f - 4.f*STARTOFFY) - 4.f*(-1.5f + STARTOFFY)*(0.5f + STARTOFFY) + j*(-4.f + 4.f*nny + 8.f*STARTOFFY)))/((2.f - nnx)*(2.f - nnx)*(2.f - nny)*(2.f - nny)); + //vz[QIN.numberOfBCnodes] = (real)(16.f*(u0*2.f)*(i-(STARTOFFX+1)-0.5f)*(li-1.5f-(i-(STARTOFFX+1)))*(j-(STARTOFFY+1)-0.5f)*(lj-1.5f-(j-(STARTOFFY+1))))/(li*lj*li*lj); + //vz[QIN.numberOfBCnodes] = (real)(16.f*(u0*2.f)*i*j*(nx-i)*(ny-j))/(nx*nx*ny*ny); + deltaVz[QIN.numberOfBCnodes] = (real)0.f; + Q.q27[dP00 ][QIN.numberOfBCnodes] = (real)-1.f; + Q.q27[dM00 ][QIN.numberOfBCnodes] = (real)1.f; + Q.q27[d0P0 ][QIN.numberOfBCnodes] = (real)-1.f; + Q.q27[d0M0 ][QIN.numberOfBCnodes] = (real)-1.f; + Q.q27[d00P ][QIN.numberOfBCnodes] = (real)-1.f; + Q.q27[d00M ][QIN.numberOfBCnodes] = (real)-1.f; + Q.q27[dPP0 ][QIN.numberOfBCnodes] = (real)-1.f; + Q.q27[dMM0 ][QIN.numberOfBCnodes] = (real)1.f; + Q.q27[dPM0 ][QIN.numberOfBCnodes] = (real)-1.f; + Q.q27[dMP0 ][QIN.numberOfBCnodes] = (real)1.f; + Q.q27[dP0P ][QIN.numberOfBCnodes] = (real)-1.f; + Q.q27[dM0M ][QIN.numberOfBCnodes] = (real)1.f; + Q.q27[dP0M ][QIN.numberOfBCnodes] = (real)-1.f; + Q.q27[dM0P ][QIN.numberOfBCnodes] = (real)1.f; + Q.q27[d0PP ][QIN.numberOfBCnodes] = (real)-1.f; + Q.q27[d0MM ][QIN.numberOfBCnodes] = (real)-1.f; + Q.q27[d0PM ][QIN.numberOfBCnodes] = (real)-1.f; + Q.q27[d0MP ][QIN.numberOfBCnodes] = (real)-1.f; + Q.q27[d000][QIN.numberOfBCnodes] = (real)-1.f; + Q.q27[dPPP ][QIN.numberOfBCnodes] = (real)-1.f; + Q.q27[dMMP ][QIN.numberOfBCnodes] = (real)1.f; + Q.q27[dPMP ][QIN.numberOfBCnodes] = (real)-1.f; + Q.q27[dMPP ][QIN.numberOfBCnodes] = (real)1.f; + Q.q27[dPPM ][QIN.numberOfBCnodes] = (real)-1.f; + Q.q27[dMMM ][QIN.numberOfBCnodes] = (real)1.f; + Q.q27[dPMM ][QIN.numberOfBCnodes] = (real)-1.f; + Q.q27[dMPM ][QIN.numberOfBCnodes] = (real)1.f; + QIN.numberOfBCnodes++; + } + } + } } //////////////////////////////////////////////////////////////////////////////// @@ -1186,53 +1186,53 @@ void findKforQPressX0(Parameter* para, int lev) // https://git.rz.tu-bs.de/irmb/VirtualFluids_dev/-/issues/14 VF_LOG_CRITICAL("findKforQPressX0() is deprecated! - see comment above for more information"); - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - ////////////// dP00 dM00 d0P0 d0M0 d00P d00M dPP0 dMM0 dPM0 dMP0 dP0P dM0M dP0M dM0P d0PP d0MM d0PM d0MP ZERO dPPP dPPM dPMP dPMM dMPP dMPM dMMP dMMM //////////////////////// - //int ex[27]={ 1, -1, 0, 0, 0, 0, 1, -1, 1, -1, 1, -1, 1, -1, 0, 0, 0, 0, 0, 1, 1, 1, 1, -1, -1, -1, -1}; - //int ey[27]={ 0, 0, 1, -1, 0, 0, 1, -1, -1, 1, 0, 0, 0, 0, 1, -1, 1, -1, 0, 1, 1, -1, -1, 1, 1, -1, -1}; - int ez[27]={ 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 1, -1, -1, 1, 1, -1, -1, 1, 0, 1, -1, 1, -1, 1, -1, 1, -1}; - real ON[27]; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + ////////////// dP00 dM00 d0P0 d0M0 d00P d00M dPP0 dMM0 dPM0 dMP0 dP0P dM0M dP0M dM0P d0PP d0MM d0PM d0MP ZERO dPPP dPPM dPMP dPMM dMPP dMPM dMMP dMMM //////////////////////// + //int ex[27]={ 1, -1, 0, 0, 0, 0, 1, -1, 1, -1, 1, -1, 1, -1, 0, 0, 0, 0, 0, 1, 1, 1, 1, -1, -1, -1, -1}; + //int ey[27]={ 0, 0, 1, -1, 0, 0, 1, -1, -1, 1, 0, 0, 0, 0, 1, -1, 1, -1, 0, 1, 1, -1, -1, 1, 1, -1, -1}; + int ez[27]={ 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 1, -1, -1, 1, 1, -1, -1, 1, 0, 1, -1, 1, -1, 1, -1, 1, -1}; + real ON[27]; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //unsigned int mm; - unsigned int i, j, k, m, l; - real test = (real) 0.f; - int nx = para->getParH(lev)->nx; - int ny = para->getParH(lev)->ny; - //unsigned int nnx = para->getParH(lev)->gridNX; - unsigned int nny = para->getParH(lev)->gridNY; - unsigned int nnz = para->getParH(lev)->gridNZ; - int* geo_mat = para->getParH(lev)->geo; - QforBoundaryConditions &QIN = para->getParH(lev)->QpressX0; - QIN.numberOfBCnodes = 0; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - i=STARTOFFX+1; - //k=nnz+STARTOFFZ-3; - { - for(k=STARTOFFZ+1 ; k<=nnz+STARTOFFZ-2 ; k++){ - for(j=STARTOFFY+1 ; j<=nny+STARTOFFY-2 ; j++){ - //for(i=STARTOFFX+1; i<=nnx+STARTOFFX-2 ; i++){ - m = nx*(ny*k + j) + i; - if(geo_mat[m]==GEO_FLUID){ - test = (real)0.f; - for(l=0;l<=26;l++){ - //mm = nx*(ny*(k+ez[l]) + (j+ey[l])) + (i+ex[l]); - if(ez[l]==1){ - ON[l] = (real) 1.f; - } - else{ - ON[l] = (real) 0.f; - } - test += ON[l]; - } - if (test>0) - { - QIN.numberOfBCnodes++; - } - } - } - } - } + unsigned int i, j, k, m, l; + real test = (real) 0.f; + int nx = para->getParH(lev)->nx; + int ny = para->getParH(lev)->ny; + //unsigned int nnx = para->getParH(lev)->gridNX; + unsigned int nny = para->getParH(lev)->gridNY; + unsigned int nnz = para->getParH(lev)->gridNZ; + int* geo_mat = para->getParH(lev)->geo; + QforBoundaryConditions &QIN = para->getParH(lev)->QpressX0; + QIN.numberOfBCnodes = 0; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + i=STARTOFFX+1; + //k=nnz+STARTOFFZ-3; + { + for(k=STARTOFFZ+1 ; k<=nnz+STARTOFFZ-2 ; k++){ + for(j=STARTOFFY+1 ; j<=nny+STARTOFFY-2 ; j++){ + //for(i=STARTOFFX+1; i<=nnx+STARTOFFX-2 ; i++){ + m = nx*(ny*k + j) + i; + if(geo_mat[m]==GEO_FLUID){ + test = (real)0.f; + for(l=0;l<=26;l++){ + //mm = nx*(ny*(k+ez[l]) + (j+ey[l])) + (i+ex[l]); + if(ez[l]==1){ + ON[l] = (real) 1.f; + } + else{ + ON[l] = (real) 0.f; + } + test += ON[l]; + } + if (test>0) + { + QIN.numberOfBCnodes++; + } + } + } + } + } } @@ -1244,114 +1244,114 @@ void findQPressX1(Parameter* para, int lev) // https://git.rz.tu-bs.de/irmb/VirtualFluids_dev/-/issues/14 VF_LOG_CRITICAL("findQPressX1() is deprecated! - see comment above for more information"); - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - ////////////// dP00 dM00 d0P0 d0M0 d00P d00M dPP0 dMM0 dPM0 dMP0 dP0P dM0M dP0M dM0P d0PP d0MM d0PM d0MP ZERO dPPP dPPM dPMP dPMM dMPP dMPM dMMP dMMM //////////////////////// - //int ex[27]={ 1, -1, 0, 0, 0, 0, 1, -1, 1, -1, 1, -1, 1, -1, 0, 0, 0, 0, 0, 1, 1, 1, 1, -1, -1, -1, -1}; - //int ey[27]={ 0, 0, 1, -1, 0, 0, 1, -1, -1, 1, 0, 0, 0, 0, 1, -1, 1, -1, 0, 1, 1, -1, -1, 1, 1, -1, -1}; - //int ez[27]={ 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 1, -1, -1, 1, 1, -1, -1, 1, 0, 1, -1, 1, -1, 1, -1, 1, -1}; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - unsigned int i, j, k, m; - int nx = para->getParH(lev)->nx; - int ny = para->getParH(lev)->ny; - unsigned int nnx = para->getParH(lev)->gridNX; - unsigned int nny = para->getParH(lev)->gridNY; - unsigned int nnz = para->getParH(lev)->gridNZ; - int* geo_mat = para->getParH(lev)->geo; - unsigned int* kk = para->getParH(lev)->k; - //unsigned int sizeQ = para->getParH(lev)->outflowBC.numberOfBCnodes; - unsigned int sizeQ = para->getParH(lev)->QpressX1.numberOfBCnodes; - real* rhoBC = para->getParH(lev)->QpressX1.RhoBC; - real u0 = para->getVelocity(); - real* vx = para->getParH(lev)->QpressX1.Vx; - real* vy = para->getParH(lev)->QpressX1.Vy; - real* vz = para->getParH(lev)->QpressX1.Vz; - real*deltaVz = para->getParH(lev)->QpressX1.deltaVz; - real* QQ = para->getParH(lev)->QpressX1.q27[0]; - QforBoundaryConditions &QIN = para->getParH(lev)->QpressX1; - //unsigned int nxny = nx*ny; - QIN.numberOfBCnodes = 0; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - QforBoundaryConditions Q; - Q.q27[dP00 ] = &QQ[dP00 *sizeQ]; - Q.q27[dM00 ] = &QQ[dM00 *sizeQ]; - Q.q27[d0P0 ] = &QQ[d0P0 *sizeQ]; - Q.q27[d0M0 ] = &QQ[d0M0 *sizeQ]; - Q.q27[d00P ] = &QQ[d00P *sizeQ]; - Q.q27[d00M ] = &QQ[d00M *sizeQ]; - Q.q27[dPP0 ] = &QQ[dPP0 *sizeQ]; - Q.q27[dMM0 ] = &QQ[dMM0 *sizeQ]; - Q.q27[dPM0 ] = &QQ[dPM0 *sizeQ]; - Q.q27[dMP0 ] = &QQ[dMP0 *sizeQ]; - Q.q27[dP0P ] = &QQ[dP0P *sizeQ]; - Q.q27[dM0M ] = &QQ[dM0M *sizeQ]; - Q.q27[dP0M ] = &QQ[dP0M *sizeQ]; - Q.q27[dM0P ] = &QQ[dM0P *sizeQ]; - Q.q27[d0PP ] = &QQ[d0PP *sizeQ]; - Q.q27[d0MM ] = &QQ[d0MM *sizeQ]; - Q.q27[d0PM ] = &QQ[d0PM *sizeQ]; - Q.q27[d0MP ] = &QQ[d0MP *sizeQ]; - Q.q27[d000] = &QQ[d000*sizeQ]; - Q.q27[dPPP ] = &QQ[dPPP *sizeQ]; - Q.q27[dMMP ] = &QQ[dMMP *sizeQ]; - Q.q27[dPMP ] = &QQ[dPMP *sizeQ]; - Q.q27[dMPP ] = &QQ[dMPP *sizeQ]; - Q.q27[dPPM ] = &QQ[dPPM *sizeQ]; - Q.q27[dMMM ] = &QQ[dMMM *sizeQ]; - Q.q27[dPMM ] = &QQ[dPMM *sizeQ]; - Q.q27[dMPM ] = &QQ[dMPM *sizeQ]; - - - //unsigned int li = ((nnx+STARTOFFX-2)-(STARTOFFX+1)-1); - //unsigned int lj = ((nny+STARTOFFY-2)-(STARTOFFY+1)-1); - - i=nnx+STARTOFFX-3; - //k=nnz+STARTOFFZ-3; - for(k=STARTOFFZ+1 ; k<=nnz+STARTOFFZ-2 ; k++){ - for(j=STARTOFFY+1 ; j<=nny+STARTOFFY-2 ; j++){ - //for(i=STARTOFFX+1; i<=nnx+STARTOFFX-2 ; i++){ - m = nx*(ny*k + j) + i; - if(geo_mat[m]==GEO_FLUID){ - QIN.k[QIN.numberOfBCnodes] = kk[m]; - QIN.kN[QIN.numberOfBCnodes] = kk[m-1]; - rhoBC[QIN.numberOfBCnodes] = (real)0.f; - vx[QIN.numberOfBCnodes] = (real)0.f; - vy[QIN.numberOfBCnodes] = (real)0.f; - //vz[QIN.numberOfBCnodes] = u0; - vz[QIN.numberOfBCnodes] = (real)(u0*2.f)*((-4.f*i*i + nnx*(-2.f - 4.f*STARTOFFX) - 4.f*(-1.5f + STARTOFFX)*(0.5f + STARTOFFX) + i*(-4.f + 4.f*nnx + 8.f*STARTOFFX))*(-4.f*j*j + nny*(-2.f - 4.f*STARTOFFY) - 4.f*(-1.5f + STARTOFFY)*(0.5f + STARTOFFY) + j*(-4.f + 4.f*nny + 8.f*STARTOFFY)))/((2.f - nnx)*(2.f - nnx)*(2.f - nny)*(2.f - nny)); - //vz[QIN.numberOfBCnodes] = (real)(16.f*(u0*2.f)*(i-(STARTOFFX+1)-0.5f)*(li-1.5f-(i-(STARTOFFX+1)))*(j-(STARTOFFY+1)-0.5f)*(lj-1.5f-(j-(STARTOFFY+1))))/(li*lj*li*lj); - //vz[QIN.numberOfBCnodes] = (real)(16.f*(u0*2.f)*i*j*(nx-i)*(ny-j))/(nx*nx*ny*ny); - deltaVz[QIN.numberOfBCnodes] = (real)0.f; - Q.q27[dP00 ][QIN.numberOfBCnodes] = (real)1.f; - Q.q27[dM00 ][QIN.numberOfBCnodes] = (real)-1.f; - Q.q27[d0P0 ][QIN.numberOfBCnodes] = (real)-1.f; - Q.q27[d0M0 ][QIN.numberOfBCnodes] = (real)-1.f; - Q.q27[d00P ][QIN.numberOfBCnodes] = (real)-1.f; - Q.q27[d00M ][QIN.numberOfBCnodes] = (real)-1.f; - Q.q27[dPP0 ][QIN.numberOfBCnodes] = (real)1.f; - Q.q27[dMM0 ][QIN.numberOfBCnodes] = (real)-1.f; - Q.q27[dPM0 ][QIN.numberOfBCnodes] = (real)1.f; - Q.q27[dMP0 ][QIN.numberOfBCnodes] = (real)-1.f; - Q.q27[dP0P ][QIN.numberOfBCnodes] = (real)1.f; - Q.q27[dM0M ][QIN.numberOfBCnodes] = (real)-1.f; - Q.q27[dP0M ][QIN.numberOfBCnodes] = (real)1.f; - Q.q27[dM0P ][QIN.numberOfBCnodes] = (real)-1.f; - Q.q27[d0PP ][QIN.numberOfBCnodes] = (real)-1.f; - Q.q27[d0MM ][QIN.numberOfBCnodes] = (real)-1.f; - Q.q27[d0PM ][QIN.numberOfBCnodes] = (real)-1.f; - Q.q27[d0MP ][QIN.numberOfBCnodes] = (real)-1.f; - Q.q27[d000][QIN.numberOfBCnodes] = (real)-1.f; - Q.q27[dPPP ][QIN.numberOfBCnodes] = (real)1.f; - Q.q27[dMMP ][QIN.numberOfBCnodes] = (real)-1.f; - Q.q27[dPMP ][QIN.numberOfBCnodes] = (real)1.f; - Q.q27[dMPP ][QIN.numberOfBCnodes] = (real)-1.f; - Q.q27[dPPM ][QIN.numberOfBCnodes] = (real)1.f; - Q.q27[dMMM ][QIN.numberOfBCnodes] = (real)-1.f; - Q.q27[dPMM ][QIN.numberOfBCnodes] = (real)1.f; - Q.q27[dMPM ][QIN.numberOfBCnodes] = (real)-1.f; - QIN.numberOfBCnodes++; - } - } - } + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + ////////////// dP00 dM00 d0P0 d0M0 d00P d00M dPP0 dMM0 dPM0 dMP0 dP0P dM0M dP0M dM0P d0PP d0MM d0PM d0MP ZERO dPPP dPPM dPMP dPMM dMPP dMPM dMMP dMMM //////////////////////// + //int ex[27]={ 1, -1, 0, 0, 0, 0, 1, -1, 1, -1, 1, -1, 1, -1, 0, 0, 0, 0, 0, 1, 1, 1, 1, -1, -1, -1, -1}; + //int ey[27]={ 0, 0, 1, -1, 0, 0, 1, -1, -1, 1, 0, 0, 0, 0, 1, -1, 1, -1, 0, 1, 1, -1, -1, 1, 1, -1, -1}; + //int ez[27]={ 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 1, -1, -1, 1, 1, -1, -1, 1, 0, 1, -1, 1, -1, 1, -1, 1, -1}; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + unsigned int i, j, k, m; + int nx = para->getParH(lev)->nx; + int ny = para->getParH(lev)->ny; + unsigned int nnx = para->getParH(lev)->gridNX; + unsigned int nny = para->getParH(lev)->gridNY; + unsigned int nnz = para->getParH(lev)->gridNZ; + int* geo_mat = para->getParH(lev)->geo; + unsigned int* kk = para->getParH(lev)->k; + //unsigned int sizeQ = para->getParH(lev)->outflowBC.numberOfBCnodes; + unsigned int sizeQ = para->getParH(lev)->QpressX1.numberOfBCnodes; + real* rhoBC = para->getParH(lev)->QpressX1.RhoBC; + real u0 = para->getVelocity(); + real* vx = para->getParH(lev)->QpressX1.Vx; + real* vy = para->getParH(lev)->QpressX1.Vy; + real* vz = para->getParH(lev)->QpressX1.Vz; + real*deltaVz = para->getParH(lev)->QpressX1.deltaVz; + real* QQ = para->getParH(lev)->QpressX1.q27[0]; + QforBoundaryConditions &QIN = para->getParH(lev)->QpressX1; + //unsigned int nxny = nx*ny; + QIN.numberOfBCnodes = 0; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + QforBoundaryConditions Q; + Q.q27[dP00 ] = &QQ[dP00 *sizeQ]; + Q.q27[dM00 ] = &QQ[dM00 *sizeQ]; + Q.q27[d0P0 ] = &QQ[d0P0 *sizeQ]; + Q.q27[d0M0 ] = &QQ[d0M0 *sizeQ]; + Q.q27[d00P ] = &QQ[d00P *sizeQ]; + Q.q27[d00M ] = &QQ[d00M *sizeQ]; + Q.q27[dPP0 ] = &QQ[dPP0 *sizeQ]; + Q.q27[dMM0 ] = &QQ[dMM0 *sizeQ]; + Q.q27[dPM0 ] = &QQ[dPM0 *sizeQ]; + Q.q27[dMP0 ] = &QQ[dMP0 *sizeQ]; + Q.q27[dP0P ] = &QQ[dP0P *sizeQ]; + Q.q27[dM0M ] = &QQ[dM0M *sizeQ]; + Q.q27[dP0M ] = &QQ[dP0M *sizeQ]; + Q.q27[dM0P ] = &QQ[dM0P *sizeQ]; + Q.q27[d0PP ] = &QQ[d0PP *sizeQ]; + Q.q27[d0MM ] = &QQ[d0MM *sizeQ]; + Q.q27[d0PM ] = &QQ[d0PM *sizeQ]; + Q.q27[d0MP ] = &QQ[d0MP *sizeQ]; + Q.q27[d000] = &QQ[d000*sizeQ]; + Q.q27[dPPP ] = &QQ[dPPP *sizeQ]; + Q.q27[dMMP ] = &QQ[dMMP *sizeQ]; + Q.q27[dPMP ] = &QQ[dPMP *sizeQ]; + Q.q27[dMPP ] = &QQ[dMPP *sizeQ]; + Q.q27[dPPM ] = &QQ[dPPM *sizeQ]; + Q.q27[dMMM ] = &QQ[dMMM *sizeQ]; + Q.q27[dPMM ] = &QQ[dPMM *sizeQ]; + Q.q27[dMPM ] = &QQ[dMPM *sizeQ]; + + + //unsigned int li = ((nnx+STARTOFFX-2)-(STARTOFFX+1)-1); + //unsigned int lj = ((nny+STARTOFFY-2)-(STARTOFFY+1)-1); + + i=nnx+STARTOFFX-3; + //k=nnz+STARTOFFZ-3; + for(k=STARTOFFZ+1 ; k<=nnz+STARTOFFZ-2 ; k++){ + for(j=STARTOFFY+1 ; j<=nny+STARTOFFY-2 ; j++){ + //for(i=STARTOFFX+1; i<=nnx+STARTOFFX-2 ; i++){ + m = nx*(ny*k + j) + i; + if(geo_mat[m]==GEO_FLUID){ + QIN.k[QIN.numberOfBCnodes] = kk[m]; + QIN.kN[QIN.numberOfBCnodes] = kk[m-1]; + rhoBC[QIN.numberOfBCnodes] = (real)0.f; + vx[QIN.numberOfBCnodes] = (real)0.f; + vy[QIN.numberOfBCnodes] = (real)0.f; + //vz[QIN.numberOfBCnodes] = u0; + vz[QIN.numberOfBCnodes] = (real)(u0*2.f)*((-4.f*i*i + nnx*(-2.f - 4.f*STARTOFFX) - 4.f*(-1.5f + STARTOFFX)*(0.5f + STARTOFFX) + i*(-4.f + 4.f*nnx + 8.f*STARTOFFX))*(-4.f*j*j + nny*(-2.f - 4.f*STARTOFFY) - 4.f*(-1.5f + STARTOFFY)*(0.5f + STARTOFFY) + j*(-4.f + 4.f*nny + 8.f*STARTOFFY)))/((2.f - nnx)*(2.f - nnx)*(2.f - nny)*(2.f - nny)); + //vz[QIN.numberOfBCnodes] = (real)(16.f*(u0*2.f)*(i-(STARTOFFX+1)-0.5f)*(li-1.5f-(i-(STARTOFFX+1)))*(j-(STARTOFFY+1)-0.5f)*(lj-1.5f-(j-(STARTOFFY+1))))/(li*lj*li*lj); + //vz[QIN.numberOfBCnodes] = (real)(16.f*(u0*2.f)*i*j*(nx-i)*(ny-j))/(nx*nx*ny*ny); + deltaVz[QIN.numberOfBCnodes] = (real)0.f; + Q.q27[dP00 ][QIN.numberOfBCnodes] = (real)1.f; + Q.q27[dM00 ][QIN.numberOfBCnodes] = (real)-1.f; + Q.q27[d0P0 ][QIN.numberOfBCnodes] = (real)-1.f; + Q.q27[d0M0 ][QIN.numberOfBCnodes] = (real)-1.f; + Q.q27[d00P ][QIN.numberOfBCnodes] = (real)-1.f; + Q.q27[d00M ][QIN.numberOfBCnodes] = (real)-1.f; + Q.q27[dPP0 ][QIN.numberOfBCnodes] = (real)1.f; + Q.q27[dMM0 ][QIN.numberOfBCnodes] = (real)-1.f; + Q.q27[dPM0 ][QIN.numberOfBCnodes] = (real)1.f; + Q.q27[dMP0 ][QIN.numberOfBCnodes] = (real)-1.f; + Q.q27[dP0P ][QIN.numberOfBCnodes] = (real)1.f; + Q.q27[dM0M ][QIN.numberOfBCnodes] = (real)-1.f; + Q.q27[dP0M ][QIN.numberOfBCnodes] = (real)1.f; + Q.q27[dM0P ][QIN.numberOfBCnodes] = (real)-1.f; + Q.q27[d0PP ][QIN.numberOfBCnodes] = (real)-1.f; + Q.q27[d0MM ][QIN.numberOfBCnodes] = (real)-1.f; + Q.q27[d0PM ][QIN.numberOfBCnodes] = (real)-1.f; + Q.q27[d0MP ][QIN.numberOfBCnodes] = (real)-1.f; + Q.q27[d000][QIN.numberOfBCnodes] = (real)-1.f; + Q.q27[dPPP ][QIN.numberOfBCnodes] = (real)1.f; + Q.q27[dMMP ][QIN.numberOfBCnodes] = (real)-1.f; + Q.q27[dPMP ][QIN.numberOfBCnodes] = (real)1.f; + Q.q27[dMPP ][QIN.numberOfBCnodes] = (real)-1.f; + Q.q27[dPPM ][QIN.numberOfBCnodes] = (real)1.f; + Q.q27[dMMM ][QIN.numberOfBCnodes] = (real)-1.f; + Q.q27[dPMM ][QIN.numberOfBCnodes] = (real)1.f; + Q.q27[dMPM ][QIN.numberOfBCnodes] = (real)-1.f; + QIN.numberOfBCnodes++; + } + } + } } //////////////////////////////////////////////////////////////////////////////// @@ -1362,51 +1362,51 @@ void findKforQPressX1(Parameter* para, int lev) // https://git.rz.tu-bs.de/irmb/VirtualFluids_dev/-/issues/14 VF_LOG_CRITICAL("findKforQPressX1() is deprecated! - see comment above for more information"); - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - ////////////// dP00 dM00 d0P0 d0M0 d00P d00M dPP0 dMM0 dPM0 dMP0 dP0P dM0M dP0M dM0P d0PP d0MM d0PM d0MP ZERO dPPP dPPM dPMP dPMM dMPP dMPM dMMP dMMM //////////////////////// - //int ex[27]={ 1, -1, 0, 0, 0, 0, 1, -1, 1, -1, 1, -1, 1, -1, 0, 0, 0, 0, 0, 1, 1, 1, 1, -1, -1, -1, -1}; - //int ey[27]={ 0, 0, 1, -1, 0, 0, 1, -1, -1, 1, 0, 0, 0, 0, 1, -1, 1, -1, 0, 1, 1, -1, -1, 1, 1, -1, -1}; - int ez[27]={ 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 1, -1, -1, 1, 1, -1, -1, 1, 0, 1, -1, 1, -1, 1, -1, 1, -1}; - real ON[27]; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + ////////////// dP00 dM00 d0P0 d0M0 d00P d00M dPP0 dMM0 dPM0 dMP0 dP0P dM0M dP0M dM0P d0PP d0MM d0PM d0MP ZERO dPPP dPPM dPMP dPMM dMPP dMPM dMMP dMMM //////////////////////// + //int ex[27]={ 1, -1, 0, 0, 0, 0, 1, -1, 1, -1, 1, -1, 1, -1, 0, 0, 0, 0, 0, 1, 1, 1, 1, -1, -1, -1, -1}; + //int ey[27]={ 0, 0, 1, -1, 0, 0, 1, -1, -1, 1, 0, 0, 0, 0, 1, -1, 1, -1, 0, 1, 1, -1, -1, 1, 1, -1, -1}; + int ez[27]={ 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 1, -1, -1, 1, 1, -1, -1, 1, 0, 1, -1, 1, -1, 1, -1, 1, -1}; + real ON[27]; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //unsigned int mm; - unsigned int i, j, k, m, l; - real test = (real) 0.f; - int nx = para->getParH(lev)->nx; - int ny = para->getParH(lev)->ny; - unsigned int nnx = para->getParH(lev)->gridNX; - unsigned int nny = para->getParH(lev)->gridNY; - unsigned int nnz = para->getParH(lev)->gridNZ; - int* geo_mat = para->getParH(lev)->geo; - QforBoundaryConditions &QIN = para->getParH(lev)->QpressX1; - QIN.numberOfBCnodes = 0; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - i=nnx+STARTOFFX-3; - //k=nnz+STARTOFFZ-3; - { - for(k=STARTOFFZ+1 ; k<=nnz+STARTOFFZ-2 ; k++){ - for(j=STARTOFFY+1 ; j<=nny+STARTOFFY-2 ; j++){ - //for(i=STARTOFFX+1; i<=nnx+STARTOFFX-2 ; i++){ - m = nx*(ny*k + j) + i; - if(geo_mat[m]==GEO_FLUID){ - test = (real)0.f; - for(l=0;l<=26;l++){ - //mm = nx*(ny*(k+ez[l]) + (j+ey[l])) + (i+ex[l]); - if(ez[l]==1){ - ON[l] = (real) 1.f; - } - else{ - ON[l] = (real) 0.f; - } - test += ON[l]; - } - if (test>0) - { - QIN.numberOfBCnodes++; - } - } - } - } - } + unsigned int i, j, k, m, l; + real test = (real) 0.f; + int nx = para->getParH(lev)->nx; + int ny = para->getParH(lev)->ny; + unsigned int nnx = para->getParH(lev)->gridNX; + unsigned int nny = para->getParH(lev)->gridNY; + unsigned int nnz = para->getParH(lev)->gridNZ; + int* geo_mat = para->getParH(lev)->geo; + QforBoundaryConditions &QIN = para->getParH(lev)->QpressX1; + QIN.numberOfBCnodes = 0; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + i=nnx+STARTOFFX-3; + //k=nnz+STARTOFFZ-3; + { + for(k=STARTOFFZ+1 ; k<=nnz+STARTOFFZ-2 ; k++){ + for(j=STARTOFFY+1 ; j<=nny+STARTOFFY-2 ; j++){ + //for(i=STARTOFFX+1; i<=nnx+STARTOFFX-2 ; i++){ + m = nx*(ny*k + j) + i; + if(geo_mat[m]==GEO_FLUID){ + test = (real)0.f; + for(l=0;l<=26;l++){ + //mm = nx*(ny*(k+ez[l]) + (j+ey[l])) + (i+ex[l]); + if(ez[l]==1){ + ON[l] = (real) 1.f; + } + else{ + ON[l] = (real) 0.f; + } + test += ON[l]; + } + if (test>0) + { + QIN.numberOfBCnodes++; + } + } + } + } + } } diff --git a/src/gpu/core/GPU/AdvectionDiffusionBCs27.cu b/src/gpu/core/GPU/AdvectionDiffusionBCs27.cu index 7d1bccaddbfd51a413c6833d0e4122e8447764c2..d97e6ea567e44970816242aee11115b3975542f5 100644 --- a/src/gpu/core/GPU/AdvectionDiffusionBCs27.cu +++ b/src/gpu/core/GPU/AdvectionDiffusionBCs27.cu @@ -247,7 +247,7 @@ __global__ void QADPress7( real* DD, real vx2 = OORho*((f_TNE-f_BSW)+(f_BNE-f_TSW)+(f_BNW-f_TSE)+(f_TNW-f_BSE) +(f_NE-f_SW)+(f_NW-f_SE)+(f_TN-f_BS)+(f_BN-f_TS)+(f_N-f_S)); real vx3 = OORho*((f_TNE-f_BSW)+(f_TSW-f_BNE)+(f_TSE-f_BNW)+(f_TNW-f_BSE) +(f_TE-f_BW)+(f_TW-f_BE)+(f_TN-f_BS)+(f_TS-f_BN)+(f_T-f_B)); - //real cu_sq =1.5*(vx1*vx1+vx2*vx2+vx3*vx3); + //real cu_sq =1.5*(vx1*vx1+vx2*vx2+vx3*vx3); real ux_sq = vx1 * vx1; real uy_sq = vx2 * vx2; real uz_sq = vx3 * vx3; @@ -981,398 +981,398 @@ __global__ void QADPress27( real* DD, ////////////////////////////////////////////////////////////////////////////// __global__ void QADPressNEQNeighbor27( - real* DD, - real* DD27, - int* k_Q, - int* k_N, - int numberOfBCnodes, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned long long numberOfLBnodes, - bool isEvenTimestep - ) + real* DD, + real* DD27, + int* k_Q, + int* k_N, + int numberOfBCnodes, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned long long numberOfLBnodes, + bool isEvenTimestep + ) { - Distributions27 D; - if (isEvenTimestep == true) - { - D.f[dP00] = &DD[dP00 * numberOfLBnodes]; - D.f[dM00] = &DD[dM00 * numberOfLBnodes]; - D.f[d0P0] = &DD[d0P0 * numberOfLBnodes]; - D.f[d0M0] = &DD[d0M0 * numberOfLBnodes]; - D.f[d00P] = &DD[d00P * numberOfLBnodes]; - D.f[d00M] = &DD[d00M * numberOfLBnodes]; - D.f[dPP0] = &DD[dPP0 * numberOfLBnodes]; - D.f[dMM0] = &DD[dMM0 * numberOfLBnodes]; - D.f[dPM0] = &DD[dPM0 * numberOfLBnodes]; - D.f[dMP0] = &DD[dMP0 * numberOfLBnodes]; - D.f[dP0P] = &DD[dP0P * numberOfLBnodes]; - D.f[dM0M] = &DD[dM0M * numberOfLBnodes]; - D.f[dP0M] = &DD[dP0M * numberOfLBnodes]; - D.f[dM0P] = &DD[dM0P * numberOfLBnodes]; - D.f[d0PP] = &DD[d0PP * numberOfLBnodes]; - D.f[d0MM] = &DD[d0MM * numberOfLBnodes]; - D.f[d0PM] = &DD[d0PM * numberOfLBnodes]; - D.f[d0MP] = &DD[d0MP * numberOfLBnodes]; - D.f[d000] = &DD[d000 * numberOfLBnodes]; - D.f[dPPP] = &DD[dPPP * numberOfLBnodes]; - D.f[dMMP] = &DD[dMMP * numberOfLBnodes]; - D.f[dPMP] = &DD[dPMP * numberOfLBnodes]; - D.f[dMPP] = &DD[dMPP * numberOfLBnodes]; - D.f[dPPM] = &DD[dPPM * numberOfLBnodes]; - D.f[dMMM] = &DD[dMMM * numberOfLBnodes]; - D.f[dPMM] = &DD[dPMM * numberOfLBnodes]; - D.f[dMPM] = &DD[dMPM * numberOfLBnodes]; - } - else - { - D.f[dM00] = &DD[dP00 * numberOfLBnodes]; - D.f[dP00] = &DD[dM00 * numberOfLBnodes]; - D.f[d0M0] = &DD[d0P0 * numberOfLBnodes]; - D.f[d0P0] = &DD[d0M0 * numberOfLBnodes]; - D.f[d00M] = &DD[d00P * numberOfLBnodes]; - D.f[d00P] = &DD[d00M * numberOfLBnodes]; - D.f[dMM0] = &DD[dPP0 * numberOfLBnodes]; - D.f[dPP0] = &DD[dMM0 * numberOfLBnodes]; - D.f[dMP0] = &DD[dPM0 * numberOfLBnodes]; - D.f[dPM0] = &DD[dMP0 * numberOfLBnodes]; - D.f[dM0M] = &DD[dP0P * numberOfLBnodes]; - D.f[dP0P] = &DD[dM0M * numberOfLBnodes]; - D.f[dM0P] = &DD[dP0M * numberOfLBnodes]; - D.f[dP0M] = &DD[dM0P * numberOfLBnodes]; - D.f[d0MM] = &DD[d0PP * numberOfLBnodes]; - D.f[d0PP] = &DD[d0MM * numberOfLBnodes]; - D.f[d0MP] = &DD[d0PM * numberOfLBnodes]; - D.f[d0PM] = &DD[d0MP * numberOfLBnodes]; - D.f[d000] = &DD[d000 * numberOfLBnodes]; - D.f[dPPP] = &DD[dMMM * numberOfLBnodes]; - D.f[dMMP] = &DD[dPPM * numberOfLBnodes]; - D.f[dPMP] = &DD[dMPM * numberOfLBnodes]; - D.f[dMPP] = &DD[dPMM * numberOfLBnodes]; - D.f[dPPM] = &DD[dMMP * numberOfLBnodes]; - D.f[dMMM] = &DD[dPPP * numberOfLBnodes]; - D.f[dPMM] = &DD[dMPP * numberOfLBnodes]; - D.f[dMPM] = &DD[dPMP * numberOfLBnodes]; - } - - Distributions27 D27; - if (isEvenTimestep == true) - { - D27.f[dP00] = &DD27[dP00 * numberOfLBnodes]; - D27.f[dM00] = &DD27[dM00 * numberOfLBnodes]; - D27.f[d0P0] = &DD27[d0P0 * numberOfLBnodes]; - D27.f[d0M0] = &DD27[d0M0 * numberOfLBnodes]; - D27.f[d00P] = &DD27[d00P * numberOfLBnodes]; - D27.f[d00M] = &DD27[d00M * numberOfLBnodes]; - D27.f[dPP0] = &DD27[dPP0 * numberOfLBnodes]; - D27.f[dMM0] = &DD27[dMM0 * numberOfLBnodes]; - D27.f[dPM0] = &DD27[dPM0 * numberOfLBnodes]; - D27.f[dMP0] = &DD27[dMP0 * numberOfLBnodes]; - D27.f[dP0P] = &DD27[dP0P * numberOfLBnodes]; - D27.f[dM0M] = &DD27[dM0M * numberOfLBnodes]; - D27.f[dP0M] = &DD27[dP0M * numberOfLBnodes]; - D27.f[dM0P] = &DD27[dM0P * numberOfLBnodes]; - D27.f[d0PP] = &DD27[d0PP * numberOfLBnodes]; - D27.f[d0MM] = &DD27[d0MM * numberOfLBnodes]; - D27.f[d0PM] = &DD27[d0PM * numberOfLBnodes]; - D27.f[d0MP] = &DD27[d0MP * numberOfLBnodes]; - D27.f[d000] = &DD27[d000 * numberOfLBnodes]; - D27.f[dPPP] = &DD27[dPPP * numberOfLBnodes]; - D27.f[dMMP] = &DD27[dMMP * numberOfLBnodes]; - D27.f[dPMP] = &DD27[dPMP * numberOfLBnodes]; - D27.f[dMPP] = &DD27[dMPP * numberOfLBnodes]; - D27.f[dPPM] = &DD27[dPPM * numberOfLBnodes]; - D27.f[dMMM] = &DD27[dMMM * numberOfLBnodes]; - D27.f[dPMM] = &DD27[dPMM * numberOfLBnodes]; - D27.f[dMPM] = &DD27[dMPM * numberOfLBnodes]; - } - else - { - D27.f[dM00] = &DD27[dP00 * numberOfLBnodes]; - D27.f[dP00] = &DD27[dM00 * numberOfLBnodes]; - D27.f[d0M0] = &DD27[d0P0 * numberOfLBnodes]; - D27.f[d0P0] = &DD27[d0M0 * numberOfLBnodes]; - D27.f[d00M] = &DD27[d00P * numberOfLBnodes]; - D27.f[d00P] = &DD27[d00M * numberOfLBnodes]; - D27.f[dMM0] = &DD27[dPP0 * numberOfLBnodes]; - D27.f[dPP0] = &DD27[dMM0 * numberOfLBnodes]; - D27.f[dMP0] = &DD27[dPM0 * numberOfLBnodes]; - D27.f[dPM0] = &DD27[dMP0 * numberOfLBnodes]; - D27.f[dM0M] = &DD27[dP0P * numberOfLBnodes]; - D27.f[dP0P] = &DD27[dM0M * numberOfLBnodes]; - D27.f[dM0P] = &DD27[dP0M * numberOfLBnodes]; - D27.f[dP0M] = &DD27[dM0P * numberOfLBnodes]; - D27.f[d0MM] = &DD27[d0PP * numberOfLBnodes]; - D27.f[d0PP] = &DD27[d0MM * numberOfLBnodes]; - D27.f[d0MP] = &DD27[d0PM * numberOfLBnodes]; - D27.f[d0PM] = &DD27[d0MP * numberOfLBnodes]; - D27.f[d000] = &DD27[d000 * numberOfLBnodes]; - D27.f[dPPP] = &DD27[dMMM * numberOfLBnodes]; - D27.f[dMMP] = &DD27[dPPM * numberOfLBnodes]; - D27.f[dPMP] = &DD27[dMPM * numberOfLBnodes]; - D27.f[dMPP] = &DD27[dPMM * numberOfLBnodes]; - D27.f[dPPM] = &DD27[dMMP * numberOfLBnodes]; - D27.f[dMMM] = &DD27[dPPP * numberOfLBnodes]; - D27.f[dPMM] = &DD27[dMPP * numberOfLBnodes]; - D27.f[dMPM] = &DD27[dPMP * numberOfLBnodes]; - } - //////////////////////////////////////////////////////////////////////////////// - const unsigned x = threadIdx.x; // Globaler x-Index - const unsigned y = blockIdx.x; // Globaler y-Index - const unsigned z = blockIdx.y; // Globaler z-Index - - const unsigned nx = blockDim.x; - const unsigned ny = gridDim.x; - - const unsigned k = nx*(ny*z + y) + x; - ////////////////////////////////////////////////////////////////////////// - - if (k < numberOfBCnodes) - { - //////////////////////////////////////////////////////////////////////////////// - //Fluid - BC Nodes - //////////////////////////////////////////////////////////////////////////////// - //index - unsigned int KQK = k_Q[k]; - unsigned int kzero = KQK; - unsigned int ke = KQK; - unsigned int kw = neighborX[KQK]; - unsigned int kn = KQK; - unsigned int ks = neighborY[KQK]; - unsigned int kt = KQK; - unsigned int kb = neighborZ[KQK]; - unsigned int ksw = neighborY[kw]; - unsigned int kne = KQK; - unsigned int kse = ks; - unsigned int knw = kw; - unsigned int kbw = neighborZ[kw]; - unsigned int kte = KQK; - unsigned int kbe = kb; - unsigned int ktw = kw; - unsigned int kbs = neighborZ[ks]; - unsigned int ktn = KQK; - unsigned int kbn = kb; - unsigned int kts = ks; - unsigned int ktse = ks; - unsigned int kbnw = kbw; - unsigned int ktnw = kw; - unsigned int kbse = kbs; - unsigned int ktsw = ksw; - unsigned int kbne = kb; - unsigned int ktne = KQK; - unsigned int kbsw = neighborZ[ksw]; - //////////////////////////////////////////////////////////////////////////////// - //distributions - real f_W = (D.f[dP00])[ke]; - real f_E = (D.f[dM00])[kw]; - real f_S = (D.f[d0P0])[kn]; - real f_N = (D.f[d0M0])[ks]; - real f_B = (D.f[d00P])[kt]; - real f_T = (D.f[d00M])[kb]; - real f_SW = (D.f[dPP0])[kne]; - real f_NE = (D.f[dMM0])[ksw]; - real f_NW = (D.f[dPM0])[kse]; - real f_SE = (D.f[dMP0])[knw]; - real f_BW = (D.f[dP0P])[kte]; - real f_TE = (D.f[dM0M])[kbw]; - real f_TW = (D.f[dP0M])[kbe]; - real f_BE = (D.f[dM0P])[ktw]; - real f_BS = (D.f[d0PP])[ktn]; - real f_TN = (D.f[d0MM])[kbs]; - real f_TS = (D.f[d0PM])[kbn]; - real f_BN = (D.f[d0MP])[kts]; - real f_ZERO = (D.f[d000])[kzero]; - real f_BSW = (D.f[dPPP])[ktne]; - real f_BNE = (D.f[dMMP])[ktsw]; - real f_BNW = (D.f[dPMP])[ktse]; - real f_BSE = (D.f[dMPP])[ktnw]; - real f_TSW = (D.f[dPPM])[kbne]; - real f_TNE = (D.f[dMMM])[kbsw]; - real f_TNW = (D.f[dPMM])[kbse]; - real f_TSE = (D.f[dMPM])[kbnw]; - //////////////////////////////////////////////////////////////////////////////// - //macroscopic values - real rho0 = - (f_TNE + f_BSW) + (f_TSW + f_BNE) + (f_TSE + f_BNW) + (f_TNW + f_BSE) + - (f_NE + f_SW ) + (f_NW + f_SE ) + (f_TE + f_BW ) + (f_BE + f_TW ) + - (f_TN + f_BS ) + (f_BN + f_TS ) + - (f_E + f_W ) + (f_N + f_S ) + (f_T + f_B ) + f_ZERO; - real rho = rho0 + c1o1; - real OORho = c1o1 / rho; - - real vx1 = - OORho*((f_TNE - f_BSW) + (f_BNE - f_TSW) + (f_TSE - f_BNW) + (f_BSE - f_TNW) + - (f_NE - f_SW) + (f_SE - f_NW) + (f_TE - f_BW) + (f_BE - f_TW) + (f_E - f_W)); - real vx2 = - OORho*((f_TNE - f_BSW) + (f_BNE - f_TSW) + (f_BNW - f_TSE) + (f_TNW - f_BSE) + - (f_NE - f_SW) + (f_NW - f_SE) + (f_TN - f_BS) + (f_BN - f_TS) + (f_N - f_S)); - real vx3 = - OORho*((f_TNE - f_BSW) + (f_TSW - f_BNE) + (f_TSE - f_BNW) + (f_TNW - f_BSE) + - (f_TE - f_BW) + (f_TW - f_BE) + (f_TN - f_BS) + (f_TS - f_BN) + (f_T - f_B)); - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //AD - BC Nodes - //////////////////////////////////////////////////////////////////////////////// - //distributions - real f27_W = (D27.f[dP00])[ke]; - real f27_E = (D27.f[dM00])[kw]; - real f27_S = (D27.f[d0P0])[kn]; - real f27_N = (D27.f[d0M0])[ks]; - real f27_B = (D27.f[d00P])[kt]; - real f27_T = (D27.f[d00M])[kb]; - real f27_SW = (D27.f[dPP0])[kne]; - real f27_NE = (D27.f[dMM0])[ksw]; - real f27_NW = (D27.f[dPM0])[kse]; - real f27_SE = (D27.f[dMP0])[knw]; - real f27_BW = (D27.f[dP0P])[kte]; - real f27_TE = (D27.f[dM0M])[kbw]; - real f27_TW = (D27.f[dP0M])[kbe]; - real f27_BE = (D27.f[dM0P])[ktw]; - real f27_BS = (D27.f[d0PP])[ktn]; - real f27_TN = (D27.f[d0MM])[kbs]; - real f27_TS = (D27.f[d0PM])[kbn]; - real f27_BN = (D27.f[d0MP])[kts]; - real f27_ZERO = (D27.f[d000])[kzero]; - real f27_BSW = (D27.f[dPPP])[ktne]; - real f27_BNE = (D27.f[dMMP])[ktsw]; - real f27_BNW = (D27.f[dPMP])[ktse]; - real f27_BSE = (D27.f[dMPP])[ktnw]; - real f27_TSW = (D27.f[dPPM])[kbne]; - real f27_TNE = (D27.f[dMMM])[kbsw]; - real f27_TNW = (D27.f[dPMM])[kbse]; - real f27_TSE = (D27.f[dMPM])[kbnw]; - //////////////////////////////////////////////////////////////////////////////// - real cusq = c3o2*(vx1*vx1 + vx2*vx2 + vx3*vx3); - //////////////////////////////////////////////////////////////////////////////// - //concentration - real ConcD = - (f27_TNE + f27_BSW) + (f27_TSW + f27_BNE) + (f27_TSE + f27_BNW) + (f27_TNW + f27_BSE) + - (f27_NE + f27_SW ) + (f27_NW + f27_SE ) + (f27_TE + f27_BW ) + (f27_BE + f27_TW ) + - (f27_TN + f27_BS ) + (f27_BN + f27_TS ) + - (f27_E + f27_W ) + (f27_N + f27_S ) + (f27_T + f27_B ) + f27_ZERO; - //////////////////////////////////////////////////////////////////////////////// - //calculate non-equilibrium - f27_ZERO -= c8o27* (ConcD-(ConcD+c1o1)*cusq); - f27_E -= c2o27* (ConcD+(ConcD+c1o1)*(c3o1*( vx1 )+c9o2*( vx1 )*( vx1 )-cusq)); - f27_W -= c2o27* (ConcD+(ConcD+c1o1)*(c3o1*(-vx1 )+c9o2*(-vx1 )*(-vx1 )-cusq)); - f27_N -= c2o27* (ConcD+(ConcD+c1o1)*(c3o1*( vx2 )+c9o2*( vx2 )*( vx2 )-cusq)); - f27_S -= c2o27* (ConcD+(ConcD+c1o1)*(c3o1*( -vx2 )+c9o2*( -vx2 )*( -vx2 )-cusq)); - f27_T -= c2o27* (ConcD+(ConcD+c1o1)*(c3o1*( vx3)+c9o2*( vx3)*( vx3)-cusq)); - f27_B -= c2o27* (ConcD+(ConcD+c1o1)*(c3o1*( -vx3)+c9o2*( -vx3)*( -vx3)-cusq)); - f27_NE -= c1o54* (ConcD+(ConcD+c1o1)*(c3o1*( vx1+vx2 )+c9o2*( vx1+vx2 )*( vx1+vx2 )-cusq)); - f27_SW -= c1o54* (ConcD+(ConcD+c1o1)*(c3o1*(-vx1-vx2 )+c9o2*(-vx1-vx2 )*(-vx1-vx2 )-cusq)); - f27_SE -= c1o54* (ConcD+(ConcD+c1o1)*(c3o1*( vx1-vx2 )+c9o2*( vx1-vx2 )*( vx1-vx2 )-cusq)); - f27_NW -= c1o54* (ConcD+(ConcD+c1o1)*(c3o1*(-vx1+vx2 )+c9o2*(-vx1+vx2 )*(-vx1+vx2 )-cusq)); - f27_TE -= c1o54* (ConcD+(ConcD+c1o1)*(c3o1*( vx1 +vx3)+c9o2*( vx1 +vx3)*( vx1 +vx3)-cusq)); - f27_BW -= c1o54* (ConcD+(ConcD+c1o1)*(c3o1*(-vx1 -vx3)+c9o2*(-vx1 -vx3)*(-vx1 -vx3)-cusq)); - f27_BE -= c1o54* (ConcD+(ConcD+c1o1)*(c3o1*( vx1 -vx3)+c9o2*( vx1 -vx3)*( vx1 -vx3)-cusq)); - f27_TW -= c1o54* (ConcD+(ConcD+c1o1)*(c3o1*(-vx1 +vx3)+c9o2*(-vx1 +vx3)*(-vx1 +vx3)-cusq)); - f27_TN -= c1o54* (ConcD+(ConcD+c1o1)*(c3o1*( vx2+vx3)+c9o2*( vx2+vx3)*( vx2+vx3)-cusq)); - f27_BS -= c1o54* (ConcD+(ConcD+c1o1)*(c3o1*( -vx2-vx3)+c9o2*( -vx2-vx3)*( -vx2-vx3)-cusq)); - f27_BN -= c1o54* (ConcD+(ConcD+c1o1)*(c3o1*( vx2-vx3)+c9o2*( vx2-vx3)*( vx2-vx3)-cusq)); - f27_TS -= c1o54* (ConcD+(ConcD+c1o1)*(c3o1*( -vx2+vx3)+c9o2*( -vx2+vx3)*( -vx2+vx3)-cusq)); - f27_TNE -= c1o216*(ConcD+(ConcD+c1o1)*(c3o1*( vx1+vx2+vx3)+c9o2*( vx1+vx2+vx3)*( vx1+vx2+vx3)-cusq)); - f27_BSW -= c1o216*(ConcD+(ConcD+c1o1)*(c3o1*(-vx1-vx2-vx3)+c9o2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3)-cusq)); - f27_BNE -= c1o216*(ConcD+(ConcD+c1o1)*(c3o1*( vx1+vx2-vx3)+c9o2*( vx1+vx2-vx3)*( vx1+vx2-vx3)-cusq)); - f27_TSW -= c1o216*(ConcD+(ConcD+c1o1)*(c3o1*(-vx1-vx2+vx3)+c9o2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3)-cusq)); - f27_TSE -= c1o216*(ConcD+(ConcD+c1o1)*(c3o1*( vx1-vx2+vx3)+c9o2*( vx1-vx2+vx3)*( vx1-vx2+vx3)-cusq)); - f27_BNW -= c1o216*(ConcD+(ConcD+c1o1)*(c3o1*(-vx1+vx2-vx3)+c9o2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3)-cusq)); - f27_BSE -= c1o216*(ConcD+(ConcD+c1o1)*(c3o1*( vx1-vx2-vx3)+c9o2*( vx1-vx2-vx3)*( vx1-vx2-vx3)-cusq)); - f27_TNW -= c1o216*(ConcD+(ConcD+c1o1)*(c3o1*(-vx1+vx2+vx3)+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cusq)); - //////////////////////////////////////////////////////////////////////////////// - ConcD = c0o1; - //////////////////////////////////////////////////////////////////////////////// - //add BC equilibrium - f27_ZERO += c8o27* (ConcD-(ConcD+c1o1)*cusq); - f27_E += c2o27* (ConcD+(ConcD+c1o1)*(c3o1*( vx1 )+c9o2*( vx1 )*( vx1 )-cusq)); - f27_W += c2o27* (ConcD+(ConcD+c1o1)*(c3o1*(-vx1 )+c9o2*(-vx1 )*(-vx1 )-cusq)); - f27_N += c2o27* (ConcD+(ConcD+c1o1)*(c3o1*( vx2 )+c9o2*( vx2 )*( vx2 )-cusq)); - f27_S += c2o27* (ConcD+(ConcD+c1o1)*(c3o1*( -vx2 )+c9o2*( -vx2 )*( -vx2 )-cusq)); - f27_T += c2o27* (ConcD+(ConcD+c1o1)*(c3o1*( vx3)+c9o2*( vx3)*( vx3)-cusq)); - f27_B += c2o27* (ConcD+(ConcD+c1o1)*(c3o1*( -vx3)+c9o2*( -vx3)*( -vx3)-cusq)); - f27_NE += c1o54* (ConcD+(ConcD+c1o1)*(c3o1*( vx1+vx2 )+c9o2*( vx1+vx2 )*( vx1+vx2 )-cusq)); - f27_SW += c1o54* (ConcD+(ConcD+c1o1)*(c3o1*(-vx1-vx2 )+c9o2*(-vx1-vx2 )*(-vx1-vx2 )-cusq)); - f27_SE += c1o54* (ConcD+(ConcD+c1o1)*(c3o1*( vx1-vx2 )+c9o2*( vx1-vx2 )*( vx1-vx2 )-cusq)); - f27_NW += c1o54* (ConcD+(ConcD+c1o1)*(c3o1*(-vx1+vx2 )+c9o2*(-vx1+vx2 )*(-vx1+vx2 )-cusq)); - f27_TE += c1o54* (ConcD+(ConcD+c1o1)*(c3o1*( vx1 +vx3)+c9o2*( vx1 +vx3)*( vx1 +vx3)-cusq)); - f27_BW += c1o54* (ConcD+(ConcD+c1o1)*(c3o1*(-vx1 -vx3)+c9o2*(-vx1 -vx3)*(-vx1 -vx3)-cusq)); - f27_BE += c1o54* (ConcD+(ConcD+c1o1)*(c3o1*( vx1 -vx3)+c9o2*( vx1 -vx3)*( vx1 -vx3)-cusq)); - f27_TW += c1o54* (ConcD+(ConcD+c1o1)*(c3o1*(-vx1 +vx3)+c9o2*(-vx1 +vx3)*(-vx1 +vx3)-cusq)); - f27_TN += c1o54* (ConcD+(ConcD+c1o1)*(c3o1*( vx2+vx3)+c9o2*( vx2+vx3)*( vx2+vx3)-cusq)); - f27_BS += c1o54* (ConcD+(ConcD+c1o1)*(c3o1*( -vx2-vx3)+c9o2*( -vx2-vx3)*( -vx2-vx3)-cusq)); - f27_BN += c1o54* (ConcD+(ConcD+c1o1)*(c3o1*( vx2-vx3)+c9o2*( vx2-vx3)*( vx2-vx3)-cusq)); - f27_TS += c1o54* (ConcD+(ConcD+c1o1)*(c3o1*( -vx2+vx3)+c9o2*( -vx2+vx3)*( -vx2+vx3)-cusq)); - f27_TNE += c1o216*(ConcD+(ConcD+c1o1)*(c3o1*( vx1+vx2+vx3)+c9o2*( vx1+vx2+vx3)*( vx1+vx2+vx3)-cusq)); - f27_BSW += c1o216*(ConcD+(ConcD+c1o1)*(c3o1*(-vx1-vx2-vx3)+c9o2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3)-cusq)); - f27_BNE += c1o216*(ConcD+(ConcD+c1o1)*(c3o1*( vx1+vx2-vx3)+c9o2*( vx1+vx2-vx3)*( vx1+vx2-vx3)-cusq)); - f27_TSW += c1o216*(ConcD+(ConcD+c1o1)*(c3o1*(-vx1-vx2+vx3)+c9o2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3)-cusq)); - f27_TSE += c1o216*(ConcD+(ConcD+c1o1)*(c3o1*( vx1-vx2+vx3)+c9o2*( vx1-vx2+vx3)*( vx1-vx2+vx3)-cusq)); - f27_BNW += c1o216*(ConcD+(ConcD+c1o1)*(c3o1*(-vx1+vx2-vx3)+c9o2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3)-cusq)); - f27_BSE += c1o216*(ConcD+(ConcD+c1o1)*(c3o1*( vx1-vx2-vx3)+c9o2*( vx1-vx2-vx3)*( vx1-vx2-vx3)-cusq)); - f27_TNW += c1o216*(ConcD+(ConcD+c1o1)*(c3o1*(-vx1+vx2+vx3)+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cusq)); - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + Distributions27 D; + if (isEvenTimestep == true) + { + D.f[dP00] = &DD[dP00 * numberOfLBnodes]; + D.f[dM00] = &DD[dM00 * numberOfLBnodes]; + D.f[d0P0] = &DD[d0P0 * numberOfLBnodes]; + D.f[d0M0] = &DD[d0M0 * numberOfLBnodes]; + D.f[d00P] = &DD[d00P * numberOfLBnodes]; + D.f[d00M] = &DD[d00M * numberOfLBnodes]; + D.f[dPP0] = &DD[dPP0 * numberOfLBnodes]; + D.f[dMM0] = &DD[dMM0 * numberOfLBnodes]; + D.f[dPM0] = &DD[dPM0 * numberOfLBnodes]; + D.f[dMP0] = &DD[dMP0 * numberOfLBnodes]; + D.f[dP0P] = &DD[dP0P * numberOfLBnodes]; + D.f[dM0M] = &DD[dM0M * numberOfLBnodes]; + D.f[dP0M] = &DD[dP0M * numberOfLBnodes]; + D.f[dM0P] = &DD[dM0P * numberOfLBnodes]; + D.f[d0PP] = &DD[d0PP * numberOfLBnodes]; + D.f[d0MM] = &DD[d0MM * numberOfLBnodes]; + D.f[d0PM] = &DD[d0PM * numberOfLBnodes]; + D.f[d0MP] = &DD[d0MP * numberOfLBnodes]; + D.f[d000] = &DD[d000 * numberOfLBnodes]; + D.f[dPPP] = &DD[dPPP * numberOfLBnodes]; + D.f[dMMP] = &DD[dMMP * numberOfLBnodes]; + D.f[dPMP] = &DD[dPMP * numberOfLBnodes]; + D.f[dMPP] = &DD[dMPP * numberOfLBnodes]; + D.f[dPPM] = &DD[dPPM * numberOfLBnodes]; + D.f[dMMM] = &DD[dMMM * numberOfLBnodes]; + D.f[dPMM] = &DD[dPMM * numberOfLBnodes]; + D.f[dMPM] = &DD[dMPM * numberOfLBnodes]; + } + else + { + D.f[dM00] = &DD[dP00 * numberOfLBnodes]; + D.f[dP00] = &DD[dM00 * numberOfLBnodes]; + D.f[d0M0] = &DD[d0P0 * numberOfLBnodes]; + D.f[d0P0] = &DD[d0M0 * numberOfLBnodes]; + D.f[d00M] = &DD[d00P * numberOfLBnodes]; + D.f[d00P] = &DD[d00M * numberOfLBnodes]; + D.f[dMM0] = &DD[dPP0 * numberOfLBnodes]; + D.f[dPP0] = &DD[dMM0 * numberOfLBnodes]; + D.f[dMP0] = &DD[dPM0 * numberOfLBnodes]; + D.f[dPM0] = &DD[dMP0 * numberOfLBnodes]; + D.f[dM0M] = &DD[dP0P * numberOfLBnodes]; + D.f[dP0P] = &DD[dM0M * numberOfLBnodes]; + D.f[dM0P] = &DD[dP0M * numberOfLBnodes]; + D.f[dP0M] = &DD[dM0P * numberOfLBnodes]; + D.f[d0MM] = &DD[d0PP * numberOfLBnodes]; + D.f[d0PP] = &DD[d0MM * numberOfLBnodes]; + D.f[d0MP] = &DD[d0PM * numberOfLBnodes]; + D.f[d0PM] = &DD[d0MP * numberOfLBnodes]; + D.f[d000] = &DD[d000 * numberOfLBnodes]; + D.f[dPPP] = &DD[dMMM * numberOfLBnodes]; + D.f[dMMP] = &DD[dPPM * numberOfLBnodes]; + D.f[dPMP] = &DD[dMPM * numberOfLBnodes]; + D.f[dMPP] = &DD[dPMM * numberOfLBnodes]; + D.f[dPPM] = &DD[dMMP * numberOfLBnodes]; + D.f[dMMM] = &DD[dPPP * numberOfLBnodes]; + D.f[dPMM] = &DD[dMPP * numberOfLBnodes]; + D.f[dMPM] = &DD[dPMP * numberOfLBnodes]; + } + + Distributions27 D27; + if (isEvenTimestep == true) + { + D27.f[dP00] = &DD27[dP00 * numberOfLBnodes]; + D27.f[dM00] = &DD27[dM00 * numberOfLBnodes]; + D27.f[d0P0] = &DD27[d0P0 * numberOfLBnodes]; + D27.f[d0M0] = &DD27[d0M0 * numberOfLBnodes]; + D27.f[d00P] = &DD27[d00P * numberOfLBnodes]; + D27.f[d00M] = &DD27[d00M * numberOfLBnodes]; + D27.f[dPP0] = &DD27[dPP0 * numberOfLBnodes]; + D27.f[dMM0] = &DD27[dMM0 * numberOfLBnodes]; + D27.f[dPM0] = &DD27[dPM0 * numberOfLBnodes]; + D27.f[dMP0] = &DD27[dMP0 * numberOfLBnodes]; + D27.f[dP0P] = &DD27[dP0P * numberOfLBnodes]; + D27.f[dM0M] = &DD27[dM0M * numberOfLBnodes]; + D27.f[dP0M] = &DD27[dP0M * numberOfLBnodes]; + D27.f[dM0P] = &DD27[dM0P * numberOfLBnodes]; + D27.f[d0PP] = &DD27[d0PP * numberOfLBnodes]; + D27.f[d0MM] = &DD27[d0MM * numberOfLBnodes]; + D27.f[d0PM] = &DD27[d0PM * numberOfLBnodes]; + D27.f[d0MP] = &DD27[d0MP * numberOfLBnodes]; + D27.f[d000] = &DD27[d000 * numberOfLBnodes]; + D27.f[dPPP] = &DD27[dPPP * numberOfLBnodes]; + D27.f[dMMP] = &DD27[dMMP * numberOfLBnodes]; + D27.f[dPMP] = &DD27[dPMP * numberOfLBnodes]; + D27.f[dMPP] = &DD27[dMPP * numberOfLBnodes]; + D27.f[dPPM] = &DD27[dPPM * numberOfLBnodes]; + D27.f[dMMM] = &DD27[dMMM * numberOfLBnodes]; + D27.f[dPMM] = &DD27[dPMM * numberOfLBnodes]; + D27.f[dMPM] = &DD27[dMPM * numberOfLBnodes]; + } + else + { + D27.f[dM00] = &DD27[dP00 * numberOfLBnodes]; + D27.f[dP00] = &DD27[dM00 * numberOfLBnodes]; + D27.f[d0M0] = &DD27[d0P0 * numberOfLBnodes]; + D27.f[d0P0] = &DD27[d0M0 * numberOfLBnodes]; + D27.f[d00M] = &DD27[d00P * numberOfLBnodes]; + D27.f[d00P] = &DD27[d00M * numberOfLBnodes]; + D27.f[dMM0] = &DD27[dPP0 * numberOfLBnodes]; + D27.f[dPP0] = &DD27[dMM0 * numberOfLBnodes]; + D27.f[dMP0] = &DD27[dPM0 * numberOfLBnodes]; + D27.f[dPM0] = &DD27[dMP0 * numberOfLBnodes]; + D27.f[dM0M] = &DD27[dP0P * numberOfLBnodes]; + D27.f[dP0P] = &DD27[dM0M * numberOfLBnodes]; + D27.f[dM0P] = &DD27[dP0M * numberOfLBnodes]; + D27.f[dP0M] = &DD27[dM0P * numberOfLBnodes]; + D27.f[d0MM] = &DD27[d0PP * numberOfLBnodes]; + D27.f[d0PP] = &DD27[d0MM * numberOfLBnodes]; + D27.f[d0MP] = &DD27[d0PM * numberOfLBnodes]; + D27.f[d0PM] = &DD27[d0MP * numberOfLBnodes]; + D27.f[d000] = &DD27[d000 * numberOfLBnodes]; + D27.f[dPPP] = &DD27[dMMM * numberOfLBnodes]; + D27.f[dMMP] = &DD27[dPPM * numberOfLBnodes]; + D27.f[dPMP] = &DD27[dMPM * numberOfLBnodes]; + D27.f[dMPP] = &DD27[dPMM * numberOfLBnodes]; + D27.f[dPPM] = &DD27[dMMP * numberOfLBnodes]; + D27.f[dMMM] = &DD27[dPPP * numberOfLBnodes]; + D27.f[dPMM] = &DD27[dMPP * numberOfLBnodes]; + D27.f[dMPM] = &DD27[dPMP * numberOfLBnodes]; + } + //////////////////////////////////////////////////////////////////////////////// + const unsigned x = threadIdx.x; // Globaler x-Index + const unsigned y = blockIdx.x; // Globaler y-Index + const unsigned z = blockIdx.y; // Globaler z-Index + + const unsigned nx = blockDim.x; + const unsigned ny = gridDim.x; + + const unsigned k = nx*(ny*z + y) + x; + ////////////////////////////////////////////////////////////////////////// + + if (k < numberOfBCnodes) + { + //////////////////////////////////////////////////////////////////////////////// + //Fluid - BC Nodes + //////////////////////////////////////////////////////////////////////////////// + //index + unsigned int KQK = k_Q[k]; + unsigned int kzero = KQK; + unsigned int ke = KQK; + unsigned int kw = neighborX[KQK]; + unsigned int kn = KQK; + unsigned int ks = neighborY[KQK]; + unsigned int kt = KQK; + unsigned int kb = neighborZ[KQK]; + unsigned int ksw = neighborY[kw]; + unsigned int kne = KQK; + unsigned int kse = ks; + unsigned int knw = kw; + unsigned int kbw = neighborZ[kw]; + unsigned int kte = KQK; + unsigned int kbe = kb; + unsigned int ktw = kw; + unsigned int kbs = neighborZ[ks]; + unsigned int ktn = KQK; + unsigned int kbn = kb; + unsigned int kts = ks; + unsigned int ktse = ks; + unsigned int kbnw = kbw; + unsigned int ktnw = kw; + unsigned int kbse = kbs; + unsigned int ktsw = ksw; + unsigned int kbne = kb; + unsigned int ktne = KQK; + unsigned int kbsw = neighborZ[ksw]; + //////////////////////////////////////////////////////////////////////////////// + //distributions + real f_W = (D.f[dP00])[ke]; + real f_E = (D.f[dM00])[kw]; + real f_S = (D.f[d0P0])[kn]; + real f_N = (D.f[d0M0])[ks]; + real f_B = (D.f[d00P])[kt]; + real f_T = (D.f[d00M])[kb]; + real f_SW = (D.f[dPP0])[kne]; + real f_NE = (D.f[dMM0])[ksw]; + real f_NW = (D.f[dPM0])[kse]; + real f_SE = (D.f[dMP0])[knw]; + real f_BW = (D.f[dP0P])[kte]; + real f_TE = (D.f[dM0M])[kbw]; + real f_TW = (D.f[dP0M])[kbe]; + real f_BE = (D.f[dM0P])[ktw]; + real f_BS = (D.f[d0PP])[ktn]; + real f_TN = (D.f[d0MM])[kbs]; + real f_TS = (D.f[d0PM])[kbn]; + real f_BN = (D.f[d0MP])[kts]; + real f_ZERO = (D.f[d000])[kzero]; + real f_BSW = (D.f[dPPP])[ktne]; + real f_BNE = (D.f[dMMP])[ktsw]; + real f_BNW = (D.f[dPMP])[ktse]; + real f_BSE = (D.f[dMPP])[ktnw]; + real f_TSW = (D.f[dPPM])[kbne]; + real f_TNE = (D.f[dMMM])[kbsw]; + real f_TNW = (D.f[dPMM])[kbse]; + real f_TSE = (D.f[dMPM])[kbnw]; + //////////////////////////////////////////////////////////////////////////////// + //macroscopic values + real rho0 = + (f_TNE + f_BSW) + (f_TSW + f_BNE) + (f_TSE + f_BNW) + (f_TNW + f_BSE) + + (f_NE + f_SW ) + (f_NW + f_SE ) + (f_TE + f_BW ) + (f_BE + f_TW ) + + (f_TN + f_BS ) + (f_BN + f_TS ) + + (f_E + f_W ) + (f_N + f_S ) + (f_T + f_B ) + f_ZERO; + real rho = rho0 + c1o1; + real OORho = c1o1 / rho; + + real vx1 = + OORho*((f_TNE - f_BSW) + (f_BNE - f_TSW) + (f_TSE - f_BNW) + (f_BSE - f_TNW) + + (f_NE - f_SW) + (f_SE - f_NW) + (f_TE - f_BW) + (f_BE - f_TW) + (f_E - f_W)); + real vx2 = + OORho*((f_TNE - f_BSW) + (f_BNE - f_TSW) + (f_BNW - f_TSE) + (f_TNW - f_BSE) + + (f_NE - f_SW) + (f_NW - f_SE) + (f_TN - f_BS) + (f_BN - f_TS) + (f_N - f_S)); + real vx3 = + OORho*((f_TNE - f_BSW) + (f_TSW - f_BNE) + (f_TSE - f_BNW) + (f_TNW - f_BSE) + + (f_TE - f_BW) + (f_TW - f_BE) + (f_TN - f_BS) + (f_TS - f_BN) + (f_T - f_B)); + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //AD - BC Nodes + //////////////////////////////////////////////////////////////////////////////// + //distributions + real f27_W = (D27.f[dP00])[ke]; + real f27_E = (D27.f[dM00])[kw]; + real f27_S = (D27.f[d0P0])[kn]; + real f27_N = (D27.f[d0M0])[ks]; + real f27_B = (D27.f[d00P])[kt]; + real f27_T = (D27.f[d00M])[kb]; + real f27_SW = (D27.f[dPP0])[kne]; + real f27_NE = (D27.f[dMM0])[ksw]; + real f27_NW = (D27.f[dPM0])[kse]; + real f27_SE = (D27.f[dMP0])[knw]; + real f27_BW = (D27.f[dP0P])[kte]; + real f27_TE = (D27.f[dM0M])[kbw]; + real f27_TW = (D27.f[dP0M])[kbe]; + real f27_BE = (D27.f[dM0P])[ktw]; + real f27_BS = (D27.f[d0PP])[ktn]; + real f27_TN = (D27.f[d0MM])[kbs]; + real f27_TS = (D27.f[d0PM])[kbn]; + real f27_BN = (D27.f[d0MP])[kts]; + real f27_ZERO = (D27.f[d000])[kzero]; + real f27_BSW = (D27.f[dPPP])[ktne]; + real f27_BNE = (D27.f[dMMP])[ktsw]; + real f27_BNW = (D27.f[dPMP])[ktse]; + real f27_BSE = (D27.f[dMPP])[ktnw]; + real f27_TSW = (D27.f[dPPM])[kbne]; + real f27_TNE = (D27.f[dMMM])[kbsw]; + real f27_TNW = (D27.f[dPMM])[kbse]; + real f27_TSE = (D27.f[dMPM])[kbnw]; + //////////////////////////////////////////////////////////////////////////////// + real cusq = c3o2*(vx1*vx1 + vx2*vx2 + vx3*vx3); + //////////////////////////////////////////////////////////////////////////////// + //concentration + real ConcD = + (f27_TNE + f27_BSW) + (f27_TSW + f27_BNE) + (f27_TSE + f27_BNW) + (f27_TNW + f27_BSE) + + (f27_NE + f27_SW ) + (f27_NW + f27_SE ) + (f27_TE + f27_BW ) + (f27_BE + f27_TW ) + + (f27_TN + f27_BS ) + (f27_BN + f27_TS ) + + (f27_E + f27_W ) + (f27_N + f27_S ) + (f27_T + f27_B ) + f27_ZERO; + //////////////////////////////////////////////////////////////////////////////// + //calculate non-equilibrium + f27_ZERO -= c8o27* (ConcD-(ConcD+c1o1)*cusq); + f27_E -= c2o27* (ConcD+(ConcD+c1o1)*(c3o1*( vx1 )+c9o2*( vx1 )*( vx1 )-cusq)); + f27_W -= c2o27* (ConcD+(ConcD+c1o1)*(c3o1*(-vx1 )+c9o2*(-vx1 )*(-vx1 )-cusq)); + f27_N -= c2o27* (ConcD+(ConcD+c1o1)*(c3o1*( vx2 )+c9o2*( vx2 )*( vx2 )-cusq)); + f27_S -= c2o27* (ConcD+(ConcD+c1o1)*(c3o1*( -vx2 )+c9o2*( -vx2 )*( -vx2 )-cusq)); + f27_T -= c2o27* (ConcD+(ConcD+c1o1)*(c3o1*( vx3)+c9o2*( vx3)*( vx3)-cusq)); + f27_B -= c2o27* (ConcD+(ConcD+c1o1)*(c3o1*( -vx3)+c9o2*( -vx3)*( -vx3)-cusq)); + f27_NE -= c1o54* (ConcD+(ConcD+c1o1)*(c3o1*( vx1+vx2 )+c9o2*( vx1+vx2 )*( vx1+vx2 )-cusq)); + f27_SW -= c1o54* (ConcD+(ConcD+c1o1)*(c3o1*(-vx1-vx2 )+c9o2*(-vx1-vx2 )*(-vx1-vx2 )-cusq)); + f27_SE -= c1o54* (ConcD+(ConcD+c1o1)*(c3o1*( vx1-vx2 )+c9o2*( vx1-vx2 )*( vx1-vx2 )-cusq)); + f27_NW -= c1o54* (ConcD+(ConcD+c1o1)*(c3o1*(-vx1+vx2 )+c9o2*(-vx1+vx2 )*(-vx1+vx2 )-cusq)); + f27_TE -= c1o54* (ConcD+(ConcD+c1o1)*(c3o1*( vx1 +vx3)+c9o2*( vx1 +vx3)*( vx1 +vx3)-cusq)); + f27_BW -= c1o54* (ConcD+(ConcD+c1o1)*(c3o1*(-vx1 -vx3)+c9o2*(-vx1 -vx3)*(-vx1 -vx3)-cusq)); + f27_BE -= c1o54* (ConcD+(ConcD+c1o1)*(c3o1*( vx1 -vx3)+c9o2*( vx1 -vx3)*( vx1 -vx3)-cusq)); + f27_TW -= c1o54* (ConcD+(ConcD+c1o1)*(c3o1*(-vx1 +vx3)+c9o2*(-vx1 +vx3)*(-vx1 +vx3)-cusq)); + f27_TN -= c1o54* (ConcD+(ConcD+c1o1)*(c3o1*( vx2+vx3)+c9o2*( vx2+vx3)*( vx2+vx3)-cusq)); + f27_BS -= c1o54* (ConcD+(ConcD+c1o1)*(c3o1*( -vx2-vx3)+c9o2*( -vx2-vx3)*( -vx2-vx3)-cusq)); + f27_BN -= c1o54* (ConcD+(ConcD+c1o1)*(c3o1*( vx2-vx3)+c9o2*( vx2-vx3)*( vx2-vx3)-cusq)); + f27_TS -= c1o54* (ConcD+(ConcD+c1o1)*(c3o1*( -vx2+vx3)+c9o2*( -vx2+vx3)*( -vx2+vx3)-cusq)); + f27_TNE -= c1o216*(ConcD+(ConcD+c1o1)*(c3o1*( vx1+vx2+vx3)+c9o2*( vx1+vx2+vx3)*( vx1+vx2+vx3)-cusq)); + f27_BSW -= c1o216*(ConcD+(ConcD+c1o1)*(c3o1*(-vx1-vx2-vx3)+c9o2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3)-cusq)); + f27_BNE -= c1o216*(ConcD+(ConcD+c1o1)*(c3o1*( vx1+vx2-vx3)+c9o2*( vx1+vx2-vx3)*( vx1+vx2-vx3)-cusq)); + f27_TSW -= c1o216*(ConcD+(ConcD+c1o1)*(c3o1*(-vx1-vx2+vx3)+c9o2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3)-cusq)); + f27_TSE -= c1o216*(ConcD+(ConcD+c1o1)*(c3o1*( vx1-vx2+vx3)+c9o2*( vx1-vx2+vx3)*( vx1-vx2+vx3)-cusq)); + f27_BNW -= c1o216*(ConcD+(ConcD+c1o1)*(c3o1*(-vx1+vx2-vx3)+c9o2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3)-cusq)); + f27_BSE -= c1o216*(ConcD+(ConcD+c1o1)*(c3o1*( vx1-vx2-vx3)+c9o2*( vx1-vx2-vx3)*( vx1-vx2-vx3)-cusq)); + f27_TNW -= c1o216*(ConcD+(ConcD+c1o1)*(c3o1*(-vx1+vx2+vx3)+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cusq)); + //////////////////////////////////////////////////////////////////////////////// + ConcD = c0o1; + //////////////////////////////////////////////////////////////////////////////// + //add BC equilibrium + f27_ZERO += c8o27* (ConcD-(ConcD+c1o1)*cusq); + f27_E += c2o27* (ConcD+(ConcD+c1o1)*(c3o1*( vx1 )+c9o2*( vx1 )*( vx1 )-cusq)); + f27_W += c2o27* (ConcD+(ConcD+c1o1)*(c3o1*(-vx1 )+c9o2*(-vx1 )*(-vx1 )-cusq)); + f27_N += c2o27* (ConcD+(ConcD+c1o1)*(c3o1*( vx2 )+c9o2*( vx2 )*( vx2 )-cusq)); + f27_S += c2o27* (ConcD+(ConcD+c1o1)*(c3o1*( -vx2 )+c9o2*( -vx2 )*( -vx2 )-cusq)); + f27_T += c2o27* (ConcD+(ConcD+c1o1)*(c3o1*( vx3)+c9o2*( vx3)*( vx3)-cusq)); + f27_B += c2o27* (ConcD+(ConcD+c1o1)*(c3o1*( -vx3)+c9o2*( -vx3)*( -vx3)-cusq)); + f27_NE += c1o54* (ConcD+(ConcD+c1o1)*(c3o1*( vx1+vx2 )+c9o2*( vx1+vx2 )*( vx1+vx2 )-cusq)); + f27_SW += c1o54* (ConcD+(ConcD+c1o1)*(c3o1*(-vx1-vx2 )+c9o2*(-vx1-vx2 )*(-vx1-vx2 )-cusq)); + f27_SE += c1o54* (ConcD+(ConcD+c1o1)*(c3o1*( vx1-vx2 )+c9o2*( vx1-vx2 )*( vx1-vx2 )-cusq)); + f27_NW += c1o54* (ConcD+(ConcD+c1o1)*(c3o1*(-vx1+vx2 )+c9o2*(-vx1+vx2 )*(-vx1+vx2 )-cusq)); + f27_TE += c1o54* (ConcD+(ConcD+c1o1)*(c3o1*( vx1 +vx3)+c9o2*( vx1 +vx3)*( vx1 +vx3)-cusq)); + f27_BW += c1o54* (ConcD+(ConcD+c1o1)*(c3o1*(-vx1 -vx3)+c9o2*(-vx1 -vx3)*(-vx1 -vx3)-cusq)); + f27_BE += c1o54* (ConcD+(ConcD+c1o1)*(c3o1*( vx1 -vx3)+c9o2*( vx1 -vx3)*( vx1 -vx3)-cusq)); + f27_TW += c1o54* (ConcD+(ConcD+c1o1)*(c3o1*(-vx1 +vx3)+c9o2*(-vx1 +vx3)*(-vx1 +vx3)-cusq)); + f27_TN += c1o54* (ConcD+(ConcD+c1o1)*(c3o1*( vx2+vx3)+c9o2*( vx2+vx3)*( vx2+vx3)-cusq)); + f27_BS += c1o54* (ConcD+(ConcD+c1o1)*(c3o1*( -vx2-vx3)+c9o2*( -vx2-vx3)*( -vx2-vx3)-cusq)); + f27_BN += c1o54* (ConcD+(ConcD+c1o1)*(c3o1*( vx2-vx3)+c9o2*( vx2-vx3)*( vx2-vx3)-cusq)); + f27_TS += c1o54* (ConcD+(ConcD+c1o1)*(c3o1*( -vx2+vx3)+c9o2*( -vx2+vx3)*( -vx2+vx3)-cusq)); + f27_TNE += c1o216*(ConcD+(ConcD+c1o1)*(c3o1*( vx1+vx2+vx3)+c9o2*( vx1+vx2+vx3)*( vx1+vx2+vx3)-cusq)); + f27_BSW += c1o216*(ConcD+(ConcD+c1o1)*(c3o1*(-vx1-vx2-vx3)+c9o2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3)-cusq)); + f27_BNE += c1o216*(ConcD+(ConcD+c1o1)*(c3o1*( vx1+vx2-vx3)+c9o2*( vx1+vx2-vx3)*( vx1+vx2-vx3)-cusq)); + f27_TSW += c1o216*(ConcD+(ConcD+c1o1)*(c3o1*(-vx1-vx2+vx3)+c9o2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3)-cusq)); + f27_TSE += c1o216*(ConcD+(ConcD+c1o1)*(c3o1*( vx1-vx2+vx3)+c9o2*( vx1-vx2+vx3)*( vx1-vx2+vx3)-cusq)); + f27_BNW += c1o216*(ConcD+(ConcD+c1o1)*(c3o1*(-vx1+vx2-vx3)+c9o2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3)-cusq)); + f27_BSE += c1o216*(ConcD+(ConcD+c1o1)*(c3o1*( vx1-vx2-vx3)+c9o2*( vx1-vx2-vx3)*( vx1-vx2-vx3)-cusq)); + f27_TNW += c1o216*(ConcD+(ConcD+c1o1)*(c3o1*(-vx1+vx2+vx3)+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cusq)); + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// __syncthreads(); - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //Neighbors of BC Nodes - //////////////////////////////////////////////////////////////////////////////// - //index neighbor - unsigned int KNQK = k_N[k]; - unsigned int kNzero = KNQK; - unsigned int kNe = KNQK; - unsigned int kNw = neighborX[KNQK]; - unsigned int kNn = KNQK; - unsigned int kNs = neighborY[KNQK]; - unsigned int kNt = KNQK; - unsigned int kNb = neighborZ[KNQK]; - unsigned int kNsw = neighborY[kNw]; - unsigned int kNne = KNQK; - unsigned int kNse = kNs; - unsigned int kNnw = kNw; - unsigned int kNbw = neighborZ[kNw]; - unsigned int kNte = KNQK; - unsigned int kNbe = kNb; - unsigned int kNtw = kNw; - unsigned int kNbs = neighborZ[kNs]; - unsigned int kNtn = KNQK; - unsigned int kNbn = kNb; - unsigned int kNts = kNs; - unsigned int kNtse = kNs; - unsigned int kNbnw = kNbw; - unsigned int kNtnw = kNw; - unsigned int kNbse = kNbs; - unsigned int kNtsw = kNsw; - unsigned int kNbne = kNb; - unsigned int kNtne = KNQK; - unsigned int kNbsw = neighborZ[kNsw]; - //////////////////////////////////////////////////////////////////////////////// - //update distributions at neighbor nodes + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //Neighbors of BC Nodes + //////////////////////////////////////////////////////////////////////////////// + //index neighbor + unsigned int KNQK = k_N[k]; + unsigned int kNzero = KNQK; + unsigned int kNe = KNQK; + unsigned int kNw = neighborX[KNQK]; + unsigned int kNn = KNQK; + unsigned int kNs = neighborY[KNQK]; + unsigned int kNt = KNQK; + unsigned int kNb = neighborZ[KNQK]; + unsigned int kNsw = neighborY[kNw]; + unsigned int kNne = KNQK; + unsigned int kNse = kNs; + unsigned int kNnw = kNw; + unsigned int kNbw = neighborZ[kNw]; + unsigned int kNte = KNQK; + unsigned int kNbe = kNb; + unsigned int kNtw = kNw; + unsigned int kNbs = neighborZ[kNs]; + unsigned int kNtn = KNQK; + unsigned int kNbn = kNb; + unsigned int kNts = kNs; + unsigned int kNtse = kNs; + unsigned int kNbnw = kNbw; + unsigned int kNtnw = kNw; + unsigned int kNbse = kNbs; + unsigned int kNtsw = kNsw; + unsigned int kNbne = kNb; + unsigned int kNtne = KNQK; + unsigned int kNbsw = neighborZ[kNsw]; + //////////////////////////////////////////////////////////////////////////////// + //update distributions at neighbor nodes (D27.f[dP00])[kNe ] = f27_W ; - (D27.f[dM00])[kNw ] = f27_E ; - (D27.f[d0P0])[kNn ] = f27_S ; - (D27.f[d0M0])[kNs ] = f27_N ; - (D27.f[d00P])[kNt ] = f27_B ; - (D27.f[d00M])[kNb ] = f27_T ; - (D27.f[dPP0])[kNne ] = f27_SW ; - (D27.f[dMM0])[kNsw ] = f27_NE ; - (D27.f[dPM0])[kNse ] = f27_NW ; - (D27.f[dMP0])[kNnw ] = f27_SE ; - (D27.f[dP0P])[kNte ] = f27_BW ; - (D27.f[dM0M])[kNbw ] = f27_TE ; - (D27.f[dP0M])[kNbe ] = f27_TW ; - (D27.f[dM0P])[kNtw ] = f27_BE ; - (D27.f[d0PP])[kNtn ] = f27_BS ; - (D27.f[d0MM])[kNbs ] = f27_TN ; - (D27.f[d0PM])[kNbn ] = f27_TS ; - (D27.f[d0MP])[kNts ] = f27_BN ; - (D27.f[d000])[kNzero] = f27_ZERO; - (D27.f[dPPP])[kNtne ] = f27_BSW ; - (D27.f[dMMP])[kNtsw ] = f27_BNE ; - (D27.f[dPMP])[kNtse ] = f27_BNW ; - (D27.f[dMPP])[kNtnw ] = f27_BSE ; - (D27.f[dPPM])[kNbne ] = f27_TSW ; - (D27.f[dMMM])[kNbsw ] = f27_TNE ; - (D27.f[dPMM])[kNbse ] = f27_TNW ; + (D27.f[dM00])[kNw ] = f27_E ; + (D27.f[d0P0])[kNn ] = f27_S ; + (D27.f[d0M0])[kNs ] = f27_N ; + (D27.f[d00P])[kNt ] = f27_B ; + (D27.f[d00M])[kNb ] = f27_T ; + (D27.f[dPP0])[kNne ] = f27_SW ; + (D27.f[dMM0])[kNsw ] = f27_NE ; + (D27.f[dPM0])[kNse ] = f27_NW ; + (D27.f[dMP0])[kNnw ] = f27_SE ; + (D27.f[dP0P])[kNte ] = f27_BW ; + (D27.f[dM0M])[kNbw ] = f27_TE ; + (D27.f[dP0M])[kNbe ] = f27_TW ; + (D27.f[dM0P])[kNtw ] = f27_BE ; + (D27.f[d0PP])[kNtn ] = f27_BS ; + (D27.f[d0MM])[kNbs ] = f27_TN ; + (D27.f[d0PM])[kNbn ] = f27_TS ; + (D27.f[d0MP])[kNts ] = f27_BN ; + (D27.f[d000])[kNzero] = f27_ZERO; + (D27.f[dPPP])[kNtne ] = f27_BSW ; + (D27.f[dMMP])[kNtsw ] = f27_BNE ; + (D27.f[dPMP])[kNtse ] = f27_BNW ; + (D27.f[dMPP])[kNtnw ] = f27_BSE ; + (D27.f[dPPM])[kNbne ] = f27_TSW ; + (D27.f[dMMM])[kNbsw ] = f27_TNE ; + (D27.f[dPMM])[kNbse ] = f27_TNW ; (D27.f[dMPM])[kNbnw ] = f27_TSE ; - } + } } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -1630,7 +1630,7 @@ __global__ void QADVel7( real* DD, real vx2 = OORho*((f_TNE-f_BSW)+(f_BNE-f_TSW)+(f_BNW-f_TSE)+(f_TNW-f_BSE) +(f_NE-f_SW)+(f_NW-f_SE)+(f_TN-f_BS)+(f_BN-f_TS)+(f_N-f_S)); real vx3 = OORho*((f_TNE-f_BSW)+(f_TSW-f_BNE)+(f_TSE-f_BNW)+(f_TNW-f_BSE) +(f_TE-f_BW)+(f_TW-f_BE)+(f_TN-f_BS)+(f_TS-f_BN)+(f_T-f_B)); - //real cu_sq =1.5f*(vx1*vx1+vx2*vx2+vx3*vx3); + //real cu_sq =1.5f*(vx1*vx1+vx2*vx2+vx3*vx3); real ux_sq = vx1 * vx1; real uy_sq = vx2 * vx2; real uz_sq = vx3 * vx3; @@ -2853,19 +2853,19 @@ __global__ void QAD7( real* DD, ////////////////////////////////////////////////////////////////////////////// __global__ void QADDirichlet27( - real* DD, - real* DD27, - real* temp, - real diffusivity, - int* k_Q, - real* QQ, - unsigned int numberOfBCnodes, - real om1, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned long long numberOfLBnodes, - bool isEvenTimestep) + real* DD, + real* DD27, + real* temp, + real diffusivity, + int* k_Q, + real* QQ, + unsigned int numberOfBCnodes, + real om1, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned long long numberOfLBnodes, + bool isEvenTimestep) { Distributions27 D; if (isEvenTimestep==true) @@ -3881,9 +3881,9 @@ __global__ void QADBB27( real* DD, //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////// ////// -////// incomp ////// -////// ////// +////// ////// +////// incomp ////// +////// ////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -3894,19 +3894,19 @@ __global__ void QADBB27( real* DD, ////////////////////////////////////////////////////////////////////////////// __global__ void QNoSlipADincomp7( - real* DD, - real* DD7, - real* temp, - real diffusivity, - int* k_Q, - real* QQ, - unsigned int numberOfBCnodes, - real om1, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned long long numberOfLBnodes, - bool isEvenTimestep) + real* DD, + real* DD7, + real* temp, + real diffusivity, + int* k_Q, + real* QQ, + unsigned int numberOfBCnodes, + real om1, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned long long numberOfLBnodes, + bool isEvenTimestep) { //Distributions27 D; //if (isEvenTimestep==true) @@ -4076,7 +4076,7 @@ __global__ void QNoSlipADincomp7( //real vx1 = ((f_TNE-f_BSW)+(f_BNE-f_TSW)+(f_TSE-f_BNW)+(f_BSE-f_TNW) +(f_NE-f_SW)+(f_SE-f_NW)+(f_TE-f_BW)+(f_BE-f_TW)+(f_E-f_W)); //real vx2 = ((f_TNE-f_BSW)+(f_BNE-f_TSW)+(f_BNW-f_TSE)+(f_TNW-f_BSE) +(f_NE-f_SW)+(f_NW-f_SE)+(f_TN-f_BS)+(f_BN-f_TS)+(f_N-f_S)); //real vx3 = ((f_TNE-f_BSW)+(f_TSW-f_BNE)+(f_TSE-f_BNW)+(f_TNW-f_BSE) +(f_TE-f_BW)+(f_TW-f_BE)+(f_TN-f_BS)+(f_TS-f_BN)+(f_T-f_B)); - ////d�rrrrrty !!!!!!!!!!!!! + ////d�rrrrrty !!!!!!!!!!!!! // real vx1 = ten * ((f_TNE-f_BSW)+(f_BNE-f_TSW)+(f_TSE-f_BNW)+(f_BSE-f_TNW) +(f_NE-f_SW)+(f_SE-f_NW)+(f_TE-f_BW)+(f_BE-f_TW)+(f_E-f_W)); // real vx2 = ten * ((f_TNE-f_BSW)+(f_BNE-f_TSW)+(f_BNW-f_TSE)+(f_TNW-f_BSE) +(f_NE-f_SW)+(f_NW-f_SE)+(f_TN-f_BS)+(f_BN-f_TS)+(f_N-f_S)); // real vx3 = ten * ((f_TNE-f_BSW)+(f_TSW-f_BNE)+(f_TSE-f_BNW)+(f_TNW-f_BSE) +(f_TE-f_BW)+(f_TW-f_BE)+(f_TN-f_BS)+(f_TS-f_BN)+(f_T-f_B)); @@ -4086,7 +4086,7 @@ __global__ void QNoSlipADincomp7( //real uy_sq = vx2 * vx2; //real uz_sq = vx3 * vx3; //////////////////////////////////////////////////////////////////////////////// - //BGK + //BGK //real omegaD = three - sqrt(three); //real Lam = -(c1o2-one/omegaD); //real nue_d = Lam/three; @@ -4125,7 +4125,7 @@ __global__ void QNoSlipADincomp7( //feqW7_B = TempD*(c1o6*(ae+one));//+c1o2*(uz_sq)-vx3*c1o2); //////////////////////////////////////////////////////////////////////////////// - //TRT + //TRT real cs2 = c1o4; ////////////////////////////////////////////////////////////////////////// //pointertausch @@ -4318,19 +4318,19 @@ __global__ void QNoSlipADincomp7( ////////////////////////////////////////////////////////////////////////////// __global__ void QNoSlipADincomp27( - real* DD, - real* DD27, - real* temp, - real diffusivity, - int* k_Q, - real* QQ, - unsigned int numberOfBCnodes, - real om1, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned long long numberOfLBnodes, - bool isEvenTimestep) + real* DD, + real* DD27, + real* temp, + real diffusivity, + int* k_Q, + real* QQ, + unsigned int numberOfBCnodes, + real om1, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned long long numberOfLBnodes, + bool isEvenTimestep) { Distributions27 D; if (isEvenTimestep==true) @@ -4727,7 +4727,7 @@ __global__ void QNoSlipADincomp27( //Test //(D.f[d000])[k]=0.1f; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real q; + real q; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// q = q_dirE[k]; if (q>=c0o1 && q<=c1o1) (D27.f[dM00])[kw ]=(c2o1*feqW27_W -(f27_E *(q*omegaD-c1o1)-omegaD*feq27_E *(q-c1o1))/(omegaD-c1o1)+f27_W *q)/(q+c1o1); q = q_dirW[k]; if (q>=c0o1 && q<=c1o1) (D27.f[dP00])[ke ]=(c2o1*feqW27_E -(f27_W *(q*omegaD-c1o1)-omegaD*feq27_W *(q-c1o1))/(omegaD-c1o1)+f27_E *q)/(q+c1o1); @@ -4799,20 +4799,20 @@ __global__ void QNoSlipADincomp27( ////////////////////////////////////////////////////////////////////////////// __global__ void QADVeloIncomp7( - real* DD, - real* DD7, - real* temp, - real* velo, - real diffusivity, - int* k_Q, - real* QQ, - unsigned int numberOfBCnodes, - real om1, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned long long numberOfLBnodes, - bool isEvenTimestep) + real* DD, + real* DD7, + real* temp, + real* velo, + real diffusivity, + int* k_Q, + real* QQ, + unsigned int numberOfBCnodes, + real om1, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned long long numberOfLBnodes, + bool isEvenTimestep) { //Distributions27 D; //if (isEvenTimestep==true) @@ -4989,12 +4989,12 @@ __global__ void QADVeloIncomp7( //real vx1 = ((f_TNE-f_BSW)+(f_BNE-f_TSW)+(f_TSE-f_BNW)+(f_BSE-f_TNW) +(f_NE-f_SW)+(f_SE-f_NW)+(f_TE-f_BW)+(f_BE-f_TW)+(f_E-f_W)); //real vx2 = ((f_TNE-f_BSW)+(f_BNE-f_TSW)+(f_BNW-f_TSE)+(f_TNW-f_BSE) +(f_NE-f_SW)+(f_NW-f_SE)+(f_TN-f_BS)+(f_BN-f_TS)+(f_N-f_S)); //real vx3 = ((f_TNE-f_BSW)+(f_TSW-f_BNE)+(f_TSE-f_BNW)+(f_TNW-f_BSE) +(f_TE-f_BW)+(f_TW-f_BE)+(f_TN-f_BS)+(f_TS-f_BN)+(f_T-f_B)); - ////d�rrrrrty !!!!!!!!!!!!! + ////d�rrrrrty !!!!!!!!!!!!! // real vx1 = ten * ((f_TNE-f_BSW)+(f_BNE-f_TSW)+(f_TSE-f_BNW)+(f_BSE-f_TNW) +(f_NE-f_SW)+(f_SE-f_NW)+(f_TE-f_BW)+(f_BE-f_TW)+(f_E-f_W)); // real vx2 = ten * ((f_TNE-f_BSW)+(f_BNE-f_TSW)+(f_BNW-f_TSE)+(f_TNW-f_BSE) +(f_NE-f_SW)+(f_NW-f_SE)+(f_TN-f_BS)+(f_BN-f_TS)+(f_N-f_S)); // real vx3 = ten * ((f_TNE-f_BSW)+(f_TSW-f_BNE)+(f_TSE-f_BNW)+(f_TNW-f_BSE) +(f_TE-f_BW)+(f_TW-f_BE)+(f_TN-f_BS)+(f_TS-f_BN)+(f_T-f_B)); //////////////////////////////////////////////////////////////////////////////// - //real cu_sq =1.5f*(vx1*vx1+vx2*vx2+vx3*vx3); + //real cu_sq =1.5f*(vx1*vx1+vx2*vx2+vx3*vx3); //real ux_sq = vx1 * vx1; //real uy_sq = vx2 * vx2; //real uz_sq = vx3 * vx3; @@ -5015,7 +5015,7 @@ __global__ void QADVeloIncomp7( //real ConcD = f7_ZERO + f7_E + f7_W + f7_N + f7_S + f7_T + f7_B; //////////////////////////////////////////////////////////////////////////////// - //BGK + //BGK //real omegaD = three - sqrt(three); //real Lam = -(c1o2-one/omegaD); //real nue_d = Lam/three; @@ -5039,13 +5039,13 @@ __global__ void QADVeloIncomp7( //feqW7_B = TempD*(c1o6*(ae+one)+c1o2*(uz_sq_Inflow)-vx3_Inflow*c1o2); // //////////////////////////////////////////////////////////////////////////////// - ////TRT Yoshida Kernel - based on Ying + ////TRT Yoshida Kernel - based on Ying real cs2 = c1o4; // real Lam = diffusivity/(one)/cs2; // real omegaD = - one / (Lam + c1o2); // real ae = zero; // //////////////////////////////////////////////////////////////////////////////// - //real Mom000 = f7_ZERO + f7_W + f7_E + f7_N + f7_S + f7_T + f7_B; //1 + //real Mom000 = f7_ZERO + f7_W + f7_E + f7_N + f7_S + f7_T + f7_B; //1 // real Mom100 = f7_E - f7_W; // real Mom010 = f7_N - f7_S; // real Mom001 = f7_T - f7_B; @@ -5277,20 +5277,20 @@ __global__ void QADVeloIncomp7( ////////////////////////////////////////////////////////////////////////////// __global__ void QADVeloIncomp27( - real* DD, - real* DD27, - real* temp, - real* velo, - real diffusivity, - int* k_Q, - real* QQ, - unsigned int numberOfBCnodes, - real om1, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned long long numberOfLBnodes, - bool isEvenTimestep) + real* DD, + real* DD27, + real* temp, + real* velo, + real diffusivity, + int* k_Q, + real* QQ, + unsigned int numberOfBCnodes, + real om1, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned long long numberOfLBnodes, + bool isEvenTimestep) { Distributions27 D; if (isEvenTimestep==true) @@ -5790,19 +5790,19 @@ __global__ void QADVeloIncomp27( ////////////////////////////////////////////////////////////////////////////// __global__ void QADPressIncomp7( real* DD, - real* DD7, - real* temp, - real* velo, - real diffusivity, - int* k_Q, - real* QQ, - unsigned int numberOfBCnodes, - real om1, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned long long numberOfLBnodes, - bool isEvenTimestep) + real* DD7, + real* temp, + real* velo, + real diffusivity, + int* k_Q, + real* QQ, + unsigned int numberOfBCnodes, + real om1, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned long long numberOfLBnodes, + bool isEvenTimestep) { /* Distributions27 D; if (isEvenTimestep==true) @@ -5975,17 +5975,17 @@ __global__ void QADPressIncomp7( real* DD, //real vx1 = ((f_TNE-f_BSW)+(f_BNE-f_TSW)+(f_TSE-f_BNW)+(f_BSE-f_TNW) +(f_NE-f_SW)+(f_SE-f_NW)+(f_TE-f_BW)+(f_BE-f_TW)+(f_E-f_W)); //real vx2 = ((f_TNE-f_BSW)+(f_BNE-f_TSW)+(f_BNW-f_TSE)+(f_TNW-f_BSE) +(f_NE-f_SW)+(f_NW-f_SE)+(f_TN-f_BS)+(f_BN-f_TS)+(f_N-f_S)); //real vx3 = ((f_TNE-f_BSW)+(f_TSW-f_BNE)+(f_TSE-f_BNW)+(f_TNW-f_BSE) +(f_TE-f_BW)+(f_TW-f_BE)+(f_TN-f_BS)+(f_TS-f_BN)+(f_T-f_B)); - ////d�rrrrrty !!!!!!!!!!!!! + ////d�rrrrrty !!!!!!!!!!!!! // real vx1 = ten * ((f_TNE-f_BSW)+(f_BNE-f_TSW)+(f_TSE-f_BNW)+(f_BSE-f_TNW) +(f_NE-f_SW)+(f_SE-f_NW)+(f_TE-f_BW)+(f_BE-f_TW)+(f_E-f_W)); // real vx2 = ten * ((f_TNE-f_BSW)+(f_BNE-f_TSW)+(f_BNW-f_TSE)+(f_TNW-f_BSE) +(f_NE-f_SW)+(f_NW-f_SE)+(f_TN-f_BS)+(f_BN-f_TS)+(f_N-f_S)); // real vx3 = ten * ((f_TNE-f_BSW)+(f_TSW-f_BNE)+(f_TSE-f_BNW)+(f_TNW-f_BSE) +(f_TE-f_BW)+(f_TW-f_BE)+(f_TN-f_BS)+(f_TS-f_BN)+(f_T-f_B)); - //real cu_sq =1.5*(vx1*vx1+vx2*vx2+vx3*vx3); + //real cu_sq =1.5*(vx1*vx1+vx2*vx2+vx3*vx3); //real ux_sq = vx1 * vx1; //real uy_sq = vx2 * vx2; //real uz_sq = vx3 * vx3; ////////////////////////////////////////////////////////////////////////// - //BGK + //BGK //real omegaD = three - sqrt(three); //real Lam = -(c1o2-one/omegaD); //real nue_d = Lam/three; @@ -6025,7 +6025,7 @@ __global__ void QADPressIncomp7( real* DD, //feqW7_B = feq7_B;// TempD*(c1o6*(ae+one)+c1o2*(uz_sq_Inflow)-vx3_Inflow*c1o2); ////////////////////////////////////////////////////////////////////////// - //TRT Yoshida Kernel - based on Ying + //TRT Yoshida Kernel - based on Ying real cs2 = c1o4; real Lam = diffusivity/(c1o1)/cs2; //real omegaD = - c1o1 / (Lam + c1o2); @@ -6228,20 +6228,20 @@ __global__ void QADPressIncomp7( real* DD, ////////////////////////////////////////////////////////////////////////////// __global__ void QADPressIncomp27( - real* DD, - real* DD27, - real* temp, - real* velo, - real diffusivity, - int* k_Q, - real* QQ, - unsigned int numberOfBCnodes, - real om1, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned long long numberOfLBnodes, - bool isEvenTimestep) + real* DD, + real* DD27, + real* temp, + real* velo, + real diffusivity, + int* k_Q, + real* QQ, + unsigned int numberOfBCnodes, + real om1, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned long long numberOfLBnodes, + bool isEvenTimestep) { Distributions27 D; if (isEvenTimestep==true) diff --git a/src/gpu/core/GPU/CP27.cu b/src/gpu/core/GPU/CP27.cu index 55717462bc4fbcb75bb1d55c193e0d4ea222aac8..48043dee741be928da65acdfebcba61d8349f4fa 100644 --- a/src/gpu/core/GPU/CP27.cu +++ b/src/gpu/core/GPU/CP27.cu @@ -8,123 +8,123 @@ using namespace vf::lbm::dir; //////////////////////////////////////////////////////////////////////////////// __global__ void CalcCP27(real* DD, - int* cpIndex, - int nonCp, - double *cpPress, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned long long numberOfLBnodes, - bool isEvenTimestep) + int* cpIndex, + int nonCp, + double *cpPress, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned long long numberOfLBnodes, + bool isEvenTimestep) { - Distributions27 D; - if (isEvenTimestep==true) - { - D.f[dP00] = &DD[dP00 * numberOfLBnodes]; - D.f[dM00] = &DD[dM00 * numberOfLBnodes]; - D.f[d0P0] = &DD[d0P0 * numberOfLBnodes]; - D.f[d0M0] = &DD[d0M0 * numberOfLBnodes]; - D.f[d00P] = &DD[d00P * numberOfLBnodes]; - D.f[d00M] = &DD[d00M * numberOfLBnodes]; - D.f[dPP0] = &DD[dPP0 * numberOfLBnodes]; - D.f[dMM0] = &DD[dMM0 * numberOfLBnodes]; - D.f[dPM0] = &DD[dPM0 * numberOfLBnodes]; - D.f[dMP0] = &DD[dMP0 * numberOfLBnodes]; - D.f[dP0P] = &DD[dP0P * numberOfLBnodes]; - D.f[dM0M] = &DD[dM0M * numberOfLBnodes]; - D.f[dP0M] = &DD[dP0M * numberOfLBnodes]; - D.f[dM0P] = &DD[dM0P * numberOfLBnodes]; - D.f[d0PP] = &DD[d0PP * numberOfLBnodes]; - D.f[d0MM] = &DD[d0MM * numberOfLBnodes]; - D.f[d0PM] = &DD[d0PM * numberOfLBnodes]; - D.f[d0MP] = &DD[d0MP * numberOfLBnodes]; - D.f[d000] = &DD[d000 * numberOfLBnodes]; - D.f[dPPP] = &DD[dPPP * numberOfLBnodes]; - D.f[dMMP] = &DD[dMMP * numberOfLBnodes]; - D.f[dPMP] = &DD[dPMP * numberOfLBnodes]; - D.f[dMPP] = &DD[dMPP * numberOfLBnodes]; - D.f[dPPM] = &DD[dPPM * numberOfLBnodes]; - D.f[dMMM] = &DD[dMMM * numberOfLBnodes]; - D.f[dPMM] = &DD[dPMM * numberOfLBnodes]; - D.f[dMPM] = &DD[dMPM * numberOfLBnodes]; - } - else - { - D.f[dM00] = &DD[dP00 * numberOfLBnodes]; - D.f[dP00] = &DD[dM00 * numberOfLBnodes]; - D.f[d0M0] = &DD[d0P0 * numberOfLBnodes]; - D.f[d0P0] = &DD[d0M0 * numberOfLBnodes]; - D.f[d00M] = &DD[d00P * numberOfLBnodes]; - D.f[d00P] = &DD[d00M * numberOfLBnodes]; - D.f[dMM0] = &DD[dPP0 * numberOfLBnodes]; - D.f[dPP0] = &DD[dMM0 * numberOfLBnodes]; - D.f[dMP0] = &DD[dPM0 * numberOfLBnodes]; - D.f[dPM0] = &DD[dMP0 * numberOfLBnodes]; - D.f[dM0M] = &DD[dP0P * numberOfLBnodes]; - D.f[dP0P] = &DD[dM0M * numberOfLBnodes]; - D.f[dM0P] = &DD[dP0M * numberOfLBnodes]; - D.f[dP0M] = &DD[dM0P * numberOfLBnodes]; - D.f[d0MM] = &DD[d0PP * numberOfLBnodes]; - D.f[d0PP] = &DD[d0MM * numberOfLBnodes]; - D.f[d0MP] = &DD[d0PM * numberOfLBnodes]; - D.f[d0PM] = &DD[d0MP * numberOfLBnodes]; - D.f[d000] = &DD[d000 * numberOfLBnodes]; - D.f[dPPP] = &DD[dMMM * numberOfLBnodes]; - D.f[dMMP] = &DD[dPPM * numberOfLBnodes]; - D.f[dPMP] = &DD[dMPM * numberOfLBnodes]; - D.f[dMPP] = &DD[dPMM * numberOfLBnodes]; - D.f[dPPM] = &DD[dMMP * numberOfLBnodes]; - D.f[dMMM] = &DD[dPPP * numberOfLBnodes]; - D.f[dPMM] = &DD[dMPP * numberOfLBnodes]; - D.f[dMPM] = &DD[dPMP * numberOfLBnodes]; - } - //////////////////////////////////////////////////////////////////////////////// - const unsigned x = threadIdx.x; // Globaler x-Index - const unsigned y = blockIdx.x; // Globaler y-Index - const unsigned z = blockIdx.y; // Globaler z-Index + Distributions27 D; + if (isEvenTimestep==true) + { + D.f[dP00] = &DD[dP00 * numberOfLBnodes]; + D.f[dM00] = &DD[dM00 * numberOfLBnodes]; + D.f[d0P0] = &DD[d0P0 * numberOfLBnodes]; + D.f[d0M0] = &DD[d0M0 * numberOfLBnodes]; + D.f[d00P] = &DD[d00P * numberOfLBnodes]; + D.f[d00M] = &DD[d00M * numberOfLBnodes]; + D.f[dPP0] = &DD[dPP0 * numberOfLBnodes]; + D.f[dMM0] = &DD[dMM0 * numberOfLBnodes]; + D.f[dPM0] = &DD[dPM0 * numberOfLBnodes]; + D.f[dMP0] = &DD[dMP0 * numberOfLBnodes]; + D.f[dP0P] = &DD[dP0P * numberOfLBnodes]; + D.f[dM0M] = &DD[dM0M * numberOfLBnodes]; + D.f[dP0M] = &DD[dP0M * numberOfLBnodes]; + D.f[dM0P] = &DD[dM0P * numberOfLBnodes]; + D.f[d0PP] = &DD[d0PP * numberOfLBnodes]; + D.f[d0MM] = &DD[d0MM * numberOfLBnodes]; + D.f[d0PM] = &DD[d0PM * numberOfLBnodes]; + D.f[d0MP] = &DD[d0MP * numberOfLBnodes]; + D.f[d000] = &DD[d000 * numberOfLBnodes]; + D.f[dPPP] = &DD[dPPP * numberOfLBnodes]; + D.f[dMMP] = &DD[dMMP * numberOfLBnodes]; + D.f[dPMP] = &DD[dPMP * numberOfLBnodes]; + D.f[dMPP] = &DD[dMPP * numberOfLBnodes]; + D.f[dPPM] = &DD[dPPM * numberOfLBnodes]; + D.f[dMMM] = &DD[dMMM * numberOfLBnodes]; + D.f[dPMM] = &DD[dPMM * numberOfLBnodes]; + D.f[dMPM] = &DD[dMPM * numberOfLBnodes]; + } + else + { + D.f[dM00] = &DD[dP00 * numberOfLBnodes]; + D.f[dP00] = &DD[dM00 * numberOfLBnodes]; + D.f[d0M0] = &DD[d0P0 * numberOfLBnodes]; + D.f[d0P0] = &DD[d0M0 * numberOfLBnodes]; + D.f[d00M] = &DD[d00P * numberOfLBnodes]; + D.f[d00P] = &DD[d00M * numberOfLBnodes]; + D.f[dMM0] = &DD[dPP0 * numberOfLBnodes]; + D.f[dPP0] = &DD[dMM0 * numberOfLBnodes]; + D.f[dMP0] = &DD[dPM0 * numberOfLBnodes]; + D.f[dPM0] = &DD[dMP0 * numberOfLBnodes]; + D.f[dM0M] = &DD[dP0P * numberOfLBnodes]; + D.f[dP0P] = &DD[dM0M * numberOfLBnodes]; + D.f[dM0P] = &DD[dP0M * numberOfLBnodes]; + D.f[dP0M] = &DD[dM0P * numberOfLBnodes]; + D.f[d0MM] = &DD[d0PP * numberOfLBnodes]; + D.f[d0PP] = &DD[d0MM * numberOfLBnodes]; + D.f[d0MP] = &DD[d0PM * numberOfLBnodes]; + D.f[d0PM] = &DD[d0MP * numberOfLBnodes]; + D.f[d000] = &DD[d000 * numberOfLBnodes]; + D.f[dPPP] = &DD[dMMM * numberOfLBnodes]; + D.f[dMMP] = &DD[dPPM * numberOfLBnodes]; + D.f[dPMP] = &DD[dMPM * numberOfLBnodes]; + D.f[dMPP] = &DD[dPMM * numberOfLBnodes]; + D.f[dPPM] = &DD[dMMP * numberOfLBnodes]; + D.f[dMMM] = &DD[dPPP * numberOfLBnodes]; + D.f[dPMM] = &DD[dMPP * numberOfLBnodes]; + D.f[dMPM] = &DD[dPMP * numberOfLBnodes]; + } + //////////////////////////////////////////////////////////////////////////////// + const unsigned x = threadIdx.x; // Globaler x-Index + const unsigned y = blockIdx.x; // Globaler y-Index + const unsigned z = blockIdx.y; // Globaler z-Index - const unsigned nx = blockDim.x; - const unsigned ny = gridDim.x; + const unsigned nx = blockDim.x; + const unsigned ny = gridDim.x; - const unsigned k = nx*(ny*z + y) + x; - ////////////////////////////////////////////////////////////////////////// + const unsigned k = nx*(ny*z + y) + x; + ////////////////////////////////////////////////////////////////////////// - if(k<nonCp) - { - //////////////////////////////////////////////////////////////////////////////// - //index - unsigned int KQK = cpIndex[k]; - unsigned int kzero= KQK; - unsigned int ke = KQK; - unsigned int kw = neighborX[KQK]; - unsigned int kn = KQK; - unsigned int ks = neighborY[KQK]; - unsigned int kt = KQK; - unsigned int kb = neighborZ[KQK]; - unsigned int ksw = neighborY[kw]; - unsigned int kne = KQK; - unsigned int kse = ks; - unsigned int knw = kw; - unsigned int kbw = neighborZ[kw]; - unsigned int kte = KQK; - unsigned int kbe = kb; - unsigned int ktw = kw; - unsigned int kbs = neighborZ[ks]; - unsigned int ktn = KQK; - unsigned int kbn = kb; - unsigned int kts = ks; - unsigned int ktse = ks; - unsigned int kbnw = kbw; - unsigned int ktnw = kw; - unsigned int kbse = kbs; - unsigned int ktsw = ksw; - unsigned int kbne = kb; - unsigned int ktne = KQK; - unsigned int kbsw = neighborZ[ksw]; - //////////////////////////////////////////////////////////////////////////////// - double PressCP; + if(k<nonCp) + { + //////////////////////////////////////////////////////////////////////////////// + //index + unsigned int KQK = cpIndex[k]; + unsigned int kzero= KQK; + unsigned int ke = KQK; + unsigned int kw = neighborX[KQK]; + unsigned int kn = KQK; + unsigned int ks = neighborY[KQK]; + unsigned int kt = KQK; + unsigned int kb = neighborZ[KQK]; + unsigned int ksw = neighborY[kw]; + unsigned int kne = KQK; + unsigned int kse = ks; + unsigned int knw = kw; + unsigned int kbw = neighborZ[kw]; + unsigned int kte = KQK; + unsigned int kbe = kb; + unsigned int ktw = kw; + unsigned int kbs = neighborZ[ks]; + unsigned int ktn = KQK; + unsigned int kbn = kb; + unsigned int kts = ks; + unsigned int ktse = ks; + unsigned int kbnw = kbw; + unsigned int ktnw = kw; + unsigned int kbse = kbs; + unsigned int ktsw = ksw; + unsigned int kbne = kb; + unsigned int ktne = KQK; + unsigned int kbsw = neighborZ[ksw]; + //////////////////////////////////////////////////////////////////////////////// + double PressCP; - PressCP = (D.f[dP00])[ke ]+ (D.f[dM00])[kw ]+ + PressCP = (D.f[dP00])[ke ]+ (D.f[dM00])[kw ]+ (D.f[d0P0])[kn ]+ (D.f[d0M0])[ks ]+ (D.f[d00P])[kt ]+ (D.f[d00M])[kb ]+ (D.f[dPP0])[kne ]+ (D.f[dMM0])[ksw ]+ @@ -138,9 +138,9 @@ __global__ void CalcCP27(real* DD, (D.f[dPMP])[ktse]+ (D.f[dMPP])[ktnw]+ (D.f[dPPM])[kbne]+ (D.f[dMMM])[kbsw]+ (D.f[dPMM])[kbse]+ (D.f[dMPM])[kbnw]; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - cpPress[k] = PressCP; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - } + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + cpPress[k] = PressCP; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + } } diff --git a/src/gpu/core/GPU/Calc2ndMoments27.cu b/src/gpu/core/GPU/Calc2ndMoments27.cu index edd48091e7429bc5e3221fc1bd8b8420f67f22da..dbf8063f958a824bcb8567fbc1db60a6c8d3975c 100644 --- a/src/gpu/core/GPU/Calc2ndMoments27.cu +++ b/src/gpu/core/GPU/Calc2ndMoments27.cu @@ -8,17 +8,17 @@ using namespace vf::lbm::dir; //////////////////////////////////////////////////////////////////////////////// __global__ void LBCalc2ndMomentsIncompSP27( real* kxyFromfcNEQ, - real* kyzFromfcNEQ, - real* kxzFromfcNEQ, - real* kxxMyyFromfcNEQ, - real* kxxMzzFromfcNEQ, - unsigned int* geoD, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned long long numberOfLBnodes, - real* DD, - bool isEvenTimestep) + real* kyzFromfcNEQ, + real* kxzFromfcNEQ, + real* kxxMyyFromfcNEQ, + real* kxxMzzFromfcNEQ, + unsigned int* geoD, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned long long numberOfLBnodes, + real* DD, + bool isEvenTimestep) { Distributions27 D; if (isEvenTimestep==true) @@ -125,51 +125,51 @@ __global__ void LBCalc2ndMomentsIncompSP27( real* kxyFromfcNEQ, unsigned int kbsw = neighborZ[ksw]; ////////////////////////////////////////////////////////////////////////// real f_E,f_W,f_N,f_S,f_T,f_B,f_NE,f_SW,f_SE,f_NW,f_TE,f_BW,f_BE,f_TW,f_TN,f_BS,f_BN,f_TS,/*f_ZERO,*/f_TNE, f_TSW, f_TSE, f_TNW, f_BNE, f_BSW, f_BSE, f_BNW; - f_E = (D.f[dP00])[ke ]; - f_W = (D.f[dM00])[kw ]; - f_N = (D.f[d0P0])[kn ]; - f_S = (D.f[d0M0])[ks ]; - f_T = (D.f[d00P])[kt ]; - f_B = (D.f[d00M])[kb ]; - f_NE = (D.f[dPP0])[kne ]; - f_SW = (D.f[dMM0])[ksw ]; - f_SE = (D.f[dPM0])[kse ]; - f_NW = (D.f[dMP0])[knw ]; - f_TE = (D.f[dP0P])[kte ]; - f_BW = (D.f[dM0M])[kbw ]; - f_BE = (D.f[dP0M])[kbe ]; - f_TW = (D.f[dM0P])[ktw ]; - f_TN = (D.f[d0PP])[ktn ]; - f_BS = (D.f[d0MM])[kbs ]; - f_BN = (D.f[d0PM])[kbn ]; - f_TS = (D.f[d0MP])[kts ]; - //f_ZERO = (D.f[d000])[kzero]; - f_TNE = (D.f[dPPP])[ktne ]; - f_TSW = (D.f[dMMP])[ktsw ]; - f_TSE = (D.f[dPMP])[ktse ]; - f_TNW = (D.f[dMPP])[ktnw ]; - f_BNE = (D.f[dPPM])[kbne ]; - f_BSW = (D.f[dMMM])[kbsw ]; - f_BSE = (D.f[dPMM])[kbse ]; - f_BNW = (D.f[dMPM])[kbnw ]; + f_E = (D.f[dP00])[ke ]; + f_W = (D.f[dM00])[kw ]; + f_N = (D.f[d0P0])[kn ]; + f_S = (D.f[d0M0])[ks ]; + f_T = (D.f[d00P])[kt ]; + f_B = (D.f[d00M])[kb ]; + f_NE = (D.f[dPP0])[kne ]; + f_SW = (D.f[dMM0])[ksw ]; + f_SE = (D.f[dPM0])[kse ]; + f_NW = (D.f[dMP0])[knw ]; + f_TE = (D.f[dP0P])[kte ]; + f_BW = (D.f[dM0M])[kbw ]; + f_BE = (D.f[dP0M])[kbe ]; + f_TW = (D.f[dM0P])[ktw ]; + f_TN = (D.f[d0PP])[ktn ]; + f_BS = (D.f[d0MM])[kbs ]; + f_BN = (D.f[d0PM])[kbn ]; + f_TS = (D.f[d0MP])[kts ]; + //f_ZERO = (D.f[d000])[kzero]; + f_TNE = (D.f[dPPP])[ktne ]; + f_TSW = (D.f[dMMP])[ktsw ]; + f_TSE = (D.f[dPMP])[ktse ]; + f_TNW = (D.f[dMPP])[ktnw ]; + f_BNE = (D.f[dPPM])[kbne ]; + f_BSW = (D.f[dMMM])[kbsw ]; + f_BSE = (D.f[dPMM])[kbse ]; + f_BNW = (D.f[dMPM])[kbnw ]; ////////////////////////////////////////////////////////////////////////// - real vx1, vx2, vx3; + real vx1, vx2, vx3; kxyFromfcNEQ[k] = c0o1; - kyzFromfcNEQ[k] = c0o1; - kxzFromfcNEQ[k] = c0o1; - kxxMyyFromfcNEQ[k] = c0o1; - kxxMzzFromfcNEQ[k] = c0o1; + kyzFromfcNEQ[k] = c0o1; + kxzFromfcNEQ[k] = c0o1; + kxxMyyFromfcNEQ[k] = c0o1; + kxxMzzFromfcNEQ[k] = c0o1; if(geoD[k] == GEO_FLUID) { - vx1 = ((f_TNE-f_BSW)+(f_BSE-f_TNW)+(f_BNE-f_TSW)+(f_TSE-f_BNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2 = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3 = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSW-f_BNE)+(f_TSE-f_BNW)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); - kxyFromfcNEQ[k] = -c3o1 *(f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE-(vx1*vx2)); - kyzFromfcNEQ[k] = -c3o1 *(f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW-(vx2*vx3)); - kxzFromfcNEQ[k] = -c3o1 *(f_BW+f_BSW+f_BNW-f_TW-f_TSW-f_TNW-f_BE-f_BSE-f_BNE+f_TE+f_TSE+f_TNE-(vx1*vx3)); - kxxMyyFromfcNEQ[k] = -c3o2 * (f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE-(vx1*vx1-vx2*vx2)); //all dP00+dM00 minus all d0P0+d0M0 (no combinations of xy left) - kxxMzzFromfcNEQ[k] = -c3o2 * (f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE-(vx1*vx1-vx3*vx3)); //all dP00+dM00 minus all d00P+d00M (no combinations of xz left) + vx1 = ((f_TNE-f_BSW)+(f_BSE-f_TNW)+(f_BNE-f_TSW)+(f_TSE-f_BNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); + vx2 = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3 = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSW-f_BNE)+(f_TSE-f_BNW)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + kxyFromfcNEQ[k] = -c3o1 *(f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE-(vx1*vx2)); + kyzFromfcNEQ[k] = -c3o1 *(f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW-(vx2*vx3)); + kxzFromfcNEQ[k] = -c3o1 *(f_BW+f_BSW+f_BNW-f_TW-f_TSW-f_TNW-f_BE-f_BSE-f_BNE+f_TE+f_TSE+f_TNE-(vx1*vx3)); + kxxMyyFromfcNEQ[k] = -c3o2 * (f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE-(vx1*vx1-vx2*vx2)); //all dP00+dM00 minus all d0P0+d0M0 (no combinations of xy left) + kxxMzzFromfcNEQ[k] = -c3o2 * (f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE-(vx1*vx1-vx3*vx3)); //all dP00+dM00 minus all d00P+d00M (no combinations of xz left) } } } @@ -207,17 +207,17 @@ __global__ void LBCalc2ndMomentsIncompSP27( real* kxyFromfcNEQ, //////////////////////////////////////////////////////////////////////////////// __global__ void LBCalc2ndMomentsCompSP27(real* kxyFromfcNEQ, - real* kyzFromfcNEQ, - real* kxzFromfcNEQ, - real* kxxMyyFromfcNEQ, - real* kxxMzzFromfcNEQ, - unsigned int* geoD, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned long long numberOfLBnodes, - real* DD, - bool isEvenTimestep) + real* kyzFromfcNEQ, + real* kxzFromfcNEQ, + real* kxxMyyFromfcNEQ, + real* kxxMzzFromfcNEQ, + unsigned int* geoD, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned long long numberOfLBnodes, + real* DD, + bool isEvenTimestep) { Distributions27 D; if (isEvenTimestep==true) @@ -325,56 +325,56 @@ __global__ void LBCalc2ndMomentsCompSP27(real* kxyFromfcNEQ, ////////////////////////////////////////////////////////////////////////// real f_ZERO; real f_E,f_W,f_N,f_S,f_T,f_B,f_NE,f_SW,f_SE,f_NW,f_TE,f_BW,f_BE,f_TW,f_TN,f_BS,f_BN,f_TS,f_TNE, f_TSW, f_TSE, f_TNW, f_BNE, f_BSW, f_BSE, f_BNW; - f_E = (D.f[dP00])[ke ]; - f_W = (D.f[dM00])[kw ]; - f_N = (D.f[d0P0])[kn ]; - f_S = (D.f[d0M0])[ks ]; - f_T = (D.f[d00P])[kt ]; - f_B = (D.f[d00M])[kb ]; - f_NE = (D.f[dPP0])[kne ]; - f_SW = (D.f[dMM0])[ksw ]; - f_SE = (D.f[dPM0])[kse ]; - f_NW = (D.f[dMP0])[knw ]; - f_TE = (D.f[dP0P])[kte ]; - f_BW = (D.f[dM0M])[kbw ]; - f_BE = (D.f[dP0M])[kbe ]; - f_TW = (D.f[dM0P])[ktw ]; - f_TN = (D.f[d0PP])[ktn ]; - f_BS = (D.f[d0MM])[kbs ]; - f_BN = (D.f[d0PM])[kbn ]; - f_TS = (D.f[d0MP])[kts ]; - f_ZERO = (D.f[d000])[kzero]; - f_TNE = (D.f[dPPP])[ktne ]; - f_TSW = (D.f[dMMP])[ktsw ]; - f_TSE = (D.f[dPMP])[ktse ]; - f_TNW = (D.f[dMPP])[ktnw ]; - f_BNE = (D.f[dPPM])[kbne ]; - f_BSW = (D.f[dMMM])[kbsw ]; - f_BSE = (D.f[dPMM])[kbse ]; - f_BNW = (D.f[dMPM])[kbnw ]; + f_E = (D.f[dP00])[ke ]; + f_W = (D.f[dM00])[kw ]; + f_N = (D.f[d0P0])[kn ]; + f_S = (D.f[d0M0])[ks ]; + f_T = (D.f[d00P])[kt ]; + f_B = (D.f[d00M])[kb ]; + f_NE = (D.f[dPP0])[kne ]; + f_SW = (D.f[dMM0])[ksw ]; + f_SE = (D.f[dPM0])[kse ]; + f_NW = (D.f[dMP0])[knw ]; + f_TE = (D.f[dP0P])[kte ]; + f_BW = (D.f[dM0M])[kbw ]; + f_BE = (D.f[dP0M])[kbe ]; + f_TW = (D.f[dM0P])[ktw ]; + f_TN = (D.f[d0PP])[ktn ]; + f_BS = (D.f[d0MM])[kbs ]; + f_BN = (D.f[d0PM])[kbn ]; + f_TS = (D.f[d0MP])[kts ]; + f_ZERO = (D.f[d000])[kzero]; + f_TNE = (D.f[dPPP])[ktne ]; + f_TSW = (D.f[dMMP])[ktsw ]; + f_TSE = (D.f[dPMP])[ktse ]; + f_TNW = (D.f[dMPP])[ktnw ]; + f_BNE = (D.f[dPPM])[kbne ]; + f_BSW = (D.f[dMMM])[kbsw ]; + f_BSE = (D.f[dPMM])[kbse ]; + f_BNW = (D.f[dMPM])[kbnw ]; ////////////////////////////////////////////////////////////////////////// - real drho; - real vx1, vx2, vx3, rho; + real drho; + real vx1, vx2, vx3, rho; kxyFromfcNEQ[k] = c0o1; - kyzFromfcNEQ[k] = c0o1; - kxzFromfcNEQ[k] = c0o1; - kxxMyyFromfcNEQ[k] = c0o1; - kxxMzzFromfcNEQ[k] = c0o1; + kyzFromfcNEQ[k] = c0o1; + kxzFromfcNEQ[k] = c0o1; + kxxMyyFromfcNEQ[k] = c0o1; + kxxMzzFromfcNEQ[k] = c0o1; if(geoD[k] == GEO_FLUID) { drho = ((f_TNE+f_BSW)+(f_BSE+f_TNW)+(f_BNE+f_TSW)+(f_TSE+f_BNW)) + - ((f_NE+f_SW)+(f_TE+f_BW)+(f_SE+f_NW)+(f_BE+f_TW)+(f_BN+f_TS)+(f_TN+f_BS)) + - ((f_E-f_W) + (f_N-f_S) + (f_T-f_B)) + f_ZERO; - rho = drho + c1o1; - vx1 = ((f_TNE-f_BSW)+(f_BSE-f_TNW)+(f_BNE-f_TSW)+(f_TSE-f_BNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W) / rho; - vx2 = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S) / rho; - vx3 = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSW-f_BNE)+(f_TSE-f_BNW)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B) / rho; - kxyFromfcNEQ[k] = -c3o1 *(f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE-(vx1*vx2)); - kyzFromfcNEQ[k] = -c3o1 *(f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW-(vx2*vx3)); - kxzFromfcNEQ[k] = -c3o1 *(f_BW+f_BSW+f_BNW-f_TW-f_TSW-f_TNW-f_BE-f_BSE-f_BNE+f_TE+f_TSE+f_TNE-(vx1*vx3)); - kxxMyyFromfcNEQ[k] = -c3o2 * (f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE-(vx1*vx1-vx2*vx2)); //all dP00+dM00 minus all d0P0+d0M0 (no combinations of xy left) - kxxMzzFromfcNEQ[k] = -c3o2 * (f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE-(vx1*vx1-vx3*vx3)); //all dP00+dM00 minus all d00P+d00M (no combinations of xz left) + ((f_NE+f_SW)+(f_TE+f_BW)+(f_SE+f_NW)+(f_BE+f_TW)+(f_BN+f_TS)+(f_TN+f_BS)) + + ((f_E-f_W) + (f_N-f_S) + (f_T-f_B)) + f_ZERO; + rho = drho + c1o1; + vx1 = ((f_TNE-f_BSW)+(f_BSE-f_TNW)+(f_BNE-f_TSW)+(f_TSE-f_BNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W) / rho; + vx2 = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S) / rho; + vx3 = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSW-f_BNE)+(f_TSE-f_BNW)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B) / rho; + kxyFromfcNEQ[k] = -c3o1 *(f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE-(vx1*vx2)); + kyzFromfcNEQ[k] = -c3o1 *(f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW-(vx2*vx3)); + kxzFromfcNEQ[k] = -c3o1 *(f_BW+f_BSW+f_BNW-f_TW-f_TSW-f_TNW-f_BE-f_BSE-f_BNE+f_TE+f_TSE+f_TNE-(vx1*vx3)); + kxxMyyFromfcNEQ[k] = -c3o2 * (f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE-(vx1*vx1-vx2*vx2)); //all dP00+dM00 minus all d0P0+d0M0 (no combinations of xy left) + kxxMzzFromfcNEQ[k] = -c3o2 * (f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE-(vx1*vx1-vx3*vx3)); //all dP00+dM00 minus all d00P+d00M (no combinations of xz left) } } } @@ -412,405 +412,405 @@ __global__ void LBCalc2ndMomentsCompSP27(real* kxyFromfcNEQ, //////////////////////////////////////////////////////////////////////////////// __global__ void LBCalc3rdMomentsIncompSP27( real* CUMbbb, - real* CUMabc, - real* CUMbac, - real* CUMbca, - real* CUMcba, - real* CUMacb, - real* CUMcab, - unsigned int* bcMatD, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - real* DDStart, - unsigned long long numberOfLBnodes, - bool EvenOrOdd) + real* CUMabc, + real* CUMbac, + real* CUMbca, + real* CUMcba, + real* CUMacb, + real* CUMcab, + unsigned int* bcMatD, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + real* DDStart, + unsigned long long numberOfLBnodes, + bool EvenOrOdd) { - //////////////////////////////////////////////////////////////////////////////// - const unsigned x = threadIdx.x; // Globaler x-Index - const unsigned y = blockIdx.x; // Globaler y-Index - const unsigned z = blockIdx.y; // Globaler z-Index - - const unsigned nx = blockDim.x; - const unsigned ny = gridDim.x; - - const unsigned k = nx*(ny*z + y) + x; - ////////////////////////////////////////////////////////////////////////// - - if(k<numberOfLBnodes) - { - //////////////////////////////////////////////////////////////////////////////// - unsigned int BC; - BC = bcMatD[k]; - - if( (BC != GEO_SOLID) && (BC != GEO_VOID) ) - { - Distributions27 D; - if (EvenOrOdd==true) - { - D.f[dP00] = &DDStart[dP00 * numberOfLBnodes]; - D.f[dM00] = &DDStart[dM00 * numberOfLBnodes]; - D.f[d0P0] = &DDStart[d0P0 * numberOfLBnodes]; - D.f[d0M0] = &DDStart[d0M0 * numberOfLBnodes]; - D.f[d00P] = &DDStart[d00P * numberOfLBnodes]; - D.f[d00M] = &DDStart[d00M * numberOfLBnodes]; - D.f[dPP0] = &DDStart[dPP0 * numberOfLBnodes]; - D.f[dMM0] = &DDStart[dMM0 * numberOfLBnodes]; - D.f[dPM0] = &DDStart[dPM0 * numberOfLBnodes]; - D.f[dMP0] = &DDStart[dMP0 * numberOfLBnodes]; - D.f[dP0P] = &DDStart[dP0P * numberOfLBnodes]; - D.f[dM0M] = &DDStart[dM0M * numberOfLBnodes]; - D.f[dP0M] = &DDStart[dP0M * numberOfLBnodes]; - D.f[dM0P] = &DDStart[dM0P * numberOfLBnodes]; - D.f[d0PP] = &DDStart[d0PP * numberOfLBnodes]; - D.f[d0MM] = &DDStart[d0MM * numberOfLBnodes]; - D.f[d0PM] = &DDStart[d0PM * numberOfLBnodes]; - D.f[d0MP] = &DDStart[d0MP * numberOfLBnodes]; - D.f[d000] = &DDStart[d000 * numberOfLBnodes]; - D.f[dPPP] = &DDStart[dPPP * numberOfLBnodes]; - D.f[dMMP] = &DDStart[dMMP * numberOfLBnodes]; - D.f[dPMP] = &DDStart[dPMP * numberOfLBnodes]; - D.f[dMPP] = &DDStart[dMPP * numberOfLBnodes]; - D.f[dPPM] = &DDStart[dPPM * numberOfLBnodes]; - D.f[dMMM] = &DDStart[dMMM * numberOfLBnodes]; - D.f[dPMM] = &DDStart[dPMM * numberOfLBnodes]; - D.f[dMPM] = &DDStart[dMPM * numberOfLBnodes]; - } - else - { - D.f[dM00] = &DDStart[dP00 * numberOfLBnodes]; - D.f[dP00] = &DDStart[dM00 * numberOfLBnodes]; - D.f[d0M0] = &DDStart[d0P0 * numberOfLBnodes]; - D.f[d0P0] = &DDStart[d0M0 * numberOfLBnodes]; - D.f[d00M] = &DDStart[d00P * numberOfLBnodes]; - D.f[d00P] = &DDStart[d00M * numberOfLBnodes]; - D.f[dMM0] = &DDStart[dPP0 * numberOfLBnodes]; - D.f[dPP0] = &DDStart[dMM0 * numberOfLBnodes]; - D.f[dMP0] = &DDStart[dPM0 * numberOfLBnodes]; - D.f[dPM0] = &DDStart[dMP0 * numberOfLBnodes]; - D.f[dM0M] = &DDStart[dP0P * numberOfLBnodes]; - D.f[dP0P] = &DDStart[dM0M * numberOfLBnodes]; - D.f[dM0P] = &DDStart[dP0M * numberOfLBnodes]; - D.f[dP0M] = &DDStart[dM0P * numberOfLBnodes]; - D.f[d0MM] = &DDStart[d0PP * numberOfLBnodes]; - D.f[d0PP] = &DDStart[d0MM * numberOfLBnodes]; - D.f[d0MP] = &DDStart[d0PM * numberOfLBnodes]; - D.f[d0PM] = &DDStart[d0MP * numberOfLBnodes]; - D.f[d000] = &DDStart[d000 * numberOfLBnodes]; - D.f[dMMM] = &DDStart[dPPP * numberOfLBnodes]; - D.f[dPPM] = &DDStart[dMMP * numberOfLBnodes]; - D.f[dMPM] = &DDStart[dPMP * numberOfLBnodes]; - D.f[dPMM] = &DDStart[dMPP * numberOfLBnodes]; - D.f[dMMP] = &DDStart[dPPM * numberOfLBnodes]; - D.f[dPPP] = &DDStart[dMMM * numberOfLBnodes]; - D.f[dMPP] = &DDStart[dPMM * numberOfLBnodes]; - D.f[dPMP] = &DDStart[dMPM * numberOfLBnodes]; - } - - //////////////////////////////////////////////////////////////////////////////// - //index - unsigned int kw = neighborX[k]; - unsigned int ks = neighborY[k]; - unsigned int kb = neighborZ[k]; - unsigned int ksw = neighborY[kw]; - unsigned int kbw = neighborZ[kw]; - unsigned int kbs = neighborZ[ks]; - unsigned int kbsw = neighborZ[ksw]; - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real mfcbb = (D.f[dP00])[k ]; - real mfabb = (D.f[dM00])[kw ]; - real mfbcb = (D.f[d0P0])[k ]; - real mfbab = (D.f[d0M0])[ks ]; - real mfbbc = (D.f[d00P])[k ]; - real mfbba = (D.f[d00M])[kb ]; - real mfccb = (D.f[dPP0])[k ]; - real mfaab = (D.f[dMM0])[ksw]; - real mfcab = (D.f[dPM0])[ks ]; - real mfacb = (D.f[dMP0])[kw ]; - real mfcbc = (D.f[dP0P])[k ]; - real mfaba = (D.f[dM0M])[kbw]; - real mfcba = (D.f[dP0M])[kb ]; - real mfabc = (D.f[dM0P])[kw ]; - real mfbcc = (D.f[d0PP])[k ]; - real mfbaa = (D.f[d0MM])[kbs]; - real mfbca = (D.f[d0PM])[kb ]; - real mfbac = (D.f[d0MP])[ks ]; - real mfbbb = (D.f[d000])[k ]; - real mfccc = (D.f[dPPP])[k ]; - real mfaac = (D.f[dMMP])[ksw]; - real mfcac = (D.f[dPMP])[ks ]; - real mfacc = (D.f[dMPP])[kw ]; - real mfcca = (D.f[dPPM])[kb ]; - real mfaaa = (D.f[dMMM])[kbsw]; - real mfcaa = (D.f[dPMM])[kbs]; - real mfaca = (D.f[dMPM])[kbw]; - //////////////////////////////////////////////////////////////////////////////////// - real vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + - (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + - (mfcbb-mfabb)); - real vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + - (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + - (mfbcb-mfbab)); - real vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + - (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + - (mfbbc-mfbba)); - //////////////////////////////////////////////////////////////////////////////////// - real oMdrho = c1o1 - (mfccc+mfaaa + mfaca+mfcac + mfacc+mfcaa + mfaac+mfcca + - mfbac+mfbca + mfbaa+mfbcc + mfabc+mfcba + mfaba+mfcbc + mfacb+mfcab + mfaab+mfccb + - mfabb+mfcbb + mfbab+mfbcb + mfbba+mfbbc + mfbbb); - //////////////////////////////////////////////////////////////////////////////////// - real m0, m1, m2; - real vx2; - real vy2; - real vz2; - vx2=vvx*vvx; - vy2=vvy*vvy; - vz2=vvz*vvz; - //////////////////////////////////////////////////////////////////////////////////// - //Hin - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m2 = mfaaa + mfaac; - m1 = mfaac - mfaaa; - m0 = m2 + mfaab; - mfaaa = m0; - m0 += c1o36 * oMdrho; - mfaab = m1 - m0 * vvz; - mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfabc; - m1 = mfabc - mfaba; - m0 = m2 + mfabb; - mfaba = m0; - m0 += c1o9 * oMdrho; - mfabb = m1 - m0 * vvz; - mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfacc; - m1 = mfacc - mfaca; - m0 = m2 + mfacb; - mfaca = m0; - m0 += c1o36 * oMdrho; - mfacb = m1 - m0 * vvz; - mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbac; - m1 = mfbac - mfbaa; - m0 = m2 + mfbab; - mfbaa = m0; - m0 += c1o9 * oMdrho; - mfbab = m1 - m0 * vvz; - mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbba + mfbbc; - m1 = mfbbc - mfbba; - m0 = m2 + mfbbb; - mfbba = m0; - m0 += c4o9 * oMdrho; - mfbbb = m1 - m0 * vvz; - mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbca + mfbcc; - m1 = mfbcc - mfbca; - m0 = m2 + mfbcb; - mfbca = m0; - m0 += c1o9 * oMdrho; - mfbcb = m1 - m0 * vvz; - mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcac; - m1 = mfcac - mfcaa; - m0 = m2 + mfcab; - mfcaa = m0; - m0 += c1o36 * oMdrho; - mfcab = m1 - m0 * vvz; - mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcba + mfcbc; - m1 = mfcbc - mfcba; - m0 = m2 + mfcbb; - mfcba = m0; - m0 += c1o9 * oMdrho; - mfcbb = m1 - m0 * vvz; - mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcca + mfccc; - m1 = mfccc - mfcca; - m0 = m2 + mfccb; - mfcca = m0; - m0 += c1o36 * oMdrho; - mfccb = m1 - m0 * vvz; - mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m2 = mfaaa + mfaca; - m1 = mfaca - mfaaa; - m0 = m2 + mfaba; - mfaaa = m0; - m0 += c1o6 * oMdrho; - mfaba = m1 - m0 * vvy; - mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfacb; - m1 = mfacb - mfaab; - m0 = m2 + mfabb; - mfaab = m0; - mfabb = m1 - m0 * vvy; - mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfacc; - m1 = mfacc - mfaac; - m0 = m2 + mfabc; - mfaac = m0; - m0 += c1o18 * oMdrho; - mfabc = m1 - m0 * vvy; - mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbca; - m1 = mfbca - mfbaa; - m0 = m2 + mfbba; - mfbaa = m0; - m0 += c2o3 * oMdrho; - mfbba = m1 - m0 * vvy; - mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbab + mfbcb; - m1 = mfbcb - mfbab; - m0 = m2 + mfbbb; - mfbab = m0; - mfbbb = m1 - m0 * vvy; - mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbac + mfbcc; - m1 = mfbcc - mfbac; - m0 = m2 + mfbbc; - mfbac = m0; - m0 += c2o9 * oMdrho; - mfbbc = m1 - m0 * vvy; - mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcca; - m1 = mfcca - mfcaa; - m0 = m2 + mfcba; - mfcaa = m0; - m0 += c1o6 * oMdrho; - mfcba = m1 - m0 * vvy; - mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcab + mfccb; - m1 = mfccb - mfcab; - m0 = m2 + mfcbb; - mfcab = m0; - mfcbb = m1 - m0 * vvy; - mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcac + mfccc; - m1 = mfccc - mfcac; - m0 = m2 + mfcbc; - mfcac = m0; - m0 += c1o18 * oMdrho; - mfcbc = m1 - m0 * vvy; - mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m2 = mfaaa + mfcaa; - m1 = mfcaa - mfaaa; - m0 = m2 + mfbaa; - mfaaa = m0; - m0 += c1o1* oMdrho; - mfbaa = m1 - m0 * vvx; - mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfcba; - m1 = mfcba - mfaba; - m0 = m2 + mfbba; - mfaba = m0; - mfbba = m1 - m0 * vvx; - mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfcca; - m1 = mfcca - mfaca; - m0 = m2 + mfbca; - mfaca = m0; - m0 += c1o3 * oMdrho; - mfbca = m1 - m0 * vvx; - mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfcab; - m1 = mfcab - mfaab; - m0 = m2 + mfbab; - mfaab = m0; - mfbab = m1 - m0 * vvx; - mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabb + mfcbb; - m1 = mfcbb - mfabb; - m0 = m2 + mfbbb; - mfabb = m0; - mfbbb = m1 - m0 * vvx; - mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacb + mfccb; - m1 = mfccb - mfacb; - m0 = m2 + mfbcb; - mfacb = m0; - mfbcb = m1 - m0 * vvx; - mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfcac; - m1 = mfcac - mfaac; - m0 = m2 + mfbac; - mfaac = m0; - m0 += c1o3 * oMdrho; - mfbac = m1 - m0 * vvx; - mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabc + mfcbc; - m1 = mfcbc - mfabc; - m0 = m2 + mfbbc; - mfabc = m0; - mfbbc = m1 - m0 * vvx; - mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacc + mfccc; - m1 = mfccc - mfacc; - m0 = m2 + mfbcc; - mfacc = m0; - m0 += c1o9 * oMdrho; - mfbcc = m1 - m0 * vvx; - mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - - - //////////////////////////////////////////////////////////////////////////////////// - // Cumulants - //////////////////////////////////////////////////////////////////////////////////// - //3. - CUMbbb[k] = mfbbb; - CUMabc[k] = mfabc; - CUMbac[k] = mfbac; - CUMbca[k] = mfbca; - CUMcba[k] = mfcba; - CUMacb[k] = mfacb; - CUMcab[k] = mfcab; - //////////////////////////////////////////////////////////////////////////////////// - } - } + //////////////////////////////////////////////////////////////////////////////// + const unsigned x = threadIdx.x; // Globaler x-Index + const unsigned y = blockIdx.x; // Globaler y-Index + const unsigned z = blockIdx.y; // Globaler z-Index + + const unsigned nx = blockDim.x; + const unsigned ny = gridDim.x; + + const unsigned k = nx*(ny*z + y) + x; + ////////////////////////////////////////////////////////////////////////// + + if(k<numberOfLBnodes) + { + //////////////////////////////////////////////////////////////////////////////// + unsigned int BC; + BC = bcMatD[k]; + + if( (BC != GEO_SOLID) && (BC != GEO_VOID) ) + { + Distributions27 D; + if (EvenOrOdd==true) + { + D.f[dP00] = &DDStart[dP00 * numberOfLBnodes]; + D.f[dM00] = &DDStart[dM00 * numberOfLBnodes]; + D.f[d0P0] = &DDStart[d0P0 * numberOfLBnodes]; + D.f[d0M0] = &DDStart[d0M0 * numberOfLBnodes]; + D.f[d00P] = &DDStart[d00P * numberOfLBnodes]; + D.f[d00M] = &DDStart[d00M * numberOfLBnodes]; + D.f[dPP0] = &DDStart[dPP0 * numberOfLBnodes]; + D.f[dMM0] = &DDStart[dMM0 * numberOfLBnodes]; + D.f[dPM0] = &DDStart[dPM0 * numberOfLBnodes]; + D.f[dMP0] = &DDStart[dMP0 * numberOfLBnodes]; + D.f[dP0P] = &DDStart[dP0P * numberOfLBnodes]; + D.f[dM0M] = &DDStart[dM0M * numberOfLBnodes]; + D.f[dP0M] = &DDStart[dP0M * numberOfLBnodes]; + D.f[dM0P] = &DDStart[dM0P * numberOfLBnodes]; + D.f[d0PP] = &DDStart[d0PP * numberOfLBnodes]; + D.f[d0MM] = &DDStart[d0MM * numberOfLBnodes]; + D.f[d0PM] = &DDStart[d0PM * numberOfLBnodes]; + D.f[d0MP] = &DDStart[d0MP * numberOfLBnodes]; + D.f[d000] = &DDStart[d000 * numberOfLBnodes]; + D.f[dPPP] = &DDStart[dPPP * numberOfLBnodes]; + D.f[dMMP] = &DDStart[dMMP * numberOfLBnodes]; + D.f[dPMP] = &DDStart[dPMP * numberOfLBnodes]; + D.f[dMPP] = &DDStart[dMPP * numberOfLBnodes]; + D.f[dPPM] = &DDStart[dPPM * numberOfLBnodes]; + D.f[dMMM] = &DDStart[dMMM * numberOfLBnodes]; + D.f[dPMM] = &DDStart[dPMM * numberOfLBnodes]; + D.f[dMPM] = &DDStart[dMPM * numberOfLBnodes]; + } + else + { + D.f[dM00] = &DDStart[dP00 * numberOfLBnodes]; + D.f[dP00] = &DDStart[dM00 * numberOfLBnodes]; + D.f[d0M0] = &DDStart[d0P0 * numberOfLBnodes]; + D.f[d0P0] = &DDStart[d0M0 * numberOfLBnodes]; + D.f[d00M] = &DDStart[d00P * numberOfLBnodes]; + D.f[d00P] = &DDStart[d00M * numberOfLBnodes]; + D.f[dMM0] = &DDStart[dPP0 * numberOfLBnodes]; + D.f[dPP0] = &DDStart[dMM0 * numberOfLBnodes]; + D.f[dMP0] = &DDStart[dPM0 * numberOfLBnodes]; + D.f[dPM0] = &DDStart[dMP0 * numberOfLBnodes]; + D.f[dM0M] = &DDStart[dP0P * numberOfLBnodes]; + D.f[dP0P] = &DDStart[dM0M * numberOfLBnodes]; + D.f[dM0P] = &DDStart[dP0M * numberOfLBnodes]; + D.f[dP0M] = &DDStart[dM0P * numberOfLBnodes]; + D.f[d0MM] = &DDStart[d0PP * numberOfLBnodes]; + D.f[d0PP] = &DDStart[d0MM * numberOfLBnodes]; + D.f[d0MP] = &DDStart[d0PM * numberOfLBnodes]; + D.f[d0PM] = &DDStart[d0MP * numberOfLBnodes]; + D.f[d000] = &DDStart[d000 * numberOfLBnodes]; + D.f[dMMM] = &DDStart[dPPP * numberOfLBnodes]; + D.f[dPPM] = &DDStart[dMMP * numberOfLBnodes]; + D.f[dMPM] = &DDStart[dPMP * numberOfLBnodes]; + D.f[dPMM] = &DDStart[dMPP * numberOfLBnodes]; + D.f[dMMP] = &DDStart[dPPM * numberOfLBnodes]; + D.f[dPPP] = &DDStart[dMMM * numberOfLBnodes]; + D.f[dMPP] = &DDStart[dPMM * numberOfLBnodes]; + D.f[dPMP] = &DDStart[dMPM * numberOfLBnodes]; + } + + //////////////////////////////////////////////////////////////////////////////// + //index + unsigned int kw = neighborX[k]; + unsigned int ks = neighborY[k]; + unsigned int kb = neighborZ[k]; + unsigned int ksw = neighborY[kw]; + unsigned int kbw = neighborZ[kw]; + unsigned int kbs = neighborZ[ks]; + unsigned int kbsw = neighborZ[ksw]; + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + real mfcbb = (D.f[dP00])[k ]; + real mfabb = (D.f[dM00])[kw ]; + real mfbcb = (D.f[d0P0])[k ]; + real mfbab = (D.f[d0M0])[ks ]; + real mfbbc = (D.f[d00P])[k ]; + real mfbba = (D.f[d00M])[kb ]; + real mfccb = (D.f[dPP0])[k ]; + real mfaab = (D.f[dMM0])[ksw]; + real mfcab = (D.f[dPM0])[ks ]; + real mfacb = (D.f[dMP0])[kw ]; + real mfcbc = (D.f[dP0P])[k ]; + real mfaba = (D.f[dM0M])[kbw]; + real mfcba = (D.f[dP0M])[kb ]; + real mfabc = (D.f[dM0P])[kw ]; + real mfbcc = (D.f[d0PP])[k ]; + real mfbaa = (D.f[d0MM])[kbs]; + real mfbca = (D.f[d0PM])[kb ]; + real mfbac = (D.f[d0MP])[ks ]; + real mfbbb = (D.f[d000])[k ]; + real mfccc = (D.f[dPPP])[k ]; + real mfaac = (D.f[dMMP])[ksw]; + real mfcac = (D.f[dPMP])[ks ]; + real mfacc = (D.f[dMPP])[kw ]; + real mfcca = (D.f[dPPM])[kb ]; + real mfaaa = (D.f[dMMM])[kbsw]; + real mfcaa = (D.f[dPMM])[kbs]; + real mfaca = (D.f[dMPM])[kbw]; + //////////////////////////////////////////////////////////////////////////////////// + real vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + + (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + + (mfcbb-mfabb)); + real vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + + (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + + (mfbcb-mfbab)); + real vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + + (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + + (mfbbc-mfbba)); + //////////////////////////////////////////////////////////////////////////////////// + real oMdrho = c1o1 - (mfccc+mfaaa + mfaca+mfcac + mfacc+mfcaa + mfaac+mfcca + + mfbac+mfbca + mfbaa+mfbcc + mfabc+mfcba + mfaba+mfcbc + mfacb+mfcab + mfaab+mfccb + + mfabb+mfcbb + mfbab+mfbcb + mfbba+mfbbc + mfbbb); + //////////////////////////////////////////////////////////////////////////////////// + real m0, m1, m2; + real vx2; + real vy2; + real vz2; + vx2=vvx*vvx; + vy2=vvy*vvy; + vz2=vvz*vvz; + //////////////////////////////////////////////////////////////////////////////////// + //Hin + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m2 = mfaaa + mfaac; + m1 = mfaac - mfaaa; + m0 = m2 + mfaab; + mfaaa = m0; + m0 += c1o36 * oMdrho; + mfaab = m1 - m0 * vvz; + mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfabc; + m1 = mfabc - mfaba; + m0 = m2 + mfabb; + mfaba = m0; + m0 += c1o9 * oMdrho; + mfabb = m1 - m0 * vvz; + mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfacc; + m1 = mfacc - mfaca; + m0 = m2 + mfacb; + mfaca = m0; + m0 += c1o36 * oMdrho; + mfacb = m1 - m0 * vvz; + mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbac; + m1 = mfbac - mfbaa; + m0 = m2 + mfbab; + mfbaa = m0; + m0 += c1o9 * oMdrho; + mfbab = m1 - m0 * vvz; + mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbba + mfbbc; + m1 = mfbbc - mfbba; + m0 = m2 + mfbbb; + mfbba = m0; + m0 += c4o9 * oMdrho; + mfbbb = m1 - m0 * vvz; + mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbca + mfbcc; + m1 = mfbcc - mfbca; + m0 = m2 + mfbcb; + mfbca = m0; + m0 += c1o9 * oMdrho; + mfbcb = m1 - m0 * vvz; + mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcac; + m1 = mfcac - mfcaa; + m0 = m2 + mfcab; + mfcaa = m0; + m0 += c1o36 * oMdrho; + mfcab = m1 - m0 * vvz; + mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcba + mfcbc; + m1 = mfcbc - mfcba; + m0 = m2 + mfcbb; + mfcba = m0; + m0 += c1o9 * oMdrho; + mfcbb = m1 - m0 * vvz; + mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcca + mfccc; + m1 = mfccc - mfcca; + m0 = m2 + mfccb; + mfcca = m0; + m0 += c1o36 * oMdrho; + mfccb = m1 - m0 * vvz; + mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m2 = mfaaa + mfaca; + m1 = mfaca - mfaaa; + m0 = m2 + mfaba; + mfaaa = m0; + m0 += c1o6 * oMdrho; + mfaba = m1 - m0 * vvy; + mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfacb; + m1 = mfacb - mfaab; + m0 = m2 + mfabb; + mfaab = m0; + mfabb = m1 - m0 * vvy; + mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfacc; + m1 = mfacc - mfaac; + m0 = m2 + mfabc; + mfaac = m0; + m0 += c1o18 * oMdrho; + mfabc = m1 - m0 * vvy; + mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbca; + m1 = mfbca - mfbaa; + m0 = m2 + mfbba; + mfbaa = m0; + m0 += c2o3 * oMdrho; + mfbba = m1 - m0 * vvy; + mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbab + mfbcb; + m1 = mfbcb - mfbab; + m0 = m2 + mfbbb; + mfbab = m0; + mfbbb = m1 - m0 * vvy; + mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbac + mfbcc; + m1 = mfbcc - mfbac; + m0 = m2 + mfbbc; + mfbac = m0; + m0 += c2o9 * oMdrho; + mfbbc = m1 - m0 * vvy; + mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcca; + m1 = mfcca - mfcaa; + m0 = m2 + mfcba; + mfcaa = m0; + m0 += c1o6 * oMdrho; + mfcba = m1 - m0 * vvy; + mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcab + mfccb; + m1 = mfccb - mfcab; + m0 = m2 + mfcbb; + mfcab = m0; + mfcbb = m1 - m0 * vvy; + mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcac + mfccc; + m1 = mfccc - mfcac; + m0 = m2 + mfcbc; + mfcac = m0; + m0 += c1o18 * oMdrho; + mfcbc = m1 - m0 * vvy; + mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m2 = mfaaa + mfcaa; + m1 = mfcaa - mfaaa; + m0 = m2 + mfbaa; + mfaaa = m0; + m0 += c1o1* oMdrho; + mfbaa = m1 - m0 * vvx; + mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfcba; + m1 = mfcba - mfaba; + m0 = m2 + mfbba; + mfaba = m0; + mfbba = m1 - m0 * vvx; + mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfcca; + m1 = mfcca - mfaca; + m0 = m2 + mfbca; + mfaca = m0; + m0 += c1o3 * oMdrho; + mfbca = m1 - m0 * vvx; + mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfcab; + m1 = mfcab - mfaab; + m0 = m2 + mfbab; + mfaab = m0; + mfbab = m1 - m0 * vvx; + mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabb + mfcbb; + m1 = mfcbb - mfabb; + m0 = m2 + mfbbb; + mfabb = m0; + mfbbb = m1 - m0 * vvx; + mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacb + mfccb; + m1 = mfccb - mfacb; + m0 = m2 + mfbcb; + mfacb = m0; + mfbcb = m1 - m0 * vvx; + mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfcac; + m1 = mfcac - mfaac; + m0 = m2 + mfbac; + mfaac = m0; + m0 += c1o3 * oMdrho; + mfbac = m1 - m0 * vvx; + mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabc + mfcbc; + m1 = mfcbc - mfabc; + m0 = m2 + mfbbc; + mfabc = m0; + mfbbc = m1 - m0 * vvx; + mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacc + mfccc; + m1 = mfccc - mfacc; + m0 = m2 + mfbcc; + mfacc = m0; + m0 += c1o9 * oMdrho; + mfbcc = m1 - m0 * vvx; + mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + + + //////////////////////////////////////////////////////////////////////////////////// + // Cumulants + //////////////////////////////////////////////////////////////////////////////////// + //3. + CUMbbb[k] = mfbbb; + CUMabc[k] = mfabc; + CUMbac[k] = mfbac; + CUMbca[k] = mfbca; + CUMcba[k] = mfcba; + CUMacb[k] = mfacb; + CUMcab[k] = mfcab; + //////////////////////////////////////////////////////////////////////////////////// + } + } } //////////////////////////////////////////////////////////////////////////////// @@ -846,409 +846,409 @@ __global__ void LBCalc3rdMomentsIncompSP27( real* CUMbbb, //////////////////////////////////////////////////////////////////////////////// __global__ void LBCalc3rdMomentsCompSP27(real* CUMbbb, - real* CUMabc, - real* CUMbac, - real* CUMbca, - real* CUMcba, - real* CUMacb, - real* CUMcab, - unsigned int* bcMatD, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - real* DDStart, - unsigned long long numberOfLBnodes, - bool EvenOrOdd) + real* CUMabc, + real* CUMbac, + real* CUMbca, + real* CUMcba, + real* CUMacb, + real* CUMcab, + unsigned int* bcMatD, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + real* DDStart, + unsigned long long numberOfLBnodes, + bool EvenOrOdd) { - //////////////////////////////////////////////////////////////////////////////// - const unsigned x = threadIdx.x; // Globaler x-Index - const unsigned y = blockIdx.x; // Globaler y-Index - const unsigned z = blockIdx.y; // Globaler z-Index - - const unsigned nx = blockDim.x; - const unsigned ny = gridDim.x; - - const unsigned k = nx*(ny*z + y) + x; - ////////////////////////////////////////////////////////////////////////// - - if(k<numberOfLBnodes) - { - //////////////////////////////////////////////////////////////////////////////// - unsigned int BC; - BC = bcMatD[k]; - - if( (BC != GEO_SOLID) && (BC != GEO_VOID) ) - { - Distributions27 D; - if (EvenOrOdd==true) - { - D.f[dP00] = &DDStart[dP00 * numberOfLBnodes]; - D.f[dM00] = &DDStart[dM00 * numberOfLBnodes]; - D.f[d0P0] = &DDStart[d0P0 * numberOfLBnodes]; - D.f[d0M0] = &DDStart[d0M0 * numberOfLBnodes]; - D.f[d00P] = &DDStart[d00P * numberOfLBnodes]; - D.f[d00M] = &DDStart[d00M * numberOfLBnodes]; - D.f[dPP0] = &DDStart[dPP0 * numberOfLBnodes]; - D.f[dMM0] = &DDStart[dMM0 * numberOfLBnodes]; - D.f[dPM0] = &DDStart[dPM0 * numberOfLBnodes]; - D.f[dMP0] = &DDStart[dMP0 * numberOfLBnodes]; - D.f[dP0P] = &DDStart[dP0P * numberOfLBnodes]; - D.f[dM0M] = &DDStart[dM0M * numberOfLBnodes]; - D.f[dP0M] = &DDStart[dP0M * numberOfLBnodes]; - D.f[dM0P] = &DDStart[dM0P * numberOfLBnodes]; - D.f[d0PP] = &DDStart[d0PP * numberOfLBnodes]; - D.f[d0MM] = &DDStart[d0MM * numberOfLBnodes]; - D.f[d0PM] = &DDStart[d0PM * numberOfLBnodes]; - D.f[d0MP] = &DDStart[d0MP * numberOfLBnodes]; - D.f[d000] = &DDStart[d000 * numberOfLBnodes]; - D.f[dPPP] = &DDStart[dPPP * numberOfLBnodes]; - D.f[dMMP] = &DDStart[dMMP * numberOfLBnodes]; - D.f[dPMP] = &DDStart[dPMP * numberOfLBnodes]; - D.f[dMPP] = &DDStart[dMPP * numberOfLBnodes]; - D.f[dPPM] = &DDStart[dPPM * numberOfLBnodes]; - D.f[dMMM] = &DDStart[dMMM * numberOfLBnodes]; - D.f[dPMM] = &DDStart[dPMM * numberOfLBnodes]; - D.f[dMPM] = &DDStart[dMPM * numberOfLBnodes]; - } - else - { - D.f[dM00] = &DDStart[dP00 * numberOfLBnodes]; - D.f[dP00] = &DDStart[dM00 * numberOfLBnodes]; - D.f[d0M0] = &DDStart[d0P0 * numberOfLBnodes]; - D.f[d0P0] = &DDStart[d0M0 * numberOfLBnodes]; - D.f[d00M] = &DDStart[d00P * numberOfLBnodes]; - D.f[d00P] = &DDStart[d00M * numberOfLBnodes]; - D.f[dMM0] = &DDStart[dPP0 * numberOfLBnodes]; - D.f[dPP0] = &DDStart[dMM0 * numberOfLBnodes]; - D.f[dMP0] = &DDStart[dPM0 * numberOfLBnodes]; - D.f[dPM0] = &DDStart[dMP0 * numberOfLBnodes]; - D.f[dM0M] = &DDStart[dP0P * numberOfLBnodes]; - D.f[dP0P] = &DDStart[dM0M * numberOfLBnodes]; - D.f[dM0P] = &DDStart[dP0M * numberOfLBnodes]; - D.f[dP0M] = &DDStart[dM0P * numberOfLBnodes]; - D.f[d0MM] = &DDStart[d0PP * numberOfLBnodes]; - D.f[d0PP] = &DDStart[d0MM * numberOfLBnodes]; - D.f[d0MP] = &DDStart[d0PM * numberOfLBnodes]; - D.f[d0PM] = &DDStart[d0MP * numberOfLBnodes]; - D.f[d000] = &DDStart[d000 * numberOfLBnodes]; - D.f[dMMM] = &DDStart[dPPP * numberOfLBnodes]; - D.f[dPPM] = &DDStart[dMMP * numberOfLBnodes]; - D.f[dMPM] = &DDStart[dPMP * numberOfLBnodes]; - D.f[dPMM] = &DDStart[dMPP * numberOfLBnodes]; - D.f[dMMP] = &DDStart[dPPM * numberOfLBnodes]; - D.f[dPPP] = &DDStart[dMMM * numberOfLBnodes]; - D.f[dMPP] = &DDStart[dPMM * numberOfLBnodes]; - D.f[dPMP] = &DDStart[dMPM * numberOfLBnodes]; - } - - //////////////////////////////////////////////////////////////////////////////// - //index - unsigned int kw = neighborX[k]; - unsigned int ks = neighborY[k]; - unsigned int kb = neighborZ[k]; - unsigned int ksw = neighborY[kw]; - unsigned int kbw = neighborZ[kw]; - unsigned int kbs = neighborZ[ks]; - unsigned int kbsw = neighborZ[ksw]; - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real mfcbb = (D.f[dP00])[k ]; - real mfabb = (D.f[dM00])[kw ]; - real mfbcb = (D.f[d0P0])[k ]; - real mfbab = (D.f[d0M0])[ks ]; - real mfbbc = (D.f[d00P])[k ]; - real mfbba = (D.f[d00M])[kb ]; - real mfccb = (D.f[dPP0])[k ]; - real mfaab = (D.f[dMM0])[ksw]; - real mfcab = (D.f[dPM0])[ks ]; - real mfacb = (D.f[dMP0])[kw ]; - real mfcbc = (D.f[dP0P])[k ]; - real mfaba = (D.f[dM0M])[kbw]; - real mfcba = (D.f[dP0M])[kb ]; - real mfabc = (D.f[dM0P])[kw ]; - real mfbcc = (D.f[d0PP])[k ]; - real mfbaa = (D.f[d0MM])[kbs]; - real mfbca = (D.f[d0PM])[kb ]; - real mfbac = (D.f[d0MP])[ks ]; - real mfbbb = (D.f[d000])[k ]; - real mfccc = (D.f[dPPP])[k ]; - real mfaac = (D.f[dMMP])[ksw]; - real mfcac = (D.f[dPMP])[ks ]; - real mfacc = (D.f[dMPP])[kw ]; - real mfcca = (D.f[dPPM])[kb ]; - real mfaaa = (D.f[dMMM])[kbsw]; - real mfcaa = (D.f[dPMM])[kbs]; - real mfaca = (D.f[dMPM])[kbw]; - //////////////////////////////////////////////////////////////////////////////////// - real drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + - (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + - ((mfabb+mfcbb) + (mfbab+mfbcb)) + (mfbba+mfbbc)) + mfbbb; - - real rho = c1o1+drho; - //////////////////////////////////////////////////////////////////////////////////// - real vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + - (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + - (mfcbb-mfabb)) / rho; - real vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + - (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + - (mfbcb-mfbab)) / rho; - real vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + - (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + - (mfbbc-mfbba)) / rho; - //////////////////////////////////////////////////////////////////////////////////// - real oMdrho = c1o1; // comp special - //////////////////////////////////////////////////////////////////////////////////// - real m0, m1, m2; - real vx2; - real vy2; - real vz2; - vx2=vvx*vvx; - vy2=vvy*vvy; - vz2=vvz*vvz; - //////////////////////////////////////////////////////////////////////////////////// - //Hin - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m2 = mfaaa + mfaac; - m1 = mfaac - mfaaa; - m0 = m2 + mfaab; - mfaaa = m0; - m0 += c1o36 * oMdrho; - mfaab = m1 - m0 * vvz; - mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfabc; - m1 = mfabc - mfaba; - m0 = m2 + mfabb; - mfaba = m0; - m0 += c1o9 * oMdrho; - mfabb = m1 - m0 * vvz; - mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfacc; - m1 = mfacc - mfaca; - m0 = m2 + mfacb; - mfaca = m0; - m0 += c1o36 * oMdrho; - mfacb = m1 - m0 * vvz; - mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbac; - m1 = mfbac - mfbaa; - m0 = m2 + mfbab; - mfbaa = m0; - m0 += c1o9 * oMdrho; - mfbab = m1 - m0 * vvz; - mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbba + mfbbc; - m1 = mfbbc - mfbba; - m0 = m2 + mfbbb; - mfbba = m0; - m0 += c4o9 * oMdrho; - mfbbb = m1 - m0 * vvz; - mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbca + mfbcc; - m1 = mfbcc - mfbca; - m0 = m2 + mfbcb; - mfbca = m0; - m0 += c1o9 * oMdrho; - mfbcb = m1 - m0 * vvz; - mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcac; - m1 = mfcac - mfcaa; - m0 = m2 + mfcab; - mfcaa = m0; - m0 += c1o36 * oMdrho; - mfcab = m1 - m0 * vvz; - mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcba + mfcbc; - m1 = mfcbc - mfcba; - m0 = m2 + mfcbb; - mfcba = m0; - m0 += c1o9 * oMdrho; - mfcbb = m1 - m0 * vvz; - mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcca + mfccc; - m1 = mfccc - mfcca; - m0 = m2 + mfccb; - mfcca = m0; - m0 += c1o36 * oMdrho; - mfccb = m1 - m0 * vvz; - mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m2 = mfaaa + mfaca; - m1 = mfaca - mfaaa; - m0 = m2 + mfaba; - mfaaa = m0; - m0 += c1o6 * oMdrho; - mfaba = m1 - m0 * vvy; - mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfacb; - m1 = mfacb - mfaab; - m0 = m2 + mfabb; - mfaab = m0; - mfabb = m1 - m0 * vvy; - mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfacc; - m1 = mfacc - mfaac; - m0 = m2 + mfabc; - mfaac = m0; - m0 += c1o18 * oMdrho; - mfabc = m1 - m0 * vvy; - mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbca; - m1 = mfbca - mfbaa; - m0 = m2 + mfbba; - mfbaa = m0; - m0 += c2o3 * oMdrho; - mfbba = m1 - m0 * vvy; - mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbab + mfbcb; - m1 = mfbcb - mfbab; - m0 = m2 + mfbbb; - mfbab = m0; - mfbbb = m1 - m0 * vvy; - mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbac + mfbcc; - m1 = mfbcc - mfbac; - m0 = m2 + mfbbc; - mfbac = m0; - m0 += c2o9 * oMdrho; - mfbbc = m1 - m0 * vvy; - mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcca; - m1 = mfcca - mfcaa; - m0 = m2 + mfcba; - mfcaa = m0; - m0 += c1o6 * oMdrho; - mfcba = m1 - m0 * vvy; - mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcab + mfccb; - m1 = mfccb - mfcab; - m0 = m2 + mfcbb; - mfcab = m0; - mfcbb = m1 - m0 * vvy; - mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcac + mfccc; - m1 = mfccc - mfcac; - m0 = m2 + mfcbc; - mfcac = m0; - m0 += c1o18 * oMdrho; - mfcbc = m1 - m0 * vvy; - mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m2 = mfaaa + mfcaa; - m1 = mfcaa - mfaaa; - m0 = m2 + mfbaa; - mfaaa = m0; - m0 += c1o1* oMdrho; - mfbaa = m1 - m0 * vvx; - mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfcba; - m1 = mfcba - mfaba; - m0 = m2 + mfbba; - mfaba = m0; - mfbba = m1 - m0 * vvx; - mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfcca; - m1 = mfcca - mfaca; - m0 = m2 + mfbca; - mfaca = m0; - m0 += c1o3 * oMdrho; - mfbca = m1 - m0 * vvx; - mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfcab; - m1 = mfcab - mfaab; - m0 = m2 + mfbab; - mfaab = m0; - mfbab = m1 - m0 * vvx; - mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabb + mfcbb; - m1 = mfcbb - mfabb; - m0 = m2 + mfbbb; - mfabb = m0; - mfbbb = m1 - m0 * vvx; - mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacb + mfccb; - m1 = mfccb - mfacb; - m0 = m2 + mfbcb; - mfacb = m0; - mfbcb = m1 - m0 * vvx; - mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfcac; - m1 = mfcac - mfaac; - m0 = m2 + mfbac; - mfaac = m0; - m0 += c1o3 * oMdrho; - mfbac = m1 - m0 * vvx; - mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabc + mfcbc; - m1 = mfcbc - mfabc; - m0 = m2 + mfbbc; - mfabc = m0; - mfbbc = m1 - m0 * vvx; - mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacc + mfccc; - m1 = mfccc - mfacc; - m0 = m2 + mfbcc; - mfacc = m0; - m0 += c1o9 * oMdrho; - mfbcc = m1 - m0 * vvx; - mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - - - //////////////////////////////////////////////////////////////////////////////////// - // Cumulants - //////////////////////////////////////////////////////////////////////////////////// - //3. - CUMbbb[k] = mfbbb; - CUMabc[k] = mfabc; - CUMbac[k] = mfbac; - CUMbca[k] = mfbca; - CUMcba[k] = mfcba; - CUMacb[k] = mfacb; - CUMcab[k] = mfcab; - //////////////////////////////////////////////////////////////////////////////////// - } - } + //////////////////////////////////////////////////////////////////////////////// + const unsigned x = threadIdx.x; // Globaler x-Index + const unsigned y = blockIdx.x; // Globaler y-Index + const unsigned z = blockIdx.y; // Globaler z-Index + + const unsigned nx = blockDim.x; + const unsigned ny = gridDim.x; + + const unsigned k = nx*(ny*z + y) + x; + ////////////////////////////////////////////////////////////////////////// + + if(k<numberOfLBnodes) + { + //////////////////////////////////////////////////////////////////////////////// + unsigned int BC; + BC = bcMatD[k]; + + if( (BC != GEO_SOLID) && (BC != GEO_VOID) ) + { + Distributions27 D; + if (EvenOrOdd==true) + { + D.f[dP00] = &DDStart[dP00 * numberOfLBnodes]; + D.f[dM00] = &DDStart[dM00 * numberOfLBnodes]; + D.f[d0P0] = &DDStart[d0P0 * numberOfLBnodes]; + D.f[d0M0] = &DDStart[d0M0 * numberOfLBnodes]; + D.f[d00P] = &DDStart[d00P * numberOfLBnodes]; + D.f[d00M] = &DDStart[d00M * numberOfLBnodes]; + D.f[dPP0] = &DDStart[dPP0 * numberOfLBnodes]; + D.f[dMM0] = &DDStart[dMM0 * numberOfLBnodes]; + D.f[dPM0] = &DDStart[dPM0 * numberOfLBnodes]; + D.f[dMP0] = &DDStart[dMP0 * numberOfLBnodes]; + D.f[dP0P] = &DDStart[dP0P * numberOfLBnodes]; + D.f[dM0M] = &DDStart[dM0M * numberOfLBnodes]; + D.f[dP0M] = &DDStart[dP0M * numberOfLBnodes]; + D.f[dM0P] = &DDStart[dM0P * numberOfLBnodes]; + D.f[d0PP] = &DDStart[d0PP * numberOfLBnodes]; + D.f[d0MM] = &DDStart[d0MM * numberOfLBnodes]; + D.f[d0PM] = &DDStart[d0PM * numberOfLBnodes]; + D.f[d0MP] = &DDStart[d0MP * numberOfLBnodes]; + D.f[d000] = &DDStart[d000 * numberOfLBnodes]; + D.f[dPPP] = &DDStart[dPPP * numberOfLBnodes]; + D.f[dMMP] = &DDStart[dMMP * numberOfLBnodes]; + D.f[dPMP] = &DDStart[dPMP * numberOfLBnodes]; + D.f[dMPP] = &DDStart[dMPP * numberOfLBnodes]; + D.f[dPPM] = &DDStart[dPPM * numberOfLBnodes]; + D.f[dMMM] = &DDStart[dMMM * numberOfLBnodes]; + D.f[dPMM] = &DDStart[dPMM * numberOfLBnodes]; + D.f[dMPM] = &DDStart[dMPM * numberOfLBnodes]; + } + else + { + D.f[dM00] = &DDStart[dP00 * numberOfLBnodes]; + D.f[dP00] = &DDStart[dM00 * numberOfLBnodes]; + D.f[d0M0] = &DDStart[d0P0 * numberOfLBnodes]; + D.f[d0P0] = &DDStart[d0M0 * numberOfLBnodes]; + D.f[d00M] = &DDStart[d00P * numberOfLBnodes]; + D.f[d00P] = &DDStart[d00M * numberOfLBnodes]; + D.f[dMM0] = &DDStart[dPP0 * numberOfLBnodes]; + D.f[dPP0] = &DDStart[dMM0 * numberOfLBnodes]; + D.f[dMP0] = &DDStart[dPM0 * numberOfLBnodes]; + D.f[dPM0] = &DDStart[dMP0 * numberOfLBnodes]; + D.f[dM0M] = &DDStart[dP0P * numberOfLBnodes]; + D.f[dP0P] = &DDStart[dM0M * numberOfLBnodes]; + D.f[dM0P] = &DDStart[dP0M * numberOfLBnodes]; + D.f[dP0M] = &DDStart[dM0P * numberOfLBnodes]; + D.f[d0MM] = &DDStart[d0PP * numberOfLBnodes]; + D.f[d0PP] = &DDStart[d0MM * numberOfLBnodes]; + D.f[d0MP] = &DDStart[d0PM * numberOfLBnodes]; + D.f[d0PM] = &DDStart[d0MP * numberOfLBnodes]; + D.f[d000] = &DDStart[d000 * numberOfLBnodes]; + D.f[dMMM] = &DDStart[dPPP * numberOfLBnodes]; + D.f[dPPM] = &DDStart[dMMP * numberOfLBnodes]; + D.f[dMPM] = &DDStart[dPMP * numberOfLBnodes]; + D.f[dPMM] = &DDStart[dMPP * numberOfLBnodes]; + D.f[dMMP] = &DDStart[dPPM * numberOfLBnodes]; + D.f[dPPP] = &DDStart[dMMM * numberOfLBnodes]; + D.f[dMPP] = &DDStart[dPMM * numberOfLBnodes]; + D.f[dPMP] = &DDStart[dMPM * numberOfLBnodes]; + } + + //////////////////////////////////////////////////////////////////////////////// + //index + unsigned int kw = neighborX[k]; + unsigned int ks = neighborY[k]; + unsigned int kb = neighborZ[k]; + unsigned int ksw = neighborY[kw]; + unsigned int kbw = neighborZ[kw]; + unsigned int kbs = neighborZ[ks]; + unsigned int kbsw = neighborZ[ksw]; + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + real mfcbb = (D.f[dP00])[k ]; + real mfabb = (D.f[dM00])[kw ]; + real mfbcb = (D.f[d0P0])[k ]; + real mfbab = (D.f[d0M0])[ks ]; + real mfbbc = (D.f[d00P])[k ]; + real mfbba = (D.f[d00M])[kb ]; + real mfccb = (D.f[dPP0])[k ]; + real mfaab = (D.f[dMM0])[ksw]; + real mfcab = (D.f[dPM0])[ks ]; + real mfacb = (D.f[dMP0])[kw ]; + real mfcbc = (D.f[dP0P])[k ]; + real mfaba = (D.f[dM0M])[kbw]; + real mfcba = (D.f[dP0M])[kb ]; + real mfabc = (D.f[dM0P])[kw ]; + real mfbcc = (D.f[d0PP])[k ]; + real mfbaa = (D.f[d0MM])[kbs]; + real mfbca = (D.f[d0PM])[kb ]; + real mfbac = (D.f[d0MP])[ks ]; + real mfbbb = (D.f[d000])[k ]; + real mfccc = (D.f[dPPP])[k ]; + real mfaac = (D.f[dMMP])[ksw]; + real mfcac = (D.f[dPMP])[ks ]; + real mfacc = (D.f[dMPP])[kw ]; + real mfcca = (D.f[dPPM])[kb ]; + real mfaaa = (D.f[dMMM])[kbsw]; + real mfcaa = (D.f[dPMM])[kbs]; + real mfaca = (D.f[dMPM])[kbw]; + //////////////////////////////////////////////////////////////////////////////////// + real drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + + (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + + ((mfabb+mfcbb) + (mfbab+mfbcb)) + (mfbba+mfbbc)) + mfbbb; + + real rho = c1o1+drho; + //////////////////////////////////////////////////////////////////////////////////// + real vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + + (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + + (mfcbb-mfabb)) / rho; + real vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + + (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + + (mfbcb-mfbab)) / rho; + real vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + + (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + + (mfbbc-mfbba)) / rho; + //////////////////////////////////////////////////////////////////////////////////// + real oMdrho = c1o1; // comp special + //////////////////////////////////////////////////////////////////////////////////// + real m0, m1, m2; + real vx2; + real vy2; + real vz2; + vx2=vvx*vvx; + vy2=vvy*vvy; + vz2=vvz*vvz; + //////////////////////////////////////////////////////////////////////////////////// + //Hin + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m2 = mfaaa + mfaac; + m1 = mfaac - mfaaa; + m0 = m2 + mfaab; + mfaaa = m0; + m0 += c1o36 * oMdrho; + mfaab = m1 - m0 * vvz; + mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfabc; + m1 = mfabc - mfaba; + m0 = m2 + mfabb; + mfaba = m0; + m0 += c1o9 * oMdrho; + mfabb = m1 - m0 * vvz; + mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfacc; + m1 = mfacc - mfaca; + m0 = m2 + mfacb; + mfaca = m0; + m0 += c1o36 * oMdrho; + mfacb = m1 - m0 * vvz; + mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbac; + m1 = mfbac - mfbaa; + m0 = m2 + mfbab; + mfbaa = m0; + m0 += c1o9 * oMdrho; + mfbab = m1 - m0 * vvz; + mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbba + mfbbc; + m1 = mfbbc - mfbba; + m0 = m2 + mfbbb; + mfbba = m0; + m0 += c4o9 * oMdrho; + mfbbb = m1 - m0 * vvz; + mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbca + mfbcc; + m1 = mfbcc - mfbca; + m0 = m2 + mfbcb; + mfbca = m0; + m0 += c1o9 * oMdrho; + mfbcb = m1 - m0 * vvz; + mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcac; + m1 = mfcac - mfcaa; + m0 = m2 + mfcab; + mfcaa = m0; + m0 += c1o36 * oMdrho; + mfcab = m1 - m0 * vvz; + mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcba + mfcbc; + m1 = mfcbc - mfcba; + m0 = m2 + mfcbb; + mfcba = m0; + m0 += c1o9 * oMdrho; + mfcbb = m1 - m0 * vvz; + mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcca + mfccc; + m1 = mfccc - mfcca; + m0 = m2 + mfccb; + mfcca = m0; + m0 += c1o36 * oMdrho; + mfccb = m1 - m0 * vvz; + mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m2 = mfaaa + mfaca; + m1 = mfaca - mfaaa; + m0 = m2 + mfaba; + mfaaa = m0; + m0 += c1o6 * oMdrho; + mfaba = m1 - m0 * vvy; + mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfacb; + m1 = mfacb - mfaab; + m0 = m2 + mfabb; + mfaab = m0; + mfabb = m1 - m0 * vvy; + mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfacc; + m1 = mfacc - mfaac; + m0 = m2 + mfabc; + mfaac = m0; + m0 += c1o18 * oMdrho; + mfabc = m1 - m0 * vvy; + mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbca; + m1 = mfbca - mfbaa; + m0 = m2 + mfbba; + mfbaa = m0; + m0 += c2o3 * oMdrho; + mfbba = m1 - m0 * vvy; + mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbab + mfbcb; + m1 = mfbcb - mfbab; + m0 = m2 + mfbbb; + mfbab = m0; + mfbbb = m1 - m0 * vvy; + mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbac + mfbcc; + m1 = mfbcc - mfbac; + m0 = m2 + mfbbc; + mfbac = m0; + m0 += c2o9 * oMdrho; + mfbbc = m1 - m0 * vvy; + mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcca; + m1 = mfcca - mfcaa; + m0 = m2 + mfcba; + mfcaa = m0; + m0 += c1o6 * oMdrho; + mfcba = m1 - m0 * vvy; + mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcab + mfccb; + m1 = mfccb - mfcab; + m0 = m2 + mfcbb; + mfcab = m0; + mfcbb = m1 - m0 * vvy; + mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcac + mfccc; + m1 = mfccc - mfcac; + m0 = m2 + mfcbc; + mfcac = m0; + m0 += c1o18 * oMdrho; + mfcbc = m1 - m0 * vvy; + mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m2 = mfaaa + mfcaa; + m1 = mfcaa - mfaaa; + m0 = m2 + mfbaa; + mfaaa = m0; + m0 += c1o1* oMdrho; + mfbaa = m1 - m0 * vvx; + mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfcba; + m1 = mfcba - mfaba; + m0 = m2 + mfbba; + mfaba = m0; + mfbba = m1 - m0 * vvx; + mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfcca; + m1 = mfcca - mfaca; + m0 = m2 + mfbca; + mfaca = m0; + m0 += c1o3 * oMdrho; + mfbca = m1 - m0 * vvx; + mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfcab; + m1 = mfcab - mfaab; + m0 = m2 + mfbab; + mfaab = m0; + mfbab = m1 - m0 * vvx; + mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabb + mfcbb; + m1 = mfcbb - mfabb; + m0 = m2 + mfbbb; + mfabb = m0; + mfbbb = m1 - m0 * vvx; + mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacb + mfccb; + m1 = mfccb - mfacb; + m0 = m2 + mfbcb; + mfacb = m0; + mfbcb = m1 - m0 * vvx; + mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfcac; + m1 = mfcac - mfaac; + m0 = m2 + mfbac; + mfaac = m0; + m0 += c1o3 * oMdrho; + mfbac = m1 - m0 * vvx; + mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabc + mfcbc; + m1 = mfcbc - mfabc; + m0 = m2 + mfbbc; + mfabc = m0; + mfbbc = m1 - m0 * vvx; + mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacc + mfccc; + m1 = mfccc - mfacc; + m0 = m2 + mfbcc; + mfacc = m0; + m0 += c1o9 * oMdrho; + mfbcc = m1 - m0 * vvx; + mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + + + //////////////////////////////////////////////////////////////////////////////////// + // Cumulants + //////////////////////////////////////////////////////////////////////////////////// + //3. + CUMbbb[k] = mfbbb; + CUMabc[k] = mfabc; + CUMbac[k] = mfbac; + CUMbca[k] = mfbca; + CUMcba[k] = mfcba; + CUMacb[k] = mfacb; + CUMcab[k] = mfcab; + //////////////////////////////////////////////////////////////////////////////////// + } + } } //////////////////////////////////////////////////////////////////////////////// @@ -1284,426 +1284,426 @@ __global__ void LBCalc3rdMomentsCompSP27(real* CUMbbb, //////////////////////////////////////////////////////////////////////////////// __global__ void LBCalcHigherMomentsIncompSP27( real* CUMcbb, - real* CUMbcb, - real* CUMbbc, - real* CUMcca, - real* CUMcac, - real* CUMacc, - real* CUMbcc, - real* CUMcbc, - real* CUMccb, - real* CUMccc, - unsigned int* bcMatD, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - real* DDStart, - unsigned long long numberOfLBnodes, - bool EvenOrOdd) + real* CUMbcb, + real* CUMbbc, + real* CUMcca, + real* CUMcac, + real* CUMacc, + real* CUMbcc, + real* CUMcbc, + real* CUMccb, + real* CUMccc, + unsigned int* bcMatD, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + real* DDStart, + unsigned long long numberOfLBnodes, + bool EvenOrOdd) { - //////////////////////////////////////////////////////////////////////////////// - const unsigned x = threadIdx.x; // Globaler x-Index - const unsigned y = blockIdx.x; // Globaler y-Index - const unsigned z = blockIdx.y; // Globaler z-Index - - const unsigned nx = blockDim.x; - const unsigned ny = gridDim.x; - - const unsigned k = nx*(ny*z + y) + x; - ////////////////////////////////////////////////////////////////////////// - - if(k<numberOfLBnodes) - { - //////////////////////////////////////////////////////////////////////////////// - unsigned int BC; - BC = bcMatD[k]; - - if( (BC != GEO_SOLID) && (BC != GEO_VOID) ) - { - Distributions27 D; - if (EvenOrOdd==true) - { - D.f[dP00] = &DDStart[dP00 * numberOfLBnodes]; - D.f[dM00] = &DDStart[dM00 * numberOfLBnodes]; - D.f[d0P0] = &DDStart[d0P0 * numberOfLBnodes]; - D.f[d0M0] = &DDStart[d0M0 * numberOfLBnodes]; - D.f[d00P] = &DDStart[d00P * numberOfLBnodes]; - D.f[d00M] = &DDStart[d00M * numberOfLBnodes]; - D.f[dPP0] = &DDStart[dPP0 * numberOfLBnodes]; - D.f[dMM0] = &DDStart[dMM0 * numberOfLBnodes]; - D.f[dPM0] = &DDStart[dPM0 * numberOfLBnodes]; - D.f[dMP0] = &DDStart[dMP0 * numberOfLBnodes]; - D.f[dP0P] = &DDStart[dP0P * numberOfLBnodes]; - D.f[dM0M] = &DDStart[dM0M * numberOfLBnodes]; - D.f[dP0M] = &DDStart[dP0M * numberOfLBnodes]; - D.f[dM0P] = &DDStart[dM0P * numberOfLBnodes]; - D.f[d0PP] = &DDStart[d0PP * numberOfLBnodes]; - D.f[d0MM] = &DDStart[d0MM * numberOfLBnodes]; - D.f[d0PM] = &DDStart[d0PM * numberOfLBnodes]; - D.f[d0MP] = &DDStart[d0MP * numberOfLBnodes]; - D.f[d000] = &DDStart[d000 * numberOfLBnodes]; - D.f[dPPP] = &DDStart[dPPP * numberOfLBnodes]; - D.f[dMMP] = &DDStart[dMMP * numberOfLBnodes]; - D.f[dPMP] = &DDStart[dPMP * numberOfLBnodes]; - D.f[dMPP] = &DDStart[dMPP * numberOfLBnodes]; - D.f[dPPM] = &DDStart[dPPM * numberOfLBnodes]; - D.f[dMMM] = &DDStart[dMMM * numberOfLBnodes]; - D.f[dPMM] = &DDStart[dPMM * numberOfLBnodes]; - D.f[dMPM] = &DDStart[dMPM * numberOfLBnodes]; - } - else - { - D.f[dM00] = &DDStart[dP00 * numberOfLBnodes]; - D.f[dP00] = &DDStart[dM00 * numberOfLBnodes]; - D.f[d0M0] = &DDStart[d0P0 * numberOfLBnodes]; - D.f[d0P0] = &DDStart[d0M0 * numberOfLBnodes]; - D.f[d00M] = &DDStart[d00P * numberOfLBnodes]; - D.f[d00P] = &DDStart[d00M * numberOfLBnodes]; - D.f[dMM0] = &DDStart[dPP0 * numberOfLBnodes]; - D.f[dPP0] = &DDStart[dMM0 * numberOfLBnodes]; - D.f[dMP0] = &DDStart[dPM0 * numberOfLBnodes]; - D.f[dPM0] = &DDStart[dMP0 * numberOfLBnodes]; - D.f[dM0M] = &DDStart[dP0P * numberOfLBnodes]; - D.f[dP0P] = &DDStart[dM0M * numberOfLBnodes]; - D.f[dM0P] = &DDStart[dP0M * numberOfLBnodes]; - D.f[dP0M] = &DDStart[dM0P * numberOfLBnodes]; - D.f[d0MM] = &DDStart[d0PP * numberOfLBnodes]; - D.f[d0PP] = &DDStart[d0MM * numberOfLBnodes]; - D.f[d0MP] = &DDStart[d0PM * numberOfLBnodes]; - D.f[d0PM] = &DDStart[d0MP * numberOfLBnodes]; - D.f[d000] = &DDStart[d000 * numberOfLBnodes]; - D.f[dMMM] = &DDStart[dPPP * numberOfLBnodes]; - D.f[dPPM] = &DDStart[dMMP * numberOfLBnodes]; - D.f[dMPM] = &DDStart[dPMP * numberOfLBnodes]; - D.f[dPMM] = &DDStart[dMPP * numberOfLBnodes]; - D.f[dMMP] = &DDStart[dPPM * numberOfLBnodes]; - D.f[dPPP] = &DDStart[dMMM * numberOfLBnodes]; - D.f[dMPP] = &DDStart[dPMM * numberOfLBnodes]; - D.f[dPMP] = &DDStart[dMPM * numberOfLBnodes]; - } - - //////////////////////////////////////////////////////////////////////////////// - //index - unsigned int kw = neighborX[k]; - unsigned int ks = neighborY[k]; - unsigned int kb = neighborZ[k]; - unsigned int ksw = neighborY[kw]; - unsigned int kbw = neighborZ[kw]; - unsigned int kbs = neighborZ[ks]; - unsigned int kbsw = neighborZ[ksw]; - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real mfcbb = (D.f[dP00])[k ]; - real mfabb = (D.f[dM00])[kw ]; - real mfbcb = (D.f[d0P0])[k ]; - real mfbab = (D.f[d0M0])[ks ]; - real mfbbc = (D.f[d00P])[k ]; - real mfbba = (D.f[d00M])[kb ]; - real mfccb = (D.f[dPP0])[k ]; - real mfaab = (D.f[dMM0])[ksw]; - real mfcab = (D.f[dPM0])[ks ]; - real mfacb = (D.f[dMP0])[kw ]; - real mfcbc = (D.f[dP0P])[k ]; - real mfaba = (D.f[dM0M])[kbw]; - real mfcba = (D.f[dP0M])[kb ]; - real mfabc = (D.f[dM0P])[kw ]; - real mfbcc = (D.f[d0PP])[k ]; - real mfbaa = (D.f[d0MM])[kbs]; - real mfbca = (D.f[d0PM])[kb ]; - real mfbac = (D.f[d0MP])[ks ]; - real mfbbb = (D.f[d000])[k ]; - real mfccc = (D.f[dPPP])[k ]; - real mfaac = (D.f[dMMP])[ksw]; - real mfcac = (D.f[dPMP])[ks ]; - real mfacc = (D.f[dMPP])[kw ]; - real mfcca = (D.f[dPPM])[kb ]; - real mfaaa = (D.f[dMMM])[kbsw]; - real mfcaa = (D.f[dPMM])[kbs]; - real mfaca = (D.f[dMPM])[kbw]; - //////////////////////////////////////////////////////////////////////////////////// - real vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + - (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + - (mfcbb-mfabb)); - real vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + - (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + - (mfbcb-mfbab)); - real vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + - (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + - (mfbbc-mfbba)); - //////////////////////////////////////////////////////////////////////////////////// - real oMdrho = c1o1 - (mfccc+mfaaa + mfaca+mfcac + mfacc+mfcaa + mfaac+mfcca + - mfbac+mfbca + mfbaa+mfbcc + mfabc+mfcba + mfaba+mfcbc + mfacb+mfcab + mfaab+mfccb + - mfabb+mfcbb + mfbab+mfbcb + mfbba+mfbbc + mfbbb); - //////////////////////////////////////////////////////////////////////////////////// - real m0, m1, m2; - real vx2; - real vy2; - real vz2; - vx2=vvx*vvx; - vy2=vvy*vvy; - vz2=vvz*vvz; - //////////////////////////////////////////////////////////////////////////////////// - //Hin - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m2 = mfaaa + mfaac; - m1 = mfaac - mfaaa; - m0 = m2 + mfaab; - mfaaa = m0; - m0 += c1o36 * oMdrho; - mfaab = m1 - m0 * vvz; - mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfabc; - m1 = mfabc - mfaba; - m0 = m2 + mfabb; - mfaba = m0; - m0 += c1o9 * oMdrho; - mfabb = m1 - m0 * vvz; - mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfacc; - m1 = mfacc - mfaca; - m0 = m2 + mfacb; - mfaca = m0; - m0 += c1o36 * oMdrho; - mfacb = m1 - m0 * vvz; - mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbac; - m1 = mfbac - mfbaa; - m0 = m2 + mfbab; - mfbaa = m0; - m0 += c1o9 * oMdrho; - mfbab = m1 - m0 * vvz; - mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbba + mfbbc; - m1 = mfbbc - mfbba; - m0 = m2 + mfbbb; - mfbba = m0; - m0 += c4o9 * oMdrho; - mfbbb = m1 - m0 * vvz; - mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbca + mfbcc; - m1 = mfbcc - mfbca; - m0 = m2 + mfbcb; - mfbca = m0; - m0 += c1o9 * oMdrho; - mfbcb = m1 - m0 * vvz; - mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcac; - m1 = mfcac - mfcaa; - m0 = m2 + mfcab; - mfcaa = m0; - m0 += c1o36 * oMdrho; - mfcab = m1 - m0 * vvz; - mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcba + mfcbc; - m1 = mfcbc - mfcba; - m0 = m2 + mfcbb; - mfcba = m0; - m0 += c1o9 * oMdrho; - mfcbb = m1 - m0 * vvz; - mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcca + mfccc; - m1 = mfccc - mfcca; - m0 = m2 + mfccb; - mfcca = m0; - m0 += c1o36 * oMdrho; - mfccb = m1 - m0 * vvz; - mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m2 = mfaaa + mfaca; - m1 = mfaca - mfaaa; - m0 = m2 + mfaba; - mfaaa = m0; - m0 += c1o6 * oMdrho; - mfaba = m1 - m0 * vvy; - mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfacb; - m1 = mfacb - mfaab; - m0 = m2 + mfabb; - mfaab = m0; - mfabb = m1 - m0 * vvy; - mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfacc; - m1 = mfacc - mfaac; - m0 = m2 + mfabc; - mfaac = m0; - m0 += c1o18 * oMdrho; - mfabc = m1 - m0 * vvy; - mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbca; - m1 = mfbca - mfbaa; - m0 = m2 + mfbba; - mfbaa = m0; - m0 += c2o3 * oMdrho; - mfbba = m1 - m0 * vvy; - mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbab + mfbcb; - m1 = mfbcb - mfbab; - m0 = m2 + mfbbb; - mfbab = m0; - mfbbb = m1 - m0 * vvy; - mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbac + mfbcc; - m1 = mfbcc - mfbac; - m0 = m2 + mfbbc; - mfbac = m0; - m0 += c2o9 * oMdrho; - mfbbc = m1 - m0 * vvy; - mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcca; - m1 = mfcca - mfcaa; - m0 = m2 + mfcba; - mfcaa = m0; - m0 += c1o6 * oMdrho; - mfcba = m1 - m0 * vvy; - mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcab + mfccb; - m1 = mfccb - mfcab; - m0 = m2 + mfcbb; - mfcab = m0; - mfcbb = m1 - m0 * vvy; - mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcac + mfccc; - m1 = mfccc - mfcac; - m0 = m2 + mfcbc; - mfcac = m0; - m0 += c1o18 * oMdrho; - mfcbc = m1 - m0 * vvy; - mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m2 = mfaaa + mfcaa; - m1 = mfcaa - mfaaa; - m0 = m2 + mfbaa; - mfaaa = m0; - m0 += c1o1* oMdrho; - mfbaa = m1 - m0 * vvx; - mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfcba; - m1 = mfcba - mfaba; - m0 = m2 + mfbba; - mfaba = m0; - mfbba = m1 - m0 * vvx; - mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfcca; - m1 = mfcca - mfaca; - m0 = m2 + mfbca; - mfaca = m0; - m0 += c1o3 * oMdrho; - mfbca = m1 - m0 * vvx; - mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfcab; - m1 = mfcab - mfaab; - m0 = m2 + mfbab; - mfaab = m0; - mfbab = m1 - m0 * vvx; - mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabb + mfcbb; - m1 = mfcbb - mfabb; - m0 = m2 + mfbbb; - mfabb = m0; - mfbbb = m1 - m0 * vvx; - mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacb + mfccb; - m1 = mfccb - mfacb; - m0 = m2 + mfbcb; - mfacb = m0; - mfbcb = m1 - m0 * vvx; - mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfcac; - m1 = mfcac - mfaac; - m0 = m2 + mfbac; - mfaac = m0; - m0 += c1o3 * oMdrho; - mfbac = m1 - m0 * vvx; - mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabc + mfcbc; - m1 = mfcbc - mfabc; - m0 = m2 + mfbbc; - mfabc = m0; - mfbbc = m1 - m0 * vvx; - mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacc + mfccc; - m1 = mfccc - mfacc; - m0 = m2 + mfbcc; - mfacc = m0; - m0 += c1o9 * oMdrho; - mfbcc = m1 - m0 * vvx; - mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - - - //////////////////////////////////////////////////////////////////////////////////// - // Cumulants - //////////////////////////////////////////////////////////////////////////////////// - //Cum 4. - CUMcbb[k] = mfcbb - ((mfcaa + c1o3 * oMdrho) * mfabb + c2o1 * mfbba * mfbab); - CUMbcb[k] = mfbcb - ((mfaca + c1o3 * oMdrho) * mfbab + c2o1 * mfbba * mfabb); - CUMbbc[k] = mfbbc - ((mfaac + c1o3 * oMdrho) * mfbba + c2o1 * mfbab * mfabb); - - CUMcca[k] = mfcca - ((mfcaa * mfaca + c2o1 * mfbba * mfbba) + c1o3 * (mfcaa + mfaca) * oMdrho + c1o9*(oMdrho-c1o1)*oMdrho); - CUMcac[k] = mfcac - ((mfcaa * mfaac + c2o1 * mfbab * mfbab) + c1o3 * (mfcaa + mfaac) * oMdrho + c1o9*(oMdrho-c1o1)*oMdrho); - CUMacc[k] = mfacc - ((mfaac * mfaca + c2o1 * mfabb * mfabb) + c1o3 * (mfaac + mfaca) * oMdrho + c1o9*(oMdrho-c1o1)*oMdrho); - - //Cum 5. - CUMbcc[k] = mfbcc - (mfaac * mfbca + mfaca * mfbac + c4o1 * mfabb * mfbbb + c2o1 * (mfbab * mfacb + mfbba * mfabc)) - c1o3 * (mfbca + mfbac) * oMdrho; - CUMcbc[k] = mfcbc - (mfaac * mfcba + mfcaa * mfabc + c4o1 * mfbab * mfbbb + c2o1 * (mfabb * mfcab + mfbba * mfbac)) - c1o3 * (mfcba + mfabc) * oMdrho; - CUMccb[k] = mfccb - (mfcaa * mfacb + mfaca * mfcab + c4o1 * mfbba * mfbbb + c2o1 * (mfbab * mfbca + mfabb * mfcba)) - c1o3 * (mfacb + mfcab) * oMdrho; - - //Cum 6. - CUMccc[k] = mfccc +((-c4o1 * mfbbb * mfbbb - - (mfcaa * mfacc + mfaca * mfcac + mfaac * mfcca) - - c4o1 * (mfabb * mfcbb + mfbab * mfbcb + mfbba * mfbbc) - - c2o1 * (mfbca * mfbac + mfcba * mfabc + mfcab * mfacb)) - +( c4o1 * (mfbab * mfbab * mfaca + mfabb * mfabb * mfcaa + mfbba * mfbba * mfaac) - + c2o1 * (mfcaa * mfaca * mfaac) - + c16o1 * mfbba * mfbab * mfabb) - - c1o3 * (mfacc + mfcac + mfcca) * oMdrho -c1o9*oMdrho*oMdrho - - c1o9 * (mfcaa + mfaca + mfaac) * oMdrho*(c1o1-c2o1* oMdrho)- c1o27* oMdrho * oMdrho*(-c2o1* oMdrho) - +( c2o1 * (mfbab * mfbab + mfabb * mfabb + mfbba * mfbba) - + (mfaac * mfaca + mfaac * mfcaa + mfaca * mfcaa)) * c2o3*oMdrho) +c1o27*oMdrho; - //////////////////////////////////////////////////////////////////////////////////// - } - } + //////////////////////////////////////////////////////////////////////////////// + const unsigned x = threadIdx.x; // Globaler x-Index + const unsigned y = blockIdx.x; // Globaler y-Index + const unsigned z = blockIdx.y; // Globaler z-Index + + const unsigned nx = blockDim.x; + const unsigned ny = gridDim.x; + + const unsigned k = nx*(ny*z + y) + x; + ////////////////////////////////////////////////////////////////////////// + + if(k<numberOfLBnodes) + { + //////////////////////////////////////////////////////////////////////////////// + unsigned int BC; + BC = bcMatD[k]; + + if( (BC != GEO_SOLID) && (BC != GEO_VOID) ) + { + Distributions27 D; + if (EvenOrOdd==true) + { + D.f[dP00] = &DDStart[dP00 * numberOfLBnodes]; + D.f[dM00] = &DDStart[dM00 * numberOfLBnodes]; + D.f[d0P0] = &DDStart[d0P0 * numberOfLBnodes]; + D.f[d0M0] = &DDStart[d0M0 * numberOfLBnodes]; + D.f[d00P] = &DDStart[d00P * numberOfLBnodes]; + D.f[d00M] = &DDStart[d00M * numberOfLBnodes]; + D.f[dPP0] = &DDStart[dPP0 * numberOfLBnodes]; + D.f[dMM0] = &DDStart[dMM0 * numberOfLBnodes]; + D.f[dPM0] = &DDStart[dPM0 * numberOfLBnodes]; + D.f[dMP0] = &DDStart[dMP0 * numberOfLBnodes]; + D.f[dP0P] = &DDStart[dP0P * numberOfLBnodes]; + D.f[dM0M] = &DDStart[dM0M * numberOfLBnodes]; + D.f[dP0M] = &DDStart[dP0M * numberOfLBnodes]; + D.f[dM0P] = &DDStart[dM0P * numberOfLBnodes]; + D.f[d0PP] = &DDStart[d0PP * numberOfLBnodes]; + D.f[d0MM] = &DDStart[d0MM * numberOfLBnodes]; + D.f[d0PM] = &DDStart[d0PM * numberOfLBnodes]; + D.f[d0MP] = &DDStart[d0MP * numberOfLBnodes]; + D.f[d000] = &DDStart[d000 * numberOfLBnodes]; + D.f[dPPP] = &DDStart[dPPP * numberOfLBnodes]; + D.f[dMMP] = &DDStart[dMMP * numberOfLBnodes]; + D.f[dPMP] = &DDStart[dPMP * numberOfLBnodes]; + D.f[dMPP] = &DDStart[dMPP * numberOfLBnodes]; + D.f[dPPM] = &DDStart[dPPM * numberOfLBnodes]; + D.f[dMMM] = &DDStart[dMMM * numberOfLBnodes]; + D.f[dPMM] = &DDStart[dPMM * numberOfLBnodes]; + D.f[dMPM] = &DDStart[dMPM * numberOfLBnodes]; + } + else + { + D.f[dM00] = &DDStart[dP00 * numberOfLBnodes]; + D.f[dP00] = &DDStart[dM00 * numberOfLBnodes]; + D.f[d0M0] = &DDStart[d0P0 * numberOfLBnodes]; + D.f[d0P0] = &DDStart[d0M0 * numberOfLBnodes]; + D.f[d00M] = &DDStart[d00P * numberOfLBnodes]; + D.f[d00P] = &DDStart[d00M * numberOfLBnodes]; + D.f[dMM0] = &DDStart[dPP0 * numberOfLBnodes]; + D.f[dPP0] = &DDStart[dMM0 * numberOfLBnodes]; + D.f[dMP0] = &DDStart[dPM0 * numberOfLBnodes]; + D.f[dPM0] = &DDStart[dMP0 * numberOfLBnodes]; + D.f[dM0M] = &DDStart[dP0P * numberOfLBnodes]; + D.f[dP0P] = &DDStart[dM0M * numberOfLBnodes]; + D.f[dM0P] = &DDStart[dP0M * numberOfLBnodes]; + D.f[dP0M] = &DDStart[dM0P * numberOfLBnodes]; + D.f[d0MM] = &DDStart[d0PP * numberOfLBnodes]; + D.f[d0PP] = &DDStart[d0MM * numberOfLBnodes]; + D.f[d0MP] = &DDStart[d0PM * numberOfLBnodes]; + D.f[d0PM] = &DDStart[d0MP * numberOfLBnodes]; + D.f[d000] = &DDStart[d000 * numberOfLBnodes]; + D.f[dMMM] = &DDStart[dPPP * numberOfLBnodes]; + D.f[dPPM] = &DDStart[dMMP * numberOfLBnodes]; + D.f[dMPM] = &DDStart[dPMP * numberOfLBnodes]; + D.f[dPMM] = &DDStart[dMPP * numberOfLBnodes]; + D.f[dMMP] = &DDStart[dPPM * numberOfLBnodes]; + D.f[dPPP] = &DDStart[dMMM * numberOfLBnodes]; + D.f[dMPP] = &DDStart[dPMM * numberOfLBnodes]; + D.f[dPMP] = &DDStart[dMPM * numberOfLBnodes]; + } + + //////////////////////////////////////////////////////////////////////////////// + //index + unsigned int kw = neighborX[k]; + unsigned int ks = neighborY[k]; + unsigned int kb = neighborZ[k]; + unsigned int ksw = neighborY[kw]; + unsigned int kbw = neighborZ[kw]; + unsigned int kbs = neighborZ[ks]; + unsigned int kbsw = neighborZ[ksw]; + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + real mfcbb = (D.f[dP00])[k ]; + real mfabb = (D.f[dM00])[kw ]; + real mfbcb = (D.f[d0P0])[k ]; + real mfbab = (D.f[d0M0])[ks ]; + real mfbbc = (D.f[d00P])[k ]; + real mfbba = (D.f[d00M])[kb ]; + real mfccb = (D.f[dPP0])[k ]; + real mfaab = (D.f[dMM0])[ksw]; + real mfcab = (D.f[dPM0])[ks ]; + real mfacb = (D.f[dMP0])[kw ]; + real mfcbc = (D.f[dP0P])[k ]; + real mfaba = (D.f[dM0M])[kbw]; + real mfcba = (D.f[dP0M])[kb ]; + real mfabc = (D.f[dM0P])[kw ]; + real mfbcc = (D.f[d0PP])[k ]; + real mfbaa = (D.f[d0MM])[kbs]; + real mfbca = (D.f[d0PM])[kb ]; + real mfbac = (D.f[d0MP])[ks ]; + real mfbbb = (D.f[d000])[k ]; + real mfccc = (D.f[dPPP])[k ]; + real mfaac = (D.f[dMMP])[ksw]; + real mfcac = (D.f[dPMP])[ks ]; + real mfacc = (D.f[dMPP])[kw ]; + real mfcca = (D.f[dPPM])[kb ]; + real mfaaa = (D.f[dMMM])[kbsw]; + real mfcaa = (D.f[dPMM])[kbs]; + real mfaca = (D.f[dMPM])[kbw]; + //////////////////////////////////////////////////////////////////////////////////// + real vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + + (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + + (mfcbb-mfabb)); + real vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + + (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + + (mfbcb-mfbab)); + real vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + + (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + + (mfbbc-mfbba)); + //////////////////////////////////////////////////////////////////////////////////// + real oMdrho = c1o1 - (mfccc+mfaaa + mfaca+mfcac + mfacc+mfcaa + mfaac+mfcca + + mfbac+mfbca + mfbaa+mfbcc + mfabc+mfcba + mfaba+mfcbc + mfacb+mfcab + mfaab+mfccb + + mfabb+mfcbb + mfbab+mfbcb + mfbba+mfbbc + mfbbb); + //////////////////////////////////////////////////////////////////////////////////// + real m0, m1, m2; + real vx2; + real vy2; + real vz2; + vx2=vvx*vvx; + vy2=vvy*vvy; + vz2=vvz*vvz; + //////////////////////////////////////////////////////////////////////////////////// + //Hin + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m2 = mfaaa + mfaac; + m1 = mfaac - mfaaa; + m0 = m2 + mfaab; + mfaaa = m0; + m0 += c1o36 * oMdrho; + mfaab = m1 - m0 * vvz; + mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfabc; + m1 = mfabc - mfaba; + m0 = m2 + mfabb; + mfaba = m0; + m0 += c1o9 * oMdrho; + mfabb = m1 - m0 * vvz; + mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfacc; + m1 = mfacc - mfaca; + m0 = m2 + mfacb; + mfaca = m0; + m0 += c1o36 * oMdrho; + mfacb = m1 - m0 * vvz; + mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbac; + m1 = mfbac - mfbaa; + m0 = m2 + mfbab; + mfbaa = m0; + m0 += c1o9 * oMdrho; + mfbab = m1 - m0 * vvz; + mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbba + mfbbc; + m1 = mfbbc - mfbba; + m0 = m2 + mfbbb; + mfbba = m0; + m0 += c4o9 * oMdrho; + mfbbb = m1 - m0 * vvz; + mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbca + mfbcc; + m1 = mfbcc - mfbca; + m0 = m2 + mfbcb; + mfbca = m0; + m0 += c1o9 * oMdrho; + mfbcb = m1 - m0 * vvz; + mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcac; + m1 = mfcac - mfcaa; + m0 = m2 + mfcab; + mfcaa = m0; + m0 += c1o36 * oMdrho; + mfcab = m1 - m0 * vvz; + mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcba + mfcbc; + m1 = mfcbc - mfcba; + m0 = m2 + mfcbb; + mfcba = m0; + m0 += c1o9 * oMdrho; + mfcbb = m1 - m0 * vvz; + mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcca + mfccc; + m1 = mfccc - mfcca; + m0 = m2 + mfccb; + mfcca = m0; + m0 += c1o36 * oMdrho; + mfccb = m1 - m0 * vvz; + mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m2 = mfaaa + mfaca; + m1 = mfaca - mfaaa; + m0 = m2 + mfaba; + mfaaa = m0; + m0 += c1o6 * oMdrho; + mfaba = m1 - m0 * vvy; + mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfacb; + m1 = mfacb - mfaab; + m0 = m2 + mfabb; + mfaab = m0; + mfabb = m1 - m0 * vvy; + mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfacc; + m1 = mfacc - mfaac; + m0 = m2 + mfabc; + mfaac = m0; + m0 += c1o18 * oMdrho; + mfabc = m1 - m0 * vvy; + mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbca; + m1 = mfbca - mfbaa; + m0 = m2 + mfbba; + mfbaa = m0; + m0 += c2o3 * oMdrho; + mfbba = m1 - m0 * vvy; + mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbab + mfbcb; + m1 = mfbcb - mfbab; + m0 = m2 + mfbbb; + mfbab = m0; + mfbbb = m1 - m0 * vvy; + mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbac + mfbcc; + m1 = mfbcc - mfbac; + m0 = m2 + mfbbc; + mfbac = m0; + m0 += c2o9 * oMdrho; + mfbbc = m1 - m0 * vvy; + mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcca; + m1 = mfcca - mfcaa; + m0 = m2 + mfcba; + mfcaa = m0; + m0 += c1o6 * oMdrho; + mfcba = m1 - m0 * vvy; + mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcab + mfccb; + m1 = mfccb - mfcab; + m0 = m2 + mfcbb; + mfcab = m0; + mfcbb = m1 - m0 * vvy; + mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcac + mfccc; + m1 = mfccc - mfcac; + m0 = m2 + mfcbc; + mfcac = m0; + m0 += c1o18 * oMdrho; + mfcbc = m1 - m0 * vvy; + mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m2 = mfaaa + mfcaa; + m1 = mfcaa - mfaaa; + m0 = m2 + mfbaa; + mfaaa = m0; + m0 += c1o1* oMdrho; + mfbaa = m1 - m0 * vvx; + mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfcba; + m1 = mfcba - mfaba; + m0 = m2 + mfbba; + mfaba = m0; + mfbba = m1 - m0 * vvx; + mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfcca; + m1 = mfcca - mfaca; + m0 = m2 + mfbca; + mfaca = m0; + m0 += c1o3 * oMdrho; + mfbca = m1 - m0 * vvx; + mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfcab; + m1 = mfcab - mfaab; + m0 = m2 + mfbab; + mfaab = m0; + mfbab = m1 - m0 * vvx; + mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabb + mfcbb; + m1 = mfcbb - mfabb; + m0 = m2 + mfbbb; + mfabb = m0; + mfbbb = m1 - m0 * vvx; + mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacb + mfccb; + m1 = mfccb - mfacb; + m0 = m2 + mfbcb; + mfacb = m0; + mfbcb = m1 - m0 * vvx; + mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfcac; + m1 = mfcac - mfaac; + m0 = m2 + mfbac; + mfaac = m0; + m0 += c1o3 * oMdrho; + mfbac = m1 - m0 * vvx; + mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabc + mfcbc; + m1 = mfcbc - mfabc; + m0 = m2 + mfbbc; + mfabc = m0; + mfbbc = m1 - m0 * vvx; + mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacc + mfccc; + m1 = mfccc - mfacc; + m0 = m2 + mfbcc; + mfacc = m0; + m0 += c1o9 * oMdrho; + mfbcc = m1 - m0 * vvx; + mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + + + //////////////////////////////////////////////////////////////////////////////////// + // Cumulants + //////////////////////////////////////////////////////////////////////////////////// + //Cum 4. + CUMcbb[k] = mfcbb - ((mfcaa + c1o3 * oMdrho) * mfabb + c2o1 * mfbba * mfbab); + CUMbcb[k] = mfbcb - ((mfaca + c1o3 * oMdrho) * mfbab + c2o1 * mfbba * mfabb); + CUMbbc[k] = mfbbc - ((mfaac + c1o3 * oMdrho) * mfbba + c2o1 * mfbab * mfabb); + + CUMcca[k] = mfcca - ((mfcaa * mfaca + c2o1 * mfbba * mfbba) + c1o3 * (mfcaa + mfaca) * oMdrho + c1o9*(oMdrho-c1o1)*oMdrho); + CUMcac[k] = mfcac - ((mfcaa * mfaac + c2o1 * mfbab * mfbab) + c1o3 * (mfcaa + mfaac) * oMdrho + c1o9*(oMdrho-c1o1)*oMdrho); + CUMacc[k] = mfacc - ((mfaac * mfaca + c2o1 * mfabb * mfabb) + c1o3 * (mfaac + mfaca) * oMdrho + c1o9*(oMdrho-c1o1)*oMdrho); + + //Cum 5. + CUMbcc[k] = mfbcc - (mfaac * mfbca + mfaca * mfbac + c4o1 * mfabb * mfbbb + c2o1 * (mfbab * mfacb + mfbba * mfabc)) - c1o3 * (mfbca + mfbac) * oMdrho; + CUMcbc[k] = mfcbc - (mfaac * mfcba + mfcaa * mfabc + c4o1 * mfbab * mfbbb + c2o1 * (mfabb * mfcab + mfbba * mfbac)) - c1o3 * (mfcba + mfabc) * oMdrho; + CUMccb[k] = mfccb - (mfcaa * mfacb + mfaca * mfcab + c4o1 * mfbba * mfbbb + c2o1 * (mfbab * mfbca + mfabb * mfcba)) - c1o3 * (mfacb + mfcab) * oMdrho; + + //Cum 6. + CUMccc[k] = mfccc +((-c4o1 * mfbbb * mfbbb + - (mfcaa * mfacc + mfaca * mfcac + mfaac * mfcca) + - c4o1 * (mfabb * mfcbb + mfbab * mfbcb + mfbba * mfbbc) + - c2o1 * (mfbca * mfbac + mfcba * mfabc + mfcab * mfacb)) + +( c4o1 * (mfbab * mfbab * mfaca + mfabb * mfabb * mfcaa + mfbba * mfbba * mfaac) + + c2o1 * (mfcaa * mfaca * mfaac) + + c16o1 * mfbba * mfbab * mfabb) + - c1o3 * (mfacc + mfcac + mfcca) * oMdrho -c1o9*oMdrho*oMdrho + - c1o9 * (mfcaa + mfaca + mfaac) * oMdrho*(c1o1-c2o1* oMdrho)- c1o27* oMdrho * oMdrho*(-c2o1* oMdrho) + +( c2o1 * (mfbab * mfbab + mfabb * mfabb + mfbba * mfbba) + + (mfaac * mfaca + mfaac * mfcaa + mfaca * mfcaa)) * c2o3*oMdrho) +c1o27*oMdrho; + //////////////////////////////////////////////////////////////////////////////////// + } + } } @@ -1738,438 +1738,438 @@ __global__ void LBCalcHigherMomentsIncompSP27( real* CUMcbb, //////////////////////////////////////////////////////////////////////////////// __global__ void LBCalcHigherMomentsCompSP27( real* CUMcbb, - real* CUMbcb, - real* CUMbbc, - real* CUMcca, - real* CUMcac, - real* CUMacc, - real* CUMbcc, - real* CUMcbc, - real* CUMccb, - real* CUMccc, - unsigned int* bcMatD, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - real* DDStart, - unsigned long long numberOfLBnodes, - bool EvenOrOdd) + real* CUMbcb, + real* CUMbbc, + real* CUMcca, + real* CUMcac, + real* CUMacc, + real* CUMbcc, + real* CUMcbc, + real* CUMccb, + real* CUMccc, + unsigned int* bcMatD, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + real* DDStart, + unsigned long long numberOfLBnodes, + bool EvenOrOdd) { - //////////////////////////////////////////////////////////////////////////////// - const unsigned x = threadIdx.x; // Globaler x-Index - const unsigned y = blockIdx.x; // Globaler y-Index - const unsigned z = blockIdx.y; // Globaler z-Index - - const unsigned nx = blockDim.x; - const unsigned ny = gridDim.x; - - const unsigned k = nx*(ny*z + y) + x; - ////////////////////////////////////////////////////////////////////////// - - if(k<numberOfLBnodes) - { - //////////////////////////////////////////////////////////////////////////////// - unsigned int BC; - BC = bcMatD[k]; - - if( (BC != GEO_SOLID) && (BC != GEO_VOID) ) - { - Distributions27 D; - if (EvenOrOdd==true) - { - D.f[dP00] = &DDStart[dP00 * numberOfLBnodes]; - D.f[dM00] = &DDStart[dM00 * numberOfLBnodes]; - D.f[d0P0] = &DDStart[d0P0 * numberOfLBnodes]; - D.f[d0M0] = &DDStart[d0M0 * numberOfLBnodes]; - D.f[d00P] = &DDStart[d00P * numberOfLBnodes]; - D.f[d00M] = &DDStart[d00M * numberOfLBnodes]; - D.f[dPP0] = &DDStart[dPP0 * numberOfLBnodes]; - D.f[dMM0] = &DDStart[dMM0 * numberOfLBnodes]; - D.f[dPM0] = &DDStart[dPM0 * numberOfLBnodes]; - D.f[dMP0] = &DDStart[dMP0 * numberOfLBnodes]; - D.f[dP0P] = &DDStart[dP0P * numberOfLBnodes]; - D.f[dM0M] = &DDStart[dM0M * numberOfLBnodes]; - D.f[dP0M] = &DDStart[dP0M * numberOfLBnodes]; - D.f[dM0P] = &DDStart[dM0P * numberOfLBnodes]; - D.f[d0PP] = &DDStart[d0PP * numberOfLBnodes]; - D.f[d0MM] = &DDStart[d0MM * numberOfLBnodes]; - D.f[d0PM] = &DDStart[d0PM * numberOfLBnodes]; - D.f[d0MP] = &DDStart[d0MP * numberOfLBnodes]; - D.f[d000] = &DDStart[d000 * numberOfLBnodes]; - D.f[dPPP] = &DDStart[dPPP * numberOfLBnodes]; - D.f[dMMP] = &DDStart[dMMP * numberOfLBnodes]; - D.f[dPMP] = &DDStart[dPMP * numberOfLBnodes]; - D.f[dMPP] = &DDStart[dMPP * numberOfLBnodes]; - D.f[dPPM] = &DDStart[dPPM * numberOfLBnodes]; - D.f[dMMM] = &DDStart[dMMM * numberOfLBnodes]; - D.f[dPMM] = &DDStart[dPMM * numberOfLBnodes]; - D.f[dMPM] = &DDStart[dMPM * numberOfLBnodes]; - } - else - { - D.f[dM00] = &DDStart[dP00 * numberOfLBnodes]; - D.f[dP00] = &DDStart[dM00 * numberOfLBnodes]; - D.f[d0M0] = &DDStart[d0P0 * numberOfLBnodes]; - D.f[d0P0] = &DDStart[d0M0 * numberOfLBnodes]; - D.f[d00M] = &DDStart[d00P * numberOfLBnodes]; - D.f[d00P] = &DDStart[d00M * numberOfLBnodes]; - D.f[dMM0] = &DDStart[dPP0 * numberOfLBnodes]; - D.f[dPP0] = &DDStart[dMM0 * numberOfLBnodes]; - D.f[dMP0] = &DDStart[dPM0 * numberOfLBnodes]; - D.f[dPM0] = &DDStart[dMP0 * numberOfLBnodes]; - D.f[dM0M] = &DDStart[dP0P * numberOfLBnodes]; - D.f[dP0P] = &DDStart[dM0M * numberOfLBnodes]; - D.f[dM0P] = &DDStart[dP0M * numberOfLBnodes]; - D.f[dP0M] = &DDStart[dM0P * numberOfLBnodes]; - D.f[d0MM] = &DDStart[d0PP * numberOfLBnodes]; - D.f[d0PP] = &DDStart[d0MM * numberOfLBnodes]; - D.f[d0MP] = &DDStart[d0PM * numberOfLBnodes]; - D.f[d0PM] = &DDStart[d0MP * numberOfLBnodes]; - D.f[d000] = &DDStart[d000 * numberOfLBnodes]; - D.f[dMMM] = &DDStart[dPPP * numberOfLBnodes]; - D.f[dPPM] = &DDStart[dMMP * numberOfLBnodes]; - D.f[dMPM] = &DDStart[dPMP * numberOfLBnodes]; - D.f[dPMM] = &DDStart[dMPP * numberOfLBnodes]; - D.f[dMMP] = &DDStart[dPPM * numberOfLBnodes]; - D.f[dPPP] = &DDStart[dMMM * numberOfLBnodes]; - D.f[dMPP] = &DDStart[dPMM * numberOfLBnodes]; - D.f[dPMP] = &DDStart[dMPM * numberOfLBnodes]; - } - - //////////////////////////////////////////////////////////////////////////////// - //index - unsigned int kw = neighborX[k]; - unsigned int ks = neighborY[k]; - unsigned int kb = neighborZ[k]; - unsigned int ksw = neighborY[kw]; - unsigned int kbw = neighborZ[kw]; - unsigned int kbs = neighborZ[ks]; - unsigned int kbsw = neighborZ[ksw]; - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real mfcbb = (D.f[dP00])[k ]; - real mfabb = (D.f[dM00])[kw ]; - real mfbcb = (D.f[d0P0])[k ]; - real mfbab = (D.f[d0M0])[ks ]; - real mfbbc = (D.f[d00P])[k ]; - real mfbba = (D.f[d00M])[kb ]; - real mfccb = (D.f[dPP0])[k ]; - real mfaab = (D.f[dMM0])[ksw]; - real mfcab = (D.f[dPM0])[ks ]; - real mfacb = (D.f[dMP0])[kw ]; - real mfcbc = (D.f[dP0P])[k ]; - real mfaba = (D.f[dM0M])[kbw]; - real mfcba = (D.f[dP0M])[kb ]; - real mfabc = (D.f[dM0P])[kw ]; - real mfbcc = (D.f[d0PP])[k ]; - real mfbaa = (D.f[d0MM])[kbs]; - real mfbca = (D.f[d0PM])[kb ]; - real mfbac = (D.f[d0MP])[ks ]; - real mfbbb = (D.f[d000])[k ]; - real mfccc = (D.f[dPPP])[k ]; - real mfaac = (D.f[dMMP])[ksw]; - real mfcac = (D.f[dPMP])[ks ]; - real mfacc = (D.f[dMPP])[kw ]; - real mfcca = (D.f[dPPM])[kb ]; - real mfaaa = (D.f[dMMM])[kbsw]; - real mfcaa = (D.f[dPMM])[kbs]; - real mfaca = (D.f[dMPM])[kbw]; - //////////////////////////////////////////////////////////////////////////////////// - real drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + - (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + - ((mfabb+mfcbb) + (mfbab+mfbcb)) + (mfbba+mfbbc)) + mfbbb; - - real rho = c1o1+drho; - //////////////////////////////////////////////////////////////////////////////////// - real vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + - (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + - (mfcbb-mfabb)) / rho; - real vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + - (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + - (mfbcb-mfbab)) / rho; - real vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + - (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + - (mfbbc-mfbba)) / rho; - //////////////////////////////////////////////////////////////////////////////////// - real oMdrho = c1o1; // comp special - //////////////////////////////////////////////////////////////////////////////////// - real m0, m1, m2; - real vx2; - real vy2; - real vz2; - vx2=vvx*vvx; - vy2=vvy*vvy; - vz2=vvz*vvz; - //////////////////////////////////////////////////////////////////////////////////// - //Hin - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m2 = mfaaa + mfaac; - m1 = mfaac - mfaaa; - m0 = m2 + mfaab; - mfaaa = m0; - m0 += c1o36 * oMdrho; - mfaab = m1 - m0 * vvz; - mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfabc; - m1 = mfabc - mfaba; - m0 = m2 + mfabb; - mfaba = m0; - m0 += c1o9 * oMdrho; - mfabb = m1 - m0 * vvz; - mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfacc; - m1 = mfacc - mfaca; - m0 = m2 + mfacb; - mfaca = m0; - m0 += c1o36 * oMdrho; - mfacb = m1 - m0 * vvz; - mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbac; - m1 = mfbac - mfbaa; - m0 = m2 + mfbab; - mfbaa = m0; - m0 += c1o9 * oMdrho; - mfbab = m1 - m0 * vvz; - mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbba + mfbbc; - m1 = mfbbc - mfbba; - m0 = m2 + mfbbb; - mfbba = m0; - m0 += c4o9 * oMdrho; - mfbbb = m1 - m0 * vvz; - mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbca + mfbcc; - m1 = mfbcc - mfbca; - m0 = m2 + mfbcb; - mfbca = m0; - m0 += c1o9 * oMdrho; - mfbcb = m1 - m0 * vvz; - mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcac; - m1 = mfcac - mfcaa; - m0 = m2 + mfcab; - mfcaa = m0; - m0 += c1o36 * oMdrho; - mfcab = m1 - m0 * vvz; - mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcba + mfcbc; - m1 = mfcbc - mfcba; - m0 = m2 + mfcbb; - mfcba = m0; - m0 += c1o9 * oMdrho; - mfcbb = m1 - m0 * vvz; - mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcca + mfccc; - m1 = mfccc - mfcca; - m0 = m2 + mfccb; - mfcca = m0; - m0 += c1o36 * oMdrho; - mfccb = m1 - m0 * vvz; - mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m2 = mfaaa + mfaca; - m1 = mfaca - mfaaa; - m0 = m2 + mfaba; - mfaaa = m0; - m0 += c1o6 * oMdrho; - mfaba = m1 - m0 * vvy; - mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfacb; - m1 = mfacb - mfaab; - m0 = m2 + mfabb; - mfaab = m0; - mfabb = m1 - m0 * vvy; - mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfacc; - m1 = mfacc - mfaac; - m0 = m2 + mfabc; - mfaac = m0; - m0 += c1o18 * oMdrho; - mfabc = m1 - m0 * vvy; - mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbca; - m1 = mfbca - mfbaa; - m0 = m2 + mfbba; - mfbaa = m0; - m0 += c2o3 * oMdrho; - mfbba = m1 - m0 * vvy; - mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbab + mfbcb; - m1 = mfbcb - mfbab; - m0 = m2 + mfbbb; - mfbab = m0; - mfbbb = m1 - m0 * vvy; - mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbac + mfbcc; - m1 = mfbcc - mfbac; - m0 = m2 + mfbbc; - mfbac = m0; - m0 += c2o9 * oMdrho; - mfbbc = m1 - m0 * vvy; - mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcca; - m1 = mfcca - mfcaa; - m0 = m2 + mfcba; - mfcaa = m0; - m0 += c1o6 * oMdrho; - mfcba = m1 - m0 * vvy; - mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcab + mfccb; - m1 = mfccb - mfcab; - m0 = m2 + mfcbb; - mfcab = m0; - mfcbb = m1 - m0 * vvy; - mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcac + mfccc; - m1 = mfccc - mfcac; - m0 = m2 + mfcbc; - mfcac = m0; - m0 += c1o18 * oMdrho; - mfcbc = m1 - m0 * vvy; - mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m2 = mfaaa + mfcaa; - m1 = mfcaa - mfaaa; - m0 = m2 + mfbaa; - mfaaa = m0; - m0 += c1o1* oMdrho; - mfbaa = m1 - m0 * vvx; - mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfcba; - m1 = mfcba - mfaba; - m0 = m2 + mfbba; - mfaba = m0; - mfbba = m1 - m0 * vvx; - mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfcca; - m1 = mfcca - mfaca; - m0 = m2 + mfbca; - mfaca = m0; - m0 += c1o3 * oMdrho; - mfbca = m1 - m0 * vvx; - mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfcab; - m1 = mfcab - mfaab; - m0 = m2 + mfbab; - mfaab = m0; - mfbab = m1 - m0 * vvx; - mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabb + mfcbb; - m1 = mfcbb - mfabb; - m0 = m2 + mfbbb; - mfabb = m0; - mfbbb = m1 - m0 * vvx; - mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacb + mfccb; - m1 = mfccb - mfacb; - m0 = m2 + mfbcb; - mfacb = m0; - mfbcb = m1 - m0 * vvx; - mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfcac; - m1 = mfcac - mfaac; - m0 = m2 + mfbac; - mfaac = m0; - m0 += c1o3 * oMdrho; - mfbac = m1 - m0 * vvx; - mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabc + mfcbc; - m1 = mfcbc - mfabc; - m0 = m2 + mfbbc; - mfabc = m0; - mfbbc = m1 - m0 * vvx; - mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacc + mfccc; - m1 = mfccc - mfacc; - m0 = m2 + mfbcc; - mfacc = m0; - m0 += c1o9 * oMdrho; - mfbcc = m1 - m0 * vvx; - mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - - real OxxPyyPzz = c1o1; - real omega = c1o1 / (c3o1*0.001 + c1o2); - real d00M = (c4o1 * omega * OxxPyyPzz * (c9o1 * omega - c16o1) - c4o1 * omega * omega - c2o1 * OxxPyyPzz * OxxPyyPzz * (c2o1 + c9o1 * omega * (omega - c2o1))) / - (c3o1 * (omega - OxxPyyPzz) * (OxxPyyPzz * (c2o1 + c3o1 * omega) - c8o1 * omega)); - - CUMbcc[k] = mfbcc - ((mfaac * mfbca + mfaca * mfbac + c4o1 * mfabb * mfbbb + c2o1 * (mfbab * mfacb + mfbba * mfabc)) + c1o3 * (mfbca + mfbac)*(c1o1 + rho*c6o1*d00M / (c2o1 + c3o1 * d00M))) / rho; - CUMcbc[k] = mfcbc - ((mfaac * mfcba + mfcaa * mfabc + c4o1 * mfbab * mfbbb + c2o1 * (mfabb * mfcab + mfbba * mfbac)) + c1o3 * (mfcba + mfabc)*(c1o1 + rho*c6o1*d00M / (c2o1 + c3o1 * d00M))) / rho; - CUMccb[k] = mfccb - ((mfcaa * mfacb + mfaca * mfcab + c4o1 * mfbba * mfbbb + c2o1 * (mfbab * mfbca + mfabb * mfcba)) + c1o3 * (mfacb + mfcab)*(c1o1 + rho*c6o1*d00M / (c2o1 + c3o1 * d00M))) / rho; - - //////////////////////////////////////////////////////////////////////////////////// - // Cumulants - //////////////////////////////////////////////////////////////////////////////////// - //central moments to cumulants - //4. - CUMcbb[k] = mfcbb - ((mfcaa + c1o3) * mfabb + c2o1 * mfbba * mfbab) / rho; - CUMbcb[k] = mfbcb - ((mfaca + c1o3) * mfbab + c2o1 * mfbba * mfabb) / rho; - CUMbbc[k] = mfbbc - ((mfaac + c1o3) * mfbba + c2o1 * mfbab * mfabb) / rho; - - CUMcca[k] = mfcca - (((mfcaa * mfaca + c2o1 * mfbba * mfbba) + c1o3 * (mfcaa + mfaca)) / rho - c1o9*(drho/rho)); - CUMcac[k] = mfcac - (((mfcaa * mfaac + c2o1 * mfbab * mfbab) + c1o3 * (mfcaa + mfaac)) / rho - c1o9*(drho/rho)); - CUMacc[k] = mfacc - (((mfaac * mfaca + c2o1 * mfabb * mfabb) + c1o3 * (mfaac + mfaca)) / rho - c1o9*(drho/rho)); - - //5. - //CUMbcc[k] = mfbcc - ((mfaac * mfbca + mfaca * mfbac + four * mfabb * mfbbb + two * (mfbab * mfacb + mfbba * mfabc)) + c1o3 * (mfbca + mfbac) ) / rho ; - //CUMcbc[k] = mfcbc - ((mfaac * mfcba + mfcaa * mfabc + four * mfbab * mfbbb + two * (mfabb * mfcab + mfbba * mfbac)) + c1o3 * (mfcba + mfabc) ) / rho ; - //CUMccb[k] = mfccb - ((mfcaa * mfacb + mfaca * mfcab + four * mfbba * mfbbb + two * (mfbab * mfbca + mfabb * mfcba)) + c1o3 * (mfacb + mfcab) ) / rho ; - - //6. - CUMccc[k] = mfccc + ((-c4o1 * mfbbb * mfbbb - - (mfcaa * mfacc + mfaca * mfcac + mfaac * mfcca) - - c4o1 * (mfabb * mfcbb + mfbab * mfbcb + mfbba * mfbbc) - - c2o1 * (mfbca * mfbac + mfcba * mfabc + mfcab * mfacb)) / rho - +( c4o1 * (mfbab * mfbab * mfaca + mfabb * mfabb * mfcaa + mfbba * mfbba * mfaac) - + c2o1 * (mfcaa * mfaca * mfaac) - + c16o1 * mfbba * mfbab * mfabb) / (rho * rho) - - c1o3 * (mfacc + mfcac + mfcca) /rho - - c1o9 * (mfcaa + mfaca + mfaac) /rho - +( c2o1 * (mfbab * mfbab + mfabb * mfabb + mfbba * mfbba) - + (mfaac * mfaca + mfaac * mfcaa + mfaca * mfcaa) + c1o3 *(mfaac + mfaca + mfcaa)) / (rho * rho) * c2o3 - + c1o27*((drho * drho - drho)/(rho*rho))); - //////////////////////////////////////////////////////////////////////////////////// - } - } + //////////////////////////////////////////////////////////////////////////////// + const unsigned x = threadIdx.x; // Globaler x-Index + const unsigned y = blockIdx.x; // Globaler y-Index + const unsigned z = blockIdx.y; // Globaler z-Index + + const unsigned nx = blockDim.x; + const unsigned ny = gridDim.x; + + const unsigned k = nx*(ny*z + y) + x; + ////////////////////////////////////////////////////////////////////////// + + if(k<numberOfLBnodes) + { + //////////////////////////////////////////////////////////////////////////////// + unsigned int BC; + BC = bcMatD[k]; + + if( (BC != GEO_SOLID) && (BC != GEO_VOID) ) + { + Distributions27 D; + if (EvenOrOdd==true) + { + D.f[dP00] = &DDStart[dP00 * numberOfLBnodes]; + D.f[dM00] = &DDStart[dM00 * numberOfLBnodes]; + D.f[d0P0] = &DDStart[d0P0 * numberOfLBnodes]; + D.f[d0M0] = &DDStart[d0M0 * numberOfLBnodes]; + D.f[d00P] = &DDStart[d00P * numberOfLBnodes]; + D.f[d00M] = &DDStart[d00M * numberOfLBnodes]; + D.f[dPP0] = &DDStart[dPP0 * numberOfLBnodes]; + D.f[dMM0] = &DDStart[dMM0 * numberOfLBnodes]; + D.f[dPM0] = &DDStart[dPM0 * numberOfLBnodes]; + D.f[dMP0] = &DDStart[dMP0 * numberOfLBnodes]; + D.f[dP0P] = &DDStart[dP0P * numberOfLBnodes]; + D.f[dM0M] = &DDStart[dM0M * numberOfLBnodes]; + D.f[dP0M] = &DDStart[dP0M * numberOfLBnodes]; + D.f[dM0P] = &DDStart[dM0P * numberOfLBnodes]; + D.f[d0PP] = &DDStart[d0PP * numberOfLBnodes]; + D.f[d0MM] = &DDStart[d0MM * numberOfLBnodes]; + D.f[d0PM] = &DDStart[d0PM * numberOfLBnodes]; + D.f[d0MP] = &DDStart[d0MP * numberOfLBnodes]; + D.f[d000] = &DDStart[d000 * numberOfLBnodes]; + D.f[dPPP] = &DDStart[dPPP * numberOfLBnodes]; + D.f[dMMP] = &DDStart[dMMP * numberOfLBnodes]; + D.f[dPMP] = &DDStart[dPMP * numberOfLBnodes]; + D.f[dMPP] = &DDStart[dMPP * numberOfLBnodes]; + D.f[dPPM] = &DDStart[dPPM * numberOfLBnodes]; + D.f[dMMM] = &DDStart[dMMM * numberOfLBnodes]; + D.f[dPMM] = &DDStart[dPMM * numberOfLBnodes]; + D.f[dMPM] = &DDStart[dMPM * numberOfLBnodes]; + } + else + { + D.f[dM00] = &DDStart[dP00 * numberOfLBnodes]; + D.f[dP00] = &DDStart[dM00 * numberOfLBnodes]; + D.f[d0M0] = &DDStart[d0P0 * numberOfLBnodes]; + D.f[d0P0] = &DDStart[d0M0 * numberOfLBnodes]; + D.f[d00M] = &DDStart[d00P * numberOfLBnodes]; + D.f[d00P] = &DDStart[d00M * numberOfLBnodes]; + D.f[dMM0] = &DDStart[dPP0 * numberOfLBnodes]; + D.f[dPP0] = &DDStart[dMM0 * numberOfLBnodes]; + D.f[dMP0] = &DDStart[dPM0 * numberOfLBnodes]; + D.f[dPM0] = &DDStart[dMP0 * numberOfLBnodes]; + D.f[dM0M] = &DDStart[dP0P * numberOfLBnodes]; + D.f[dP0P] = &DDStart[dM0M * numberOfLBnodes]; + D.f[dM0P] = &DDStart[dP0M * numberOfLBnodes]; + D.f[dP0M] = &DDStart[dM0P * numberOfLBnodes]; + D.f[d0MM] = &DDStart[d0PP * numberOfLBnodes]; + D.f[d0PP] = &DDStart[d0MM * numberOfLBnodes]; + D.f[d0MP] = &DDStart[d0PM * numberOfLBnodes]; + D.f[d0PM] = &DDStart[d0MP * numberOfLBnodes]; + D.f[d000] = &DDStart[d000 * numberOfLBnodes]; + D.f[dMMM] = &DDStart[dPPP * numberOfLBnodes]; + D.f[dPPM] = &DDStart[dMMP * numberOfLBnodes]; + D.f[dMPM] = &DDStart[dPMP * numberOfLBnodes]; + D.f[dPMM] = &DDStart[dMPP * numberOfLBnodes]; + D.f[dMMP] = &DDStart[dPPM * numberOfLBnodes]; + D.f[dPPP] = &DDStart[dMMM * numberOfLBnodes]; + D.f[dMPP] = &DDStart[dPMM * numberOfLBnodes]; + D.f[dPMP] = &DDStart[dMPM * numberOfLBnodes]; + } + + //////////////////////////////////////////////////////////////////////////////// + //index + unsigned int kw = neighborX[k]; + unsigned int ks = neighborY[k]; + unsigned int kb = neighborZ[k]; + unsigned int ksw = neighborY[kw]; + unsigned int kbw = neighborZ[kw]; + unsigned int kbs = neighborZ[ks]; + unsigned int kbsw = neighborZ[ksw]; + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + real mfcbb = (D.f[dP00])[k ]; + real mfabb = (D.f[dM00])[kw ]; + real mfbcb = (D.f[d0P0])[k ]; + real mfbab = (D.f[d0M0])[ks ]; + real mfbbc = (D.f[d00P])[k ]; + real mfbba = (D.f[d00M])[kb ]; + real mfccb = (D.f[dPP0])[k ]; + real mfaab = (D.f[dMM0])[ksw]; + real mfcab = (D.f[dPM0])[ks ]; + real mfacb = (D.f[dMP0])[kw ]; + real mfcbc = (D.f[dP0P])[k ]; + real mfaba = (D.f[dM0M])[kbw]; + real mfcba = (D.f[dP0M])[kb ]; + real mfabc = (D.f[dM0P])[kw ]; + real mfbcc = (D.f[d0PP])[k ]; + real mfbaa = (D.f[d0MM])[kbs]; + real mfbca = (D.f[d0PM])[kb ]; + real mfbac = (D.f[d0MP])[ks ]; + real mfbbb = (D.f[d000])[k ]; + real mfccc = (D.f[dPPP])[k ]; + real mfaac = (D.f[dMMP])[ksw]; + real mfcac = (D.f[dPMP])[ks ]; + real mfacc = (D.f[dMPP])[kw ]; + real mfcca = (D.f[dPPM])[kb ]; + real mfaaa = (D.f[dMMM])[kbsw]; + real mfcaa = (D.f[dPMM])[kbs]; + real mfaca = (D.f[dMPM])[kbw]; + //////////////////////////////////////////////////////////////////////////////////// + real drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + + (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + + ((mfabb+mfcbb) + (mfbab+mfbcb)) + (mfbba+mfbbc)) + mfbbb; + + real rho = c1o1+drho; + //////////////////////////////////////////////////////////////////////////////////// + real vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + + (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + + (mfcbb-mfabb)) / rho; + real vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + + (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + + (mfbcb-mfbab)) / rho; + real vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + + (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + + (mfbbc-mfbba)) / rho; + //////////////////////////////////////////////////////////////////////////////////// + real oMdrho = c1o1; // comp special + //////////////////////////////////////////////////////////////////////////////////// + real m0, m1, m2; + real vx2; + real vy2; + real vz2; + vx2=vvx*vvx; + vy2=vvy*vvy; + vz2=vvz*vvz; + //////////////////////////////////////////////////////////////////////////////////// + //Hin + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m2 = mfaaa + mfaac; + m1 = mfaac - mfaaa; + m0 = m2 + mfaab; + mfaaa = m0; + m0 += c1o36 * oMdrho; + mfaab = m1 - m0 * vvz; + mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfabc; + m1 = mfabc - mfaba; + m0 = m2 + mfabb; + mfaba = m0; + m0 += c1o9 * oMdrho; + mfabb = m1 - m0 * vvz; + mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfacc; + m1 = mfacc - mfaca; + m0 = m2 + mfacb; + mfaca = m0; + m0 += c1o36 * oMdrho; + mfacb = m1 - m0 * vvz; + mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbac; + m1 = mfbac - mfbaa; + m0 = m2 + mfbab; + mfbaa = m0; + m0 += c1o9 * oMdrho; + mfbab = m1 - m0 * vvz; + mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbba + mfbbc; + m1 = mfbbc - mfbba; + m0 = m2 + mfbbb; + mfbba = m0; + m0 += c4o9 * oMdrho; + mfbbb = m1 - m0 * vvz; + mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbca + mfbcc; + m1 = mfbcc - mfbca; + m0 = m2 + mfbcb; + mfbca = m0; + m0 += c1o9 * oMdrho; + mfbcb = m1 - m0 * vvz; + mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcac; + m1 = mfcac - mfcaa; + m0 = m2 + mfcab; + mfcaa = m0; + m0 += c1o36 * oMdrho; + mfcab = m1 - m0 * vvz; + mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcba + mfcbc; + m1 = mfcbc - mfcba; + m0 = m2 + mfcbb; + mfcba = m0; + m0 += c1o9 * oMdrho; + mfcbb = m1 - m0 * vvz; + mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcca + mfccc; + m1 = mfccc - mfcca; + m0 = m2 + mfccb; + mfcca = m0; + m0 += c1o36 * oMdrho; + mfccb = m1 - m0 * vvz; + mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m2 = mfaaa + mfaca; + m1 = mfaca - mfaaa; + m0 = m2 + mfaba; + mfaaa = m0; + m0 += c1o6 * oMdrho; + mfaba = m1 - m0 * vvy; + mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfacb; + m1 = mfacb - mfaab; + m0 = m2 + mfabb; + mfaab = m0; + mfabb = m1 - m0 * vvy; + mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfacc; + m1 = mfacc - mfaac; + m0 = m2 + mfabc; + mfaac = m0; + m0 += c1o18 * oMdrho; + mfabc = m1 - m0 * vvy; + mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbca; + m1 = mfbca - mfbaa; + m0 = m2 + mfbba; + mfbaa = m0; + m0 += c2o3 * oMdrho; + mfbba = m1 - m0 * vvy; + mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbab + mfbcb; + m1 = mfbcb - mfbab; + m0 = m2 + mfbbb; + mfbab = m0; + mfbbb = m1 - m0 * vvy; + mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbac + mfbcc; + m1 = mfbcc - mfbac; + m0 = m2 + mfbbc; + mfbac = m0; + m0 += c2o9 * oMdrho; + mfbbc = m1 - m0 * vvy; + mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcca; + m1 = mfcca - mfcaa; + m0 = m2 + mfcba; + mfcaa = m0; + m0 += c1o6 * oMdrho; + mfcba = m1 - m0 * vvy; + mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcab + mfccb; + m1 = mfccb - mfcab; + m0 = m2 + mfcbb; + mfcab = m0; + mfcbb = m1 - m0 * vvy; + mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcac + mfccc; + m1 = mfccc - mfcac; + m0 = m2 + mfcbc; + mfcac = m0; + m0 += c1o18 * oMdrho; + mfcbc = m1 - m0 * vvy; + mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m2 = mfaaa + mfcaa; + m1 = mfcaa - mfaaa; + m0 = m2 + mfbaa; + mfaaa = m0; + m0 += c1o1* oMdrho; + mfbaa = m1 - m0 * vvx; + mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfcba; + m1 = mfcba - mfaba; + m0 = m2 + mfbba; + mfaba = m0; + mfbba = m1 - m0 * vvx; + mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfcca; + m1 = mfcca - mfaca; + m0 = m2 + mfbca; + mfaca = m0; + m0 += c1o3 * oMdrho; + mfbca = m1 - m0 * vvx; + mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfcab; + m1 = mfcab - mfaab; + m0 = m2 + mfbab; + mfaab = m0; + mfbab = m1 - m0 * vvx; + mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabb + mfcbb; + m1 = mfcbb - mfabb; + m0 = m2 + mfbbb; + mfabb = m0; + mfbbb = m1 - m0 * vvx; + mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacb + mfccb; + m1 = mfccb - mfacb; + m0 = m2 + mfbcb; + mfacb = m0; + mfbcb = m1 - m0 * vvx; + mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfcac; + m1 = mfcac - mfaac; + m0 = m2 + mfbac; + mfaac = m0; + m0 += c1o3 * oMdrho; + mfbac = m1 - m0 * vvx; + mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabc + mfcbc; + m1 = mfcbc - mfabc; + m0 = m2 + mfbbc; + mfabc = m0; + mfbbc = m1 - m0 * vvx; + mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacc + mfccc; + m1 = mfccc - mfacc; + m0 = m2 + mfbcc; + mfacc = m0; + m0 += c1o9 * oMdrho; + mfbcc = m1 - m0 * vvx; + mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + + real OxxPyyPzz = c1o1; + real omega = c1o1 / (c3o1*0.001 + c1o2); + real d00M = (c4o1 * omega * OxxPyyPzz * (c9o1 * omega - c16o1) - c4o1 * omega * omega - c2o1 * OxxPyyPzz * OxxPyyPzz * (c2o1 + c9o1 * omega * (omega - c2o1))) / + (c3o1 * (omega - OxxPyyPzz) * (OxxPyyPzz * (c2o1 + c3o1 * omega) - c8o1 * omega)); + + CUMbcc[k] = mfbcc - ((mfaac * mfbca + mfaca * mfbac + c4o1 * mfabb * mfbbb + c2o1 * (mfbab * mfacb + mfbba * mfabc)) + c1o3 * (mfbca + mfbac)*(c1o1 + rho*c6o1*d00M / (c2o1 + c3o1 * d00M))) / rho; + CUMcbc[k] = mfcbc - ((mfaac * mfcba + mfcaa * mfabc + c4o1 * mfbab * mfbbb + c2o1 * (mfabb * mfcab + mfbba * mfbac)) + c1o3 * (mfcba + mfabc)*(c1o1 + rho*c6o1*d00M / (c2o1 + c3o1 * d00M))) / rho; + CUMccb[k] = mfccb - ((mfcaa * mfacb + mfaca * mfcab + c4o1 * mfbba * mfbbb + c2o1 * (mfbab * mfbca + mfabb * mfcba)) + c1o3 * (mfacb + mfcab)*(c1o1 + rho*c6o1*d00M / (c2o1 + c3o1 * d00M))) / rho; + + //////////////////////////////////////////////////////////////////////////////////// + // Cumulants + //////////////////////////////////////////////////////////////////////////////////// + //central moments to cumulants + //4. + CUMcbb[k] = mfcbb - ((mfcaa + c1o3) * mfabb + c2o1 * mfbba * mfbab) / rho; + CUMbcb[k] = mfbcb - ((mfaca + c1o3) * mfbab + c2o1 * mfbba * mfabb) / rho; + CUMbbc[k] = mfbbc - ((mfaac + c1o3) * mfbba + c2o1 * mfbab * mfabb) / rho; + + CUMcca[k] = mfcca - (((mfcaa * mfaca + c2o1 * mfbba * mfbba) + c1o3 * (mfcaa + mfaca)) / rho - c1o9*(drho/rho)); + CUMcac[k] = mfcac - (((mfcaa * mfaac + c2o1 * mfbab * mfbab) + c1o3 * (mfcaa + mfaac)) / rho - c1o9*(drho/rho)); + CUMacc[k] = mfacc - (((mfaac * mfaca + c2o1 * mfabb * mfabb) + c1o3 * (mfaac + mfaca)) / rho - c1o9*(drho/rho)); + + //5. + //CUMbcc[k] = mfbcc - ((mfaac * mfbca + mfaca * mfbac + four * mfabb * mfbbb + two * (mfbab * mfacb + mfbba * mfabc)) + c1o3 * (mfbca + mfbac) ) / rho ; + //CUMcbc[k] = mfcbc - ((mfaac * mfcba + mfcaa * mfabc + four * mfbab * mfbbb + two * (mfabb * mfcab + mfbba * mfbac)) + c1o3 * (mfcba + mfabc) ) / rho ; + //CUMccb[k] = mfccb - ((mfcaa * mfacb + mfaca * mfcab + four * mfbba * mfbbb + two * (mfbab * mfbca + mfabb * mfcba)) + c1o3 * (mfacb + mfcab) ) / rho ; + + //6. + CUMccc[k] = mfccc + ((-c4o1 * mfbbb * mfbbb + - (mfcaa * mfacc + mfaca * mfcac + mfaac * mfcca) + - c4o1 * (mfabb * mfcbb + mfbab * mfbcb + mfbba * mfbbc) + - c2o1 * (mfbca * mfbac + mfcba * mfabc + mfcab * mfacb)) / rho + +( c4o1 * (mfbab * mfbab * mfaca + mfabb * mfabb * mfcaa + mfbba * mfbba * mfaac) + + c2o1 * (mfcaa * mfaca * mfaac) + + c16o1 * mfbba * mfbab * mfabb) / (rho * rho) + - c1o3 * (mfacc + mfcac + mfcca) /rho + - c1o9 * (mfcaa + mfaca + mfaac) /rho + +( c2o1 * (mfbab * mfbab + mfabb * mfabb + mfbba * mfbba) + + (mfaac * mfaca + mfaac * mfcaa + mfaca * mfcaa) + c1o3 *(mfaac + mfaca + mfcaa)) / (rho * rho) * c2o3 + + c1o27*((drho * drho - drho)/(rho*rho))); + //////////////////////////////////////////////////////////////////////////////////// + } + } } diff --git a/src/gpu/core/GPU/CalcConc27.cu b/src/gpu/core/GPU/CalcConc27.cu index 724db55d580b69fba96c813fe843e05f3e575593..072f8c48e9201ae023fa0808646b99fe0e973846 100644 --- a/src/gpu/core/GPU/CalcConc27.cu +++ b/src/gpu/core/GPU/CalcConc27.cu @@ -40,14 +40,14 @@ using namespace vf::lbm::dir; //////////////////////////////////////////////////////////////////////////////// __global__ void CalcConc27( - real* concentration, - uint* typeOfGridNode, - uint* neighborX, - uint* neighborY, - uint* neighborZ, - unsigned long long numberOfLBnodes, - real* distributionsAD, - bool isEvenTimestep) + real* concentration, + uint* typeOfGridNode, + uint* neighborX, + uint* neighborY, + uint* neighborZ, + unsigned long long numberOfLBnodes, + real* distributionsAD, + bool isEvenTimestep) { ////////////////////////////////////////////////////////////////////////// //! The velocity boundary condition is executed in the following steps @@ -134,10 +134,10 @@ __global__ void CalcConc27( distAD.f[dPMM] = &distributionsAD[dMPP * numberOfLBnodes]; distAD.f[dMPM] = &distributionsAD[dPMP * numberOfLBnodes]; } - //////////////////////////////////////////////////////////////////////////////// - //! - Set neighbor indices (necessary for indirect addressing) - //! - uint ke = k; + //////////////////////////////////////////////////////////////////////////////// + //! - Set neighbor indices (necessary for indirect addressing) + //! + uint ke = k; uint kw = neighborX[k]; uint kn = k; uint ks = neighborY[k]; @@ -163,44 +163,44 @@ __global__ void CalcConc27( uint kbne = kb; uint ktne = k; uint kbsw = neighborZ[ksw]; - //////////////////////////////////////////////////////////////////////////////// - //! - Set local distributions - //! - real mfcbb = (distAD.f[dP00])[ke ]; - real mfabb = (distAD.f[dM00])[kw ]; - real mfbcb = (distAD.f[d0P0])[kn ]; - real mfbab = (distAD.f[d0M0])[ks ]; - real mfbbc = (distAD.f[d00P])[kt ]; - real mfbba = (distAD.f[d00M])[kb ]; - real mfccb = (distAD.f[dPP0])[kne ]; - real mfaab = (distAD.f[dMM0])[ksw ]; - real mfcab = (distAD.f[dPM0])[kse ]; - real mfacb = (distAD.f[dMP0])[knw ]; - real mfcbc = (distAD.f[dP0P])[kte ]; - real mfaba = (distAD.f[dM0M])[kbw ]; - real mfcba = (distAD.f[dP0M])[kbe ]; - real mfabc = (distAD.f[dM0P])[ktw ]; - real mfbcc = (distAD.f[d0PP])[ktn ]; - real mfbaa = (distAD.f[d0MM])[kbs ]; - real mfbca = (distAD.f[d0PM])[kbn ]; - real mfbac = (distAD.f[d0MP])[kts ]; - real mfbbb = (distAD.f[d000])[k ]; - real mfccc = (distAD.f[dPPP])[ktne]; - real mfaac = (distAD.f[dMMP])[ktsw]; - real mfcac = (distAD.f[dPMP])[ktse]; - real mfacc = (distAD.f[dMPP])[ktnw]; - real mfcca = (distAD.f[dPPM])[kbne]; - real mfaaa = (distAD.f[dMMM])[kbsw]; - real mfcaa = (distAD.f[dPMM])[kbse]; - real mfaca = (distAD.f[dMPM])[kbnw]; + //////////////////////////////////////////////////////////////////////////////// + //! - Set local distributions + //! + real mfcbb = (distAD.f[dP00])[ke ]; + real mfabb = (distAD.f[dM00])[kw ]; + real mfbcb = (distAD.f[d0P0])[kn ]; + real mfbab = (distAD.f[d0M0])[ks ]; + real mfbbc = (distAD.f[d00P])[kt ]; + real mfbba = (distAD.f[d00M])[kb ]; + real mfccb = (distAD.f[dPP0])[kne ]; + real mfaab = (distAD.f[dMM0])[ksw ]; + real mfcab = (distAD.f[dPM0])[kse ]; + real mfacb = (distAD.f[dMP0])[knw ]; + real mfcbc = (distAD.f[dP0P])[kte ]; + real mfaba = (distAD.f[dM0M])[kbw ]; + real mfcba = (distAD.f[dP0M])[kbe ]; + real mfabc = (distAD.f[dM0P])[ktw ]; + real mfbcc = (distAD.f[d0PP])[ktn ]; + real mfbaa = (distAD.f[d0MM])[kbs ]; + real mfbca = (distAD.f[d0PM])[kbn ]; + real mfbac = (distAD.f[d0MP])[kts ]; + real mfbbb = (distAD.f[d000])[k ]; + real mfccc = (distAD.f[dPPP])[ktne]; + real mfaac = (distAD.f[dMMP])[ktsw]; + real mfcac = (distAD.f[dPMP])[ktse]; + real mfacc = (distAD.f[dMPP])[ktnw]; + real mfcca = (distAD.f[dPPM])[kbne]; + real mfaaa = (distAD.f[dMMM])[kbsw]; + real mfcaa = (distAD.f[dPMM])[kbse]; + real mfaca = (distAD.f[dMPM])[kbnw]; ////////////////////////////////////////////////////////////////////////// - //! - Calculate concentration using pyramid summation for low round-off errors as in Eq. (J1)-(J3) \ref - //! <a href="https://doi.org/10.1016/j.camwa.2015.05.001"><b>[ M. Geier et al. (2015), DOI:10.1016/j.camwa.2015.05.001 ]</b></a> - //! - concentration[k] = - ((((mfccc + mfaaa) + (mfaca + mfcac)) + ((mfacc + mfcaa) + (mfaac + mfcca))) + - (((mfbac + mfbca) + (mfbaa + mfbcc)) + ((mfabc + mfcba) + (mfaba + mfcbc)) + ((mfacb + mfcab) + (mfaab + mfccb))) + - ((mfabb + mfcbb) + (mfbab + mfbcb) + (mfbba + mfbbc))) + mfbbb; + //! - Calculate concentration using pyramid summation for low round-off errors as in Eq. (J1)-(J3) \ref + //! <a href="https://doi.org/10.1016/j.camwa.2015.05.001"><b>[ M. Geier et al. (2015), DOI:10.1016/j.camwa.2015.05.001 ]</b></a> + //! + concentration[k] = + ((((mfccc + mfaaa) + (mfaca + mfcac)) + ((mfacc + mfcaa) + (mfaac + mfcca))) + + (((mfbac + mfbca) + (mfbaa + mfbcc)) + ((mfabc + mfcba) + (mfaba + mfcbc)) + ((mfacb + mfcab) + (mfaab + mfccb))) + + ((mfabb + mfcbb) + (mfbab + mfbcb) + (mfbba + mfbbc))) + mfbbb; } } @@ -470,15 +470,15 @@ __global__ void CalcConc7( real* Conc, //////////////////////////////////////////////////////////////////////////////// __global__ void GetPlaneConc7(real* Conc, - int* kPC, - unsigned int numberOfPointskPC, - unsigned int* geoD, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned long long numberOfLBnodes, - real* DD7, - bool isEvenTimestep) + int* kPC, + unsigned int numberOfPointskPC, + unsigned int* geoD, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned long long numberOfLBnodes, + real* DD7, + bool isEvenTimestep) { Distributions7 D7; if (isEvenTimestep==true) @@ -575,15 +575,15 @@ __global__ void GetPlaneConc7(real* Conc, //////////////////////////////////////////////////////////////////////////////// __global__ void GetPlaneConc27(real* Conc, - int* kPC, - unsigned int numberOfPointskPC, - unsigned int* geoD, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned long long numberOfLBnodes, - real* DD27, - bool isEvenTimestep) + int* kPC, + unsigned int numberOfPointskPC, + unsigned int* geoD, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned long long numberOfLBnodes, + real* DD27, + bool isEvenTimestep) { Distributions27 D27; if (isEvenTimestep==true) diff --git a/src/gpu/core/GPU/CalcMac27.cu b/src/gpu/core/GPU/CalcMac27.cu index 02886b4420bf23c8136f4356b438ed62dacd1448..607be0840d15fceeaab5da71fa3ed430b6b2247b 100644 --- a/src/gpu/core/GPU/CalcMac27.cu +++ b/src/gpu/core/GPU/CalcMac27.cu @@ -1135,8 +1135,8 @@ __global__ void LBCalcMeasurePoints( unsigned int ktne = kzero; unsigned int kbsw = neighborZ[ksw]; ////////////////////////////////////////////////////////////////////////// - unsigned int kMac = nodeIndex*MPClockCycle + t; - ////////////////////////////////////////////////////////////////////////// + unsigned int kMac = nodeIndex*MPClockCycle + t; + ////////////////////////////////////////////////////////////////////////// if(geoD[kzero] == GEO_FLUID) { diff --git a/src/gpu/core/GPU/CudaMemoryManager.cpp b/src/gpu/core/GPU/CudaMemoryManager.cpp index 986fc9f02174bc89659525cb1686c4bc86a248c8..312e379c476b54e868e97e2d1b5fb88311bb4158 100644 --- a/src/gpu/core/GPU/CudaMemoryManager.cpp +++ b/src/gpu/core/GPU/CudaMemoryManager.cpp @@ -44,122 +44,122 @@ void CudaMemoryManager::cudaCopyMedianPrint(int lev) } void CudaMemoryManager::cudaAllocCoord(int lev) { - //Host - checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->coordinateX ), parameter->getParH(lev)->memSizeRealLBnodes )); - checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->coordinateY ), parameter->getParH(lev)->memSizeRealLBnodes )); - checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->coordinateZ ), parameter->getParH(lev)->memSizeRealLBnodes )); - //Device (spinning ship + uppsala) - checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->coordinateX ), parameter->getParH(lev)->memSizeRealLBnodes )); - checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->coordinateY ), parameter->getParH(lev)->memSizeRealLBnodes )); - checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->coordinateZ ), parameter->getParH(lev)->memSizeRealLBnodes )); - ////////////////////////////////////////////////////////////////////////// - double tmp = 3. * (double)parameter->getParH(lev)->memSizeRealLBnodes; - setMemsizeGPU(tmp, false); + //Host + checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->coordinateX ), parameter->getParH(lev)->memSizeRealLBnodes )); + checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->coordinateY ), parameter->getParH(lev)->memSizeRealLBnodes )); + checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->coordinateZ ), parameter->getParH(lev)->memSizeRealLBnodes )); + //Device (spinning ship + uppsala) + checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->coordinateX ), parameter->getParH(lev)->memSizeRealLBnodes )); + checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->coordinateY ), parameter->getParH(lev)->memSizeRealLBnodes )); + checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->coordinateZ ), parameter->getParH(lev)->memSizeRealLBnodes )); + ////////////////////////////////////////////////////////////////////////// + double tmp = 3. * (double)parameter->getParH(lev)->memSizeRealLBnodes; + setMemsizeGPU(tmp, false); } void CudaMemoryManager::cudaCopyCoord(int lev) { - //copy host to device - checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->coordinateX, parameter->getParH(lev)->coordinateX, parameter->getParH(lev)->memSizeRealLBnodes , cudaMemcpyHostToDevice)); - checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->coordinateY, parameter->getParH(lev)->coordinateY, parameter->getParH(lev)->memSizeRealLBnodes , cudaMemcpyHostToDevice)); - checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->coordinateZ, parameter->getParH(lev)->coordinateZ, parameter->getParH(lev)->memSizeRealLBnodes , cudaMemcpyHostToDevice)); + //copy host to device + checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->coordinateX, parameter->getParH(lev)->coordinateX, parameter->getParH(lev)->memSizeRealLBnodes , cudaMemcpyHostToDevice)); + checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->coordinateY, parameter->getParH(lev)->coordinateY, parameter->getParH(lev)->memSizeRealLBnodes , cudaMemcpyHostToDevice)); + checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->coordinateZ, parameter->getParH(lev)->coordinateZ, parameter->getParH(lev)->memSizeRealLBnodes , cudaMemcpyHostToDevice)); } void CudaMemoryManager::cudaFreeCoord(int lev) { - checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->coordinateX )); - checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->coordinateY )); - checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->coordinateZ )); + checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->coordinateX )); + checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->coordinateY )); + checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->coordinateZ )); } void CudaMemoryManager::cudaAllocBodyForce(int lev) { //Host - checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->forceX_SP ), parameter->getParH(lev)->memSizeRealLBnodes )); - checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->forceY_SP ), parameter->getParH(lev)->memSizeRealLBnodes )); - checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->forceZ_SP ), parameter->getParH(lev)->memSizeRealLBnodes )); - //Device - checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->forceX_SP ), parameter->getParH(lev)->memSizeRealLBnodes )); - checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->forceY_SP ), parameter->getParH(lev)->memSizeRealLBnodes )); - checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->forceZ_SP ), parameter->getParH(lev)->memSizeRealLBnodes )); - ////////////////////////////////////////////////////////////////////////// - double tmp = 3. * (double)parameter->getParH(lev)->memSizeRealLBnodes; - setMemsizeGPU(tmp, false); + checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->forceX_SP ), parameter->getParH(lev)->memSizeRealLBnodes )); + checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->forceY_SP ), parameter->getParH(lev)->memSizeRealLBnodes )); + checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->forceZ_SP ), parameter->getParH(lev)->memSizeRealLBnodes )); + //Device + checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->forceX_SP ), parameter->getParH(lev)->memSizeRealLBnodes )); + checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->forceY_SP ), parameter->getParH(lev)->memSizeRealLBnodes )); + checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->forceZ_SP ), parameter->getParH(lev)->memSizeRealLBnodes )); + ////////////////////////////////////////////////////////////////////////// + double tmp = 3. * (double)parameter->getParH(lev)->memSizeRealLBnodes; + setMemsizeGPU(tmp, false); } void CudaMemoryManager::cudaCopyBodyForce(int lev) { - //copy host to device - checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->forceX_SP, parameter->getParH(lev)->forceX_SP, parameter->getParH(lev)->memSizeRealLBnodes , cudaMemcpyHostToDevice)); - checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->forceY_SP, parameter->getParH(lev)->forceY_SP, parameter->getParH(lev)->memSizeRealLBnodes , cudaMemcpyHostToDevice)); - checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->forceZ_SP, parameter->getParH(lev)->forceZ_SP, parameter->getParH(lev)->memSizeRealLBnodes , cudaMemcpyHostToDevice)); + //copy host to device + checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->forceX_SP, parameter->getParH(lev)->forceX_SP, parameter->getParH(lev)->memSizeRealLBnodes , cudaMemcpyHostToDevice)); + checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->forceY_SP, parameter->getParH(lev)->forceY_SP, parameter->getParH(lev)->memSizeRealLBnodes , cudaMemcpyHostToDevice)); + checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->forceZ_SP, parameter->getParH(lev)->forceZ_SP, parameter->getParH(lev)->memSizeRealLBnodes , cudaMemcpyHostToDevice)); } void CudaMemoryManager::cudaFreeBodyForce(int lev) { - checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->forceX_SP )); - checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->forceY_SP )); - checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->forceZ_SP )); + checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->forceX_SP )); + checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->forceY_SP )); + checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->forceZ_SP )); } //print void CudaMemoryManager::cudaCopyDataToHost(int lev) { - checkCudaErrors( cudaMemcpy(parameter->getParH(lev)->velocityX , parameter->getParD(lev)->velocityX , parameter->getParH(lev)->memSizeRealLBnodes , cudaMemcpyDeviceToHost)); - checkCudaErrors( cudaMemcpy(parameter->getParH(lev)->velocityY , parameter->getParD(lev)->velocityY , parameter->getParH(lev)->memSizeRealLBnodes , cudaMemcpyDeviceToHost)); - checkCudaErrors( cudaMemcpy(parameter->getParH(lev)->velocityZ , parameter->getParD(lev)->velocityZ , parameter->getParH(lev)->memSizeRealLBnodes , cudaMemcpyDeviceToHost)); - checkCudaErrors( cudaMemcpy(parameter->getParH(lev)->rho , parameter->getParD(lev)->rho , parameter->getParH(lev)->memSizeRealLBnodes , cudaMemcpyDeviceToHost)); - checkCudaErrors( cudaMemcpy(parameter->getParH(lev)->pressure , parameter->getParD(lev)->pressure , parameter->getParH(lev)->memSizeRealLBnodes , cudaMemcpyDeviceToHost)); + checkCudaErrors( cudaMemcpy(parameter->getParH(lev)->velocityX , parameter->getParD(lev)->velocityX , parameter->getParH(lev)->memSizeRealLBnodes , cudaMemcpyDeviceToHost)); + checkCudaErrors( cudaMemcpy(parameter->getParH(lev)->velocityY , parameter->getParD(lev)->velocityY , parameter->getParH(lev)->memSizeRealLBnodes , cudaMemcpyDeviceToHost)); + checkCudaErrors( cudaMemcpy(parameter->getParH(lev)->velocityZ , parameter->getParD(lev)->velocityZ , parameter->getParH(lev)->memSizeRealLBnodes , cudaMemcpyDeviceToHost)); + checkCudaErrors( cudaMemcpy(parameter->getParH(lev)->rho , parameter->getParD(lev)->rho , parameter->getParH(lev)->memSizeRealLBnodes , cudaMemcpyDeviceToHost)); + checkCudaErrors( cudaMemcpy(parameter->getParH(lev)->pressure , parameter->getParD(lev)->pressure , parameter->getParH(lev)->memSizeRealLBnodes , cudaMemcpyDeviceToHost)); } //sparse void CudaMemoryManager::cudaAllocSP(int lev) { - //Host - checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->typeOfGridNode), parameter->getParH(lev)->memSizeLonglongLBnodes)); - checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->neighborX ), parameter->getParH(lev)->memSizeLonglongLBnodes)); - checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->neighborY ), parameter->getParH(lev)->memSizeLonglongLBnodes)); - checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->neighborZ ), parameter->getParH(lev)->memSizeLonglongLBnodes)); - checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->rho ), parameter->getParH(lev)->memSizeRealLBnodes )); - checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->velocityX ), parameter->getParH(lev)->memSizeRealLBnodes )); - checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->velocityY ), parameter->getParH(lev)->memSizeRealLBnodes )); - checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->velocityZ ), parameter->getParH(lev)->memSizeRealLBnodes )); - checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->pressure ), parameter->getParH(lev)->memSizeRealLBnodes )); - //Device - checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->typeOfGridNode ), parameter->getParD(lev)->memSizeLonglongLBnodes)); - checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->neighborX ), parameter->getParD(lev)->memSizeLonglongLBnodes)); - checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->neighborY ), parameter->getParD(lev)->memSizeLonglongLBnodes)); - checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->neighborZ ), parameter->getParD(lev)->memSizeLonglongLBnodes)); - checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->rho ), parameter->getParD(lev)->memSizeRealLBnodes )); - checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->velocityX ), parameter->getParD(lev)->memSizeRealLBnodes )); - checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->velocityY ), parameter->getParD(lev)->memSizeRealLBnodes )); - checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->velocityZ ), parameter->getParD(lev)->memSizeRealLBnodes )); - checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->pressure ), parameter->getParD(lev)->memSizeRealLBnodes )); - checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->distributions.f[0]), (unsigned long long)parameter->getD3Qxx()*(unsigned long long)parameter->getParD(lev)->memSizeRealLBnodes)); - ////////////////////////////////////////////////////////////////////////// - double tmp = 4. * (double)parameter->getParH(lev)->memSizeLonglongLBnodes + 5. * (double)parameter->getParH(lev)->memSizeRealLBnodes + (double)parameter->getD3Qxx() * (double)parameter->getParH(lev)->memSizeRealLBnodes; - setMemsizeGPU(tmp, false); + //Host + checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->typeOfGridNode), parameter->getParH(lev)->memSizeLonglongLBnodes)); + checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->neighborX ), parameter->getParH(lev)->memSizeLonglongLBnodes)); + checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->neighborY ), parameter->getParH(lev)->memSizeLonglongLBnodes)); + checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->neighborZ ), parameter->getParH(lev)->memSizeLonglongLBnodes)); + checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->rho ), parameter->getParH(lev)->memSizeRealLBnodes )); + checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->velocityX ), parameter->getParH(lev)->memSizeRealLBnodes )); + checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->velocityY ), parameter->getParH(lev)->memSizeRealLBnodes )); + checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->velocityZ ), parameter->getParH(lev)->memSizeRealLBnodes )); + checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->pressure ), parameter->getParH(lev)->memSizeRealLBnodes )); + //Device + checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->typeOfGridNode ), parameter->getParD(lev)->memSizeLonglongLBnodes)); + checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->neighborX ), parameter->getParD(lev)->memSizeLonglongLBnodes)); + checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->neighborY ), parameter->getParD(lev)->memSizeLonglongLBnodes)); + checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->neighborZ ), parameter->getParD(lev)->memSizeLonglongLBnodes)); + checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->rho ), parameter->getParD(lev)->memSizeRealLBnodes )); + checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->velocityX ), parameter->getParD(lev)->memSizeRealLBnodes )); + checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->velocityY ), parameter->getParD(lev)->memSizeRealLBnodes )); + checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->velocityZ ), parameter->getParD(lev)->memSizeRealLBnodes )); + checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->pressure ), parameter->getParD(lev)->memSizeRealLBnodes )); + checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->distributions.f[0]), (unsigned long long)parameter->getD3Qxx()*(unsigned long long)parameter->getParD(lev)->memSizeRealLBnodes)); + ////////////////////////////////////////////////////////////////////////// + double tmp = 4. * (double)parameter->getParH(lev)->memSizeLonglongLBnodes + 5. * (double)parameter->getParH(lev)->memSizeRealLBnodes + (double)parameter->getD3Qxx() * (double)parameter->getParH(lev)->memSizeRealLBnodes; + setMemsizeGPU(tmp, false); } void CudaMemoryManager::cudaCopySP(int lev) { - //copy host to device - checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->typeOfGridNode, parameter->getParH(lev)->typeOfGridNode, parameter->getParH(lev)->memSizeLonglongLBnodes , cudaMemcpyHostToDevice)); - checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->neighborX , parameter->getParH(lev)->neighborX , parameter->getParH(lev)->memSizeLonglongLBnodes , cudaMemcpyHostToDevice)); - checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->neighborY , parameter->getParH(lev)->neighborY , parameter->getParH(lev)->memSizeLonglongLBnodes , cudaMemcpyHostToDevice)); - checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->neighborZ , parameter->getParH(lev)->neighborZ , parameter->getParH(lev)->memSizeLonglongLBnodes , cudaMemcpyHostToDevice)); - checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->rho , parameter->getParH(lev)->rho , parameter->getParH(lev)->memSizeRealLBnodes , cudaMemcpyHostToDevice)); - checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->velocityX , parameter->getParH(lev)->velocityX , parameter->getParH(lev)->memSizeRealLBnodes , cudaMemcpyHostToDevice)); - checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->velocityY , parameter->getParH(lev)->velocityY , parameter->getParH(lev)->memSizeRealLBnodes , cudaMemcpyHostToDevice)); - checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->velocityZ , parameter->getParH(lev)->velocityZ , parameter->getParH(lev)->memSizeRealLBnodes , cudaMemcpyHostToDevice)); - checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->pressure , parameter->getParH(lev)->pressure , parameter->getParH(lev)->memSizeRealLBnodes , cudaMemcpyHostToDevice)); + //copy host to device + checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->typeOfGridNode, parameter->getParH(lev)->typeOfGridNode, parameter->getParH(lev)->memSizeLonglongLBnodes , cudaMemcpyHostToDevice)); + checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->neighborX , parameter->getParH(lev)->neighborX , parameter->getParH(lev)->memSizeLonglongLBnodes , cudaMemcpyHostToDevice)); + checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->neighborY , parameter->getParH(lev)->neighborY , parameter->getParH(lev)->memSizeLonglongLBnodes , cudaMemcpyHostToDevice)); + checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->neighborZ , parameter->getParH(lev)->neighborZ , parameter->getParH(lev)->memSizeLonglongLBnodes , cudaMemcpyHostToDevice)); + checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->rho , parameter->getParH(lev)->rho , parameter->getParH(lev)->memSizeRealLBnodes , cudaMemcpyHostToDevice)); + checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->velocityX , parameter->getParH(lev)->velocityX , parameter->getParH(lev)->memSizeRealLBnodes , cudaMemcpyHostToDevice)); + checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->velocityY , parameter->getParH(lev)->velocityY , parameter->getParH(lev)->memSizeRealLBnodes , cudaMemcpyHostToDevice)); + checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->velocityZ , parameter->getParH(lev)->velocityZ , parameter->getParH(lev)->memSizeRealLBnodes , cudaMemcpyHostToDevice)); + checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->pressure , parameter->getParH(lev)->pressure , parameter->getParH(lev)->memSizeRealLBnodes , cudaMemcpyHostToDevice)); } void CudaMemoryManager::cudaFreeSP(int lev) { - checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->typeOfGridNode )); - checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->velocityX )); - checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->velocityY )); - checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->velocityZ )); - checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->rho )); - checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->pressure )); - checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->neighborX )); - checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->neighborY )); - checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->neighborZ )); + checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->typeOfGridNode )); + checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->velocityX )); + checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->velocityY )); + checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->velocityZ )); + checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->rho )); + checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->pressure )); + checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->neighborX )); + checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->neighborY )); + checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->neighborZ )); } void CudaMemoryManager::cudaAllocF3SP(int lev) { @@ -193,227 +193,227 @@ void CudaMemoryManager::cudaAllocF3SP(int lev) //Velo void CudaMemoryManager::cudaAllocVeloBC(int lev) { - unsigned int mem_size_inflow_Q_k = sizeof(int)*parameter->getParH(lev)->velocityBC.numberOfBCnodes; - unsigned int mem_size_inflow_Q_q = sizeof(real)*parameter->getParH(lev)->velocityBC.numberOfBCnodes; + unsigned int mem_size_inflow_Q_k = sizeof(int)*parameter->getParH(lev)->velocityBC.numberOfBCnodes; + unsigned int mem_size_inflow_Q_q = sizeof(real)*parameter->getParH(lev)->velocityBC.numberOfBCnodes; - //Host - checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->velocityBC.q27[0]), parameter->getD3Qxx()*mem_size_inflow_Q_q )); - checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->velocityBC.k), mem_size_inflow_Q_k )); - checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->velocityBC.Vx), mem_size_inflow_Q_q )); - checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->velocityBC.Vy), mem_size_inflow_Q_q )); - checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->velocityBC.Vz), mem_size_inflow_Q_q )); - checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->velocityBC.deltaVz), mem_size_inflow_Q_q )); - checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->velocityBC.RhoBC), mem_size_inflow_Q_q )); + //Host + checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->velocityBC.q27[0]), parameter->getD3Qxx()*mem_size_inflow_Q_q )); + checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->velocityBC.k), mem_size_inflow_Q_k )); + checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->velocityBC.Vx), mem_size_inflow_Q_q )); + checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->velocityBC.Vy), mem_size_inflow_Q_q )); + checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->velocityBC.Vz), mem_size_inflow_Q_q )); + checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->velocityBC.deltaVz), mem_size_inflow_Q_q )); + checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->velocityBC.RhoBC), mem_size_inflow_Q_q )); - //Device - checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->velocityBC.q27[0]), parameter->getD3Qxx()*mem_size_inflow_Q_q )); - checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->velocityBC.k), mem_size_inflow_Q_k )); - checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->velocityBC.Vx), mem_size_inflow_Q_q )); - checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->velocityBC.Vy), mem_size_inflow_Q_q )); - checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->velocityBC.Vz), mem_size_inflow_Q_q )); - checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->velocityBC.deltaVz), mem_size_inflow_Q_q )); + //Device + checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->velocityBC.q27[0]), parameter->getD3Qxx()*mem_size_inflow_Q_q )); + checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->velocityBC.k), mem_size_inflow_Q_k )); + checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->velocityBC.Vx), mem_size_inflow_Q_q )); + checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->velocityBC.Vy), mem_size_inflow_Q_q )); + checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->velocityBC.Vz), mem_size_inflow_Q_q )); + checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->velocityBC.deltaVz), mem_size_inflow_Q_q )); - ////////////////////////////////////////////////////////////////////////// - double tmp = (double)mem_size_inflow_Q_k + 4. * (double)mem_size_inflow_Q_q + (double)parameter->getD3Qxx() * (double)mem_size_inflow_Q_q; + ////////////////////////////////////////////////////////////////////////// + double tmp = (double)mem_size_inflow_Q_k + 4. * (double)mem_size_inflow_Q_q + (double)parameter->getD3Qxx() * (double)mem_size_inflow_Q_q; setMemsizeGPU(tmp, false); } void CudaMemoryManager::cudaCopyVeloBC(int lev) { - unsigned int mem_size_inflow_Q_k = sizeof(int)*parameter->getParH(lev)->velocityBC.numberOfBCnodes; - unsigned int mem_size_inflow_Q_q = sizeof(real)*parameter->getParH(lev)->velocityBC.numberOfBCnodes; + unsigned int mem_size_inflow_Q_k = sizeof(int)*parameter->getParH(lev)->velocityBC.numberOfBCnodes; + unsigned int mem_size_inflow_Q_q = sizeof(real)*parameter->getParH(lev)->velocityBC.numberOfBCnodes; - checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->velocityBC.q27[0], parameter->getParH(lev)->velocityBC.q27[0], parameter->getD3Qxx()* mem_size_inflow_Q_q, cudaMemcpyHostToDevice)); - checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->velocityBC.k, parameter->getParH(lev)->velocityBC.k, mem_size_inflow_Q_k, cudaMemcpyHostToDevice)); - checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->velocityBC.Vx, parameter->getParH(lev)->velocityBC.Vx, mem_size_inflow_Q_q, cudaMemcpyHostToDevice)); - checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->velocityBC.Vy, parameter->getParH(lev)->velocityBC.Vy, mem_size_inflow_Q_q, cudaMemcpyHostToDevice)); - checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->velocityBC.Vz, parameter->getParH(lev)->velocityBC.Vz, mem_size_inflow_Q_q, cudaMemcpyHostToDevice)); - checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->velocityBC.deltaVz, parameter->getParH(lev)->velocityBC.deltaVz, mem_size_inflow_Q_q, cudaMemcpyHostToDevice)); + checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->velocityBC.q27[0], parameter->getParH(lev)->velocityBC.q27[0], parameter->getD3Qxx()* mem_size_inflow_Q_q, cudaMemcpyHostToDevice)); + checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->velocityBC.k, parameter->getParH(lev)->velocityBC.k, mem_size_inflow_Q_k, cudaMemcpyHostToDevice)); + checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->velocityBC.Vx, parameter->getParH(lev)->velocityBC.Vx, mem_size_inflow_Q_q, cudaMemcpyHostToDevice)); + checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->velocityBC.Vy, parameter->getParH(lev)->velocityBC.Vy, mem_size_inflow_Q_q, cudaMemcpyHostToDevice)); + checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->velocityBC.Vz, parameter->getParH(lev)->velocityBC.Vz, mem_size_inflow_Q_q, cudaMemcpyHostToDevice)); + checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->velocityBC.deltaVz, parameter->getParH(lev)->velocityBC.deltaVz, mem_size_inflow_Q_q, cudaMemcpyHostToDevice)); } void CudaMemoryManager::cudaFreeVeloBC(int lev) { - checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->velocityBC.q27[0] )); - checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->velocityBC.k )); - checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->velocityBC.Vx )); - checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->velocityBC.Vy )); - checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->velocityBC.Vz )); - checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->velocityBC.deltaVz)); + checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->velocityBC.q27[0] )); + checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->velocityBC.k )); + checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->velocityBC.Vx )); + checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->velocityBC.Vy )); + checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->velocityBC.Vz )); + checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->velocityBC.deltaVz)); } //Press void CudaMemoryManager::cudaAllocOutflowBC(int lev) { - unsigned int mem_size_outflow_Q_k = sizeof(int)*parameter->getParH(lev)->outflowBC.numberOfBCnodes; - unsigned int mem_size_outflow_Q_q = sizeof(real)*parameter->getParH(lev)->outflowBC.numberOfBCnodes; + unsigned int mem_size_outflow_Q_k = sizeof(int)*parameter->getParH(lev)->outflowBC.numberOfBCnodes; + unsigned int mem_size_outflow_Q_q = sizeof(real)*parameter->getParH(lev)->outflowBC.numberOfBCnodes; - //Host - checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->outflowBC.q27[0]), parameter->getD3Qxx()*mem_size_outflow_Q_q )); - checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->outflowBC.k), mem_size_outflow_Q_k )); - checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->outflowBC.kN), mem_size_outflow_Q_k )); - checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->outflowBC.RhoBC), mem_size_outflow_Q_q )); + //Host + checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->outflowBC.q27[0]), parameter->getD3Qxx()*mem_size_outflow_Q_q )); + checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->outflowBC.k), mem_size_outflow_Q_k )); + checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->outflowBC.kN), mem_size_outflow_Q_k )); + checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->outflowBC.RhoBC), mem_size_outflow_Q_q )); - //Device - checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->outflowBC.q27[0]), parameter->getD3Qxx()* mem_size_outflow_Q_q )); - checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->outflowBC.k), mem_size_outflow_Q_k )); - checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->outflowBC.kN), mem_size_outflow_Q_k )); - checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->outflowBC.RhoBC), mem_size_outflow_Q_q )); + //Device + checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->outflowBC.q27[0]), parameter->getD3Qxx()* mem_size_outflow_Q_q )); + checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->outflowBC.k), mem_size_outflow_Q_k )); + checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->outflowBC.kN), mem_size_outflow_Q_k )); + checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->outflowBC.RhoBC), mem_size_outflow_Q_q )); - ////////////////////////////////////////////////////////////////////////// - double tmp = (double)mem_size_outflow_Q_q + 2. * (double)mem_size_outflow_Q_k + (double)parameter->getD3Qxx()*(double)mem_size_outflow_Q_q; - setMemsizeGPU(tmp, false); + ////////////////////////////////////////////////////////////////////////// + double tmp = (double)mem_size_outflow_Q_q + 2. * (double)mem_size_outflow_Q_k + (double)parameter->getD3Qxx()*(double)mem_size_outflow_Q_q; + setMemsizeGPU(tmp, false); } void CudaMemoryManager::cudaCopyOutflowBC(int lev) { - unsigned int mem_size_outflow_Q_k = sizeof(int)*parameter->getParH(lev)->outflowBC.numberOfBCnodes; - unsigned int mem_size_outflow_Q_q = sizeof(real)*parameter->getParH(lev)->outflowBC.numberOfBCnodes; + unsigned int mem_size_outflow_Q_k = sizeof(int)*parameter->getParH(lev)->outflowBC.numberOfBCnodes; + unsigned int mem_size_outflow_Q_q = sizeof(real)*parameter->getParH(lev)->outflowBC.numberOfBCnodes; - checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->outflowBC.q27[0], parameter->getParH(lev)->outflowBC.q27[0], parameter->getD3Qxx()* mem_size_outflow_Q_q, cudaMemcpyHostToDevice)); - checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->outflowBC.k, parameter->getParH(lev)->outflowBC.k, mem_size_outflow_Q_k, cudaMemcpyHostToDevice)); - checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->outflowBC.kN, parameter->getParH(lev)->outflowBC.kN, mem_size_outflow_Q_k, cudaMemcpyHostToDevice)); - checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->outflowBC.RhoBC, parameter->getParH(lev)->outflowBC.RhoBC, mem_size_outflow_Q_q, cudaMemcpyHostToDevice)); + checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->outflowBC.q27[0], parameter->getParH(lev)->outflowBC.q27[0], parameter->getD3Qxx()* mem_size_outflow_Q_q, cudaMemcpyHostToDevice)); + checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->outflowBC.k, parameter->getParH(lev)->outflowBC.k, mem_size_outflow_Q_k, cudaMemcpyHostToDevice)); + checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->outflowBC.kN, parameter->getParH(lev)->outflowBC.kN, mem_size_outflow_Q_k, cudaMemcpyHostToDevice)); + checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->outflowBC.RhoBC, parameter->getParH(lev)->outflowBC.RhoBC, mem_size_outflow_Q_q, cudaMemcpyHostToDevice)); } void CudaMemoryManager::cudaFreeOutflowBC(int lev) { - checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->outflowBC.q27[0] )); - checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->outflowBC.k )); - checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->outflowBC.kN )); - checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->outflowBC.RhoBC )); + checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->outflowBC.q27[0] )); + checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->outflowBC.k )); + checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->outflowBC.kN )); + checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->outflowBC.RhoBC )); } //No-Slip void CudaMemoryManager::cudaAllocNoSlipBC(int lev) { - unsigned int mem_size_Q_k = sizeof(int)*parameter->getParH(lev)->noSlipBC.numberOfBCnodes; - unsigned int mem_size_Q_q = sizeof(real)*parameter->getParH(lev)->noSlipBC.numberOfBCnodes; - unsigned int mem_size_Q_value = sizeof(long long)*parameter->getParH(lev)->noSlipBC.numberOfBCnodes; //Geller - unsigned int mem_size_Q_q_read = sizeof(real)*parameter->getParH(lev)->numberOfNoSlipBCnodesRead; //Geller + unsigned int mem_size_Q_k = sizeof(int)*parameter->getParH(lev)->noSlipBC.numberOfBCnodes; + unsigned int mem_size_Q_q = sizeof(real)*parameter->getParH(lev)->noSlipBC.numberOfBCnodes; + unsigned int mem_size_Q_value = sizeof(long long)*parameter->getParH(lev)->noSlipBC.numberOfBCnodes; //Geller + unsigned int mem_size_Q_q_read = sizeof(real)*parameter->getParH(lev)->numberOfNoSlipBCnodesRead; //Geller - //Host - checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->noSlipBC.q27[0]), parameter->getD3Qxx()*mem_size_Q_q )); - checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->noSlipBC.k), mem_size_Q_k )); - checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->noSlipBC.qread), mem_size_Q_q_read ));//Geller - checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->noSlipBC.valueQ), mem_size_Q_value ));//Geller + //Host + checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->noSlipBC.q27[0]), parameter->getD3Qxx()*mem_size_Q_q )); + checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->noSlipBC.k), mem_size_Q_k )); + checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->noSlipBC.qread), mem_size_Q_q_read ));//Geller + checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->noSlipBC.valueQ), mem_size_Q_value ));//Geller - //Device - checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->noSlipBC.q27[0]), parameter->getD3Qxx()* mem_size_Q_q )); - checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->noSlipBC.k), mem_size_Q_k )); + //Device + checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->noSlipBC.q27[0]), parameter->getD3Qxx()* mem_size_Q_q )); + checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->noSlipBC.k), mem_size_Q_k )); - ////////////////////////////////////////////////////////////////////////// - double tmp = (double)mem_size_Q_k + (double)parameter->getD3Qxx()*(double)mem_size_Q_q; - setMemsizeGPU(tmp, false); + ////////////////////////////////////////////////////////////////////////// + double tmp = (double)mem_size_Q_k + (double)parameter->getD3Qxx()*(double)mem_size_Q_q; + setMemsizeGPU(tmp, false); } void CudaMemoryManager::cudaCopyNoSlipBC(int lev) { - unsigned int mem_size_Q_k = sizeof(int)*parameter->getParH(lev)->noSlipBC.numberOfBCnodes; - unsigned int mem_size_Q_q = sizeof(real)*parameter->getParH(lev)->noSlipBC.numberOfBCnodes; + unsigned int mem_size_Q_k = sizeof(int)*parameter->getParH(lev)->noSlipBC.numberOfBCnodes; + unsigned int mem_size_Q_q = sizeof(real)*parameter->getParH(lev)->noSlipBC.numberOfBCnodes; - checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->noSlipBC.q27[0], parameter->getParH(lev)->noSlipBC.q27[0], parameter->getD3Qxx()* mem_size_Q_q, cudaMemcpyHostToDevice)); - checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->noSlipBC.k, parameter->getParH(lev)->noSlipBC.k, mem_size_Q_k, cudaMemcpyHostToDevice)); + checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->noSlipBC.q27[0], parameter->getParH(lev)->noSlipBC.q27[0], parameter->getD3Qxx()* mem_size_Q_q, cudaMemcpyHostToDevice)); + checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->noSlipBC.k, parameter->getParH(lev)->noSlipBC.k, mem_size_Q_k, cudaMemcpyHostToDevice)); } void CudaMemoryManager::cudaFreeNoSlipBC(int lev) { - checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->noSlipBC.q27[0])); - checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->noSlipBC.k)); - checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->noSlipBC.valueQ)); - checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->noSlipBC.qread)); + checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->noSlipBC.q27[0])); + checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->noSlipBC.k)); + checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->noSlipBC.valueQ)); + checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->noSlipBC.qread)); } //Geometrie void CudaMemoryManager::cudaAllocGeomBC(int lev) { - unsigned int mem_size_Q_k = sizeof(int)*parameter->getParH(lev)->geometryBC.numberOfBCnodes; - unsigned int mem_size_Q_q = sizeof(real)*parameter->getParH(lev)->geometryBC.numberOfBCnodes; + unsigned int mem_size_Q_k = sizeof(int)*parameter->getParH(lev)->geometryBC.numberOfBCnodes; + unsigned int mem_size_Q_q = sizeof(real)*parameter->getParH(lev)->geometryBC.numberOfBCnodes; - //Host - checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->geometryBC.q27[0]), parameter->getD3Qxx()*mem_size_Q_q )); - checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->geometryBC.k), mem_size_Q_k )); + //Host + checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->geometryBC.q27[0]), parameter->getD3Qxx()*mem_size_Q_q )); + checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->geometryBC.k), mem_size_Q_k )); - //Device - checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->geometryBC.q27[0]), parameter->getD3Qxx()* mem_size_Q_q )); - checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->geometryBC.k), mem_size_Q_k )); + //Device + checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->geometryBC.q27[0]), parameter->getD3Qxx()* mem_size_Q_q )); + checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->geometryBC.k), mem_size_Q_k )); - ////////////////////////////////////////////////////////////////////////// - double tmp = (double)mem_size_Q_k + (double)parameter->getD3Qxx()*(double)mem_size_Q_q; - setMemsizeGPU(tmp, false); + ////////////////////////////////////////////////////////////////////////// + double tmp = (double)mem_size_Q_k + (double)parameter->getD3Qxx()*(double)mem_size_Q_q; + setMemsizeGPU(tmp, false); } void CudaMemoryManager::cudaCopyGeomBC(int lev) { - unsigned int mem_size_Q_k = sizeof(int)*parameter->getParH(lev)->geometryBC.numberOfBCnodes; - unsigned int mem_size_Q_q = sizeof(real)*parameter->getParH(lev)->geometryBC.numberOfBCnodes; + unsigned int mem_size_Q_k = sizeof(int)*parameter->getParH(lev)->geometryBC.numberOfBCnodes; + unsigned int mem_size_Q_q = sizeof(real)*parameter->getParH(lev)->geometryBC.numberOfBCnodes; - checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->geometryBC.q27[0], parameter->getParH(lev)->geometryBC.q27[0], parameter->getD3Qxx()* mem_size_Q_q, cudaMemcpyHostToDevice)); - checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->geometryBC.k, parameter->getParH(lev)->geometryBC.k, mem_size_Q_k, cudaMemcpyHostToDevice)); + checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->geometryBC.q27[0], parameter->getParH(lev)->geometryBC.q27[0], parameter->getD3Qxx()* mem_size_Q_q, cudaMemcpyHostToDevice)); + checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->geometryBC.k, parameter->getParH(lev)->geometryBC.k, mem_size_Q_k, cudaMemcpyHostToDevice)); } void CudaMemoryManager::cudaFreeGeomBC(int lev) { - checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->geometryBC.q27[0])); - checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->geometryBC.k)); + checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->geometryBC.q27[0])); + checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->geometryBC.k)); } //Press void CudaMemoryManager::cudaAllocPress(int lev) { - unsigned int mem_size_Q_k = sizeof(int)*parameter->getParH(lev)->pressureBC.numberOfBCnodes; - unsigned int mem_size_Q_q = sizeof(real)*parameter->getParH(lev)->pressureBC.numberOfBCnodes; + unsigned int mem_size_Q_k = sizeof(int)*parameter->getParH(lev)->pressureBC.numberOfBCnodes; + unsigned int mem_size_Q_q = sizeof(real)*parameter->getParH(lev)->pressureBC.numberOfBCnodes; - //Host - checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->pressureBC.q27[0]), parameter->getD3Qxx()*mem_size_Q_q )); - checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->pressureBC.k), mem_size_Q_k )); - checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->pressureBC.kN), mem_size_Q_k )); - checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->pressureBC.RhoBC), mem_size_Q_q )); + //Host + checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->pressureBC.q27[0]), parameter->getD3Qxx()*mem_size_Q_q )); + checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->pressureBC.k), mem_size_Q_k )); + checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->pressureBC.kN), mem_size_Q_k )); + checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->pressureBC.RhoBC), mem_size_Q_q )); - //Device - checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->pressureBC.q27[0]), parameter->getD3Qxx()* mem_size_Q_q )); - checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->pressureBC.k), mem_size_Q_k )); - checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->pressureBC.kN), mem_size_Q_k )); - checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->pressureBC.RhoBC), mem_size_Q_q )); + //Device + checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->pressureBC.q27[0]), parameter->getD3Qxx()* mem_size_Q_q )); + checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->pressureBC.k), mem_size_Q_k )); + checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->pressureBC.kN), mem_size_Q_k )); + checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->pressureBC.RhoBC), mem_size_Q_q )); - ////////////////////////////////////////////////////////////////////////// - double tmp = 2. * (double)mem_size_Q_k + (double)mem_size_Q_q + (double)parameter->getD3Qxx()*(double)mem_size_Q_q; - setMemsizeGPU(tmp, false); + ////////////////////////////////////////////////////////////////////////// + double tmp = 2. * (double)mem_size_Q_k + (double)mem_size_Q_q + (double)parameter->getD3Qxx()*(double)mem_size_Q_q; + setMemsizeGPU(tmp, false); } void CudaMemoryManager::cudaCopyPress(int lev) { - unsigned int mem_size_Q_k = sizeof(int)*parameter->getParH(lev)->pressureBC.numberOfBCnodes; - unsigned int mem_size_Q_q = sizeof(real)*parameter->getParH(lev)->pressureBC.numberOfBCnodes; + unsigned int mem_size_Q_k = sizeof(int)*parameter->getParH(lev)->pressureBC.numberOfBCnodes; + unsigned int mem_size_Q_q = sizeof(real)*parameter->getParH(lev)->pressureBC.numberOfBCnodes; - checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->pressureBC.q27[0], parameter->getParH(lev)->pressureBC.q27[0], parameter->getD3Qxx()* mem_size_Q_q, cudaMemcpyHostToDevice)); - checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->pressureBC.k, parameter->getParH(lev)->pressureBC.k, mem_size_Q_k, cudaMemcpyHostToDevice)); - checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->pressureBC.kN, parameter->getParH(lev)->pressureBC.kN, mem_size_Q_k, cudaMemcpyHostToDevice)); - checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->pressureBC.RhoBC, parameter->getParH(lev)->pressureBC.RhoBC, mem_size_Q_q, cudaMemcpyHostToDevice)); + checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->pressureBC.q27[0], parameter->getParH(lev)->pressureBC.q27[0], parameter->getD3Qxx()* mem_size_Q_q, cudaMemcpyHostToDevice)); + checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->pressureBC.k, parameter->getParH(lev)->pressureBC.k, mem_size_Q_k, cudaMemcpyHostToDevice)); + checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->pressureBC.kN, parameter->getParH(lev)->pressureBC.kN, mem_size_Q_k, cudaMemcpyHostToDevice)); + checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->pressureBC.RhoBC, parameter->getParH(lev)->pressureBC.RhoBC, mem_size_Q_q, cudaMemcpyHostToDevice)); } void CudaMemoryManager::cudaFreePress(int lev) { - checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->pressureBC.q27[0])); - checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->pressureBC.k)); - checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->pressureBC.kN)); - checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->pressureBC.RhoBC)); + checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->pressureBC.q27[0])); + checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->pressureBC.k)); + checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->pressureBC.kN)); + checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->pressureBC.RhoBC)); } //Forcing void CudaMemoryManager::cudaAllocForcing() { - unsigned int mem_size = sizeof(real) * 3; - //Host - checkCudaErrors( cudaMallocHost((void**) &(parameter->forcingH), mem_size)); + unsigned int mem_size = sizeof(real) * 3; + //Host + checkCudaErrors( cudaMallocHost((void**) &(parameter->forcingH), mem_size)); parameter->forcingH[0] = parameter->getForcesDouble()[0]; parameter->forcingH[1] = parameter->getForcesDouble()[1]; parameter->forcingH[2] = parameter->getForcesDouble()[2]; - //Device - checkCudaErrors( cudaMalloc((void**) ¶meter->forcingD, mem_size)); - ////////////////////////////////////////////////////////////////////////// - double tmp = (double)mem_size; - setMemsizeGPU(tmp, false); + //Device + checkCudaErrors( cudaMalloc((void**) ¶meter->forcingD, mem_size)); + ////////////////////////////////////////////////////////////////////////// + double tmp = (double)mem_size; + setMemsizeGPU(tmp, false); } void CudaMemoryManager::cudaCopyForcingToDevice() { - unsigned int mem_size = sizeof(real) * 3; - checkCudaErrors( cudaMemcpy(parameter->forcingD, parameter->forcingH, mem_size, cudaMemcpyHostToDevice)); + unsigned int mem_size = sizeof(real) * 3; + checkCudaErrors( cudaMemcpy(parameter->forcingD, parameter->forcingH, mem_size, cudaMemcpyHostToDevice)); } void CudaMemoryManager::cudaCopyForcingToHost() { - unsigned int mem_size = sizeof(real) * 3; - checkCudaErrors( cudaMemcpy(parameter->forcingH, parameter->forcingD, mem_size, cudaMemcpyDeviceToHost)); + unsigned int mem_size = sizeof(real) * 3; + checkCudaErrors( cudaMemcpy(parameter->forcingH, parameter->forcingD, mem_size, cudaMemcpyDeviceToHost)); } void CudaMemoryManager::cudaFreeForcing() { - checkCudaErrors( cudaFreeHost(parameter->getForcesHost())); + checkCudaErrors( cudaFreeHost(parameter->getForcesHost())); } void CudaMemoryManager::cudaAllocLevelForcing(int level) @@ -433,22 +433,22 @@ void CudaMemoryManager::cudaAllocLevelForcing(int level) parameter->getParH(level)->forcing[1] = parameter->forcingH[1] / fy_t; parameter->getParH(level)->forcing[2] = parameter->forcingH[2] / fz_t; - //Device - checkCudaErrors( cudaMalloc((void**) ¶meter->getParD(level)->forcing, mem_size)); - ////////////////////////////////////////////////////////////////////////// - const double tmp = (double)mem_size; - setMemsizeGPU(tmp, false); + //Device + checkCudaErrors( cudaMalloc((void**) ¶meter->getParD(level)->forcing, mem_size)); + ////////////////////////////////////////////////////////////////////////// + const double tmp = (double)mem_size; + setMemsizeGPU(tmp, false); } void CudaMemoryManager::cudaCopyLevelForcingToDevice(int level) { - unsigned int mem_size = sizeof(real) * 3; - checkCudaErrors( cudaMemcpy(parameter->getParD(level)->forcing, parameter->getParH(level)->forcing, mem_size, cudaMemcpyHostToDevice)); + unsigned int mem_size = sizeof(real) * 3; + checkCudaErrors( cudaMemcpy(parameter->getParD(level)->forcing, parameter->getParH(level)->forcing, mem_size, cudaMemcpyHostToDevice)); } void CudaMemoryManager::cudaFreeLevelForcing(int level) { - checkCudaErrors( cudaFreeHost(parameter->getParH(level)->forcing)); + checkCudaErrors( cudaFreeHost(parameter->getParH(level)->forcing)); checkCudaErrors( cudaFree(parameter->getParD(level)->forcing)); } @@ -456,26 +456,26 @@ void CudaMemoryManager::cudaFreeLevelForcing(int level) //quadric Limiters void CudaMemoryManager::cudaAllocQuadricLimiters() { - unsigned int mem_size = sizeof(real) * 3; - //Host - checkCudaErrors( cudaMallocHost((void**) &(parameter->quadricLimitersH), mem_size)); + unsigned int mem_size = sizeof(real) * 3; + //Host + checkCudaErrors( cudaMallocHost((void**) &(parameter->quadricLimitersH), mem_size)); parameter->quadricLimitersH[0] = parameter->getQuadricLimitersDouble()[0]; parameter->quadricLimitersH[1] = parameter->getQuadricLimitersDouble()[1]; parameter->quadricLimitersH[2] = parameter->getQuadricLimitersDouble()[2]; - //Device - checkCudaErrors( cudaMalloc((void**) ¶meter->quadricLimitersD, mem_size)); - ////////////////////////////////////////////////////////////////////////// - double tmp = (double)mem_size; - setMemsizeGPU(tmp, false); + //Device + checkCudaErrors( cudaMalloc((void**) ¶meter->quadricLimitersD, mem_size)); + ////////////////////////////////////////////////////////////////////////// + double tmp = (double)mem_size; + setMemsizeGPU(tmp, false); } void CudaMemoryManager::cudaCopyQuadricLimitersToDevice() { - unsigned int mem_size = sizeof(real) * 3; - checkCudaErrors( cudaMemcpy(parameter->quadricLimitersD, parameter->quadricLimitersH, mem_size, cudaMemcpyHostToDevice)); + unsigned int mem_size = sizeof(real) * 3; + checkCudaErrors( cudaMemcpy(parameter->quadricLimitersD, parameter->quadricLimitersH, mem_size, cudaMemcpyHostToDevice)); } void CudaMemoryManager::cudaFreeQuadricLimiters() { - checkCudaErrors( cudaFreeHost(parameter->getQuadricLimitersHost())); + checkCudaErrors( cudaFreeHost(parameter->getQuadricLimitersHost())); } ////////////////////////////////////////////////////////////////////////// @@ -484,45 +484,45 @@ void CudaMemoryManager::cudaFreeQuadricLimiters() // X ///////////////////////////////////////////////////////////////////////////// void CudaMemoryManager::cudaAllocProcessNeighborX(int lev, unsigned int processNeighbor) { - //Host - checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->sendProcessNeighborX[processNeighbor].index ), parameter->getParH(lev)->sendProcessNeighborX[processNeighbor].memsizeIndex )); - checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->sendProcessNeighborX[processNeighbor].f[0] ), parameter->getD3Qxx() * parameter->getParH(lev)->sendProcessNeighborX[processNeighbor].memsizeFs )); - checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->recvProcessNeighborX[processNeighbor].index ), parameter->getParH(lev)->recvProcessNeighborX[processNeighbor].memsizeIndex )); - checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->recvProcessNeighborX[processNeighbor].f[0] ), parameter->getD3Qxx() * parameter->getParH(lev)->recvProcessNeighborX[processNeighbor].memsizeFs )); + //Host + checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->sendProcessNeighborX[processNeighbor].index ), parameter->getParH(lev)->sendProcessNeighborX[processNeighbor].memsizeIndex )); + checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->sendProcessNeighborX[processNeighbor].f[0] ), parameter->getD3Qxx() * parameter->getParH(lev)->sendProcessNeighborX[processNeighbor].memsizeFs )); + checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->recvProcessNeighborX[processNeighbor].index ), parameter->getParH(lev)->recvProcessNeighborX[processNeighbor].memsizeIndex )); + checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->recvProcessNeighborX[processNeighbor].f[0] ), parameter->getD3Qxx() * parameter->getParH(lev)->recvProcessNeighborX[processNeighbor].memsizeFs )); - //Device - checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->sendProcessNeighborX[processNeighbor].index ), parameter->getParD(lev)->sendProcessNeighborX[processNeighbor].memsizeIndex )); - checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->sendProcessNeighborX[processNeighbor].f[0] ), parameter->getD3Qxx() * parameter->getParD(lev)->sendProcessNeighborX[processNeighbor].memsizeFs )); - checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->recvProcessNeighborX[processNeighbor].index ), parameter->getParD(lev)->recvProcessNeighborX[processNeighbor].memsizeIndex )); - checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->recvProcessNeighborX[processNeighbor].f[0] ), parameter->getD3Qxx() * parameter->getParD(lev)->recvProcessNeighborX[processNeighbor].memsizeFs )); + //Device + checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->sendProcessNeighborX[processNeighbor].index ), parameter->getParD(lev)->sendProcessNeighborX[processNeighbor].memsizeIndex )); + checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->sendProcessNeighborX[processNeighbor].f[0] ), parameter->getD3Qxx() * parameter->getParD(lev)->sendProcessNeighborX[processNeighbor].memsizeFs )); + checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->recvProcessNeighborX[processNeighbor].index ), parameter->getParD(lev)->recvProcessNeighborX[processNeighbor].memsizeIndex )); + checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->recvProcessNeighborX[processNeighbor].f[0] ), parameter->getD3Qxx() * parameter->getParD(lev)->recvProcessNeighborX[processNeighbor].memsizeFs )); - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - double tmp = (double)parameter->getParH(lev)->sendProcessNeighborX[processNeighbor].memsizeIndex + (double)parameter->getD3Qxx()*(double)parameter->getParH(lev)->sendProcessNeighborX[processNeighbor].memsizeFs + - (double)parameter->getParH(lev)->recvProcessNeighborX[processNeighbor].memsizeIndex + (double)parameter->getD3Qxx()*(double)parameter->getParH(lev)->recvProcessNeighborX[processNeighbor].memsizeFs; - setMemsizeGPU(tmp, false); - //printf("memsize GPU for neighbors %f \n",tmp/1000000.0); + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + double tmp = (double)parameter->getParH(lev)->sendProcessNeighborX[processNeighbor].memsizeIndex + (double)parameter->getD3Qxx()*(double)parameter->getParH(lev)->sendProcessNeighborX[processNeighbor].memsizeFs + + (double)parameter->getParH(lev)->recvProcessNeighborX[processNeighbor].memsizeIndex + (double)parameter->getD3Qxx()*(double)parameter->getParH(lev)->recvProcessNeighborX[processNeighbor].memsizeFs; + setMemsizeGPU(tmp, false); + //printf("memsize GPU for neighbors %f \n",tmp/1000000.0); } void CudaMemoryManager::cudaCopyProcessNeighborXIndex(int lev, unsigned int processNeighbor) { - //copy send Index - checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->sendProcessNeighborX[processNeighbor].index, - parameter->getParH(lev)->sendProcessNeighborX[processNeighbor].index, - parameter->getParH(lev)->sendProcessNeighborX[processNeighbor].memsizeIndex, - cudaMemcpyHostToDevice)); - //copy recv Index - checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->recvProcessNeighborX[processNeighbor].index, - parameter->getParH(lev)->recvProcessNeighborX[processNeighbor].index, - parameter->getParH(lev)->recvProcessNeighborX[processNeighbor].memsizeIndex, - cudaMemcpyHostToDevice)); + //copy send Index + checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->sendProcessNeighborX[processNeighbor].index, + parameter->getParH(lev)->sendProcessNeighborX[processNeighbor].index, + parameter->getParH(lev)->sendProcessNeighborX[processNeighbor].memsizeIndex, + cudaMemcpyHostToDevice)); + //copy recv Index + checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->recvProcessNeighborX[processNeighbor].index, + parameter->getParH(lev)->recvProcessNeighborX[processNeighbor].index, + parameter->getParH(lev)->recvProcessNeighborX[processNeighbor].memsizeIndex, + cudaMemcpyHostToDevice)); } void CudaMemoryManager::cudaCopyProcessNeighborXFsHD(int lev, unsigned int processNeighbor, const unsigned int &memsizeFsRecv) { if (!parameter->getStreamManager()->streamIsRegistered(CudaStreamIndex::SubDomainBorder)) checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->recvProcessNeighborX[processNeighbor].f[0], - parameter->getParH(lev)->recvProcessNeighborX[processNeighbor].f[0], - parameter->getD3Qxx() * memsizeFsRecv, - cudaMemcpyHostToDevice)); + parameter->getParH(lev)->recvProcessNeighborX[processNeighbor].f[0], + parameter->getD3Qxx() * memsizeFsRecv, + cudaMemcpyHostToDevice)); else checkCudaErrors( cudaMemcpyAsync(parameter->getParD(lev)->recvProcessNeighborX[processNeighbor].f[0], parameter->getParH(lev)->recvProcessNeighborX[processNeighbor].f[0], @@ -534,65 +534,65 @@ void CudaMemoryManager::cudaCopyProcessNeighborXFsDH(int lev, unsigned int proce const unsigned int &memsizeFsSend) { if (!parameter->getStreamManager()->streamIsRegistered(CudaStreamIndex::SubDomainBorder)) - checkCudaErrors( cudaMemcpy(parameter->getParH(lev)->sendProcessNeighborX[processNeighbor].f[0], - parameter->getParD(lev)->sendProcessNeighborX[processNeighbor].f[0], - parameter->getD3Qxx() * memsizeFsSend, - cudaMemcpyDeviceToHost)); + checkCudaErrors( cudaMemcpy(parameter->getParH(lev)->sendProcessNeighborX[processNeighbor].f[0], + parameter->getParD(lev)->sendProcessNeighborX[processNeighbor].f[0], + parameter->getD3Qxx() * memsizeFsSend, + cudaMemcpyDeviceToHost)); else checkCudaErrors( cudaMemcpyAsync(parameter->getParH(lev)->sendProcessNeighborX[processNeighbor].f[0], - parameter->getParD(lev)->sendProcessNeighborX[processNeighbor].f[0], - parameter->getD3Qxx() * memsizeFsSend, - cudaMemcpyDeviceToHost, + parameter->getParD(lev)->sendProcessNeighborX[processNeighbor].f[0], + parameter->getD3Qxx() * memsizeFsSend, + cudaMemcpyDeviceToHost, parameter->getStreamManager()->getStream(CudaStreamIndex::SubDomainBorder))); } void CudaMemoryManager::cudaFreeProcessNeighborX(int lev, unsigned int processNeighbor) { - checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->sendProcessNeighborX[processNeighbor].index )); - checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->sendProcessNeighborX[processNeighbor].f[0] )); - checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->recvProcessNeighborX[processNeighbor].index )); - checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->recvProcessNeighborX[processNeighbor].f[0] )); + checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->sendProcessNeighborX[processNeighbor].index )); + checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->sendProcessNeighborX[processNeighbor].f[0] )); + checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->recvProcessNeighborX[processNeighbor].index )); + checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->recvProcessNeighborX[processNeighbor].f[0] )); } // Y ///////////////////////////////////////////////////////////////////////////// void CudaMemoryManager::cudaAllocProcessNeighborY(int lev, unsigned int processNeighbor) { - //Host - checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->sendProcessNeighborY[processNeighbor].index ), parameter->getParH(lev)->sendProcessNeighborY[processNeighbor].memsizeIndex )); - checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->sendProcessNeighborY[processNeighbor].f[0] ), parameter->getD3Qxx() * parameter->getParH(lev)->sendProcessNeighborY[processNeighbor].memsizeFs )); - checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->recvProcessNeighborY[processNeighbor].index ), parameter->getParH(lev)->recvProcessNeighborY[processNeighbor].memsizeIndex )); - checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->recvProcessNeighborY[processNeighbor].f[0] ), parameter->getD3Qxx() * parameter->getParH(lev)->recvProcessNeighborY[processNeighbor].memsizeFs )); + //Host + checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->sendProcessNeighborY[processNeighbor].index ), parameter->getParH(lev)->sendProcessNeighborY[processNeighbor].memsizeIndex )); + checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->sendProcessNeighborY[processNeighbor].f[0] ), parameter->getD3Qxx() * parameter->getParH(lev)->sendProcessNeighborY[processNeighbor].memsizeFs )); + checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->recvProcessNeighborY[processNeighbor].index ), parameter->getParH(lev)->recvProcessNeighborY[processNeighbor].memsizeIndex )); + checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->recvProcessNeighborY[processNeighbor].f[0] ), parameter->getD3Qxx() * parameter->getParH(lev)->recvProcessNeighborY[processNeighbor].memsizeFs )); - //Device - checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->sendProcessNeighborY[processNeighbor].index ), parameter->getParD(lev)->sendProcessNeighborY[processNeighbor].memsizeIndex )); - checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->sendProcessNeighborY[processNeighbor].f[0] ), parameter->getD3Qxx() * parameter->getParD(lev)->sendProcessNeighborY[processNeighbor].memsizeFs )); - checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->recvProcessNeighborY[processNeighbor].index ), parameter->getParD(lev)->recvProcessNeighborY[processNeighbor].memsizeIndex )); - checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->recvProcessNeighborY[processNeighbor].f[0] ), parameter->getD3Qxx() * parameter->getParD(lev)->recvProcessNeighborY[processNeighbor].memsizeFs )); + //Device + checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->sendProcessNeighborY[processNeighbor].index ), parameter->getParD(lev)->sendProcessNeighborY[processNeighbor].memsizeIndex )); + checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->sendProcessNeighborY[processNeighbor].f[0] ), parameter->getD3Qxx() * parameter->getParD(lev)->sendProcessNeighborY[processNeighbor].memsizeFs )); + checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->recvProcessNeighborY[processNeighbor].index ), parameter->getParD(lev)->recvProcessNeighborY[processNeighbor].memsizeIndex )); + checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->recvProcessNeighborY[processNeighbor].f[0] ), parameter->getD3Qxx() * parameter->getParD(lev)->recvProcessNeighborY[processNeighbor].memsizeFs )); - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - double tmp = (double)parameter->getParH(lev)->sendProcessNeighborY[processNeighbor].memsizeIndex + (double)parameter->getD3Qxx()*(double)parameter->getParH(lev)->sendProcessNeighborY[processNeighbor].memsizeFs + - (double)parameter->getParH(lev)->recvProcessNeighborY[processNeighbor].memsizeIndex + (double)parameter->getD3Qxx()*(double)parameter->getParH(lev)->recvProcessNeighborY[processNeighbor].memsizeFs; - setMemsizeGPU(tmp, false); - //printf("memsize GPU for neighbors %f \n",tmp/1000000.0); + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + double tmp = (double)parameter->getParH(lev)->sendProcessNeighborY[processNeighbor].memsizeIndex + (double)parameter->getD3Qxx()*(double)parameter->getParH(lev)->sendProcessNeighborY[processNeighbor].memsizeFs + + (double)parameter->getParH(lev)->recvProcessNeighborY[processNeighbor].memsizeIndex + (double)parameter->getD3Qxx()*(double)parameter->getParH(lev)->recvProcessNeighborY[processNeighbor].memsizeFs; + setMemsizeGPU(tmp, false); + //printf("memsize GPU for neighbors %f \n",tmp/1000000.0); } void CudaMemoryManager::cudaCopyProcessNeighborYIndex(int lev, unsigned int processNeighbor) { - //copy send Index - checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->sendProcessNeighborY[processNeighbor].index, - parameter->getParH(lev)->sendProcessNeighborY[processNeighbor].index, - parameter->getParH(lev)->sendProcessNeighborY[processNeighbor].memsizeIndex, - cudaMemcpyHostToDevice)); - //copy recv Index - checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->recvProcessNeighborY[processNeighbor].index, - parameter->getParH(lev)->recvProcessNeighborY[processNeighbor].index, - parameter->getParH(lev)->recvProcessNeighborY[processNeighbor].memsizeIndex, - cudaMemcpyHostToDevice)); + //copy send Index + checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->sendProcessNeighborY[processNeighbor].index, + parameter->getParH(lev)->sendProcessNeighborY[processNeighbor].index, + parameter->getParH(lev)->sendProcessNeighborY[processNeighbor].memsizeIndex, + cudaMemcpyHostToDevice)); + //copy recv Index + checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->recvProcessNeighborY[processNeighbor].index, + parameter->getParH(lev)->recvProcessNeighborY[processNeighbor].index, + parameter->getParH(lev)->recvProcessNeighborY[processNeighbor].memsizeIndex, + cudaMemcpyHostToDevice)); } void CudaMemoryManager::cudaCopyProcessNeighborYFsHD(int lev, unsigned int processNeighbor, const unsigned int &memsizeFsRecv) { if (!parameter->getStreamManager()->streamIsRegistered(CudaStreamIndex::SubDomainBorder)) - checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->recvProcessNeighborY[processNeighbor].f[0], - parameter->getParH(lev)->recvProcessNeighborY[processNeighbor].f[0], - parameter->getD3Qxx() * memsizeFsRecv, - cudaMemcpyHostToDevice)); + checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->recvProcessNeighborY[processNeighbor].f[0], + parameter->getParH(lev)->recvProcessNeighborY[processNeighbor].f[0], + parameter->getD3Qxx() * memsizeFsRecv, + cudaMemcpyHostToDevice)); else checkCudaErrors( cudaMemcpyAsync(parameter->getParD(lev)->recvProcessNeighborY[processNeighbor].f[0], parameter->getParH(lev)->recvProcessNeighborY[processNeighbor].f[0], @@ -603,10 +603,10 @@ void CudaMemoryManager::cudaCopyProcessNeighborYFsHD(int lev, unsigned int proce void CudaMemoryManager::cudaCopyProcessNeighborYFsDH(int lev, unsigned int processNeighbor, const unsigned int &memsizeFsSend) { if (!parameter->getStreamManager()->streamIsRegistered(CudaStreamIndex::SubDomainBorder)) - checkCudaErrors( cudaMemcpy(parameter->getParH(lev)->sendProcessNeighborY[processNeighbor].f[0], - parameter->getParD(lev)->sendProcessNeighborY[processNeighbor].f[0], - parameter->getD3Qxx() * memsizeFsSend, - cudaMemcpyDeviceToHost)); + checkCudaErrors( cudaMemcpy(parameter->getParH(lev)->sendProcessNeighborY[processNeighbor].f[0], + parameter->getParD(lev)->sendProcessNeighborY[processNeighbor].f[0], + parameter->getD3Qxx() * memsizeFsSend, + cudaMemcpyDeviceToHost)); else checkCudaErrors( cudaMemcpyAsync(parameter->getParH(lev)->sendProcessNeighborY[processNeighbor].f[0], parameter->getParD(lev)->sendProcessNeighborY[processNeighbor].f[0], @@ -616,58 +616,58 @@ void CudaMemoryManager::cudaCopyProcessNeighborYFsDH(int lev, unsigned int proce } void CudaMemoryManager::cudaFreeProcessNeighborY(int lev, unsigned int processNeighbor) { - checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->sendProcessNeighborY[processNeighbor].index )); - checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->sendProcessNeighborY[processNeighbor].f[0] )); - checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->recvProcessNeighborY[processNeighbor].index )); - checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->recvProcessNeighborY[processNeighbor].f[0] )); + checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->sendProcessNeighborY[processNeighbor].index )); + checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->sendProcessNeighborY[processNeighbor].f[0] )); + checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->recvProcessNeighborY[processNeighbor].index )); + checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->recvProcessNeighborY[processNeighbor].f[0] )); } // Z ///////////////////////////////////////////////////////////////////////////// void CudaMemoryManager::cudaAllocProcessNeighborZ(int lev, unsigned int processNeighbor) { - //Host - checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->sendProcessNeighborZ[processNeighbor].index ), parameter->getParH(lev)->sendProcessNeighborZ[processNeighbor].memsizeIndex )); - checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->sendProcessNeighborZ[processNeighbor].f[0] ), parameter->getD3Qxx() * parameter->getParH(lev)->sendProcessNeighborZ[processNeighbor].memsizeFs )); - checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->recvProcessNeighborZ[processNeighbor].index ), parameter->getParH(lev)->recvProcessNeighborZ[processNeighbor].memsizeIndex )); - checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->recvProcessNeighborZ[processNeighbor].f[0] ), parameter->getD3Qxx() * parameter->getParH(lev)->recvProcessNeighborZ[processNeighbor].memsizeFs )); + //Host + checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->sendProcessNeighborZ[processNeighbor].index ), parameter->getParH(lev)->sendProcessNeighborZ[processNeighbor].memsizeIndex )); + checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->sendProcessNeighborZ[processNeighbor].f[0] ), parameter->getD3Qxx() * parameter->getParH(lev)->sendProcessNeighborZ[processNeighbor].memsizeFs )); + checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->recvProcessNeighborZ[processNeighbor].index ), parameter->getParH(lev)->recvProcessNeighborZ[processNeighbor].memsizeIndex )); + checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->recvProcessNeighborZ[processNeighbor].f[0] ), parameter->getD3Qxx() * parameter->getParH(lev)->recvProcessNeighborZ[processNeighbor].memsizeFs )); - //Device - checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->sendProcessNeighborZ[processNeighbor].index ), parameter->getParD(lev)->sendProcessNeighborZ[processNeighbor].memsizeIndex )); - checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->sendProcessNeighborZ[processNeighbor].f[0] ), parameter->getD3Qxx() * parameter->getParD(lev)->sendProcessNeighborZ[processNeighbor].memsizeFs )); - checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->recvProcessNeighborZ[processNeighbor].index ), parameter->getParD(lev)->recvProcessNeighborZ[processNeighbor].memsizeIndex )); - checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->recvProcessNeighborZ[processNeighbor].f[0] ), parameter->getD3Qxx() * parameter->getParD(lev)->recvProcessNeighborZ[processNeighbor].memsizeFs )); + //Device + checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->sendProcessNeighborZ[processNeighbor].index ), parameter->getParD(lev)->sendProcessNeighborZ[processNeighbor].memsizeIndex )); + checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->sendProcessNeighborZ[processNeighbor].f[0] ), parameter->getD3Qxx() * parameter->getParD(lev)->sendProcessNeighborZ[processNeighbor].memsizeFs )); + checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->recvProcessNeighborZ[processNeighbor].index ), parameter->getParD(lev)->recvProcessNeighborZ[processNeighbor].memsizeIndex )); + checkCudaErrors( cudaMalloc((void**) &(parameter->getParD(lev)->recvProcessNeighborZ[processNeighbor].f[0] ), parameter->getD3Qxx() * parameter->getParD(lev)->recvProcessNeighborZ[processNeighbor].memsizeFs )); - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - double tmp = (double)parameter->getParH(lev)->sendProcessNeighborZ[processNeighbor].memsizeIndex + (double)parameter->getD3Qxx()*(double)parameter->getParH(lev)->sendProcessNeighborZ[processNeighbor].memsizeFs + - (double)parameter->getParH(lev)->recvProcessNeighborZ[processNeighbor].memsizeIndex + (double)parameter->getD3Qxx()*(double)parameter->getParH(lev)->recvProcessNeighborZ[processNeighbor].memsizeFs; - setMemsizeGPU(tmp, false); - //printf("memsize GPU for neighbors %f \n",tmp/1000000.0); + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + double tmp = (double)parameter->getParH(lev)->sendProcessNeighborZ[processNeighbor].memsizeIndex + (double)parameter->getD3Qxx()*(double)parameter->getParH(lev)->sendProcessNeighborZ[processNeighbor].memsizeFs + + (double)parameter->getParH(lev)->recvProcessNeighborZ[processNeighbor].memsizeIndex + (double)parameter->getD3Qxx()*(double)parameter->getParH(lev)->recvProcessNeighborZ[processNeighbor].memsizeFs; + setMemsizeGPU(tmp, false); + //printf("memsize GPU for neighbors %f \n",tmp/1000000.0); } void CudaMemoryManager::cudaCopyProcessNeighborZIndex(int lev, unsigned int processNeighbor) { - //copy send Index - checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->sendProcessNeighborZ[processNeighbor].index, - parameter->getParH(lev)->sendProcessNeighborZ[processNeighbor].index, - parameter->getParH(lev)->sendProcessNeighborZ[processNeighbor].memsizeIndex, - cudaMemcpyHostToDevice)); - //copy recv Index - checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->recvProcessNeighborZ[processNeighbor].index, - parameter->getParH(lev)->recvProcessNeighborZ[processNeighbor].index, - parameter->getParH(lev)->recvProcessNeighborZ[processNeighbor].memsizeIndex, - cudaMemcpyHostToDevice)); + //copy send Index + checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->sendProcessNeighborZ[processNeighbor].index, + parameter->getParH(lev)->sendProcessNeighborZ[processNeighbor].index, + parameter->getParH(lev)->sendProcessNeighborZ[processNeighbor].memsizeIndex, + cudaMemcpyHostToDevice)); + //copy recv Index + checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->recvProcessNeighborZ[processNeighbor].index, + parameter->getParH(lev)->recvProcessNeighborZ[processNeighbor].index, + parameter->getParH(lev)->recvProcessNeighborZ[processNeighbor].memsizeIndex, + cudaMemcpyHostToDevice)); } void CudaMemoryManager::cudaCopyProcessNeighborZFsHD(int lev, unsigned int processNeighbor, const unsigned int &memsizeFsRecv) { if (!parameter->getStreamManager()->streamIsRegistered(CudaStreamIndex::SubDomainBorder)) - checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->recvProcessNeighborZ[processNeighbor].f[0], - parameter->getParH(lev)->recvProcessNeighborZ[processNeighbor].f[0], - parameter->getD3Qxx() * memsizeFsRecv, - cudaMemcpyHostToDevice)); + checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->recvProcessNeighborZ[processNeighbor].f[0], + parameter->getParH(lev)->recvProcessNeighborZ[processNeighbor].f[0], + parameter->getD3Qxx() * memsizeFsRecv, + cudaMemcpyHostToDevice)); else checkCudaErrors( cudaMemcpyAsync(parameter->getParD(lev)->recvProcessNeighborZ[processNeighbor].f[0], - parameter->getParH(lev)->recvProcessNeighborZ[processNeighbor].f[0], - parameter->getD3Qxx() * memsizeFsRecv, - cudaMemcpyHostToDevice, + parameter->getParH(lev)->recvProcessNeighborZ[processNeighbor].f[0], + parameter->getD3Qxx() * memsizeFsRecv, + cudaMemcpyHostToDevice, parameter->getStreamManager()->getStream(CudaStreamIndex::SubDomainBorder))); } void CudaMemoryManager::cudaCopyProcessNeighborZFsDH(int lev, unsigned int processNeighbor, @@ -675,22 +675,22 @@ void CudaMemoryManager::cudaCopyProcessNeighborZFsDH(int lev, unsigned int proce { if (!parameter->getStreamManager()->streamIsRegistered(CudaStreamIndex::SubDomainBorder)) checkCudaErrors( cudaMemcpy(parameter->getParH(lev)->sendProcessNeighborZ[processNeighbor].f[0], - parameter->getParD(lev)->sendProcessNeighborZ[processNeighbor].f[0], - parameter->getD3Qxx() * memsizeFsSend, - cudaMemcpyDeviceToHost)); + parameter->getParD(lev)->sendProcessNeighborZ[processNeighbor].f[0], + parameter->getD3Qxx() * memsizeFsSend, + cudaMemcpyDeviceToHost)); else checkCudaErrors( cudaMemcpyAsync(parameter->getParH(lev)->sendProcessNeighborZ[processNeighbor].f[0], - parameter->getParD(lev)->sendProcessNeighborZ[processNeighbor].f[0], - parameter->getD3Qxx() * memsizeFsSend, - cudaMemcpyDeviceToHost, + parameter->getParD(lev)->sendProcessNeighborZ[processNeighbor].f[0], + parameter->getD3Qxx() * memsizeFsSend, + cudaMemcpyDeviceToHost, parameter->getStreamManager()->getStream(CudaStreamIndex::SubDomainBorder))); } void CudaMemoryManager::cudaFreeProcessNeighborZ(int lev, unsigned int processNeighbor) { - checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->sendProcessNeighborZ[processNeighbor].index )); - checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->sendProcessNeighborZ[processNeighbor].f[0] )); - checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->recvProcessNeighborZ[processNeighbor].index )); - checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->recvProcessNeighborZ[processNeighbor].f[0] )); + checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->sendProcessNeighborZ[processNeighbor].index )); + checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->sendProcessNeighborZ[processNeighbor].f[0] )); + checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->recvProcessNeighborZ[processNeighbor].index )); + checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->recvProcessNeighborZ[processNeighbor].f[0] )); } ////////////////////////////////////////////////////////////////////////// //Process Neighbors @@ -698,179 +698,179 @@ void CudaMemoryManager::cudaFreeProcessNeighborZ(int lev, unsigned int processNe // X ///////////////////////////////////////////////////////////////////////////// void CudaMemoryManager::cudaAllocProcessNeighborF3X(int lev, unsigned int processNeighbor) { - //Host - checkCudaErrors(cudaMallocHost((void**) &(parameter->getParH(lev)->sendProcessNeighborF3X[processNeighbor].index), parameter->getParH(lev)->sendProcessNeighborF3X[processNeighbor].memsizeIndex)); - checkCudaErrors(cudaMallocHost((void**) &(parameter->getParH(lev)->sendProcessNeighborF3X[processNeighbor].g[0]), parameter->getParH(lev)->sendProcessNeighborF3X[processNeighbor].memsizeGs)); - checkCudaErrors(cudaMallocHost((void**) &(parameter->getParH(lev)->recvProcessNeighborF3X[processNeighbor].index), parameter->getParH(lev)->recvProcessNeighborF3X[processNeighbor].memsizeIndex)); - checkCudaErrors(cudaMallocHost((void**) &(parameter->getParH(lev)->recvProcessNeighborF3X[processNeighbor].g[0]), parameter->getParH(lev)->recvProcessNeighborF3X[processNeighbor].memsizeGs)); + //Host + checkCudaErrors(cudaMallocHost((void**) &(parameter->getParH(lev)->sendProcessNeighborF3X[processNeighbor].index), parameter->getParH(lev)->sendProcessNeighborF3X[processNeighbor].memsizeIndex)); + checkCudaErrors(cudaMallocHost((void**) &(parameter->getParH(lev)->sendProcessNeighborF3X[processNeighbor].g[0]), parameter->getParH(lev)->sendProcessNeighborF3X[processNeighbor].memsizeGs)); + checkCudaErrors(cudaMallocHost((void**) &(parameter->getParH(lev)->recvProcessNeighborF3X[processNeighbor].index), parameter->getParH(lev)->recvProcessNeighborF3X[processNeighbor].memsizeIndex)); + checkCudaErrors(cudaMallocHost((void**) &(parameter->getParH(lev)->recvProcessNeighborF3X[processNeighbor].g[0]), parameter->getParH(lev)->recvProcessNeighborF3X[processNeighbor].memsizeGs)); - //Device - checkCudaErrors(cudaMalloc((void**) &(parameter->getParD(lev)->sendProcessNeighborF3X[processNeighbor].index), parameter->getParD(lev)->sendProcessNeighborF3X[processNeighbor].memsizeIndex)); - checkCudaErrors(cudaMalloc((void**) &(parameter->getParD(lev)->sendProcessNeighborF3X[processNeighbor].g[0]), parameter->getParD(lev)->sendProcessNeighborF3X[processNeighbor].memsizeGs)); - checkCudaErrors(cudaMalloc((void**) &(parameter->getParD(lev)->recvProcessNeighborF3X[processNeighbor].index), parameter->getParD(lev)->recvProcessNeighborF3X[processNeighbor].memsizeIndex)); - checkCudaErrors(cudaMalloc((void**) &(parameter->getParD(lev)->recvProcessNeighborF3X[processNeighbor].g[0]), parameter->getParD(lev)->recvProcessNeighborF3X[processNeighbor].memsizeGs)); + //Device + checkCudaErrors(cudaMalloc((void**) &(parameter->getParD(lev)->sendProcessNeighborF3X[processNeighbor].index), parameter->getParD(lev)->sendProcessNeighborF3X[processNeighbor].memsizeIndex)); + checkCudaErrors(cudaMalloc((void**) &(parameter->getParD(lev)->sendProcessNeighborF3X[processNeighbor].g[0]), parameter->getParD(lev)->sendProcessNeighborF3X[processNeighbor].memsizeGs)); + checkCudaErrors(cudaMalloc((void**) &(parameter->getParD(lev)->recvProcessNeighborF3X[processNeighbor].index), parameter->getParD(lev)->recvProcessNeighborF3X[processNeighbor].memsizeIndex)); + checkCudaErrors(cudaMalloc((void**) &(parameter->getParD(lev)->recvProcessNeighborF3X[processNeighbor].g[0]), parameter->getParD(lev)->recvProcessNeighborF3X[processNeighbor].memsizeGs)); - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - double tmp = - (double)parameter->getParH(lev)->sendProcessNeighborF3X[processNeighbor].memsizeIndex + (double)parameter->getParH(lev)->sendProcessNeighborF3X[processNeighbor].memsizeGs + - (double)parameter->getParH(lev)->recvProcessNeighborF3X[processNeighbor].memsizeIndex + (double)parameter->getParH(lev)->recvProcessNeighborF3X[processNeighbor].memsizeGs; - setMemsizeGPU(tmp, false); + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + double tmp = + (double)parameter->getParH(lev)->sendProcessNeighborF3X[processNeighbor].memsizeIndex + (double)parameter->getParH(lev)->sendProcessNeighborF3X[processNeighbor].memsizeGs + + (double)parameter->getParH(lev)->recvProcessNeighborF3X[processNeighbor].memsizeIndex + (double)parameter->getParH(lev)->recvProcessNeighborF3X[processNeighbor].memsizeGs; + setMemsizeGPU(tmp, false); } void CudaMemoryManager::cudaCopyProcessNeighborF3XIndex(int lev, unsigned int processNeighbor) { - //copy send Index - checkCudaErrors(cudaMemcpy( - parameter->getParD(lev)->sendProcessNeighborF3X[processNeighbor].index, - parameter->getParH(lev)->sendProcessNeighborF3X[processNeighbor].index, - parameter->getParH(lev)->sendProcessNeighborF3X[processNeighbor].memsizeIndex, - cudaMemcpyHostToDevice)); - //copy recv Index - checkCudaErrors(cudaMemcpy( - parameter->getParD(lev)->recvProcessNeighborF3X[processNeighbor].index, - parameter->getParH(lev)->recvProcessNeighborF3X[processNeighbor].index, - parameter->getParH(lev)->recvProcessNeighborF3X[processNeighbor].memsizeIndex, - cudaMemcpyHostToDevice)); + //copy send Index + checkCudaErrors(cudaMemcpy( + parameter->getParD(lev)->sendProcessNeighborF3X[processNeighbor].index, + parameter->getParH(lev)->sendProcessNeighborF3X[processNeighbor].index, + parameter->getParH(lev)->sendProcessNeighborF3X[processNeighbor].memsizeIndex, + cudaMemcpyHostToDevice)); + //copy recv Index + checkCudaErrors(cudaMemcpy( + parameter->getParD(lev)->recvProcessNeighborF3X[processNeighbor].index, + parameter->getParH(lev)->recvProcessNeighborF3X[processNeighbor].index, + parameter->getParH(lev)->recvProcessNeighborF3X[processNeighbor].memsizeIndex, + cudaMemcpyHostToDevice)); } void CudaMemoryManager::cudaCopyProcessNeighborF3XFsHD(int lev, unsigned int processNeighbor) { - checkCudaErrors(cudaMemcpy( - parameter->getParD(lev)->recvProcessNeighborF3X[processNeighbor].g[0], - parameter->getParH(lev)->recvProcessNeighborF3X[processNeighbor].g[0], - parameter->getParD(lev)->recvProcessNeighborF3X[processNeighbor].memsizeGs, - cudaMemcpyHostToDevice)); + checkCudaErrors(cudaMemcpy( + parameter->getParD(lev)->recvProcessNeighborF3X[processNeighbor].g[0], + parameter->getParH(lev)->recvProcessNeighborF3X[processNeighbor].g[0], + parameter->getParD(lev)->recvProcessNeighborF3X[processNeighbor].memsizeGs, + cudaMemcpyHostToDevice)); } void CudaMemoryManager::cudaCopyProcessNeighborF3XFsDH(int lev, unsigned int processNeighbor) { - checkCudaErrors(cudaMemcpy( - parameter->getParH(lev)->sendProcessNeighborF3X[processNeighbor].g[0], - parameter->getParD(lev)->sendProcessNeighborF3X[processNeighbor].g[0], - parameter->getParD(lev)->sendProcessNeighborF3X[processNeighbor].memsizeGs, - cudaMemcpyDeviceToHost)); + checkCudaErrors(cudaMemcpy( + parameter->getParH(lev)->sendProcessNeighborF3X[processNeighbor].g[0], + parameter->getParD(lev)->sendProcessNeighborF3X[processNeighbor].g[0], + parameter->getParD(lev)->sendProcessNeighborF3X[processNeighbor].memsizeGs, + cudaMemcpyDeviceToHost)); } void CudaMemoryManager::cudaFreeProcessNeighborF3X(int lev, unsigned int processNeighbor) { - checkCudaErrors(cudaFreeHost(parameter->getParH(lev)->sendProcessNeighborF3X[processNeighbor].index)); - checkCudaErrors(cudaFreeHost(parameter->getParH(lev)->sendProcessNeighborF3X[processNeighbor].g[0])); - checkCudaErrors(cudaFreeHost(parameter->getParH(lev)->recvProcessNeighborF3X[processNeighbor].index)); - checkCudaErrors(cudaFreeHost(parameter->getParH(lev)->recvProcessNeighborF3X[processNeighbor].g[0])); + checkCudaErrors(cudaFreeHost(parameter->getParH(lev)->sendProcessNeighborF3X[processNeighbor].index)); + checkCudaErrors(cudaFreeHost(parameter->getParH(lev)->sendProcessNeighborF3X[processNeighbor].g[0])); + checkCudaErrors(cudaFreeHost(parameter->getParH(lev)->recvProcessNeighborF3X[processNeighbor].index)); + checkCudaErrors(cudaFreeHost(parameter->getParH(lev)->recvProcessNeighborF3X[processNeighbor].g[0])); } // Y ///////////////////////////////////////////////////////////////////////////// void CudaMemoryManager::cudaAllocProcessNeighborF3Y(int lev, unsigned int processNeighbor) { - //Host - checkCudaErrors(cudaMallocHost((void**) &(parameter->getParH(lev)->sendProcessNeighborF3Y[processNeighbor].index), parameter->getParH(lev)->sendProcessNeighborF3Y[processNeighbor].memsizeIndex)); - checkCudaErrors(cudaMallocHost((void**) &(parameter->getParH(lev)->sendProcessNeighborF3Y[processNeighbor].g[0]), parameter->getParH(lev)->sendProcessNeighborF3Y[processNeighbor].memsizeGs)); - checkCudaErrors(cudaMallocHost((void**) &(parameter->getParH(lev)->recvProcessNeighborF3Y[processNeighbor].index), parameter->getParH(lev)->recvProcessNeighborF3Y[processNeighbor].memsizeIndex)); - checkCudaErrors(cudaMallocHost((void**) &(parameter->getParH(lev)->recvProcessNeighborF3Y[processNeighbor].g[0]), parameter->getParH(lev)->recvProcessNeighborF3Y[processNeighbor].memsizeGs)); + //Host + checkCudaErrors(cudaMallocHost((void**) &(parameter->getParH(lev)->sendProcessNeighborF3Y[processNeighbor].index), parameter->getParH(lev)->sendProcessNeighborF3Y[processNeighbor].memsizeIndex)); + checkCudaErrors(cudaMallocHost((void**) &(parameter->getParH(lev)->sendProcessNeighborF3Y[processNeighbor].g[0]), parameter->getParH(lev)->sendProcessNeighborF3Y[processNeighbor].memsizeGs)); + checkCudaErrors(cudaMallocHost((void**) &(parameter->getParH(lev)->recvProcessNeighborF3Y[processNeighbor].index), parameter->getParH(lev)->recvProcessNeighborF3Y[processNeighbor].memsizeIndex)); + checkCudaErrors(cudaMallocHost((void**) &(parameter->getParH(lev)->recvProcessNeighborF3Y[processNeighbor].g[0]), parameter->getParH(lev)->recvProcessNeighborF3Y[processNeighbor].memsizeGs)); - //Device - checkCudaErrors(cudaMalloc((void**) &(parameter->getParD(lev)->sendProcessNeighborF3Y[processNeighbor].index), parameter->getParD(lev)->sendProcessNeighborF3Y[processNeighbor].memsizeIndex)); - checkCudaErrors(cudaMalloc((void**) &(parameter->getParD(lev)->sendProcessNeighborF3Y[processNeighbor].g[0]), parameter->getParD(lev)->sendProcessNeighborF3Y[processNeighbor].memsizeGs)); - checkCudaErrors(cudaMalloc((void**) &(parameter->getParD(lev)->recvProcessNeighborF3Y[processNeighbor].index), parameter->getParD(lev)->recvProcessNeighborF3Y[processNeighbor].memsizeIndex)); - checkCudaErrors(cudaMalloc((void**) &(parameter->getParD(lev)->recvProcessNeighborF3Y[processNeighbor].g[0]), parameter->getParD(lev)->recvProcessNeighborF3Y[processNeighbor].memsizeGs)); + //Device + checkCudaErrors(cudaMalloc((void**) &(parameter->getParD(lev)->sendProcessNeighborF3Y[processNeighbor].index), parameter->getParD(lev)->sendProcessNeighborF3Y[processNeighbor].memsizeIndex)); + checkCudaErrors(cudaMalloc((void**) &(parameter->getParD(lev)->sendProcessNeighborF3Y[processNeighbor].g[0]), parameter->getParD(lev)->sendProcessNeighborF3Y[processNeighbor].memsizeGs)); + checkCudaErrors(cudaMalloc((void**) &(parameter->getParD(lev)->recvProcessNeighborF3Y[processNeighbor].index), parameter->getParD(lev)->recvProcessNeighborF3Y[processNeighbor].memsizeIndex)); + checkCudaErrors(cudaMalloc((void**) &(parameter->getParD(lev)->recvProcessNeighborF3Y[processNeighbor].g[0]), parameter->getParD(lev)->recvProcessNeighborF3Y[processNeighbor].memsizeGs)); - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - double tmp = - (double)parameter->getParH(lev)->sendProcessNeighborF3Y[processNeighbor].memsizeIndex + (double)parameter->getParH(lev)->sendProcessNeighborF3Y[processNeighbor].memsizeGs + - (double)parameter->getParH(lev)->recvProcessNeighborF3Y[processNeighbor].memsizeIndex + (double)parameter->getParH(lev)->recvProcessNeighborF3Y[processNeighbor].memsizeGs; - setMemsizeGPU(tmp, false); + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + double tmp = + (double)parameter->getParH(lev)->sendProcessNeighborF3Y[processNeighbor].memsizeIndex + (double)parameter->getParH(lev)->sendProcessNeighborF3Y[processNeighbor].memsizeGs + + (double)parameter->getParH(lev)->recvProcessNeighborF3Y[processNeighbor].memsizeIndex + (double)parameter->getParH(lev)->recvProcessNeighborF3Y[processNeighbor].memsizeGs; + setMemsizeGPU(tmp, false); } void CudaMemoryManager::cudaCopyProcessNeighborF3YIndex(int lev, unsigned int processNeighbor) { - //copy send Index - checkCudaErrors(cudaMemcpy( - parameter->getParD(lev)->sendProcessNeighborF3Y[processNeighbor].index, - parameter->getParH(lev)->sendProcessNeighborF3Y[processNeighbor].index, - parameter->getParH(lev)->sendProcessNeighborF3Y[processNeighbor].memsizeIndex, - cudaMemcpyHostToDevice)); - //copy recv Index - checkCudaErrors(cudaMemcpy( - parameter->getParD(lev)->recvProcessNeighborF3Y[processNeighbor].index, - parameter->getParH(lev)->recvProcessNeighborF3Y[processNeighbor].index, - parameter->getParH(lev)->recvProcessNeighborF3Y[processNeighbor].memsizeIndex, - cudaMemcpyHostToDevice)); + //copy send Index + checkCudaErrors(cudaMemcpy( + parameter->getParD(lev)->sendProcessNeighborF3Y[processNeighbor].index, + parameter->getParH(lev)->sendProcessNeighborF3Y[processNeighbor].index, + parameter->getParH(lev)->sendProcessNeighborF3Y[processNeighbor].memsizeIndex, + cudaMemcpyHostToDevice)); + //copy recv Index + checkCudaErrors(cudaMemcpy( + parameter->getParD(lev)->recvProcessNeighborF3Y[processNeighbor].index, + parameter->getParH(lev)->recvProcessNeighborF3Y[processNeighbor].index, + parameter->getParH(lev)->recvProcessNeighborF3Y[processNeighbor].memsizeIndex, + cudaMemcpyHostToDevice)); } void CudaMemoryManager::cudaCopyProcessNeighborF3YFsHD(int lev, unsigned int processNeighbor) { - checkCudaErrors(cudaMemcpy( - parameter->getParD(lev)->recvProcessNeighborF3Y[processNeighbor].g[0], - parameter->getParH(lev)->recvProcessNeighborF3Y[processNeighbor].g[0], - parameter->getParD(lev)->recvProcessNeighborF3Y[processNeighbor].memsizeGs, - cudaMemcpyHostToDevice)); + checkCudaErrors(cudaMemcpy( + parameter->getParD(lev)->recvProcessNeighborF3Y[processNeighbor].g[0], + parameter->getParH(lev)->recvProcessNeighborF3Y[processNeighbor].g[0], + parameter->getParD(lev)->recvProcessNeighborF3Y[processNeighbor].memsizeGs, + cudaMemcpyHostToDevice)); } void CudaMemoryManager::cudaCopyProcessNeighborF3YFsDH(int lev, unsigned int processNeighbor) { - checkCudaErrors(cudaMemcpy( - parameter->getParH(lev)->sendProcessNeighborF3Y[processNeighbor].g[0], - parameter->getParD(lev)->sendProcessNeighborF3Y[processNeighbor].g[0], - parameter->getParD(lev)->sendProcessNeighborF3Y[processNeighbor].memsizeGs, - cudaMemcpyDeviceToHost)); + checkCudaErrors(cudaMemcpy( + parameter->getParH(lev)->sendProcessNeighborF3Y[processNeighbor].g[0], + parameter->getParD(lev)->sendProcessNeighborF3Y[processNeighbor].g[0], + parameter->getParD(lev)->sendProcessNeighborF3Y[processNeighbor].memsizeGs, + cudaMemcpyDeviceToHost)); } void CudaMemoryManager::cudaFreeProcessNeighborF3Y(int lev, unsigned int processNeighbor) { - checkCudaErrors(cudaFreeHost(parameter->getParH(lev)->sendProcessNeighborF3Y[processNeighbor].index)); - checkCudaErrors(cudaFreeHost(parameter->getParH(lev)->sendProcessNeighborF3Y[processNeighbor].g[0])); - checkCudaErrors(cudaFreeHost(parameter->getParH(lev)->recvProcessNeighborF3Y[processNeighbor].index)); - checkCudaErrors(cudaFreeHost(parameter->getParH(lev)->recvProcessNeighborF3Y[processNeighbor].g[0])); + checkCudaErrors(cudaFreeHost(parameter->getParH(lev)->sendProcessNeighborF3Y[processNeighbor].index)); + checkCudaErrors(cudaFreeHost(parameter->getParH(lev)->sendProcessNeighborF3Y[processNeighbor].g[0])); + checkCudaErrors(cudaFreeHost(parameter->getParH(lev)->recvProcessNeighborF3Y[processNeighbor].index)); + checkCudaErrors(cudaFreeHost(parameter->getParH(lev)->recvProcessNeighborF3Y[processNeighbor].g[0])); } // Z ///////////////////////////////////////////////////////////////////////////// void CudaMemoryManager::cudaAllocProcessNeighborF3Z(int lev, unsigned int processNeighbor) { - //Host - checkCudaErrors(cudaMallocHost((void**) &(parameter->getParH(lev)->sendProcessNeighborF3Z[processNeighbor].index), parameter->getParH(lev)->sendProcessNeighborF3Z[processNeighbor].memsizeIndex)); - checkCudaErrors(cudaMallocHost((void**) &(parameter->getParH(lev)->sendProcessNeighborF3Z[processNeighbor].g[0]), parameter->getParH(lev)->sendProcessNeighborF3Z[processNeighbor].memsizeGs)); - checkCudaErrors(cudaMallocHost((void**) &(parameter->getParH(lev)->recvProcessNeighborF3Z[processNeighbor].index), parameter->getParH(lev)->recvProcessNeighborF3Z[processNeighbor].memsizeIndex)); - checkCudaErrors(cudaMallocHost((void**) &(parameter->getParH(lev)->recvProcessNeighborF3Z[processNeighbor].g[0]), parameter->getParH(lev)->recvProcessNeighborF3Z[processNeighbor].memsizeGs)); + //Host + checkCudaErrors(cudaMallocHost((void**) &(parameter->getParH(lev)->sendProcessNeighborF3Z[processNeighbor].index), parameter->getParH(lev)->sendProcessNeighborF3Z[processNeighbor].memsizeIndex)); + checkCudaErrors(cudaMallocHost((void**) &(parameter->getParH(lev)->sendProcessNeighborF3Z[processNeighbor].g[0]), parameter->getParH(lev)->sendProcessNeighborF3Z[processNeighbor].memsizeGs)); + checkCudaErrors(cudaMallocHost((void**) &(parameter->getParH(lev)->recvProcessNeighborF3Z[processNeighbor].index), parameter->getParH(lev)->recvProcessNeighborF3Z[processNeighbor].memsizeIndex)); + checkCudaErrors(cudaMallocHost((void**) &(parameter->getParH(lev)->recvProcessNeighborF3Z[processNeighbor].g[0]), parameter->getParH(lev)->recvProcessNeighborF3Z[processNeighbor].memsizeGs)); - //Device - checkCudaErrors(cudaMalloc((void**) &(parameter->getParD(lev)->sendProcessNeighborF3Z[processNeighbor].index), parameter->getParD(lev)->sendProcessNeighborF3Z[processNeighbor].memsizeIndex)); - checkCudaErrors(cudaMalloc((void**) &(parameter->getParD(lev)->sendProcessNeighborF3Z[processNeighbor].g[0]), parameter->getParD(lev)->sendProcessNeighborF3Z[processNeighbor].memsizeGs)); - checkCudaErrors(cudaMalloc((void**) &(parameter->getParD(lev)->recvProcessNeighborF3Z[processNeighbor].index), parameter->getParD(lev)->recvProcessNeighborF3Z[processNeighbor].memsizeIndex)); - checkCudaErrors(cudaMalloc((void**) &(parameter->getParD(lev)->recvProcessNeighborF3Z[processNeighbor].g[0]), parameter->getParD(lev)->recvProcessNeighborF3Z[processNeighbor].memsizeGs)); + //Device + checkCudaErrors(cudaMalloc((void**) &(parameter->getParD(lev)->sendProcessNeighborF3Z[processNeighbor].index), parameter->getParD(lev)->sendProcessNeighborF3Z[processNeighbor].memsizeIndex)); + checkCudaErrors(cudaMalloc((void**) &(parameter->getParD(lev)->sendProcessNeighborF3Z[processNeighbor].g[0]), parameter->getParD(lev)->sendProcessNeighborF3Z[processNeighbor].memsizeGs)); + checkCudaErrors(cudaMalloc((void**) &(parameter->getParD(lev)->recvProcessNeighborF3Z[processNeighbor].index), parameter->getParD(lev)->recvProcessNeighborF3Z[processNeighbor].memsizeIndex)); + checkCudaErrors(cudaMalloc((void**) &(parameter->getParD(lev)->recvProcessNeighborF3Z[processNeighbor].g[0]), parameter->getParD(lev)->recvProcessNeighborF3Z[processNeighbor].memsizeGs)); - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - double tmp = - (double)parameter->getParH(lev)->sendProcessNeighborF3Z[processNeighbor].memsizeIndex + (double)parameter->getParH(lev)->sendProcessNeighborF3Z[processNeighbor].memsizeGs + - (double)parameter->getParH(lev)->recvProcessNeighborF3Z[processNeighbor].memsizeIndex + (double)parameter->getParH(lev)->recvProcessNeighborF3Z[processNeighbor].memsizeGs; - setMemsizeGPU(tmp, false); + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + double tmp = + (double)parameter->getParH(lev)->sendProcessNeighborF3Z[processNeighbor].memsizeIndex + (double)parameter->getParH(lev)->sendProcessNeighborF3Z[processNeighbor].memsizeGs + + (double)parameter->getParH(lev)->recvProcessNeighborF3Z[processNeighbor].memsizeIndex + (double)parameter->getParH(lev)->recvProcessNeighborF3Z[processNeighbor].memsizeGs; + setMemsizeGPU(tmp, false); } void CudaMemoryManager::cudaCopyProcessNeighborF3ZIndex(int lev, unsigned int processNeighbor) { - //copy send Index - checkCudaErrors(cudaMemcpy( - parameter->getParD(lev)->sendProcessNeighborF3Z[processNeighbor].index, - parameter->getParH(lev)->sendProcessNeighborF3Z[processNeighbor].index, - parameter->getParH(lev)->sendProcessNeighborF3Z[processNeighbor].memsizeIndex, - cudaMemcpyHostToDevice)); - //copy recv Index - checkCudaErrors(cudaMemcpy( - parameter->getParD(lev)->recvProcessNeighborF3Z[processNeighbor].index, - parameter->getParH(lev)->recvProcessNeighborF3Z[processNeighbor].index, - parameter->getParH(lev)->recvProcessNeighborF3Z[processNeighbor].memsizeIndex, - cudaMemcpyHostToDevice)); + //copy send Index + checkCudaErrors(cudaMemcpy( + parameter->getParD(lev)->sendProcessNeighborF3Z[processNeighbor].index, + parameter->getParH(lev)->sendProcessNeighborF3Z[processNeighbor].index, + parameter->getParH(lev)->sendProcessNeighborF3Z[processNeighbor].memsizeIndex, + cudaMemcpyHostToDevice)); + //copy recv Index + checkCudaErrors(cudaMemcpy( + parameter->getParD(lev)->recvProcessNeighborF3Z[processNeighbor].index, + parameter->getParH(lev)->recvProcessNeighborF3Z[processNeighbor].index, + parameter->getParH(lev)->recvProcessNeighborF3Z[processNeighbor].memsizeIndex, + cudaMemcpyHostToDevice)); } void CudaMemoryManager::cudaCopyProcessNeighborF3ZFsHD(int lev, unsigned int processNeighbor) { - checkCudaErrors(cudaMemcpy( - parameter->getParD(lev)->recvProcessNeighborF3Z[processNeighbor].g[0], - parameter->getParH(lev)->recvProcessNeighborF3Z[processNeighbor].g[0], - parameter->getParD(lev)->recvProcessNeighborF3Z[processNeighbor].memsizeGs, - cudaMemcpyHostToDevice)); + checkCudaErrors(cudaMemcpy( + parameter->getParD(lev)->recvProcessNeighborF3Z[processNeighbor].g[0], + parameter->getParH(lev)->recvProcessNeighborF3Z[processNeighbor].g[0], + parameter->getParD(lev)->recvProcessNeighborF3Z[processNeighbor].memsizeGs, + cudaMemcpyHostToDevice)); } void CudaMemoryManager::cudaCopyProcessNeighborF3ZFsDH(int lev, unsigned int processNeighbor) { - checkCudaErrors(cudaMemcpy( - parameter->getParH(lev)->sendProcessNeighborF3Z[processNeighbor].g[0], - parameter->getParD(lev)->sendProcessNeighborF3Z[processNeighbor].g[0], - parameter->getParD(lev)->sendProcessNeighborF3Z[processNeighbor].memsizeGs, - cudaMemcpyDeviceToHost)); + checkCudaErrors(cudaMemcpy( + parameter->getParH(lev)->sendProcessNeighborF3Z[processNeighbor].g[0], + parameter->getParD(lev)->sendProcessNeighborF3Z[processNeighbor].g[0], + parameter->getParD(lev)->sendProcessNeighborF3Z[processNeighbor].memsizeGs, + cudaMemcpyDeviceToHost)); } void CudaMemoryManager::cudaFreeProcessNeighborF3Z(int lev, unsigned int processNeighbor) { - checkCudaErrors(cudaFreeHost(parameter->getParH(lev)->sendProcessNeighborF3Z[processNeighbor].index)); - checkCudaErrors(cudaFreeHost(parameter->getParH(lev)->sendProcessNeighborF3Z[processNeighbor].g[0])); - checkCudaErrors(cudaFreeHost(parameter->getParH(lev)->recvProcessNeighborF3Z[processNeighbor].index)); - checkCudaErrors(cudaFreeHost(parameter->getParH(lev)->recvProcessNeighborF3Z[processNeighbor].g[0])); + checkCudaErrors(cudaFreeHost(parameter->getParH(lev)->sendProcessNeighborF3Z[processNeighbor].index)); + checkCudaErrors(cudaFreeHost(parameter->getParH(lev)->sendProcessNeighborF3Z[processNeighbor].g[0])); + checkCudaErrors(cudaFreeHost(parameter->getParH(lev)->recvProcessNeighborF3Z[processNeighbor].index)); + checkCudaErrors(cudaFreeHost(parameter->getParH(lev)->recvProcessNeighborF3Z[processNeighbor].g[0])); } ////////////////////////////////////////////////////////////////////////// @@ -1983,19 +1983,30 @@ void CudaMemoryManager::cudaFreeMeasurePointsIndex(int lev) checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->VzMP)); checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->RhoMP)); } -void CudaMemoryManager::cudaAllocFsForCheckPointAndRestart(int lev) +void CudaMemoryManager::cudaAllocFsForCheckPointAndRestart(int lev) const { checkCudaErrors( cudaMallocHost((void**) &(parameter->getParH(lev)->distributions.f[0] ), (unsigned long long)parameter->getD3Qxx()*(unsigned long long)parameter->getParH(lev)->memSizeRealLBnodes)); } -void CudaMemoryManager::cudaCopyFsForRestart(int lev) +void CudaMemoryManager::cudaAllocFsForAllLevelsOnHost() const +{ + for (int level = 0; level <= parameter->getMaxLevel(); level++) { + cudaAllocFsForCheckPointAndRestart(level); + } +} +void CudaMemoryManager::cudaCopyFsForRestart(int lev) const { checkCudaErrors( cudaMemcpy(parameter->getParD(lev)->distributions.f[0], parameter->getParH(lev)->distributions.f[0], (unsigned long long)parameter->getD3Qxx()*(unsigned long long)parameter->getParH(lev)->memSizeRealLBnodes , cudaMemcpyHostToDevice)); } -void CudaMemoryManager::cudaCopyFsForCheckPoint(int lev) +void CudaMemoryManager::cudaCopyFsForCheckPoint(int lev) const { checkCudaErrors( cudaMemcpy(parameter->getParH(lev)->distributions.f[0], parameter->getParD(lev)->distributions.f[0], (unsigned long long)parameter->getD3Qxx()*(unsigned long long)parameter->getParH(lev)->memSizeRealLBnodes , cudaMemcpyDeviceToHost)); } -void CudaMemoryManager::cudaFreeFsForCheckPointAndRestart(int lev) +void CudaMemoryManager::cudaCopyFsForAllLevelsToHost() const +{ + for (int level = 0; level <= parameter->getMaxLevel(); level++) + cudaCopyFsForCheckPoint(level); +} +void CudaMemoryManager::cudaFreeFsForCheckPointAndRestart(int lev) const { checkCudaErrors( cudaFreeHost(parameter->getParH(lev)->distributions.f[0])); } @@ -2655,22 +2666,22 @@ void CudaMemoryManager::cudaFreeConcFile(int lev) ////////////////////////////////////////////////////////////////////////// void CudaMemoryManager::cudaAllocMedianOutAD(int lev) { - //Host - checkCudaErrors(cudaMallocHost((void**) &(parameter->getParH(lev)->rho_SP_Med_Out), parameter->getParH(lev)->memSizeRealLBnodes)); - checkCudaErrors(cudaMallocHost((void**) &(parameter->getParH(lev)->vx_SP_Med_Out), parameter->getParH(lev)->memSizeRealLBnodes)); - checkCudaErrors(cudaMallocHost((void**) &(parameter->getParH(lev)->vy_SP_Med_Out), parameter->getParH(lev)->memSizeRealLBnodes)); - checkCudaErrors(cudaMallocHost((void**) &(parameter->getParH(lev)->vz_SP_Med_Out), parameter->getParH(lev)->memSizeRealLBnodes)); - checkCudaErrors(cudaMallocHost((void**) &(parameter->getParH(lev)->press_SP_Med_Out), parameter->getParH(lev)->memSizeRealLBnodes)); - checkCudaErrors(cudaMallocHost((void**) &(parameter->getParH(lev)->Conc_Med_Out), parameter->getParH(lev)->memSizeRealLBnodes)); + //Host + checkCudaErrors(cudaMallocHost((void**) &(parameter->getParH(lev)->rho_SP_Med_Out), parameter->getParH(lev)->memSizeRealLBnodes)); + checkCudaErrors(cudaMallocHost((void**) &(parameter->getParH(lev)->vx_SP_Med_Out), parameter->getParH(lev)->memSizeRealLBnodes)); + checkCudaErrors(cudaMallocHost((void**) &(parameter->getParH(lev)->vy_SP_Med_Out), parameter->getParH(lev)->memSizeRealLBnodes)); + checkCudaErrors(cudaMallocHost((void**) &(parameter->getParH(lev)->vz_SP_Med_Out), parameter->getParH(lev)->memSizeRealLBnodes)); + checkCudaErrors(cudaMallocHost((void**) &(parameter->getParH(lev)->press_SP_Med_Out), parameter->getParH(lev)->memSizeRealLBnodes)); + checkCudaErrors(cudaMallocHost((void**) &(parameter->getParH(lev)->Conc_Med_Out), parameter->getParH(lev)->memSizeRealLBnodes)); } void CudaMemoryManager::cudaFreeMedianOutAD(int lev) { - checkCudaErrors(cudaFreeHost(parameter->getParH(lev)->vx_SP_Med_Out)); - checkCudaErrors(cudaFreeHost(parameter->getParH(lev)->vy_SP_Med_Out)); - checkCudaErrors(cudaFreeHost(parameter->getParH(lev)->vz_SP_Med_Out)); - checkCudaErrors(cudaFreeHost(parameter->getParH(lev)->rho_SP_Med_Out)); - checkCudaErrors(cudaFreeHost(parameter->getParH(lev)->press_SP_Med_Out)); - checkCudaErrors(cudaFreeHost(parameter->getParH(lev)->Conc_Med_Out)); + checkCudaErrors(cudaFreeHost(parameter->getParH(lev)->vx_SP_Med_Out)); + checkCudaErrors(cudaFreeHost(parameter->getParH(lev)->vy_SP_Med_Out)); + checkCudaErrors(cudaFreeHost(parameter->getParH(lev)->vz_SP_Med_Out)); + checkCudaErrors(cudaFreeHost(parameter->getParH(lev)->rho_SP_Med_Out)); + checkCudaErrors(cudaFreeHost(parameter->getParH(lev)->press_SP_Med_Out)); + checkCudaErrors(cudaFreeHost(parameter->getParH(lev)->Conc_Med_Out)); } @@ -3430,17 +3441,17 @@ CudaMemoryManager::CudaMemoryManager(std::shared_ptr<Parameter> parameter) : par void CudaMemoryManager::setMemsizeGPU(double admem, bool reset) { - if (reset == true) - { - this->memsizeGPU = 0.; - } - else - { - this->memsizeGPU += admem; - } + if (reset == true) + { + this->memsizeGPU = 0.; + } + else + { + this->memsizeGPU += admem; + } } double CudaMemoryManager::getMemsizeGPU() { - return this->memsizeGPU; + return this->memsizeGPU; } diff --git a/src/gpu/core/GPU/CudaMemoryManager.h b/src/gpu/core/GPU/CudaMemoryManager.h index 77de5b8a82e4c461d66eb261cd2e2f6b8fcc8ec5..dcdfecd6aad6ace700bc5e83e1d6e3f14e1f1bcc 100644 --- a/src/gpu/core/GPU/CudaMemoryManager.h +++ b/src/gpu/core/GPU/CudaMemoryManager.h @@ -264,10 +264,14 @@ public: void cudaCopyMeasurePointsToHost(int lev); void cudaFreeMeasurePointsIndex(int lev); - void cudaAllocFsForCheckPointAndRestart(int lev); - void cudaCopyFsForRestart(int lev); - void cudaCopyFsForCheckPoint(int lev); - void cudaFreeFsForCheckPointAndRestart(int lev); + void cudaAllocFsForCheckPointAndRestart(int lev) const; + void cudaAllocFsForAllLevelsOnHost() const; + //! \brief copy distributions from host to device + void cudaCopyFsForRestart(int lev) const; + //! \brief copy distributions from device to host + void cudaCopyFsForCheckPoint(int lev) const; + void cudaCopyFsForAllLevelsToHost() const; + void cudaFreeFsForCheckPointAndRestart(int lev) const; void cudaAllocDragLift(int lev, int numofelem); void cudaCopyDragLift(int lev, int numofelem); diff --git a/src/gpu/core/GPU/DragLift27.cu b/src/gpu/core/GPU/DragLift27.cu index e4dbb955489113b33804dcf1dfe64ade72b7826b..d1bfab02f7df2c4ea7f0d1c70589e636810bc3ad 100644 --- a/src/gpu/core/GPU/DragLift27.cu +++ b/src/gpu/core/GPU/DragLift27.cu @@ -8,257 +8,257 @@ using namespace vf::lbm::dir; //////////////////////////////////////////////////////////////////////////////// __global__ void DragLiftPost27( real* DD, - int* k_Q, - real* QQ, - int numberOfBCnodes, - double *DragX, - double *DragY, - double *DragZ, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned long long numberOfLBnodes, - bool isEvenTimestep) + int* k_Q, + real* QQ, + int numberOfBCnodes, + double *DragX, + double *DragY, + double *DragZ, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned long long numberOfLBnodes, + bool isEvenTimestep) { - Distributions27 D; - if (isEvenTimestep==true) - { - D.f[dP00] = &DD[dP00 * numberOfLBnodes]; - D.f[dM00] = &DD[dM00 * numberOfLBnodes]; - D.f[d0P0] = &DD[d0P0 * numberOfLBnodes]; - D.f[d0M0] = &DD[d0M0 * numberOfLBnodes]; - D.f[d00P] = &DD[d00P * numberOfLBnodes]; - D.f[d00M] = &DD[d00M * numberOfLBnodes]; - D.f[dPP0] = &DD[dPP0 * numberOfLBnodes]; - D.f[dMM0] = &DD[dMM0 * numberOfLBnodes]; - D.f[dPM0] = &DD[dPM0 * numberOfLBnodes]; - D.f[dMP0] = &DD[dMP0 * numberOfLBnodes]; - D.f[dP0P] = &DD[dP0P * numberOfLBnodes]; - D.f[dM0M] = &DD[dM0M * numberOfLBnodes]; - D.f[dP0M] = &DD[dP0M * numberOfLBnodes]; - D.f[dM0P] = &DD[dM0P * numberOfLBnodes]; - D.f[d0PP] = &DD[d0PP * numberOfLBnodes]; - D.f[d0MM] = &DD[d0MM * numberOfLBnodes]; - D.f[d0PM] = &DD[d0PM * numberOfLBnodes]; - D.f[d0MP] = &DD[d0MP * numberOfLBnodes]; - D.f[d000] = &DD[d000 * numberOfLBnodes]; - D.f[dPPP] = &DD[dPPP * numberOfLBnodes]; - D.f[dMMP] = &DD[dMMP * numberOfLBnodes]; - D.f[dPMP] = &DD[dPMP * numberOfLBnodes]; - D.f[dMPP] = &DD[dMPP * numberOfLBnodes]; - D.f[dPPM] = &DD[dPPM * numberOfLBnodes]; - D.f[dMMM] = &DD[dMMM * numberOfLBnodes]; - D.f[dPMM] = &DD[dPMM * numberOfLBnodes]; - D.f[dMPM] = &DD[dMPM * numberOfLBnodes]; - } - else - { - D.f[dM00] = &DD[dP00 * numberOfLBnodes]; - D.f[dP00] = &DD[dM00 * numberOfLBnodes]; - D.f[d0M0] = &DD[d0P0 * numberOfLBnodes]; - D.f[d0P0] = &DD[d0M0 * numberOfLBnodes]; - D.f[d00M] = &DD[d00P * numberOfLBnodes]; - D.f[d00P] = &DD[d00M * numberOfLBnodes]; - D.f[dMM0] = &DD[dPP0 * numberOfLBnodes]; - D.f[dPP0] = &DD[dMM0 * numberOfLBnodes]; - D.f[dMP0] = &DD[dPM0 * numberOfLBnodes]; - D.f[dPM0] = &DD[dMP0 * numberOfLBnodes]; - D.f[dM0M] = &DD[dP0P * numberOfLBnodes]; - D.f[dP0P] = &DD[dM0M * numberOfLBnodes]; - D.f[dM0P] = &DD[dP0M * numberOfLBnodes]; - D.f[dP0M] = &DD[dM0P * numberOfLBnodes]; - D.f[d0MM] = &DD[d0PP * numberOfLBnodes]; - D.f[d0PP] = &DD[d0MM * numberOfLBnodes]; - D.f[d0MP] = &DD[d0PM * numberOfLBnodes]; - D.f[d0PM] = &DD[d0MP * numberOfLBnodes]; - D.f[d000] = &DD[d000 * numberOfLBnodes]; - D.f[dPPP] = &DD[dMMM * numberOfLBnodes]; - D.f[dMMP] = &DD[dPPM * numberOfLBnodes]; - D.f[dPMP] = &DD[dMPM * numberOfLBnodes]; - D.f[dMPP] = &DD[dPMM * numberOfLBnodes]; - D.f[dPPM] = &DD[dMMP * numberOfLBnodes]; - D.f[dMMM] = &DD[dPPP * numberOfLBnodes]; - D.f[dPMM] = &DD[dMPP * numberOfLBnodes]; - D.f[dMPM] = &DD[dPMP * numberOfLBnodes]; - } - //////////////////////////////////////////////////////////////////////////////// - const unsigned x = threadIdx.x; // Globaler x-Index - const unsigned y = blockIdx.x; // Globaler y-Index - const unsigned z = blockIdx.y; // Globaler z-Index + Distributions27 D; + if (isEvenTimestep==true) + { + D.f[dP00] = &DD[dP00 * numberOfLBnodes]; + D.f[dM00] = &DD[dM00 * numberOfLBnodes]; + D.f[d0P0] = &DD[d0P0 * numberOfLBnodes]; + D.f[d0M0] = &DD[d0M0 * numberOfLBnodes]; + D.f[d00P] = &DD[d00P * numberOfLBnodes]; + D.f[d00M] = &DD[d00M * numberOfLBnodes]; + D.f[dPP0] = &DD[dPP0 * numberOfLBnodes]; + D.f[dMM0] = &DD[dMM0 * numberOfLBnodes]; + D.f[dPM0] = &DD[dPM0 * numberOfLBnodes]; + D.f[dMP0] = &DD[dMP0 * numberOfLBnodes]; + D.f[dP0P] = &DD[dP0P * numberOfLBnodes]; + D.f[dM0M] = &DD[dM0M * numberOfLBnodes]; + D.f[dP0M] = &DD[dP0M * numberOfLBnodes]; + D.f[dM0P] = &DD[dM0P * numberOfLBnodes]; + D.f[d0PP] = &DD[d0PP * numberOfLBnodes]; + D.f[d0MM] = &DD[d0MM * numberOfLBnodes]; + D.f[d0PM] = &DD[d0PM * numberOfLBnodes]; + D.f[d0MP] = &DD[d0MP * numberOfLBnodes]; + D.f[d000] = &DD[d000 * numberOfLBnodes]; + D.f[dPPP] = &DD[dPPP * numberOfLBnodes]; + D.f[dMMP] = &DD[dMMP * numberOfLBnodes]; + D.f[dPMP] = &DD[dPMP * numberOfLBnodes]; + D.f[dMPP] = &DD[dMPP * numberOfLBnodes]; + D.f[dPPM] = &DD[dPPM * numberOfLBnodes]; + D.f[dMMM] = &DD[dMMM * numberOfLBnodes]; + D.f[dPMM] = &DD[dPMM * numberOfLBnodes]; + D.f[dMPM] = &DD[dMPM * numberOfLBnodes]; + } + else + { + D.f[dM00] = &DD[dP00 * numberOfLBnodes]; + D.f[dP00] = &DD[dM00 * numberOfLBnodes]; + D.f[d0M0] = &DD[d0P0 * numberOfLBnodes]; + D.f[d0P0] = &DD[d0M0 * numberOfLBnodes]; + D.f[d00M] = &DD[d00P * numberOfLBnodes]; + D.f[d00P] = &DD[d00M * numberOfLBnodes]; + D.f[dMM0] = &DD[dPP0 * numberOfLBnodes]; + D.f[dPP0] = &DD[dMM0 * numberOfLBnodes]; + D.f[dMP0] = &DD[dPM0 * numberOfLBnodes]; + D.f[dPM0] = &DD[dMP0 * numberOfLBnodes]; + D.f[dM0M] = &DD[dP0P * numberOfLBnodes]; + D.f[dP0P] = &DD[dM0M * numberOfLBnodes]; + D.f[dM0P] = &DD[dP0M * numberOfLBnodes]; + D.f[dP0M] = &DD[dM0P * numberOfLBnodes]; + D.f[d0MM] = &DD[d0PP * numberOfLBnodes]; + D.f[d0PP] = &DD[d0MM * numberOfLBnodes]; + D.f[d0MP] = &DD[d0PM * numberOfLBnodes]; + D.f[d0PM] = &DD[d0MP * numberOfLBnodes]; + D.f[d000] = &DD[d000 * numberOfLBnodes]; + D.f[dPPP] = &DD[dMMM * numberOfLBnodes]; + D.f[dMMP] = &DD[dPPM * numberOfLBnodes]; + D.f[dPMP] = &DD[dMPM * numberOfLBnodes]; + D.f[dMPP] = &DD[dPMM * numberOfLBnodes]; + D.f[dPPM] = &DD[dMMP * numberOfLBnodes]; + D.f[dMMM] = &DD[dPPP * numberOfLBnodes]; + D.f[dPMM] = &DD[dMPP * numberOfLBnodes]; + D.f[dMPM] = &DD[dPMP * numberOfLBnodes]; + } + //////////////////////////////////////////////////////////////////////////////// + const unsigned x = threadIdx.x; // Globaler x-Index + const unsigned y = blockIdx.x; // Globaler y-Index + const unsigned z = blockIdx.y; // Globaler z-Index - const unsigned nx = blockDim.x; - const unsigned ny = gridDim.x; + const unsigned nx = blockDim.x; + const unsigned ny = gridDim.x; - const unsigned k = nx*(ny*z + y) + x; - ////////////////////////////////////////////////////////////////////////// + const unsigned k = nx*(ny*z + y) + x; + ////////////////////////////////////////////////////////////////////////// - if(k<numberOfBCnodes) - { - //////////////////////////////////////////////////////////////////////////////// - real *q_dirE, *q_dirW, *q_dirN, *q_dirS, *q_dirT, *q_dirB, - *q_dirNE, *q_dirSW, *q_dirSE, *q_dirNW, *q_dirTE, *q_dirBW, - *q_dirBE, *q_dirTW, *q_dirTN, *q_dirBS, *q_dirBN, *q_dirTS, - *q_dirTNE, *q_dirTSW, *q_dirTSE, *q_dirTNW, *q_dirBNE, *q_dirBSW, - *q_dirBSE, *q_dirBNW; - q_dirE = &QQ[dP00 * numberOfBCnodes]; - q_dirW = &QQ[dM00 * numberOfBCnodes]; - q_dirN = &QQ[d0P0 * numberOfBCnodes]; - q_dirS = &QQ[d0M0 * numberOfBCnodes]; - q_dirT = &QQ[d00P * numberOfBCnodes]; - q_dirB = &QQ[d00M * numberOfBCnodes]; - q_dirNE = &QQ[dPP0 * numberOfBCnodes]; - q_dirSW = &QQ[dMM0 * numberOfBCnodes]; - q_dirSE = &QQ[dPM0 * numberOfBCnodes]; - q_dirNW = &QQ[dMP0 * numberOfBCnodes]; - q_dirTE = &QQ[dP0P * numberOfBCnodes]; - q_dirBW = &QQ[dM0M * numberOfBCnodes]; - q_dirBE = &QQ[dP0M * numberOfBCnodes]; - q_dirTW = &QQ[dM0P * numberOfBCnodes]; - q_dirTN = &QQ[d0PP * numberOfBCnodes]; - q_dirBS = &QQ[d0MM * numberOfBCnodes]; - q_dirBN = &QQ[d0PM * numberOfBCnodes]; - q_dirTS = &QQ[d0MP * numberOfBCnodes]; - q_dirTNE = &QQ[dPPP * numberOfBCnodes]; - q_dirTSW = &QQ[dMMP * numberOfBCnodes]; - q_dirTSE = &QQ[dPMP * numberOfBCnodes]; - q_dirTNW = &QQ[dMPP * numberOfBCnodes]; - q_dirBNE = &QQ[dPPM * numberOfBCnodes]; - q_dirBSW = &QQ[dMMM * numberOfBCnodes]; - q_dirBSE = &QQ[dPMM * numberOfBCnodes]; - q_dirBNW = &QQ[dMPM * numberOfBCnodes]; - //////////////////////////////////////////////////////////////////////////////// - //index - unsigned int KQK = k_Q[k]; - //unsigned int kzero= KQK; - unsigned int ke = KQK; - unsigned int kw = neighborX[KQK]; - unsigned int kn = KQK; - unsigned int ks = neighborY[KQK]; - unsigned int kt = KQK; - unsigned int kb = neighborZ[KQK]; - unsigned int ksw = neighborY[kw]; - unsigned int kne = KQK; - unsigned int kse = ks; - unsigned int knw = kw; - unsigned int kbw = neighborZ[kw]; - unsigned int kte = KQK; - unsigned int kbe = kb; - unsigned int ktw = kw; - unsigned int kbs = neighborZ[ks]; - unsigned int ktn = KQK; - unsigned int kbn = kb; - unsigned int kts = ks; - unsigned int ktse = ks; - unsigned int kbnw = kbw; - unsigned int ktnw = kw; - unsigned int kbse = kbs; - unsigned int ktsw = ksw; - unsigned int kbne = kb; - unsigned int ktne = KQK; - unsigned int kbsw = neighborZ[ksw]; - //////////////////////////////////////////////////////////////////////////////// - real f_E, f_W, f_N, f_S, f_T, f_B, f_NE, f_SW, f_SE, f_NW, f_TE, f_BW, f_BE, + if(k<numberOfBCnodes) + { + //////////////////////////////////////////////////////////////////////////////// + real *q_dirE, *q_dirW, *q_dirN, *q_dirS, *q_dirT, *q_dirB, + *q_dirNE, *q_dirSW, *q_dirSE, *q_dirNW, *q_dirTE, *q_dirBW, + *q_dirBE, *q_dirTW, *q_dirTN, *q_dirBS, *q_dirBN, *q_dirTS, + *q_dirTNE, *q_dirTSW, *q_dirTSE, *q_dirTNW, *q_dirBNE, *q_dirBSW, + *q_dirBSE, *q_dirBNW; + q_dirE = &QQ[dP00 * numberOfBCnodes]; + q_dirW = &QQ[dM00 * numberOfBCnodes]; + q_dirN = &QQ[d0P0 * numberOfBCnodes]; + q_dirS = &QQ[d0M0 * numberOfBCnodes]; + q_dirT = &QQ[d00P * numberOfBCnodes]; + q_dirB = &QQ[d00M * numberOfBCnodes]; + q_dirNE = &QQ[dPP0 * numberOfBCnodes]; + q_dirSW = &QQ[dMM0 * numberOfBCnodes]; + q_dirSE = &QQ[dPM0 * numberOfBCnodes]; + q_dirNW = &QQ[dMP0 * numberOfBCnodes]; + q_dirTE = &QQ[dP0P * numberOfBCnodes]; + q_dirBW = &QQ[dM0M * numberOfBCnodes]; + q_dirBE = &QQ[dP0M * numberOfBCnodes]; + q_dirTW = &QQ[dM0P * numberOfBCnodes]; + q_dirTN = &QQ[d0PP * numberOfBCnodes]; + q_dirBS = &QQ[d0MM * numberOfBCnodes]; + q_dirBN = &QQ[d0PM * numberOfBCnodes]; + q_dirTS = &QQ[d0MP * numberOfBCnodes]; + q_dirTNE = &QQ[dPPP * numberOfBCnodes]; + q_dirTSW = &QQ[dMMP * numberOfBCnodes]; + q_dirTSE = &QQ[dPMP * numberOfBCnodes]; + q_dirTNW = &QQ[dMPP * numberOfBCnodes]; + q_dirBNE = &QQ[dPPM * numberOfBCnodes]; + q_dirBSW = &QQ[dMMM * numberOfBCnodes]; + q_dirBSE = &QQ[dPMM * numberOfBCnodes]; + q_dirBNW = &QQ[dMPM * numberOfBCnodes]; + //////////////////////////////////////////////////////////////////////////////// + //index + unsigned int KQK = k_Q[k]; + //unsigned int kzero= KQK; + unsigned int ke = KQK; + unsigned int kw = neighborX[KQK]; + unsigned int kn = KQK; + unsigned int ks = neighborY[KQK]; + unsigned int kt = KQK; + unsigned int kb = neighborZ[KQK]; + unsigned int ksw = neighborY[kw]; + unsigned int kne = KQK; + unsigned int kse = ks; + unsigned int knw = kw; + unsigned int kbw = neighborZ[kw]; + unsigned int kte = KQK; + unsigned int kbe = kb; + unsigned int ktw = kw; + unsigned int kbs = neighborZ[ks]; + unsigned int ktn = KQK; + unsigned int kbn = kb; + unsigned int kts = ks; + unsigned int ktse = ks; + unsigned int kbnw = kbw; + unsigned int ktnw = kw; + unsigned int kbse = kbs; + unsigned int ktsw = ksw; + unsigned int kbne = kb; + unsigned int ktne = KQK; + unsigned int kbsw = neighborZ[ksw]; + //////////////////////////////////////////////////////////////////////////////// + real f_E, f_W, f_N, f_S, f_T, f_B, f_NE, f_SW, f_SE, f_NW, f_TE, f_BW, f_BE, f_TW, f_TN, f_BS, f_BN, f_TS, f_TNE, f_TSW, f_TSE, f_TNW, f_BNE, f_BSW, f_BSE, f_BNW; - f_W = (D.f[dP00])[ke ]; - f_E = (D.f[dM00])[kw ]; - f_S = (D.f[d0P0])[kn ]; - f_N = (D.f[d0M0])[ks ]; - f_B = (D.f[d00P])[kt ]; - f_T = (D.f[d00M])[kb ]; - f_SW = (D.f[dPP0])[kne ]; - f_NE = (D.f[dMM0])[ksw ]; - f_NW = (D.f[dPM0])[kse ]; - f_SE = (D.f[dMP0])[knw ]; - f_BW = (D.f[dP0P])[kte ]; - f_TE = (D.f[dM0M])[kbw ]; - f_TW = (D.f[dP0M])[kbe ]; - f_BE = (D.f[dM0P])[ktw ]; - f_BS = (D.f[d0PP])[ktn ]; - f_TN = (D.f[d0MM])[kbs ]; - f_TS = (D.f[d0PM])[kbn ]; - f_BN = (D.f[d0MP])[kts ]; - f_BSW = (D.f[dPPP])[ktne ]; - f_BNE = (D.f[dMMP])[ktsw ]; - f_BNW = (D.f[dPMP])[ktse ]; - f_BSE = (D.f[dMPP])[ktnw ]; - f_TSW = (D.f[dPPM])[kbne ]; - f_TNE = (D.f[dMMM])[kbsw ]; - f_TNW = (D.f[dPMM])[kbse ]; - f_TSE = (D.f[dMPM])[kbnw ]; - //////////////////////////////////////////////////////////////////////////////// - double OnE = c0o1, OnW = c0o1, OnN = c0o1, OnS = c0o1, OnT = c0o1, OnB = c0o1, - OnNE = c0o1, OnSW = c0o1, OnSE = c0o1, OnNW = c0o1, - OnTE = c0o1, OnBW = c0o1, OnBE = c0o1, OnTW = c0o1, - OnTN = c0o1, OnBS = c0o1, OnBN = c0o1, OnTS = c0o1, - OnTNE = c0o1, OnTSW = c0o1, OnTSE = c0o1, OnTNW = c0o1, - OnBNE = c0o1, OnBSW = c0o1, OnBSE = c0o1, OnBNW = c0o1; - //////////////////////////////////////////////////////////////////////////////// - real q; - q = q_dirE[k]; if (q>=c0o1 && q<=c1o1) OnE = c1o1; - q = q_dirW[k]; if (q>=c0o1 && q<=c1o1) OnW = c1o1; - q = q_dirN[k]; if (q>=c0o1 && q<=c1o1) OnN = c1o1; - q = q_dirS[k]; if (q>=c0o1 && q<=c1o1) OnS = c1o1; - q = q_dirT[k]; if (q>=c0o1 && q<=c1o1) OnT = c1o1; - q = q_dirB[k]; if (q>=c0o1 && q<=c1o1) OnB = c1o1; - q = q_dirNE[k]; if (q>=c0o1 && q<=c1o1) OnNE = c1o1; - q = q_dirSW[k]; if (q>=c0o1 && q<=c1o1) OnSW = c1o1; - q = q_dirSE[k]; if (q>=c0o1 && q<=c1o1) OnSE = c1o1; - q = q_dirNW[k]; if (q>=c0o1 && q<=c1o1) OnNW = c1o1; - q = q_dirTE[k]; if (q>=c0o1 && q<=c1o1) OnTE = c1o1; - q = q_dirBW[k]; if (q>=c0o1 && q<=c1o1) OnBW = c1o1; - q = q_dirBE[k]; if (q>=c0o1 && q<=c1o1) OnBE = c1o1; - q = q_dirTW[k]; if (q>=c0o1 && q<=c1o1) OnTW = c1o1; - q = q_dirTN[k]; if (q>=c0o1 && q<=c1o1) OnTN = c1o1; - q = q_dirBS[k]; if (q>=c0o1 && q<=c1o1) OnBS = c1o1; - q = q_dirBN[k]; if (q>=c0o1 && q<=c1o1) OnBN = c1o1; - q = q_dirTS[k]; if (q>=c0o1 && q<=c1o1) OnTS = c1o1; - q = q_dirTNE[k]; if (q>=c0o1 && q<=c1o1) OnTNE = c1o1; - q = q_dirBSW[k]; if (q>=c0o1 && q<=c1o1) OnBSW = c1o1; - q = q_dirBNE[k]; if (q>=c0o1 && q<=c1o1) OnBNE = c1o1; - q = q_dirTSW[k]; if (q>=c0o1 && q<=c1o1) OnTSW = c1o1; - q = q_dirTSE[k]; if (q>=c0o1 && q<=c1o1) OnTSE = c1o1; - q = q_dirBNW[k]; if (q>=c0o1 && q<=c1o1) OnBNW = c1o1; - q = q_dirBSE[k]; if (q>=c0o1 && q<=c1o1) OnBSE = c1o1; - q = q_dirTNW[k]; if (q>=c0o1 && q<=c1o1) OnTNW = c1o1; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - double dragX, dragY, dragZ; + f_W = (D.f[dP00])[ke ]; + f_E = (D.f[dM00])[kw ]; + f_S = (D.f[d0P0])[kn ]; + f_N = (D.f[d0M0])[ks ]; + f_B = (D.f[d00P])[kt ]; + f_T = (D.f[d00M])[kb ]; + f_SW = (D.f[dPP0])[kne ]; + f_NE = (D.f[dMM0])[ksw ]; + f_NW = (D.f[dPM0])[kse ]; + f_SE = (D.f[dMP0])[knw ]; + f_BW = (D.f[dP0P])[kte ]; + f_TE = (D.f[dM0M])[kbw ]; + f_TW = (D.f[dP0M])[kbe ]; + f_BE = (D.f[dM0P])[ktw ]; + f_BS = (D.f[d0PP])[ktn ]; + f_TN = (D.f[d0MM])[kbs ]; + f_TS = (D.f[d0PM])[kbn ]; + f_BN = (D.f[d0MP])[kts ]; + f_BSW = (D.f[dPPP])[ktne ]; + f_BNE = (D.f[dMMP])[ktsw ]; + f_BNW = (D.f[dPMP])[ktse ]; + f_BSE = (D.f[dMPP])[ktnw ]; + f_TSW = (D.f[dPPM])[kbne ]; + f_TNE = (D.f[dMMM])[kbsw ]; + f_TNW = (D.f[dPMM])[kbse ]; + f_TSE = (D.f[dMPM])[kbnw ]; + //////////////////////////////////////////////////////////////////////////////// + double OnE = c0o1, OnW = c0o1, OnN = c0o1, OnS = c0o1, OnT = c0o1, OnB = c0o1, + OnNE = c0o1, OnSW = c0o1, OnSE = c0o1, OnNW = c0o1, + OnTE = c0o1, OnBW = c0o1, OnBE = c0o1, OnTW = c0o1, + OnTN = c0o1, OnBS = c0o1, OnBN = c0o1, OnTS = c0o1, + OnTNE = c0o1, OnTSW = c0o1, OnTSE = c0o1, OnTNW = c0o1, + OnBNE = c0o1, OnBSW = c0o1, OnBSE = c0o1, OnBNW = c0o1; + //////////////////////////////////////////////////////////////////////////////// + real q; + q = q_dirE[k]; if (q>=c0o1 && q<=c1o1) OnE = c1o1; + q = q_dirW[k]; if (q>=c0o1 && q<=c1o1) OnW = c1o1; + q = q_dirN[k]; if (q>=c0o1 && q<=c1o1) OnN = c1o1; + q = q_dirS[k]; if (q>=c0o1 && q<=c1o1) OnS = c1o1; + q = q_dirT[k]; if (q>=c0o1 && q<=c1o1) OnT = c1o1; + q = q_dirB[k]; if (q>=c0o1 && q<=c1o1) OnB = c1o1; + q = q_dirNE[k]; if (q>=c0o1 && q<=c1o1) OnNE = c1o1; + q = q_dirSW[k]; if (q>=c0o1 && q<=c1o1) OnSW = c1o1; + q = q_dirSE[k]; if (q>=c0o1 && q<=c1o1) OnSE = c1o1; + q = q_dirNW[k]; if (q>=c0o1 && q<=c1o1) OnNW = c1o1; + q = q_dirTE[k]; if (q>=c0o1 && q<=c1o1) OnTE = c1o1; + q = q_dirBW[k]; if (q>=c0o1 && q<=c1o1) OnBW = c1o1; + q = q_dirBE[k]; if (q>=c0o1 && q<=c1o1) OnBE = c1o1; + q = q_dirTW[k]; if (q>=c0o1 && q<=c1o1) OnTW = c1o1; + q = q_dirTN[k]; if (q>=c0o1 && q<=c1o1) OnTN = c1o1; + q = q_dirBS[k]; if (q>=c0o1 && q<=c1o1) OnBS = c1o1; + q = q_dirBN[k]; if (q>=c0o1 && q<=c1o1) OnBN = c1o1; + q = q_dirTS[k]; if (q>=c0o1 && q<=c1o1) OnTS = c1o1; + q = q_dirTNE[k]; if (q>=c0o1 && q<=c1o1) OnTNE = c1o1; + q = q_dirBSW[k]; if (q>=c0o1 && q<=c1o1) OnBSW = c1o1; + q = q_dirBNE[k]; if (q>=c0o1 && q<=c1o1) OnBNE = c1o1; + q = q_dirTSW[k]; if (q>=c0o1 && q<=c1o1) OnTSW = c1o1; + q = q_dirTSE[k]; if (q>=c0o1 && q<=c1o1) OnTSE = c1o1; + q = q_dirBNW[k]; if (q>=c0o1 && q<=c1o1) OnBNW = c1o1; + q = q_dirBSE[k]; if (q>=c0o1 && q<=c1o1) OnBSE = c1o1; + q = q_dirTNW[k]; if (q>=c0o1 && q<=c1o1) OnTNW = c1o1; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + double dragX, dragY, dragZ; - dragX = ((((f_BSE * OnBSE) - (f_TNW * OnTNW)) + - ((f_BNE * OnBNE) - (f_TSW * OnTSW)) + - ((f_TSE * OnTSE) - (f_BNW * OnBNW)) + - ((f_TNE * OnTNE) - (f_BSW * OnBSW))) + - (((f_BE * OnBE ) - (f_TW * OnTW )) + - ((f_TE * OnTE ) - (f_BW * OnBW )) + - ((f_SE * OnSE ) - (f_NW * OnNW )) + - ((f_NE * OnNE ) - (f_SW * OnSW )))) + - ((f_E * OnE ) - (f_W * OnW )); + dragX = ((((f_BSE * OnBSE) - (f_TNW * OnTNW)) + + ((f_BNE * OnBNE) - (f_TSW * OnTSW)) + + ((f_TSE * OnTSE) - (f_BNW * OnBNW)) + + ((f_TNE * OnTNE) - (f_BSW * OnBSW))) + + (((f_BE * OnBE ) - (f_TW * OnTW )) + + ((f_TE * OnTE ) - (f_BW * OnBW )) + + ((f_SE * OnSE ) - (f_NW * OnNW )) + + ((f_NE * OnNE ) - (f_SW * OnSW )))) + + ((f_E * OnE ) - (f_W * OnW )); - dragY = ((((f_TNW * OnTNW) - (f_BSE * OnBSE)) + - ((f_BNE * OnBNE) - (f_TSW * OnTSW)) + - ((f_BNW * OnBNW) - (f_TSE * OnTSE)) + - ((f_TNE * OnTNE) - (f_BSW * OnBSW))) + - (((f_BN * OnBN ) - (f_TS * OnTS )) + - ((f_TN * OnTN ) - (f_BS * OnBS )) + - ((f_NW * OnNW ) - (f_SE * OnSE )) + - ((f_NE * OnNE ) - (f_SW * OnSW )))) + - ((f_N * OnN ) - (f_S * OnS )); + dragY = ((((f_TNW * OnTNW) - (f_BSE * OnBSE)) + + ((f_BNE * OnBNE) - (f_TSW * OnTSW)) + + ((f_BNW * OnBNW) - (f_TSE * OnTSE)) + + ((f_TNE * OnTNE) - (f_BSW * OnBSW))) + + (((f_BN * OnBN ) - (f_TS * OnTS )) + + ((f_TN * OnTN ) - (f_BS * OnBS )) + + ((f_NW * OnNW ) - (f_SE * OnSE )) + + ((f_NE * OnNE ) - (f_SW * OnSW )))) + + ((f_N * OnN ) - (f_S * OnS )); - dragZ = ((((f_TNW * OnTNW) - (f_BSE * OnBSE)) + - ((f_TSW * OnTSW) - (f_BNE * OnBNE)) + - ((f_TSE * OnTSE) - (f_BNW * OnBNW)) + - ((f_TNE * OnTNE) - (f_BSW * OnBSW))) + - (((f_TS * OnTS ) - (f_BN * OnBN )) + - ((f_TN * OnTN ) - (f_BS * OnBS )) + - ((f_TW * OnTW ) - (f_BE * OnBE )) + - ((f_TE * OnTE ) - (f_BW * OnBW )))) + - ((f_T * OnT ) - (f_B * OnB )); - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - DragX[k] = -dragX; - DragY[k] = -dragY; - DragZ[k] = -dragZ; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - } + dragZ = ((((f_TNW * OnTNW) - (f_BSE * OnBSE)) + + ((f_TSW * OnTSW) - (f_BNE * OnBNE)) + + ((f_TSE * OnTSE) - (f_BNW * OnBNW)) + + ((f_TNE * OnTNE) - (f_BSW * OnBSW))) + + (((f_TS * OnTS ) - (f_BN * OnBN )) + + ((f_TN * OnTN ) - (f_BS * OnBS )) + + ((f_TW * OnTW ) - (f_BE * OnBE )) + + ((f_TE * OnTE ) - (f_BW * OnBW )))) + + ((f_T * OnT ) - (f_B * OnB )); + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + DragX[k] = -dragX; + DragY[k] = -dragY; + DragZ[k] = -dragZ; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + } } @@ -273,255 +273,255 @@ __global__ void DragLiftPost27( real* DD, //////////////////////////////////////////////////////////////////////////////// __global__ void DragLiftPre27( real* DD, - int* k_Q, - real* QQ, - int numberOfBCnodes, - double *DragX, - double *DragY, - double *DragZ, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned long long numberOfLBnodes, - bool isEvenTimestep) + int* k_Q, + real* QQ, + int numberOfBCnodes, + double *DragX, + double *DragY, + double *DragZ, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned long long numberOfLBnodes, + bool isEvenTimestep) { - Distributions27 D; - if (isEvenTimestep==true) - { - D.f[dP00] = &DD[dP00 * numberOfLBnodes]; - D.f[dM00] = &DD[dM00 * numberOfLBnodes]; - D.f[d0P0] = &DD[d0P0 * numberOfLBnodes]; - D.f[d0M0] = &DD[d0M0 * numberOfLBnodes]; - D.f[d00P] = &DD[d00P * numberOfLBnodes]; - D.f[d00M] = &DD[d00M * numberOfLBnodes]; - D.f[dPP0] = &DD[dPP0 * numberOfLBnodes]; - D.f[dMM0] = &DD[dMM0 * numberOfLBnodes]; - D.f[dPM0] = &DD[dPM0 * numberOfLBnodes]; - D.f[dMP0] = &DD[dMP0 * numberOfLBnodes]; - D.f[dP0P] = &DD[dP0P * numberOfLBnodes]; - D.f[dM0M] = &DD[dM0M * numberOfLBnodes]; - D.f[dP0M] = &DD[dP0M * numberOfLBnodes]; - D.f[dM0P] = &DD[dM0P * numberOfLBnodes]; - D.f[d0PP] = &DD[d0PP * numberOfLBnodes]; - D.f[d0MM] = &DD[d0MM * numberOfLBnodes]; - D.f[d0PM] = &DD[d0PM * numberOfLBnodes]; - D.f[d0MP] = &DD[d0MP * numberOfLBnodes]; - D.f[d000] = &DD[d000 * numberOfLBnodes]; - D.f[dPPP] = &DD[dPPP * numberOfLBnodes]; - D.f[dMMP] = &DD[dMMP * numberOfLBnodes]; - D.f[dPMP] = &DD[dPMP * numberOfLBnodes]; - D.f[dMPP] = &DD[dMPP * numberOfLBnodes]; - D.f[dPPM] = &DD[dPPM * numberOfLBnodes]; - D.f[dMMM] = &DD[dMMM * numberOfLBnodes]; - D.f[dPMM] = &DD[dPMM * numberOfLBnodes]; - D.f[dMPM] = &DD[dMPM * numberOfLBnodes]; - } - else - { - D.f[dM00] = &DD[dP00 * numberOfLBnodes]; - D.f[dP00] = &DD[dM00 * numberOfLBnodes]; - D.f[d0M0] = &DD[d0P0 * numberOfLBnodes]; - D.f[d0P0] = &DD[d0M0 * numberOfLBnodes]; - D.f[d00M] = &DD[d00P * numberOfLBnodes]; - D.f[d00P] = &DD[d00M * numberOfLBnodes]; - D.f[dMM0] = &DD[dPP0 * numberOfLBnodes]; - D.f[dPP0] = &DD[dMM0 * numberOfLBnodes]; - D.f[dMP0] = &DD[dPM0 * numberOfLBnodes]; - D.f[dPM0] = &DD[dMP0 * numberOfLBnodes]; - D.f[dM0M] = &DD[dP0P * numberOfLBnodes]; - D.f[dP0P] = &DD[dM0M * numberOfLBnodes]; - D.f[dM0P] = &DD[dP0M * numberOfLBnodes]; - D.f[dP0M] = &DD[dM0P * numberOfLBnodes]; - D.f[d0MM] = &DD[d0PP * numberOfLBnodes]; - D.f[d0PP] = &DD[d0MM * numberOfLBnodes]; - D.f[d0MP] = &DD[d0PM * numberOfLBnodes]; - D.f[d0PM] = &DD[d0MP * numberOfLBnodes]; - D.f[d000] = &DD[d000 * numberOfLBnodes]; - D.f[dPPP] = &DD[dMMM * numberOfLBnodes]; - D.f[dMMP] = &DD[dPPM * numberOfLBnodes]; - D.f[dPMP] = &DD[dMPM * numberOfLBnodes]; - D.f[dMPP] = &DD[dPMM * numberOfLBnodes]; - D.f[dPPM] = &DD[dMMP * numberOfLBnodes]; - D.f[dMMM] = &DD[dPPP * numberOfLBnodes]; - D.f[dPMM] = &DD[dMPP * numberOfLBnodes]; - D.f[dMPM] = &DD[dPMP * numberOfLBnodes]; - } - //////////////////////////////////////////////////////////////////////////////// - const unsigned x = threadIdx.x; // Globaler x-Index - const unsigned y = blockIdx.x; // Globaler y-Index - const unsigned z = blockIdx.y; // Globaler z-Index + Distributions27 D; + if (isEvenTimestep==true) + { + D.f[dP00] = &DD[dP00 * numberOfLBnodes]; + D.f[dM00] = &DD[dM00 * numberOfLBnodes]; + D.f[d0P0] = &DD[d0P0 * numberOfLBnodes]; + D.f[d0M0] = &DD[d0M0 * numberOfLBnodes]; + D.f[d00P] = &DD[d00P * numberOfLBnodes]; + D.f[d00M] = &DD[d00M * numberOfLBnodes]; + D.f[dPP0] = &DD[dPP0 * numberOfLBnodes]; + D.f[dMM0] = &DD[dMM0 * numberOfLBnodes]; + D.f[dPM0] = &DD[dPM0 * numberOfLBnodes]; + D.f[dMP0] = &DD[dMP0 * numberOfLBnodes]; + D.f[dP0P] = &DD[dP0P * numberOfLBnodes]; + D.f[dM0M] = &DD[dM0M * numberOfLBnodes]; + D.f[dP0M] = &DD[dP0M * numberOfLBnodes]; + D.f[dM0P] = &DD[dM0P * numberOfLBnodes]; + D.f[d0PP] = &DD[d0PP * numberOfLBnodes]; + D.f[d0MM] = &DD[d0MM * numberOfLBnodes]; + D.f[d0PM] = &DD[d0PM * numberOfLBnodes]; + D.f[d0MP] = &DD[d0MP * numberOfLBnodes]; + D.f[d000] = &DD[d000 * numberOfLBnodes]; + D.f[dPPP] = &DD[dPPP * numberOfLBnodes]; + D.f[dMMP] = &DD[dMMP * numberOfLBnodes]; + D.f[dPMP] = &DD[dPMP * numberOfLBnodes]; + D.f[dMPP] = &DD[dMPP * numberOfLBnodes]; + D.f[dPPM] = &DD[dPPM * numberOfLBnodes]; + D.f[dMMM] = &DD[dMMM * numberOfLBnodes]; + D.f[dPMM] = &DD[dPMM * numberOfLBnodes]; + D.f[dMPM] = &DD[dMPM * numberOfLBnodes]; + } + else + { + D.f[dM00] = &DD[dP00 * numberOfLBnodes]; + D.f[dP00] = &DD[dM00 * numberOfLBnodes]; + D.f[d0M0] = &DD[d0P0 * numberOfLBnodes]; + D.f[d0P0] = &DD[d0M0 * numberOfLBnodes]; + D.f[d00M] = &DD[d00P * numberOfLBnodes]; + D.f[d00P] = &DD[d00M * numberOfLBnodes]; + D.f[dMM0] = &DD[dPP0 * numberOfLBnodes]; + D.f[dPP0] = &DD[dMM0 * numberOfLBnodes]; + D.f[dMP0] = &DD[dPM0 * numberOfLBnodes]; + D.f[dPM0] = &DD[dMP0 * numberOfLBnodes]; + D.f[dM0M] = &DD[dP0P * numberOfLBnodes]; + D.f[dP0P] = &DD[dM0M * numberOfLBnodes]; + D.f[dM0P] = &DD[dP0M * numberOfLBnodes]; + D.f[dP0M] = &DD[dM0P * numberOfLBnodes]; + D.f[d0MM] = &DD[d0PP * numberOfLBnodes]; + D.f[d0PP] = &DD[d0MM * numberOfLBnodes]; + D.f[d0MP] = &DD[d0PM * numberOfLBnodes]; + D.f[d0PM] = &DD[d0MP * numberOfLBnodes]; + D.f[d000] = &DD[d000 * numberOfLBnodes]; + D.f[dPPP] = &DD[dMMM * numberOfLBnodes]; + D.f[dMMP] = &DD[dPPM * numberOfLBnodes]; + D.f[dPMP] = &DD[dMPM * numberOfLBnodes]; + D.f[dMPP] = &DD[dPMM * numberOfLBnodes]; + D.f[dPPM] = &DD[dMMP * numberOfLBnodes]; + D.f[dMMM] = &DD[dPPP * numberOfLBnodes]; + D.f[dPMM] = &DD[dMPP * numberOfLBnodes]; + D.f[dMPM] = &DD[dPMP * numberOfLBnodes]; + } + //////////////////////////////////////////////////////////////////////////////// + const unsigned x = threadIdx.x; // Globaler x-Index + const unsigned y = blockIdx.x; // Globaler y-Index + const unsigned z = blockIdx.y; // Globaler z-Index - const unsigned nx = blockDim.x; - const unsigned ny = gridDim.x; + const unsigned nx = blockDim.x; + const unsigned ny = gridDim.x; - const unsigned k = nx*(ny*z + y) + x; - ////////////////////////////////////////////////////////////////////////// + const unsigned k = nx*(ny*z + y) + x; + ////////////////////////////////////////////////////////////////////////// - if(k<numberOfBCnodes) - { - //////////////////////////////////////////////////////////////////////////////// - real *q_dirE, *q_dirW, *q_dirN, *q_dirS, *q_dirT, *q_dirB, - *q_dirNE, *q_dirSW, *q_dirSE, *q_dirNW, *q_dirTE, *q_dirBW, - *q_dirBE, *q_dirTW, *q_dirTN, *q_dirBS, *q_dirBN, *q_dirTS, - *q_dirTNE, *q_dirTSW, *q_dirTSE, *q_dirTNW, *q_dirBNE, *q_dirBSW, - *q_dirBSE, *q_dirBNW; - q_dirE = &QQ[dP00 * numberOfBCnodes]; - q_dirW = &QQ[dM00 * numberOfBCnodes]; - q_dirN = &QQ[d0P0 * numberOfBCnodes]; - q_dirS = &QQ[d0M0 * numberOfBCnodes]; - q_dirT = &QQ[d00P * numberOfBCnodes]; - q_dirB = &QQ[d00M * numberOfBCnodes]; - q_dirNE = &QQ[dPP0 * numberOfBCnodes]; - q_dirSW = &QQ[dMM0 * numberOfBCnodes]; - q_dirSE = &QQ[dPM0 * numberOfBCnodes]; - q_dirNW = &QQ[dMP0 * numberOfBCnodes]; - q_dirTE = &QQ[dP0P * numberOfBCnodes]; - q_dirBW = &QQ[dM0M * numberOfBCnodes]; - q_dirBE = &QQ[dP0M * numberOfBCnodes]; - q_dirTW = &QQ[dM0P * numberOfBCnodes]; - q_dirTN = &QQ[d0PP * numberOfBCnodes]; - q_dirBS = &QQ[d0MM * numberOfBCnodes]; - q_dirBN = &QQ[d0PM * numberOfBCnodes]; - q_dirTS = &QQ[d0MP * numberOfBCnodes]; - q_dirTNE = &QQ[dPPP * numberOfBCnodes]; - q_dirTSW = &QQ[dMMP * numberOfBCnodes]; - q_dirTSE = &QQ[dPMP * numberOfBCnodes]; - q_dirTNW = &QQ[dMPP * numberOfBCnodes]; - q_dirBNE = &QQ[dPPM * numberOfBCnodes]; - q_dirBSW = &QQ[dMMM * numberOfBCnodes]; - q_dirBSE = &QQ[dPMM * numberOfBCnodes]; - q_dirBNW = &QQ[dMPM * numberOfBCnodes]; - //////////////////////////////////////////////////////////////////////////////// - //index - unsigned int KQK = k_Q[k]; - //unsigned int kzero= KQK; - unsigned int ke = KQK; - unsigned int kw = neighborX[KQK]; - unsigned int kn = KQK; - unsigned int ks = neighborY[KQK]; - unsigned int kt = KQK; - unsigned int kb = neighborZ[KQK]; - unsigned int ksw = neighborY[kw]; - unsigned int kne = KQK; - unsigned int kse = ks; - unsigned int knw = kw; - unsigned int kbw = neighborZ[kw]; - unsigned int kte = KQK; - unsigned int kbe = kb; - unsigned int ktw = kw; - unsigned int kbs = neighborZ[ks]; - unsigned int ktn = KQK; - unsigned int kbn = kb; - unsigned int kts = ks; - unsigned int ktse = ks; - unsigned int kbnw = kbw; - unsigned int ktnw = kw; - unsigned int kbse = kbs; - unsigned int ktsw = ksw; - unsigned int kbne = kb; - unsigned int ktne = KQK; - unsigned int kbsw = neighborZ[ksw]; - //////////////////////////////////////////////////////////////////////////////// - real f_E, f_W, f_N, f_S, f_T, f_B, f_NE, f_SW, f_SE, f_NW, f_TE, f_BW, f_BE, + if(k<numberOfBCnodes) + { + //////////////////////////////////////////////////////////////////////////////// + real *q_dirE, *q_dirW, *q_dirN, *q_dirS, *q_dirT, *q_dirB, + *q_dirNE, *q_dirSW, *q_dirSE, *q_dirNW, *q_dirTE, *q_dirBW, + *q_dirBE, *q_dirTW, *q_dirTN, *q_dirBS, *q_dirBN, *q_dirTS, + *q_dirTNE, *q_dirTSW, *q_dirTSE, *q_dirTNW, *q_dirBNE, *q_dirBSW, + *q_dirBSE, *q_dirBNW; + q_dirE = &QQ[dP00 * numberOfBCnodes]; + q_dirW = &QQ[dM00 * numberOfBCnodes]; + q_dirN = &QQ[d0P0 * numberOfBCnodes]; + q_dirS = &QQ[d0M0 * numberOfBCnodes]; + q_dirT = &QQ[d00P * numberOfBCnodes]; + q_dirB = &QQ[d00M * numberOfBCnodes]; + q_dirNE = &QQ[dPP0 * numberOfBCnodes]; + q_dirSW = &QQ[dMM0 * numberOfBCnodes]; + q_dirSE = &QQ[dPM0 * numberOfBCnodes]; + q_dirNW = &QQ[dMP0 * numberOfBCnodes]; + q_dirTE = &QQ[dP0P * numberOfBCnodes]; + q_dirBW = &QQ[dM0M * numberOfBCnodes]; + q_dirBE = &QQ[dP0M * numberOfBCnodes]; + q_dirTW = &QQ[dM0P * numberOfBCnodes]; + q_dirTN = &QQ[d0PP * numberOfBCnodes]; + q_dirBS = &QQ[d0MM * numberOfBCnodes]; + q_dirBN = &QQ[d0PM * numberOfBCnodes]; + q_dirTS = &QQ[d0MP * numberOfBCnodes]; + q_dirTNE = &QQ[dPPP * numberOfBCnodes]; + q_dirTSW = &QQ[dMMP * numberOfBCnodes]; + q_dirTSE = &QQ[dPMP * numberOfBCnodes]; + q_dirTNW = &QQ[dMPP * numberOfBCnodes]; + q_dirBNE = &QQ[dPPM * numberOfBCnodes]; + q_dirBSW = &QQ[dMMM * numberOfBCnodes]; + q_dirBSE = &QQ[dPMM * numberOfBCnodes]; + q_dirBNW = &QQ[dMPM * numberOfBCnodes]; + //////////////////////////////////////////////////////////////////////////////// + //index + unsigned int KQK = k_Q[k]; + //unsigned int kzero= KQK; + unsigned int ke = KQK; + unsigned int kw = neighborX[KQK]; + unsigned int kn = KQK; + unsigned int ks = neighborY[KQK]; + unsigned int kt = KQK; + unsigned int kb = neighborZ[KQK]; + unsigned int ksw = neighborY[kw]; + unsigned int kne = KQK; + unsigned int kse = ks; + unsigned int knw = kw; + unsigned int kbw = neighborZ[kw]; + unsigned int kte = KQK; + unsigned int kbe = kb; + unsigned int ktw = kw; + unsigned int kbs = neighborZ[ks]; + unsigned int ktn = KQK; + unsigned int kbn = kb; + unsigned int kts = ks; + unsigned int ktse = ks; + unsigned int kbnw = kbw; + unsigned int ktnw = kw; + unsigned int kbse = kbs; + unsigned int ktsw = ksw; + unsigned int kbne = kb; + unsigned int ktne = KQK; + unsigned int kbsw = neighborZ[ksw]; + //////////////////////////////////////////////////////////////////////////////// + real f_E, f_W, f_N, f_S, f_T, f_B, f_NE, f_SW, f_SE, f_NW, f_TE, f_BW, f_BE, f_TW, f_TN, f_BS, f_BN, f_TS, f_TNE, f_TSW, f_TSE, f_TNW, f_BNE, f_BSW, f_BSE, f_BNW; - f_E = (D.f[dP00])[ke ]; - f_W = (D.f[dM00])[kw ]; - f_N = (D.f[d0P0])[kn ]; - f_S = (D.f[d0M0])[ks ]; - f_T = (D.f[d00P])[kt ]; - f_B = (D.f[d00M])[kb ]; - f_NE = (D.f[dPP0])[kne ]; - f_SW = (D.f[dMM0])[ksw ]; - f_SE = (D.f[dPM0])[kse ]; - f_NW = (D.f[dMP0])[knw ]; - f_TE = (D.f[dP0P])[kte ]; - f_BW = (D.f[dM0M])[kbw ]; - f_BE = (D.f[dP0M])[kbe ]; - f_TW = (D.f[dM0P])[ktw ]; - f_TN = (D.f[d0PP])[ktn ]; - f_BS = (D.f[d0MM])[kbs ]; - f_BN = (D.f[d0PM])[kbn ]; - f_TS = (D.f[d0MP])[kts ]; - f_TNE = (D.f[dPPP])[ktne ]; - f_TSW = (D.f[dMMP])[ktsw ]; - f_TSE = (D.f[dPMP])[ktse ]; - f_TNW = (D.f[dMPP])[ktnw ]; - f_BNE = (D.f[dPPM])[kbne ]; - f_BSW = (D.f[dMMM])[kbsw ]; - f_BSE = (D.f[dPMM])[kbse ]; - f_BNW = (D.f[dMPM])[kbnw ]; - //////////////////////////////////////////////////////////////////////////////// - double OnE = c0o1, OnW = c0o1, OnN = c0o1, OnS = c0o1, OnT = c0o1, OnB = c0o1, - OnNE = c0o1, OnSW = c0o1, OnSE = c0o1, OnNW = c0o1, - OnTE = c0o1, OnBW = c0o1, OnBE = c0o1, OnTW = c0o1, - OnTN = c0o1, OnBS = c0o1, OnBN = c0o1, OnTS = c0o1, - OnTNE = c0o1, OnTSW = c0o1, OnTSE = c0o1, OnTNW = c0o1, - OnBNE = c0o1, OnBSW = c0o1, OnBSE = c0o1, OnBNW = c0o1; - //////////////////////////////////////////////////////////////////////////////// - real q; - q = q_dirE[k]; if (q>=c0o1 && q<=c1o1) OnW = c1o1; - q = q_dirW[k]; if (q>=c0o1 && q<=c1o1) OnE = c1o1; - q = q_dirN[k]; if (q>=c0o1 && q<=c1o1) OnS = c1o1; - q = q_dirS[k]; if (q>=c0o1 && q<=c1o1) OnN = c1o1; - q = q_dirT[k]; if (q>=c0o1 && q<=c1o1) OnB = c1o1; - q = q_dirB[k]; if (q>=c0o1 && q<=c1o1) OnT = c1o1; - q = q_dirNE[k]; if (q>=c0o1 && q<=c1o1) OnSW = c1o1; - q = q_dirSW[k]; if (q>=c0o1 && q<=c1o1) OnNE = c1o1; - q = q_dirSE[k]; if (q>=c0o1 && q<=c1o1) OnNW = c1o1; - q = q_dirNW[k]; if (q>=c0o1 && q<=c1o1) OnSE = c1o1; - q = q_dirTE[k]; if (q>=c0o1 && q<=c1o1) OnBW = c1o1; - q = q_dirBW[k]; if (q>=c0o1 && q<=c1o1) OnTE = c1o1; - q = q_dirBE[k]; if (q>=c0o1 && q<=c1o1) OnTW = c1o1; - q = q_dirTW[k]; if (q>=c0o1 && q<=c1o1) OnBE = c1o1; - q = q_dirTN[k]; if (q>=c0o1 && q<=c1o1) OnBS = c1o1; - q = q_dirBS[k]; if (q>=c0o1 && q<=c1o1) OnTN = c1o1; - q = q_dirBN[k]; if (q>=c0o1 && q<=c1o1) OnTS = c1o1; - q = q_dirTS[k]; if (q>=c0o1 && q<=c1o1) OnBN = c1o1; - q = q_dirTNE[k]; if (q>=c0o1 && q<=c1o1) OnBSW = c1o1; - q = q_dirBSW[k]; if (q>=c0o1 && q<=c1o1) OnTNE = c1o1; - q = q_dirBNE[k]; if (q>=c0o1 && q<=c1o1) OnTSW = c1o1; - q = q_dirTSW[k]; if (q>=c0o1 && q<=c1o1) OnBNE = c1o1; - q = q_dirTSE[k]; if (q>=c0o1 && q<=c1o1) OnBNW = c1o1; - q = q_dirBNW[k]; if (q>=c0o1 && q<=c1o1) OnTSE = c1o1; - q = q_dirBSE[k]; if (q>=c0o1 && q<=c1o1) OnTNW = c1o1; - q = q_dirTNW[k]; if (q>=c0o1 && q<=c1o1) OnBSE = c1o1; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - double dragX, dragY, dragZ; + f_E = (D.f[dP00])[ke ]; + f_W = (D.f[dM00])[kw ]; + f_N = (D.f[d0P0])[kn ]; + f_S = (D.f[d0M0])[ks ]; + f_T = (D.f[d00P])[kt ]; + f_B = (D.f[d00M])[kb ]; + f_NE = (D.f[dPP0])[kne ]; + f_SW = (D.f[dMM0])[ksw ]; + f_SE = (D.f[dPM0])[kse ]; + f_NW = (D.f[dMP0])[knw ]; + f_TE = (D.f[dP0P])[kte ]; + f_BW = (D.f[dM0M])[kbw ]; + f_BE = (D.f[dP0M])[kbe ]; + f_TW = (D.f[dM0P])[ktw ]; + f_TN = (D.f[d0PP])[ktn ]; + f_BS = (D.f[d0MM])[kbs ]; + f_BN = (D.f[d0PM])[kbn ]; + f_TS = (D.f[d0MP])[kts ]; + f_TNE = (D.f[dPPP])[ktne ]; + f_TSW = (D.f[dMMP])[ktsw ]; + f_TSE = (D.f[dPMP])[ktse ]; + f_TNW = (D.f[dMPP])[ktnw ]; + f_BNE = (D.f[dPPM])[kbne ]; + f_BSW = (D.f[dMMM])[kbsw ]; + f_BSE = (D.f[dPMM])[kbse ]; + f_BNW = (D.f[dMPM])[kbnw ]; + //////////////////////////////////////////////////////////////////////////////// + double OnE = c0o1, OnW = c0o1, OnN = c0o1, OnS = c0o1, OnT = c0o1, OnB = c0o1, + OnNE = c0o1, OnSW = c0o1, OnSE = c0o1, OnNW = c0o1, + OnTE = c0o1, OnBW = c0o1, OnBE = c0o1, OnTW = c0o1, + OnTN = c0o1, OnBS = c0o1, OnBN = c0o1, OnTS = c0o1, + OnTNE = c0o1, OnTSW = c0o1, OnTSE = c0o1, OnTNW = c0o1, + OnBNE = c0o1, OnBSW = c0o1, OnBSE = c0o1, OnBNW = c0o1; + //////////////////////////////////////////////////////////////////////////////// + real q; + q = q_dirE[k]; if (q>=c0o1 && q<=c1o1) OnW = c1o1; + q = q_dirW[k]; if (q>=c0o1 && q<=c1o1) OnE = c1o1; + q = q_dirN[k]; if (q>=c0o1 && q<=c1o1) OnS = c1o1; + q = q_dirS[k]; if (q>=c0o1 && q<=c1o1) OnN = c1o1; + q = q_dirT[k]; if (q>=c0o1 && q<=c1o1) OnB = c1o1; + q = q_dirB[k]; if (q>=c0o1 && q<=c1o1) OnT = c1o1; + q = q_dirNE[k]; if (q>=c0o1 && q<=c1o1) OnSW = c1o1; + q = q_dirSW[k]; if (q>=c0o1 && q<=c1o1) OnNE = c1o1; + q = q_dirSE[k]; if (q>=c0o1 && q<=c1o1) OnNW = c1o1; + q = q_dirNW[k]; if (q>=c0o1 && q<=c1o1) OnSE = c1o1; + q = q_dirTE[k]; if (q>=c0o1 && q<=c1o1) OnBW = c1o1; + q = q_dirBW[k]; if (q>=c0o1 && q<=c1o1) OnTE = c1o1; + q = q_dirBE[k]; if (q>=c0o1 && q<=c1o1) OnTW = c1o1; + q = q_dirTW[k]; if (q>=c0o1 && q<=c1o1) OnBE = c1o1; + q = q_dirTN[k]; if (q>=c0o1 && q<=c1o1) OnBS = c1o1; + q = q_dirBS[k]; if (q>=c0o1 && q<=c1o1) OnTN = c1o1; + q = q_dirBN[k]; if (q>=c0o1 && q<=c1o1) OnTS = c1o1; + q = q_dirTS[k]; if (q>=c0o1 && q<=c1o1) OnBN = c1o1; + q = q_dirTNE[k]; if (q>=c0o1 && q<=c1o1) OnBSW = c1o1; + q = q_dirBSW[k]; if (q>=c0o1 && q<=c1o1) OnTNE = c1o1; + q = q_dirBNE[k]; if (q>=c0o1 && q<=c1o1) OnTSW = c1o1; + q = q_dirTSW[k]; if (q>=c0o1 && q<=c1o1) OnBNE = c1o1; + q = q_dirTSE[k]; if (q>=c0o1 && q<=c1o1) OnBNW = c1o1; + q = q_dirBNW[k]; if (q>=c0o1 && q<=c1o1) OnTSE = c1o1; + q = q_dirBSE[k]; if (q>=c0o1 && q<=c1o1) OnTNW = c1o1; + q = q_dirTNW[k]; if (q>=c0o1 && q<=c1o1) OnBSE = c1o1; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + double dragX, dragY, dragZ; - dragX = ((((f_BSE * OnBSE) - (f_TNW * OnTNW)) + - ((f_BNE * OnBNE) - (f_TSW * OnTSW)) + - ((f_TSE * OnTSE) - (f_BNW * OnBNW)) + - ((f_TNE * OnTNE) - (f_BSW * OnBSW))) + - (((f_BE * OnBE ) - (f_TW * OnTW )) + - ((f_TE * OnTE ) - (f_BW * OnBW )) + - ((f_SE * OnSE ) - (f_NW * OnNW )) + - ((f_NE * OnNE ) - (f_SW * OnSW )))) + - ((f_E * OnE ) - (f_W * OnW )); + dragX = ((((f_BSE * OnBSE) - (f_TNW * OnTNW)) + + ((f_BNE * OnBNE) - (f_TSW * OnTSW)) + + ((f_TSE * OnTSE) - (f_BNW * OnBNW)) + + ((f_TNE * OnTNE) - (f_BSW * OnBSW))) + + (((f_BE * OnBE ) - (f_TW * OnTW )) + + ((f_TE * OnTE ) - (f_BW * OnBW )) + + ((f_SE * OnSE ) - (f_NW * OnNW )) + + ((f_NE * OnNE ) - (f_SW * OnSW )))) + + ((f_E * OnE ) - (f_W * OnW )); - dragY = ((((f_TNW * OnTNW) - (f_BSE * OnBSE)) + - ((f_BNE * OnBNE) - (f_TSW * OnTSW)) + - ((f_BNW * OnBNW) - (f_TSE * OnTSE)) + - ((f_TNE * OnTNE) - (f_BSW * OnBSW))) + - (((f_BN * OnBN ) - (f_TS * OnTS )) + - ((f_TN * OnTN ) - (f_BS * OnBS )) + - ((f_NW * OnNW ) - (f_SE * OnSE )) + - ((f_NE * OnNE ) - (f_SW * OnSW )))) + - ((f_N * OnN ) - (f_S * OnS )); + dragY = ((((f_TNW * OnTNW) - (f_BSE * OnBSE)) + + ((f_BNE * OnBNE) - (f_TSW * OnTSW)) + + ((f_BNW * OnBNW) - (f_TSE * OnTSE)) + + ((f_TNE * OnTNE) - (f_BSW * OnBSW))) + + (((f_BN * OnBN ) - (f_TS * OnTS )) + + ((f_TN * OnTN ) - (f_BS * OnBS )) + + ((f_NW * OnNW ) - (f_SE * OnSE )) + + ((f_NE * OnNE ) - (f_SW * OnSW )))) + + ((f_N * OnN ) - (f_S * OnS )); - dragZ = ((((f_TNW * OnTNW) - (f_BSE * OnBSE)) + - ((f_TSW * OnTSW) - (f_BNE * OnBNE)) + - ((f_TSE * OnTSE) - (f_BNW * OnBNW)) + - ((f_TNE * OnTNE) - (f_BSW * OnBSW))) + - (((f_TS * OnTS ) - (f_BN * OnBN )) + - ((f_TN * OnTN ) - (f_BS * OnBS )) + - ((f_TW * OnTW ) - (f_BE * OnBE )) + - ((f_TE * OnTE ) - (f_BW * OnBW )))) + - ((f_T * OnT ) - (f_B * OnB )); - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - DragX[k] = -dragX; - DragY[k] = -dragY; - DragZ[k] = -dragZ; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - } + dragZ = ((((f_TNW * OnTNW) - (f_BSE * OnBSE)) + + ((f_TSW * OnTSW) - (f_BNE * OnBNE)) + + ((f_TSE * OnTSE) - (f_BNW * OnBNW)) + + ((f_TNE * OnTNE) - (f_BSW * OnBSW))) + + (((f_TS * OnTS ) - (f_BN * OnBN )) + + ((f_TN * OnTN ) - (f_BS * OnBS )) + + ((f_TW * OnTW ) - (f_BE * OnBE )) + + ((f_TE * OnTE ) - (f_BW * OnBW )))) + + ((f_T * OnT ) - (f_B * OnB )); + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + DragX[k] = -dragX; + DragY[k] = -dragY; + DragZ[k] = -dragZ; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + } } diff --git a/src/gpu/core/GPU/EnstrophyAnalyzer.cu b/src/gpu/core/GPU/EnstrophyAnalyzer.cu index 242038afcea351c0d9187a606d82d5bcd16c214c..3063e580193552e1b1fb7e5a0d62189a82efe975 100644 --- a/src/gpu/core/GPU/EnstrophyAnalyzer.cu +++ b/src/gpu/core/GPU/EnstrophyAnalyzer.cu @@ -66,15 +66,15 @@ bool EnstrophyAnalyzer::run(uint iter) enstrophy.data().get(), isFluid.data().get(), para->getParD(lev)->numberOfNodes); - cudaDeviceSynchronize(); - getLastCudaError("enstrophyKernel execution failed"); + cudaDeviceSynchronize(); + getLastCudaError("enstrophyKernel execution failed"); - real EnstrophyTmp = thrust::reduce(enstrophy.begin(), enstrophy.end(), c0o1, thrust::plus<real>()); + real EnstrophyTmp = thrust::reduce(enstrophy.begin(), enstrophy.end(), c0o1, thrust::plus<real>()); uint numberOfFluidNodes = thrust::reduce(isFluid.begin(), isFluid.end(), 0, thrust::plus<uint>()); //std::cout << "Enstrophy " << EnstrophyTmp << " " << numberOfFluidNodes << std::endl; - this->enstrophyTimeSeries.push_back( EnstrophyTmp / real(numberOfFluidNodes) ); + this->enstrophyTimeSeries.push_back( EnstrophyTmp / real(numberOfFluidNodes) ); //TODO: Should this function probably return nothing? return true; @@ -93,16 +93,16 @@ __global__ void enstrophyKernel(real* veloX, real* veloY, real* veloZ, real* rho const uint ny = gridDim.x; const uint index = nx*(ny*z + y) + x; - //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// //printf("%d\n", index); //if( index % 34 == 0 || index % 34 == 33 ) return; if( index >= (uint)numberOfLBnodes) return; - unsigned int BC; - BC = geo[index]; - if (BC != GEO_FLUID) return; + unsigned int BC; + BC = geo[index]; + if (BC != GEO_FLUID) return; enstrophyFunction( veloX, veloY, veloZ, rho, neighborX, neighborY, neighborZ, neighborWSB, geo, enstrophy, isFluid, index ); } @@ -113,16 +113,16 @@ __host__ __device__ void enstrophyFunction(real* veloX, real* veloY, real* veloZ uint maxOrderY = 8; uint maxOrderZ = 8; - ////////////////////////////////////////////////////////////////////////// - //neighbor index - uint k = index; - uint kPx = neighborX[k]; if( geo[ kPx ] != GEO_FLUID ) return; - uint kPy = neighborY[k]; if( geo[ kPy ] != GEO_FLUID ) return; - uint kPz = neighborZ[k]; if( geo[ kPz ] != GEO_FLUID ) return; - uint kMxyz = neighborWSB[k]; - uint kMx = neighborZ[neighborY[kMxyz]]; if( geo[ kMx ] != GEO_FLUID ) return; - uint kMy = neighborZ[neighborX[kMxyz]]; if( geo[ kMy ] != GEO_FLUID ) return; - uint kMz = neighborY[neighborX[kMxyz]]; if( geo[ kMz ] != GEO_FLUID ) return; + ////////////////////////////////////////////////////////////////////////// + //neighbor index + uint k = index; + uint kPx = neighborX[k]; if( geo[ kPx ] != GEO_FLUID ) return; + uint kPy = neighborY[k]; if( geo[ kPy ] != GEO_FLUID ) return; + uint kPz = neighborZ[k]; if( geo[ kPz ] != GEO_FLUID ) return; + uint kMxyz = neighborWSB[k]; + uint kMx = neighborZ[neighborY[kMxyz]]; if( geo[ kMx ] != GEO_FLUID ) return; + uint kMy = neighborZ[neighborX[kMxyz]]; if( geo[ kMy ] != GEO_FLUID ) return; + uint kMz = neighborY[neighborX[kMxyz]]; if( geo[ kMz ] != GEO_FLUID ) return; ////////////////////////////////////////////////////////////////////////// uint kPx2 = neighborX[kPx]; if( geo[ kPx2 ] != GEO_FLUID ) maxOrderX = 2; uint kPy2 = neighborY[kPy]; if( geo[ kPy2 ] != GEO_FLUID ) maxOrderY = 2; @@ -154,103 +154,103 @@ __host__ __device__ void enstrophyFunction(real* veloX, real* veloY, real* veloZ uint kMy4 = neighborZ[neighborX[kMy3WSB]]; if( geo[ kMy4 ] != GEO_FLUID && maxOrderY > 6 ) maxOrderY = 6; uint kMz4 = neighborY[neighborX[kMz3WSB]]; if( geo[ kMz4 ] != GEO_FLUID && maxOrderZ > 6 ) maxOrderZ = 6; ////////////////////////////////////////////////////////////////////////// - //getVeloX// - //real veloXNeighborPx = veloX[kPx]; - //real veloXNeighborMx = veloX[kMx]; - real veloXNeighborPy = veloX[kPy]; - real veloXNeighborMy = veloX[kMy]; - real veloXNeighborPz = veloX[kPz]; - real veloXNeighborMz = veloX[kMz]; - //getVeloY// - real veloYNeighborPx = veloY[kPx]; - real veloYNeighborMx = veloY[kMx]; - //real veloYNeighborPy = veloY[kPy]; - //real veloYNeighborMy = veloY[kMy]; - real veloYNeighborPz = veloY[kPz]; - real veloYNeighborMz = veloY[kMz]; - //getVeloZ// - real veloZNeighborPx = veloZ[kPx]; - real veloZNeighborMx = veloZ[kMx]; - real veloZNeighborPy = veloZ[kPy]; - real veloZNeighborMy = veloZ[kMy]; - //real veloZNeighborPz = veloZ[kPz]; - //real veloZNeighborMz = veloZ[kMz]; - ////////////////////////////////////////////////////////////////////////////// - //getVeloX// - //real veloXNeighborPx2 = veloX[kPx2]; - //real veloXNeighborMx2 = veloX[kMx2]; - real veloXNeighborPy2 = veloX[kPy2]; - real veloXNeighborMy2 = veloX[kMy2]; - real veloXNeighborPz2 = veloX[kPz2]; - real veloXNeighborMz2 = veloX[kMz2]; - //getVeloY// - real veloYNeighborPx2 = veloY[kPx2]; - real veloYNeighborMx2 = veloY[kMx2]; - //real veloYNeighborPy2 = veloY[kPy2]; - //real veloYNeighborMy2 = veloY[kMy2]; - real veloYNeighborPz2 = veloY[kPz2]; - real veloYNeighborMz2 = veloY[kMz2]; - //getVeloZ// - real veloZNeighborPx2 = veloZ[kPx2]; - real veloZNeighborMx2 = veloZ[kMx2]; - real veloZNeighborPy2 = veloZ[kPy2]; - real veloZNeighborMy2 = veloZ[kMy2]; - //real veloZNeighborPz2 = veloZ[kPz2]; - //real veloZNeighborMz2 = veloZ[kMz2]; - ////////////////////////////////////////////////////////////////////////////// - //getVeloX// - //real veloXNeighborPx3 = veloX[kPx3]; - //real veloXNeighborMx3 = veloX[kMx3]; - real veloXNeighborPy3 = veloX[kPy3]; - real veloXNeighborMy3 = veloX[kMy3]; - real veloXNeighborPz3 = veloX[kPz3]; - real veloXNeighborMz3 = veloX[kMz3]; - //getVeloY// - real veloYNeighborPx3 = veloY[kPx3]; - real veloYNeighborMx3 = veloY[kMx3]; - //real veloYNeighborPy3 = veloY[kPy3]; - //real veloYNeighborMy3 = veloY[kMy3]; - real veloYNeighborPz3 = veloY[kPz3]; - real veloYNeighborMz3 = veloY[kMz3]; - //getVeloZ// - real veloZNeighborPx3 = veloZ[kPx3]; - real veloZNeighborMx3 = veloZ[kMx3]; - real veloZNeighborPy3 = veloZ[kPy3]; - real veloZNeighborMy3 = veloZ[kMy3]; - //real veloZNeighborPz3 = veloZ[kPz3]; - //real veloZNeighborMz3 = veloZ[kMz3]; - ////////////////////////////////////////////////////////////////////////////// - //getVeloX// - //real veloXNeighborPx4 = veloX[kPx4]; - //real veloXNeighborMx4 = veloX[kMx4]; - real veloXNeighborPy4 = veloX[kPy4]; - real veloXNeighborMy4 = veloX[kMy4]; - real veloXNeighborPz4 = veloX[kPz4]; - real veloXNeighborMz4 = veloX[kMz4]; - //getVeloY// - real veloYNeighborPx4 = veloY[kPx4]; - real veloYNeighborMx4 = veloY[kMx4]; - //real veloYNeighborPy4 = veloY[kPy4]; - //real veloYNeighborMy4 = veloY[kMy4]; - real veloYNeighborPz4 = veloY[kPz4]; - real veloYNeighborMz4 = veloY[kMz4]; - //getVeloZ// - real veloZNeighborPx4 = veloZ[kPx4]; - real veloZNeighborMx4 = veloZ[kMx4]; - real veloZNeighborPy4 = veloZ[kPy4]; - real veloZNeighborMy4 = veloZ[kMy4]; - //real veloZNeighborPz4 = veloZ[kPz4]; - //real veloZNeighborMz4 = veloZ[kMz4]; - ////////////////////////////////////////////////////////////////////////////// - //real dxvx = c0o1; - real dyvx = c0o1; - real dzvx = c0o1; - real dxvy = c0o1; - //real dyvy = c0o1; - real dzvy = c0o1; - real dxvz = c0o1; - real dyvz = c0o1; - //real dzvz = c0o1; + //getVeloX// + //real veloXNeighborPx = veloX[kPx]; + //real veloXNeighborMx = veloX[kMx]; + real veloXNeighborPy = veloX[kPy]; + real veloXNeighborMy = veloX[kMy]; + real veloXNeighborPz = veloX[kPz]; + real veloXNeighborMz = veloX[kMz]; + //getVeloY// + real veloYNeighborPx = veloY[kPx]; + real veloYNeighborMx = veloY[kMx]; + //real veloYNeighborPy = veloY[kPy]; + //real veloYNeighborMy = veloY[kMy]; + real veloYNeighborPz = veloY[kPz]; + real veloYNeighborMz = veloY[kMz]; + //getVeloZ// + real veloZNeighborPx = veloZ[kPx]; + real veloZNeighborMx = veloZ[kMx]; + real veloZNeighborPy = veloZ[kPy]; + real veloZNeighborMy = veloZ[kMy]; + //real veloZNeighborPz = veloZ[kPz]; + //real veloZNeighborMz = veloZ[kMz]; + ////////////////////////////////////////////////////////////////////////////// + //getVeloX// + //real veloXNeighborPx2 = veloX[kPx2]; + //real veloXNeighborMx2 = veloX[kMx2]; + real veloXNeighborPy2 = veloX[kPy2]; + real veloXNeighborMy2 = veloX[kMy2]; + real veloXNeighborPz2 = veloX[kPz2]; + real veloXNeighborMz2 = veloX[kMz2]; + //getVeloY// + real veloYNeighborPx2 = veloY[kPx2]; + real veloYNeighborMx2 = veloY[kMx2]; + //real veloYNeighborPy2 = veloY[kPy2]; + //real veloYNeighborMy2 = veloY[kMy2]; + real veloYNeighborPz2 = veloY[kPz2]; + real veloYNeighborMz2 = veloY[kMz2]; + //getVeloZ// + real veloZNeighborPx2 = veloZ[kPx2]; + real veloZNeighborMx2 = veloZ[kMx2]; + real veloZNeighborPy2 = veloZ[kPy2]; + real veloZNeighborMy2 = veloZ[kMy2]; + //real veloZNeighborPz2 = veloZ[kPz2]; + //real veloZNeighborMz2 = veloZ[kMz2]; + ////////////////////////////////////////////////////////////////////////////// + //getVeloX// + //real veloXNeighborPx3 = veloX[kPx3]; + //real veloXNeighborMx3 = veloX[kMx3]; + real veloXNeighborPy3 = veloX[kPy3]; + real veloXNeighborMy3 = veloX[kMy3]; + real veloXNeighborPz3 = veloX[kPz3]; + real veloXNeighborMz3 = veloX[kMz3]; + //getVeloY// + real veloYNeighborPx3 = veloY[kPx3]; + real veloYNeighborMx3 = veloY[kMx3]; + //real veloYNeighborPy3 = veloY[kPy3]; + //real veloYNeighborMy3 = veloY[kMy3]; + real veloYNeighborPz3 = veloY[kPz3]; + real veloYNeighborMz3 = veloY[kMz3]; + //getVeloZ// + real veloZNeighborPx3 = veloZ[kPx3]; + real veloZNeighborMx3 = veloZ[kMx3]; + real veloZNeighborPy3 = veloZ[kPy3]; + real veloZNeighborMy3 = veloZ[kMy3]; + //real veloZNeighborPz3 = veloZ[kPz3]; + //real veloZNeighborMz3 = veloZ[kMz3]; + ////////////////////////////////////////////////////////////////////////////// + //getVeloX// + //real veloXNeighborPx4 = veloX[kPx4]; + //real veloXNeighborMx4 = veloX[kMx4]; + real veloXNeighborPy4 = veloX[kPy4]; + real veloXNeighborMy4 = veloX[kMy4]; + real veloXNeighborPz4 = veloX[kPz4]; + real veloXNeighborMz4 = veloX[kMz4]; + //getVeloY// + real veloYNeighborPx4 = veloY[kPx4]; + real veloYNeighborMx4 = veloY[kMx4]; + //real veloYNeighborPy4 = veloY[kPy4]; + //real veloYNeighborMy4 = veloY[kMy4]; + real veloYNeighborPz4 = veloY[kPz4]; + real veloYNeighborMz4 = veloY[kMz4]; + //getVeloZ// + real veloZNeighborPx4 = veloZ[kPx4]; + real veloZNeighborMx4 = veloZ[kMx4]; + real veloZNeighborPy4 = veloZ[kPy4]; + real veloZNeighborMy4 = veloZ[kMy4]; + //real veloZNeighborPz4 = veloZ[kPz4]; + //real veloZNeighborMz4 = veloZ[kMz4]; + ////////////////////////////////////////////////////////////////////////////// + //real dxvx = c0o1; + real dyvx = c0o1; + real dzvx = c0o1; + real dxvy = c0o1; + //real dyvy = c0o1; + real dzvy = c0o1; + real dxvz = c0o1; + real dyvz = c0o1; + //real dzvz = c0o1; ////////////////////////////////////////////////////////////////////////// //maxOrderX = 2; @@ -305,9 +305,9 @@ __host__ __device__ void enstrophyFunction(real* veloX, real* veloY, real* veloZ ////////////////////////////////////////////////////////////////////////// - real tmpX = dyvz - dzvy; - real tmpY = dzvx - dxvz; - real tmpZ = dxvy - dyvx; + real tmpX = dyvz - dzvy; + real tmpY = dzvx - dxvz; + real tmpZ = dxvy - dyvx; ////////////////////////////////////////////////////////////////////////// isFluid[ index ] = 1; @@ -319,13 +319,13 @@ __host__ __device__ void enstrophyFunction(real* veloX, real* veloY, real* veloZ EnstrophyAnalyzer::EnstrophyAnalyzer(SPtr<Parameter> para, uint analyzeIter) { - this->para = para; - this->analyzeIter = analyzeIter; + this->para = para; + this->analyzeIter = analyzeIter; } void EnstrophyAnalyzer::writeToFile( std::string filename ) { - std::cout << "EnstrophyAnalyzer::writeToFile( " << filename << " )" << "\n"; + std::cout << "EnstrophyAnalyzer::writeToFile( " << filename << " )" << "\n"; std::ofstream file; @@ -336,7 +336,7 @@ void EnstrophyAnalyzer::writeToFile( std::string filename ) file.close(); - std::cout << "done!\n"; + std::cout << "done!\n"; } diff --git a/src/gpu/core/GPU/EnstrophyAnalyzer.h b/src/gpu/core/GPU/EnstrophyAnalyzer.h index dd633a5375a75dc66ff19d933fc9af81bf0b1a5a..0fd5235e45ea350b646e1f29d058464c04e00d6c 100644 --- a/src/gpu/core/GPU/EnstrophyAnalyzer.h +++ b/src/gpu/core/GPU/EnstrophyAnalyzer.h @@ -16,7 +16,7 @@ class EnstrophyAnalyzer { private: - SPtr<Parameter> para; + SPtr<Parameter> para; uint analyzeIter; @@ -28,7 +28,7 @@ public: bool run( uint iter ); - void writeToFile( std::string filename ); + void writeToFile( std::string filename ); }; diff --git a/src/gpu/core/GPU/ExchangeData27.cu b/src/gpu/core/GPU/ExchangeData27.cu index e0d13773b8c38d276cec5ffdd6f6dc0fb19465eb..6d66578e6379e1ebf5e872404a558902886beacc 100644 --- a/src/gpu/core/GPU/ExchangeData27.cu +++ b/src/gpu/core/GPU/ExchangeData27.cu @@ -8,8 +8,8 @@ using namespace vf::lbm::dir; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// __global__ void getSendFsPost27(real* DD, - real* bufferFs, - int* sendIndex, + real* bufferFs, + int* sendIndex, int buffmax, unsigned int* neighborX, unsigned int* neighborY, @@ -61,7 +61,7 @@ __global__ void getSendFsPost27(real* DD, unsigned int ktne = kIndex; unsigned int kbsw = neighborZ[ksw]; //////////////////////////////////////////////////////////////////////////////// - //set Pointer for Fs + //set Pointer for Fs Distributions27 D; if (isEvenTimestep==true) { @@ -124,7 +124,7 @@ __global__ void getSendFsPost27(real* DD, D.f[dMPM] = &DD[dPMP * numberOfLBnodes]; } ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //set Pointer for Buffer Fs + //set Pointer for Buffer Fs Distributions27 Dbuff; Dbuff.f[dP00] = &bufferFs[dP00 * buffmax]; Dbuff.f[dM00] = &bufferFs[dM00 * buffmax]; @@ -154,7 +154,7 @@ __global__ void getSendFsPost27(real* DD, Dbuff.f[dPMM] = &bufferFs[dPMM * buffmax]; Dbuff.f[dMPM] = &bufferFs[dMPM * buffmax]; ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //copy to buffer + //copy to buffer //(Dbuff.f[dP00])[k] = (D.f[dP00])[ke ]; //(Dbuff.f[dM00])[k] = (D.f[dM00])[kw ]; //(Dbuff.f[d0P0])[k] = (D.f[d0P0])[kn ]; @@ -244,8 +244,8 @@ __global__ void getSendFsPost27(real* DD, //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// __global__ void setRecvFsPost27(real* DD, - real* bufferFs, - int* recvIndex, + real* bufferFs, + int* recvIndex, int buffmax, unsigned int* neighborX, unsigned int* neighborY, @@ -297,7 +297,7 @@ __global__ void setRecvFsPost27(real* DD, unsigned int ktne = kIndex; unsigned int kbsw = neighborZ[ksw]; //////////////////////////////////////////////////////////////////////////////// - //set Pointer for Fs + //set Pointer for Fs Distributions27 D; if (isEvenTimestep==true) { @@ -360,7 +360,7 @@ __global__ void setRecvFsPost27(real* DD, D.f[dMPM] = &DD[dPMP * numberOfLBnodes]; } ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //set Pointer for Buffer Fs + //set Pointer for Buffer Fs Distributions27 Dbuff; Dbuff.f[dP00] = &bufferFs[dP00 * buffmax]; Dbuff.f[dM00] = &bufferFs[dM00 * buffmax]; @@ -390,7 +390,7 @@ __global__ void setRecvFsPost27(real* DD, Dbuff.f[dPMM] = &bufferFs[dPMM * buffmax]; Dbuff.f[dMPM] = &bufferFs[dMPM * buffmax]; ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //copy from buffer + //copy from buffer //(D.f[dP00])[ke ] = (Dbuff.f[dP00])[k]; //(D.f[dM00])[kw ] = (Dbuff.f[dM00])[k]; //(D.f[d0P0])[kn ] = (Dbuff.f[d0P0])[k]; @@ -479,8 +479,8 @@ __global__ void setRecvFsPost27(real* DD, //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// __global__ void getSendFsPre27(real* DD, - real* bufferFs, - int* sendIndex, + real* bufferFs, + int* sendIndex, int buffmax, unsigned int* neighborX, unsigned int* neighborY, @@ -532,7 +532,7 @@ __global__ void getSendFsPre27(real* DD, unsigned int ktne = kIndex; unsigned int kbsw = neighborZ[ksw]; //////////////////////////////////////////////////////////////////////////////// - //set Pointer for Fs + //set Pointer for Fs Distributions27 D; if (isEvenTimestep==true) { @@ -595,7 +595,7 @@ __global__ void getSendFsPre27(real* DD, D.f[dMPM] = &DD[dPMP * numberOfLBnodes]; } ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //set Pointer for Buffer Fs + //set Pointer for Buffer Fs Distributions27 Dbuff; Dbuff.f[dP00] = &bufferFs[dP00 * buffmax]; Dbuff.f[dM00] = &bufferFs[dM00 * buffmax]; @@ -625,7 +625,7 @@ __global__ void getSendFsPre27(real* DD, Dbuff.f[dPMM] = &bufferFs[dPMM * buffmax]; Dbuff.f[dMPM] = &bufferFs[dMPM * buffmax]; ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //copy to buffer + //copy to buffer (Dbuff.f[dP00])[k] = (D.f[dP00])[ke ]; (Dbuff.f[dM00])[k] = (D.f[dM00])[kw ]; (Dbuff.f[d0P0])[k] = (D.f[d0P0])[kn ]; @@ -688,8 +688,8 @@ __global__ void getSendFsPre27(real* DD, //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// __global__ void setRecvFsPre27(real* DD, - real* bufferFs, - int* recvIndex, + real* bufferFs, + int* recvIndex, int buffmax, unsigned int* neighborX, unsigned int* neighborY, @@ -741,7 +741,7 @@ __global__ void setRecvFsPre27(real* DD, unsigned int ktne = kIndex; unsigned int kbsw = neighborZ[ksw]; //////////////////////////////////////////////////////////////////////////////// - //set Pointer for Fs + //set Pointer for Fs Distributions27 D; if (isEvenTimestep==true) { @@ -804,7 +804,7 @@ __global__ void setRecvFsPre27(real* DD, D.f[dMPM] = &DD[dPMP * numberOfLBnodes]; } ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //set Pointer for Buffer Fs + //set Pointer for Buffer Fs Distributions27 Dbuff; Dbuff.f[dP00] = &bufferFs[dP00 * buffmax]; Dbuff.f[dM00] = &bufferFs[dM00 * buffmax]; @@ -834,7 +834,7 @@ __global__ void setRecvFsPre27(real* DD, Dbuff.f[dPMM] = &bufferFs[dPMM * buffmax]; Dbuff.f[dMPM] = &bufferFs[dMPM * buffmax]; ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //copy from buffer + //copy from buffer (D.f[dP00])[ke ] = (Dbuff.f[dP00])[k]; (D.f[dM00])[kw ] = (Dbuff.f[dM00])[k]; (D.f[d0P0])[kn ] = (Dbuff.f[d0P0])[k]; @@ -896,75 +896,75 @@ __global__ void setRecvFsPre27(real* DD, //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// __global__ void getSendGsF3( - real* G6, - real* bufferGs, - int* sendIndex, - int buffmax, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned long long numberOfLBnodes, - bool isEvenTimestep) + real* G6, + real* bufferGs, + int* sendIndex, + int buffmax, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned long long numberOfLBnodes, + bool isEvenTimestep) { - //////////////////////////////////////////////////////////////////////////////// - const unsigned x = threadIdx.x; // Globaler x-Index - const unsigned y = blockIdx.x; // Globaler y-Index - const unsigned z = blockIdx.y; // Globaler z-Index - - const unsigned nx = blockDim.x; - const unsigned ny = gridDim.x; - - const unsigned k = nx*(ny*z + y) + x; - ////////////////////////////////////////////////////////////////////////// - - if (k < buffmax) - { - //////////////////////////////////////////////////////////////////////////////// - //set index - unsigned int kIndex = sendIndex[k]; - unsigned int kr = kIndex; - unsigned int kw = neighborX[kIndex]; - unsigned int ks = neighborY[kIndex]; - unsigned int kb = neighborZ[kIndex]; - //////////////////////////////////////////////////////////////////////////////// - //set Pointer for Gs - Distributions6 G; - if (isEvenTimestep) - { - G.g[dP00] = &G6[dP00 * numberOfLBnodes]; - G.g[dM00] = &G6[dM00 * numberOfLBnodes]; - G.g[d0P0] = &G6[d0P0 * numberOfLBnodes]; - G.g[d0M0] = &G6[d0M0 * numberOfLBnodes]; - G.g[d00P] = &G6[d00P * numberOfLBnodes]; - G.g[d00M] = &G6[d00M * numberOfLBnodes]; - } - else - { - G.g[dM00] = &G6[dP00 * numberOfLBnodes]; - G.g[dP00] = &G6[dM00 * numberOfLBnodes]; - G.g[d0M0] = &G6[d0P0 * numberOfLBnodes]; - G.g[d0P0] = &G6[d0M0 * numberOfLBnodes]; - G.g[d00M] = &G6[d00P * numberOfLBnodes]; - G.g[d00P] = &G6[d00M * numberOfLBnodes]; - } - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //set Pointer for Buffer Gs - Distributions6 Dbuff; - Dbuff.g[dP00] = &bufferGs[dP00 * buffmax]; - Dbuff.g[dM00] = &bufferGs[dM00 * buffmax]; - Dbuff.g[d0P0] = &bufferGs[d0P0 * buffmax]; - Dbuff.g[d0M0] = &bufferGs[d0M0 * buffmax]; - Dbuff.g[d00P] = &bufferGs[d00P * buffmax]; - Dbuff.g[d00M] = &bufferGs[d00M * buffmax]; - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //write Gs to buffer - (Dbuff.g[dP00])[k] = (G.g[dM00])[kw]; - (Dbuff.g[dM00])[k] = (G.g[dP00])[kr]; - (Dbuff.g[d0P0])[k] = (G.g[d0M0])[ks]; - (Dbuff.g[d0M0])[k] = (G.g[d0P0])[kr]; - (Dbuff.g[d00P])[k] = (G.g[d00M])[kb]; - (Dbuff.g[d00M])[k] = (G.g[d00P])[kr]; - } + //////////////////////////////////////////////////////////////////////////////// + const unsigned x = threadIdx.x; // Globaler x-Index + const unsigned y = blockIdx.x; // Globaler y-Index + const unsigned z = blockIdx.y; // Globaler z-Index + + const unsigned nx = blockDim.x; + const unsigned ny = gridDim.x; + + const unsigned k = nx*(ny*z + y) + x; + ////////////////////////////////////////////////////////////////////////// + + if (k < buffmax) + { + //////////////////////////////////////////////////////////////////////////////// + //set index + unsigned int kIndex = sendIndex[k]; + unsigned int kr = kIndex; + unsigned int kw = neighborX[kIndex]; + unsigned int ks = neighborY[kIndex]; + unsigned int kb = neighborZ[kIndex]; + //////////////////////////////////////////////////////////////////////////////// + //set Pointer for Gs + Distributions6 G; + if (isEvenTimestep) + { + G.g[dP00] = &G6[dP00 * numberOfLBnodes]; + G.g[dM00] = &G6[dM00 * numberOfLBnodes]; + G.g[d0P0] = &G6[d0P0 * numberOfLBnodes]; + G.g[d0M0] = &G6[d0M0 * numberOfLBnodes]; + G.g[d00P] = &G6[d00P * numberOfLBnodes]; + G.g[d00M] = &G6[d00M * numberOfLBnodes]; + } + else + { + G.g[dM00] = &G6[dP00 * numberOfLBnodes]; + G.g[dP00] = &G6[dM00 * numberOfLBnodes]; + G.g[d0M0] = &G6[d0P0 * numberOfLBnodes]; + G.g[d0P0] = &G6[d0M0 * numberOfLBnodes]; + G.g[d00M] = &G6[d00P * numberOfLBnodes]; + G.g[d00P] = &G6[d00M * numberOfLBnodes]; + } + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //set Pointer for Buffer Gs + Distributions6 Dbuff; + Dbuff.g[dP00] = &bufferGs[dP00 * buffmax]; + Dbuff.g[dM00] = &bufferGs[dM00 * buffmax]; + Dbuff.g[d0P0] = &bufferGs[d0P0 * buffmax]; + Dbuff.g[d0M0] = &bufferGs[d0M0 * buffmax]; + Dbuff.g[d00P] = &bufferGs[d00P * buffmax]; + Dbuff.g[d00M] = &bufferGs[d00M * buffmax]; + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //write Gs to buffer + (Dbuff.g[dP00])[k] = (G.g[dM00])[kw]; + (Dbuff.g[dM00])[k] = (G.g[dP00])[kr]; + (Dbuff.g[d0P0])[k] = (G.g[d0M0])[ks]; + (Dbuff.g[d0M0])[k] = (G.g[d0P0])[kr]; + (Dbuff.g[d00P])[k] = (G.g[d00M])[kb]; + (Dbuff.g[d00M])[k] = (G.g[d00P])[kr]; + } } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -999,74 +999,74 @@ __global__ void getSendGsF3( //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// __global__ void setRecvGsF3( - real* G6, - real* bufferGs, - int* recvIndex, - int buffmax, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned long long numberOfLBnodes, - bool isEvenTimestep) + real* G6, + real* bufferGs, + int* recvIndex, + int buffmax, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned long long numberOfLBnodes, + bool isEvenTimestep) { - //////////////////////////////////////////////////////////////////////////////// - const unsigned x = threadIdx.x; // Globaler x-Index - const unsigned y = blockIdx.x; // Globaler y-Index - const unsigned z = blockIdx.y; // Globaler z-Index - - const unsigned nx = blockDim.x; - const unsigned ny = gridDim.x; - - const unsigned k = nx*(ny*z + y) + x; - ////////////////////////////////////////////////////////////////////////// - - if (k < buffmax) - { - //////////////////////////////////////////////////////////////////////////////// - //set index - unsigned int kIndex = recvIndex[k]; - unsigned int kr = kIndex; - unsigned int kw = neighborX[kIndex]; - unsigned int ks = neighborY[kIndex]; - unsigned int kb = neighborZ[kIndex]; - //////////////////////////////////////////////////////////////////////////////// - //set Pointer for Gs - Distributions6 G; - if (isEvenTimestep) - { - G.g[dP00] = &G6[dP00 * numberOfLBnodes]; - G.g[dM00] = &G6[dM00 * numberOfLBnodes]; - G.g[d0P0] = &G6[d0P0 * numberOfLBnodes]; - G.g[d0M0] = &G6[d0M0 * numberOfLBnodes]; - G.g[d00P] = &G6[d00P * numberOfLBnodes]; - G.g[d00M] = &G6[d00M * numberOfLBnodes]; - } - else - { - G.g[dM00] = &G6[dP00 * numberOfLBnodes]; - G.g[dP00] = &G6[dM00 * numberOfLBnodes]; - G.g[d0M0] = &G6[d0P0 * numberOfLBnodes]; - G.g[d0P0] = &G6[d0M0 * numberOfLBnodes]; - G.g[d00M] = &G6[d00P * numberOfLBnodes]; - G.g[d00P] = &G6[d00M * numberOfLBnodes]; - } - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //set Pointer for Buffer Gs - Distributions6 Dbuff; - Dbuff.g[dP00] = &bufferGs[dP00 * buffmax]; - Dbuff.g[dM00] = &bufferGs[dM00 * buffmax]; - Dbuff.g[d0P0] = &bufferGs[d0P0 * buffmax]; - Dbuff.g[d0M0] = &bufferGs[d0M0 * buffmax]; - Dbuff.g[d00P] = &bufferGs[d00P * buffmax]; - Dbuff.g[d00M] = &bufferGs[d00M * buffmax]; - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //write buffer to Gs - (G.g[dM00])[kw] = (Dbuff.g[dP00])[k]; - (G.g[dP00])[kr] = (Dbuff.g[dM00])[k]; - (G.g[d0M0])[ks] = (Dbuff.g[d0P0])[k]; - (G.g[d0P0])[kr] = (Dbuff.g[d0M0])[k]; - (G.g[d00M])[kb] = (Dbuff.g[d00P])[k]; - (G.g[d00P])[kr] = (Dbuff.g[d00M])[k]; - } + //////////////////////////////////////////////////////////////////////////////// + const unsigned x = threadIdx.x; // Globaler x-Index + const unsigned y = blockIdx.x; // Globaler y-Index + const unsigned z = blockIdx.y; // Globaler z-Index + + const unsigned nx = blockDim.x; + const unsigned ny = gridDim.x; + + const unsigned k = nx*(ny*z + y) + x; + ////////////////////////////////////////////////////////////////////////// + + if (k < buffmax) + { + //////////////////////////////////////////////////////////////////////////////// + //set index + unsigned int kIndex = recvIndex[k]; + unsigned int kr = kIndex; + unsigned int kw = neighborX[kIndex]; + unsigned int ks = neighborY[kIndex]; + unsigned int kb = neighborZ[kIndex]; + //////////////////////////////////////////////////////////////////////////////// + //set Pointer for Gs + Distributions6 G; + if (isEvenTimestep) + { + G.g[dP00] = &G6[dP00 * numberOfLBnodes]; + G.g[dM00] = &G6[dM00 * numberOfLBnodes]; + G.g[d0P0] = &G6[d0P0 * numberOfLBnodes]; + G.g[d0M0] = &G6[d0M0 * numberOfLBnodes]; + G.g[d00P] = &G6[d00P * numberOfLBnodes]; + G.g[d00M] = &G6[d00M * numberOfLBnodes]; + } + else + { + G.g[dM00] = &G6[dP00 * numberOfLBnodes]; + G.g[dP00] = &G6[dM00 * numberOfLBnodes]; + G.g[d0M0] = &G6[d0P0 * numberOfLBnodes]; + G.g[d0P0] = &G6[d0M0 * numberOfLBnodes]; + G.g[d00M] = &G6[d00P * numberOfLBnodes]; + G.g[d00P] = &G6[d00M * numberOfLBnodes]; + } + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //set Pointer for Buffer Gs + Distributions6 Dbuff; + Dbuff.g[dP00] = &bufferGs[dP00 * buffmax]; + Dbuff.g[dM00] = &bufferGs[dM00 * buffmax]; + Dbuff.g[d0P0] = &bufferGs[d0P0 * buffmax]; + Dbuff.g[d0M0] = &bufferGs[d0M0 * buffmax]; + Dbuff.g[d00P] = &bufferGs[d00P * buffmax]; + Dbuff.g[d00M] = &bufferGs[d00M * buffmax]; + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //write buffer to Gs + (G.g[dM00])[kw] = (Dbuff.g[dP00])[k]; + (G.g[dP00])[kr] = (Dbuff.g[dM00])[k]; + (G.g[d0M0])[ks] = (Dbuff.g[d0P0])[k]; + (G.g[d0P0])[kr] = (Dbuff.g[d0M0])[k]; + (G.g[d00M])[kb] = (Dbuff.g[d00P])[k]; + (G.g[d00P])[kr] = (Dbuff.g[d00M])[k]; + } } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/gpu/core/GPU/GPU_Interface.h b/src/gpu/core/GPU/GPU_Interface.h index ad2461f08292eaf33c45b770d23f8e0c0fcdc315..72e839bcf741b9966a4e38a7b78c1085b20132e2 100644 --- a/src/gpu/core/GPU/GPU_Interface.h +++ b/src/gpu/core/GPU/GPU_Interface.h @@ -27,53 +27,6 @@ struct LBMSimulationParameter; class Parameter; -////////////////////////////////////////////////////////////////////////// -//Kernel -////////////////////////////////////////////////////////////////////////// -void Init27(int myid, - int numprocs, - real u0, - unsigned int* geoD, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - real* vParab, - unsigned long long numberOfLBnodes, - unsigned int grid_nx, - unsigned int grid_ny, - unsigned int grid_nz, - real* DD, - int level, - int maxlevel); - -void InitNonEqPartSP27(unsigned int numberOfThreads, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned int* neighborWSB, - unsigned int* geoD, - real* rho, - real* ux, - real* uy, - real* uz, - unsigned long long numberOfLBnodes, - real* DD, - real omega, - bool EvenOrOdd); - - -void InitADDev27( unsigned int numberOfThreads, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned int* geoD, - real* Conc, - real* ux, - real* uy, - real* uz, - unsigned long long numberOfLBnodes, - real* DD27, - bool EvenOrOdd); void CalcMac27( real* vxD, real* vyD, @@ -105,18 +58,18 @@ void CalcMacSP27(real* vxD, bool isEvenTimestep); void CalcMacCompSP27(real* vxD, - real* vyD, - real* vzD, - real* rhoD, - real* pressD, - unsigned int* geoD, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned long long numberOfLBnodes, - unsigned int numberOfThreads, - real* DD, - bool isEvenTimestep); + real* vyD, + real* vzD, + real* rhoD, + real* pressD, + unsigned int* geoD, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned long long numberOfLBnodes, + unsigned int numberOfThreads, + real* DD, + bool isEvenTimestep); void CalcMacThS7( real* Conc, unsigned int* geoD, @@ -129,31 +82,31 @@ void CalcMacThS7( real* Conc, bool isEvenTimestep); void PlaneConcThS7(real* Conc, - int* kPC, - unsigned int numberOfPointskPC, - unsigned int* geoD, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned long long numberOfLBnodes, - unsigned int numberOfThreads, - real* DD7, - bool isEvenTimestep); + int* kPC, + unsigned int numberOfPointskPC, + unsigned int* geoD, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned long long numberOfLBnodes, + unsigned int numberOfThreads, + real* DD7, + bool isEvenTimestep); void PlaneConcThS27(real* Conc, - int* kPC, - unsigned int numberOfPointskPC, - unsigned int* geoD, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned long long numberOfLBnodes, - unsigned int numberOfThreads, - real* DD27, - bool isEvenTimestep); + int* kPC, + unsigned int numberOfPointskPC, + unsigned int* geoD, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned long long numberOfLBnodes, + unsigned int numberOfThreads, + real* DD27, + bool isEvenTimestep); void CalcConcentration27( unsigned int numberOfThreads, - real* Conc, + real* Conc, unsigned int* geoD, unsigned int* neighborX, unsigned int* neighborY, @@ -177,35 +130,35 @@ void CalcMedSP27( real* vxD, bool isEvenTimestep); void CalcMedCompSP27(real* vxD, - real* vyD, - real* vzD, - real* rhoD, - real* pressD, - unsigned int* geoD, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned long long numberOfLBnodes, - unsigned int numberOfThreads, - real* DD, - bool isEvenTimestep); + real* vyD, + real* vzD, + real* rhoD, + real* pressD, + unsigned int* geoD, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned long long numberOfLBnodes, + unsigned int numberOfThreads, + real* DD, + bool isEvenTimestep); void CalcMedCompAD27( - real* vxD, - real* vyD, - real* vzD, - real* rhoD, - real* pressD, - real* concD, - unsigned int* geoD, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned long long numberOfLBnodes, - unsigned int numberOfThreads, - real* DD, - real* DD_AD, - bool isEvenTimestep); + real* vxD, + real* vyD, + real* vzD, + real* rhoD, + real* pressD, + real* concD, + unsigned int* geoD, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned long long numberOfLBnodes, + unsigned int numberOfThreads, + real* DD, + real* DD_AD, + bool isEvenTimestep); void CalcMacMedSP27( real* vxD, real* vyD, @@ -222,123 +175,123 @@ void CalcMacMedSP27( real* vxD, bool isEvenTimestep); void ResetMedianValuesSP27( - real* vxD, - real* vyD, - real* vzD, - real* rhoD, - real* pressD, - unsigned long long numberOfLBnodes, - unsigned int numberOfThreads, - bool isEvenTimestep); + real* vxD, + real* vyD, + real* vzD, + real* rhoD, + real* pressD, + unsigned long long numberOfLBnodes, + unsigned int numberOfThreads, + bool isEvenTimestep); void ResetMedianValuesAD27( - real* vxD, - real* vyD, - real* vzD, - real* rhoD, - real* pressD, - real* concD, - unsigned long long numberOfLBnodes, - unsigned int numberOfThreads, - bool isEvenTimestep); + real* vxD, + real* vyD, + real* vzD, + real* rhoD, + real* pressD, + real* concD, + unsigned long long numberOfLBnodes, + unsigned int numberOfThreads, + bool isEvenTimestep); void Calc2ndMomentsIncompSP27(real* kxyFromfcNEQ, - real* kyzFromfcNEQ, - real* kxzFromfcNEQ, - real* kxxMyyFromfcNEQ, - real* kxxMzzFromfcNEQ, - unsigned int* geoD, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned long long numberOfLBnodes, - unsigned int numberOfThreads, - real* DD, - bool isEvenTimestep); + real* kyzFromfcNEQ, + real* kxzFromfcNEQ, + real* kxxMyyFromfcNEQ, + real* kxxMzzFromfcNEQ, + unsigned int* geoD, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned long long numberOfLBnodes, + unsigned int numberOfThreads, + real* DD, + bool isEvenTimestep); void Calc2ndMomentsCompSP27(real* kxyFromfcNEQ, - real* kyzFromfcNEQ, - real* kxzFromfcNEQ, - real* kxxMyyFromfcNEQ, - real* kxxMzzFromfcNEQ, - unsigned int* geoD, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned long long numberOfLBnodes, - unsigned int numberOfThreads, - real* DD, - bool isEvenTimestep); + real* kyzFromfcNEQ, + real* kxzFromfcNEQ, + real* kxxMyyFromfcNEQ, + real* kxxMzzFromfcNEQ, + unsigned int* geoD, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned long long numberOfLBnodes, + unsigned int numberOfThreads, + real* DD, + bool isEvenTimestep); void Calc3rdMomentsIncompSP27(real* CUMbbb, - real* CUMabc, - real* CUMbac, - real* CUMbca, - real* CUMcba, - real* CUMacb, - real* CUMcab, - unsigned int* geoD, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned long long numberOfLBnodes, - unsigned int numberOfThreads, - real* DD, - bool isEvenTimestep); + real* CUMabc, + real* CUMbac, + real* CUMbca, + real* CUMcba, + real* CUMacb, + real* CUMcab, + unsigned int* geoD, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned long long numberOfLBnodes, + unsigned int numberOfThreads, + real* DD, + bool isEvenTimestep); void Calc3rdMomentsCompSP27(real* CUMbbb, - real* CUMabc, - real* CUMbac, - real* CUMbca, - real* CUMcba, - real* CUMacb, - real* CUMcab, - unsigned int* geoD, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned long long numberOfLBnodes, - unsigned int numberOfThreads, - real* DD, - bool isEvenTimestep); + real* CUMabc, + real* CUMbac, + real* CUMbca, + real* CUMcba, + real* CUMacb, + real* CUMcab, + unsigned int* geoD, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned long long numberOfLBnodes, + unsigned int numberOfThreads, + real* DD, + bool isEvenTimestep); void CalcHigherMomentsIncompSP27(real* CUMcbb, - real* CUMbcb, - real* CUMbbc, - real* CUMcca, - real* CUMcac, - real* CUMacc, - real* CUMbcc, - real* CUMcbc, - real* CUMccb, - real* CUMccc, - unsigned int* geoD, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned long long numberOfLBnodes, - unsigned int numberOfThreads, - real* DD, - bool isEvenTimestep); + real* CUMbcb, + real* CUMbbc, + real* CUMcca, + real* CUMcac, + real* CUMacc, + real* CUMbcc, + real* CUMcbc, + real* CUMccb, + real* CUMccc, + unsigned int* geoD, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned long long numberOfLBnodes, + unsigned int numberOfThreads, + real* DD, + bool isEvenTimestep); void CalcHigherMomentsCompSP27(real* CUMcbb, - real* CUMbcb, - real* CUMbbc, - real* CUMcca, - real* CUMcac, - real* CUMacc, - real* CUMbcc, - real* CUMcbc, - real* CUMccb, - real* CUMccc, - unsigned int* geoD, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned long long numberOfLBnodes, - unsigned int numberOfThreads, - real* DD, - bool isEvenTimestep); + real* CUMbcb, + real* CUMbbc, + real* CUMcca, + real* CUMcac, + real* CUMacc, + real* CUMbcc, + real* CUMcbc, + real* CUMccb, + real* CUMccc, + unsigned int* geoD, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned long long numberOfLBnodes, + unsigned int numberOfThreads, + real* DD, + bool isEvenTimestep); void LBCalcMeasurePoints27(real* vxMP, real* vyMP, @@ -391,165 +344,165 @@ void QDev27(LBMSimulationParameter* parameterDevice, QforBoundaryConditions* bou void QDevComp27(LBMSimulationParameter* parameterDevice, QforBoundaryConditions* boundaryCondition); void QDevCompThinWalls27(unsigned int numberOfThreads, - real* DD, - int* k_Q, - real* QQ, - unsigned int numberOfBCnodes, - real om1, - unsigned int* geom, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned int* neighborWSB, - unsigned long long numberOfLBnodes, - bool isEvenTimestep); + real* DD, + int* k_Q, + real* QQ, + unsigned int numberOfBCnodes, + real om1, + unsigned int* geom, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned int* neighborWSB, + unsigned long long numberOfLBnodes, + bool isEvenTimestep); void QDev3rdMomentsComp27(LBMSimulationParameter* parameterDevice, QforBoundaryConditions* boundaryCondition); void QDevIncompHighNu27( unsigned int numberOfThreads, - real* DD, - int* k_Q, - real* QQ, - unsigned int numberOfBCnodes, - real om1, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned long long numberOfLBnodes, - bool isEvenTimestep); + real* DD, + int* k_Q, + real* QQ, + unsigned int numberOfBCnodes, + real om1, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned long long numberOfLBnodes, + bool isEvenTimestep); void QDevCompHighNu27(unsigned int numberOfThreads, - real* DD, - int* k_Q, - real* QQ, - unsigned int numberOfBCnodes, - real om1, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned long long numberOfLBnodes, - bool isEvenTimestep); + real* DD, + int* k_Q, + real* QQ, + unsigned int numberOfBCnodes, + real om1, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned long long numberOfLBnodes, + bool isEvenTimestep); void QVelDevicePlainBB27(LBMSimulationParameter* parameterDevice, QforBoundaryConditions* boundaryCondition); - + void QVelDeviceCouette27(unsigned int numberOfThreads, - real* vx, - real* vy, - real* vz, - real* DD, - int* k_Q, - real* QQ, - unsigned int numberOfBCnodes, - real om1, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned long long numberOfLBnodes, - bool isEvenTimestep); + real* vx, + real* vy, + real* vz, + real* DD, + int* k_Q, + real* QQ, + unsigned int numberOfBCnodes, + real om1, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned long long numberOfLBnodes, + bool isEvenTimestep); void QVelDevice1h27( unsigned int numberOfThreads, - int nx, - int ny, - real* vx, - real* vy, - real* vz, - real* DD, - int* k_Q, - real* QQ, - unsigned int numberOfBCnodes, - real om1, - real Phi, - real angularVelocity, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - real* coordX, - real* coordY, - real* coordZ, - unsigned long long numberOfLBnodes, - bool isEvenTimestep); + int nx, + int ny, + real* vx, + real* vy, + real* vz, + real* DD, + int* k_Q, + real* QQ, + unsigned int numberOfBCnodes, + real om1, + real Phi, + real angularVelocity, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + real* coordX, + real* coordY, + real* coordZ, + unsigned long long numberOfLBnodes, + bool isEvenTimestep); void QVelDev27(LBMSimulationParameter* parameterDevice, QforBoundaryConditions* boundaryCondition); void QVelDevCompPlusSlip27(unsigned int numberOfThreads, - real* vx, - real* vy, - real* vz, - real* DD, - int* k_Q, - real* QQ, - unsigned int numberOfBCnodes, - real om1, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned long long numberOfLBnodes, - bool isEvenTimestep); + real* vx, + real* vy, + real* vz, + real* DD, + int* k_Q, + real* QQ, + unsigned int numberOfBCnodes, + real om1, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned long long numberOfLBnodes, + bool isEvenTimestep); void QVelDevComp27(LBMSimulationParameter* parameterDevice, QforBoundaryConditions* boundaryCondition); void QVelDevCompThinWalls27(unsigned int numberOfThreads, - real* vx, - real* vy, - real* vz, - real* DD, - int* k_Q, - real* QQ, - unsigned int numberOfBCnodes, - real om1, - unsigned int* geom, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned int* neighborWSB, - unsigned long long numberOfLBnodes, - bool isEvenTimestep); + real* vx, + real* vy, + real* vz, + real* DD, + int* k_Q, + real* QQ, + unsigned int numberOfBCnodes, + real om1, + unsigned int* geom, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned int* neighborWSB, + unsigned long long numberOfLBnodes, + bool isEvenTimestep); void QVelDevCompZeroPress27(LBMSimulationParameter* parameterDevice, QforBoundaryConditions* boundaryCondition); void QVelDevIncompHighNu27( unsigned int numberOfThreads, - real* vx, - real* vy, - real* vz, - real* DD, - int* k_Q, - real* QQ, - unsigned int numberOfBCnodes, - real om1, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned long long numberOfLBnodes, - bool isEvenTimestep); + real* vx, + real* vy, + real* vz, + real* DD, + int* k_Q, + real* QQ, + unsigned int numberOfBCnodes, + real om1, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned long long numberOfLBnodes, + bool isEvenTimestep); void QVelDevCompHighNu27(unsigned int numberOfThreads, - real* vx, - real* vy, - real* vz, - real* DD, - int* k_Q, - real* QQ, - unsigned int numberOfBCnodes, - real om1, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned long long numberOfLBnodes, - bool isEvenTimestep); + real* vx, + real* vy, + real* vz, + real* DD, + int* k_Q, + real* QQ, + unsigned int numberOfBCnodes, + real om1, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned long long numberOfLBnodes, + bool isEvenTimestep); void QVeloDevEQ27(unsigned int numberOfThreads, - real* VeloX, - real* VeloY, - real* VeloZ, - real* DD, - int* k_Q, - int numberOfBCnodes, - real om1, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned long long numberOfLBnodes, - bool isEvenTimestep); + real* VeloX, + real* VeloY, + real* VeloZ, + real* DD, + int* k_Q, + int numberOfBCnodes, + real om1, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned long long numberOfLBnodes, + bool isEvenTimestep); void QSlipDev27(LBMSimulationParameter* parameterDevice, QforBoundaryConditions* boundaryCondition); @@ -562,34 +515,34 @@ void QSlipDevCompTurbulentViscosity27(LBMSimulationParameter* parameterDevice, Q void QSlipPressureDevCompTurbulentViscosity27(LBMSimulationParameter* parameterDevice, QforBoundaryConditions* boundaryCondition); void QSlipGeomDevComp27( unsigned int numberOfThreads, - real* DD, - int* k_Q, - real* QQ, - unsigned int numberOfBCnodes, - real om1, - real* NormalX, - real* NormalY, - real* NormalZ, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned long long numberOfLBnodes, - bool isEvenTimestep); + real* DD, + int* k_Q, + real* QQ, + unsigned int numberOfBCnodes, + real om1, + real* NormalX, + real* NormalY, + real* NormalZ, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned long long numberOfLBnodes, + bool isEvenTimestep); void QSlipNormDevComp27(unsigned int numberOfThreads, - real* DD, - int* k_Q, - real* QQ, - unsigned int numberOfBCnodes, - real om1, - real* NormalX, - real* NormalY, - real* NormalZ, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned long long numberOfLBnodes, - bool isEvenTimestep); + real* DD, + int* k_Q, + real* QQ, + unsigned int numberOfBCnodes, + real om1, + real* NormalX, + real* NormalY, + real* NormalZ, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned long long numberOfLBnodes, + bool isEvenTimestep); void QStressDevComp27(Parameter *para, QforBoundaryConditions* boundaryCondition, const int level); @@ -659,48 +612,48 @@ void QPressDevZero27(unsigned int numberOfThreads, bool isEvenTimestep); void QPressDevFake27( unsigned int numberOfThreads, - real* rhoBC, - real* DD, - int* k_Q, - int* k_N, - unsigned int numberOfBCnodes, - real om1, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned long long numberOfLBnodes, - bool isEvenTimestep); + real* rhoBC, + real* DD, + int* k_Q, + int* k_N, + unsigned int numberOfBCnodes, + real om1, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned long long numberOfLBnodes, + bool isEvenTimestep); void BBDev27(LBMSimulationParameter* parameterDevice, QforBoundaryConditions* boundaryCondition); void QPressDev27_IntBB( unsigned int numberOfThreads, - real* rho, - real* DD, - int* k_Q, - real* QQ, - unsigned int numberOfBCnodes, - real om1, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned long long numberOfLBnodes, - bool isEvenTimestep); + real* rho, + real* DD, + int* k_Q, + real* QQ, + unsigned int numberOfBCnodes, + real om1, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned long long numberOfLBnodes, + bool isEvenTimestep); void QPressDevAntiBB27( unsigned int numberOfThreads, - real* rhoBC, - real* vx, - real* vy, - real* vz, - real* DD, - int* k_Q, - real* QQ, - int numberOfBCnodes, - real om1, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned long long numberOfLBnodes, - bool isEvenTimestep); + real* rhoBC, + real* vx, + real* vy, + real* vz, + real* DD, + int* k_Q, + real* QQ, + int numberOfBCnodes, + real om1, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned long long numberOfLBnodes, + bool isEvenTimestep); void PressSchlaffer27(unsigned int numberOfThreads, real* rhoBC, @@ -760,51 +713,51 @@ void QADDev7(unsigned int numberOfThreads, ////////////////////////////////////////////////////////////////////////// //! \brief defines the behavior of a slip-AD boundary condition void ADSlipVelDevComp( - uint numberOfThreads, - real * normalX, - real * normalY, - real * normalZ, - real * distributions, - real * distributionsAD, - int* QindexArray, - real * Qarrays, - uint numberOfBCnodes, - real omegaDiffusivity, - uint * neighborX, - uint * neighborY, - uint * neighborZ, - unsigned long long numberOfLBnodes, - bool isEvenTimestep); - + uint numberOfThreads, + real * normalX, + real * normalY, + real * normalZ, + real * distributions, + real * distributionsAD, + int* QindexArray, + real * Qarrays, + uint numberOfBCnodes, + real omegaDiffusivity, + uint * neighborX, + uint * neighborY, + uint * neighborZ, + unsigned long long numberOfLBnodes, + bool isEvenTimestep); + void QADDirichletDev27( unsigned int numberOfThreads, - real* DD, - real* DD27, - real* temp, - real diffusivity, - int* k_Q, - real* QQ, - unsigned int numberOfBCnodes, - real om1, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned long long numberOfLBnodes, - bool isEvenTimestep); + real* DD, + real* DD27, + real* temp, + real diffusivity, + int* k_Q, + real* QQ, + unsigned int numberOfBCnodes, + real om1, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned long long numberOfLBnodes, + bool isEvenTimestep); void QADBBDev27( unsigned int numberOfThreads, - real* DD, - real* DD27, - real* temp, - real diffusivity, - int* k_Q, - real* QQ, - unsigned int numberOfBCnodes, - real om1, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned long long numberOfLBnodes, - bool isEvenTimestep); + real* DD, + real* DD27, + real* temp, + real diffusivity, + int* k_Q, + real* QQ, + unsigned int numberOfBCnodes, + real om1, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned long long numberOfLBnodes, + bool isEvenTimestep); void QADVelDev7(unsigned int numberOfThreads, real* DD, @@ -872,128 +825,128 @@ void QADPressDev27(unsigned int numberOfThreads, bool isEvenTimestep); void QADPressNEQNeighborDev27( - unsigned int numberOfThreads, - real* DD, - real* DD27, - int* k_Q, - int* k_N, - int numberOfBCnodes, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned long long numberOfLBnodes, - bool isEvenTimestep - ); + unsigned int numberOfThreads, + real* DD, + real* DD27, + int* k_Q, + int* k_N, + int numberOfBCnodes, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned long long numberOfLBnodes, + bool isEvenTimestep + ); void QNoSlipADincompDev7(unsigned int numberOfThreads, - real* DD, - real* DD7, - real* temp, - real diffusivity, - int* k_Q, - real* QQ, - unsigned int numberOfBCnodes, - real om1, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned long long numberOfLBnodes, - bool isEvenTimestep); + real* DD, + real* DD7, + real* temp, + real diffusivity, + int* k_Q, + real* QQ, + unsigned int numberOfBCnodes, + real om1, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned long long numberOfLBnodes, + bool isEvenTimestep); void QNoSlipADincompDev27(unsigned int numberOfThreads, - real* DD, - real* DD27, - real* temp, - real diffusivity, - int* k_Q, - real* QQ, - unsigned int numberOfBCnodes, - real om1, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned long long numberOfLBnodes, - bool isEvenTimestep); + real* DD, + real* DD27, + real* temp, + real diffusivity, + int* k_Q, + real* QQ, + unsigned int numberOfBCnodes, + real om1, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned long long numberOfLBnodes, + bool isEvenTimestep); void QADVeloIncompDev7( unsigned int numberOfThreads, - real* DD, - real* DD7, - real* temp, - real* velo, - real diffusivity, - int* k_Q, - real* QQ, - unsigned int numberOfBCnodes, - real om1, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned long long numberOfLBnodes, - bool isEvenTimestep); + real* DD, + real* DD7, + real* temp, + real* velo, + real diffusivity, + int* k_Q, + real* QQ, + unsigned int numberOfBCnodes, + real om1, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned long long numberOfLBnodes, + bool isEvenTimestep); void QADVeloIncompDev27( unsigned int numberOfThreads, - real* DD, - real* DD27, - real* temp, - real* velo, - real diffusivity, - int* k_Q, - real* QQ, - unsigned int numberOfBCnodes, - real om1, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned long long numberOfLBnodes, - bool isEvenTimestep); + real* DD, + real* DD27, + real* temp, + real* velo, + real diffusivity, + int* k_Q, + real* QQ, + unsigned int numberOfBCnodes, + real om1, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned long long numberOfLBnodes, + bool isEvenTimestep); void QADPressIncompDev7( unsigned int numberOfThreads, - real* DD, - real* DD7, - real* temp, - real* velo, - real diffusivity, - int* k_Q, - real* QQ, - unsigned int numberOfBCnodes, - real om1, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned long long numberOfLBnodes, - bool isEvenTimestep); + real* DD, + real* DD7, + real* temp, + real* velo, + real diffusivity, + int* k_Q, + real* QQ, + unsigned int numberOfBCnodes, + real om1, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned long long numberOfLBnodes, + bool isEvenTimestep); void QADPressIncompDev27( unsigned int numberOfThreads, - real* DD, - real* DD27, - real* temp, - real* velo, - real diffusivity, - int* k_Q, - real* QQ, - unsigned int numberOfBCnodes, - real om1, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned long long numberOfLBnodes, - bool isEvenTimestep); + real* DD, + real* DD27, + real* temp, + real* velo, + real diffusivity, + int* k_Q, + real* QQ, + unsigned int numberOfBCnodes, + real om1, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned long long numberOfLBnodes, + bool isEvenTimestep); void PropVelo( unsigned int numberOfThreads, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - real* rho, - real* ux, - real* uy, - real* uz, - int* k_Q, - unsigned int size_Prop, - unsigned long long numberOfLBnodes, - unsigned int* bcMatD, - real* DD, - bool EvenOrOdd); + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + real* rho, + real* ux, + real* uy, + real* uz, + int* k_Q, + unsigned int size_Prop, + unsigned long long numberOfLBnodes, + unsigned int* bcMatD, + real* DD, + bool EvenOrOdd); void ScaleCF27( real* DC, real* DF, @@ -1210,206 +1163,206 @@ void ScaleCF_Fix_27(real* DC, ICellNeigh neighborCoarseToFine); void ScaleCF_Fix_comp_27( real* DC, - real* DF, - unsigned int* neighborCX, - unsigned int* neighborCY, - unsigned int* neighborCZ, - unsigned int* neighborFX, - unsigned int* neighborFY, - unsigned int* neighborFZ, - unsigned long long numberOfLBnodesC, - unsigned long long numberOfLBnodesF, - bool isEvenTimestep, - unsigned int* posCSWB, - unsigned int* posFSWB, - unsigned int kCF, - real omCoarse, - real omFine, - real nu, - unsigned int nxC, - unsigned int nyC, - unsigned int nxF, - unsigned int nyF, - unsigned int numberOfThreads, - ICellNeigh neighborCoarseToFine); + real* DF, + unsigned int* neighborCX, + unsigned int* neighborCY, + unsigned int* neighborCZ, + unsigned int* neighborFX, + unsigned int* neighborFY, + unsigned int* neighborFZ, + unsigned long long numberOfLBnodesC, + unsigned long long numberOfLBnodesF, + bool isEvenTimestep, + unsigned int* posCSWB, + unsigned int* posFSWB, + unsigned int kCF, + real omCoarse, + real omFine, + real nu, + unsigned int nxC, + unsigned int nyC, + unsigned int nxF, + unsigned int nyF, + unsigned int numberOfThreads, + ICellNeigh neighborCoarseToFine); void ScaleCF_0817_comp_27( real* DC, - real* DF, - unsigned int* neighborCX, - unsigned int* neighborCY, - unsigned int* neighborCZ, - unsigned int* neighborFX, - unsigned int* neighborFY, - unsigned int* neighborFZ, - unsigned long long numberOfLBnodesC, - unsigned long long numberOfLBnodesF, - bool isEvenTimestep, - unsigned int* posCSWB, - unsigned int* posFSWB, - unsigned int kCF, - real omCoarse, - real omFine, - real nu, - unsigned int nxC, - unsigned int nyC, - unsigned int nxF, - unsigned int nyF, - unsigned int numberOfThreads, - ICellNeigh neighborCoarseToFine, - CUstream_st* stream); - -void ScaleCF_comp_D3Q27F3_2018( real* DC, - real* DF, - real* G6, - unsigned int* neighborCX, - unsigned int* neighborCY, - unsigned int* neighborCZ, - unsigned int* neighborFX, - unsigned int* neighborFY, - unsigned int* neighborFZ, - unsigned long long numberOfLBnodesC, - unsigned long long numberOfLBnodesF, - bool isEvenTimestep, - unsigned int* posCSWB, - unsigned int* posFSWB, - unsigned int kCF, - real omCoarse, - real omFine, - real nu, - unsigned int nxC, - unsigned int nyC, - unsigned int nxF, - unsigned int nyF, - unsigned int numberOfThreads, - ICellNeigh neighborCoarseToFine); + real* DF, + unsigned int* neighborCX, + unsigned int* neighborCY, + unsigned int* neighborCZ, + unsigned int* neighborFX, + unsigned int* neighborFY, + unsigned int* neighborFZ, + unsigned long long numberOfLBnodesC, + unsigned long long numberOfLBnodesF, + bool isEvenTimestep, + unsigned int* posCSWB, + unsigned int* posFSWB, + unsigned int kCF, + real omCoarse, + real omFine, + real nu, + unsigned int nxC, + unsigned int nyC, + unsigned int nxF, + unsigned int nyF, + unsigned int numberOfThreads, + ICellNeigh neighborCoarseToFine, + CUstream_st* stream); + +void ScaleCF_comp_D3Q27F3_2018( real* DC, + real* DF, + real* G6, + unsigned int* neighborCX, + unsigned int* neighborCY, + unsigned int* neighborCZ, + unsigned int* neighborFX, + unsigned int* neighborFY, + unsigned int* neighborFZ, + unsigned long long numberOfLBnodesC, + unsigned long long numberOfLBnodesF, + bool isEvenTimestep, + unsigned int* posCSWB, + unsigned int* posFSWB, + unsigned int kCF, + real omCoarse, + real omFine, + real nu, + unsigned int nxC, + unsigned int nyC, + unsigned int nxF, + unsigned int nyF, + unsigned int numberOfThreads, + ICellNeigh neighborCoarseToFine); void ScaleCF_comp_D3Q27F3(real* DC, - real* DF, - real* G6, - unsigned int* neighborCX, - unsigned int* neighborCY, - unsigned int* neighborCZ, - unsigned int* neighborFX, - unsigned int* neighborFY, - unsigned int* neighborFZ, - unsigned long long numberOfLBnodesC, - unsigned long long numberOfLBnodesF, - bool isEvenTimestep, - unsigned int* posCSWB, - unsigned int* posFSWB, - unsigned int kCF, - real omCoarse, - real omFine, - real nu, - unsigned int nxC, - unsigned int nyC, - unsigned int nxF, - unsigned int nyF, - unsigned int numberOfThreads, - ICellNeigh neighborCoarseToFine, - CUstream_st *stream); + real* DF, + real* G6, + unsigned int* neighborCX, + unsigned int* neighborCY, + unsigned int* neighborCZ, + unsigned int* neighborFX, + unsigned int* neighborFY, + unsigned int* neighborFZ, + unsigned long long numberOfLBnodesC, + unsigned long long numberOfLBnodesF, + bool isEvenTimestep, + unsigned int* posCSWB, + unsigned int* posFSWB, + unsigned int kCF, + real omCoarse, + real omFine, + real nu, + unsigned int nxC, + unsigned int nyC, + unsigned int nxF, + unsigned int nyF, + unsigned int numberOfThreads, + ICellNeigh neighborCoarseToFine, + CUstream_st *stream); void ScaleCF_staggered_time_comp_27( real* DC, - real* DF, - unsigned int* neighborCX, - unsigned int* neighborCY, - unsigned int* neighborCZ, - unsigned int* neighborFX, - unsigned int* neighborFY, - unsigned int* neighborFZ, - unsigned long long numberOfLBnodesC, - unsigned long long numberOfLBnodesF, - bool isEvenTimestep, - unsigned int* posCSWB, - unsigned int* posFSWB, - unsigned int kCF, - real omCoarse, - real omFine, - real nu, - unsigned int nxC, - unsigned int nyC, - unsigned int nxF, - unsigned int nyF, - unsigned int numberOfThreads, - ICellNeigh neighborCoarseToFine); + real* DF, + unsigned int* neighborCX, + unsigned int* neighborCY, + unsigned int* neighborCZ, + unsigned int* neighborFX, + unsigned int* neighborFY, + unsigned int* neighborFZ, + unsigned long long numberOfLBnodesC, + unsigned long long numberOfLBnodesF, + bool isEvenTimestep, + unsigned int* posCSWB, + unsigned int* posFSWB, + unsigned int kCF, + real omCoarse, + real omFine, + real nu, + unsigned int nxC, + unsigned int nyC, + unsigned int nxF, + unsigned int nyF, + unsigned int numberOfThreads, + ICellNeigh neighborCoarseToFine); void ScaleCF_RhoSq_comp_27(LBMSimulationParameter * parameterDeviceC, LBMSimulationParameter* parameterDeviceF, ICells * interpolationCellsCoarseToFine, ICellNeigh &neighborCoarseToFine, CUstream_st *stream); template<bool hasTurbulentViscosity> void ScaleCF_compressible(LBMSimulationParameter * parameterDeviceC, LBMSimulationParameter* parameterDeviceF, ICells * interpolationCellsCoarseToFine, ICellNeigh &neighborCoarseToFine, CUstream_st *stream); void ScaleCF_RhoSq_3rdMom_comp_27( real* DC, - real* DF, - unsigned int* neighborCX, - unsigned int* neighborCY, - unsigned int* neighborCZ, - unsigned int* neighborFX, - unsigned int* neighborFY, - unsigned int* neighborFZ, - unsigned long long numberOfLBnodesC, - unsigned long long numberOfLBnodesF, - bool isEvenTimestep, - unsigned int* posCSWB, - unsigned int* posFSWB, - unsigned int kCF, - real omCoarse, - real omFine, - real nu, - unsigned int nxC, - unsigned int nyC, - unsigned int nxF, - unsigned int nyF, - unsigned int numberOfThreads, - ICellNeigh neighborCoarseToFine, - CUstream_st *stream); + real* DF, + unsigned int* neighborCX, + unsigned int* neighborCY, + unsigned int* neighborCZ, + unsigned int* neighborFX, + unsigned int* neighborFY, + unsigned int* neighborFZ, + unsigned long long numberOfLBnodesC, + unsigned long long numberOfLBnodesF, + bool isEvenTimestep, + unsigned int* posCSWB, + unsigned int* posFSWB, + unsigned int kCF, + real omCoarse, + real omFine, + real nu, + unsigned int nxC, + unsigned int nyC, + unsigned int nxF, + unsigned int nyF, + unsigned int numberOfThreads, + ICellNeigh neighborCoarseToFine, + CUstream_st *stream); void ScaleCF_AA2016_comp_27( real* DC, - real* DF, - unsigned int* neighborCX, - unsigned int* neighborCY, - unsigned int* neighborCZ, - unsigned int* neighborFX, - unsigned int* neighborFY, - unsigned int* neighborFZ, - unsigned long long numberOfLBnodesC, - unsigned long long numberOfLBnodesF, - bool isEvenTimestep, - unsigned int* posCSWB, - unsigned int* posFSWB, - unsigned int kCF, - real omCoarse, - real omFine, - real nu, - unsigned int nxC, - unsigned int nyC, - unsigned int nxF, - unsigned int nyF, - unsigned int numberOfThreads, - ICellNeigh neighborCoarseToFine, - CUstream_st *stream); + real* DF, + unsigned int* neighborCX, + unsigned int* neighborCY, + unsigned int* neighborCZ, + unsigned int* neighborFX, + unsigned int* neighborFY, + unsigned int* neighborFZ, + unsigned long long numberOfLBnodesC, + unsigned long long numberOfLBnodesF, + bool isEvenTimestep, + unsigned int* posCSWB, + unsigned int* posFSWB, + unsigned int kCF, + real omCoarse, + real omFine, + real nu, + unsigned int nxC, + unsigned int nyC, + unsigned int nxF, + unsigned int nyF, + unsigned int numberOfThreads, + ICellNeigh neighborCoarseToFine, + CUstream_st *stream); void ScaleCF_NSPress_27(real* DC, - real* DF, - unsigned int* neighborCX, - unsigned int* neighborCY, - unsigned int* neighborCZ, - unsigned int* neighborFX, - unsigned int* neighborFY, - unsigned int* neighborFZ, - unsigned long long numberOfLBnodesC, - unsigned long long numberOfLBnodesF, - bool isEvenTimestep, - unsigned int* posCSWB, - unsigned int* posFSWB, - unsigned int kCF, - real omCoarse, - real omFine, - real nu, - unsigned int nxC, - unsigned int nyC, - unsigned int nxF, - unsigned int nyF, - unsigned int numberOfThreads, - ICellNeigh neighborCoarseToFine); + real* DF, + unsigned int* neighborCX, + unsigned int* neighborCY, + unsigned int* neighborCZ, + unsigned int* neighborFX, + unsigned int* neighborFY, + unsigned int* neighborFZ, + unsigned long long numberOfLBnodesC, + unsigned long long numberOfLBnodesF, + bool isEvenTimestep, + unsigned int* posCSWB, + unsigned int* posFSWB, + unsigned int kCF, + real omCoarse, + real omFine, + real nu, + unsigned int nxC, + unsigned int nyC, + unsigned int nxF, + unsigned int nyF, + unsigned int numberOfThreads, + ICellNeigh neighborCoarseToFine); void ScaleFC_Fix_27( real* DC, real* DF, @@ -1436,206 +1389,206 @@ void ScaleFC_Fix_27( real* DC, ICellNeigh neighborFineToCoarse); void ScaleFC_Fix_comp_27( real* DC, - real* DF, - unsigned int* neighborCX, - unsigned int* neighborCY, - unsigned int* neighborCZ, - unsigned int* neighborFX, - unsigned int* neighborFY, - unsigned int* neighborFZ, - unsigned long long numberOfLBnodesC, - unsigned long long numberOfLBnodesF, - bool isEvenTimestep, - unsigned int* posC, - unsigned int* posFSWB, - unsigned int kFC, - real omCoarse, - real omFine, - real nu, - unsigned int nxC, - unsigned int nyC, - unsigned int nxF, - unsigned int nyF, - unsigned int numberOfThreads, - ICellNeigh neighborFineToCoarse); + real* DF, + unsigned int* neighborCX, + unsigned int* neighborCY, + unsigned int* neighborCZ, + unsigned int* neighborFX, + unsigned int* neighborFY, + unsigned int* neighborFZ, + unsigned long long numberOfLBnodesC, + unsigned long long numberOfLBnodesF, + bool isEvenTimestep, + unsigned int* posC, + unsigned int* posFSWB, + unsigned int kFC, + real omCoarse, + real omFine, + real nu, + unsigned int nxC, + unsigned int nyC, + unsigned int nxF, + unsigned int nyF, + unsigned int numberOfThreads, + ICellNeigh neighborFineToCoarse); void ScaleFC_0817_comp_27( real* DC, - real* DF, - unsigned int* neighborCX, - unsigned int* neighborCY, - unsigned int* neighborCZ, - unsigned int* neighborFX, - unsigned int* neighborFY, - unsigned int* neighborFZ, - unsigned long long numberOfLBnodesC, - unsigned long long numberOfLBnodesF, - bool isEvenTimestep, - unsigned int* posC, - unsigned int* posFSWB, - unsigned int kFC, - real omCoarse, - real omFine, - real nu, - unsigned int nxC, - unsigned int nyC, - unsigned int nxF, - unsigned int nyF, - unsigned int numberOfThreads, - ICellNeigh neighborFineToCoarse, - CUstream_st *stream); + real* DF, + unsigned int* neighborCX, + unsigned int* neighborCY, + unsigned int* neighborCZ, + unsigned int* neighborFX, + unsigned int* neighborFY, + unsigned int* neighborFZ, + unsigned long long numberOfLBnodesC, + unsigned long long numberOfLBnodesF, + bool isEvenTimestep, + unsigned int* posC, + unsigned int* posFSWB, + unsigned int kFC, + real omCoarse, + real omFine, + real nu, + unsigned int nxC, + unsigned int nyC, + unsigned int nxF, + unsigned int nyF, + unsigned int numberOfThreads, + ICellNeigh neighborFineToCoarse, + CUstream_st *stream); void ScaleFC_comp_D3Q27F3_2018(real* DC, - real* DF, - real* G6, - unsigned int* neighborCX, - unsigned int* neighborCY, - unsigned int* neighborCZ, - unsigned int* neighborFX, - unsigned int* neighborFY, - unsigned int* neighborFZ, - unsigned long long numberOfLBnodesC, - unsigned long long numberOfLBnodesF, - bool isEvenTimestep, - unsigned int* posC, - unsigned int* posFSWB, - unsigned int kFC, - real omCoarse, - real omFine, - real nu, - unsigned int nxC, - unsigned int nyC, - unsigned int nxF, - unsigned int nyF, - unsigned int numberOfThreads, - ICellNeigh neighborFineToCoarse); + real* DF, + real* G6, + unsigned int* neighborCX, + unsigned int* neighborCY, + unsigned int* neighborCZ, + unsigned int* neighborFX, + unsigned int* neighborFY, + unsigned int* neighborFZ, + unsigned long long numberOfLBnodesC, + unsigned long long numberOfLBnodesF, + bool isEvenTimestep, + unsigned int* posC, + unsigned int* posFSWB, + unsigned int kFC, + real omCoarse, + real omFine, + real nu, + unsigned int nxC, + unsigned int nyC, + unsigned int nxF, + unsigned int nyF, + unsigned int numberOfThreads, + ICellNeigh neighborFineToCoarse); void ScaleFC_comp_D3Q27F3( real* DC, - real* DF, - real* G6, - unsigned int* neighborCX, - unsigned int* neighborCY, - unsigned int* neighborCZ, - unsigned int* neighborFX, - unsigned int* neighborFY, - unsigned int* neighborFZ, - unsigned long long numberOfLBnodesC, - unsigned long long numberOfLBnodesF, - bool isEvenTimestep, - unsigned int* posC, - unsigned int* posFSWB, - unsigned int kFC, - real omCoarse, - real omFine, - real nu, - unsigned int nxC, - unsigned int nyC, - unsigned int nxF, - unsigned int nyF, - unsigned int numberOfThreads, - ICellNeigh neighborFineToCoarse, - CUstream_st *stream); + real* DF, + real* G6, + unsigned int* neighborCX, + unsigned int* neighborCY, + unsigned int* neighborCZ, + unsigned int* neighborFX, + unsigned int* neighborFY, + unsigned int* neighborFZ, + unsigned long long numberOfLBnodesC, + unsigned long long numberOfLBnodesF, + bool isEvenTimestep, + unsigned int* posC, + unsigned int* posFSWB, + unsigned int kFC, + real omCoarse, + real omFine, + real nu, + unsigned int nxC, + unsigned int nyC, + unsigned int nxF, + unsigned int nyF, + unsigned int numberOfThreads, + ICellNeigh neighborFineToCoarse, + CUstream_st *stream); void ScaleFC_staggered_time_comp_27( real* DC, - real* DF, - unsigned int* neighborCX, - unsigned int* neighborCY, - unsigned int* neighborCZ, - unsigned int* neighborFX, - unsigned int* neighborFY, - unsigned int* neighborFZ, - unsigned long long numberOfLBnodesC, - unsigned long long numberOfLBnodesF, - bool isEvenTimestep, - unsigned int* posC, - unsigned int* posFSWB, - unsigned int kFC, - real omCoarse, - real omFine, - real nu, - unsigned int nxC, - unsigned int nyC, - unsigned int nxF, - unsigned int nyF, - unsigned int numberOfThreads, - ICellNeigh neighborFineToCoarse); + real* DF, + unsigned int* neighborCX, + unsigned int* neighborCY, + unsigned int* neighborCZ, + unsigned int* neighborFX, + unsigned int* neighborFY, + unsigned int* neighborFZ, + unsigned long long numberOfLBnodesC, + unsigned long long numberOfLBnodesF, + bool isEvenTimestep, + unsigned int* posC, + unsigned int* posFSWB, + unsigned int kFC, + real omCoarse, + real omFine, + real nu, + unsigned int nxC, + unsigned int nyC, + unsigned int nxF, + unsigned int nyF, + unsigned int numberOfThreads, + ICellNeigh neighborFineToCoarse); void ScaleFC_RhoSq_comp_27(LBMSimulationParameter * parameterDeviceC, LBMSimulationParameter* parameterDeviceF, ICells * interpolationCellsFineToCoarse, ICellNeigh& neighborFineToCoarse, CUstream_st *stream); template<bool hasTurbulentViscosity> void ScaleFC_compressible(LBMSimulationParameter * parameterDeviceC, LBMSimulationParameter* parameterDeviceF, ICells * icellFC, ICellNeigh& neighborFineToCoarse, CUstream_st *stream); void ScaleFC_RhoSq_3rdMom_comp_27( real* DC, - real* DF, - unsigned int* neighborCX, - unsigned int* neighborCY, - unsigned int* neighborCZ, - unsigned int* neighborFX, - unsigned int* neighborFY, - unsigned int* neighborFZ, - unsigned long long numberOfLBnodesC, - unsigned long long numberOfLBnodesF, - bool isEvenTimestep, - unsigned int* posC, - unsigned int* posFSWB, - unsigned int kFC, - real omCoarse, - real omFine, - real nu, - unsigned int nxC, - unsigned int nyC, - unsigned int nxF, - unsigned int nyF, - unsigned int numberOfThreads, - ICellNeigh neighborFineToCoarse, - CUstream_st *stream); + real* DF, + unsigned int* neighborCX, + unsigned int* neighborCY, + unsigned int* neighborCZ, + unsigned int* neighborFX, + unsigned int* neighborFY, + unsigned int* neighborFZ, + unsigned long long numberOfLBnodesC, + unsigned long long numberOfLBnodesF, + bool isEvenTimestep, + unsigned int* posC, + unsigned int* posFSWB, + unsigned int kFC, + real omCoarse, + real omFine, + real nu, + unsigned int nxC, + unsigned int nyC, + unsigned int nxF, + unsigned int nyF, + unsigned int numberOfThreads, + ICellNeigh neighborFineToCoarse, + CUstream_st *stream); void ScaleFC_AA2016_comp_27( real* DC, - real* DF, - unsigned int* neighborCX, - unsigned int* neighborCY, - unsigned int* neighborCZ, - unsigned int* neighborFX, - unsigned int* neighborFY, - unsigned int* neighborFZ, - unsigned long long numberOfLBnodesC, - unsigned long long numberOfLBnodesF, - bool isEvenTimestep, - unsigned int* posC, - unsigned int* posFSWB, - unsigned int kFC, - real omCoarse, - real omFine, - real nu, - unsigned int nxC, - unsigned int nyC, - unsigned int nxF, - unsigned int nyF, - unsigned int numberOfThreads, - ICellNeigh neighborFineToCoarse, - CUstream_st *stream); + real* DF, + unsigned int* neighborCX, + unsigned int* neighborCY, + unsigned int* neighborCZ, + unsigned int* neighborFX, + unsigned int* neighborFY, + unsigned int* neighborFZ, + unsigned long long numberOfLBnodesC, + unsigned long long numberOfLBnodesF, + bool isEvenTimestep, + unsigned int* posC, + unsigned int* posFSWB, + unsigned int kFC, + real omCoarse, + real omFine, + real nu, + unsigned int nxC, + unsigned int nyC, + unsigned int nxF, + unsigned int nyF, + unsigned int numberOfThreads, + ICellNeigh neighborFineToCoarse, + CUstream_st *stream); void ScaleFC_NSPress_27( real* DC, - real* DF, - unsigned int* neighborCX, - unsigned int* neighborCY, - unsigned int* neighborCZ, - unsigned int* neighborFX, - unsigned int* neighborFY, - unsigned int* neighborFZ, - unsigned long long numberOfLBnodesC, - unsigned long long numberOfLBnodesF, - bool isEvenTimestep, - unsigned int* posC, - unsigned int* posFSWB, - unsigned int kFC, - real omCoarse, - real omFine, - real nu, - unsigned int nxC, - unsigned int nyC, - unsigned int nxF, - unsigned int nyF, - unsigned int numberOfThreads, - ICellNeigh neighborFineToCoarse); + real* DF, + unsigned int* neighborCX, + unsigned int* neighborCY, + unsigned int* neighborCZ, + unsigned int* neighborFX, + unsigned int* neighborFY, + unsigned int* neighborFZ, + unsigned long long numberOfLBnodesC, + unsigned long long numberOfLBnodesF, + bool isEvenTimestep, + unsigned int* posC, + unsigned int* posFSWB, + unsigned int kFC, + real omCoarse, + real omFine, + real nu, + unsigned int nxC, + unsigned int nyC, + unsigned int nxF, + unsigned int nyF, + unsigned int numberOfThreads, + ICellNeigh neighborFineToCoarse); void ScaleCFThS7( real* DC, real* DF, @@ -1737,8 +1690,8 @@ void ScaleCFThS27( real* DC, unsigned int kCF, real nu, real diffusivity_fine, - unsigned int numberOfThreads, - ICellNeigh neighborCoarseToFine); + unsigned int numberOfThreads, + ICellNeigh neighborCoarseToFine); void ScaleFCThS27( real* DC, real* DF, @@ -1758,239 +1711,239 @@ void ScaleFCThS27( real* DC, unsigned int kFC, real nu, real diffusivity_coarse, - unsigned int numberOfThreads, - ICellNeigh neighborFineToCoarse); + unsigned int numberOfThreads, + ICellNeigh neighborFineToCoarse); void DragLiftPostD27(real* DD, - int* k_Q, - real* QQ, - int numberOfBCnodes, - double *DragX, - double *DragY, - double *DragZ, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned long long numberOfLBnodes, - bool isEvenTimestep, - unsigned int numberOfThreads); + int* k_Q, + real* QQ, + int numberOfBCnodes, + double *DragX, + double *DragY, + double *DragZ, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned long long numberOfLBnodes, + bool isEvenTimestep, + unsigned int numberOfThreads); void DragLiftPreD27( real* DD, - int* k_Q, - real* QQ, - int numberOfBCnodes, - double *DragX, - double *DragY, - double *DragZ, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned long long numberOfLBnodes, - bool isEvenTimestep, - unsigned int numberOfThreads); + int* k_Q, + real* QQ, + int numberOfBCnodes, + double *DragX, + double *DragY, + double *DragZ, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned long long numberOfLBnodes, + bool isEvenTimestep, + unsigned int numberOfThreads); void CalcCPtop27(real* DD, - int* cpIndex, - int nonCp, - double *cpPress, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned long long numberOfLBnodes, - bool isEvenTimestep, - unsigned int numberOfThreads); + int* cpIndex, + int nonCp, + double *cpPress, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned long long numberOfLBnodes, + bool isEvenTimestep, + unsigned int numberOfThreads); void CalcCPbottom27(real* DD, - int* cpIndex, - int nonCp, - double *cpPress, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned long long numberOfLBnodes, - bool isEvenTimestep, - unsigned int numberOfThreads); + int* cpIndex, + int nonCp, + double *cpPress, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned long long numberOfLBnodes, + bool isEvenTimestep, + unsigned int numberOfThreads); void GetSendFsPreDev27(real* DD, - real* bufferFs, - int* sendIndex, - int buffmax, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned long long numberOfLBnodes, - bool isEvenTimestep, - unsigned int numberOfThreads, - cudaStream_t stream = CU_STREAM_LEGACY); + real* bufferFs, + int* sendIndex, + int buffmax, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned long long numberOfLBnodes, + bool isEvenTimestep, + unsigned int numberOfThreads, + cudaStream_t stream = CU_STREAM_LEGACY); void GetSendFsPostDev27(real* DD, - real* bufferFs, - int* sendIndex, - int buffmax, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned long long numberOfLBnodes, - bool isEvenTimestep, - unsigned int numberOfThreads, - cudaStream_t stream = CU_STREAM_LEGACY); + real* bufferFs, + int* sendIndex, + int buffmax, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned long long numberOfLBnodes, + bool isEvenTimestep, + unsigned int numberOfThreads, + cudaStream_t stream = CU_STREAM_LEGACY); void SetRecvFsPreDev27(real* DD, - real* bufferFs, - int* recvIndex, - int buffmax, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned long long numberOfLBnodes, - bool isEvenTimestep, unsigned int numberOfThreads, - cudaStream_t stream = CU_STREAM_LEGACY); + real* bufferFs, + int* recvIndex, + int buffmax, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned long long numberOfLBnodes, + bool isEvenTimestep, unsigned int numberOfThreads, + cudaStream_t stream = CU_STREAM_LEGACY); void SetRecvFsPostDev27(real* DD, - real* bufferFs, - int* recvIndex, - int buffmax, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned long long numberOfLBnodes, - bool isEvenTimestep, - unsigned int numberOfThreads, + real* bufferFs, + int* recvIndex, + int buffmax, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned long long numberOfLBnodes, + bool isEvenTimestep, + unsigned int numberOfThreads, cudaStream_t stream = CU_STREAM_LEGACY); void getSendGsDevF3( - real* G6, - real* bufferGs, - int* sendIndex, - int buffmax, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned long long numberOfLBnodes, - bool isEvenTimestep, - unsigned int numberOfThreads); + real* G6, + real* bufferGs, + int* sendIndex, + int buffmax, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned long long numberOfLBnodes, + bool isEvenTimestep, + unsigned int numberOfThreads); void setRecvGsDevF3( - real* G6, - real* bufferGs, - int* recvIndex, - int buffmax, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned long long numberOfLBnodes, - bool isEvenTimestep, - unsigned int numberOfThreads); + real* G6, + real* bufferGs, + int* recvIndex, + int buffmax, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned long long numberOfLBnodes, + bool isEvenTimestep, + unsigned int numberOfThreads); void WallFuncDev27(unsigned int numberOfThreads, - real* vx, - real* vy, - real* vz, - real* DD, - int* k_Q, - real* QQ, - unsigned int numberOfBCnodes, - real om1, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned long long numberOfLBnodes, - bool isEvenTimestep); + real* vx, + real* vy, + real* vz, + real* DD, + int* k_Q, + real* QQ, + unsigned int numberOfBCnodes, + real om1, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned long long numberOfLBnodes, + bool isEvenTimestep); void SetOutputWallVelocitySP27(unsigned int numberOfThreads, - real* vxD, - real* vyD, - real* vzD, - real* vxWall, - real* vyWall, - real* vzWall, - int numberOfWallNodes, - int* kWallNodes, - real* rhoD, - real* pressD, - unsigned int* geoD, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned long long numberOfLBnodes, - real* DD, - bool isEvenTimestep); + real* vxD, + real* vyD, + real* vzD, + real* vxWall, + real* vyWall, + real* vzWall, + int numberOfWallNodes, + int* kWallNodes, + real* rhoD, + real* pressD, + unsigned int* geoD, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned long long numberOfLBnodes, + real* DD, + bool isEvenTimestep); void GetVelotoForce27(unsigned int numberOfThreads, - real* DD, - int* bcIndex, - int nonAtBC, - real* Vx, - real* Vy, - real* Vz, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned long long numberOfLBnodes, - bool isEvenTimestep); + real* DD, + int* bcIndex, + int nonAtBC, + real* Vx, + real* Vy, + real* Vz, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned long long numberOfLBnodes, + bool isEvenTimestep); void InitParticlesDevice(real* coordX, - real* coordY, - real* coordZ, - real* coordParticleXlocal, - real* coordParticleYlocal, - real* coordParticleZlocal, - real* coordParticleXglobal, - real* coordParticleYglobal, - real* coordParticleZglobal, - real* veloParticleX, - real* veloParticleY, - real* veloParticleZ, - real* randArray, - unsigned int* particleID, - unsigned int* cellBaseID, - unsigned int* bcMatD, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned int* neighborWSB, - int level, - unsigned int numberOfParticles, - unsigned long long numberOfLBnodes, - unsigned int numberOfThreads); + real* coordY, + real* coordZ, + real* coordParticleXlocal, + real* coordParticleYlocal, + real* coordParticleZlocal, + real* coordParticleXglobal, + real* coordParticleYglobal, + real* coordParticleZglobal, + real* veloParticleX, + real* veloParticleY, + real* veloParticleZ, + real* randArray, + unsigned int* particleID, + unsigned int* cellBaseID, + unsigned int* bcMatD, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned int* neighborWSB, + int level, + unsigned int numberOfParticles, + unsigned long long numberOfLBnodes, + unsigned int numberOfThreads); void MoveParticlesDevice(real* coordX, - real* coordY, - real* coordZ, - real* coordParticleXlocal, - real* coordParticleYlocal, - real* coordParticleZlocal, - real* coordParticleXglobal, - real* coordParticleYglobal, - real* coordParticleZglobal, - real* veloParticleX, - real* veloParticleY, - real* veloParticleZ, - real* DD, - real omega, - unsigned int* particleID, - unsigned int* cellBaseID, - unsigned int* bcMatD, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned int* neighborWSB, - int level, - unsigned int timestep, - unsigned int numberOfTimesteps, - unsigned int numberOfParticles, - unsigned long long numberOfLBnodes, - unsigned int numberOfThreads, - bool isEvenTimestep); + real* coordY, + real* coordZ, + real* coordParticleXlocal, + real* coordParticleYlocal, + real* coordParticleZlocal, + real* coordParticleXglobal, + real* coordParticleYglobal, + real* coordParticleZglobal, + real* veloParticleX, + real* veloParticleY, + real* veloParticleZ, + real* DD, + real omega, + unsigned int* particleID, + unsigned int* cellBaseID, + unsigned int* bcMatD, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned int* neighborWSB, + int level, + unsigned int timestep, + unsigned int numberOfTimesteps, + unsigned int numberOfParticles, + unsigned long long numberOfLBnodes, + unsigned int numberOfThreads, + bool isEvenTimestep); void initRandomDevice(curandState* state, - unsigned long long numberOfLBnodes, - unsigned int numberOfThreads); + unsigned long long numberOfLBnodes, + unsigned int numberOfThreads); void generateRandomValuesDevice(curandState* state, - unsigned long long numberOfLBnodes, - real* randArray, - unsigned int numberOfThreads); + unsigned long long numberOfLBnodes, + real* randArray, + unsigned int numberOfThreads); void CalcTurbulenceIntensityDevice( real* vxx, diff --git a/src/gpu/core/GPU/GPU_Kernels.cuh b/src/gpu/core/GPU/GPU_Kernels.cuh index adcb99b96f78e9e53f6f2ec592ad03a5dc10ba45..ab8ab0fa3564de523e8fc8e6985f6d98c09fb404 100644 --- a/src/gpu/core/GPU/GPU_Kernels.cuh +++ b/src/gpu/core/GPU/GPU_Kernels.cuh @@ -17,48 +17,6 @@ #include "LBM/LB.h" -__global__ void LBInit27( int myid, - int numprocs, - real u0, - unsigned int* geoD, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - real* vParabel, - unsigned long long numberOfLBnodes, - unsigned int grid_nx, - unsigned int grid_ny, - unsigned int grid_nz, - real* DD, - int lev, - int maxlev); - -__global__ void LBInitNonEqPartSP27(unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned int* neighborWSB, - unsigned int* geoD, - real* rho, - real* ux, - real* uy, - real* uz, - unsigned long long numberOfLBnodes, - real* DD, - real omega, - bool EvenOrOdd); - -__global__ void InitAD27(unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned int* geoD, - real* Conc, - real* ux, - real* uy, - real* uz, - unsigned long long numberOfLBnodes, - real* DD27, - bool EvenOrOdd); - __global__ void LBCalcMac27( real* vxD, real* vyD, real* vzD, @@ -381,7 +339,7 @@ __global__ void QDeviceCompThinWallsPartOne27(real* DD, unsigned long long numberOfLBnodes, bool isEvenTimestep); -__global__ void QDevice3rdMomentsComp27( real* distributions, +__global__ void QDevice3rdMomentsComp27( real* distributions, int* subgridDistanceIndices, real* subgridDistances, unsigned int numberOfBCnodes, @@ -403,7 +361,7 @@ __global__ void QDeviceIncompHighNu27(real* DD, unsigned long long numberOfLBnodes, bool isEvenTimestep); -__global__ void QDeviceCompHighNu27( real* DD, +__global__ void QDeviceCompHighNu27( real* DD, int* k_Q, real* QQ, unsigned int numberOfBCnodes, @@ -565,7 +523,7 @@ __global__ void QVelDeviceIncompHighNu27(real* vx, unsigned long long numberOfLBnodes, bool isEvenTimestep); -__global__ void QVelDeviceCompHighNu27( real* vx, +__global__ void QVelDeviceCompHighNu27( real* vx, real* vy, real* vz, real* DD, @@ -987,7 +945,7 @@ __global__ void VelSchlaff27( int t, unsigned long long numberOfLBnodes, bool isEvenTimestep); -__global__ void QPrecursorDeviceCompZeroPress( int* subgridDistanceIndices, +__global__ void QPrecursorDeviceCompZeroPress( int* subgridDistanceIndices, int numberOfBCnodes, int numberOfPrecursorNodes, int sizeQ, @@ -1015,7 +973,7 @@ __global__ void QPrecursorDeviceCompZeroPress( int* subgridDistanceIndices, unsigned long long numberOfLBnodes, bool isEvenTimestep); -__global__ void PrecursorDeviceEQ27( int* subgridDistanceIndices, +__global__ void PrecursorDeviceEQ27( int* subgridDistanceIndices, int numberOfBCnodes, int numberOfPrecursorNodes, real omega, @@ -1041,7 +999,7 @@ __global__ void PrecursorDeviceEQ27( int* subgridDistanceIndices, unsigned long long numberOfLBnodes, bool isEvenTimestep); -__global__ void PrecursorDeviceDistributions( int* subgridDistanceIndices, +__global__ void PrecursorDeviceDistributions( int* subgridDistanceIndices, int numberOfBCNodes, int numberOfPrecursorNodes, real* distributions, @@ -1061,7 +1019,7 @@ __global__ void PrecursorDeviceDistributions( int* subgridDistanceIndices, real timeRatio, unsigned long long numberOfLBnodes, bool isEvenTimestep); -__global__ void QPrecursorDeviceDistributions( int* subgridDistanceIndices, +__global__ void QPrecursorDeviceDistributions( int* subgridDistanceIndices, real* subgridDistances, int sizeQ, int numberOfBCNodes, @@ -2231,7 +2189,7 @@ __global__ void setRecvGsF3( unsigned long long numberOfLBnodes, bool isEvenTimestep); -__global__ void WallFunction27( real* vx, +__global__ void WallFunction27( real* vx, real* vy, real* vz, real* DD, diff --git a/src/gpu/core/GPU/GridScaling/ScaleCF27.cu b/src/gpu/core/GPU/GridScaling/ScaleCF27.cu index 222e29ae624facc3727ca4249cd4723b9dea7c85..e84674ecb2dd4037dfd576c6dca8cb2b6596f601 100644 --- a/src/gpu/core/GPU/GridScaling/ScaleCF27.cu +++ b/src/gpu/core/GPU/GridScaling/ScaleCF27.cu @@ -15,127 +15,127 @@ using namespace vf::lbm::dir; ////////////////////////////////////////////////////////////////////////// __global__ void scaleCF_0817_comp_27( real* DC, - real* DF, - unsigned int* neighborCX, - unsigned int* neighborCY, - unsigned int* neighborCZ, - unsigned int* neighborFX, - unsigned int* neighborFY, - unsigned int* neighborFZ, - unsigned long long numberOfLBnodesCoarse, - unsigned long long numberOfLBnodesFine, - bool isEvenTimestep, - unsigned int* posCSWB, - unsigned int* posFSWB, - unsigned int kCF, - real omCoarse, - real omFine, - real nu, - unsigned int nxC, - unsigned int nyC, - unsigned int nxF, - unsigned int nyF, - ICellNeigh offCF) + real* DF, + unsigned int* neighborCX, + unsigned int* neighborCY, + unsigned int* neighborCZ, + unsigned int* neighborFX, + unsigned int* neighborFY, + unsigned int* neighborFZ, + unsigned long long numberOfLBnodesCoarse, + unsigned long long numberOfLBnodesFine, + bool isEvenTimestep, + unsigned int* posCSWB, + unsigned int* posFSWB, + unsigned int kCF, + real omCoarse, + real omFine, + real nu, + unsigned int nxC, + unsigned int nyC, + unsigned int nxF, + unsigned int nyF, + ICellNeigh offCF) { - real - *fP00dest, *fM00dest, *f0P0dest, *f0M0dest, *f00Pdest, *f00Mdest, *fPP0dest, *fMM0dest, *fPM0dest, - *fMP0dest, *fP0Pdest, *fM0Mdest, *fP0Mdest, *fM0Pdest, *f0PPdest, *f0MMdest, *f0PMdest, *f0MPdest, - *f000dest, *fMMMdest, *fMMPdest, *fMPPdest, *fMPMdest, *fPPMdest, *fPPPdest, *fPMPdest, *fPMMdest; - - - fP00dest = &DF[dP00 * numberOfLBnodesFine]; - fM00dest = &DF[dM00 * numberOfLBnodesFine]; - f0P0dest = &DF[d0P0 * numberOfLBnodesFine]; - f0M0dest = &DF[d0M0 * numberOfLBnodesFine]; - f00Pdest = &DF[d00P * numberOfLBnodesFine]; - f00Mdest = &DF[d00M * numberOfLBnodesFine]; - fPP0dest = &DF[dPP0 * numberOfLBnodesFine]; - fMM0dest = &DF[dMM0 * numberOfLBnodesFine]; - fPM0dest = &DF[dPM0 * numberOfLBnodesFine]; - fMP0dest = &DF[dMP0 * numberOfLBnodesFine]; - fP0Pdest = &DF[dP0P * numberOfLBnodesFine]; - fM0Mdest = &DF[dM0M * numberOfLBnodesFine]; - fP0Mdest = &DF[dP0M * numberOfLBnodesFine]; - fM0Pdest = &DF[dM0P * numberOfLBnodesFine]; - f0PPdest = &DF[d0PP * numberOfLBnodesFine]; - f0MMdest = &DF[d0MM * numberOfLBnodesFine]; - f0PMdest = &DF[d0PM * numberOfLBnodesFine]; - f0MPdest = &DF[d0MP * numberOfLBnodesFine]; - f000dest = &DF[d000 * numberOfLBnodesFine]; - fMMMdest = &DF[dMMM * numberOfLBnodesFine]; - fMMPdest = &DF[dMMP * numberOfLBnodesFine]; - fMPPdest = &DF[dMPP * numberOfLBnodesFine]; - fMPMdest = &DF[dMPM * numberOfLBnodesFine]; - fPPMdest = &DF[dPPM * numberOfLBnodesFine]; - fPPPdest = &DF[dPPP * numberOfLBnodesFine]; - fPMPdest = &DF[dPMP * numberOfLBnodesFine]; - fPMMdest = &DF[dPMM * numberOfLBnodesFine]; - - real - *fP00source, *fM00source, *f0P0source, *f0M0source, *f00Psource, *f00Msource, *fPP0source, *fMM0source, *fPM0source, - *fMP0source, *fP0Psource, *fM0Msource, *fP0Msource, *fM0Psource, *f0PPsource, *f0MMsource, *f0PMsource, *f0MPsource, - *f000source, *fMMMsource, *fMMPsource, *fMPPsource, *fMPMsource, *fPPMsource, *fPPPsource, *fPMPsource, *fPMMsource; - - if (isEvenTimestep == true) - { - fP00source = &DC[dP00 * numberOfLBnodesCoarse]; - fM00source = &DC[dM00 * numberOfLBnodesCoarse]; - f0P0source = &DC[d0P0 * numberOfLBnodesCoarse]; - f0M0source = &DC[d0M0 * numberOfLBnodesCoarse]; - f00Psource = &DC[d00P * numberOfLBnodesCoarse]; - f00Msource = &DC[d00M * numberOfLBnodesCoarse]; - fPP0source = &DC[dPP0 * numberOfLBnodesCoarse]; - fMM0source = &DC[dMM0 * numberOfLBnodesCoarse]; - fPM0source = &DC[dPM0 * numberOfLBnodesCoarse]; - fMP0source = &DC[dMP0 * numberOfLBnodesCoarse]; - fP0Psource = &DC[dP0P * numberOfLBnodesCoarse]; - fM0Msource = &DC[dM0M * numberOfLBnodesCoarse]; - fP0Msource = &DC[dP0M * numberOfLBnodesCoarse]; - fM0Psource = &DC[dM0P * numberOfLBnodesCoarse]; - f0PPsource = &DC[d0PP * numberOfLBnodesCoarse]; - f0MMsource = &DC[d0MM * numberOfLBnodesCoarse]; - f0PMsource = &DC[d0PM * numberOfLBnodesCoarse]; - f0MPsource = &DC[d0MP * numberOfLBnodesCoarse]; - f000source = &DC[d000 * numberOfLBnodesCoarse]; - fMMMsource = &DC[dMMM * numberOfLBnodesCoarse]; - fMMPsource = &DC[dMMP * numberOfLBnodesCoarse]; - fMPPsource = &DC[dMPP * numberOfLBnodesCoarse]; - fMPMsource = &DC[dMPM * numberOfLBnodesCoarse]; - fPPMsource = &DC[dPPM * numberOfLBnodesCoarse]; - fPPPsource = &DC[dPPP * numberOfLBnodesCoarse]; - fPMPsource = &DC[dPMP * numberOfLBnodesCoarse]; - fPMMsource = &DC[dPMM * numberOfLBnodesCoarse]; - } - else - { - fP00source = &DC[dM00 * numberOfLBnodesCoarse]; - fM00source = &DC[dP00 * numberOfLBnodesCoarse]; - f0P0source = &DC[d0M0 * numberOfLBnodesCoarse]; - f0M0source = &DC[d0P0 * numberOfLBnodesCoarse]; - f00Psource = &DC[d00M * numberOfLBnodesCoarse]; - f00Msource = &DC[d00P * numberOfLBnodesCoarse]; - fPP0source = &DC[dMM0 * numberOfLBnodesCoarse]; - fMM0source = &DC[dPP0 * numberOfLBnodesCoarse]; - fPM0source = &DC[dMP0 * numberOfLBnodesCoarse]; - fMP0source = &DC[dPM0 * numberOfLBnodesCoarse]; - fP0Psource = &DC[dM0M * numberOfLBnodesCoarse]; - fM0Msource = &DC[dP0P * numberOfLBnodesCoarse]; - fP0Msource = &DC[dM0P * numberOfLBnodesCoarse]; - fM0Psource = &DC[dP0M * numberOfLBnodesCoarse]; - f0PPsource = &DC[d0MM * numberOfLBnodesCoarse]; - f0MMsource = &DC[d0PP * numberOfLBnodesCoarse]; - f0PMsource = &DC[d0MP * numberOfLBnodesCoarse]; - f0MPsource = &DC[d0PM * numberOfLBnodesCoarse]; - f000source = &DC[d000 * numberOfLBnodesCoarse]; - fMMMsource = &DC[dPPP * numberOfLBnodesCoarse]; - fMMPsource = &DC[dPPM * numberOfLBnodesCoarse]; - fMPPsource = &DC[dPMM * numberOfLBnodesCoarse]; - fMPMsource = &DC[dPMP * numberOfLBnodesCoarse]; - fPPMsource = &DC[dMMP * numberOfLBnodesCoarse]; - fPPPsource = &DC[dMMM * numberOfLBnodesCoarse]; - fPMPsource = &DC[dMPM * numberOfLBnodesCoarse]; - fPMMsource = &DC[dMPP * numberOfLBnodesCoarse]; - } + real + *fP00dest, *fM00dest, *f0P0dest, *f0M0dest, *f00Pdest, *f00Mdest, *fPP0dest, *fMM0dest, *fPM0dest, + *fMP0dest, *fP0Pdest, *fM0Mdest, *fP0Mdest, *fM0Pdest, *f0PPdest, *f0MMdest, *f0PMdest, *f0MPdest, + *f000dest, *fMMMdest, *fMMPdest, *fMPPdest, *fMPMdest, *fPPMdest, *fPPPdest, *fPMPdest, *fPMMdest; + + + fP00dest = &DF[dP00 * numberOfLBnodesFine]; + fM00dest = &DF[dM00 * numberOfLBnodesFine]; + f0P0dest = &DF[d0P0 * numberOfLBnodesFine]; + f0M0dest = &DF[d0M0 * numberOfLBnodesFine]; + f00Pdest = &DF[d00P * numberOfLBnodesFine]; + f00Mdest = &DF[d00M * numberOfLBnodesFine]; + fPP0dest = &DF[dPP0 * numberOfLBnodesFine]; + fMM0dest = &DF[dMM0 * numberOfLBnodesFine]; + fPM0dest = &DF[dPM0 * numberOfLBnodesFine]; + fMP0dest = &DF[dMP0 * numberOfLBnodesFine]; + fP0Pdest = &DF[dP0P * numberOfLBnodesFine]; + fM0Mdest = &DF[dM0M * numberOfLBnodesFine]; + fP0Mdest = &DF[dP0M * numberOfLBnodesFine]; + fM0Pdest = &DF[dM0P * numberOfLBnodesFine]; + f0PPdest = &DF[d0PP * numberOfLBnodesFine]; + f0MMdest = &DF[d0MM * numberOfLBnodesFine]; + f0PMdest = &DF[d0PM * numberOfLBnodesFine]; + f0MPdest = &DF[d0MP * numberOfLBnodesFine]; + f000dest = &DF[d000 * numberOfLBnodesFine]; + fMMMdest = &DF[dMMM * numberOfLBnodesFine]; + fMMPdest = &DF[dMMP * numberOfLBnodesFine]; + fMPPdest = &DF[dMPP * numberOfLBnodesFine]; + fMPMdest = &DF[dMPM * numberOfLBnodesFine]; + fPPMdest = &DF[dPPM * numberOfLBnodesFine]; + fPPPdest = &DF[dPPP * numberOfLBnodesFine]; + fPMPdest = &DF[dPMP * numberOfLBnodesFine]; + fPMMdest = &DF[dPMM * numberOfLBnodesFine]; + + real + *fP00source, *fM00source, *f0P0source, *f0M0source, *f00Psource, *f00Msource, *fPP0source, *fMM0source, *fPM0source, + *fMP0source, *fP0Psource, *fM0Msource, *fP0Msource, *fM0Psource, *f0PPsource, *f0MMsource, *f0PMsource, *f0MPsource, + *f000source, *fMMMsource, *fMMPsource, *fMPPsource, *fMPMsource, *fPPMsource, *fPPPsource, *fPMPsource, *fPMMsource; + + if (isEvenTimestep == true) + { + fP00source = &DC[dP00 * numberOfLBnodesCoarse]; + fM00source = &DC[dM00 * numberOfLBnodesCoarse]; + f0P0source = &DC[d0P0 * numberOfLBnodesCoarse]; + f0M0source = &DC[d0M0 * numberOfLBnodesCoarse]; + f00Psource = &DC[d00P * numberOfLBnodesCoarse]; + f00Msource = &DC[d00M * numberOfLBnodesCoarse]; + fPP0source = &DC[dPP0 * numberOfLBnodesCoarse]; + fMM0source = &DC[dMM0 * numberOfLBnodesCoarse]; + fPM0source = &DC[dPM0 * numberOfLBnodesCoarse]; + fMP0source = &DC[dMP0 * numberOfLBnodesCoarse]; + fP0Psource = &DC[dP0P * numberOfLBnodesCoarse]; + fM0Msource = &DC[dM0M * numberOfLBnodesCoarse]; + fP0Msource = &DC[dP0M * numberOfLBnodesCoarse]; + fM0Psource = &DC[dM0P * numberOfLBnodesCoarse]; + f0PPsource = &DC[d0PP * numberOfLBnodesCoarse]; + f0MMsource = &DC[d0MM * numberOfLBnodesCoarse]; + f0PMsource = &DC[d0PM * numberOfLBnodesCoarse]; + f0MPsource = &DC[d0MP * numberOfLBnodesCoarse]; + f000source = &DC[d000 * numberOfLBnodesCoarse]; + fMMMsource = &DC[dMMM * numberOfLBnodesCoarse]; + fMMPsource = &DC[dMMP * numberOfLBnodesCoarse]; + fMPPsource = &DC[dMPP * numberOfLBnodesCoarse]; + fMPMsource = &DC[dMPM * numberOfLBnodesCoarse]; + fPPMsource = &DC[dPPM * numberOfLBnodesCoarse]; + fPPPsource = &DC[dPPP * numberOfLBnodesCoarse]; + fPMPsource = &DC[dPMP * numberOfLBnodesCoarse]; + fPMMsource = &DC[dPMM * numberOfLBnodesCoarse]; + } + else + { + fP00source = &DC[dM00 * numberOfLBnodesCoarse]; + fM00source = &DC[dP00 * numberOfLBnodesCoarse]; + f0P0source = &DC[d0M0 * numberOfLBnodesCoarse]; + f0M0source = &DC[d0P0 * numberOfLBnodesCoarse]; + f00Psource = &DC[d00M * numberOfLBnodesCoarse]; + f00Msource = &DC[d00P * numberOfLBnodesCoarse]; + fPP0source = &DC[dMM0 * numberOfLBnodesCoarse]; + fMM0source = &DC[dPP0 * numberOfLBnodesCoarse]; + fPM0source = &DC[dMP0 * numberOfLBnodesCoarse]; + fMP0source = &DC[dPM0 * numberOfLBnodesCoarse]; + fP0Psource = &DC[dM0M * numberOfLBnodesCoarse]; + fM0Msource = &DC[dP0P * numberOfLBnodesCoarse]; + fP0Msource = &DC[dM0P * numberOfLBnodesCoarse]; + fM0Psource = &DC[dP0M * numberOfLBnodesCoarse]; + f0PPsource = &DC[d0MM * numberOfLBnodesCoarse]; + f0MMsource = &DC[d0PP * numberOfLBnodesCoarse]; + f0PMsource = &DC[d0MP * numberOfLBnodesCoarse]; + f0MPsource = &DC[d0PM * numberOfLBnodesCoarse]; + f000source = &DC[d000 * numberOfLBnodesCoarse]; + fMMMsource = &DC[dPPP * numberOfLBnodesCoarse]; + fMMPsource = &DC[dPPM * numberOfLBnodesCoarse]; + fMPPsource = &DC[dPMM * numberOfLBnodesCoarse]; + fMPMsource = &DC[dPMP * numberOfLBnodesCoarse]; + fPPMsource = &DC[dMMP * numberOfLBnodesCoarse]; + fPPPsource = &DC[dMMM * numberOfLBnodesCoarse]; + fPMPsource = &DC[dMPM * numberOfLBnodesCoarse]; + fPMMsource = &DC[dMPP * numberOfLBnodesCoarse]; + } //////////////////////////////////////////////////////////////////////////////// const unsigned ix = threadIdx.x; // Globaler x-Index const unsigned iy = blockIdx.x; // Globaler y-Index @@ -217,47 +217,47 @@ __global__ void scaleCF_0817_comp_27( real* DC, unsigned int k0MM = k0MMbase; unsigned int kMMM = kMMMbase; //////////////////////////////////////////////////////////////////////////////// - fP00 = fP00source[k000]; - fM00 = fM00source[kM00]; - f0P0 = f0P0source[k000]; - f0M0 = f0M0source[k0M0]; - f00P = f00Psource[k000]; - f00M = f00Msource[k00M]; - fPP0 = fPP0source[k000]; - fMM0 = fMM0source[kMM0]; - fPM0 = fPM0source[k0M0]; - fMP0 = fMP0source[kM00]; - fP0P = fP0Psource[k000]; - fM0M = fM0Msource[kM0M]; - fP0M = fP0Msource[k00M]; - fM0P = fM0Psource[kM00]; - f0PP = f0PPsource[k000]; - f0MM = f0MMsource[k0MM]; - f0PM = f0PMsource[k00M]; - f0MP = f0MPsource[k0M0]; - f000 = f000source[k000]; - fMMM = fMMMsource[kMMM]; - fMMP = fMMPsource[kMM0]; - fMPP = fMPPsource[kM00]; - fMPM = fMPMsource[kM0M]; - fPPM = fPPMsource[k00M]; - fPPP = fPPPsource[k000]; - fPMP = fPMPsource[k0M0]; - fPMM = fPMMsource[k0MM]; + fP00 = fP00source[k000]; + fM00 = fM00source[kM00]; + f0P0 = f0P0source[k000]; + f0M0 = f0M0source[k0M0]; + f00P = f00Psource[k000]; + f00M = f00Msource[k00M]; + fPP0 = fPP0source[k000]; + fMM0 = fMM0source[kMM0]; + fPM0 = fPM0source[k0M0]; + fMP0 = fMP0source[kM00]; + fP0P = fP0Psource[k000]; + fM0M = fM0Msource[kM0M]; + fP0M = fP0Msource[k00M]; + fM0P = fM0Psource[kM00]; + f0PP = f0PPsource[k000]; + f0MM = f0MMsource[k0MM]; + f0PM = f0PMsource[k00M]; + f0MP = f0MPsource[k0M0]; + f000 = f000source[k000]; + fMMM = fMMMsource[kMMM]; + fMMP = fMMPsource[kMM0]; + fMPP = fMPPsource[kM00]; + fMPM = fMPMsource[kM0M]; + fPPM = fPPMsource[k00M]; + fPPP = fPPPsource[k000]; + fPMP = fPMPsource[k0M0]; + fPMM = fPMMsource[k0MM]; drhoMMM = fP00+fM00+f0P0+f0M0+f00P+f00M+fPP0+fMM0+fPM0+fMP0+fP0P+fM0M+fP0M+fM0P+f0PP+f0MM+f0PM+f0MP+f000+fPPP+fMMP+fPMP+fMPP+fPPM+fMMM+fPMM+fMPM; vx1MMM = (((fPPP-fMMM)+(fPMP-fMPM)+(fPPM-fMMP)+(fPMM-fMPP)) + (((fPP0-fMM0)+(fP0P-fM0M))+((fPM0-fMP0)+(fP0M-fM0P))) + (fP00-fM00))/(c1o1 + drhoMMM); - vx2MMM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoMMM); - vx3MMM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoMMM); + vx2MMM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoMMM); + vx3MMM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoMMM); - kxyFromfcNEQMMM = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoMMM) - ((vx1MMM*vx2MMM))); - kyzFromfcNEQMMM = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoMMM) - ((vx2MMM*vx3MMM))); - kxzFromfcNEQMMM = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoMMM) - ((vx1MMM*vx3MMM))); - kxxMyyFromfcNEQMMM = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoMMM) - ((vx1MMM*vx1MMM - vx2MMM*vx2MMM))); - kxxMzzFromfcNEQMMM = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoMMM) - ((vx1MMM*vx1MMM - vx3MMM*vx3MMM))); - kyyMzzFromfcNEQMMM = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoMMM) - ((vx2MMM*vx2MMM - vx3MMM*vx3MMM))); + kxyFromfcNEQMMM = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoMMM) - ((vx1MMM*vx2MMM))); + kyzFromfcNEQMMM = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoMMM) - ((vx2MMM*vx3MMM))); + kxzFromfcNEQMMM = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoMMM) - ((vx1MMM*vx3MMM))); + kxxMyyFromfcNEQMMM = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoMMM) - ((vx1MMM*vx1MMM - vx2MMM*vx2MMM))); + kxxMzzFromfcNEQMMM = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoMMM) - ((vx1MMM*vx1MMM - vx3MMM*vx3MMM))); + kyyMzzFromfcNEQMMM = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoMMM) - ((vx2MMM*vx2MMM - vx3MMM*vx3MMM))); - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// //SWT// ////////////////////////////////////////////////////////////////////////// //index @@ -270,45 +270,45 @@ __global__ void scaleCF_0817_comp_27( real* DC, k0MM = neighborCZ[k0MM]; kMMM = neighborCZ[kMMM]; //////////////////////////////////////////////////////////////////////////////// - fP00 = fP00source[k000]; - fM00 = fM00source[kM00]; - f0P0 = f0P0source[k000]; - f0M0 = f0M0source[k0M0]; - f00P = f00Psource[k000]; - f00M = f00Msource[k00M]; - fPP0 = fPP0source[k000]; - fMM0 = fMM0source[kMM0]; - fPM0 = fPM0source[k0M0]; - fMP0 = fMP0source[kM00]; - fP0P = fP0Psource[k000]; - fM0M = fM0Msource[kM0M]; - fP0M = fP0Msource[k00M]; - fM0P = fM0Psource[kM00]; - f0PP = f0PPsource[k000]; - f0MM = f0MMsource[k0MM]; - f0PM = f0PMsource[k00M]; - f0MP = f0MPsource[k0M0]; - f000 = f000source[k000]; - fMMM = fMMMsource[kMMM]; - fMMP = fMMPsource[kMM0]; - fMPP = fMPPsource[kM00]; - fMPM = fMPMsource[kM0M]; - fPPM = fPPMsource[k00M]; - fPPP = fPPPsource[k000]; - fPMP = fPMPsource[k0M0]; - fPMM = fPMMsource[k0MM]; + fP00 = fP00source[k000]; + fM00 = fM00source[kM00]; + f0P0 = f0P0source[k000]; + f0M0 = f0M0source[k0M0]; + f00P = f00Psource[k000]; + f00M = f00Msource[k00M]; + fPP0 = fPP0source[k000]; + fMM0 = fMM0source[kMM0]; + fPM0 = fPM0source[k0M0]; + fMP0 = fMP0source[kM00]; + fP0P = fP0Psource[k000]; + fM0M = fM0Msource[kM0M]; + fP0M = fP0Msource[k00M]; + fM0P = fM0Psource[kM00]; + f0PP = f0PPsource[k000]; + f0MM = f0MMsource[k0MM]; + f0PM = f0PMsource[k00M]; + f0MP = f0MPsource[k0M0]; + f000 = f000source[k000]; + fMMM = fMMMsource[kMMM]; + fMMP = fMMPsource[kMM0]; + fMPP = fMPPsource[kM00]; + fMPM = fMPMsource[kM0M]; + fPPM = fPPMsource[k00M]; + fPPP = fPPPsource[k000]; + fPMP = fPMPsource[k0M0]; + fPMM = fPMMsource[k0MM]; drhoMMP = fP00+fM00+f0P0+f0M0+f00P+f00M+fPP0+fMM0+fPM0+fMP0+fP0P+fM0M+fP0M+fM0P+f0PP+f0MM+f0PM+f0MP+f000+fPPP+fMMP+fPMP+fMPP+fPPM+fMMM+fPMM+fMPM; vx1MMP = (((fPPP-fMMM)+(fPMP-fMPM)+(fPPM-fMMP)+(fPMM-fMPP)) + (((fPP0-fMM0)+(fP0P-fM0M))+((fPM0-fMP0)+(fP0M-fM0P))) + (fP00-fM00))/(c1o1 + drhoMMP); - vx2MMP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoMMP); - vx3MMP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoMMP); + vx2MMP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoMMP); + vx3MMP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoMMP); - kxyFromfcNEQMMP = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoMMP) - ((vx1MMP*vx2MMP))); - kyzFromfcNEQMMP = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoMMP) - ((vx2MMP*vx3MMP))); - kxzFromfcNEQMMP = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoMMP) - ((vx1MMP*vx3MMP))); - kxxMyyFromfcNEQMMP = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoMMP) - ((vx1MMP*vx1MMP - vx2MMP*vx2MMP))); - kxxMzzFromfcNEQMMP = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoMMP) - ((vx1MMP*vx1MMP - vx3MMP*vx3MMP))); - kyyMzzFromfcNEQMMP = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoMMP) - ((vx2MMP*vx2MMP - vx3MMP*vx3MMP))); + kxyFromfcNEQMMP = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoMMP) - ((vx1MMP*vx2MMP))); + kyzFromfcNEQMMP = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoMMP) - ((vx2MMP*vx3MMP))); + kxzFromfcNEQMMP = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoMMP) - ((vx1MMP*vx3MMP))); + kxxMyyFromfcNEQMMP = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoMMP) - ((vx1MMP*vx1MMP - vx2MMP*vx2MMP))); + kxxMzzFromfcNEQMMP = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoMMP) - ((vx1MMP*vx1MMP - vx3MMP*vx3MMP))); + kyyMzzFromfcNEQMMP = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoMMP) - ((vx2MMP*vx2MMP - vx3MMP*vx3MMP))); ////////////////////////////////////////////////////////////////////////// //SET// @@ -323,47 +323,47 @@ __global__ void scaleCF_0817_comp_27( real* DC, k0MM = kMMM; kMMM = neighborCX[kMMM]; //////////////////////////////////////////////////////////////////////////////// - fP00 = fP00source[k000]; - fM00 = fM00source[kM00]; - f0P0 = f0P0source[k000]; - f0M0 = f0M0source[k0M0]; - f00P = f00Psource[k000]; - f00M = f00Msource[k00M]; - fPP0 = fPP0source[k000]; - fMM0 = fMM0source[kMM0]; - fPM0 = fPM0source[k0M0]; - fMP0 = fMP0source[kM00]; - fP0P = fP0Psource[k000]; - fM0M = fM0Msource[kM0M]; - fP0M = fP0Msource[k00M]; - fM0P = fM0Psource[kM00]; - f0PP = f0PPsource[k000]; - f0MM = f0MMsource[k0MM]; - f0PM = f0PMsource[k00M]; - f0MP = f0MPsource[k0M0]; - f000 = f000source[k000]; - fMMM = fMMMsource[kMMM]; - fMMP = fMMPsource[kMM0]; - fMPP = fMPPsource[kM00]; - fMPM = fMPMsource[kM0M]; - fPPM = fPPMsource[k00M]; - fPPP = fPPPsource[k000]; - fPMP = fPMPsource[k0M0]; - fPMM = fPMMsource[k0MM]; + fP00 = fP00source[k000]; + fM00 = fM00source[kM00]; + f0P0 = f0P0source[k000]; + f0M0 = f0M0source[k0M0]; + f00P = f00Psource[k000]; + f00M = f00Msource[k00M]; + fPP0 = fPP0source[k000]; + fMM0 = fMM0source[kMM0]; + fPM0 = fPM0source[k0M0]; + fMP0 = fMP0source[kM00]; + fP0P = fP0Psource[k000]; + fM0M = fM0Msource[kM0M]; + fP0M = fP0Msource[k00M]; + fM0P = fM0Psource[kM00]; + f0PP = f0PPsource[k000]; + f0MM = f0MMsource[k0MM]; + f0PM = f0PMsource[k00M]; + f0MP = f0MPsource[k0M0]; + f000 = f000source[k000]; + fMMM = fMMMsource[kMMM]; + fMMP = fMMPsource[kMM0]; + fMPP = fMPPsource[kM00]; + fMPM = fMPMsource[kM0M]; + fPPM = fPPMsource[k00M]; + fPPP = fPPPsource[k000]; + fPMP = fPMPsource[k0M0]; + fPMM = fPMMsource[k0MM]; drhoPMP = fP00+fM00+f0P0+f0M0+f00P+f00M+fPP0+fMM0+fPM0+fMP0+fP0P+fM0M+fP0M+fM0P+f0PP+f0MM+f0PM+f0MP+f000+fPPP+fMMP+fPMP+fMPP+fPPM+fMMM+fPMM+fMPM; vx1PMP = (((fPPP-fMMM)+(fPMP-fMPM)+(fPPM-fMMP)+(fPMM-fMPP)) + (((fPP0-fMM0)+(fP0P-fM0M))+((fPM0-fMP0)+(fP0M-fM0P))) + (fP00-fM00))/(c1o1 + drhoPMP); - vx2PMP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoPMP); - vx3PMP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoPMP); - - kxyFromfcNEQPMP = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoPMP) - ((vx1PMP*vx2PMP))); - kyzFromfcNEQPMP = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoPMP) - ((vx2PMP*vx3PMP))); - kxzFromfcNEQPMP = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoPMP) - ((vx1PMP*vx3PMP))); - kxxMyyFromfcNEQPMP = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoPMP) - ((vx1PMP*vx1PMP - vx2PMP*vx2PMP))); - kxxMzzFromfcNEQPMP = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoPMP) - ((vx1PMP*vx1PMP - vx3PMP*vx3PMP))); - kyyMzzFromfcNEQPMP = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoPMP) - ((vx2PMP*vx2PMP - vx3PMP*vx3PMP))); - - ////////////////////////////////////////////////////////////////////////// + vx2PMP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoPMP); + vx3PMP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoPMP); + + kxyFromfcNEQPMP = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoPMP) - ((vx1PMP*vx2PMP))); + kyzFromfcNEQPMP = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoPMP) - ((vx2PMP*vx3PMP))); + kxzFromfcNEQPMP = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoPMP) - ((vx1PMP*vx3PMP))); + kxxMyyFromfcNEQPMP = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoPMP) - ((vx1PMP*vx1PMP - vx2PMP*vx2PMP))); + kxxMzzFromfcNEQPMP = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoPMP) - ((vx1PMP*vx1PMP - vx3PMP*vx3PMP))); + kyyMzzFromfcNEQPMP = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoPMP) - ((vx2PMP*vx2PMP - vx3PMP*vx3PMP))); + + ////////////////////////////////////////////////////////////////////////// //SEB// ////////////////////////////////////////////////////////////////////////// //index @@ -376,45 +376,45 @@ __global__ void scaleCF_0817_comp_27( real* DC, k0M0 = kMM0base; kMM0 = neighborCX[kMM0base]; //////////////////////////////////////////////////////////////////////////////// - fP00 = fP00source[k000]; - fM00 = fM00source[kM00]; - f0P0 = f0P0source[k000]; - f0M0 = f0M0source[k0M0]; - f00P = f00Psource[k000]; - f00M = f00Msource[k00M]; - fPP0 = fPP0source[k000]; - fMM0 = fMM0source[kMM0]; - fPM0 = fPM0source[k0M0]; - fMP0 = fMP0source[kM00]; - fP0P = fP0Psource[k000]; - fM0M = fM0Msource[kM0M]; - fP0M = fP0Msource[k00M]; - fM0P = fM0Psource[kM00]; - f0PP = f0PPsource[k000]; - f0MM = f0MMsource[k0MM]; - f0PM = f0PMsource[k00M]; - f0MP = f0MPsource[k0M0]; - f000 = f000source[k000]; - fMMM = fMMMsource[kMMM]; - fMMP = fMMPsource[kMM0]; - fMPP = fMPPsource[kM00]; - fMPM = fMPMsource[kM0M]; - fPPM = fPPMsource[k00M]; - fPPP = fPPPsource[k000]; - fPMP = fPMPsource[k0M0]; - fPMM = fPMMsource[k0MM]; + fP00 = fP00source[k000]; + fM00 = fM00source[kM00]; + f0P0 = f0P0source[k000]; + f0M0 = f0M0source[k0M0]; + f00P = f00Psource[k000]; + f00M = f00Msource[k00M]; + fPP0 = fPP0source[k000]; + fMM0 = fMM0source[kMM0]; + fPM0 = fPM0source[k0M0]; + fMP0 = fMP0source[kM00]; + fP0P = fP0Psource[k000]; + fM0M = fM0Msource[kM0M]; + fP0M = fP0Msource[k00M]; + fM0P = fM0Psource[kM00]; + f0PP = f0PPsource[k000]; + f0MM = f0MMsource[k0MM]; + f0PM = f0PMsource[k00M]; + f0MP = f0MPsource[k0M0]; + f000 = f000source[k000]; + fMMM = fMMMsource[kMMM]; + fMMP = fMMPsource[kMM0]; + fMPP = fMPPsource[kM00]; + fMPM = fMPMsource[kM0M]; + fPPM = fPPMsource[k00M]; + fPPP = fPPPsource[k000]; + fPMP = fPMPsource[k0M0]; + fPMM = fPMMsource[k0MM]; drhoPMM = fP00+fM00+f0P0+f0M0+f00P+f00M+fPP0+fMM0+fPM0+fMP0+fP0P+fM0M+fP0M+fM0P+f0PP+f0MM+f0PM+f0MP+f000+fPPP+fMMP+fPMP+fMPP+fPPM+fMMM+fPMM+fMPM; vx1PMM = (((fPPP-fMMM)+(fPMP-fMPM)+(fPPM-fMMP)+(fPMM-fMPP)) + (((fPP0-fMM0)+(fP0P-fM0M))+((fPM0-fMP0)+(fP0M-fM0P))) + (fP00-fM00))/(c1o1 + drhoPMM); - vx2PMM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoPMM); - vx3PMM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoPMM); + vx2PMM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoPMM); + vx3PMM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoPMM); - kxyFromfcNEQPMM = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoPMM) - ((vx1PMM*vx2PMM))); - kyzFromfcNEQPMM = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoPMM) - ((vx2PMM*vx3PMM))); - kxzFromfcNEQPMM = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoPMM) - ((vx1PMM*vx3PMM))); - kxxMyyFromfcNEQPMM = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoPMM) - ((vx1PMM*vx1PMM - vx2PMM*vx2PMM))); - kxxMzzFromfcNEQPMM = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoPMM) - ((vx1PMM*vx1PMM - vx3PMM*vx3PMM))); - kyyMzzFromfcNEQPMM = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoPMM) - ((vx2PMM*vx2PMM - vx3PMM*vx3PMM))); + kxyFromfcNEQPMM = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoPMM) - ((vx1PMM*vx2PMM))); + kyzFromfcNEQPMM = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoPMM) - ((vx2PMM*vx3PMM))); + kxzFromfcNEQPMM = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoPMM) - ((vx1PMM*vx3PMM))); + kxxMyyFromfcNEQPMM = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoPMM) - ((vx1PMM*vx1PMM - vx2PMM*vx2PMM))); + kxxMzzFromfcNEQPMM = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoPMM) - ((vx1PMM*vx1PMM - vx3PMM*vx3PMM))); + kyyMzzFromfcNEQPMM = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoPMM) - ((vx2PMM*vx2PMM - vx3PMM*vx3PMM))); ////////////////////////////////////////////////////////////////////////// //NWB// @@ -439,45 +439,45 @@ __global__ void scaleCF_0817_comp_27( real* DC, k0MM = k0MMbase; kMMM = kMMMbase; //////////////////////////////////////////////////////////////////////////////// - fP00 = fP00source[k000]; - fM00 = fM00source[kM00]; - f0P0 = f0P0source[k000]; - f0M0 = f0M0source[k0M0]; - f00P = f00Psource[k000]; - f00M = f00Msource[k00M]; - fPP0 = fPP0source[k000]; - fMM0 = fMM0source[kMM0]; - fPM0 = fPM0source[k0M0]; - fMP0 = fMP0source[kM00]; - fP0P = fP0Psource[k000]; - fM0M = fM0Msource[kM0M]; - fP0M = fP0Msource[k00M]; - fM0P = fM0Psource[kM00]; - f0PP = f0PPsource[k000]; - f0MM = f0MMsource[k0MM]; - f0PM = f0PMsource[k00M]; - f0MP = f0MPsource[k0M0]; - f000 = f000source[k000]; - fMMM = fMMMsource[kMMM]; - fMMP = fMMPsource[kMM0]; - fMPP = fMPPsource[kM00]; - fMPM = fMPMsource[kM0M]; - fPPM = fPPMsource[k00M]; - fPPP = fPPPsource[k000]; - fPMP = fPMPsource[k0M0]; - fPMM = fPMMsource[k0MM]; + fP00 = fP00source[k000]; + fM00 = fM00source[kM00]; + f0P0 = f0P0source[k000]; + f0M0 = f0M0source[k0M0]; + f00P = f00Psource[k000]; + f00M = f00Msource[k00M]; + fPP0 = fPP0source[k000]; + fMM0 = fMM0source[kMM0]; + fPM0 = fPM0source[k0M0]; + fMP0 = fMP0source[kM00]; + fP0P = fP0Psource[k000]; + fM0M = fM0Msource[kM0M]; + fP0M = fP0Msource[k00M]; + fM0P = fM0Psource[kM00]; + f0PP = f0PPsource[k000]; + f0MM = f0MMsource[k0MM]; + f0PM = f0PMsource[k00M]; + f0MP = f0MPsource[k0M0]; + f000 = f000source[k000]; + fMMM = fMMMsource[kMMM]; + fMMP = fMMPsource[kMM0]; + fMPP = fMPPsource[kM00]; + fMPM = fMPMsource[kM0M]; + fPPM = fPPMsource[k00M]; + fPPP = fPPPsource[k000]; + fPMP = fPMPsource[k0M0]; + fPMM = fPMMsource[k0MM]; drhoMPM = fP00+fM00+f0P0+f0M0+f00P+f00M+fPP0+fMM0+fPM0+fMP0+fP0P+fM0M+fP0M+fM0P+f0PP+f0MM+f0PM+f0MP+f000+fPPP+fMMP+fPMP+fMPP+fPPM+fMMM+fPMM+fMPM; vx1MPM = (((fPPP-fMMM)+(fPMP-fMPM)+(fPPM-fMMP)+(fPMM-fMPP)) + (((fPP0-fMM0)+(fP0P-fM0M))+((fPM0-fMP0)+(fP0M-fM0P))) + (fP00-fM00))/(c1o1 + drhoMPM); - vx2MPM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoMPM); - vx3MPM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoMPM); + vx2MPM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoMPM); + vx3MPM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoMPM); - kxyFromfcNEQMPM = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoMPM) - ((vx1MPM*vx2MPM))); - kyzFromfcNEQMPM = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoMPM) - ((vx2MPM*vx3MPM))); - kxzFromfcNEQMPM = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoMPM) - ((vx1MPM*vx3MPM))); - kxxMyyFromfcNEQMPM = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoMPM) - ((vx1MPM*vx1MPM - vx2MPM*vx2MPM))); - kxxMzzFromfcNEQMPM = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoMPM) - ((vx1MPM*vx1MPM - vx3MPM*vx3MPM))); - kyyMzzFromfcNEQMPM = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoMPM) - ((vx2MPM*vx2MPM - vx3MPM*vx3MPM))); + kxyFromfcNEQMPM = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoMPM) - ((vx1MPM*vx2MPM))); + kyzFromfcNEQMPM = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoMPM) - ((vx2MPM*vx3MPM))); + kxzFromfcNEQMPM = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoMPM) - ((vx1MPM*vx3MPM))); + kxxMyyFromfcNEQMPM = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoMPM) - ((vx1MPM*vx1MPM - vx2MPM*vx2MPM))); + kxxMzzFromfcNEQMPM = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoMPM) - ((vx1MPM*vx1MPM - vx3MPM*vx3MPM))); + kyyMzzFromfcNEQMPM = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoMPM) - ((vx2MPM*vx2MPM - vx3MPM*vx3MPM))); ////////////////////////////////////////////////////////////////////////// //NWT// @@ -492,45 +492,45 @@ __global__ void scaleCF_0817_comp_27( real* DC, k0MM = neighborCZ[k0MM]; kMMM = neighborCZ[kMMM]; //////////////////////////////////////////////////////////////////////////////// - fP00 = fP00source[k000]; - fM00 = fM00source[kM00]; - f0P0 = f0P0source[k000]; - f0M0 = f0M0source[k0M0]; - f00P = f00Psource[k000]; - f00M = f00Msource[k00M]; - fPP0 = fPP0source[k000]; - fMM0 = fMM0source[kMM0]; - fPM0 = fPM0source[k0M0]; - fMP0 = fMP0source[kM00]; - fP0P = fP0Psource[k000]; - fM0M = fM0Msource[kM0M]; - fP0M = fP0Msource[k00M]; - fM0P = fM0Psource[kM00]; - f0PP = f0PPsource[k000]; - f0MM = f0MMsource[k0MM]; - f0PM = f0PMsource[k00M]; - f0MP = f0MPsource[k0M0]; - f000 = f000source[k000]; - fMMM = fMMMsource[kMMM]; - fMMP = fMMPsource[kMM0]; - fMPP = fMPPsource[kM00]; - fMPM = fMPMsource[kM0M]; - fPPM = fPPMsource[k00M]; - fPPP = fPPPsource[k000]; - fPMP = fPMPsource[k0M0]; - fPMM = fPMMsource[k0MM]; + fP00 = fP00source[k000]; + fM00 = fM00source[kM00]; + f0P0 = f0P0source[k000]; + f0M0 = f0M0source[k0M0]; + f00P = f00Psource[k000]; + f00M = f00Msource[k00M]; + fPP0 = fPP0source[k000]; + fMM0 = fMM0source[kMM0]; + fPM0 = fPM0source[k0M0]; + fMP0 = fMP0source[kM00]; + fP0P = fP0Psource[k000]; + fM0M = fM0Msource[kM0M]; + fP0M = fP0Msource[k00M]; + fM0P = fM0Psource[kM00]; + f0PP = f0PPsource[k000]; + f0MM = f0MMsource[k0MM]; + f0PM = f0PMsource[k00M]; + f0MP = f0MPsource[k0M0]; + f000 = f000source[k000]; + fMMM = fMMMsource[kMMM]; + fMMP = fMMPsource[kMM0]; + fMPP = fMPPsource[kM00]; + fMPM = fMPMsource[kM0M]; + fPPM = fPPMsource[k00M]; + fPPP = fPPPsource[k000]; + fPMP = fPMPsource[k0M0]; + fPMM = fPMMsource[k0MM]; drhoMPP = fP00+fM00+f0P0+f0M0+f00P+f00M+fPP0+fMM0+fPM0+fMP0+fP0P+fM0M+fP0M+fM0P+f0PP+f0MM+f0PM+f0MP+f000+fPPP+fMMP+fPMP+fMPP+fPPM+fMMM+fPMM+fMPM; vx1MPP = (((fPPP-fMMM)+(fPMP-fMPM)+(fPPM-fMMP)+(fPMM-fMPP)) + (((fPP0-fMM0)+(fP0P-fM0M))+((fPM0-fMP0)+(fP0M-fM0P))) + (fP00-fM00))/(c1o1 + drhoMPP); - vx2MPP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoMPP); - vx3MPP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoMPP); + vx2MPP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoMPP); + vx3MPP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoMPP); - kxyFromfcNEQMPP = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoMPP) - ((vx1MPP*vx2MPP))); - kyzFromfcNEQMPP = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoMPP) - ((vx2MPP*vx3MPP))); - kxzFromfcNEQMPP = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoMPP) - ((vx1MPP*vx3MPP))); - kxxMyyFromfcNEQMPP = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoMPP) - ((vx1MPP*vx1MPP - vx2MPP*vx2MPP))); - kxxMzzFromfcNEQMPP = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoMPP) - ((vx1MPP*vx1MPP - vx3MPP*vx3MPP))); - kyyMzzFromfcNEQMPP = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoMPP) - ((vx2MPP*vx2MPP - vx3MPP*vx3MPP))); + kxyFromfcNEQMPP = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoMPP) - ((vx1MPP*vx2MPP))); + kyzFromfcNEQMPP = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoMPP) - ((vx2MPP*vx3MPP))); + kxzFromfcNEQMPP = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoMPP) - ((vx1MPP*vx3MPP))); + kxxMyyFromfcNEQMPP = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoMPP) - ((vx1MPP*vx1MPP - vx2MPP*vx2MPP))); + kxxMzzFromfcNEQMPP = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoMPP) - ((vx1MPP*vx1MPP - vx3MPP*vx3MPP))); + kyyMzzFromfcNEQMPP = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoMPP) - ((vx2MPP*vx2MPP - vx3MPP*vx3MPP))); ////////////////////////////////////////////////////////////////////////// //NET// @@ -545,45 +545,45 @@ __global__ void scaleCF_0817_comp_27( real* DC, k0MM = kMMM; kMMM = neighborCX[kMMM]; //////////////////////////////////////////////////////////////////////////////// - fP00 = fP00source[k000]; - fM00 = fM00source[kM00]; - f0P0 = f0P0source[k000]; - f0M0 = f0M0source[k0M0]; - f00P = f00Psource[k000]; - f00M = f00Msource[k00M]; - fPP0 = fPP0source[k000]; - fMM0 = fMM0source[kMM0]; - fPM0 = fPM0source[k0M0]; - fMP0 = fMP0source[kM00]; - fP0P = fP0Psource[k000]; - fM0M = fM0Msource[kM0M]; - fP0M = fP0Msource[k00M]; - fM0P = fM0Psource[kM00]; - f0PP = f0PPsource[k000]; - f0MM = f0MMsource[k0MM]; - f0PM = f0PMsource[k00M]; - f0MP = f0MPsource[k0M0]; - f000 = f000source[k000]; - fMMM = fMMMsource[kMMM]; - fMMP = fMMPsource[kMM0]; - fMPP = fMPPsource[kM00]; - fMPM = fMPMsource[kM0M]; - fPPM = fPPMsource[k00M]; - fPPP = fPPPsource[k000]; - fPMP = fPMPsource[k0M0]; - fPMM = fPMMsource[k0MM]; + fP00 = fP00source[k000]; + fM00 = fM00source[kM00]; + f0P0 = f0P0source[k000]; + f0M0 = f0M0source[k0M0]; + f00P = f00Psource[k000]; + f00M = f00Msource[k00M]; + fPP0 = fPP0source[k000]; + fMM0 = fMM0source[kMM0]; + fPM0 = fPM0source[k0M0]; + fMP0 = fMP0source[kM00]; + fP0P = fP0Psource[k000]; + fM0M = fM0Msource[kM0M]; + fP0M = fP0Msource[k00M]; + fM0P = fM0Psource[kM00]; + f0PP = f0PPsource[k000]; + f0MM = f0MMsource[k0MM]; + f0PM = f0PMsource[k00M]; + f0MP = f0MPsource[k0M0]; + f000 = f000source[k000]; + fMMM = fMMMsource[kMMM]; + fMMP = fMMPsource[kMM0]; + fMPP = fMPPsource[kM00]; + fMPM = fMPMsource[kM0M]; + fPPM = fPPMsource[k00M]; + fPPP = fPPPsource[k000]; + fPMP = fPMPsource[k0M0]; + fPMM = fPMMsource[k0MM]; drhoPPP = fP00+fM00+f0P0+f0M0+f00P+f00M+fPP0+fMM0+fPM0+fMP0+fP0P+fM0M+fP0M+fM0P+f0PP+f0MM+f0PM+f0MP+f000+fPPP+fMMP+fPMP+fMPP+fPPM+fMMM+fPMM+fMPM; vx1PPP = (((fPPP-fMMM)+(fPMP-fMPM)+(fPPM-fMMP)+(fPMM-fMPP)) + (((fPP0-fMM0)+(fP0P-fM0M))+((fPM0-fMP0)+(fP0M-fM0P))) + (fP00-fM00))/(c1o1 + drhoPPP); - vx2PPP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoPPP); - vx3PPP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoPPP); + vx2PPP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoPPP); + vx3PPP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoPPP); - kxyFromfcNEQPPP = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoPPP) - ((vx1PPP*vx2PPP))); - kyzFromfcNEQPPP = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoPPP) - ((vx2PPP*vx3PPP))); - kxzFromfcNEQPPP = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoPPP) - ((vx1PPP*vx3PPP))); - kxxMyyFromfcNEQPPP = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoPPP) - ((vx1PPP*vx1PPP - vx2PPP*vx2PPP))); - kxxMzzFromfcNEQPPP = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoPPP) - ((vx1PPP*vx1PPP - vx3PPP*vx3PPP))); - kyyMzzFromfcNEQPPP = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoPPP) - ((vx2PPP*vx2PPP - vx3PPP*vx3PPP))); + kxyFromfcNEQPPP = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoPPP) - ((vx1PPP*vx2PPP))); + kyzFromfcNEQPPP = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoPPP) - ((vx2PPP*vx3PPP))); + kxzFromfcNEQPPP = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoPPP) - ((vx1PPP*vx3PPP))); + kxxMyyFromfcNEQPPP = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoPPP) - ((vx1PPP*vx1PPP - vx2PPP*vx2PPP))); + kxxMzzFromfcNEQPPP = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoPPP) - ((vx1PPP*vx1PPP - vx3PPP*vx3PPP))); + kyyMzzFromfcNEQPPP = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoPPP) - ((vx2PPP*vx2PPP - vx3PPP*vx3PPP))); ////////////////////////////////////////////////////////////////////////// //NEB// @@ -598,142 +598,142 @@ __global__ void scaleCF_0817_comp_27( real* DC, k0M0 = kMM0base; kMM0 = neighborCX[kMM0base]; //////////////////////////////////////////////////////////////////////////////// - fP00 = fP00source[k000]; - fM00 = fM00source[kM00]; - f0P0 = f0P0source[k000]; - f0M0 = f0M0source[k0M0]; - f00P = f00Psource[k000]; - f00M = f00Msource[k00M]; - fPP0 = fPP0source[k000]; - fMM0 = fMM0source[kMM0]; - fPM0 = fPM0source[k0M0]; - fMP0 = fMP0source[kM00]; - fP0P = fP0Psource[k000]; - fM0M = fM0Msource[kM0M]; - fP0M = fP0Msource[k00M]; - fM0P = fM0Psource[kM00]; - f0PP = f0PPsource[k000]; - f0MM = f0MMsource[k0MM]; - f0PM = f0PMsource[k00M]; - f0MP = f0MPsource[k0M0]; - f000 = f000source[k000]; - fMMM = fMMMsource[kMMM]; - fMMP = fMMPsource[kMM0]; - fMPP = fMPPsource[kM00]; - fMPM = fMPMsource[kM0M]; - fPPM = fPPMsource[k00M]; - fPPP = fPPPsource[k000]; - fPMP = fPMPsource[k0M0]; - fPMM = fPMMsource[k0MM]; + fP00 = fP00source[k000]; + fM00 = fM00source[kM00]; + f0P0 = f0P0source[k000]; + f0M0 = f0M0source[k0M0]; + f00P = f00Psource[k000]; + f00M = f00Msource[k00M]; + fPP0 = fPP0source[k000]; + fMM0 = fMM0source[kMM0]; + fPM0 = fPM0source[k0M0]; + fMP0 = fMP0source[kM00]; + fP0P = fP0Psource[k000]; + fM0M = fM0Msource[kM0M]; + fP0M = fP0Msource[k00M]; + fM0P = fM0Psource[kM00]; + f0PP = f0PPsource[k000]; + f0MM = f0MMsource[k0MM]; + f0PM = f0PMsource[k00M]; + f0MP = f0MPsource[k0M0]; + f000 = f000source[k000]; + fMMM = fMMMsource[kMMM]; + fMMP = fMMPsource[kMM0]; + fMPP = fMPPsource[kM00]; + fMPM = fMPMsource[kM0M]; + fPPM = fPPMsource[k00M]; + fPPP = fPPPsource[k000]; + fPMP = fPMPsource[k0M0]; + fPMM = fPMMsource[k0MM]; drhoPPM = fP00+fM00+f0P0+f0M0+f00P+f00M+fPP0+fMM0+fPM0+fMP0+fP0P+fM0M+fP0M+fM0P+f0PP+f0MM+f0PM+f0MP+f000+fPPP+fMMP+fPMP+fMPP+fPPM+fMMM+fPMM+fMPM; vx1PPM = (((fPPP-fMMM)+(fPMP-fMPM)+(fPPM-fMMP)+(fPMM-fMPP)) + (((fPP0-fMM0)+(fP0P-fM0M))+((fPM0-fMP0)+(fP0M-fM0P))) + (fP00-fM00))/(c1o1 + drhoPPM); - vx2PPM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoPPM); - vx3PPM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoPPM); + vx2PPM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoPPM); + vx3PPM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoPPM); - kxyFromfcNEQPPM = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoPPM) - ((vx1PPM*vx2PPM))); - kyzFromfcNEQPPM = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoPPM) - ((vx2PPM*vx3PPM))); - kxzFromfcNEQPPM = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoPPM) - ((vx1PPM*vx3PPM))); - kxxMyyFromfcNEQPPM = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoPPM) - ((vx1PPM*vx1PPM - vx2PPM*vx2PPM))); - kxxMzzFromfcNEQPPM = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoPPM) - ((vx1PPM*vx1PPM - vx3PPM*vx3PPM))); - kyyMzzFromfcNEQPPM = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoPPM) - ((vx2PPM*vx2PPM - vx3PPM*vx3PPM))); + kxyFromfcNEQPPM = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoPPM) - ((vx1PPM*vx2PPM))); + kyzFromfcNEQPPM = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoPPM) - ((vx2PPM*vx3PPM))); + kxzFromfcNEQPPM = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoPPM) - ((vx1PPM*vx3PPM))); + kxxMyyFromfcNEQPPM = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoPPM) - ((vx1PPM*vx1PPM - vx2PPM*vx2PPM))); + kxxMzzFromfcNEQPPM = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoPPM) - ((vx1PPM*vx1PPM - vx3PPM*vx3PPM))); + kyyMzzFromfcNEQPPM = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoPPM) - ((vx2PPM*vx2PPM - vx3PPM*vx3PPM))); ////////////////////////////////////////////////////////////////////////// //3 ////////////////////////////////////////////////////////////////////////// - a0 = c1o8*(((vx1PPM + vx1PPP) + (vx1MPM + vx1MPP)) + ((vx1PMM + vx1PMP) + (vx1MMM + vx1MMP))); - ax = c1o4*(((vx1PPM - vx1MMP) + (vx1PPP - vx1MMM)) + ((vx1PMP - vx1MPM) + (vx1PMM - vx1MPP))); - ay = c1o4*(((vx1PPM - vx1MMP) + (vx1PPP - vx1MMM)) + ((vx1MPM - vx1PMP) + (vx1MPP - vx1PMM))); - az = c1o4*(((vx1MMP - vx1PPM) + (vx1PPP - vx1MMM)) + ((vx1PMP - vx1MPM) + (vx1MPP - vx1PMM))); - axy = c1o2*(((vx1PPM - vx1PMP) + (vx1MMM - vx1MPP)) + ((vx1MMP - vx1MPM) + (vx1PPP - vx1PMM))); - axz = c1o2*(((vx1PMP - vx1PPM) + (vx1MMM - vx1MPP)) + ((vx1MPM - vx1MMP) + (vx1PPP - vx1PMM))); - ayz = c1o2*(((vx1PPP - vx1MPM) + (vx1PMM - vx1MMP)) + ((vx1MPP - vx1PPM) + (vx1MMM - vx1PMP))); - axyz= ((vx1MMP - vx1PPM) + (vx1PPP - vx1MMM)) + ((vx1MPM - vx1PMP) + (vx1PMM - vx1MPP)) ; - b0 = c1o8*(((vx2PPM + vx2PPP) + (vx2MPM + vx2MPP)) + ((vx2PMM + vx2PMP) + (vx2MMM + vx2MMP))); - bx = c1o4*(((vx2PPM - vx2MMP) + (vx2PPP - vx2MMM)) + ((vx2PMP - vx2MPM) + (vx2PMM - vx2MPP))); - by = c1o4*(((vx2PPM - vx2MMP) + (vx2PPP - vx2MMM)) + ((vx2MPM - vx2PMP) + (vx2MPP - vx2PMM))); - bz = c1o4*(((vx2MMP - vx2PPM) + (vx2PPP - vx2MMM)) + ((vx2PMP - vx2MPM) + (vx2MPP - vx2PMM))); - bxy = c1o2*(((vx2PPM - vx2MPP) + (vx2MMM - vx2PMP)) + ((vx2MMP - vx2PMM) + (vx2PPP - vx2MPM))); - bxz = c1o2*(((vx2MMM - vx2PPM) + (vx2PMP - vx2MPP)) + ((vx2MPM - vx2PMM) + (vx2PPP - vx2MMP))); - byz = c1o2*(((vx2MPP - vx2PPM) + (vx2MMM - vx2PMP)) + ((vx2PMM - vx2MMP) + (vx2PPP - vx2MPM))); - bxyz= ((vx2MMP - vx2PPM) + (vx2PPP - vx2MMM)) + ((vx2MPM - vx2PMP) + (vx2PMM - vx2MPP)) ; - c0 = c1o8*(((vx3PPM + vx3PPP) + (vx3MPM + vx3MPP)) + ((vx3PMM + vx3PMP) + (vx3MMM + vx3MMP))); - cx = c1o4*(((vx3PPM - vx3MMP) + (vx3PPP - vx3MMM)) + ((vx3PMP - vx3MPM) + (vx3PMM - vx3MPP))); - cy = c1o4*(((vx3PPM - vx3MMP) + (vx3PPP - vx3MMM)) + ((vx3MPM - vx3PMP) + (vx3MPP - vx3PMM))); - cz = c1o4*(((vx3MMP - vx3PPM) + (vx3PPP - vx3MMM)) + ((vx3PMP - vx3MPM) + (vx3MPP - vx3PMM))); - cxy = c1o2*(((vx3PPM - vx3PMP) + (vx3MMM - vx3MPP)) + ((vx3MMP - vx3MPM) + (vx3PPP - vx3PMM))); - cxz = c1o2*(((vx3MMM - vx3PPM) + (vx3PMP - vx3MPP)) + ((vx3MPM - vx3PMM) + (vx3PPP - vx3MMP))); - cyz = c1o2*(((vx3MMM - vx3PPM) + (vx3MPP - vx3PMP)) + ((vx3PMM - vx3MPM) + (vx3PPP - vx3MMP))); - cxyz= ((vx3MMP - vx3PPM) + (vx3PPP - vx3MMM)) + ((vx3MPM - vx3PMP) + (vx3PMM - vx3MPP)) ; - - //bxx = zero; - //cxx = zero; - //ayy = zero; - //cyy = zero; - //azz = zero; - //bzz = zero; - //axx = zero; - //byy = zero; - //czz = zero; - - bxx = c1o8*(((kxyFromfcNEQPPP - kxyFromfcNEQMMM) + (kxyFromfcNEQPMM - kxyFromfcNEQMPP)) + ((kxyFromfcNEQPMP - kxyFromfcNEQMPM) + (kxyFromfcNEQPPM - kxyFromfcNEQMMP))) - c1o2*axy; - cxx = c1o8*(((kxzFromfcNEQPPP - kxzFromfcNEQMMM) + (kxzFromfcNEQPMM - kxzFromfcNEQMPP)) + ((kxzFromfcNEQPMP - kxzFromfcNEQMPM) + (kxzFromfcNEQPPM - kxzFromfcNEQMMP))) - c1o2*axz; - - ayy = c1o8*(((kxyFromfcNEQPPP - kxyFromfcNEQMMM) + (kxyFromfcNEQPPM - kxyFromfcNEQMMP)) - ((kxyFromfcNEQPMM - kxyFromfcNEQMPP) + (kxyFromfcNEQPMP - kxyFromfcNEQMPM))) - c1o2*bxy; - cyy = c1o8*(((kyzFromfcNEQPPP - kyzFromfcNEQMMM) + (kyzFromfcNEQPPM - kyzFromfcNEQMMP)) - ((kyzFromfcNEQPMM - kyzFromfcNEQMPP) + (kyzFromfcNEQPMP - kyzFromfcNEQMPM))) - c1o2*byz; - - azz = c1o8*(((kxzFromfcNEQPPP - kxzFromfcNEQMMM) - (kxzFromfcNEQPMM - kxzFromfcNEQMPP)) + ((kxzFromfcNEQPMP - kxzFromfcNEQMPM) - (kxzFromfcNEQPPM - kxzFromfcNEQMMP))) - c1o2*cxz; - bzz = c1o8*(((kyzFromfcNEQPPP - kyzFromfcNEQMMM) - (kyzFromfcNEQPMM - kyzFromfcNEQMPP)) + ((kyzFromfcNEQPMP - kyzFromfcNEQMPM) - (kyzFromfcNEQPPM - kyzFromfcNEQMMP))) - c1o2*cyz; - - axx = (c1o16*(((kxxMyyFromfcNEQPPP - kxxMyyFromfcNEQMMM) + (kxxMyyFromfcNEQPMM - kxxMyyFromfcNEQMPP)) + ((kxxMyyFromfcNEQPMP - kxxMyyFromfcNEQMPM) + (kxxMyyFromfcNEQPPM - kxxMyyFromfcNEQMMP))) - c1o4*bxy) - + (c1o16*(((kxxMzzFromfcNEQPPP - kxxMzzFromfcNEQMMM) + (kxxMzzFromfcNEQPMM - kxxMzzFromfcNEQMPP)) + ((kxxMzzFromfcNEQPMP - kxxMzzFromfcNEQMPM) + (kxxMzzFromfcNEQPPM - kxxMzzFromfcNEQMMP))) - c1o4*cxz); - - byy = (-c1o16*(((kxxMyyFromfcNEQPPP - kxxMyyFromfcNEQMMM) - (kxxMyyFromfcNEQPMM - kxxMyyFromfcNEQMPP)) + ((kxxMyyFromfcNEQPPM - kxxMyyFromfcNEQMMP) - (kxxMyyFromfcNEQPMP - kxxMyyFromfcNEQMPM))) - c1o4*axy) - + (c1o16*(((kyyMzzFromfcNEQPPP - kyyMzzFromfcNEQMMM) - (kyyMzzFromfcNEQPMM - kyyMzzFromfcNEQMPP)) + ((kyyMzzFromfcNEQPPM - kyyMzzFromfcNEQMMP) - (kyyMzzFromfcNEQPMP - kyyMzzFromfcNEQMPM))) - c1o4*cyz); - - czz = (-c1o16*(((kxxMzzFromfcNEQPPP - kxxMzzFromfcNEQMMM) - (kxxMzzFromfcNEQPMM - kxxMzzFromfcNEQMPP)) - ((kxxMzzFromfcNEQPPM - kxxMzzFromfcNEQMMP) - (kxxMzzFromfcNEQPMP - kxxMzzFromfcNEQMPM))) - c1o4*axz) - + (c1o16*(((kyyMzzFromfcNEQPPP - kyyMzzFromfcNEQMMM) - (kyyMzzFromfcNEQPMM - kyyMzzFromfcNEQMPP)) - ((kyyMzzFromfcNEQPPM - kyyMzzFromfcNEQMMP) - (kyyMzzFromfcNEQPMP - kyyMzzFromfcNEQMPM))) - c1o4*byz); - - a0 -= c1o4*(axx + ayy + azz); - b0 -= c1o4*(bxx + byy + bzz); - c0 -= c1o4*(cxx + cyy + czz); + a0 = c1o8*(((vx1PPM + vx1PPP) + (vx1MPM + vx1MPP)) + ((vx1PMM + vx1PMP) + (vx1MMM + vx1MMP))); + ax = c1o4*(((vx1PPM - vx1MMP) + (vx1PPP - vx1MMM)) + ((vx1PMP - vx1MPM) + (vx1PMM - vx1MPP))); + ay = c1o4*(((vx1PPM - vx1MMP) + (vx1PPP - vx1MMM)) + ((vx1MPM - vx1PMP) + (vx1MPP - vx1PMM))); + az = c1o4*(((vx1MMP - vx1PPM) + (vx1PPP - vx1MMM)) + ((vx1PMP - vx1MPM) + (vx1MPP - vx1PMM))); + axy = c1o2*(((vx1PPM - vx1PMP) + (vx1MMM - vx1MPP)) + ((vx1MMP - vx1MPM) + (vx1PPP - vx1PMM))); + axz = c1o2*(((vx1PMP - vx1PPM) + (vx1MMM - vx1MPP)) + ((vx1MPM - vx1MMP) + (vx1PPP - vx1PMM))); + ayz = c1o2*(((vx1PPP - vx1MPM) + (vx1PMM - vx1MMP)) + ((vx1MPP - vx1PPM) + (vx1MMM - vx1PMP))); + axyz= ((vx1MMP - vx1PPM) + (vx1PPP - vx1MMM)) + ((vx1MPM - vx1PMP) + (vx1PMM - vx1MPP)) ; + b0 = c1o8*(((vx2PPM + vx2PPP) + (vx2MPM + vx2MPP)) + ((vx2PMM + vx2PMP) + (vx2MMM + vx2MMP))); + bx = c1o4*(((vx2PPM - vx2MMP) + (vx2PPP - vx2MMM)) + ((vx2PMP - vx2MPM) + (vx2PMM - vx2MPP))); + by = c1o4*(((vx2PPM - vx2MMP) + (vx2PPP - vx2MMM)) + ((vx2MPM - vx2PMP) + (vx2MPP - vx2PMM))); + bz = c1o4*(((vx2MMP - vx2PPM) + (vx2PPP - vx2MMM)) + ((vx2PMP - vx2MPM) + (vx2MPP - vx2PMM))); + bxy = c1o2*(((vx2PPM - vx2MPP) + (vx2MMM - vx2PMP)) + ((vx2MMP - vx2PMM) + (vx2PPP - vx2MPM))); + bxz = c1o2*(((vx2MMM - vx2PPM) + (vx2PMP - vx2MPP)) + ((vx2MPM - vx2PMM) + (vx2PPP - vx2MMP))); + byz = c1o2*(((vx2MPP - vx2PPM) + (vx2MMM - vx2PMP)) + ((vx2PMM - vx2MMP) + (vx2PPP - vx2MPM))); + bxyz= ((vx2MMP - vx2PPM) + (vx2PPP - vx2MMM)) + ((vx2MPM - vx2PMP) + (vx2PMM - vx2MPP)) ; + c0 = c1o8*(((vx3PPM + vx3PPP) + (vx3MPM + vx3MPP)) + ((vx3PMM + vx3PMP) + (vx3MMM + vx3MMP))); + cx = c1o4*(((vx3PPM - vx3MMP) + (vx3PPP - vx3MMM)) + ((vx3PMP - vx3MPM) + (vx3PMM - vx3MPP))); + cy = c1o4*(((vx3PPM - vx3MMP) + (vx3PPP - vx3MMM)) + ((vx3MPM - vx3PMP) + (vx3MPP - vx3PMM))); + cz = c1o4*(((vx3MMP - vx3PPM) + (vx3PPP - vx3MMM)) + ((vx3PMP - vx3MPM) + (vx3MPP - vx3PMM))); + cxy = c1o2*(((vx3PPM - vx3PMP) + (vx3MMM - vx3MPP)) + ((vx3MMP - vx3MPM) + (vx3PPP - vx3PMM))); + cxz = c1o2*(((vx3MMM - vx3PPM) + (vx3PMP - vx3MPP)) + ((vx3MPM - vx3PMM) + (vx3PPP - vx3MMP))); + cyz = c1o2*(((vx3MMM - vx3PPM) + (vx3MPP - vx3PMP)) + ((vx3PMM - vx3MPM) + (vx3PPP - vx3MMP))); + cxyz= ((vx3MMP - vx3PPM) + (vx3PPP - vx3MMM)) + ((vx3MPM - vx3PMP) + (vx3PMM - vx3MPP)) ; + + //bxx = zero; + //cxx = zero; + //ayy = zero; + //cyy = zero; + //azz = zero; + //bzz = zero; + //axx = zero; + //byy = zero; + //czz = zero; + + bxx = c1o8*(((kxyFromfcNEQPPP - kxyFromfcNEQMMM) + (kxyFromfcNEQPMM - kxyFromfcNEQMPP)) + ((kxyFromfcNEQPMP - kxyFromfcNEQMPM) + (kxyFromfcNEQPPM - kxyFromfcNEQMMP))) - c1o2*axy; + cxx = c1o8*(((kxzFromfcNEQPPP - kxzFromfcNEQMMM) + (kxzFromfcNEQPMM - kxzFromfcNEQMPP)) + ((kxzFromfcNEQPMP - kxzFromfcNEQMPM) + (kxzFromfcNEQPPM - kxzFromfcNEQMMP))) - c1o2*axz; + + ayy = c1o8*(((kxyFromfcNEQPPP - kxyFromfcNEQMMM) + (kxyFromfcNEQPPM - kxyFromfcNEQMMP)) - ((kxyFromfcNEQPMM - kxyFromfcNEQMPP) + (kxyFromfcNEQPMP - kxyFromfcNEQMPM))) - c1o2*bxy; + cyy = c1o8*(((kyzFromfcNEQPPP - kyzFromfcNEQMMM) + (kyzFromfcNEQPPM - kyzFromfcNEQMMP)) - ((kyzFromfcNEQPMM - kyzFromfcNEQMPP) + (kyzFromfcNEQPMP - kyzFromfcNEQMPM))) - c1o2*byz; + + azz = c1o8*(((kxzFromfcNEQPPP - kxzFromfcNEQMMM) - (kxzFromfcNEQPMM - kxzFromfcNEQMPP)) + ((kxzFromfcNEQPMP - kxzFromfcNEQMPM) - (kxzFromfcNEQPPM - kxzFromfcNEQMMP))) - c1o2*cxz; + bzz = c1o8*(((kyzFromfcNEQPPP - kyzFromfcNEQMMM) - (kyzFromfcNEQPMM - kyzFromfcNEQMPP)) + ((kyzFromfcNEQPMP - kyzFromfcNEQMPM) - (kyzFromfcNEQPPM - kyzFromfcNEQMMP))) - c1o2*cyz; + + axx = (c1o16*(((kxxMyyFromfcNEQPPP - kxxMyyFromfcNEQMMM) + (kxxMyyFromfcNEQPMM - kxxMyyFromfcNEQMPP)) + ((kxxMyyFromfcNEQPMP - kxxMyyFromfcNEQMPM) + (kxxMyyFromfcNEQPPM - kxxMyyFromfcNEQMMP))) - c1o4*bxy) + + (c1o16*(((kxxMzzFromfcNEQPPP - kxxMzzFromfcNEQMMM) + (kxxMzzFromfcNEQPMM - kxxMzzFromfcNEQMPP)) + ((kxxMzzFromfcNEQPMP - kxxMzzFromfcNEQMPM) + (kxxMzzFromfcNEQPPM - kxxMzzFromfcNEQMMP))) - c1o4*cxz); + + byy = (-c1o16*(((kxxMyyFromfcNEQPPP - kxxMyyFromfcNEQMMM) - (kxxMyyFromfcNEQPMM - kxxMyyFromfcNEQMPP)) + ((kxxMyyFromfcNEQPPM - kxxMyyFromfcNEQMMP) - (kxxMyyFromfcNEQPMP - kxxMyyFromfcNEQMPM))) - c1o4*axy) + + (c1o16*(((kyyMzzFromfcNEQPPP - kyyMzzFromfcNEQMMM) - (kyyMzzFromfcNEQPMM - kyyMzzFromfcNEQMPP)) + ((kyyMzzFromfcNEQPPM - kyyMzzFromfcNEQMMP) - (kyyMzzFromfcNEQPMP - kyyMzzFromfcNEQMPM))) - c1o4*cyz); + + czz = (-c1o16*(((kxxMzzFromfcNEQPPP - kxxMzzFromfcNEQMMM) - (kxxMzzFromfcNEQPMM - kxxMzzFromfcNEQMPP)) - ((kxxMzzFromfcNEQPPM - kxxMzzFromfcNEQMMP) - (kxxMzzFromfcNEQPMP - kxxMzzFromfcNEQMPM))) - c1o4*axz) + + (c1o16*(((kyyMzzFromfcNEQPPP - kyyMzzFromfcNEQMMM) - (kyyMzzFromfcNEQPMM - kyyMzzFromfcNEQMPP)) - ((kyyMzzFromfcNEQPPM - kyyMzzFromfcNEQMMP) - (kyyMzzFromfcNEQPMP - kyyMzzFromfcNEQMPM))) - c1o4*byz); + + a0 -= c1o4*(axx + ayy + azz); + b0 -= c1o4*(bxx + byy + bzz); + c0 -= c1o4*(cxx + cyy + czz); + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + real kxyAverage = c0o1; + real kyzAverage = c0o1; + real kxzAverage = c0o1; + real kxxMyyAverage = c0o1; + real kxxMzzAverage = c0o1; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //Press + //d0 = ( pressPPM + pressPPP + pressMPM + pressMPP + pressPMM + pressPMP + pressMMM + pressMMP) * c1o8; + //dx = ( pressPPM + pressPPP - pressMPM - pressMPP + pressPMM + pressPMP - pressMMM - pressMMP) * c1o4; + //dy = ( pressPPM + pressPPP + pressMPM + pressMPP - pressPMM - pressPMP - pressMMM - pressMMP) * c1o4; + //dz = (-pressPPM + pressPPP - pressMPM + pressMPP - pressPMM + pressPMP - pressMMM + pressMMP) * c1o4; + //dxy = ( pressPPM + pressPPP - pressMPM - pressMPP - pressPMM - pressPMP + pressMMM + pressMMP) * c1o2; + //dxz = (-pressPPM + pressPPP + pressMPM - pressMPP - pressPMM + pressPMP + pressMMM - pressMMP) * c1o2; + //dyz = (-pressPPM + pressPPP - pressMPM + pressMPP + pressPMM - pressPMP + pressMMM - pressMMP) * c1o2; + //dxyz = -pressPPM + pressPPP + pressMPM - pressMPP + pressPMM - pressPMP - pressMMM + pressMMP; ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real kxyAverage = c0o1; - real kyzAverage = c0o1; - real kxzAverage = c0o1; - real kxxMyyAverage = c0o1; - real kxxMzzAverage = c0o1; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //Press - //d0 = ( pressPPM + pressPPP + pressMPM + pressMPP + pressPMM + pressPMP + pressMMM + pressMMP) * c1o8; - //dx = ( pressPPM + pressPPP - pressMPM - pressMPP + pressPMM + pressPMP - pressMMM - pressMMP) * c1o4; - //dy = ( pressPPM + pressPPP + pressMPM + pressMPP - pressPMM - pressPMP - pressMMM - pressMMP) * c1o4; - //dz = (-pressPPM + pressPPP - pressMPM + pressMPP - pressPMM + pressPMP - pressMMM + pressMMP) * c1o4; - //dxy = ( pressPPM + pressPPP - pressMPM - pressMPP - pressPMM - pressPMP + pressMMM + pressMMP) * c1o2; - //dxz = (-pressPPM + pressPPP + pressMPM - pressMPP - pressPMM + pressPMP + pressMMM - pressMMP) * c1o2; - //dyz = (-pressPPM + pressPPP - pressMPM + pressMPP + pressPMM - pressPMP + pressMMM - pressMMP) * c1o2; - //dxyz = -pressPPM + pressPPP + pressMPM - pressMPP + pressPMM - pressPMP - pressMMM + pressMMP; - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho - d0 = ( ((drhoPPM + drhoMMP) + (drhoMPM + drhoPMP)) + ((drhoPMM + drhoMPP) + (drhoMMM + drhoPPP))) * c1o8; - dx = ( ((drhoPPM - drhoMMP) + (drhoPMM - drhoMPP)) + ((drhoPMP - drhoMPM) + (drhoPPP - drhoMMM))) * c1o4; - dy = ( ((drhoPPM - drhoMMP) + (drhoMPP - drhoPMM)) + ((drhoMPM - drhoPMP) + (drhoPPP - drhoMMM))) * c1o4; - dz = ( ((drhoMMP - drhoPPM) + (drhoPPP - drhoMMM)) + ((drhoPMP - drhoMPM) + (drhoMPP - drhoPMM))) * c1o4; - dxy = ( ((drhoPPM - drhoPMP) + (drhoPPP - drhoPMM)) + ((drhoMMP - drhoMPM) + (drhoMMM - drhoMPP))) * c1o2; - dxz = ( ((drhoMMM - drhoPPM) + (drhoPPP - drhoMMP)) + ((drhoMPM - drhoPMM) + (drhoPMP - drhoMPP))) * c1o2; - dyz = ( ((drhoMPP - drhoPPM) + (drhoPPP - drhoMPM)) + ((drhoPMM - drhoMMP) + (drhoMMM - drhoPMP))) * c1o2; - dxyz = -drhoPPM + drhoPPP + drhoMPM - drhoMPP + drhoPMM - drhoPMP - drhoMMM + drhoMMP; + //drho + d0 = ( ((drhoPPM + drhoMMP) + (drhoMPM + drhoPMP)) + ((drhoPMM + drhoMPP) + (drhoMMM + drhoPPP))) * c1o8; + dx = ( ((drhoPPM - drhoMMP) + (drhoPMM - drhoMPP)) + ((drhoPMP - drhoMPM) + (drhoPPP - drhoMMM))) * c1o4; + dy = ( ((drhoPPM - drhoMMP) + (drhoMPP - drhoPMM)) + ((drhoMPM - drhoPMP) + (drhoPPP - drhoMMM))) * c1o4; + dz = ( ((drhoMMP - drhoPPM) + (drhoPPP - drhoMMM)) + ((drhoPMP - drhoMPM) + (drhoMPP - drhoPMM))) * c1o4; + dxy = ( ((drhoPPM - drhoPMP) + (drhoPPP - drhoPMM)) + ((drhoMMP - drhoMPM) + (drhoMMM - drhoMPP))) * c1o2; + dxz = ( ((drhoMMM - drhoPPM) + (drhoPPP - drhoMMP)) + ((drhoMPM - drhoPMM) + (drhoPMP - drhoMPP))) * c1o2; + dyz = ( ((drhoMPP - drhoPPM) + (drhoPPP - drhoMPM)) + ((drhoPMM - drhoMMP) + (drhoMMM - drhoPMP))) * c1o2; + dxyz = -drhoPPM + drhoPPP + drhoMPM - drhoMPP + drhoPMM - drhoPMP - drhoMMM + drhoMMP; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // // Bernd das Brot // - // X------X - // | | x---x - // | ---+-+-> | ----> off-vector - // | | x---x - // X------X - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // X------X + // | | x---x + // | ---+-+-> | ----> off-vector + // | | x---x + // X------X + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// a0 = a0 + xoff * ax + yoff * ay + zoff * az + xoff_sq * axx + yoff_sq * ayy + zoff_sq * azz + xoff*yoff*axy + xoff*zoff*axz + yoff*zoff*ayz; ax = ax + c2o1 * xoff * axx + yoff * axy + zoff * axz; ay = ay + c2o1 * yoff * ayy + xoff * axy + zoff * ayz; @@ -746,3285 +746,3285 @@ __global__ void scaleCF_0817_comp_27( real* DC, cx = cx + c2o1 * xoff * cxx + yoff * cxy + zoff * cxz; cy = cy + c2o1 * yoff * cyy + xoff * cxy + zoff * cyz; cz = cz + c2o1 * zoff * czz + xoff * cxz + yoff * cyz; - d0 = d0 + xoff * dx + yoff * dy + zoff * dz + xoff*yoff*dxy + xoff*zoff*dxz + yoff*zoff*dyz; - dx = dx + yoff * dxy + zoff * dxz; - dy = dy + xoff * dxy + zoff * dyz; - dz = dz + xoff * dxz + yoff * dyz; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real mfcbb = c0o1; - real mfabb = c0o1; - real mfbcb = c0o1; - real mfbab = c0o1; - real mfbbc = c0o1; - real mfbba = c0o1; - real mfccb = c0o1; - real mfaab = c0o1; - real mfcab = c0o1; - real mfacb = c0o1; - real mfcbc = c0o1; - real mfaba = c0o1; - real mfcba = c0o1; - real mfabc = c0o1; - real mfbcc = c0o1; - real mfbaa = c0o1; - real mfbca = c0o1; - real mfbac = c0o1; - real mfbbb = c0o1; - real mfccc = c0o1; - real mfaac = c0o1; - real mfcac = c0o1; - real mfacc = c0o1; - real mfcca = c0o1; - real mfaaa = c0o1; - real mfcaa = c0o1; - real mfaca = c0o1; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real m0, m1, m2, oMdrho; - real mxxPyyPzz, mxxMyy, mxxMzz, mxxyPyzz, mxxyMyzz, mxxzPyyz, mxxzMyyz, mxyyPxzz, mxyyMxzz; - //real qudricLimit = c1o100;//ganz schlechte Idee -> muss global sein - //real O3 = two - o; - //real residu, residutmp; - //residutmp = zero;// /*-*/ c2o9 * (1./o - c1o2) * eps_new * eps_new; - real NeqOn = c1o1;//zero;//one; //.... one = on ..... zero = off - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position SWB -0.25f, -0.25f, -0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = -c1o4; - y = -c1o4; - z = -c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //real mxoff = -xoff; - //real myoff = -yoff; - //real mzoff = -zoff; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho = c3o64*drho_NEB+c1o64*drho_NET+c9o64*drho_NWB+c3o64*drho_NWT+c9o64*drho_SEB+c3o64*drho_SET+c27o64*drho_SWB+c9o64*drho_SWT; - //press = press_SWT * (c9o64 + c3o16 * mxoff + c3o16 * myoff - c9o16 * mzoff) + - // press_NWT * (c3o64 + c1o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + - // press_SET * (c3o64 - c3o16 * mxoff + c1o16 * myoff - c3o16 * mzoff) + - // press_NET * (c1o64 - c1o16 * mxoff - c1o16 * myoff - c1o16 * mzoff) + - // press_NEB * (c3o64 - c3o16 * mxoff - c3o16 * myoff + c1o16 * mzoff) + - // press_NWB * (c9o64 + c3o16 * mxoff - c9o16 * myoff + c3o16 * mzoff) + - // press_SEB * (c9o64 - c9o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + - // press_SWB * (c27o64 + c9o16 * mxoff + c9o16 * myoff + c9o16 * mzoff); - //drho = drho_SWT * (c9o64 + c3o16 * xoff + c3o16 * yoff - c9o16 * zoff) + - // drho_NWT * (c3o64 + c1o16 * xoff - c3o16 * yoff - c3o16 * zoff) + - // drho_SET * (c3o64 - c3o16 * xoff + c1o16 * yoff - c3o16 * zoff) + - // drho_NET * (c1o64 - c1o16 * xoff - c1o16 * yoff - c1o16 * zoff) + - // drho_NEB * (c3o64 - c3o16 * xoff - c3o16 * yoff + c1o16 * zoff) + - // drho_NWB * (c9o64 + c3o16 * xoff - c9o16 * yoff + c3o16 * zoff) + - // drho_SEB * (c9o64 - c9o16 * xoff + c3o16 * yoff + c3o16 * zoff) + - // drho_SWB * (c27o64 + c9o16 * xoff + c9o16 * yoff + c9o16 * zoff); - - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; - vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); - vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); - vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); - //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); - //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); - //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //2.f - // linear combinations - mxxPyyPzz = mfaaa - c2o3*(ax + by + c2o1*axx*x + bxy*x + axy*y + c2o1*byy*y + axz*z + byz*z + bxyz*x*z + axyz*y*z + cz - cxz*x + cyz*y + cxyz*x*y + c2o1*czz*z )*eps_new / oP* (c1o1 + press); - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); - //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mfbbb = c0o1; - - //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); - //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); - //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); - //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyPyzz = c0o1; - - //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); - //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyMyzz = c0o1; - - //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); - //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); - //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzPyyz = c0o1; - - //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); - //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzMyyz = c0o1; - - //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); - //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); - //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyPxzz = c0o1; - - //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); - //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyMxzz = c0o1; - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //index 0 - k000base = posFSWB[k]; - kM00base = neighborFX[k000base]; - k0M0base = neighborFY[k000base]; - k00Mbase = neighborFZ[k000base]; - kMM0base = neighborFY[kM00base]; - kM0Mbase = neighborFZ[kM00base]; - k0MMbase = neighborFZ[k0M0base]; - kMMMbase = neighborFZ[kMM0base]; - ////////////////////////////////////////////////////////////////////////// - //index - k000 = k000base; - kM00 = kM00base; - k0M0 = k0M0base; - k00M = k00Mbase; - kMM0 = kMM0base; - kM0M = kM0Mbase; - k0MM = k0MMbase; - kMMM = kMMMbase; - //////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - fP00dest[k000] = mfcbb; - fM00dest[kM00] = mfabb; - f0P0dest[k000] = mfbcb; - f0M0dest[k0M0] = mfbab; - f00Pdest[k000] = mfbbc; - f00Mdest[k00M] = mfbba; - fPP0dest[k000] = mfccb; - fMM0dest[kMM0] = mfaab; - fPM0dest[k0M0] = mfcab; - fMP0dest[kM00] = mfacb; - fP0Pdest[k000] = mfcbc; - fM0Mdest[kM0M] = mfaba; - fP0Mdest[k00M] = mfcba; - fM0Pdest[kM00] = mfabc; - f0PPdest[k000] = mfbcc; - f0MMdest[k0MM] = mfbaa; - f0PMdest[k00M] = mfbca; - f0MPdest[k0M0] = mfbac; - f000dest[k000] = mfbbb; - fMMMdest[kMMM] = mfaaa; - fMMPdest[kMM0] = mfaac; - fMPPdest[kM00] = mfacc; - fMPMdest[kM0M] = mfaca; - fPPMdest[k00M] = mfcca; - fPPPdest[k000] = mfccc; - fPMPdest[k0M0] = mfcac; - fPMMdest[k0MM] = mfcaa; - //////////////////////////////////////////////////////////////////////////////////// - - //reset - mfcbb = c0o1; - mfabb = c0o1; - mfbcb = c0o1; - mfbab = c0o1; - mfbbc = c0o1; - mfbba = c0o1; - mfccb = c0o1; - mfaab = c0o1; - mfcab = c0o1; - mfacb = c0o1; - mfcbc = c0o1; - mfaba = c0o1; - mfcba = c0o1; - mfabc = c0o1; - mfbcc = c0o1; - mfbaa = c0o1; - mfbca = c0o1; - mfbac = c0o1; - mfbbb = c0o1; - mfccc = c0o1; - mfaac = c0o1; - mfcac = c0o1; - mfacc = c0o1; - mfcca = c0o1; - mfaaa = c0o1; - mfcaa = c0o1; - mfaca = c0o1; - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position SWT -0.25f, -0.25f, 0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = -c1o4; - y = -c1o4; - z = c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho = c1o64*drho_NEB+c3o64*drho_NET+c3o64*drho_NWB+c9o64*drho_NWT+c3o64*drho_SEB+c9o64*drho_SET+c9o64*drho_SWB+c27o64*drho_SWT; - //press = press_SWT * (c27o64 + c9o16 * mxoff + c9o16 * myoff - c9o16 * mzoff) + - // press_NWT * (c9o64 + c3o16 * mxoff - c9o16 * myoff - c3o16 * mzoff) + - // press_SET * (c9o64 - c9o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + - // press_NET * (c3o64 - c3o16 * mxoff - c3o16 * myoff - c1o16 * mzoff) + - // press_NEB * (c1o64 - c1o16 * mxoff - c1o16 * myoff + c1o16 * mzoff) + - // press_NWB * (c3o64 + c1o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + - // press_SEB * (c3o64 - c3o16 * mxoff + c1o16 * myoff + c3o16 * mzoff) + - // press_SWB * (c9o64 + c3o16 * mxoff + c3o16 * myoff + c9o16 * mzoff); - //drho = drho_SWT * (c27o64 + c9o16 * xoff + c9o16 * yoff - c9o16 * zoff) + - // drho_NWT * (c9o64 + c3o16 * xoff - c9o16 * yoff - c3o16 * zoff) + - // drho_SET * (c9o64 - c9o16 * xoff + c3o16 * yoff - c3o16 * zoff) + - // drho_NET * (c3o64 - c3o16 * xoff - c3o16 * yoff - c1o16 * zoff) + - // drho_NEB * (c1o64 - c1o16 * xoff - c1o16 * yoff + c1o16 * zoff) + - // drho_NWB * (c3o64 + c1o16 * xoff - c3o16 * yoff + c3o16 * zoff) + - // drho_SEB * (c3o64 - c3o16 * xoff + c1o16 * yoff + c3o16 * zoff) + - // drho_SWB * (c9o64 + c3o16 * xoff + c3o16 * yoff + c9o16 * zoff); - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; - vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); - vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); - vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); - //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); - //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); - //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //2.f - // linear combinations - mxxPyyPzz = mfaaa - c2o3*(ax + by + c2o1*axx*x + bxy*x + axy*y + c2o1*byy*y + axz*z + byz*z + bxyz*x*z + axyz*y*z + cz - cxz*x + cyz*y + cxyz*x*y + c2o1*czz*z)*eps_new / oP* (c1o1 + press); - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); - //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mfbbb = c0o1; - - //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); - //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); - //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); - //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyPyzz = c0o1; - - //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); - //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyMyzz = c0o1; - - //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); - //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); - //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzPyyz = c0o1; - - //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); - //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzMyyz = c0o1; - - //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); - //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); - //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyPxzz = c0o1; - - //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); - //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyMxzz = c0o1; - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - //index - k000 = k00M; - kM00 = kM0M; - k0M0 = k0MM; - k00M = neighborFZ[k00M]; - kMM0 = kMMM; - kM0M = neighborFZ[kM0M]; - k0MM = neighborFZ[k0MM]; - kMMM = neighborFZ[kMMM]; - //////////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - fP00dest[k000] = mfcbb; - fM00dest[kM00] = mfabb; - f0P0dest[k000] = mfbcb; - f0M0dest[k0M0] = mfbab; - f00Pdest[k000] = mfbbc; - f00Mdest[k00M] = mfbba; - fPP0dest[k000] = mfccb; - fMM0dest[kMM0] = mfaab; - fPM0dest[k0M0] = mfcab; - fMP0dest[kM00] = mfacb; - fP0Pdest[k000] = mfcbc; - fM0Mdest[kM0M] = mfaba; - fP0Mdest[k00M] = mfcba; - fM0Pdest[kM00] = mfabc; - f0PPdest[k000] = mfbcc; - f0MMdest[k0MM] = mfbaa; - f0PMdest[k00M] = mfbca; - f0MPdest[k0M0] = mfbac; - f000dest[k000] = mfbbb; - fMMMdest[kMMM] = mfaaa; - fMMPdest[kMM0] = mfaac; - fMPPdest[kM00] = mfacc; - fMPMdest[kM0M] = mfaca; - fPPMdest[k00M] = mfcca; - fPPPdest[k000] = mfccc; - fPMPdest[k0M0] = mfcac; - fPMMdest[k0MM] = mfcaa; - //////////////////////////////////////////////////////////////////////////////////// - - - //reset - mfcbb = c0o1; - mfabb = c0o1; - mfbcb = c0o1; - mfbab = c0o1; - mfbbc = c0o1; - mfbba = c0o1; - mfccb = c0o1; - mfaab = c0o1; - mfcab = c0o1; - mfacb = c0o1; - mfcbc = c0o1; - mfaba = c0o1; - mfcba = c0o1; - mfabc = c0o1; - mfbcc = c0o1; - mfbaa = c0o1; - mfbca = c0o1; - mfbac = c0o1; - mfbbb = c0o1; - mfccc = c0o1; - mfaac = c0o1; - mfcac = c0o1; - mfacc = c0o1; - mfcca = c0o1; - mfaaa = c0o1; - mfcaa = c0o1; - mfaca = c0o1; - - - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position SET 0.25f, -0.25f, 0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = c1o4; - y = -c1o4; - z = c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho =c3o64*drho_NEB+c9o64*drho_NET+c1o64*drho_NWB+c3o64*drho_NWT+c9o64*drho_SEB+c27o64*drho_SET+c3o64*drho_SWB+c9o64*drho_SWT; - //press = press_SET * (c27o64 - c9o16 * mxoff + c9o16 * myoff - c9o16 * mzoff) + - // press_NET * (c9o64 - c3o16 * mxoff - c9o16 * myoff - c3o16 * mzoff) + - // press_SWT * (c9o64 + c9o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + - // press_NWT * (c3o64 + c3o16 * mxoff - c3o16 * myoff - c1o16 * mzoff) + - // press_NWB * (c1o64 + c1o16 * mxoff - c1o16 * myoff + c1o16 * mzoff) + - // press_NEB * (c3o64 - c1o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + - // press_SWB * (c3o64 + c3o16 * mxoff + c1o16 * myoff + c3o16 * mzoff) + - // press_SEB * (c9o64 - c3o16 * mxoff + c3o16 * myoff + c9o16 * mzoff); - //drho = drho_SET * (c27o64 - c9o16 * xoff + c9o16 * yoff - c9o16 * zoff) + - // drho_NET * (c9o64 - c3o16 * xoff - c9o16 * yoff - c3o16 * zoff) + - // drho_SWT * (c9o64 + c9o16 * xoff + c3o16 * yoff - c3o16 * zoff) + - // drho_NWT * (c3o64 + c3o16 * xoff - c3o16 * yoff - c1o16 * zoff) + - // drho_NWB * (c1o64 + c1o16 * xoff - c1o16 * yoff + c1o16 * zoff) + - // drho_NEB * (c3o64 - c1o16 * xoff - c3o16 * yoff + c3o16 * zoff) + - // drho_SWB * (c3o64 + c3o16 * xoff + c1o16 * yoff + c3o16 * zoff) + - // drho_SEB * (c9o64 - c3o16 * xoff + c3o16 * yoff + c9o16 * zoff); - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; - vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); - vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); - vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); - //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); - //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); - //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //2.f - // linear combinations - mxxPyyPzz = mfaaa - c2o3*(ax + by + c2o1*axx*x + bxy*x + axy*y + c2o1*byy*y + axz*z + byz*z + bxyz*x*z + axyz*y*z + cz - cxz*x + cyz*y + cxyz*x*y + c2o1*czz*z)*eps_new / oP* (c1o1 + press); - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); - //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mfbbb = c0o1; - - //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); - //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); - //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); - //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyPyzz = c0o1; - - //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); - //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyMyzz = c0o1; - - //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); - //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); - //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzPyyz = c0o1; - - //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); - //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzMyyz = c0o1; - - //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); - //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); - //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyPxzz = c0o1; - - //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); - //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyMxzz = c0o1; - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //index - k000 = kM00; - kM00 = neighborFX[kM00]; - k0M0 = kMM0; - k00M = kM0M; - kMM0 = neighborFX[kMM0]; - kM0M = neighborFX[kM0M]; - k0MM = kMMM; - kMMM = neighborFX[kMMM]; - //////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - fP00dest[k000] = mfcbb; - fM00dest[kM00] = mfabb; - f0P0dest[k000] = mfbcb; - f0M0dest[k0M0] = mfbab; - f00Pdest[k000] = mfbbc; - f00Mdest[k00M] = mfbba; - fPP0dest[k000] = mfccb; - fMM0dest[kMM0] = mfaab; - fPM0dest[k0M0] = mfcab; - fMP0dest[kM00] = mfacb; - fP0Pdest[k000] = mfcbc; - fM0Mdest[kM0M] = mfaba; - fP0Mdest[k00M] = mfcba; - fM0Pdest[kM00] = mfabc; - f0PPdest[k000] = mfbcc; - f0MMdest[k0MM] = mfbaa; - f0PMdest[k00M] = mfbca; - f0MPdest[k0M0] = mfbac; - f000dest[k000] = mfbbb; - fMMMdest[kMMM] = mfaaa; - fMMPdest[kMM0] = mfaac; - fMPPdest[kM00] = mfacc; - fMPMdest[kM0M] = mfaca; - fPPMdest[k00M] = mfcca; - fPPPdest[k000] = mfccc; - fPMPdest[k0M0] = mfcac; - fPMMdest[k0MM] = mfcaa; - //////////////////////////////////////////////////////////////////////////////////// - - //reset - mfcbb = c0o1; - mfabb = c0o1; - mfbcb = c0o1; - mfbab = c0o1; - mfbbc = c0o1; - mfbba = c0o1; - mfccb = c0o1; - mfaab = c0o1; - mfcab = c0o1; - mfacb = c0o1; - mfcbc = c0o1; - mfaba = c0o1; - mfcba = c0o1; - mfabc = c0o1; - mfbcc = c0o1; - mfbaa = c0o1; - mfbca = c0o1; - mfbac = c0o1; - mfbbb = c0o1; - mfccc = c0o1; - mfaac = c0o1; - mfcac = c0o1; - mfacc = c0o1; - mfcca = c0o1; - mfaaa = c0o1; - mfcaa = c0o1; - mfaca = c0o1; - - - - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position SEB 0.25f, -0.25f, -0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = c1o4; - y = -c1o4; - z = -c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho =c9o64*drho_NEB+c3o64*drho_NET+c3o64*drho_NWB+c1o64*drho_NWT+c27o64*drho_SEB+c9o64*drho_SET+c9o64*drho_SWB+c3o64*drho_SWT; - //press = press_SET * (c9o64 - c3o16 * mxoff + c3o16 * myoff - c9o16 * mzoff) + - // press_NET * (c3o64 - c1o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + - // press_SWT * (c3o64 + c3o16 * mxoff + c1o16 * myoff - c3o16 * mzoff) + - // press_NWT * (c1o64 + c1o16 * mxoff - c1o16 * myoff - c1o16 * mzoff) + - // press_NWB * (c3o64 + c3o16 * mxoff - c3o16 * myoff + c1o16 * mzoff) + - // press_NEB * (c9o64 - c3o16 * mxoff - c9o16 * myoff + c3o16 * mzoff) + - // press_SWB * (c9o64 + c9o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + - // press_SEB * (c27o64 - c9o16 * mxoff + c9o16 * myoff + c9o16 * mzoff); - //drho = drho_SET * (c9o64 - c3o16 * xoff + c3o16 * yoff - c9o16 * zoff) + - // drho_NET * (c3o64 - c1o16 * xoff - c3o16 * yoff - c3o16 * zoff) + - // drho_SWT * (c3o64 + c3o16 * xoff + c1o16 * yoff - c3o16 * zoff) + - // drho_NWT * (c1o64 + c1o16 * xoff - c1o16 * yoff - c1o16 * zoff) + - // drho_NWB * (c3o64 + c3o16 * xoff - c3o16 * yoff + c1o16 * zoff) + - // drho_NEB * (c9o64 - c3o16 * xoff - c9o16 * yoff + c3o16 * zoff) + - // drho_SWB * (c9o64 + c9o16 * xoff + c3o16 * yoff + c3o16 * zoff) + - // drho_SEB * (c27o64 - c9o16 * xoff + c9o16 * yoff + c9o16 * zoff); - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; - vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); - vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); - vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); - //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); - //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); - //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //2.f - // linear combinations - mxxPyyPzz = mfaaa - c2o3*(ax + by + c2o1*axx*x + bxy*x + axy*y + c2o1*byy*y + axz*z + byz*z + bxyz*x*z + axyz*y*z + cz - cxz*x + cyz*y + cxyz*x*y + c2o1*czz*z)*eps_new / oP* (c1o1 + press); - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); - //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mfbbb = c0o1; - - //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); - //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); - //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); - //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyPyzz = c0o1; - - //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); - //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyMyzz = c0o1; - - //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); - //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); - //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzPyyz = c0o1; - - //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); - //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzMyyz = c0o1; - - //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); - //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); - //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyPxzz = c0o1; - - //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); - //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyMxzz = c0o1; - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //index - k00M = k000; - kM0M = kM00; - k0MM = k0M0; - kMMM = kMM0; - k000 = kM00base; - kM00 = neighborFX[kM00base]; - k0M0 = kMM0base; - kMM0 = neighborFX[kMM0base]; - //////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - fP00dest[k000] = mfcbb; - fM00dest[kM00] = mfabb; - f0P0dest[k000] = mfbcb; - f0M0dest[k0M0] = mfbab; - f00Pdest[k000] = mfbbc; - f00Mdest[k00M] = mfbba; - fPP0dest[k000] = mfccb; - fMM0dest[kMM0] = mfaab; - fPM0dest[k0M0] = mfcab; - fMP0dest[kM00] = mfacb; - fP0Pdest[k000] = mfcbc; - fM0Mdest[kM0M] = mfaba; - fP0Mdest[k00M] = mfcba; - fM0Pdest[kM00] = mfabc; - f0PPdest[k000] = mfbcc; - f0MMdest[k0MM] = mfbaa; - f0PMdest[k00M] = mfbca; - f0MPdest[k0M0] = mfbac; - f000dest[k000] = mfbbb; - fMMMdest[kMMM] = mfaaa; - fMMPdest[kMM0] = mfaac; - fMPPdest[kM00] = mfacc; - fMPMdest[kM0M] = mfaca; - fPPMdest[k00M] = mfcca; - fPPPdest[k000] = mfccc; - fPMPdest[k0M0] = mfcac; - fPMMdest[k0MM] = mfcaa; - //////////////////////////////////////////////////////////////////////////////////// - - - //reset - mfcbb = c0o1; - mfabb = c0o1; - mfbcb = c0o1; - mfbab = c0o1; - mfbbc = c0o1; - mfbba = c0o1; - mfccb = c0o1; - mfaab = c0o1; - mfcab = c0o1; - mfacb = c0o1; - mfcbc = c0o1; - mfaba = c0o1; - mfcba = c0o1; - mfabc = c0o1; - mfbcc = c0o1; - mfbaa = c0o1; - mfbca = c0o1; - mfbac = c0o1; - mfbbb = c0o1; - mfccc = c0o1; - mfaac = c0o1; - mfcac = c0o1; - mfacc = c0o1; - mfcca = c0o1; - mfaaa = c0o1; - mfcaa = c0o1; - mfaca = c0o1; - - - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position NWB -0.25f, 0.25f, -0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = -c1o4; - y = c1o4; - z = -c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho = c9o64*drho_NEB+c3o64*drho_NET+c27o64*drho_NWB+c9o64*drho_NWT+c3o64*drho_SEB+c1o64*drho_SET+c9o64*drho_SWB+c3o64*drho_SWT; - //press = press_NWT * (c9o64 + c3o16 * mxoff - c3o16 * myoff - c9o16 * mzoff) + - // press_NET * (c3o64 - c3o16 * mxoff - c1o16 * myoff - c3o16 * mzoff) + - // press_SWT * (c3o64 + c1o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + - // press_SET * (c1o64 - c1o16 * mxoff + c1o16 * myoff - c1o16 * mzoff) + - // press_SEB * (c3o64 - c3o16 * mxoff + c3o16 * myoff + c1o16 * mzoff) + - // press_NEB * (c9o64 - c9o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + - // press_SWB * (c9o64 + c3o16 * mxoff + c9o16 * myoff + c3o16 * mzoff) + - // press_NWB * (c27o64 + c9o16 * mxoff - c9o16 * myoff + c9o16 * mzoff); - //drho = drho_NWT * (c9o64 + c3o16 * xoff - c3o16 * yoff - c9o16 * zoff) + - // drho_NET * (c3o64 - c3o16 * xoff - c1o16 * yoff - c3o16 * zoff) + - // drho_SWT * (c3o64 + c1o16 * xoff + c3o16 * yoff - c3o16 * zoff) + - // drho_SET * (c1o64 - c1o16 * xoff + c1o16 * yoff - c1o16 * zoff) + - // drho_SEB * (c3o64 - c3o16 * xoff + c3o16 * yoff + c1o16 * zoff) + - // drho_NEB * (c9o64 - c9o16 * xoff - c3o16 * yoff + c3o16 * zoff) + - // drho_SWB * (c9o64 + c3o16 * xoff + c9o16 * yoff + c3o16 * zoff) + - // drho_NWB * (c27o64 + c9o16 * xoff - c9o16 * yoff + c9o16 * zoff); - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; - vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); - vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); - vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); - //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); - //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); - //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //2.f - // linear combinations - mxxPyyPzz = mfaaa - c2o3*(ax + by + c2o1*axx*x + bxy*x + axy*y + c2o1*byy*y + axz*z + byz*z + bxyz*x*z + axyz*y*z + cz - cxz*x + cyz*y + cxyz*x*y + c2o1*czz*z)*eps_new / oP* (c1o1 + press); - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); - //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mfbbb = c0o1; - - //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); - //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); - //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); - //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyPyzz = c0o1; - - //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); - //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyMyzz = c0o1; - - //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); - //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); - //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzPyyz = c0o1; - - //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); - //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzMyyz = c0o1; - - //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); - //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); - //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyPxzz = c0o1; - - //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); - //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyMxzz = c0o1; - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //index 0 - k000base = k0M0base; - kM00base = kMM0base; - k0M0base = neighborFY[k0M0base]; - k00Mbase = k0MMbase; - kMM0base = neighborFY[kMM0base]; - kM0Mbase = kMMMbase; - k0MMbase = neighborFY[k0MMbase]; - kMMMbase = neighborFY[kMMMbase]; - ////////////////////////////////////////////////////////////////////////// - //index - k000 = k000base; - kM00 = kM00base; - k0M0 = k0M0base; - k00M = k00Mbase; - kMM0 = kMM0base; - kM0M = kM0Mbase; - k0MM = k0MMbase; - kMMM = kMMMbase; - //////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - fP00dest[k000] = mfcbb; - fM00dest[kM00] = mfabb; - f0P0dest[k000] = mfbcb; - f0M0dest[k0M0] = mfbab; - f00Pdest[k000] = mfbbc; - f00Mdest[k00M] = mfbba; - fPP0dest[k000] = mfccb; - fMM0dest[kMM0] = mfaab; - fPM0dest[k0M0] = mfcab; - fMP0dest[kM00] = mfacb; - fP0Pdest[k000] = mfcbc; - fM0Mdest[kM0M] = mfaba; - fP0Mdest[k00M] = mfcba; - fM0Pdest[kM00] = mfabc; - f0PPdest[k000] = mfbcc; - f0MMdest[k0MM] = mfbaa; - f0PMdest[k00M] = mfbca; - f0MPdest[k0M0] = mfbac; - f000dest[k000] = mfbbb; - fMMMdest[kMMM] = mfaaa; - fMMPdest[kMM0] = mfaac; - fMPPdest[kM00] = mfacc; - fMPMdest[kM0M] = mfaca; - fPPMdest[k00M] = mfcca; - fPPPdest[k000] = mfccc; - fPMPdest[k0M0] = mfcac; - fPMMdest[k0MM] = mfcaa; - //////////////////////////////////////////////////////////////////////////////////// - - - //reset - mfcbb = c0o1; - mfabb = c0o1; - mfbcb = c0o1; - mfbab = c0o1; - mfbbc = c0o1; - mfbba = c0o1; - mfccb = c0o1; - mfaab = c0o1; - mfcab = c0o1; - mfacb = c0o1; - mfcbc = c0o1; - mfaba = c0o1; - mfcba = c0o1; - mfabc = c0o1; - mfbcc = c0o1; - mfbaa = c0o1; - mfbca = c0o1; - mfbac = c0o1; - mfbbb = c0o1; - mfccc = c0o1; - mfaac = c0o1; - mfcac = c0o1; - mfacc = c0o1; - mfcca = c0o1; - mfaaa = c0o1; - mfcaa = c0o1; - mfaca = c0o1; - - - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position NWT -0.25f, 0.25f, 0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = -c1o4; - y = c1o4; - z = c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho = c3o64*drho_NEB+c9o64*drho_NET+c9o64*drho_NWB+c27o64*drho_NWT+c1o64*drho_SEB+c3o64*drho_SET+c3o64*drho_SWB+c9o64*drho_SWT; - //press = press_NWT * (c27o64 + c9o16 * mxoff - c9o16 * myoff - c9o16 * mzoff) + - // press_NET * (c9o64 - c9o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + - // press_SWT * (c9o64 + c3o16 * mxoff + c9o16 * myoff - c3o16 * mzoff) + - // press_SET * (c3o64 - c3o16 * mxoff + c3o16 * myoff - c1o16 * mzoff) + - // press_SEB * (c1o64 - c1o16 * mxoff + c1o16 * myoff + c1o16 * mzoff) + - // press_NEB * (c3o64 - c3o16 * mxoff - c1o16 * myoff + c3o16 * mzoff) + - // press_SWB * (c3o64 + c1o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + - // press_NWB * (c9o64 + c3o16 * mxoff - c3o16 * myoff + c9o16 * mzoff); - //drho = drho_NWT * (c27o64 + c9o16 * xoff - c9o16 * yoff - c9o16 * zoff) + - // drho_NET * (c9o64 - c9o16 * xoff - c3o16 * yoff - c3o16 * zoff) + - // drho_SWT * (c9o64 + c3o16 * xoff + c9o16 * yoff - c3o16 * zoff) + - // drho_SET * (c3o64 - c3o16 * xoff + c3o16 * yoff - c1o16 * zoff) + - // drho_SEB * (c1o64 - c1o16 * xoff + c1o16 * yoff + c1o16 * zoff) + - // drho_NEB * (c3o64 - c3o16 * xoff - c1o16 * yoff + c3o16 * zoff) + - // drho_SWB * (c3o64 + c1o16 * xoff + c3o16 * yoff + c3o16 * zoff) + - // drho_NWB * (c9o64 + c3o16 * xoff - c3o16 * yoff + c9o16 * zoff); - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; - vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); - vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); - vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); - //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); - //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); - //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //2.f - // linear combinations - mxxPyyPzz = mfaaa - c2o3*(ax + by + c2o1*axx*x + bxy*x + axy*y + c2o1*byy*y + axz*z + byz*z + bxyz*x*z + axyz*y*z + cz - cxz*x + cyz*y + cxyz*x*y + c2o1*czz*z)*eps_new / oP* (c1o1 + press); - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); - //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mfbbb = c0o1; - - //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); - //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); - //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); - //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyPyzz = c0o1; - - //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); - //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyMyzz = c0o1; - - //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); - //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); - //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzPyyz = c0o1; - - //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); - //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzMyyz = c0o1; - - //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); - //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); - //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyPxzz = c0o1; - - //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); - //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyMxzz = c0o1; - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //index - k000 = k00M; - kM00 = kM0M; - k0M0 = k0MM; - k00M = neighborFZ[k00M]; - kMM0 = kMMM; - kM0M = neighborFZ[kM0M]; - k0MM = neighborFZ[k0MM]; - kMMM = neighborFZ[kMMM]; - //////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - fP00dest[k000] = mfcbb; - fM00dest[kM00] = mfabb; - f0P0dest[k000] = mfbcb; - f0M0dest[k0M0] = mfbab; - f00Pdest[k000] = mfbbc; - f00Mdest[k00M] = mfbba; - fPP0dest[k000] = mfccb; - fMM0dest[kMM0] = mfaab; - fPM0dest[k0M0] = mfcab; - fMP0dest[kM00] = mfacb; - fP0Pdest[k000] = mfcbc; - fM0Mdest[kM0M] = mfaba; - fP0Mdest[k00M] = mfcba; - fM0Pdest[kM00] = mfabc; - f0PPdest[k000] = mfbcc; - f0MMdest[k0MM] = mfbaa; - f0PMdest[k00M] = mfbca; - f0MPdest[k0M0] = mfbac; - f000dest[k000] = mfbbb; - fMMMdest[kMMM] = mfaaa; - fMMPdest[kMM0] = mfaac; - fMPPdest[kM00] = mfacc; - fMPMdest[kM0M] = mfaca; - fPPMdest[k00M] = mfcca; - fPPPdest[k000] = mfccc; - fPMPdest[k0M0] = mfcac; - fPMMdest[k0MM] = mfcaa; - //////////////////////////////////////////////////////////////////////////////////// - - - //reset - mfcbb = c0o1; - mfabb = c0o1; - mfbcb = c0o1; - mfbab = c0o1; - mfbbc = c0o1; - mfbba = c0o1; - mfccb = c0o1; - mfaab = c0o1; - mfcab = c0o1; - mfacb = c0o1; - mfcbc = c0o1; - mfaba = c0o1; - mfcba = c0o1; - mfabc = c0o1; - mfbcc = c0o1; - mfbaa = c0o1; - mfbca = c0o1; - mfbac = c0o1; - mfbbb = c0o1; - mfccc = c0o1; - mfaac = c0o1; - mfcac = c0o1; - mfacc = c0o1; - mfcca = c0o1; - mfaaa = c0o1; - mfcaa = c0o1; - mfaca = c0o1; - - - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position NET 0.25f, 0.25f, 0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = c1o4; - y = c1o4; - z = c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho = c9o64*drho_NEB+c27o64*drho_NET+c3o64*drho_NWB+c9o64*drho_NWT+c3o64*drho_SEB+c9o64*drho_SET+c1o64*drho_SWB+c3o64*drho_SWT; - //press = press_NET * (c27o64 - c9o16 * mxoff - c9o16 * myoff - c9o16 * mzoff) + - // press_NWT * (c9o64 + c9o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + - // press_SET * (c9o64 - c3o16 * mxoff + c9o16 * myoff - c3o16 * mzoff) + - // press_SWT * (c3o64 + c3o16 * mxoff + c3o16 * myoff - c1o16 * mzoff) + - // press_SWB * (c1o64 + c1o16 * mxoff + c1o16 * myoff + c1o16 * mzoff) + - // press_NWB * (c3o64 + c3o16 * mxoff - c1o16 * myoff + c3o16 * mzoff) + - // press_SEB * (c3o64 - c1o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + - // press_NEB * (c9o64 - c3o16 * mxoff - c3o16 * myoff + c9o16 * mzoff); - //drho = drho_NET * (c27o64 - c9o16 * xoff - c9o16 * yoff - c9o16 * zoff) + - // drho_NWT * (c9o64 + c9o16 * xoff - c3o16 * yoff - c3o16 * zoff) + - // drho_SET * (c9o64 - c3o16 * xoff + c9o16 * yoff - c3o16 * zoff) + - // drho_SWT * (c3o64 + c3o16 * xoff + c3o16 * yoff - c1o16 * zoff) + - // drho_SWB * (c1o64 + c1o16 * xoff + c1o16 * yoff + c1o16 * zoff) + - // drho_NWB * (c3o64 + c3o16 * xoff - c1o16 * yoff + c3o16 * zoff) + - // drho_SEB * (c3o64 - c1o16 * xoff + c3o16 * yoff + c3o16 * zoff) + - // drho_NEB * (c9o64 - c3o16 * xoff - c3o16 * yoff + c9o16 * zoff); - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; - vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); - vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); - vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); - //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); - //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); - //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //2.f - // linear combinations - mxxPyyPzz = mfaaa - c2o3*(ax + by + c2o1*axx*x + bxy*x + axy*y + c2o1*byy*y + axz*z + byz*z + bxyz*x*z + axyz*y*z + cz - cxz*x + cyz*y + cxyz*x*y + c2o1*czz*z)*eps_new / oP* (c1o1 + press); - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); - //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mfbbb = c0o1; - - //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); - //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); - //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); - //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyPyzz = c0o1; - - //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); - //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyMyzz = c0o1; - - //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); - //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); - //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzPyyz = c0o1; - - //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); - //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzMyyz = c0o1; - - //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); - //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); - //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyPxzz = c0o1; - - //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); - //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyMxzz = c0o1; - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //index - k000 = kM00; - kM00 = neighborFX[kM00]; - k0M0 = kMM0; - k00M = kM0M; - kMM0 = neighborFX[kMM0]; - kM0M = neighborFX[kM0M]; - k0MM = kMMM; - kMMM = neighborFX[kMMM]; - //////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - fP00dest[k000] = mfcbb; - fM00dest[kM00] = mfabb; - f0P0dest[k000] = mfbcb; - f0M0dest[k0M0] = mfbab; - f00Pdest[k000] = mfbbc; - f00Mdest[k00M] = mfbba; - fPP0dest[k000] = mfccb; - fMM0dest[kMM0] = mfaab; - fPM0dest[k0M0] = mfcab; - fMP0dest[kM00] = mfacb; - fP0Pdest[k000] = mfcbc; - fM0Mdest[kM0M] = mfaba; - fP0Mdest[k00M] = mfcba; - fM0Pdest[kM00] = mfabc; - f0PPdest[k000] = mfbcc; - f0MMdest[k0MM] = mfbaa; - f0PMdest[k00M] = mfbca; - f0MPdest[k0M0] = mfbac; - f000dest[k000] = mfbbb; - fMMMdest[kMMM] = mfaaa; - fMMPdest[kMM0] = mfaac; - fMPPdest[kM00] = mfacc; - fMPMdest[kM0M] = mfaca; - fPPMdest[k00M] = mfcca; - fPPPdest[k000] = mfccc; - fPMPdest[k0M0] = mfcac; - fPMMdest[k0MM] = mfcaa; - //////////////////////////////////////////////////////////////////////////////////// - - - //reset - mfcbb = c0o1; - mfabb = c0o1; - mfbcb = c0o1; - mfbab = c0o1; - mfbbc = c0o1; - mfbba = c0o1; - mfccb = c0o1; - mfaab = c0o1; - mfcab = c0o1; - mfacb = c0o1; - mfcbc = c0o1; - mfaba = c0o1; - mfcba = c0o1; - mfabc = c0o1; - mfbcc = c0o1; - mfbaa = c0o1; - mfbca = c0o1; - mfbac = c0o1; - mfbbb = c0o1; - mfccc = c0o1; - mfaac = c0o1; - mfcac = c0o1; - mfacc = c0o1; - mfcca = c0o1; - mfaaa = c0o1; - mfcaa = c0o1; - mfaca = c0o1; - - - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position NEB 0.25f, 0.25f, -0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = c1o4; - y = c1o4; - z = -c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho = c27o64*drho_NEB+c9o64*drho_NET+c9o64*drho_NWB+c3o64*drho_NWT+c9o64*drho_SEB+c3o64*drho_SET+c3o64*drho_SWB+c1o64*drho_SWT; - //press = press_NET * (c9o64 - c3o16 * mxoff - c3o16 * myoff - c9o16 * mzoff) + - // press_NWT * (c3o64 + c3o16 * mxoff - c1o16 * myoff - c3o16 * mzoff) + - // press_SET * (c3o64 - c1o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + - // press_SWT * (c1o64 + c1o16 * mxoff + c1o16 * myoff - c1o16 * mzoff) + - // press_SWB * (c3o64 + c3o16 * mxoff + c3o16 * myoff + c1o16 * mzoff) + - // press_NWB * (c9o64 + c9o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + - // press_SEB * (c9o64 - c3o16 * mxoff + c9o16 * myoff + c3o16 * mzoff) + - // press_NEB * (c27o64 - c9o16 * mxoff - c9o16 * myoff + c9o16 * mzoff); - //drho = drho_NET * (c9o64 - c3o16 * xoff - c3o16 * yoff - c9o16 * zoff) + - // drho_NWT * (c3o64 + c3o16 * xoff - c1o16 * yoff - c3o16 * zoff) + - // drho_SET * (c3o64 - c1o16 * xoff + c3o16 * yoff - c3o16 * zoff) + - // drho_SWT * (c1o64 + c1o16 * xoff + c1o16 * yoff - c1o16 * zoff) + - // drho_SWB * (c3o64 + c3o16 * xoff + c3o16 * yoff + c1o16 * zoff) + - // drho_NWB * (c9o64 + c9o16 * xoff - c3o16 * yoff + c3o16 * zoff) + - // drho_SEB * (c9o64 - c3o16 * xoff + c9o16 * yoff + c3o16 * zoff) + - // drho_NEB * (c27o64 - c9o16 * xoff - c9o16 * yoff + c9o16 * zoff); - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; - vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); - vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); - vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); - //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); - //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); - //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //2.f - // linear combinations - mxxPyyPzz = mfaaa - c2o3*(ax + by + c2o1*axx*x + bxy*x + axy*y + c2o1*byy*y + axz*z + byz*z + bxyz*x*z + axyz*y*z + cz - cxz*x + cyz*y + cxyz*x*y + c2o1*czz*z)*eps_new / oP* (c1o1 + press); - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); - //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mfbbb = c0o1; - - //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); - //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); - //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); - //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyPyzz = c0o1; - - //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); - //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyMyzz = c0o1; - - //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); - //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); - //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzPyyz = c0o1; - - //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); - //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzMyyz = c0o1; - - //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); - //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); - //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyPxzz = c0o1; - - //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); - //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyMxzz = c0o1; - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //index - k00M = k000; - kM0M = kM00; - k0MM = k0M0; - kMMM = kMM0; - k000 = kM00base; - kM00 = neighborFX[kM00base]; - k0M0 = kMM0base; - kMM0 = neighborFX[kMM0base]; - //////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - fP00dest[k000] = mfcbb; - fM00dest[kM00] = mfabb; - f0P0dest[k000] = mfbcb; - f0M0dest[k0M0] = mfbab; - f00Pdest[k000] = mfbbc; - f00Mdest[k00M] = mfbba; - fPP0dest[k000] = mfccb; - fMM0dest[kMM0] = mfaab; - fPM0dest[k0M0] = mfcab; - fMP0dest[kM00] = mfacb; - fP0Pdest[k000] = mfcbc; - fM0Mdest[kM0M] = mfaba; - fP0Mdest[k00M] = mfcba; - fM0Pdest[kM00] = mfabc; - f0PPdest[k000] = mfbcc; - f0MMdest[k0MM] = mfbaa; - f0PMdest[k00M] = mfbca; - f0MPdest[k0M0] = mfbac; - f000dest[k000] = mfbbb; - fMMMdest[kMMM] = mfaaa; - fMMPdest[kMM0] = mfaac; - fMPPdest[kM00] = mfacc; - fMPMdest[kM0M] = mfaca; - fPPMdest[k00M] = mfcca; - fPPPdest[k000] = mfccc; - fPMPdest[k0M0] = mfcac; - fPMMdest[k0MM] = mfcaa; - //////////////////////////////////////////////////////////////////////////////////// + d0 = d0 + xoff * dx + yoff * dy + zoff * dz + xoff*yoff*dxy + xoff*zoff*dxz + yoff*zoff*dyz; + dx = dx + yoff * dxy + zoff * dxz; + dy = dy + xoff * dxy + zoff * dyz; + dz = dz + xoff * dxz + yoff * dyz; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + real mfcbb = c0o1; + real mfabb = c0o1; + real mfbcb = c0o1; + real mfbab = c0o1; + real mfbbc = c0o1; + real mfbba = c0o1; + real mfccb = c0o1; + real mfaab = c0o1; + real mfcab = c0o1; + real mfacb = c0o1; + real mfcbc = c0o1; + real mfaba = c0o1; + real mfcba = c0o1; + real mfabc = c0o1; + real mfbcc = c0o1; + real mfbaa = c0o1; + real mfbca = c0o1; + real mfbac = c0o1; + real mfbbb = c0o1; + real mfccc = c0o1; + real mfaac = c0o1; + real mfcac = c0o1; + real mfacc = c0o1; + real mfcca = c0o1; + real mfaaa = c0o1; + real mfcaa = c0o1; + real mfaca = c0o1; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + real m0, m1, m2, oMdrho; + real mxxPyyPzz, mxxMyy, mxxMzz, mxxyPyzz, mxxyMyzz, mxxzPyyz, mxxzMyyz, mxyyPxzz, mxyyMxzz; + //real qudricLimit = c1o100;//ganz schlechte Idee -> muss global sein + //real O3 = two - o; + //real residu, residutmp; + //residutmp = zero;// /*-*/ c2o9 * (1./o - c1o2) * eps_new * eps_new; + real NeqOn = c1o1;//zero;//one; //.... one = on ..... zero = off + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position SWB -0.25f, -0.25f, -0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = -c1o4; + y = -c1o4; + z = -c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //real mxoff = -xoff; + //real myoff = -yoff; + //real mzoff = -zoff; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho = c3o64*drho_NEB+c1o64*drho_NET+c9o64*drho_NWB+c3o64*drho_NWT+c9o64*drho_SEB+c3o64*drho_SET+c27o64*drho_SWB+c9o64*drho_SWT; + //press = press_SWT * (c9o64 + c3o16 * mxoff + c3o16 * myoff - c9o16 * mzoff) + + // press_NWT * (c3o64 + c1o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + + // press_SET * (c3o64 - c3o16 * mxoff + c1o16 * myoff - c3o16 * mzoff) + + // press_NET * (c1o64 - c1o16 * mxoff - c1o16 * myoff - c1o16 * mzoff) + + // press_NEB * (c3o64 - c3o16 * mxoff - c3o16 * myoff + c1o16 * mzoff) + + // press_NWB * (c9o64 + c3o16 * mxoff - c9o16 * myoff + c3o16 * mzoff) + + // press_SEB * (c9o64 - c9o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + + // press_SWB * (c27o64 + c9o16 * mxoff + c9o16 * myoff + c9o16 * mzoff); + //drho = drho_SWT * (c9o64 + c3o16 * xoff + c3o16 * yoff - c9o16 * zoff) + + // drho_NWT * (c3o64 + c1o16 * xoff - c3o16 * yoff - c3o16 * zoff) + + // drho_SET * (c3o64 - c3o16 * xoff + c1o16 * yoff - c3o16 * zoff) + + // drho_NET * (c1o64 - c1o16 * xoff - c1o16 * yoff - c1o16 * zoff) + + // drho_NEB * (c3o64 - c3o16 * xoff - c3o16 * yoff + c1o16 * zoff) + + // drho_NWB * (c9o64 + c3o16 * xoff - c9o16 * yoff + c3o16 * zoff) + + // drho_SEB * (c9o64 - c9o16 * xoff + c3o16 * yoff + c3o16 * zoff) + + // drho_SWB * (c27o64 + c9o16 * xoff + c9o16 * yoff + c9o16 * zoff); + + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; + vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); + vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); + vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); + //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); + //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); + //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1; + //oMdrho = one - mfaaa; + + //2.f + // linear combinations + mxxPyyPzz = mfaaa - c2o3*(ax + by + c2o1*axx*x + bxy*x + axy*y + c2o1*byy*y + axz*z + byz*z + bxyz*x*z + axyz*y*z + cz - cxz*x + cyz*y + cxyz*x*y + c2o1*czz*z )*eps_new / oP* (c1o1 + press); + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); + //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mfbbb = c0o1; + + //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); + //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); + //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); + //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyPyzz = c0o1; + + //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); + //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); + //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyMyzz = c0o1; + + //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); + //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); + //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzPyyz = c0o1; + + //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); + //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); + //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzMyyz = c0o1; + + //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); + //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; + //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); + //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyPxzz = c0o1; + + //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); + //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); + //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyMxzz = c0o1; + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////// + //index 0 + k000base = posFSWB[k]; + kM00base = neighborFX[k000base]; + k0M0base = neighborFY[k000base]; + k00Mbase = neighborFZ[k000base]; + kMM0base = neighborFY[kM00base]; + kM0Mbase = neighborFZ[kM00base]; + k0MMbase = neighborFZ[k0M0base]; + kMMMbase = neighborFZ[kMM0base]; + ////////////////////////////////////////////////////////////////////////// + //index + k000 = k000base; + kM00 = kM00base; + k0M0 = k0M0base; + k00M = k00Mbase; + kMM0 = kMM0base; + kM0M = kM0Mbase; + k0MM = k0MMbase; + kMMM = kMMMbase; + //////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + fP00dest[k000] = mfcbb; + fM00dest[kM00] = mfabb; + f0P0dest[k000] = mfbcb; + f0M0dest[k0M0] = mfbab; + f00Pdest[k000] = mfbbc; + f00Mdest[k00M] = mfbba; + fPP0dest[k000] = mfccb; + fMM0dest[kMM0] = mfaab; + fPM0dest[k0M0] = mfcab; + fMP0dest[kM00] = mfacb; + fP0Pdest[k000] = mfcbc; + fM0Mdest[kM0M] = mfaba; + fP0Mdest[k00M] = mfcba; + fM0Pdest[kM00] = mfabc; + f0PPdest[k000] = mfbcc; + f0MMdest[k0MM] = mfbaa; + f0PMdest[k00M] = mfbca; + f0MPdest[k0M0] = mfbac; + f000dest[k000] = mfbbb; + fMMMdest[kMMM] = mfaaa; + fMMPdest[kMM0] = mfaac; + fMPPdest[kM00] = mfacc; + fMPMdest[kM0M] = mfaca; + fPPMdest[k00M] = mfcca; + fPPPdest[k000] = mfccc; + fPMPdest[k0M0] = mfcac; + fPMMdest[k0MM] = mfcaa; + //////////////////////////////////////////////////////////////////////////////////// + + //reset + mfcbb = c0o1; + mfabb = c0o1; + mfbcb = c0o1; + mfbab = c0o1; + mfbbc = c0o1; + mfbba = c0o1; + mfccb = c0o1; + mfaab = c0o1; + mfcab = c0o1; + mfacb = c0o1; + mfcbc = c0o1; + mfaba = c0o1; + mfcba = c0o1; + mfabc = c0o1; + mfbcc = c0o1; + mfbaa = c0o1; + mfbca = c0o1; + mfbac = c0o1; + mfbbb = c0o1; + mfccc = c0o1; + mfaac = c0o1; + mfcac = c0o1; + mfacc = c0o1; + mfcca = c0o1; + mfaaa = c0o1; + mfcaa = c0o1; + mfaca = c0o1; + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position SWT -0.25f, -0.25f, 0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = -c1o4; + y = -c1o4; + z = c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho = c1o64*drho_NEB+c3o64*drho_NET+c3o64*drho_NWB+c9o64*drho_NWT+c3o64*drho_SEB+c9o64*drho_SET+c9o64*drho_SWB+c27o64*drho_SWT; + //press = press_SWT * (c27o64 + c9o16 * mxoff + c9o16 * myoff - c9o16 * mzoff) + + // press_NWT * (c9o64 + c3o16 * mxoff - c9o16 * myoff - c3o16 * mzoff) + + // press_SET * (c9o64 - c9o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + + // press_NET * (c3o64 - c3o16 * mxoff - c3o16 * myoff - c1o16 * mzoff) + + // press_NEB * (c1o64 - c1o16 * mxoff - c1o16 * myoff + c1o16 * mzoff) + + // press_NWB * (c3o64 + c1o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + + // press_SEB * (c3o64 - c3o16 * mxoff + c1o16 * myoff + c3o16 * mzoff) + + // press_SWB * (c9o64 + c3o16 * mxoff + c3o16 * myoff + c9o16 * mzoff); + //drho = drho_SWT * (c27o64 + c9o16 * xoff + c9o16 * yoff - c9o16 * zoff) + + // drho_NWT * (c9o64 + c3o16 * xoff - c9o16 * yoff - c3o16 * zoff) + + // drho_SET * (c9o64 - c9o16 * xoff + c3o16 * yoff - c3o16 * zoff) + + // drho_NET * (c3o64 - c3o16 * xoff - c3o16 * yoff - c1o16 * zoff) + + // drho_NEB * (c1o64 - c1o16 * xoff - c1o16 * yoff + c1o16 * zoff) + + // drho_NWB * (c3o64 + c1o16 * xoff - c3o16 * yoff + c3o16 * zoff) + + // drho_SEB * (c3o64 - c3o16 * xoff + c1o16 * yoff + c3o16 * zoff) + + // drho_SWB * (c9o64 + c3o16 * xoff + c3o16 * yoff + c9o16 * zoff); + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; + vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); + vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); + vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); + //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); + //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); + //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1; + //oMdrho = one - mfaaa; + + //2.f + // linear combinations + mxxPyyPzz = mfaaa - c2o3*(ax + by + c2o1*axx*x + bxy*x + axy*y + c2o1*byy*y + axz*z + byz*z + bxyz*x*z + axyz*y*z + cz - cxz*x + cyz*y + cxyz*x*y + c2o1*czz*z)*eps_new / oP* (c1o1 + press); + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); + //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mfbbb = c0o1; + + //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); + //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); + //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); + //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyPyzz = c0o1; + + //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); + //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); + //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyMyzz = c0o1; + + //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); + //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); + //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzPyyz = c0o1; + + //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); + //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); + //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzMyyz = c0o1; + + //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); + //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; + //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); + //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyPxzz = c0o1; + + //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); + //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); + //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyMxzz = c0o1; + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + //index + k000 = k00M; + kM00 = kM0M; + k0M0 = k0MM; + k00M = neighborFZ[k00M]; + kMM0 = kMMM; + kM0M = neighborFZ[kM0M]; + k0MM = neighborFZ[k0MM]; + kMMM = neighborFZ[kMMM]; + //////////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + fP00dest[k000] = mfcbb; + fM00dest[kM00] = mfabb; + f0P0dest[k000] = mfbcb; + f0M0dest[k0M0] = mfbab; + f00Pdest[k000] = mfbbc; + f00Mdest[k00M] = mfbba; + fPP0dest[k000] = mfccb; + fMM0dest[kMM0] = mfaab; + fPM0dest[k0M0] = mfcab; + fMP0dest[kM00] = mfacb; + fP0Pdest[k000] = mfcbc; + fM0Mdest[kM0M] = mfaba; + fP0Mdest[k00M] = mfcba; + fM0Pdest[kM00] = mfabc; + f0PPdest[k000] = mfbcc; + f0MMdest[k0MM] = mfbaa; + f0PMdest[k00M] = mfbca; + f0MPdest[k0M0] = mfbac; + f000dest[k000] = mfbbb; + fMMMdest[kMMM] = mfaaa; + fMMPdest[kMM0] = mfaac; + fMPPdest[kM00] = mfacc; + fMPMdest[kM0M] = mfaca; + fPPMdest[k00M] = mfcca; + fPPPdest[k000] = mfccc; + fPMPdest[k0M0] = mfcac; + fPMMdest[k0MM] = mfcaa; + //////////////////////////////////////////////////////////////////////////////////// + + + //reset + mfcbb = c0o1; + mfabb = c0o1; + mfbcb = c0o1; + mfbab = c0o1; + mfbbc = c0o1; + mfbba = c0o1; + mfccb = c0o1; + mfaab = c0o1; + mfcab = c0o1; + mfacb = c0o1; + mfcbc = c0o1; + mfaba = c0o1; + mfcba = c0o1; + mfabc = c0o1; + mfbcc = c0o1; + mfbaa = c0o1; + mfbca = c0o1; + mfbac = c0o1; + mfbbb = c0o1; + mfccc = c0o1; + mfaac = c0o1; + mfcac = c0o1; + mfacc = c0o1; + mfcca = c0o1; + mfaaa = c0o1; + mfcaa = c0o1; + mfaca = c0o1; + + + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position SET 0.25f, -0.25f, 0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = c1o4; + y = -c1o4; + z = c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho =c3o64*drho_NEB+c9o64*drho_NET+c1o64*drho_NWB+c3o64*drho_NWT+c9o64*drho_SEB+c27o64*drho_SET+c3o64*drho_SWB+c9o64*drho_SWT; + //press = press_SET * (c27o64 - c9o16 * mxoff + c9o16 * myoff - c9o16 * mzoff) + + // press_NET * (c9o64 - c3o16 * mxoff - c9o16 * myoff - c3o16 * mzoff) + + // press_SWT * (c9o64 + c9o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + + // press_NWT * (c3o64 + c3o16 * mxoff - c3o16 * myoff - c1o16 * mzoff) + + // press_NWB * (c1o64 + c1o16 * mxoff - c1o16 * myoff + c1o16 * mzoff) + + // press_NEB * (c3o64 - c1o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + + // press_SWB * (c3o64 + c3o16 * mxoff + c1o16 * myoff + c3o16 * mzoff) + + // press_SEB * (c9o64 - c3o16 * mxoff + c3o16 * myoff + c9o16 * mzoff); + //drho = drho_SET * (c27o64 - c9o16 * xoff + c9o16 * yoff - c9o16 * zoff) + + // drho_NET * (c9o64 - c3o16 * xoff - c9o16 * yoff - c3o16 * zoff) + + // drho_SWT * (c9o64 + c9o16 * xoff + c3o16 * yoff - c3o16 * zoff) + + // drho_NWT * (c3o64 + c3o16 * xoff - c3o16 * yoff - c1o16 * zoff) + + // drho_NWB * (c1o64 + c1o16 * xoff - c1o16 * yoff + c1o16 * zoff) + + // drho_NEB * (c3o64 - c1o16 * xoff - c3o16 * yoff + c3o16 * zoff) + + // drho_SWB * (c3o64 + c3o16 * xoff + c1o16 * yoff + c3o16 * zoff) + + // drho_SEB * (c9o64 - c3o16 * xoff + c3o16 * yoff + c9o16 * zoff); + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; + vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); + vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); + vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); + //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); + //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); + //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1; + //oMdrho = one - mfaaa; + + //2.f + // linear combinations + mxxPyyPzz = mfaaa - c2o3*(ax + by + c2o1*axx*x + bxy*x + axy*y + c2o1*byy*y + axz*z + byz*z + bxyz*x*z + axyz*y*z + cz - cxz*x + cyz*y + cxyz*x*y + c2o1*czz*z)*eps_new / oP* (c1o1 + press); + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); + //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mfbbb = c0o1; + + //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); + //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); + //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); + //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyPyzz = c0o1; + + //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); + //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); + //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyMyzz = c0o1; + + //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); + //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); + //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzPyyz = c0o1; + + //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); + //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); + //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzMyyz = c0o1; + + //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); + //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; + //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); + //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyPxzz = c0o1; + + //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); + //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); + //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyMxzz = c0o1; + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////// + //index + k000 = kM00; + kM00 = neighborFX[kM00]; + k0M0 = kMM0; + k00M = kM0M; + kMM0 = neighborFX[kMM0]; + kM0M = neighborFX[kM0M]; + k0MM = kMMM; + kMMM = neighborFX[kMMM]; + //////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + fP00dest[k000] = mfcbb; + fM00dest[kM00] = mfabb; + f0P0dest[k000] = mfbcb; + f0M0dest[k0M0] = mfbab; + f00Pdest[k000] = mfbbc; + f00Mdest[k00M] = mfbba; + fPP0dest[k000] = mfccb; + fMM0dest[kMM0] = mfaab; + fPM0dest[k0M0] = mfcab; + fMP0dest[kM00] = mfacb; + fP0Pdest[k000] = mfcbc; + fM0Mdest[kM0M] = mfaba; + fP0Mdest[k00M] = mfcba; + fM0Pdest[kM00] = mfabc; + f0PPdest[k000] = mfbcc; + f0MMdest[k0MM] = mfbaa; + f0PMdest[k00M] = mfbca; + f0MPdest[k0M0] = mfbac; + f000dest[k000] = mfbbb; + fMMMdest[kMMM] = mfaaa; + fMMPdest[kMM0] = mfaac; + fMPPdest[kM00] = mfacc; + fMPMdest[kM0M] = mfaca; + fPPMdest[k00M] = mfcca; + fPPPdest[k000] = mfccc; + fPMPdest[k0M0] = mfcac; + fPMMdest[k0MM] = mfcaa; + //////////////////////////////////////////////////////////////////////////////////// + + //reset + mfcbb = c0o1; + mfabb = c0o1; + mfbcb = c0o1; + mfbab = c0o1; + mfbbc = c0o1; + mfbba = c0o1; + mfccb = c0o1; + mfaab = c0o1; + mfcab = c0o1; + mfacb = c0o1; + mfcbc = c0o1; + mfaba = c0o1; + mfcba = c0o1; + mfabc = c0o1; + mfbcc = c0o1; + mfbaa = c0o1; + mfbca = c0o1; + mfbac = c0o1; + mfbbb = c0o1; + mfccc = c0o1; + mfaac = c0o1; + mfcac = c0o1; + mfacc = c0o1; + mfcca = c0o1; + mfaaa = c0o1; + mfcaa = c0o1; + mfaca = c0o1; + + + + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position SEB 0.25f, -0.25f, -0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = c1o4; + y = -c1o4; + z = -c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho =c9o64*drho_NEB+c3o64*drho_NET+c3o64*drho_NWB+c1o64*drho_NWT+c27o64*drho_SEB+c9o64*drho_SET+c9o64*drho_SWB+c3o64*drho_SWT; + //press = press_SET * (c9o64 - c3o16 * mxoff + c3o16 * myoff - c9o16 * mzoff) + + // press_NET * (c3o64 - c1o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + + // press_SWT * (c3o64 + c3o16 * mxoff + c1o16 * myoff - c3o16 * mzoff) + + // press_NWT * (c1o64 + c1o16 * mxoff - c1o16 * myoff - c1o16 * mzoff) + + // press_NWB * (c3o64 + c3o16 * mxoff - c3o16 * myoff + c1o16 * mzoff) + + // press_NEB * (c9o64 - c3o16 * mxoff - c9o16 * myoff + c3o16 * mzoff) + + // press_SWB * (c9o64 + c9o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + + // press_SEB * (c27o64 - c9o16 * mxoff + c9o16 * myoff + c9o16 * mzoff); + //drho = drho_SET * (c9o64 - c3o16 * xoff + c3o16 * yoff - c9o16 * zoff) + + // drho_NET * (c3o64 - c1o16 * xoff - c3o16 * yoff - c3o16 * zoff) + + // drho_SWT * (c3o64 + c3o16 * xoff + c1o16 * yoff - c3o16 * zoff) + + // drho_NWT * (c1o64 + c1o16 * xoff - c1o16 * yoff - c1o16 * zoff) + + // drho_NWB * (c3o64 + c3o16 * xoff - c3o16 * yoff + c1o16 * zoff) + + // drho_NEB * (c9o64 - c3o16 * xoff - c9o16 * yoff + c3o16 * zoff) + + // drho_SWB * (c9o64 + c9o16 * xoff + c3o16 * yoff + c3o16 * zoff) + + // drho_SEB * (c27o64 - c9o16 * xoff + c9o16 * yoff + c9o16 * zoff); + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; + vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); + vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); + vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); + //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); + //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); + //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1; + //oMdrho = one - mfaaa; + + //2.f + // linear combinations + mxxPyyPzz = mfaaa - c2o3*(ax + by + c2o1*axx*x + bxy*x + axy*y + c2o1*byy*y + axz*z + byz*z + bxyz*x*z + axyz*y*z + cz - cxz*x + cyz*y + cxyz*x*y + c2o1*czz*z)*eps_new / oP* (c1o1 + press); + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); + //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mfbbb = c0o1; + + //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); + //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); + //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); + //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyPyzz = c0o1; + + //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); + //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); + //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyMyzz = c0o1; + + //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); + //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); + //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzPyyz = c0o1; + + //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); + //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); + //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzMyyz = c0o1; + + //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); + //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; + //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); + //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyPxzz = c0o1; + + //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); + //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); + //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyMxzz = c0o1; + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////// + //index + k00M = k000; + kM0M = kM00; + k0MM = k0M0; + kMMM = kMM0; + k000 = kM00base; + kM00 = neighborFX[kM00base]; + k0M0 = kMM0base; + kMM0 = neighborFX[kMM0base]; + //////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + fP00dest[k000] = mfcbb; + fM00dest[kM00] = mfabb; + f0P0dest[k000] = mfbcb; + f0M0dest[k0M0] = mfbab; + f00Pdest[k000] = mfbbc; + f00Mdest[k00M] = mfbba; + fPP0dest[k000] = mfccb; + fMM0dest[kMM0] = mfaab; + fPM0dest[k0M0] = mfcab; + fMP0dest[kM00] = mfacb; + fP0Pdest[k000] = mfcbc; + fM0Mdest[kM0M] = mfaba; + fP0Mdest[k00M] = mfcba; + fM0Pdest[kM00] = mfabc; + f0PPdest[k000] = mfbcc; + f0MMdest[k0MM] = mfbaa; + f0PMdest[k00M] = mfbca; + f0MPdest[k0M0] = mfbac; + f000dest[k000] = mfbbb; + fMMMdest[kMMM] = mfaaa; + fMMPdest[kMM0] = mfaac; + fMPPdest[kM00] = mfacc; + fMPMdest[kM0M] = mfaca; + fPPMdest[k00M] = mfcca; + fPPPdest[k000] = mfccc; + fPMPdest[k0M0] = mfcac; + fPMMdest[k0MM] = mfcaa; + //////////////////////////////////////////////////////////////////////////////////// + + + //reset + mfcbb = c0o1; + mfabb = c0o1; + mfbcb = c0o1; + mfbab = c0o1; + mfbbc = c0o1; + mfbba = c0o1; + mfccb = c0o1; + mfaab = c0o1; + mfcab = c0o1; + mfacb = c0o1; + mfcbc = c0o1; + mfaba = c0o1; + mfcba = c0o1; + mfabc = c0o1; + mfbcc = c0o1; + mfbaa = c0o1; + mfbca = c0o1; + mfbac = c0o1; + mfbbb = c0o1; + mfccc = c0o1; + mfaac = c0o1; + mfcac = c0o1; + mfacc = c0o1; + mfcca = c0o1; + mfaaa = c0o1; + mfcaa = c0o1; + mfaca = c0o1; + + + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position NWB -0.25f, 0.25f, -0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = -c1o4; + y = c1o4; + z = -c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho = c9o64*drho_NEB+c3o64*drho_NET+c27o64*drho_NWB+c9o64*drho_NWT+c3o64*drho_SEB+c1o64*drho_SET+c9o64*drho_SWB+c3o64*drho_SWT; + //press = press_NWT * (c9o64 + c3o16 * mxoff - c3o16 * myoff - c9o16 * mzoff) + + // press_NET * (c3o64 - c3o16 * mxoff - c1o16 * myoff - c3o16 * mzoff) + + // press_SWT * (c3o64 + c1o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + + // press_SET * (c1o64 - c1o16 * mxoff + c1o16 * myoff - c1o16 * mzoff) + + // press_SEB * (c3o64 - c3o16 * mxoff + c3o16 * myoff + c1o16 * mzoff) + + // press_NEB * (c9o64 - c9o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + + // press_SWB * (c9o64 + c3o16 * mxoff + c9o16 * myoff + c3o16 * mzoff) + + // press_NWB * (c27o64 + c9o16 * mxoff - c9o16 * myoff + c9o16 * mzoff); + //drho = drho_NWT * (c9o64 + c3o16 * xoff - c3o16 * yoff - c9o16 * zoff) + + // drho_NET * (c3o64 - c3o16 * xoff - c1o16 * yoff - c3o16 * zoff) + + // drho_SWT * (c3o64 + c1o16 * xoff + c3o16 * yoff - c3o16 * zoff) + + // drho_SET * (c1o64 - c1o16 * xoff + c1o16 * yoff - c1o16 * zoff) + + // drho_SEB * (c3o64 - c3o16 * xoff + c3o16 * yoff + c1o16 * zoff) + + // drho_NEB * (c9o64 - c9o16 * xoff - c3o16 * yoff + c3o16 * zoff) + + // drho_SWB * (c9o64 + c3o16 * xoff + c9o16 * yoff + c3o16 * zoff) + + // drho_NWB * (c27o64 + c9o16 * xoff - c9o16 * yoff + c9o16 * zoff); + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; + vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); + vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); + vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); + //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); + //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); + //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1; + //oMdrho = one - mfaaa; + + //2.f + // linear combinations + mxxPyyPzz = mfaaa - c2o3*(ax + by + c2o1*axx*x + bxy*x + axy*y + c2o1*byy*y + axz*z + byz*z + bxyz*x*z + axyz*y*z + cz - cxz*x + cyz*y + cxyz*x*y + c2o1*czz*z)*eps_new / oP* (c1o1 + press); + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); + //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mfbbb = c0o1; + + //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); + //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); + //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); + //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyPyzz = c0o1; + + //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); + //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); + //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyMyzz = c0o1; + + //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); + //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); + //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzPyyz = c0o1; + + //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); + //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); + //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzMyyz = c0o1; + + //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); + //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; + //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); + //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyPxzz = c0o1; + + //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); + //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); + //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyMxzz = c0o1; + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////// + //index 0 + k000base = k0M0base; + kM00base = kMM0base; + k0M0base = neighborFY[k0M0base]; + k00Mbase = k0MMbase; + kMM0base = neighborFY[kMM0base]; + kM0Mbase = kMMMbase; + k0MMbase = neighborFY[k0MMbase]; + kMMMbase = neighborFY[kMMMbase]; + ////////////////////////////////////////////////////////////////////////// + //index + k000 = k000base; + kM00 = kM00base; + k0M0 = k0M0base; + k00M = k00Mbase; + kMM0 = kMM0base; + kM0M = kM0Mbase; + k0MM = k0MMbase; + kMMM = kMMMbase; + //////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + fP00dest[k000] = mfcbb; + fM00dest[kM00] = mfabb; + f0P0dest[k000] = mfbcb; + f0M0dest[k0M0] = mfbab; + f00Pdest[k000] = mfbbc; + f00Mdest[k00M] = mfbba; + fPP0dest[k000] = mfccb; + fMM0dest[kMM0] = mfaab; + fPM0dest[k0M0] = mfcab; + fMP0dest[kM00] = mfacb; + fP0Pdest[k000] = mfcbc; + fM0Mdest[kM0M] = mfaba; + fP0Mdest[k00M] = mfcba; + fM0Pdest[kM00] = mfabc; + f0PPdest[k000] = mfbcc; + f0MMdest[k0MM] = mfbaa; + f0PMdest[k00M] = mfbca; + f0MPdest[k0M0] = mfbac; + f000dest[k000] = mfbbb; + fMMMdest[kMMM] = mfaaa; + fMMPdest[kMM0] = mfaac; + fMPPdest[kM00] = mfacc; + fMPMdest[kM0M] = mfaca; + fPPMdest[k00M] = mfcca; + fPPPdest[k000] = mfccc; + fPMPdest[k0M0] = mfcac; + fPMMdest[k0MM] = mfcaa; + //////////////////////////////////////////////////////////////////////////////////// + + + //reset + mfcbb = c0o1; + mfabb = c0o1; + mfbcb = c0o1; + mfbab = c0o1; + mfbbc = c0o1; + mfbba = c0o1; + mfccb = c0o1; + mfaab = c0o1; + mfcab = c0o1; + mfacb = c0o1; + mfcbc = c0o1; + mfaba = c0o1; + mfcba = c0o1; + mfabc = c0o1; + mfbcc = c0o1; + mfbaa = c0o1; + mfbca = c0o1; + mfbac = c0o1; + mfbbb = c0o1; + mfccc = c0o1; + mfaac = c0o1; + mfcac = c0o1; + mfacc = c0o1; + mfcca = c0o1; + mfaaa = c0o1; + mfcaa = c0o1; + mfaca = c0o1; + + + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position NWT -0.25f, 0.25f, 0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = -c1o4; + y = c1o4; + z = c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho = c3o64*drho_NEB+c9o64*drho_NET+c9o64*drho_NWB+c27o64*drho_NWT+c1o64*drho_SEB+c3o64*drho_SET+c3o64*drho_SWB+c9o64*drho_SWT; + //press = press_NWT * (c27o64 + c9o16 * mxoff - c9o16 * myoff - c9o16 * mzoff) + + // press_NET * (c9o64 - c9o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + + // press_SWT * (c9o64 + c3o16 * mxoff + c9o16 * myoff - c3o16 * mzoff) + + // press_SET * (c3o64 - c3o16 * mxoff + c3o16 * myoff - c1o16 * mzoff) + + // press_SEB * (c1o64 - c1o16 * mxoff + c1o16 * myoff + c1o16 * mzoff) + + // press_NEB * (c3o64 - c3o16 * mxoff - c1o16 * myoff + c3o16 * mzoff) + + // press_SWB * (c3o64 + c1o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + + // press_NWB * (c9o64 + c3o16 * mxoff - c3o16 * myoff + c9o16 * mzoff); + //drho = drho_NWT * (c27o64 + c9o16 * xoff - c9o16 * yoff - c9o16 * zoff) + + // drho_NET * (c9o64 - c9o16 * xoff - c3o16 * yoff - c3o16 * zoff) + + // drho_SWT * (c9o64 + c3o16 * xoff + c9o16 * yoff - c3o16 * zoff) + + // drho_SET * (c3o64 - c3o16 * xoff + c3o16 * yoff - c1o16 * zoff) + + // drho_SEB * (c1o64 - c1o16 * xoff + c1o16 * yoff + c1o16 * zoff) + + // drho_NEB * (c3o64 - c3o16 * xoff - c1o16 * yoff + c3o16 * zoff) + + // drho_SWB * (c3o64 + c1o16 * xoff + c3o16 * yoff + c3o16 * zoff) + + // drho_NWB * (c9o64 + c3o16 * xoff - c3o16 * yoff + c9o16 * zoff); + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; + vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); + vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); + vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); + //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); + //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); + //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1; + //oMdrho = one - mfaaa; + + //2.f + // linear combinations + mxxPyyPzz = mfaaa - c2o3*(ax + by + c2o1*axx*x + bxy*x + axy*y + c2o1*byy*y + axz*z + byz*z + bxyz*x*z + axyz*y*z + cz - cxz*x + cyz*y + cxyz*x*y + c2o1*czz*z)*eps_new / oP* (c1o1 + press); + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); + //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mfbbb = c0o1; + + //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); + //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); + //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); + //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyPyzz = c0o1; + + //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); + //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); + //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyMyzz = c0o1; + + //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); + //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); + //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzPyyz = c0o1; + + //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); + //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); + //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzMyyz = c0o1; + + //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); + //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; + //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); + //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyPxzz = c0o1; + + //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); + //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); + //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyMxzz = c0o1; + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////// + //index + k000 = k00M; + kM00 = kM0M; + k0M0 = k0MM; + k00M = neighborFZ[k00M]; + kMM0 = kMMM; + kM0M = neighborFZ[kM0M]; + k0MM = neighborFZ[k0MM]; + kMMM = neighborFZ[kMMM]; + //////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + fP00dest[k000] = mfcbb; + fM00dest[kM00] = mfabb; + f0P0dest[k000] = mfbcb; + f0M0dest[k0M0] = mfbab; + f00Pdest[k000] = mfbbc; + f00Mdest[k00M] = mfbba; + fPP0dest[k000] = mfccb; + fMM0dest[kMM0] = mfaab; + fPM0dest[k0M0] = mfcab; + fMP0dest[kM00] = mfacb; + fP0Pdest[k000] = mfcbc; + fM0Mdest[kM0M] = mfaba; + fP0Mdest[k00M] = mfcba; + fM0Pdest[kM00] = mfabc; + f0PPdest[k000] = mfbcc; + f0MMdest[k0MM] = mfbaa; + f0PMdest[k00M] = mfbca; + f0MPdest[k0M0] = mfbac; + f000dest[k000] = mfbbb; + fMMMdest[kMMM] = mfaaa; + fMMPdest[kMM0] = mfaac; + fMPPdest[kM00] = mfacc; + fMPMdest[kM0M] = mfaca; + fPPMdest[k00M] = mfcca; + fPPPdest[k000] = mfccc; + fPMPdest[k0M0] = mfcac; + fPMMdest[k0MM] = mfcaa; + //////////////////////////////////////////////////////////////////////////////////// + + + //reset + mfcbb = c0o1; + mfabb = c0o1; + mfbcb = c0o1; + mfbab = c0o1; + mfbbc = c0o1; + mfbba = c0o1; + mfccb = c0o1; + mfaab = c0o1; + mfcab = c0o1; + mfacb = c0o1; + mfcbc = c0o1; + mfaba = c0o1; + mfcba = c0o1; + mfabc = c0o1; + mfbcc = c0o1; + mfbaa = c0o1; + mfbca = c0o1; + mfbac = c0o1; + mfbbb = c0o1; + mfccc = c0o1; + mfaac = c0o1; + mfcac = c0o1; + mfacc = c0o1; + mfcca = c0o1; + mfaaa = c0o1; + mfcaa = c0o1; + mfaca = c0o1; + + + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position NET 0.25f, 0.25f, 0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = c1o4; + y = c1o4; + z = c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho = c9o64*drho_NEB+c27o64*drho_NET+c3o64*drho_NWB+c9o64*drho_NWT+c3o64*drho_SEB+c9o64*drho_SET+c1o64*drho_SWB+c3o64*drho_SWT; + //press = press_NET * (c27o64 - c9o16 * mxoff - c9o16 * myoff - c9o16 * mzoff) + + // press_NWT * (c9o64 + c9o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + + // press_SET * (c9o64 - c3o16 * mxoff + c9o16 * myoff - c3o16 * mzoff) + + // press_SWT * (c3o64 + c3o16 * mxoff + c3o16 * myoff - c1o16 * mzoff) + + // press_SWB * (c1o64 + c1o16 * mxoff + c1o16 * myoff + c1o16 * mzoff) + + // press_NWB * (c3o64 + c3o16 * mxoff - c1o16 * myoff + c3o16 * mzoff) + + // press_SEB * (c3o64 - c1o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + + // press_NEB * (c9o64 - c3o16 * mxoff - c3o16 * myoff + c9o16 * mzoff); + //drho = drho_NET * (c27o64 - c9o16 * xoff - c9o16 * yoff - c9o16 * zoff) + + // drho_NWT * (c9o64 + c9o16 * xoff - c3o16 * yoff - c3o16 * zoff) + + // drho_SET * (c9o64 - c3o16 * xoff + c9o16 * yoff - c3o16 * zoff) + + // drho_SWT * (c3o64 + c3o16 * xoff + c3o16 * yoff - c1o16 * zoff) + + // drho_SWB * (c1o64 + c1o16 * xoff + c1o16 * yoff + c1o16 * zoff) + + // drho_NWB * (c3o64 + c3o16 * xoff - c1o16 * yoff + c3o16 * zoff) + + // drho_SEB * (c3o64 - c1o16 * xoff + c3o16 * yoff + c3o16 * zoff) + + // drho_NEB * (c9o64 - c3o16 * xoff - c3o16 * yoff + c9o16 * zoff); + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; + vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); + vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); + vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); + //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); + //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); + //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1; + //oMdrho = one - mfaaa; + + //2.f + // linear combinations + mxxPyyPzz = mfaaa - c2o3*(ax + by + c2o1*axx*x + bxy*x + axy*y + c2o1*byy*y + axz*z + byz*z + bxyz*x*z + axyz*y*z + cz - cxz*x + cyz*y + cxyz*x*y + c2o1*czz*z)*eps_new / oP* (c1o1 + press); + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); + //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mfbbb = c0o1; + + //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); + //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); + //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); + //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyPyzz = c0o1; + + //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); + //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); + //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyMyzz = c0o1; + + //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); + //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); + //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzPyyz = c0o1; + + //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); + //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); + //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzMyyz = c0o1; + + //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); + //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; + //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); + //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyPxzz = c0o1; + + //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); + //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); + //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyMxzz = c0o1; + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////// + //index + k000 = kM00; + kM00 = neighborFX[kM00]; + k0M0 = kMM0; + k00M = kM0M; + kMM0 = neighborFX[kMM0]; + kM0M = neighborFX[kM0M]; + k0MM = kMMM; + kMMM = neighborFX[kMMM]; + //////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + fP00dest[k000] = mfcbb; + fM00dest[kM00] = mfabb; + f0P0dest[k000] = mfbcb; + f0M0dest[k0M0] = mfbab; + f00Pdest[k000] = mfbbc; + f00Mdest[k00M] = mfbba; + fPP0dest[k000] = mfccb; + fMM0dest[kMM0] = mfaab; + fPM0dest[k0M0] = mfcab; + fMP0dest[kM00] = mfacb; + fP0Pdest[k000] = mfcbc; + fM0Mdest[kM0M] = mfaba; + fP0Mdest[k00M] = mfcba; + fM0Pdest[kM00] = mfabc; + f0PPdest[k000] = mfbcc; + f0MMdest[k0MM] = mfbaa; + f0PMdest[k00M] = mfbca; + f0MPdest[k0M0] = mfbac; + f000dest[k000] = mfbbb; + fMMMdest[kMMM] = mfaaa; + fMMPdest[kMM0] = mfaac; + fMPPdest[kM00] = mfacc; + fMPMdest[kM0M] = mfaca; + fPPMdest[k00M] = mfcca; + fPPPdest[k000] = mfccc; + fPMPdest[k0M0] = mfcac; + fPMMdest[k0MM] = mfcaa; + //////////////////////////////////////////////////////////////////////////////////// + + + //reset + mfcbb = c0o1; + mfabb = c0o1; + mfbcb = c0o1; + mfbab = c0o1; + mfbbc = c0o1; + mfbba = c0o1; + mfccb = c0o1; + mfaab = c0o1; + mfcab = c0o1; + mfacb = c0o1; + mfcbc = c0o1; + mfaba = c0o1; + mfcba = c0o1; + mfabc = c0o1; + mfbcc = c0o1; + mfbaa = c0o1; + mfbca = c0o1; + mfbac = c0o1; + mfbbb = c0o1; + mfccc = c0o1; + mfaac = c0o1; + mfcac = c0o1; + mfacc = c0o1; + mfcca = c0o1; + mfaaa = c0o1; + mfcaa = c0o1; + mfaca = c0o1; + + + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position NEB 0.25f, 0.25f, -0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = c1o4; + y = c1o4; + z = -c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho = c27o64*drho_NEB+c9o64*drho_NET+c9o64*drho_NWB+c3o64*drho_NWT+c9o64*drho_SEB+c3o64*drho_SET+c3o64*drho_SWB+c1o64*drho_SWT; + //press = press_NET * (c9o64 - c3o16 * mxoff - c3o16 * myoff - c9o16 * mzoff) + + // press_NWT * (c3o64 + c3o16 * mxoff - c1o16 * myoff - c3o16 * mzoff) + + // press_SET * (c3o64 - c1o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + + // press_SWT * (c1o64 + c1o16 * mxoff + c1o16 * myoff - c1o16 * mzoff) + + // press_SWB * (c3o64 + c3o16 * mxoff + c3o16 * myoff + c1o16 * mzoff) + + // press_NWB * (c9o64 + c9o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + + // press_SEB * (c9o64 - c3o16 * mxoff + c9o16 * myoff + c3o16 * mzoff) + + // press_NEB * (c27o64 - c9o16 * mxoff - c9o16 * myoff + c9o16 * mzoff); + //drho = drho_NET * (c9o64 - c3o16 * xoff - c3o16 * yoff - c9o16 * zoff) + + // drho_NWT * (c3o64 + c3o16 * xoff - c1o16 * yoff - c3o16 * zoff) + + // drho_SET * (c3o64 - c1o16 * xoff + c3o16 * yoff - c3o16 * zoff) + + // drho_SWT * (c1o64 + c1o16 * xoff + c1o16 * yoff - c1o16 * zoff) + + // drho_SWB * (c3o64 + c3o16 * xoff + c3o16 * yoff + c1o16 * zoff) + + // drho_NWB * (c9o64 + c9o16 * xoff - c3o16 * yoff + c3o16 * zoff) + + // drho_SEB * (c9o64 - c3o16 * xoff + c9o16 * yoff + c3o16 * zoff) + + // drho_NEB * (c27o64 - c9o16 * xoff - c9o16 * yoff + c9o16 * zoff); + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; + vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); + vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); + vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); + //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); + //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); + //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1; + //oMdrho = one - mfaaa; + + //2.f + // linear combinations + mxxPyyPzz = mfaaa - c2o3*(ax + by + c2o1*axx*x + bxy*x + axy*y + c2o1*byy*y + axz*z + byz*z + bxyz*x*z + axyz*y*z + cz - cxz*x + cyz*y + cxyz*x*y + c2o1*czz*z)*eps_new / oP* (c1o1 + press); + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); + //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mfbbb = c0o1; + + //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); + //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); + //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); + //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyPyzz = c0o1; + + //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); + //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); + //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyMyzz = c0o1; + + //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); + //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); + //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzPyyz = c0o1; + + //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); + //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); + //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzMyyz = c0o1; + + //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); + //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; + //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); + //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyPxzz = c0o1; + + //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); + //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); + //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyMxzz = c0o1; + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////// + //index + k00M = k000; + kM0M = kM00; + k0MM = k0M0; + kMMM = kMM0; + k000 = kM00base; + kM00 = neighborFX[kM00base]; + k0M0 = kMM0base; + kMM0 = neighborFX[kMM0base]; + //////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + fP00dest[k000] = mfcbb; + fM00dest[kM00] = mfabb; + f0P0dest[k000] = mfbcb; + f0M0dest[k0M0] = mfbab; + f00Pdest[k000] = mfbbc; + f00Mdest[k00M] = mfbba; + fPP0dest[k000] = mfccb; + fMM0dest[kMM0] = mfaab; + fPM0dest[k0M0] = mfcab; + fMP0dest[kM00] = mfacb; + fP0Pdest[k000] = mfcbc; + fM0Mdest[kM0M] = mfaba; + fP0Mdest[k00M] = mfcba; + fM0Pdest[kM00] = mfabc; + f0PPdest[k000] = mfbcc; + f0MMdest[k0MM] = mfbaa; + f0PMdest[k00M] = mfbca; + f0MPdest[k0M0] = mfbac; + f000dest[k000] = mfbbb; + fMMMdest[kMMM] = mfaaa; + fMMPdest[kMM0] = mfaac; + fMPPdest[kM00] = mfacc; + fMPMdest[kM0M] = mfaca; + fPPMdest[k00M] = mfcca; + fPPPdest[k000] = mfccc; + fPMPdest[k0M0] = mfcac; + fPMMdest[k0MM] = mfcaa; + //////////////////////////////////////////////////////////////////////////////////// } } ////////////////////////////////////////////////////////////////////////// @@ -4084,27 +4084,27 @@ __global__ void scaleCF_0817_comp_27( real* DC, ////////////////////////////////////////////////////////////////////////// __global__ void scaleCF_AA2016_comp_27(real* DC, - real* DF, - unsigned int* neighborCX, - unsigned int* neighborCY, - unsigned int* neighborCZ, - unsigned int* neighborFX, - unsigned int* neighborFY, - unsigned int* neighborFZ, - unsigned long long numberOfLBnodesCoarse, - unsigned long long numberOfLBnodesFine, - bool isEvenTimestep, - unsigned int* posCSWB, - unsigned int* posFSWB, - unsigned int kCF, - real omCoarse, - real omFine, - real nu, - unsigned int nxC, - unsigned int nyC, - unsigned int nxF, - unsigned int nyF, - ICellNeigh offCF) + real* DF, + unsigned int* neighborCX, + unsigned int* neighborCY, + unsigned int* neighborCZ, + unsigned int* neighborFX, + unsigned int* neighborFY, + unsigned int* neighborFZ, + unsigned long long numberOfLBnodesCoarse, + unsigned long long numberOfLBnodesFine, + bool isEvenTimestep, + unsigned int* posCSWB, + unsigned int* posFSWB, + unsigned int kCF, + real omCoarse, + real omFine, + real nu, + unsigned int nxC, + unsigned int nyC, + unsigned int nxF, + unsigned int nyF, + ICellNeigh offCF) { real *feF, *fwF, *fnF, *fsF, *ftF, *fbF, *fneF, *fswF, *fseF, *fnwF, *fteF, *fbwF, *fbeF, *ftwF, *ftnF, *fbsF, *fbnF, *ftsF, *fzeroF, *ftneF, *ftswF, *ftseF, *ftnwF, *fbneF, *fbswF, *fbseF, *fbnwF; @@ -4244,26 +4244,26 @@ __global__ void scaleCF_AA2016_comp_27(real* DC, real a0, ax, ay, az, axx, ayy, azz, axy, axz, ayz, b0, bx, by, bz, bxx, byy, bzz, bxy, bxz, byz, c0, cx, cy, cz, cxx, cyy, czz, cxy, cxz, cyz, axyz, bxyz, cxyz; real d0, dx, dy, dz, dxy, dxz, dyz, dxyz; real x,y,z; - ////////////////////////////////////////////////////////////////////////////////////// - real mfcbb, mfabb, mfbcb, mfbab, mfbbc, mfbba, mfccb, mfaab, mfcab, mfacb, mfcbc, mfaba, mfcba, mfabc, mfbcc, mfbaa, mfbca, mfbac, mfbbb, mfccc, mfaac, mfcac, mfacc, mfcca, mfaaa, mfcaa, mfaca; - //real wadjust; - //real qudricLimitP = 0.01f;// * 0.0001f; + ////////////////////////////////////////////////////////////////////////////////////// + real mfcbb, mfabb, mfbcb, mfbab, mfbbc, mfbba, mfccb, mfaab, mfcab, mfacb, mfcbc, mfaba, mfcba, mfabc, mfbcc, mfbaa, mfbca, mfbac, mfbbb, mfccc, mfaac, mfcac, mfacc, mfcca, mfaaa, mfcaa, mfaca; + //real wadjust; + //real qudricLimitP = 0.01f;// * 0.0001f; //real qudricLimitM = 0.01f;// * 0.0001f; - //real qudricLimitD = 0.01f;// * 0.001f; - //real omega = omCoarse; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real m0, m1, m2, vvx, vvy, vvz, vx2, vy2, vz2, oMdrho; - real mxxPyyPzz, mxxMyy, mxxMzz, mxxyPyzz, mxxyMyzz, mxxzPyyz, mxxzMyyz, mxyyPxzz, mxyyMxzz; - real NeqOn = c1o1; - real drho, rho; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //real OxxPyyPzz; - //real OxyyPxzz; - //real OxyyMxzz; - //real Oxyz ; - //real O4, O5, O6; - //real CUMcbb, CUMbcb, CUMbbc, CUMcca, CUMcac, CUMacc, CUMbcc, CUMcbc, CUMccb, CUMccc; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //real qudricLimitD = 0.01f;// * 0.001f; + //real omega = omCoarse; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + real m0, m1, m2, vvx, vvy, vvz, vx2, vy2, vz2, oMdrho; + real mxxPyyPzz, mxxMyy, mxxMzz, mxxyPyzz, mxxyMyzz, mxxzPyyz, mxxzMyyz, mxyyPxzz, mxyyMxzz; + real NeqOn = c1o1; + real drho, rho; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //real OxxPyyPzz; + //real OxyyPxzz; + //real OxyyMxzz; + //real Oxyz ; + //real O4, O5, O6; + //real CUMcbb, CUMbcb, CUMbbc, CUMcca, CUMcac, CUMacc, CUMbcc, CUMcbc, CUMccb, CUMccc; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -4329,8 +4329,8 @@ __global__ void scaleCF_AA2016_comp_27(real* DC, drho_SWB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; vx1_SWB = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_SWB); - vx2_SWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SWB); - vx3_SWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SWB); + vx2_SWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SWB); + vx3_SWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SWB); kxyFromfcNEQ_SWB = -c3o1*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_SWB) - ((vx1_SWB*vx2_SWB))); kyzFromfcNEQ_SWB = -c3o1*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_SWB) - ((vx2_SWB*vx3_SWB))); @@ -4338,306 +4338,306 @@ __global__ void scaleCF_AA2016_comp_27(real* DC, kxxMyyFromfcNEQ_SWB = -c3o2*omegaS *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_SWB) - ((vx1_SWB*vx1_SWB-vx2_SWB*vx2_SWB))); kxxMzzFromfcNEQ_SWB = -c3o2*omegaS *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_SWB) - ((vx1_SWB*vx1_SWB-vx3_SWB*vx3_SWB))); - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - mfcbb = f_E ; - mfabb = f_W ; - mfbcb = f_N ; - mfbab = f_S ; - mfbbc = f_T ; - mfbba = f_B ; - mfccb = f_NE ; - mfaab = f_SW ; - mfcab = f_SE ; - mfacb = f_NW ; - mfcbc = f_TE ; - mfaba = f_BW ; - mfcba = f_BE ; - mfabc = f_TW ; - mfbcc = f_TN ; - mfbaa = f_BS ; - mfbca = f_BN ; - mfbac = f_TS ; - mfbbb = f_ZERO; - mfccc = f_TNE ; - mfaac = f_TSW ; - mfcac = f_TSE ; - mfacc = f_TNW ; - mfcca = f_BNE ; - mfaaa = f_BSW ; - mfcaa = f_BSE ; - mfaca = f_BNW ; - //////////////////////////////////////////////////////////////////////////////////// - drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + - (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + - ((mfabb+mfcbb) + (mfbab+mfbcb)) + (mfbba+mfbbc)) + mfbbb; - - rho = c1o1+drho; - //////////////////////////////////////////////////////////////////////////////////// - vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + - (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + - (mfcbb-mfabb)) / rho; - vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + - (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + - (mfbcb-mfbab)) / rho; - vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + - (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + - (mfbbc-mfbba)) / rho; - //////////////////////////////////////////////////////////////////////////////////// - //fast - oMdrho = c1o1; // comp special - vx2=vvx*vvx; - vy2=vvy*vvy; - vz2=vvz*vvz; - //////////////////////////////////////////////////////////////////////////////////// - //Hin - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m2 = mfaaa + mfaac; - m1 = mfaac - mfaaa; - m0 = m2 + mfaab; - mfaaa = m0; - m0 += c1o36 * oMdrho; - mfaab = m1 - m0 * vvz; - mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfabc; - m1 = mfabc - mfaba; - m0 = m2 + mfabb; - mfaba = m0; - m0 += c1o9 * oMdrho; - mfabb = m1 - m0 * vvz; - mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfacc; - m1 = mfacc - mfaca; - m0 = m2 + mfacb; - mfaca = m0; - m0 += c1o36 * oMdrho; - mfacb = m1 - m0 * vvz; - mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbac; - m1 = mfbac - mfbaa; - m0 = m2 + mfbab; - mfbaa = m0; - m0 += c1o9 * oMdrho; - mfbab = m1 - m0 * vvz; - mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbba + mfbbc; - m1 = mfbbc - mfbba; - m0 = m2 + mfbbb; - mfbba = m0; - m0 += c4o9 * oMdrho; - mfbbb = m1 - m0 * vvz; - mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbca + mfbcc; - m1 = mfbcc - mfbca; - m0 = m2 + mfbcb; - mfbca = m0; - m0 += c1o9 * oMdrho; - mfbcb = m1 - m0 * vvz; - mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcac; - m1 = mfcac - mfcaa; - m0 = m2 + mfcab; - mfcaa = m0; - m0 += c1o36 * oMdrho; - mfcab = m1 - m0 * vvz; - mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcba + mfcbc; - m1 = mfcbc - mfcba; - m0 = m2 + mfcbb; - mfcba = m0; - m0 += c1o9 * oMdrho; - mfcbb = m1 - m0 * vvz; - mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcca + mfccc; - m1 = mfccc - mfcca; - m0 = m2 + mfccb; - mfcca = m0; - m0 += c1o36 * oMdrho; - mfccb = m1 - m0 * vvz; - mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m2 = mfaaa + mfaca; - m1 = mfaca - mfaaa; - m0 = m2 + mfaba; - mfaaa = m0; - m0 += c1o6 * oMdrho; - mfaba = m1 - m0 * vvy; - mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfacb; - m1 = mfacb - mfaab; - m0 = m2 + mfabb; - mfaab = m0; - mfabb = m1 - m0 * vvy; - mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfacc; - m1 = mfacc - mfaac; - m0 = m2 + mfabc; - mfaac = m0; - m0 += c1o18 * oMdrho; - mfabc = m1 - m0 * vvy; - mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbca; - m1 = mfbca - mfbaa; - m0 = m2 + mfbba; - mfbaa = m0; - m0 += c2o3 * oMdrho; - mfbba = m1 - m0 * vvy; - mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbab + mfbcb; - m1 = mfbcb - mfbab; - m0 = m2 + mfbbb; - mfbab = m0; - mfbbb = m1 - m0 * vvy; - mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbac + mfbcc; - m1 = mfbcc - mfbac; - m0 = m2 + mfbbc; - mfbac = m0; - m0 += c2o9 * oMdrho; - mfbbc = m1 - m0 * vvy; - mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcca; - m1 = mfcca - mfcaa; - m0 = m2 + mfcba; - mfcaa = m0; - m0 += c1o6 * oMdrho; - mfcba = m1 - m0 * vvy; - mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcab + mfccb; - m1 = mfccb - mfcab; - m0 = m2 + mfcbb; - mfcab = m0; - mfcbb = m1 - m0 * vvy; - mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcac + mfccc; - m1 = mfccc - mfcac; - m0 = m2 + mfcbc; - mfcac = m0; - m0 += c1o18 * oMdrho; - mfcbc = m1 - m0 * vvy; - mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m2 = mfaaa + mfcaa; - m1 = mfcaa - mfaaa; - m0 = m2 + mfbaa; - mfaaa = m0; - m0 += c1o1* oMdrho; - mfbaa = m1 - m0 * vvx; - mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfcba; - m1 = mfcba - mfaba; - m0 = m2 + mfbba; - mfaba = m0; - mfbba = m1 - m0 * vvx; - mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfcca; - m1 = mfcca - mfaca; - m0 = m2 + mfbca; - mfaca = m0; - m0 += c1o3 * oMdrho; - mfbca = m1 - m0 * vvx; - mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfcab; - m1 = mfcab - mfaab; - m0 = m2 + mfbab; - mfaab = m0; - mfbab = m1 - m0 * vvx; - mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabb + mfcbb; - m1 = mfcbb - mfabb; - m0 = m2 + mfbbb; - mfabb = m0; - mfbbb = m1 - m0 * vvx; - mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacb + mfccb; - m1 = mfccb - mfacb; - m0 = m2 + mfbcb; - mfacb = m0; - mfbcb = m1 - m0 * vvx; - mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfcac; - m1 = mfcac - mfaac; - m0 = m2 + mfbac; - mfaac = m0; - m0 += c1o3 * oMdrho; - mfbac = m1 - m0 * vvx; - mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabc + mfcbc; - m1 = mfcbc - mfabc; - m0 = m2 + mfbbc; - mfabc = m0; - mfbbc = m1 - m0 * vvx; - mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacc + mfccc; - m1 = mfccc - mfacc; - m0 = m2 + mfbcc; - mfacc = m0; - m0 += c1o9 * oMdrho; - mfbcc = m1 - m0 * vvx; - mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - // linear combinations + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + mfcbb = f_E ; + mfabb = f_W ; + mfbcb = f_N ; + mfbab = f_S ; + mfbbc = f_T ; + mfbba = f_B ; + mfccb = f_NE ; + mfaab = f_SW ; + mfcab = f_SE ; + mfacb = f_NW ; + mfcbc = f_TE ; + mfaba = f_BW ; + mfcba = f_BE ; + mfabc = f_TW ; + mfbcc = f_TN ; + mfbaa = f_BS ; + mfbca = f_BN ; + mfbac = f_TS ; + mfbbb = f_ZERO; + mfccc = f_TNE ; + mfaac = f_TSW ; + mfcac = f_TSE ; + mfacc = f_TNW ; + mfcca = f_BNE ; + mfaaa = f_BSW ; + mfcaa = f_BSE ; + mfaca = f_BNW ; + //////////////////////////////////////////////////////////////////////////////////// + drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + + (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + + ((mfabb+mfcbb) + (mfbab+mfbcb)) + (mfbba+mfbbc)) + mfbbb; + + rho = c1o1+drho; + //////////////////////////////////////////////////////////////////////////////////// + vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + + (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + + (mfcbb-mfabb)) / rho; + vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + + (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + + (mfbcb-mfbab)) / rho; + vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + + (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + + (mfbbc-mfbba)) / rho; + //////////////////////////////////////////////////////////////////////////////////// + //fast + oMdrho = c1o1; // comp special + vx2=vvx*vvx; + vy2=vvy*vvy; + vz2=vvz*vvz; + //////////////////////////////////////////////////////////////////////////////////// + //Hin + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m2 = mfaaa + mfaac; + m1 = mfaac - mfaaa; + m0 = m2 + mfaab; + mfaaa = m0; + m0 += c1o36 * oMdrho; + mfaab = m1 - m0 * vvz; + mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfabc; + m1 = mfabc - mfaba; + m0 = m2 + mfabb; + mfaba = m0; + m0 += c1o9 * oMdrho; + mfabb = m1 - m0 * vvz; + mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfacc; + m1 = mfacc - mfaca; + m0 = m2 + mfacb; + mfaca = m0; + m0 += c1o36 * oMdrho; + mfacb = m1 - m0 * vvz; + mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbac; + m1 = mfbac - mfbaa; + m0 = m2 + mfbab; + mfbaa = m0; + m0 += c1o9 * oMdrho; + mfbab = m1 - m0 * vvz; + mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbba + mfbbc; + m1 = mfbbc - mfbba; + m0 = m2 + mfbbb; + mfbba = m0; + m0 += c4o9 * oMdrho; + mfbbb = m1 - m0 * vvz; + mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbca + mfbcc; + m1 = mfbcc - mfbca; + m0 = m2 + mfbcb; + mfbca = m0; + m0 += c1o9 * oMdrho; + mfbcb = m1 - m0 * vvz; + mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcac; + m1 = mfcac - mfcaa; + m0 = m2 + mfcab; + mfcaa = m0; + m0 += c1o36 * oMdrho; + mfcab = m1 - m0 * vvz; + mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcba + mfcbc; + m1 = mfcbc - mfcba; + m0 = m2 + mfcbb; + mfcba = m0; + m0 += c1o9 * oMdrho; + mfcbb = m1 - m0 * vvz; + mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcca + mfccc; + m1 = mfccc - mfcca; + m0 = m2 + mfccb; + mfcca = m0; + m0 += c1o36 * oMdrho; + mfccb = m1 - m0 * vvz; + mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m2 = mfaaa + mfaca; + m1 = mfaca - mfaaa; + m0 = m2 + mfaba; + mfaaa = m0; + m0 += c1o6 * oMdrho; + mfaba = m1 - m0 * vvy; + mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfacb; + m1 = mfacb - mfaab; + m0 = m2 + mfabb; + mfaab = m0; + mfabb = m1 - m0 * vvy; + mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfacc; + m1 = mfacc - mfaac; + m0 = m2 + mfabc; + mfaac = m0; + m0 += c1o18 * oMdrho; + mfabc = m1 - m0 * vvy; + mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbca; + m1 = mfbca - mfbaa; + m0 = m2 + mfbba; + mfbaa = m0; + m0 += c2o3 * oMdrho; + mfbba = m1 - m0 * vvy; + mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbab + mfbcb; + m1 = mfbcb - mfbab; + m0 = m2 + mfbbb; + mfbab = m0; + mfbbb = m1 - m0 * vvy; + mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbac + mfbcc; + m1 = mfbcc - mfbac; + m0 = m2 + mfbbc; + mfbac = m0; + m0 += c2o9 * oMdrho; + mfbbc = m1 - m0 * vvy; + mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcca; + m1 = mfcca - mfcaa; + m0 = m2 + mfcba; + mfcaa = m0; + m0 += c1o6 * oMdrho; + mfcba = m1 - m0 * vvy; + mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcab + mfccb; + m1 = mfccb - mfcab; + m0 = m2 + mfcbb; + mfcab = m0; + mfcbb = m1 - m0 * vvy; + mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcac + mfccc; + m1 = mfccc - mfcac; + m0 = m2 + mfcbc; + mfcac = m0; + m0 += c1o18 * oMdrho; + mfcbc = m1 - m0 * vvy; + mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m2 = mfaaa + mfcaa; + m1 = mfcaa - mfaaa; + m0 = m2 + mfbaa; + mfaaa = m0; + m0 += c1o1* oMdrho; + mfbaa = m1 - m0 * vvx; + mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfcba; + m1 = mfcba - mfaba; + m0 = m2 + mfbba; + mfaba = m0; + mfbba = m1 - m0 * vvx; + mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfcca; + m1 = mfcca - mfaca; + m0 = m2 + mfbca; + mfaca = m0; + m0 += c1o3 * oMdrho; + mfbca = m1 - m0 * vvx; + mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfcab; + m1 = mfcab - mfaab; + m0 = m2 + mfbab; + mfaab = m0; + mfbab = m1 - m0 * vvx; + mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabb + mfcbb; + m1 = mfcbb - mfabb; + m0 = m2 + mfbbb; + mfabb = m0; + mfbbb = m1 - m0 * vvx; + mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacb + mfccb; + m1 = mfccb - mfacb; + m0 = m2 + mfbcb; + mfacb = m0; + mfbcb = m1 - m0 * vvx; + mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfcac; + m1 = mfcac - mfaac; + m0 = m2 + mfbac; + mfaac = m0; + m0 += c1o3 * oMdrho; + mfbac = m1 - m0 * vvx; + mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabc + mfcbc; + m1 = mfcbc - mfabc; + m0 = m2 + mfbbc; + mfabc = m0; + mfbbc = m1 - m0 * vvx; + mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacc + mfccc; + m1 = mfccc - mfacc; + m0 = m2 + mfbcc; + mfacc = m0; + m0 += c1o9 * oMdrho; + mfbcc = m1 - m0 * vvx; + mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + // linear combinations - mxxyPyzz = mfcba + mfabc; - mxxyMyzz = mfcba - mfabc; + mxxyPyzz = mfcba + mfabc; + mxxyMyzz = mfcba - mfabc; - mxxzPyyz = mfcab + mfacb; - mxxzMyyz = mfcab - mfacb; + mxxzPyyz = mfcab + mfacb; + mxxzMyyz = mfcab - mfacb; - mxyyPxzz = mfbca + mfbac; - mxyyMxzz = mfbca - mfbac; + mxyyPxzz = mfbca + mfbac; + mxyyMxzz = mfbca - mfbac; - ////////////////////////////////////////////////////////////////////////// - //exclusive for this source node - real mfbbb_SWB = mfbbb; - real mxxyPyzz_SWB = mxxyPyzz; - real mxxyMyzz_SWB = mxxyMyzz; - real mxxzPyyz_SWB = mxxzPyyz; - real mxxzMyyz_SWB = mxxzMyyz; - real mxyyPxzz_SWB = mxyyPxzz; - real mxyyMxzz_SWB = mxyyMxzz; - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// + //exclusive for this source node + real mfbbb_SWB = mfbbb; + real mxxyPyzz_SWB = mxxyPyzz; + real mxxyMyzz_SWB = mxxyMyzz; + real mxxzPyyz_SWB = mxxzPyyz; + real mxxzMyyz_SWB = mxxzMyyz; + real mxyyPxzz_SWB = mxyyPxzz; + real mxyyMxzz_SWB = mxyyMxzz; + ////////////////////////////////////////////////////////////////////////// @@ -4735,8 +4735,8 @@ __global__ void scaleCF_AA2016_comp_27(real* DC, drho_SWT = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; vx1_SWT = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_SWT); - vx2_SWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SWT); - vx3_SWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SWT); + vx2_SWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SWT); + vx3_SWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SWT); kxyFromfcNEQ_SWT = -c3o1*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_SWT) - ((vx1_SWT*vx2_SWT))); kyzFromfcNEQ_SWT = -c3o1*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_SWT) - ((vx2_SWT*vx3_SWT))); @@ -4744,306 +4744,306 @@ __global__ void scaleCF_AA2016_comp_27(real* DC, kxxMyyFromfcNEQ_SWT = -c3o2*omegaS *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_SWT) - ((vx1_SWT*vx1_SWT-vx2_SWT*vx2_SWT))); kxxMzzFromfcNEQ_SWT = -c3o2*omegaS *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_SWT) - ((vx1_SWT*vx1_SWT-vx3_SWT*vx3_SWT))); - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - mfcbb = f_E ; - mfabb = f_W ; - mfbcb = f_N ; - mfbab = f_S ; - mfbbc = f_T ; - mfbba = f_B ; - mfccb = f_NE ; - mfaab = f_SW ; - mfcab = f_SE ; - mfacb = f_NW ; - mfcbc = f_TE ; - mfaba = f_BW ; - mfcba = f_BE ; - mfabc = f_TW ; - mfbcc = f_TN ; - mfbaa = f_BS ; - mfbca = f_BN ; - mfbac = f_TS ; - mfbbb = f_ZERO; - mfccc = f_TNE ; - mfaac = f_TSW ; - mfcac = f_TSE ; - mfacc = f_TNW ; - mfcca = f_BNE ; - mfaaa = f_BSW ; - mfcaa = f_BSE ; - mfaca = f_BNW ; - //////////////////////////////////////////////////////////////////////////////////// - drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + - (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + - ((mfabb+mfcbb) + (mfbab+mfbcb)) + (mfbba+mfbbc)) + mfbbb; - - rho = c1o1+drho; - //////////////////////////////////////////////////////////////////////////////////// - vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + - (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + - (mfcbb-mfabb)) / rho; - vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + - (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + - (mfbcb-mfbab)) / rho; - vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + - (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + - (mfbbc-mfbba)) / rho; - //////////////////////////////////////////////////////////////////////////////////// - //fast - oMdrho = c1o1; // comp special - vx2=vvx*vvx; - vy2=vvy*vvy; - vz2=vvz*vvz; - //////////////////////////////////////////////////////////////////////////////////// - //Hin - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m2 = mfaaa + mfaac; - m1 = mfaac - mfaaa; - m0 = m2 + mfaab; - mfaaa = m0; - m0 += c1o36 * oMdrho; - mfaab = m1 - m0 * vvz; - mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfabc; - m1 = mfabc - mfaba; - m0 = m2 + mfabb; - mfaba = m0; - m0 += c1o9 * oMdrho; - mfabb = m1 - m0 * vvz; - mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfacc; - m1 = mfacc - mfaca; - m0 = m2 + mfacb; - mfaca = m0; - m0 += c1o36 * oMdrho; - mfacb = m1 - m0 * vvz; - mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbac; - m1 = mfbac - mfbaa; - m0 = m2 + mfbab; - mfbaa = m0; - m0 += c1o9 * oMdrho; - mfbab = m1 - m0 * vvz; - mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbba + mfbbc; - m1 = mfbbc - mfbba; - m0 = m2 + mfbbb; - mfbba = m0; - m0 += c4o9 * oMdrho; - mfbbb = m1 - m0 * vvz; - mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbca + mfbcc; - m1 = mfbcc - mfbca; - m0 = m2 + mfbcb; - mfbca = m0; - m0 += c1o9 * oMdrho; - mfbcb = m1 - m0 * vvz; - mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcac; - m1 = mfcac - mfcaa; - m0 = m2 + mfcab; - mfcaa = m0; - m0 += c1o36 * oMdrho; - mfcab = m1 - m0 * vvz; - mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcba + mfcbc; - m1 = mfcbc - mfcba; - m0 = m2 + mfcbb; - mfcba = m0; - m0 += c1o9 * oMdrho; - mfcbb = m1 - m0 * vvz; - mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcca + mfccc; - m1 = mfccc - mfcca; - m0 = m2 + mfccb; - mfcca = m0; - m0 += c1o36 * oMdrho; - mfccb = m1 - m0 * vvz; - mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m2 = mfaaa + mfaca; - m1 = mfaca - mfaaa; - m0 = m2 + mfaba; - mfaaa = m0; - m0 += c1o6 * oMdrho; - mfaba = m1 - m0 * vvy; - mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfacb; - m1 = mfacb - mfaab; - m0 = m2 + mfabb; - mfaab = m0; - mfabb = m1 - m0 * vvy; - mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfacc; - m1 = mfacc - mfaac; - m0 = m2 + mfabc; - mfaac = m0; - m0 += c1o18 * oMdrho; - mfabc = m1 - m0 * vvy; - mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbca; - m1 = mfbca - mfbaa; - m0 = m2 + mfbba; - mfbaa = m0; - m0 += c2o3 * oMdrho; - mfbba = m1 - m0 * vvy; - mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbab + mfbcb; - m1 = mfbcb - mfbab; - m0 = m2 + mfbbb; - mfbab = m0; - mfbbb = m1 - m0 * vvy; - mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbac + mfbcc; - m1 = mfbcc - mfbac; - m0 = m2 + mfbbc; - mfbac = m0; - m0 += c2o9 * oMdrho; - mfbbc = m1 - m0 * vvy; - mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcca; - m1 = mfcca - mfcaa; - m0 = m2 + mfcba; - mfcaa = m0; - m0 += c1o6 * oMdrho; - mfcba = m1 - m0 * vvy; - mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcab + mfccb; - m1 = mfccb - mfcab; - m0 = m2 + mfcbb; - mfcab = m0; - mfcbb = m1 - m0 * vvy; - mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcac + mfccc; - m1 = mfccc - mfcac; - m0 = m2 + mfcbc; - mfcac = m0; - m0 += c1o18 * oMdrho; - mfcbc = m1 - m0 * vvy; - mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m2 = mfaaa + mfcaa; - m1 = mfcaa - mfaaa; - m0 = m2 + mfbaa; - mfaaa = m0; - m0 += c1o1* oMdrho; - mfbaa = m1 - m0 * vvx; - mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfcba; - m1 = mfcba - mfaba; - m0 = m2 + mfbba; - mfaba = m0; - mfbba = m1 - m0 * vvx; - mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfcca; - m1 = mfcca - mfaca; - m0 = m2 + mfbca; - mfaca = m0; - m0 += c1o3 * oMdrho; - mfbca = m1 - m0 * vvx; - mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfcab; - m1 = mfcab - mfaab; - m0 = m2 + mfbab; - mfaab = m0; - mfbab = m1 - m0 * vvx; - mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabb + mfcbb; - m1 = mfcbb - mfabb; - m0 = m2 + mfbbb; - mfabb = m0; - mfbbb = m1 - m0 * vvx; - mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacb + mfccb; - m1 = mfccb - mfacb; - m0 = m2 + mfbcb; - mfacb = m0; - mfbcb = m1 - m0 * vvx; - mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfcac; - m1 = mfcac - mfaac; - m0 = m2 + mfbac; - mfaac = m0; - m0 += c1o3 * oMdrho; - mfbac = m1 - m0 * vvx; - mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabc + mfcbc; - m1 = mfcbc - mfabc; - m0 = m2 + mfbbc; - mfabc = m0; - mfbbc = m1 - m0 * vvx; - mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacc + mfccc; - m1 = mfccc - mfacc; - m0 = m2 + mfbcc; - mfacc = m0; - m0 += c1o9 * oMdrho; - mfbcc = m1 - m0 * vvx; - mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - // linear combinations + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + mfcbb = f_E ; + mfabb = f_W ; + mfbcb = f_N ; + mfbab = f_S ; + mfbbc = f_T ; + mfbba = f_B ; + mfccb = f_NE ; + mfaab = f_SW ; + mfcab = f_SE ; + mfacb = f_NW ; + mfcbc = f_TE ; + mfaba = f_BW ; + mfcba = f_BE ; + mfabc = f_TW ; + mfbcc = f_TN ; + mfbaa = f_BS ; + mfbca = f_BN ; + mfbac = f_TS ; + mfbbb = f_ZERO; + mfccc = f_TNE ; + mfaac = f_TSW ; + mfcac = f_TSE ; + mfacc = f_TNW ; + mfcca = f_BNE ; + mfaaa = f_BSW ; + mfcaa = f_BSE ; + mfaca = f_BNW ; + //////////////////////////////////////////////////////////////////////////////////// + drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + + (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + + ((mfabb+mfcbb) + (mfbab+mfbcb)) + (mfbba+mfbbc)) + mfbbb; + + rho = c1o1+drho; + //////////////////////////////////////////////////////////////////////////////////// + vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + + (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + + (mfcbb-mfabb)) / rho; + vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + + (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + + (mfbcb-mfbab)) / rho; + vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + + (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + + (mfbbc-mfbba)) / rho; + //////////////////////////////////////////////////////////////////////////////////// + //fast + oMdrho = c1o1; // comp special + vx2=vvx*vvx; + vy2=vvy*vvy; + vz2=vvz*vvz; + //////////////////////////////////////////////////////////////////////////////////// + //Hin + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m2 = mfaaa + mfaac; + m1 = mfaac - mfaaa; + m0 = m2 + mfaab; + mfaaa = m0; + m0 += c1o36 * oMdrho; + mfaab = m1 - m0 * vvz; + mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfabc; + m1 = mfabc - mfaba; + m0 = m2 + mfabb; + mfaba = m0; + m0 += c1o9 * oMdrho; + mfabb = m1 - m0 * vvz; + mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfacc; + m1 = mfacc - mfaca; + m0 = m2 + mfacb; + mfaca = m0; + m0 += c1o36 * oMdrho; + mfacb = m1 - m0 * vvz; + mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbac; + m1 = mfbac - mfbaa; + m0 = m2 + mfbab; + mfbaa = m0; + m0 += c1o9 * oMdrho; + mfbab = m1 - m0 * vvz; + mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbba + mfbbc; + m1 = mfbbc - mfbba; + m0 = m2 + mfbbb; + mfbba = m0; + m0 += c4o9 * oMdrho; + mfbbb = m1 - m0 * vvz; + mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbca + mfbcc; + m1 = mfbcc - mfbca; + m0 = m2 + mfbcb; + mfbca = m0; + m0 += c1o9 * oMdrho; + mfbcb = m1 - m0 * vvz; + mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcac; + m1 = mfcac - mfcaa; + m0 = m2 + mfcab; + mfcaa = m0; + m0 += c1o36 * oMdrho; + mfcab = m1 - m0 * vvz; + mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcba + mfcbc; + m1 = mfcbc - mfcba; + m0 = m2 + mfcbb; + mfcba = m0; + m0 += c1o9 * oMdrho; + mfcbb = m1 - m0 * vvz; + mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcca + mfccc; + m1 = mfccc - mfcca; + m0 = m2 + mfccb; + mfcca = m0; + m0 += c1o36 * oMdrho; + mfccb = m1 - m0 * vvz; + mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m2 = mfaaa + mfaca; + m1 = mfaca - mfaaa; + m0 = m2 + mfaba; + mfaaa = m0; + m0 += c1o6 * oMdrho; + mfaba = m1 - m0 * vvy; + mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfacb; + m1 = mfacb - mfaab; + m0 = m2 + mfabb; + mfaab = m0; + mfabb = m1 - m0 * vvy; + mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfacc; + m1 = mfacc - mfaac; + m0 = m2 + mfabc; + mfaac = m0; + m0 += c1o18 * oMdrho; + mfabc = m1 - m0 * vvy; + mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbca; + m1 = mfbca - mfbaa; + m0 = m2 + mfbba; + mfbaa = m0; + m0 += c2o3 * oMdrho; + mfbba = m1 - m0 * vvy; + mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbab + mfbcb; + m1 = mfbcb - mfbab; + m0 = m2 + mfbbb; + mfbab = m0; + mfbbb = m1 - m0 * vvy; + mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbac + mfbcc; + m1 = mfbcc - mfbac; + m0 = m2 + mfbbc; + mfbac = m0; + m0 += c2o9 * oMdrho; + mfbbc = m1 - m0 * vvy; + mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcca; + m1 = mfcca - mfcaa; + m0 = m2 + mfcba; + mfcaa = m0; + m0 += c1o6 * oMdrho; + mfcba = m1 - m0 * vvy; + mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcab + mfccb; + m1 = mfccb - mfcab; + m0 = m2 + mfcbb; + mfcab = m0; + mfcbb = m1 - m0 * vvy; + mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcac + mfccc; + m1 = mfccc - mfcac; + m0 = m2 + mfcbc; + mfcac = m0; + m0 += c1o18 * oMdrho; + mfcbc = m1 - m0 * vvy; + mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m2 = mfaaa + mfcaa; + m1 = mfcaa - mfaaa; + m0 = m2 + mfbaa; + mfaaa = m0; + m0 += c1o1* oMdrho; + mfbaa = m1 - m0 * vvx; + mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfcba; + m1 = mfcba - mfaba; + m0 = m2 + mfbba; + mfaba = m0; + mfbba = m1 - m0 * vvx; + mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfcca; + m1 = mfcca - mfaca; + m0 = m2 + mfbca; + mfaca = m0; + m0 += c1o3 * oMdrho; + mfbca = m1 - m0 * vvx; + mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfcab; + m1 = mfcab - mfaab; + m0 = m2 + mfbab; + mfaab = m0; + mfbab = m1 - m0 * vvx; + mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabb + mfcbb; + m1 = mfcbb - mfabb; + m0 = m2 + mfbbb; + mfabb = m0; + mfbbb = m1 - m0 * vvx; + mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacb + mfccb; + m1 = mfccb - mfacb; + m0 = m2 + mfbcb; + mfacb = m0; + mfbcb = m1 - m0 * vvx; + mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfcac; + m1 = mfcac - mfaac; + m0 = m2 + mfbac; + mfaac = m0; + m0 += c1o3 * oMdrho; + mfbac = m1 - m0 * vvx; + mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabc + mfcbc; + m1 = mfcbc - mfabc; + m0 = m2 + mfbbc; + mfabc = m0; + mfbbc = m1 - m0 * vvx; + mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacc + mfccc; + m1 = mfccc - mfacc; + m0 = m2 + mfbcc; + mfacc = m0; + m0 += c1o9 * oMdrho; + mfbcc = m1 - m0 * vvx; + mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + // linear combinations - mxxyPyzz = mfcba + mfabc; - mxxyMyzz = mfcba - mfabc; + mxxyPyzz = mfcba + mfabc; + mxxyMyzz = mfcba - mfabc; - mxxzPyyz = mfcab + mfacb; - mxxzMyyz = mfcab - mfacb; + mxxzPyyz = mfcab + mfacb; + mxxzMyyz = mfcab - mfacb; - mxyyPxzz = mfbca + mfbac; - mxyyMxzz = mfbca - mfbac; + mxyyPxzz = mfbca + mfbac; + mxyyMxzz = mfbca - mfbac; - ////////////////////////////////////////////////////////////////////////// - //exclusive for this source node - real mfbbb_SWT = mfbbb; - real mxxyPyzz_SWT = mxxyPyzz; - real mxxyMyzz_SWT = mxxyMyzz; - real mxxzPyyz_SWT = mxxzPyyz; - real mxxzMyyz_SWT = mxxzMyyz; - real mxyyPxzz_SWT = mxyyPxzz; - real mxyyMxzz_SWT = mxyyMxzz; - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// + //exclusive for this source node + real mfbbb_SWT = mfbbb; + real mxxyPyzz_SWT = mxxyPyzz; + real mxxyMyzz_SWT = mxxyMyzz; + real mxxzPyyz_SWT = mxxzPyyz; + real mxxzMyyz_SWT = mxxzMyyz; + real mxyyPxzz_SWT = mxyyPxzz; + real mxyyMxzz_SWT = mxyyMxzz; + ////////////////////////////////////////////////////////////////////////// @@ -5142,8 +5142,8 @@ __global__ void scaleCF_AA2016_comp_27(real* DC, drho_SET = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; vx1_SET = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_SET); - vx2_SET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SET); - vx3_SET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SET); + vx2_SET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SET); + vx3_SET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SET); kxyFromfcNEQ_SET = -c3o1*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_SET) - ((vx1_SET*vx2_SET))); kyzFromfcNEQ_SET = -c3o1*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_SET) - ((vx2_SET*vx3_SET))); @@ -5151,306 +5151,306 @@ __global__ void scaleCF_AA2016_comp_27(real* DC, kxxMyyFromfcNEQ_SET = -c3o2*omegaS *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_SET) - ((vx1_SET*vx1_SET-vx2_SET*vx2_SET))); kxxMzzFromfcNEQ_SET = -c3o2*omegaS *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_SET) - ((vx1_SET*vx1_SET-vx3_SET*vx3_SET))); - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - mfcbb = f_E ; - mfabb = f_W ; - mfbcb = f_N ; - mfbab = f_S ; - mfbbc = f_T ; - mfbba = f_B ; - mfccb = f_NE ; - mfaab = f_SW ; - mfcab = f_SE ; - mfacb = f_NW ; - mfcbc = f_TE ; - mfaba = f_BW ; - mfcba = f_BE ; - mfabc = f_TW ; - mfbcc = f_TN ; - mfbaa = f_BS ; - mfbca = f_BN ; - mfbac = f_TS ; - mfbbb = f_ZERO; - mfccc = f_TNE ; - mfaac = f_TSW ; - mfcac = f_TSE ; - mfacc = f_TNW ; - mfcca = f_BNE ; - mfaaa = f_BSW ; - mfcaa = f_BSE ; - mfaca = f_BNW ; - //////////////////////////////////////////////////////////////////////////////////// - drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + - (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + - ((mfabb+mfcbb) + (mfbab+mfbcb)) + (mfbba+mfbbc)) + mfbbb; - - rho = c1o1+drho; - //////////////////////////////////////////////////////////////////////////////////// - vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + - (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + - (mfcbb-mfabb)) / rho; - vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + - (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + - (mfbcb-mfbab)) / rho; - vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + - (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + - (mfbbc-mfbba)) / rho; - //////////////////////////////////////////////////////////////////////////////////// - //fast - oMdrho = c1o1; // comp special - vx2=vvx*vvx; - vy2=vvy*vvy; - vz2=vvz*vvz; - //////////////////////////////////////////////////////////////////////////////////// - //Hin - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m2 = mfaaa + mfaac; - m1 = mfaac - mfaaa; - m0 = m2 + mfaab; - mfaaa = m0; - m0 += c1o36 * oMdrho; - mfaab = m1 - m0 * vvz; - mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfabc; - m1 = mfabc - mfaba; - m0 = m2 + mfabb; - mfaba = m0; - m0 += c1o9 * oMdrho; - mfabb = m1 - m0 * vvz; - mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfacc; - m1 = mfacc - mfaca; - m0 = m2 + mfacb; - mfaca = m0; - m0 += c1o36 * oMdrho; - mfacb = m1 - m0 * vvz; - mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbac; - m1 = mfbac - mfbaa; - m0 = m2 + mfbab; - mfbaa = m0; - m0 += c1o9 * oMdrho; - mfbab = m1 - m0 * vvz; - mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbba + mfbbc; - m1 = mfbbc - mfbba; - m0 = m2 + mfbbb; - mfbba = m0; - m0 += c4o9 * oMdrho; - mfbbb = m1 - m0 * vvz; - mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbca + mfbcc; - m1 = mfbcc - mfbca; - m0 = m2 + mfbcb; - mfbca = m0; - m0 += c1o9 * oMdrho; - mfbcb = m1 - m0 * vvz; - mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcac; - m1 = mfcac - mfcaa; - m0 = m2 + mfcab; - mfcaa = m0; - m0 += c1o36 * oMdrho; - mfcab = m1 - m0 * vvz; - mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcba + mfcbc; - m1 = mfcbc - mfcba; - m0 = m2 + mfcbb; - mfcba = m0; - m0 += c1o9 * oMdrho; - mfcbb = m1 - m0 * vvz; - mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcca + mfccc; - m1 = mfccc - mfcca; - m0 = m2 + mfccb; - mfcca = m0; - m0 += c1o36 * oMdrho; - mfccb = m1 - m0 * vvz; - mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m2 = mfaaa + mfaca; - m1 = mfaca - mfaaa; - m0 = m2 + mfaba; - mfaaa = m0; - m0 += c1o6 * oMdrho; - mfaba = m1 - m0 * vvy; - mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfacb; - m1 = mfacb - mfaab; - m0 = m2 + mfabb; - mfaab = m0; - mfabb = m1 - m0 * vvy; - mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfacc; - m1 = mfacc - mfaac; - m0 = m2 + mfabc; - mfaac = m0; - m0 += c1o18 * oMdrho; - mfabc = m1 - m0 * vvy; - mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbca; - m1 = mfbca - mfbaa; - m0 = m2 + mfbba; - mfbaa = m0; - m0 += c2o3 * oMdrho; - mfbba = m1 - m0 * vvy; - mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbab + mfbcb; - m1 = mfbcb - mfbab; - m0 = m2 + mfbbb; - mfbab = m0; - mfbbb = m1 - m0 * vvy; - mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbac + mfbcc; - m1 = mfbcc - mfbac; - m0 = m2 + mfbbc; - mfbac = m0; - m0 += c2o9 * oMdrho; - mfbbc = m1 - m0 * vvy; - mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcca; - m1 = mfcca - mfcaa; - m0 = m2 + mfcba; - mfcaa = m0; - m0 += c1o6 * oMdrho; - mfcba = m1 - m0 * vvy; - mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcab + mfccb; - m1 = mfccb - mfcab; - m0 = m2 + mfcbb; - mfcab = m0; - mfcbb = m1 - m0 * vvy; - mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcac + mfccc; - m1 = mfccc - mfcac; - m0 = m2 + mfcbc; - mfcac = m0; - m0 += c1o18 * oMdrho; - mfcbc = m1 - m0 * vvy; - mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m2 = mfaaa + mfcaa; - m1 = mfcaa - mfaaa; - m0 = m2 + mfbaa; - mfaaa = m0; - m0 += c1o1* oMdrho; - mfbaa = m1 - m0 * vvx; - mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfcba; - m1 = mfcba - mfaba; - m0 = m2 + mfbba; - mfaba = m0; - mfbba = m1 - m0 * vvx; - mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfcca; - m1 = mfcca - mfaca; - m0 = m2 + mfbca; - mfaca = m0; - m0 += c1o3 * oMdrho; - mfbca = m1 - m0 * vvx; - mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfcab; - m1 = mfcab - mfaab; - m0 = m2 + mfbab; - mfaab = m0; - mfbab = m1 - m0 * vvx; - mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabb + mfcbb; - m1 = mfcbb - mfabb; - m0 = m2 + mfbbb; - mfabb = m0; - mfbbb = m1 - m0 * vvx; - mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacb + mfccb; - m1 = mfccb - mfacb; - m0 = m2 + mfbcb; - mfacb = m0; - mfbcb = m1 - m0 * vvx; - mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfcac; - m1 = mfcac - mfaac; - m0 = m2 + mfbac; - mfaac = m0; - m0 += c1o3 * oMdrho; - mfbac = m1 - m0 * vvx; - mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabc + mfcbc; - m1 = mfcbc - mfabc; - m0 = m2 + mfbbc; - mfabc = m0; - mfbbc = m1 - m0 * vvx; - mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacc + mfccc; - m1 = mfccc - mfacc; - m0 = m2 + mfbcc; - mfacc = m0; - m0 += c1o9 * oMdrho; - mfbcc = m1 - m0 * vvx; - mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - // linear combinations + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + mfcbb = f_E ; + mfabb = f_W ; + mfbcb = f_N ; + mfbab = f_S ; + mfbbc = f_T ; + mfbba = f_B ; + mfccb = f_NE ; + mfaab = f_SW ; + mfcab = f_SE ; + mfacb = f_NW ; + mfcbc = f_TE ; + mfaba = f_BW ; + mfcba = f_BE ; + mfabc = f_TW ; + mfbcc = f_TN ; + mfbaa = f_BS ; + mfbca = f_BN ; + mfbac = f_TS ; + mfbbb = f_ZERO; + mfccc = f_TNE ; + mfaac = f_TSW ; + mfcac = f_TSE ; + mfacc = f_TNW ; + mfcca = f_BNE ; + mfaaa = f_BSW ; + mfcaa = f_BSE ; + mfaca = f_BNW ; + //////////////////////////////////////////////////////////////////////////////////// + drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + + (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + + ((mfabb+mfcbb) + (mfbab+mfbcb)) + (mfbba+mfbbc)) + mfbbb; + + rho = c1o1+drho; + //////////////////////////////////////////////////////////////////////////////////// + vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + + (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + + (mfcbb-mfabb)) / rho; + vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + + (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + + (mfbcb-mfbab)) / rho; + vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + + (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + + (mfbbc-mfbba)) / rho; + //////////////////////////////////////////////////////////////////////////////////// + //fast + oMdrho = c1o1; // comp special + vx2=vvx*vvx; + vy2=vvy*vvy; + vz2=vvz*vvz; + //////////////////////////////////////////////////////////////////////////////////// + //Hin + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m2 = mfaaa + mfaac; + m1 = mfaac - mfaaa; + m0 = m2 + mfaab; + mfaaa = m0; + m0 += c1o36 * oMdrho; + mfaab = m1 - m0 * vvz; + mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfabc; + m1 = mfabc - mfaba; + m0 = m2 + mfabb; + mfaba = m0; + m0 += c1o9 * oMdrho; + mfabb = m1 - m0 * vvz; + mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfacc; + m1 = mfacc - mfaca; + m0 = m2 + mfacb; + mfaca = m0; + m0 += c1o36 * oMdrho; + mfacb = m1 - m0 * vvz; + mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbac; + m1 = mfbac - mfbaa; + m0 = m2 + mfbab; + mfbaa = m0; + m0 += c1o9 * oMdrho; + mfbab = m1 - m0 * vvz; + mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbba + mfbbc; + m1 = mfbbc - mfbba; + m0 = m2 + mfbbb; + mfbba = m0; + m0 += c4o9 * oMdrho; + mfbbb = m1 - m0 * vvz; + mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbca + mfbcc; + m1 = mfbcc - mfbca; + m0 = m2 + mfbcb; + mfbca = m0; + m0 += c1o9 * oMdrho; + mfbcb = m1 - m0 * vvz; + mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcac; + m1 = mfcac - mfcaa; + m0 = m2 + mfcab; + mfcaa = m0; + m0 += c1o36 * oMdrho; + mfcab = m1 - m0 * vvz; + mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcba + mfcbc; + m1 = mfcbc - mfcba; + m0 = m2 + mfcbb; + mfcba = m0; + m0 += c1o9 * oMdrho; + mfcbb = m1 - m0 * vvz; + mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcca + mfccc; + m1 = mfccc - mfcca; + m0 = m2 + mfccb; + mfcca = m0; + m0 += c1o36 * oMdrho; + mfccb = m1 - m0 * vvz; + mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m2 = mfaaa + mfaca; + m1 = mfaca - mfaaa; + m0 = m2 + mfaba; + mfaaa = m0; + m0 += c1o6 * oMdrho; + mfaba = m1 - m0 * vvy; + mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfacb; + m1 = mfacb - mfaab; + m0 = m2 + mfabb; + mfaab = m0; + mfabb = m1 - m0 * vvy; + mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfacc; + m1 = mfacc - mfaac; + m0 = m2 + mfabc; + mfaac = m0; + m0 += c1o18 * oMdrho; + mfabc = m1 - m0 * vvy; + mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbca; + m1 = mfbca - mfbaa; + m0 = m2 + mfbba; + mfbaa = m0; + m0 += c2o3 * oMdrho; + mfbba = m1 - m0 * vvy; + mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbab + mfbcb; + m1 = mfbcb - mfbab; + m0 = m2 + mfbbb; + mfbab = m0; + mfbbb = m1 - m0 * vvy; + mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbac + mfbcc; + m1 = mfbcc - mfbac; + m0 = m2 + mfbbc; + mfbac = m0; + m0 += c2o9 * oMdrho; + mfbbc = m1 - m0 * vvy; + mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcca; + m1 = mfcca - mfcaa; + m0 = m2 + mfcba; + mfcaa = m0; + m0 += c1o6 * oMdrho; + mfcba = m1 - m0 * vvy; + mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcab + mfccb; + m1 = mfccb - mfcab; + m0 = m2 + mfcbb; + mfcab = m0; + mfcbb = m1 - m0 * vvy; + mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcac + mfccc; + m1 = mfccc - mfcac; + m0 = m2 + mfcbc; + mfcac = m0; + m0 += c1o18 * oMdrho; + mfcbc = m1 - m0 * vvy; + mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m2 = mfaaa + mfcaa; + m1 = mfcaa - mfaaa; + m0 = m2 + mfbaa; + mfaaa = m0; + m0 += c1o1* oMdrho; + mfbaa = m1 - m0 * vvx; + mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfcba; + m1 = mfcba - mfaba; + m0 = m2 + mfbba; + mfaba = m0; + mfbba = m1 - m0 * vvx; + mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfcca; + m1 = mfcca - mfaca; + m0 = m2 + mfbca; + mfaca = m0; + m0 += c1o3 * oMdrho; + mfbca = m1 - m0 * vvx; + mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfcab; + m1 = mfcab - mfaab; + m0 = m2 + mfbab; + mfaab = m0; + mfbab = m1 - m0 * vvx; + mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabb + mfcbb; + m1 = mfcbb - mfabb; + m0 = m2 + mfbbb; + mfabb = m0; + mfbbb = m1 - m0 * vvx; + mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacb + mfccb; + m1 = mfccb - mfacb; + m0 = m2 + mfbcb; + mfacb = m0; + mfbcb = m1 - m0 * vvx; + mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfcac; + m1 = mfcac - mfaac; + m0 = m2 + mfbac; + mfaac = m0; + m0 += c1o3 * oMdrho; + mfbac = m1 - m0 * vvx; + mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabc + mfcbc; + m1 = mfcbc - mfabc; + m0 = m2 + mfbbc; + mfabc = m0; + mfbbc = m1 - m0 * vvx; + mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacc + mfccc; + m1 = mfccc - mfacc; + m0 = m2 + mfbcc; + mfacc = m0; + m0 += c1o9 * oMdrho; + mfbcc = m1 - m0 * vvx; + mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + // linear combinations - mxxyPyzz = mfcba + mfabc; - mxxyMyzz = mfcba - mfabc; + mxxyPyzz = mfcba + mfabc; + mxxyMyzz = mfcba - mfabc; - mxxzPyyz = mfcab + mfacb; - mxxzMyyz = mfcab - mfacb; + mxxzPyyz = mfcab + mfacb; + mxxzMyyz = mfcab - mfacb; - mxyyPxzz = mfbca + mfbac; - mxyyMxzz = mfbca - mfbac; + mxyyPxzz = mfbca + mfbac; + mxyyMxzz = mfbca - mfbac; - ////////////////////////////////////////////////////////////////////////// - //exclusive for this source node - real mfbbb_SET = mfbbb; - real mxxyPyzz_SET = mxxyPyzz; - real mxxyMyzz_SET = mxxyMyzz; - real mxxzPyyz_SET = mxxzPyyz; - real mxxzMyyz_SET = mxxzMyyz; - real mxyyPxzz_SET = mxyyPxzz; - real mxyyMxzz_SET = mxyyMxzz; - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// + //exclusive for this source node + real mfbbb_SET = mfbbb; + real mxxyPyzz_SET = mxxyPyzz; + real mxxyMyzz_SET = mxxyMyzz; + real mxxzPyyz_SET = mxxzPyyz; + real mxxzMyyz_SET = mxxzMyyz; + real mxyyPxzz_SET = mxyyPxzz; + real mxyyMxzz_SET = mxyyMxzz; + ////////////////////////////////////////////////////////////////////////// @@ -5549,8 +5549,8 @@ __global__ void scaleCF_AA2016_comp_27(real* DC, drho_SEB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; vx1_SEB = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_SEB); - vx2_SEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SEB); - vx3_SEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SEB); + vx2_SEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SEB); + vx3_SEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SEB); kxyFromfcNEQ_SEB = -c3o1*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_SEB) - ((vx1_SEB*vx2_SEB))); kyzFromfcNEQ_SEB = -c3o1*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_SEB) - ((vx2_SEB*vx3_SEB))); @@ -5558,306 +5558,306 @@ __global__ void scaleCF_AA2016_comp_27(real* DC, kxxMyyFromfcNEQ_SEB = -c3o2*omegaS *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_SEB) - ((vx1_SEB*vx1_SEB-vx2_SEB*vx2_SEB))); kxxMzzFromfcNEQ_SEB = -c3o2*omegaS *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_SEB) - ((vx1_SEB*vx1_SEB-vx3_SEB*vx3_SEB))); - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - mfcbb = f_E ; - mfabb = f_W ; - mfbcb = f_N ; - mfbab = f_S ; - mfbbc = f_T ; - mfbba = f_B ; - mfccb = f_NE ; - mfaab = f_SW ; - mfcab = f_SE ; - mfacb = f_NW ; - mfcbc = f_TE ; - mfaba = f_BW ; - mfcba = f_BE ; - mfabc = f_TW ; - mfbcc = f_TN ; - mfbaa = f_BS ; - mfbca = f_BN ; - mfbac = f_TS ; - mfbbb = f_ZERO; - mfccc = f_TNE ; - mfaac = f_TSW ; - mfcac = f_TSE ; - mfacc = f_TNW ; - mfcca = f_BNE ; - mfaaa = f_BSW ; - mfcaa = f_BSE ; - mfaca = f_BNW ; - //////////////////////////////////////////////////////////////////////////////////// - drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + - (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + - ((mfabb+mfcbb) + (mfbab+mfbcb)) + (mfbba+mfbbc)) + mfbbb; - - rho = c1o1+drho; - //////////////////////////////////////////////////////////////////////////////////// - vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + - (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + - (mfcbb-mfabb)) / rho; - vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + - (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + - (mfbcb-mfbab)) / rho; - vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + - (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + - (mfbbc-mfbba)) / rho; - //////////////////////////////////////////////////////////////////////////////////// - //fast - oMdrho = c1o1; // comp special - vx2=vvx*vvx; - vy2=vvy*vvy; - vz2=vvz*vvz; - //////////////////////////////////////////////////////////////////////////////////// - //Hin - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m2 = mfaaa + mfaac; - m1 = mfaac - mfaaa; - m0 = m2 + mfaab; - mfaaa = m0; - m0 += c1o36 * oMdrho; - mfaab = m1 - m0 * vvz; - mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfabc; - m1 = mfabc - mfaba; - m0 = m2 + mfabb; - mfaba = m0; - m0 += c1o9 * oMdrho; - mfabb = m1 - m0 * vvz; - mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfacc; - m1 = mfacc - mfaca; - m0 = m2 + mfacb; - mfaca = m0; - m0 += c1o36 * oMdrho; - mfacb = m1 - m0 * vvz; - mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbac; - m1 = mfbac - mfbaa; - m0 = m2 + mfbab; - mfbaa = m0; - m0 += c1o9 * oMdrho; - mfbab = m1 - m0 * vvz; - mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbba + mfbbc; - m1 = mfbbc - mfbba; - m0 = m2 + mfbbb; - mfbba = m0; - m0 += c4o9 * oMdrho; - mfbbb = m1 - m0 * vvz; - mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbca + mfbcc; - m1 = mfbcc - mfbca; - m0 = m2 + mfbcb; - mfbca = m0; - m0 += c1o9 * oMdrho; - mfbcb = m1 - m0 * vvz; - mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcac; - m1 = mfcac - mfcaa; - m0 = m2 + mfcab; - mfcaa = m0; - m0 += c1o36 * oMdrho; - mfcab = m1 - m0 * vvz; - mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcba + mfcbc; - m1 = mfcbc - mfcba; - m0 = m2 + mfcbb; - mfcba = m0; - m0 += c1o9 * oMdrho; - mfcbb = m1 - m0 * vvz; - mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcca + mfccc; - m1 = mfccc - mfcca; - m0 = m2 + mfccb; - mfcca = m0; - m0 += c1o36 * oMdrho; - mfccb = m1 - m0 * vvz; - mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m2 = mfaaa + mfaca; - m1 = mfaca - mfaaa; - m0 = m2 + mfaba; - mfaaa = m0; - m0 += c1o6 * oMdrho; - mfaba = m1 - m0 * vvy; - mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfacb; - m1 = mfacb - mfaab; - m0 = m2 + mfabb; - mfaab = m0; - mfabb = m1 - m0 * vvy; - mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfacc; - m1 = mfacc - mfaac; - m0 = m2 + mfabc; - mfaac = m0; - m0 += c1o18 * oMdrho; - mfabc = m1 - m0 * vvy; - mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbca; - m1 = mfbca - mfbaa; - m0 = m2 + mfbba; - mfbaa = m0; - m0 += c2o3 * oMdrho; - mfbba = m1 - m0 * vvy; - mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbab + mfbcb; - m1 = mfbcb - mfbab; - m0 = m2 + mfbbb; - mfbab = m0; - mfbbb = m1 - m0 * vvy; - mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbac + mfbcc; - m1 = mfbcc - mfbac; - m0 = m2 + mfbbc; - mfbac = m0; - m0 += c2o9 * oMdrho; - mfbbc = m1 - m0 * vvy; - mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcca; - m1 = mfcca - mfcaa; - m0 = m2 + mfcba; - mfcaa = m0; - m0 += c1o6 * oMdrho; - mfcba = m1 - m0 * vvy; - mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcab + mfccb; - m1 = mfccb - mfcab; - m0 = m2 + mfcbb; - mfcab = m0; - mfcbb = m1 - m0 * vvy; - mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcac + mfccc; - m1 = mfccc - mfcac; - m0 = m2 + mfcbc; - mfcac = m0; - m0 += c1o18 * oMdrho; - mfcbc = m1 - m0 * vvy; - mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m2 = mfaaa + mfcaa; - m1 = mfcaa - mfaaa; - m0 = m2 + mfbaa; - mfaaa = m0; - m0 += c1o1* oMdrho; - mfbaa = m1 - m0 * vvx; - mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfcba; - m1 = mfcba - mfaba; - m0 = m2 + mfbba; - mfaba = m0; - mfbba = m1 - m0 * vvx; - mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfcca; - m1 = mfcca - mfaca; - m0 = m2 + mfbca; - mfaca = m0; - m0 += c1o3 * oMdrho; - mfbca = m1 - m0 * vvx; - mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfcab; - m1 = mfcab - mfaab; - m0 = m2 + mfbab; - mfaab = m0; - mfbab = m1 - m0 * vvx; - mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabb + mfcbb; - m1 = mfcbb - mfabb; - m0 = m2 + mfbbb; - mfabb = m0; - mfbbb = m1 - m0 * vvx; - mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacb + mfccb; - m1 = mfccb - mfacb; - m0 = m2 + mfbcb; - mfacb = m0; - mfbcb = m1 - m0 * vvx; - mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfcac; - m1 = mfcac - mfaac; - m0 = m2 + mfbac; - mfaac = m0; - m0 += c1o3 * oMdrho; - mfbac = m1 - m0 * vvx; - mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabc + mfcbc; - m1 = mfcbc - mfabc; - m0 = m2 + mfbbc; - mfabc = m0; - mfbbc = m1 - m0 * vvx; - mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacc + mfccc; - m1 = mfccc - mfacc; - m0 = m2 + mfbcc; - mfacc = m0; - m0 += c1o9 * oMdrho; - mfbcc = m1 - m0 * vvx; - mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - // linear combinations + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + mfcbb = f_E ; + mfabb = f_W ; + mfbcb = f_N ; + mfbab = f_S ; + mfbbc = f_T ; + mfbba = f_B ; + mfccb = f_NE ; + mfaab = f_SW ; + mfcab = f_SE ; + mfacb = f_NW ; + mfcbc = f_TE ; + mfaba = f_BW ; + mfcba = f_BE ; + mfabc = f_TW ; + mfbcc = f_TN ; + mfbaa = f_BS ; + mfbca = f_BN ; + mfbac = f_TS ; + mfbbb = f_ZERO; + mfccc = f_TNE ; + mfaac = f_TSW ; + mfcac = f_TSE ; + mfacc = f_TNW ; + mfcca = f_BNE ; + mfaaa = f_BSW ; + mfcaa = f_BSE ; + mfaca = f_BNW ; + //////////////////////////////////////////////////////////////////////////////////// + drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + + (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + + ((mfabb+mfcbb) + (mfbab+mfbcb)) + (mfbba+mfbbc)) + mfbbb; + + rho = c1o1+drho; + //////////////////////////////////////////////////////////////////////////////////// + vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + + (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + + (mfcbb-mfabb)) / rho; + vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + + (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + + (mfbcb-mfbab)) / rho; + vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + + (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + + (mfbbc-mfbba)) / rho; + //////////////////////////////////////////////////////////////////////////////////// + //fast + oMdrho = c1o1; // comp special + vx2=vvx*vvx; + vy2=vvy*vvy; + vz2=vvz*vvz; + //////////////////////////////////////////////////////////////////////////////////// + //Hin + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m2 = mfaaa + mfaac; + m1 = mfaac - mfaaa; + m0 = m2 + mfaab; + mfaaa = m0; + m0 += c1o36 * oMdrho; + mfaab = m1 - m0 * vvz; + mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfabc; + m1 = mfabc - mfaba; + m0 = m2 + mfabb; + mfaba = m0; + m0 += c1o9 * oMdrho; + mfabb = m1 - m0 * vvz; + mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfacc; + m1 = mfacc - mfaca; + m0 = m2 + mfacb; + mfaca = m0; + m0 += c1o36 * oMdrho; + mfacb = m1 - m0 * vvz; + mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbac; + m1 = mfbac - mfbaa; + m0 = m2 + mfbab; + mfbaa = m0; + m0 += c1o9 * oMdrho; + mfbab = m1 - m0 * vvz; + mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbba + mfbbc; + m1 = mfbbc - mfbba; + m0 = m2 + mfbbb; + mfbba = m0; + m0 += c4o9 * oMdrho; + mfbbb = m1 - m0 * vvz; + mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbca + mfbcc; + m1 = mfbcc - mfbca; + m0 = m2 + mfbcb; + mfbca = m0; + m0 += c1o9 * oMdrho; + mfbcb = m1 - m0 * vvz; + mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcac; + m1 = mfcac - mfcaa; + m0 = m2 + mfcab; + mfcaa = m0; + m0 += c1o36 * oMdrho; + mfcab = m1 - m0 * vvz; + mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcba + mfcbc; + m1 = mfcbc - mfcba; + m0 = m2 + mfcbb; + mfcba = m0; + m0 += c1o9 * oMdrho; + mfcbb = m1 - m0 * vvz; + mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcca + mfccc; + m1 = mfccc - mfcca; + m0 = m2 + mfccb; + mfcca = m0; + m0 += c1o36 * oMdrho; + mfccb = m1 - m0 * vvz; + mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m2 = mfaaa + mfaca; + m1 = mfaca - mfaaa; + m0 = m2 + mfaba; + mfaaa = m0; + m0 += c1o6 * oMdrho; + mfaba = m1 - m0 * vvy; + mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfacb; + m1 = mfacb - mfaab; + m0 = m2 + mfabb; + mfaab = m0; + mfabb = m1 - m0 * vvy; + mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfacc; + m1 = mfacc - mfaac; + m0 = m2 + mfabc; + mfaac = m0; + m0 += c1o18 * oMdrho; + mfabc = m1 - m0 * vvy; + mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbca; + m1 = mfbca - mfbaa; + m0 = m2 + mfbba; + mfbaa = m0; + m0 += c2o3 * oMdrho; + mfbba = m1 - m0 * vvy; + mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbab + mfbcb; + m1 = mfbcb - mfbab; + m0 = m2 + mfbbb; + mfbab = m0; + mfbbb = m1 - m0 * vvy; + mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbac + mfbcc; + m1 = mfbcc - mfbac; + m0 = m2 + mfbbc; + mfbac = m0; + m0 += c2o9 * oMdrho; + mfbbc = m1 - m0 * vvy; + mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcca; + m1 = mfcca - mfcaa; + m0 = m2 + mfcba; + mfcaa = m0; + m0 += c1o6 * oMdrho; + mfcba = m1 - m0 * vvy; + mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcab + mfccb; + m1 = mfccb - mfcab; + m0 = m2 + mfcbb; + mfcab = m0; + mfcbb = m1 - m0 * vvy; + mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcac + mfccc; + m1 = mfccc - mfcac; + m0 = m2 + mfcbc; + mfcac = m0; + m0 += c1o18 * oMdrho; + mfcbc = m1 - m0 * vvy; + mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m2 = mfaaa + mfcaa; + m1 = mfcaa - mfaaa; + m0 = m2 + mfbaa; + mfaaa = m0; + m0 += c1o1* oMdrho; + mfbaa = m1 - m0 * vvx; + mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfcba; + m1 = mfcba - mfaba; + m0 = m2 + mfbba; + mfaba = m0; + mfbba = m1 - m0 * vvx; + mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfcca; + m1 = mfcca - mfaca; + m0 = m2 + mfbca; + mfaca = m0; + m0 += c1o3 * oMdrho; + mfbca = m1 - m0 * vvx; + mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfcab; + m1 = mfcab - mfaab; + m0 = m2 + mfbab; + mfaab = m0; + mfbab = m1 - m0 * vvx; + mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabb + mfcbb; + m1 = mfcbb - mfabb; + m0 = m2 + mfbbb; + mfabb = m0; + mfbbb = m1 - m0 * vvx; + mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacb + mfccb; + m1 = mfccb - mfacb; + m0 = m2 + mfbcb; + mfacb = m0; + mfbcb = m1 - m0 * vvx; + mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfcac; + m1 = mfcac - mfaac; + m0 = m2 + mfbac; + mfaac = m0; + m0 += c1o3 * oMdrho; + mfbac = m1 - m0 * vvx; + mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabc + mfcbc; + m1 = mfcbc - mfabc; + m0 = m2 + mfbbc; + mfabc = m0; + mfbbc = m1 - m0 * vvx; + mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacc + mfccc; + m1 = mfccc - mfacc; + m0 = m2 + mfbcc; + mfacc = m0; + m0 += c1o9 * oMdrho; + mfbcc = m1 - m0 * vvx; + mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + // linear combinations - mxxyPyzz = mfcba + mfabc; - mxxyMyzz = mfcba - mfabc; + mxxyPyzz = mfcba + mfabc; + mxxyMyzz = mfcba - mfabc; - mxxzPyyz = mfcab + mfacb; - mxxzMyyz = mfcab - mfacb; + mxxzPyyz = mfcab + mfacb; + mxxzMyyz = mfcab - mfacb; - mxyyPxzz = mfbca + mfbac; - mxyyMxzz = mfbca - mfbac; + mxyyPxzz = mfbca + mfbac; + mxyyMxzz = mfbca - mfbac; - ////////////////////////////////////////////////////////////////////////// - //exclusive for this source node - real mfbbb_SEB = mfbbb; - real mxxyPyzz_SEB = mxxyPyzz; - real mxxyMyzz_SEB = mxxyMyzz; - real mxxzPyyz_SEB = mxxzPyyz; - real mxxzMyyz_SEB = mxxzMyyz; - real mxyyPxzz_SEB = mxyyPxzz; - real mxyyMxzz_SEB = mxyyMxzz; - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// + //exclusive for this source node + real mfbbb_SEB = mfbbb; + real mxxyPyzz_SEB = mxxyPyzz; + real mxxyMyzz_SEB = mxxyMyzz; + real mxxzPyyz_SEB = mxxzPyyz; + real mxxzMyyz_SEB = mxxzMyyz; + real mxyyPxzz_SEB = mxyyPxzz; + real mxyyMxzz_SEB = mxyyMxzz; + ////////////////////////////////////////////////////////////////////////// @@ -5966,8 +5966,8 @@ __global__ void scaleCF_AA2016_comp_27(real* DC, drho_NWB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; vx1_NWB = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_NWB); - vx2_NWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NWB); - vx3_NWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NWB); + vx2_NWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NWB); + vx3_NWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NWB); kxyFromfcNEQ_NWB = -c3o1*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_NWB) - ((vx1_NWB*vx2_NWB))); kyzFromfcNEQ_NWB = -c3o1*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_NWB) - ((vx2_NWB*vx3_NWB))); @@ -5975,306 +5975,306 @@ __global__ void scaleCF_AA2016_comp_27(real* DC, kxxMyyFromfcNEQ_NWB = -c3o2*omegaS *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_NWB) - ((vx1_NWB*vx1_NWB-vx2_NWB*vx2_NWB))); kxxMzzFromfcNEQ_NWB = -c3o2*omegaS *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_NWB) - ((vx1_NWB*vx1_NWB-vx3_NWB*vx3_NWB))); - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - mfcbb = f_E ; - mfabb = f_W ; - mfbcb = f_N ; - mfbab = f_S ; - mfbbc = f_T ; - mfbba = f_B ; - mfccb = f_NE ; - mfaab = f_SW ; - mfcab = f_SE ; - mfacb = f_NW ; - mfcbc = f_TE ; - mfaba = f_BW ; - mfcba = f_BE ; - mfabc = f_TW ; - mfbcc = f_TN ; - mfbaa = f_BS ; - mfbca = f_BN ; - mfbac = f_TS ; - mfbbb = f_ZERO; - mfccc = f_TNE ; - mfaac = f_TSW ; - mfcac = f_TSE ; - mfacc = f_TNW ; - mfcca = f_BNE ; - mfaaa = f_BSW ; - mfcaa = f_BSE ; - mfaca = f_BNW ; - //////////////////////////////////////////////////////////////////////////////////// - drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + - (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + - ((mfabb+mfcbb) + (mfbab+mfbcb)) + (mfbba+mfbbc)) + mfbbb; - - rho = c1o1+drho; - //////////////////////////////////////////////////////////////////////////////////// - vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + - (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + - (mfcbb-mfabb)) / rho; - vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + - (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + - (mfbcb-mfbab)) / rho; - vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + - (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + - (mfbbc-mfbba)) / rho; - //////////////////////////////////////////////////////////////////////////////////// - //fast - oMdrho = c1o1; // comp special - vx2=vvx*vvx; - vy2=vvy*vvy; - vz2=vvz*vvz; - //////////////////////////////////////////////////////////////////////////////////// - //Hin - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m2 = mfaaa + mfaac; - m1 = mfaac - mfaaa; - m0 = m2 + mfaab; - mfaaa = m0; - m0 += c1o36 * oMdrho; - mfaab = m1 - m0 * vvz; - mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfabc; - m1 = mfabc - mfaba; - m0 = m2 + mfabb; - mfaba = m0; - m0 += c1o9 * oMdrho; - mfabb = m1 - m0 * vvz; - mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfacc; - m1 = mfacc - mfaca; - m0 = m2 + mfacb; - mfaca = m0; - m0 += c1o36 * oMdrho; - mfacb = m1 - m0 * vvz; - mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbac; - m1 = mfbac - mfbaa; - m0 = m2 + mfbab; - mfbaa = m0; - m0 += c1o9 * oMdrho; - mfbab = m1 - m0 * vvz; - mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbba + mfbbc; - m1 = mfbbc - mfbba; - m0 = m2 + mfbbb; - mfbba = m0; - m0 += c4o9 * oMdrho; - mfbbb = m1 - m0 * vvz; - mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbca + mfbcc; - m1 = mfbcc - mfbca; - m0 = m2 + mfbcb; - mfbca = m0; - m0 += c1o9 * oMdrho; - mfbcb = m1 - m0 * vvz; - mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcac; - m1 = mfcac - mfcaa; - m0 = m2 + mfcab; - mfcaa = m0; - m0 += c1o36 * oMdrho; - mfcab = m1 - m0 * vvz; - mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcba + mfcbc; - m1 = mfcbc - mfcba; - m0 = m2 + mfcbb; - mfcba = m0; - m0 += c1o9 * oMdrho; - mfcbb = m1 - m0 * vvz; - mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcca + mfccc; - m1 = mfccc - mfcca; - m0 = m2 + mfccb; - mfcca = m0; - m0 += c1o36 * oMdrho; - mfccb = m1 - m0 * vvz; - mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m2 = mfaaa + mfaca; - m1 = mfaca - mfaaa; - m0 = m2 + mfaba; - mfaaa = m0; - m0 += c1o6 * oMdrho; - mfaba = m1 - m0 * vvy; - mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfacb; - m1 = mfacb - mfaab; - m0 = m2 + mfabb; - mfaab = m0; - mfabb = m1 - m0 * vvy; - mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfacc; - m1 = mfacc - mfaac; - m0 = m2 + mfabc; - mfaac = m0; - m0 += c1o18 * oMdrho; - mfabc = m1 - m0 * vvy; - mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbca; - m1 = mfbca - mfbaa; - m0 = m2 + mfbba; - mfbaa = m0; - m0 += c2o3 * oMdrho; - mfbba = m1 - m0 * vvy; - mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbab + mfbcb; - m1 = mfbcb - mfbab; - m0 = m2 + mfbbb; - mfbab = m0; - mfbbb = m1 - m0 * vvy; - mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbac + mfbcc; - m1 = mfbcc - mfbac; - m0 = m2 + mfbbc; - mfbac = m0; - m0 += c2o9 * oMdrho; - mfbbc = m1 - m0 * vvy; - mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcca; - m1 = mfcca - mfcaa; - m0 = m2 + mfcba; - mfcaa = m0; - m0 += c1o6 * oMdrho; - mfcba = m1 - m0 * vvy; - mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcab + mfccb; - m1 = mfccb - mfcab; - m0 = m2 + mfcbb; - mfcab = m0; - mfcbb = m1 - m0 * vvy; - mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcac + mfccc; - m1 = mfccc - mfcac; - m0 = m2 + mfcbc; - mfcac = m0; - m0 += c1o18 * oMdrho; - mfcbc = m1 - m0 * vvy; - mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m2 = mfaaa + mfcaa; - m1 = mfcaa - mfaaa; - m0 = m2 + mfbaa; - mfaaa = m0; - m0 += c1o1* oMdrho; - mfbaa = m1 - m0 * vvx; - mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfcba; - m1 = mfcba - mfaba; - m0 = m2 + mfbba; - mfaba = m0; - mfbba = m1 - m0 * vvx; - mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfcca; - m1 = mfcca - mfaca; - m0 = m2 + mfbca; - mfaca = m0; - m0 += c1o3 * oMdrho; - mfbca = m1 - m0 * vvx; - mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfcab; - m1 = mfcab - mfaab; - m0 = m2 + mfbab; - mfaab = m0; - mfbab = m1 - m0 * vvx; - mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabb + mfcbb; - m1 = mfcbb - mfabb; - m0 = m2 + mfbbb; - mfabb = m0; - mfbbb = m1 - m0 * vvx; - mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacb + mfccb; - m1 = mfccb - mfacb; - m0 = m2 + mfbcb; - mfacb = m0; - mfbcb = m1 - m0 * vvx; - mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfcac; - m1 = mfcac - mfaac; - m0 = m2 + mfbac; - mfaac = m0; - m0 += c1o3 * oMdrho; - mfbac = m1 - m0 * vvx; - mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabc + mfcbc; - m1 = mfcbc - mfabc; - m0 = m2 + mfbbc; - mfabc = m0; - mfbbc = m1 - m0 * vvx; - mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacc + mfccc; - m1 = mfccc - mfacc; - m0 = m2 + mfbcc; - mfacc = m0; - m0 += c1o9 * oMdrho; - mfbcc = m1 - m0 * vvx; - mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - // linear combinations + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + mfcbb = f_E ; + mfabb = f_W ; + mfbcb = f_N ; + mfbab = f_S ; + mfbbc = f_T ; + mfbba = f_B ; + mfccb = f_NE ; + mfaab = f_SW ; + mfcab = f_SE ; + mfacb = f_NW ; + mfcbc = f_TE ; + mfaba = f_BW ; + mfcba = f_BE ; + mfabc = f_TW ; + mfbcc = f_TN ; + mfbaa = f_BS ; + mfbca = f_BN ; + mfbac = f_TS ; + mfbbb = f_ZERO; + mfccc = f_TNE ; + mfaac = f_TSW ; + mfcac = f_TSE ; + mfacc = f_TNW ; + mfcca = f_BNE ; + mfaaa = f_BSW ; + mfcaa = f_BSE ; + mfaca = f_BNW ; + //////////////////////////////////////////////////////////////////////////////////// + drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + + (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + + ((mfabb+mfcbb) + (mfbab+mfbcb)) + (mfbba+mfbbc)) + mfbbb; + + rho = c1o1+drho; + //////////////////////////////////////////////////////////////////////////////////// + vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + + (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + + (mfcbb-mfabb)) / rho; + vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + + (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + + (mfbcb-mfbab)) / rho; + vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + + (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + + (mfbbc-mfbba)) / rho; + //////////////////////////////////////////////////////////////////////////////////// + //fast + oMdrho = c1o1; // comp special + vx2=vvx*vvx; + vy2=vvy*vvy; + vz2=vvz*vvz; + //////////////////////////////////////////////////////////////////////////////////// + //Hin + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m2 = mfaaa + mfaac; + m1 = mfaac - mfaaa; + m0 = m2 + mfaab; + mfaaa = m0; + m0 += c1o36 * oMdrho; + mfaab = m1 - m0 * vvz; + mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfabc; + m1 = mfabc - mfaba; + m0 = m2 + mfabb; + mfaba = m0; + m0 += c1o9 * oMdrho; + mfabb = m1 - m0 * vvz; + mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfacc; + m1 = mfacc - mfaca; + m0 = m2 + mfacb; + mfaca = m0; + m0 += c1o36 * oMdrho; + mfacb = m1 - m0 * vvz; + mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbac; + m1 = mfbac - mfbaa; + m0 = m2 + mfbab; + mfbaa = m0; + m0 += c1o9 * oMdrho; + mfbab = m1 - m0 * vvz; + mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbba + mfbbc; + m1 = mfbbc - mfbba; + m0 = m2 + mfbbb; + mfbba = m0; + m0 += c4o9 * oMdrho; + mfbbb = m1 - m0 * vvz; + mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbca + mfbcc; + m1 = mfbcc - mfbca; + m0 = m2 + mfbcb; + mfbca = m0; + m0 += c1o9 * oMdrho; + mfbcb = m1 - m0 * vvz; + mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcac; + m1 = mfcac - mfcaa; + m0 = m2 + mfcab; + mfcaa = m0; + m0 += c1o36 * oMdrho; + mfcab = m1 - m0 * vvz; + mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcba + mfcbc; + m1 = mfcbc - mfcba; + m0 = m2 + mfcbb; + mfcba = m0; + m0 += c1o9 * oMdrho; + mfcbb = m1 - m0 * vvz; + mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcca + mfccc; + m1 = mfccc - mfcca; + m0 = m2 + mfccb; + mfcca = m0; + m0 += c1o36 * oMdrho; + mfccb = m1 - m0 * vvz; + mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m2 = mfaaa + mfaca; + m1 = mfaca - mfaaa; + m0 = m2 + mfaba; + mfaaa = m0; + m0 += c1o6 * oMdrho; + mfaba = m1 - m0 * vvy; + mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfacb; + m1 = mfacb - mfaab; + m0 = m2 + mfabb; + mfaab = m0; + mfabb = m1 - m0 * vvy; + mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfacc; + m1 = mfacc - mfaac; + m0 = m2 + mfabc; + mfaac = m0; + m0 += c1o18 * oMdrho; + mfabc = m1 - m0 * vvy; + mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbca; + m1 = mfbca - mfbaa; + m0 = m2 + mfbba; + mfbaa = m0; + m0 += c2o3 * oMdrho; + mfbba = m1 - m0 * vvy; + mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbab + mfbcb; + m1 = mfbcb - mfbab; + m0 = m2 + mfbbb; + mfbab = m0; + mfbbb = m1 - m0 * vvy; + mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbac + mfbcc; + m1 = mfbcc - mfbac; + m0 = m2 + mfbbc; + mfbac = m0; + m0 += c2o9 * oMdrho; + mfbbc = m1 - m0 * vvy; + mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcca; + m1 = mfcca - mfcaa; + m0 = m2 + mfcba; + mfcaa = m0; + m0 += c1o6 * oMdrho; + mfcba = m1 - m0 * vvy; + mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcab + mfccb; + m1 = mfccb - mfcab; + m0 = m2 + mfcbb; + mfcab = m0; + mfcbb = m1 - m0 * vvy; + mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcac + mfccc; + m1 = mfccc - mfcac; + m0 = m2 + mfcbc; + mfcac = m0; + m0 += c1o18 * oMdrho; + mfcbc = m1 - m0 * vvy; + mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m2 = mfaaa + mfcaa; + m1 = mfcaa - mfaaa; + m0 = m2 + mfbaa; + mfaaa = m0; + m0 += c1o1* oMdrho; + mfbaa = m1 - m0 * vvx; + mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfcba; + m1 = mfcba - mfaba; + m0 = m2 + mfbba; + mfaba = m0; + mfbba = m1 - m0 * vvx; + mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfcca; + m1 = mfcca - mfaca; + m0 = m2 + mfbca; + mfaca = m0; + m0 += c1o3 * oMdrho; + mfbca = m1 - m0 * vvx; + mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfcab; + m1 = mfcab - mfaab; + m0 = m2 + mfbab; + mfaab = m0; + mfbab = m1 - m0 * vvx; + mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabb + mfcbb; + m1 = mfcbb - mfabb; + m0 = m2 + mfbbb; + mfabb = m0; + mfbbb = m1 - m0 * vvx; + mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacb + mfccb; + m1 = mfccb - mfacb; + m0 = m2 + mfbcb; + mfacb = m0; + mfbcb = m1 - m0 * vvx; + mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfcac; + m1 = mfcac - mfaac; + m0 = m2 + mfbac; + mfaac = m0; + m0 += c1o3 * oMdrho; + mfbac = m1 - m0 * vvx; + mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabc + mfcbc; + m1 = mfcbc - mfabc; + m0 = m2 + mfbbc; + mfabc = m0; + mfbbc = m1 - m0 * vvx; + mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacc + mfccc; + m1 = mfccc - mfacc; + m0 = m2 + mfbcc; + mfacc = m0; + m0 += c1o9 * oMdrho; + mfbcc = m1 - m0 * vvx; + mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + // linear combinations - mxxyPyzz = mfcba + mfabc; - mxxyMyzz = mfcba - mfabc; + mxxyPyzz = mfcba + mfabc; + mxxyMyzz = mfcba - mfabc; - mxxzPyyz = mfcab + mfacb; - mxxzMyyz = mfcab - mfacb; + mxxzPyyz = mfcab + mfacb; + mxxzMyyz = mfcab - mfacb; - mxyyPxzz = mfbca + mfbac; - mxyyMxzz = mfbca - mfbac; + mxyyPxzz = mfbca + mfbac; + mxyyMxzz = mfbca - mfbac; - ////////////////////////////////////////////////////////////////////////// - //exclusive for this source node - real mfbbb_NWB = mfbbb; - real mxxyPyzz_NWB = mxxyPyzz; - real mxxyMyzz_NWB = mxxyMyzz; - real mxxzPyyz_NWB = mxxzPyyz; - real mxxzMyyz_NWB = mxxzMyyz; - real mxyyPxzz_NWB = mxyyPxzz; - real mxyyMxzz_NWB = mxyyMxzz; - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// + //exclusive for this source node + real mfbbb_NWB = mfbbb; + real mxxyPyzz_NWB = mxxyPyzz; + real mxxyMyzz_NWB = mxxyMyzz; + real mxxzPyyz_NWB = mxxzPyyz; + real mxxzMyyz_NWB = mxxzMyyz; + real mxyyPxzz_NWB = mxyyPxzz; + real mxyyMxzz_NWB = mxyyMxzz; + ////////////////////////////////////////////////////////////////////////// @@ -6373,8 +6373,8 @@ __global__ void scaleCF_AA2016_comp_27(real* DC, drho_NWT = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; vx1_NWT = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_NWT); - vx2_NWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NWT); - vx3_NWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NWT); + vx2_NWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NWT); + vx3_NWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NWT); kxyFromfcNEQ_NWT = -c3o1*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_NWT) - ((vx1_NWT*vx2_NWT))); kyzFromfcNEQ_NWT = -c3o1*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_NWT) - ((vx2_NWT*vx3_NWT))); @@ -6382,306 +6382,306 @@ __global__ void scaleCF_AA2016_comp_27(real* DC, kxxMyyFromfcNEQ_NWT = -c3o2*omegaS *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_NWT) - ((vx1_NWT*vx1_NWT-vx2_NWT*vx2_NWT))); kxxMzzFromfcNEQ_NWT = -c3o2*omegaS *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_NWT) - ((vx1_NWT*vx1_NWT-vx3_NWT*vx3_NWT))); - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - mfcbb = f_E ; - mfabb = f_W ; - mfbcb = f_N ; - mfbab = f_S ; - mfbbc = f_T ; - mfbba = f_B ; - mfccb = f_NE ; - mfaab = f_SW ; - mfcab = f_SE ; - mfacb = f_NW ; - mfcbc = f_TE ; - mfaba = f_BW ; - mfcba = f_BE ; - mfabc = f_TW ; - mfbcc = f_TN ; - mfbaa = f_BS ; - mfbca = f_BN ; - mfbac = f_TS ; - mfbbb = f_ZERO; - mfccc = f_TNE ; - mfaac = f_TSW ; - mfcac = f_TSE ; - mfacc = f_TNW ; - mfcca = f_BNE ; - mfaaa = f_BSW ; - mfcaa = f_BSE ; - mfaca = f_BNW ; - //////////////////////////////////////////////////////////////////////////////////// - drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + - (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + - ((mfabb+mfcbb) + (mfbab+mfbcb)) + (mfbba+mfbbc)) + mfbbb; - - rho = c1o1+drho; - //////////////////////////////////////////////////////////////////////////////////// - vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + - (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + - (mfcbb-mfabb)) / rho; - vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + - (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + - (mfbcb-mfbab)) / rho; - vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + - (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + - (mfbbc-mfbba)) / rho; - //////////////////////////////////////////////////////////////////////////////////// - //fast - oMdrho = c1o1; // comp special - vx2=vvx*vvx; - vy2=vvy*vvy; - vz2=vvz*vvz; - //////////////////////////////////////////////////////////////////////////////////// - //Hin - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m2 = mfaaa + mfaac; - m1 = mfaac - mfaaa; - m0 = m2 + mfaab; - mfaaa = m0; - m0 += c1o36 * oMdrho; - mfaab = m1 - m0 * vvz; - mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfabc; - m1 = mfabc - mfaba; - m0 = m2 + mfabb; - mfaba = m0; - m0 += c1o9 * oMdrho; - mfabb = m1 - m0 * vvz; - mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfacc; - m1 = mfacc - mfaca; - m0 = m2 + mfacb; - mfaca = m0; - m0 += c1o36 * oMdrho; - mfacb = m1 - m0 * vvz; - mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbac; - m1 = mfbac - mfbaa; - m0 = m2 + mfbab; - mfbaa = m0; - m0 += c1o9 * oMdrho; - mfbab = m1 - m0 * vvz; - mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbba + mfbbc; - m1 = mfbbc - mfbba; - m0 = m2 + mfbbb; - mfbba = m0; - m0 += c4o9 * oMdrho; - mfbbb = m1 - m0 * vvz; - mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbca + mfbcc; - m1 = mfbcc - mfbca; - m0 = m2 + mfbcb; - mfbca = m0; - m0 += c1o9 * oMdrho; - mfbcb = m1 - m0 * vvz; - mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcac; - m1 = mfcac - mfcaa; - m0 = m2 + mfcab; - mfcaa = m0; - m0 += c1o36 * oMdrho; - mfcab = m1 - m0 * vvz; - mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcba + mfcbc; - m1 = mfcbc - mfcba; - m0 = m2 + mfcbb; - mfcba = m0; - m0 += c1o9 * oMdrho; - mfcbb = m1 - m0 * vvz; - mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcca + mfccc; - m1 = mfccc - mfcca; - m0 = m2 + mfccb; - mfcca = m0; - m0 += c1o36 * oMdrho; - mfccb = m1 - m0 * vvz; - mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m2 = mfaaa + mfaca; - m1 = mfaca - mfaaa; - m0 = m2 + mfaba; - mfaaa = m0; - m0 += c1o6 * oMdrho; - mfaba = m1 - m0 * vvy; - mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfacb; - m1 = mfacb - mfaab; - m0 = m2 + mfabb; - mfaab = m0; - mfabb = m1 - m0 * vvy; - mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfacc; - m1 = mfacc - mfaac; - m0 = m2 + mfabc; - mfaac = m0; - m0 += c1o18 * oMdrho; - mfabc = m1 - m0 * vvy; - mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbca; - m1 = mfbca - mfbaa; - m0 = m2 + mfbba; - mfbaa = m0; - m0 += c2o3 * oMdrho; - mfbba = m1 - m0 * vvy; - mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbab + mfbcb; - m1 = mfbcb - mfbab; - m0 = m2 + mfbbb; - mfbab = m0; - mfbbb = m1 - m0 * vvy; - mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbac + mfbcc; - m1 = mfbcc - mfbac; - m0 = m2 + mfbbc; - mfbac = m0; - m0 += c2o9 * oMdrho; - mfbbc = m1 - m0 * vvy; - mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcca; - m1 = mfcca - mfcaa; - m0 = m2 + mfcba; - mfcaa = m0; - m0 += c1o6 * oMdrho; - mfcba = m1 - m0 * vvy; - mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcab + mfccb; - m1 = mfccb - mfcab; - m0 = m2 + mfcbb; - mfcab = m0; - mfcbb = m1 - m0 * vvy; - mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcac + mfccc; - m1 = mfccc - mfcac; - m0 = m2 + mfcbc; - mfcac = m0; - m0 += c1o18 * oMdrho; - mfcbc = m1 - m0 * vvy; - mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m2 = mfaaa + mfcaa; - m1 = mfcaa - mfaaa; - m0 = m2 + mfbaa; - mfaaa = m0; - m0 += c1o1* oMdrho; - mfbaa = m1 - m0 * vvx; - mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfcba; - m1 = mfcba - mfaba; - m0 = m2 + mfbba; - mfaba = m0; - mfbba = m1 - m0 * vvx; - mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfcca; - m1 = mfcca - mfaca; - m0 = m2 + mfbca; - mfaca = m0; - m0 += c1o3 * oMdrho; - mfbca = m1 - m0 * vvx; - mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfcab; - m1 = mfcab - mfaab; - m0 = m2 + mfbab; - mfaab = m0; - mfbab = m1 - m0 * vvx; - mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabb + mfcbb; - m1 = mfcbb - mfabb; - m0 = m2 + mfbbb; - mfabb = m0; - mfbbb = m1 - m0 * vvx; - mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacb + mfccb; - m1 = mfccb - mfacb; - m0 = m2 + mfbcb; - mfacb = m0; - mfbcb = m1 - m0 * vvx; - mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfcac; - m1 = mfcac - mfaac; - m0 = m2 + mfbac; - mfaac = m0; - m0 += c1o3 * oMdrho; - mfbac = m1 - m0 * vvx; - mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabc + mfcbc; - m1 = mfcbc - mfabc; - m0 = m2 + mfbbc; - mfabc = m0; - mfbbc = m1 - m0 * vvx; - mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacc + mfccc; - m1 = mfccc - mfacc; - m0 = m2 + mfbcc; - mfacc = m0; - m0 += c1o9 * oMdrho; - mfbcc = m1 - m0 * vvx; - mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - // linear combinations + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + mfcbb = f_E ; + mfabb = f_W ; + mfbcb = f_N ; + mfbab = f_S ; + mfbbc = f_T ; + mfbba = f_B ; + mfccb = f_NE ; + mfaab = f_SW ; + mfcab = f_SE ; + mfacb = f_NW ; + mfcbc = f_TE ; + mfaba = f_BW ; + mfcba = f_BE ; + mfabc = f_TW ; + mfbcc = f_TN ; + mfbaa = f_BS ; + mfbca = f_BN ; + mfbac = f_TS ; + mfbbb = f_ZERO; + mfccc = f_TNE ; + mfaac = f_TSW ; + mfcac = f_TSE ; + mfacc = f_TNW ; + mfcca = f_BNE ; + mfaaa = f_BSW ; + mfcaa = f_BSE ; + mfaca = f_BNW ; + //////////////////////////////////////////////////////////////////////////////////// + drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + + (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + + ((mfabb+mfcbb) + (mfbab+mfbcb)) + (mfbba+mfbbc)) + mfbbb; + + rho = c1o1+drho; + //////////////////////////////////////////////////////////////////////////////////// + vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + + (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + + (mfcbb-mfabb)) / rho; + vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + + (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + + (mfbcb-mfbab)) / rho; + vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + + (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + + (mfbbc-mfbba)) / rho; + //////////////////////////////////////////////////////////////////////////////////// + //fast + oMdrho = c1o1; // comp special + vx2=vvx*vvx; + vy2=vvy*vvy; + vz2=vvz*vvz; + //////////////////////////////////////////////////////////////////////////////////// + //Hin + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m2 = mfaaa + mfaac; + m1 = mfaac - mfaaa; + m0 = m2 + mfaab; + mfaaa = m0; + m0 += c1o36 * oMdrho; + mfaab = m1 - m0 * vvz; + mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfabc; + m1 = mfabc - mfaba; + m0 = m2 + mfabb; + mfaba = m0; + m0 += c1o9 * oMdrho; + mfabb = m1 - m0 * vvz; + mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfacc; + m1 = mfacc - mfaca; + m0 = m2 + mfacb; + mfaca = m0; + m0 += c1o36 * oMdrho; + mfacb = m1 - m0 * vvz; + mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbac; + m1 = mfbac - mfbaa; + m0 = m2 + mfbab; + mfbaa = m0; + m0 += c1o9 * oMdrho; + mfbab = m1 - m0 * vvz; + mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbba + mfbbc; + m1 = mfbbc - mfbba; + m0 = m2 + mfbbb; + mfbba = m0; + m0 += c4o9 * oMdrho; + mfbbb = m1 - m0 * vvz; + mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbca + mfbcc; + m1 = mfbcc - mfbca; + m0 = m2 + mfbcb; + mfbca = m0; + m0 += c1o9 * oMdrho; + mfbcb = m1 - m0 * vvz; + mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcac; + m1 = mfcac - mfcaa; + m0 = m2 + mfcab; + mfcaa = m0; + m0 += c1o36 * oMdrho; + mfcab = m1 - m0 * vvz; + mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcba + mfcbc; + m1 = mfcbc - mfcba; + m0 = m2 + mfcbb; + mfcba = m0; + m0 += c1o9 * oMdrho; + mfcbb = m1 - m0 * vvz; + mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcca + mfccc; + m1 = mfccc - mfcca; + m0 = m2 + mfccb; + mfcca = m0; + m0 += c1o36 * oMdrho; + mfccb = m1 - m0 * vvz; + mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m2 = mfaaa + mfaca; + m1 = mfaca - mfaaa; + m0 = m2 + mfaba; + mfaaa = m0; + m0 += c1o6 * oMdrho; + mfaba = m1 - m0 * vvy; + mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfacb; + m1 = mfacb - mfaab; + m0 = m2 + mfabb; + mfaab = m0; + mfabb = m1 - m0 * vvy; + mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfacc; + m1 = mfacc - mfaac; + m0 = m2 + mfabc; + mfaac = m0; + m0 += c1o18 * oMdrho; + mfabc = m1 - m0 * vvy; + mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbca; + m1 = mfbca - mfbaa; + m0 = m2 + mfbba; + mfbaa = m0; + m0 += c2o3 * oMdrho; + mfbba = m1 - m0 * vvy; + mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbab + mfbcb; + m1 = mfbcb - mfbab; + m0 = m2 + mfbbb; + mfbab = m0; + mfbbb = m1 - m0 * vvy; + mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbac + mfbcc; + m1 = mfbcc - mfbac; + m0 = m2 + mfbbc; + mfbac = m0; + m0 += c2o9 * oMdrho; + mfbbc = m1 - m0 * vvy; + mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcca; + m1 = mfcca - mfcaa; + m0 = m2 + mfcba; + mfcaa = m0; + m0 += c1o6 * oMdrho; + mfcba = m1 - m0 * vvy; + mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcab + mfccb; + m1 = mfccb - mfcab; + m0 = m2 + mfcbb; + mfcab = m0; + mfcbb = m1 - m0 * vvy; + mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcac + mfccc; + m1 = mfccc - mfcac; + m0 = m2 + mfcbc; + mfcac = m0; + m0 += c1o18 * oMdrho; + mfcbc = m1 - m0 * vvy; + mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m2 = mfaaa + mfcaa; + m1 = mfcaa - mfaaa; + m0 = m2 + mfbaa; + mfaaa = m0; + m0 += c1o1* oMdrho; + mfbaa = m1 - m0 * vvx; + mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfcba; + m1 = mfcba - mfaba; + m0 = m2 + mfbba; + mfaba = m0; + mfbba = m1 - m0 * vvx; + mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfcca; + m1 = mfcca - mfaca; + m0 = m2 + mfbca; + mfaca = m0; + m0 += c1o3 * oMdrho; + mfbca = m1 - m0 * vvx; + mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfcab; + m1 = mfcab - mfaab; + m0 = m2 + mfbab; + mfaab = m0; + mfbab = m1 - m0 * vvx; + mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabb + mfcbb; + m1 = mfcbb - mfabb; + m0 = m2 + mfbbb; + mfabb = m0; + mfbbb = m1 - m0 * vvx; + mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacb + mfccb; + m1 = mfccb - mfacb; + m0 = m2 + mfbcb; + mfacb = m0; + mfbcb = m1 - m0 * vvx; + mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfcac; + m1 = mfcac - mfaac; + m0 = m2 + mfbac; + mfaac = m0; + m0 += c1o3 * oMdrho; + mfbac = m1 - m0 * vvx; + mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabc + mfcbc; + m1 = mfcbc - mfabc; + m0 = m2 + mfbbc; + mfabc = m0; + mfbbc = m1 - m0 * vvx; + mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacc + mfccc; + m1 = mfccc - mfacc; + m0 = m2 + mfbcc; + mfacc = m0; + m0 += c1o9 * oMdrho; + mfbcc = m1 - m0 * vvx; + mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + // linear combinations - mxxyPyzz = mfcba + mfabc; - mxxyMyzz = mfcba - mfabc; + mxxyPyzz = mfcba + mfabc; + mxxyMyzz = mfcba - mfabc; - mxxzPyyz = mfcab + mfacb; - mxxzMyyz = mfcab - mfacb; + mxxzPyyz = mfcab + mfacb; + mxxzMyyz = mfcab - mfacb; - mxyyPxzz = mfbca + mfbac; - mxyyMxzz = mfbca - mfbac; + mxyyPxzz = mfbca + mfbac; + mxyyMxzz = mfbca - mfbac; - ////////////////////////////////////////////////////////////////////////// - //exclusive for this source node - real mfbbb_NWT = mfbbb; - real mxxyPyzz_NWT = mxxyPyzz; - real mxxyMyzz_NWT = mxxyMyzz; - real mxxzPyyz_NWT = mxxzPyyz; - real mxxzMyyz_NWT = mxxzMyyz; - real mxyyPxzz_NWT = mxyyPxzz; - real mxyyMxzz_NWT = mxyyMxzz; - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// + //exclusive for this source node + real mfbbb_NWT = mfbbb; + real mxxyPyzz_NWT = mxxyPyzz; + real mxxyMyzz_NWT = mxxyMyzz; + real mxxzPyyz_NWT = mxxzPyyz; + real mxxzMyyz_NWT = mxxzMyyz; + real mxyyPxzz_NWT = mxyyPxzz; + real mxyyMxzz_NWT = mxyyMxzz; + ////////////////////////////////////////////////////////////////////////// @@ -6780,8 +6780,8 @@ __global__ void scaleCF_AA2016_comp_27(real* DC, drho_NET = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; vx1_NET = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_NET); - vx2_NET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NET); - vx3_NET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NET); + vx2_NET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NET); + vx3_NET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NET); kxyFromfcNEQ_NET = -c3o1*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_NET) - ((vx1_NET*vx2_NET))); kyzFromfcNEQ_NET = -c3o1*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_NET) - ((vx2_NET*vx3_NET))); @@ -6789,306 +6789,306 @@ __global__ void scaleCF_AA2016_comp_27(real* DC, kxxMyyFromfcNEQ_NET = -c3o2*omegaS *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_NET) - ((vx1_NET*vx1_NET-vx2_NET*vx2_NET))); kxxMzzFromfcNEQ_NET = -c3o2*omegaS *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_NET) - ((vx1_NET*vx1_NET-vx3_NET*vx3_NET))); - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - mfcbb = f_E ; - mfabb = f_W ; - mfbcb = f_N ; - mfbab = f_S ; - mfbbc = f_T ; - mfbba = f_B ; - mfccb = f_NE ; - mfaab = f_SW ; - mfcab = f_SE ; - mfacb = f_NW ; - mfcbc = f_TE ; - mfaba = f_BW ; - mfcba = f_BE ; - mfabc = f_TW ; - mfbcc = f_TN ; - mfbaa = f_BS ; - mfbca = f_BN ; - mfbac = f_TS ; - mfbbb = f_ZERO; - mfccc = f_TNE ; - mfaac = f_TSW ; - mfcac = f_TSE ; - mfacc = f_TNW ; - mfcca = f_BNE ; - mfaaa = f_BSW ; - mfcaa = f_BSE ; - mfaca = f_BNW ; - //////////////////////////////////////////////////////////////////////////////////// - drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + - (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + - ((mfabb+mfcbb) + (mfbab+mfbcb)) + (mfbba+mfbbc)) + mfbbb; - - rho = c1o1+drho; - //////////////////////////////////////////////////////////////////////////////////// - vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + - (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + - (mfcbb-mfabb)) / rho; - vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + - (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + - (mfbcb-mfbab)) / rho; - vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + - (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + - (mfbbc-mfbba)) / rho; - //////////////////////////////////////////////////////////////////////////////////// - //fast - oMdrho = c1o1; // comp special - vx2=vvx*vvx; - vy2=vvy*vvy; - vz2=vvz*vvz; - //////////////////////////////////////////////////////////////////////////////////// - //Hin - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m2 = mfaaa + mfaac; - m1 = mfaac - mfaaa; - m0 = m2 + mfaab; - mfaaa = m0; - m0 += c1o36 * oMdrho; - mfaab = m1 - m0 * vvz; - mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfabc; - m1 = mfabc - mfaba; - m0 = m2 + mfabb; - mfaba = m0; - m0 += c1o9 * oMdrho; - mfabb = m1 - m0 * vvz; - mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfacc; - m1 = mfacc - mfaca; - m0 = m2 + mfacb; - mfaca = m0; - m0 += c1o36 * oMdrho; - mfacb = m1 - m0 * vvz; - mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbac; - m1 = mfbac - mfbaa; - m0 = m2 + mfbab; - mfbaa = m0; - m0 += c1o9 * oMdrho; - mfbab = m1 - m0 * vvz; - mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbba + mfbbc; - m1 = mfbbc - mfbba; - m0 = m2 + mfbbb; - mfbba = m0; - m0 += c4o9 * oMdrho; - mfbbb = m1 - m0 * vvz; - mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbca + mfbcc; - m1 = mfbcc - mfbca; - m0 = m2 + mfbcb; - mfbca = m0; - m0 += c1o9 * oMdrho; - mfbcb = m1 - m0 * vvz; - mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcac; - m1 = mfcac - mfcaa; - m0 = m2 + mfcab; - mfcaa = m0; - m0 += c1o36 * oMdrho; - mfcab = m1 - m0 * vvz; - mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcba + mfcbc; - m1 = mfcbc - mfcba; - m0 = m2 + mfcbb; - mfcba = m0; - m0 += c1o9 * oMdrho; - mfcbb = m1 - m0 * vvz; - mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcca + mfccc; - m1 = mfccc - mfcca; - m0 = m2 + mfccb; - mfcca = m0; - m0 += c1o36 * oMdrho; - mfccb = m1 - m0 * vvz; - mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m2 = mfaaa + mfaca; - m1 = mfaca - mfaaa; - m0 = m2 + mfaba; - mfaaa = m0; - m0 += c1o6 * oMdrho; - mfaba = m1 - m0 * vvy; - mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfacb; - m1 = mfacb - mfaab; - m0 = m2 + mfabb; - mfaab = m0; - mfabb = m1 - m0 * vvy; - mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfacc; - m1 = mfacc - mfaac; - m0 = m2 + mfabc; - mfaac = m0; - m0 += c1o18 * oMdrho; - mfabc = m1 - m0 * vvy; - mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbca; - m1 = mfbca - mfbaa; - m0 = m2 + mfbba; - mfbaa = m0; - m0 += c2o3 * oMdrho; - mfbba = m1 - m0 * vvy; - mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbab + mfbcb; - m1 = mfbcb - mfbab; - m0 = m2 + mfbbb; - mfbab = m0; - mfbbb = m1 - m0 * vvy; - mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbac + mfbcc; - m1 = mfbcc - mfbac; - m0 = m2 + mfbbc; - mfbac = m0; - m0 += c2o9 * oMdrho; - mfbbc = m1 - m0 * vvy; - mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcca; - m1 = mfcca - mfcaa; - m0 = m2 + mfcba; - mfcaa = m0; - m0 += c1o6 * oMdrho; - mfcba = m1 - m0 * vvy; - mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcab + mfccb; - m1 = mfccb - mfcab; - m0 = m2 + mfcbb; - mfcab = m0; - mfcbb = m1 - m0 * vvy; - mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcac + mfccc; - m1 = mfccc - mfcac; - m0 = m2 + mfcbc; - mfcac = m0; - m0 += c1o18 * oMdrho; - mfcbc = m1 - m0 * vvy; - mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m2 = mfaaa + mfcaa; - m1 = mfcaa - mfaaa; - m0 = m2 + mfbaa; - mfaaa = m0; - m0 += c1o1* oMdrho; - mfbaa = m1 - m0 * vvx; - mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfcba; - m1 = mfcba - mfaba; - m0 = m2 + mfbba; - mfaba = m0; - mfbba = m1 - m0 * vvx; - mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfcca; - m1 = mfcca - mfaca; - m0 = m2 + mfbca; - mfaca = m0; - m0 += c1o3 * oMdrho; - mfbca = m1 - m0 * vvx; - mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfcab; - m1 = mfcab - mfaab; - m0 = m2 + mfbab; - mfaab = m0; - mfbab = m1 - m0 * vvx; - mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabb + mfcbb; - m1 = mfcbb - mfabb; - m0 = m2 + mfbbb; - mfabb = m0; - mfbbb = m1 - m0 * vvx; - mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacb + mfccb; - m1 = mfccb - mfacb; - m0 = m2 + mfbcb; - mfacb = m0; - mfbcb = m1 - m0 * vvx; - mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfcac; - m1 = mfcac - mfaac; - m0 = m2 + mfbac; - mfaac = m0; - m0 += c1o3 * oMdrho; - mfbac = m1 - m0 * vvx; - mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabc + mfcbc; - m1 = mfcbc - mfabc; - m0 = m2 + mfbbc; - mfabc = m0; - mfbbc = m1 - m0 * vvx; - mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacc + mfccc; - m1 = mfccc - mfacc; - m0 = m2 + mfbcc; - mfacc = m0; - m0 += c1o9 * oMdrho; - mfbcc = m1 - m0 * vvx; - mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - // linear combinations + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + mfcbb = f_E ; + mfabb = f_W ; + mfbcb = f_N ; + mfbab = f_S ; + mfbbc = f_T ; + mfbba = f_B ; + mfccb = f_NE ; + mfaab = f_SW ; + mfcab = f_SE ; + mfacb = f_NW ; + mfcbc = f_TE ; + mfaba = f_BW ; + mfcba = f_BE ; + mfabc = f_TW ; + mfbcc = f_TN ; + mfbaa = f_BS ; + mfbca = f_BN ; + mfbac = f_TS ; + mfbbb = f_ZERO; + mfccc = f_TNE ; + mfaac = f_TSW ; + mfcac = f_TSE ; + mfacc = f_TNW ; + mfcca = f_BNE ; + mfaaa = f_BSW ; + mfcaa = f_BSE ; + mfaca = f_BNW ; + //////////////////////////////////////////////////////////////////////////////////// + drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + + (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + + ((mfabb+mfcbb) + (mfbab+mfbcb)) + (mfbba+mfbbc)) + mfbbb; + + rho = c1o1+drho; + //////////////////////////////////////////////////////////////////////////////////// + vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + + (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + + (mfcbb-mfabb)) / rho; + vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + + (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + + (mfbcb-mfbab)) / rho; + vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + + (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + + (mfbbc-mfbba)) / rho; + //////////////////////////////////////////////////////////////////////////////////// + //fast + oMdrho = c1o1; // comp special + vx2=vvx*vvx; + vy2=vvy*vvy; + vz2=vvz*vvz; + //////////////////////////////////////////////////////////////////////////////////// + //Hin + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m2 = mfaaa + mfaac; + m1 = mfaac - mfaaa; + m0 = m2 + mfaab; + mfaaa = m0; + m0 += c1o36 * oMdrho; + mfaab = m1 - m0 * vvz; + mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfabc; + m1 = mfabc - mfaba; + m0 = m2 + mfabb; + mfaba = m0; + m0 += c1o9 * oMdrho; + mfabb = m1 - m0 * vvz; + mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfacc; + m1 = mfacc - mfaca; + m0 = m2 + mfacb; + mfaca = m0; + m0 += c1o36 * oMdrho; + mfacb = m1 - m0 * vvz; + mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbac; + m1 = mfbac - mfbaa; + m0 = m2 + mfbab; + mfbaa = m0; + m0 += c1o9 * oMdrho; + mfbab = m1 - m0 * vvz; + mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbba + mfbbc; + m1 = mfbbc - mfbba; + m0 = m2 + mfbbb; + mfbba = m0; + m0 += c4o9 * oMdrho; + mfbbb = m1 - m0 * vvz; + mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbca + mfbcc; + m1 = mfbcc - mfbca; + m0 = m2 + mfbcb; + mfbca = m0; + m0 += c1o9 * oMdrho; + mfbcb = m1 - m0 * vvz; + mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcac; + m1 = mfcac - mfcaa; + m0 = m2 + mfcab; + mfcaa = m0; + m0 += c1o36 * oMdrho; + mfcab = m1 - m0 * vvz; + mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcba + mfcbc; + m1 = mfcbc - mfcba; + m0 = m2 + mfcbb; + mfcba = m0; + m0 += c1o9 * oMdrho; + mfcbb = m1 - m0 * vvz; + mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcca + mfccc; + m1 = mfccc - mfcca; + m0 = m2 + mfccb; + mfcca = m0; + m0 += c1o36 * oMdrho; + mfccb = m1 - m0 * vvz; + mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m2 = mfaaa + mfaca; + m1 = mfaca - mfaaa; + m0 = m2 + mfaba; + mfaaa = m0; + m0 += c1o6 * oMdrho; + mfaba = m1 - m0 * vvy; + mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfacb; + m1 = mfacb - mfaab; + m0 = m2 + mfabb; + mfaab = m0; + mfabb = m1 - m0 * vvy; + mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfacc; + m1 = mfacc - mfaac; + m0 = m2 + mfabc; + mfaac = m0; + m0 += c1o18 * oMdrho; + mfabc = m1 - m0 * vvy; + mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbca; + m1 = mfbca - mfbaa; + m0 = m2 + mfbba; + mfbaa = m0; + m0 += c2o3 * oMdrho; + mfbba = m1 - m0 * vvy; + mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbab + mfbcb; + m1 = mfbcb - mfbab; + m0 = m2 + mfbbb; + mfbab = m0; + mfbbb = m1 - m0 * vvy; + mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbac + mfbcc; + m1 = mfbcc - mfbac; + m0 = m2 + mfbbc; + mfbac = m0; + m0 += c2o9 * oMdrho; + mfbbc = m1 - m0 * vvy; + mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcca; + m1 = mfcca - mfcaa; + m0 = m2 + mfcba; + mfcaa = m0; + m0 += c1o6 * oMdrho; + mfcba = m1 - m0 * vvy; + mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcab + mfccb; + m1 = mfccb - mfcab; + m0 = m2 + mfcbb; + mfcab = m0; + mfcbb = m1 - m0 * vvy; + mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcac + mfccc; + m1 = mfccc - mfcac; + m0 = m2 + mfcbc; + mfcac = m0; + m0 += c1o18 * oMdrho; + mfcbc = m1 - m0 * vvy; + mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m2 = mfaaa + mfcaa; + m1 = mfcaa - mfaaa; + m0 = m2 + mfbaa; + mfaaa = m0; + m0 += c1o1* oMdrho; + mfbaa = m1 - m0 * vvx; + mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfcba; + m1 = mfcba - mfaba; + m0 = m2 + mfbba; + mfaba = m0; + mfbba = m1 - m0 * vvx; + mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfcca; + m1 = mfcca - mfaca; + m0 = m2 + mfbca; + mfaca = m0; + m0 += c1o3 * oMdrho; + mfbca = m1 - m0 * vvx; + mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfcab; + m1 = mfcab - mfaab; + m0 = m2 + mfbab; + mfaab = m0; + mfbab = m1 - m0 * vvx; + mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabb + mfcbb; + m1 = mfcbb - mfabb; + m0 = m2 + mfbbb; + mfabb = m0; + mfbbb = m1 - m0 * vvx; + mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacb + mfccb; + m1 = mfccb - mfacb; + m0 = m2 + mfbcb; + mfacb = m0; + mfbcb = m1 - m0 * vvx; + mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfcac; + m1 = mfcac - mfaac; + m0 = m2 + mfbac; + mfaac = m0; + m0 += c1o3 * oMdrho; + mfbac = m1 - m0 * vvx; + mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabc + mfcbc; + m1 = mfcbc - mfabc; + m0 = m2 + mfbbc; + mfabc = m0; + mfbbc = m1 - m0 * vvx; + mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacc + mfccc; + m1 = mfccc - mfacc; + m0 = m2 + mfbcc; + mfacc = m0; + m0 += c1o9 * oMdrho; + mfbcc = m1 - m0 * vvx; + mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + // linear combinations - mxxyPyzz = mfcba + mfabc; - mxxyMyzz = mfcba - mfabc; + mxxyPyzz = mfcba + mfabc; + mxxyMyzz = mfcba - mfabc; - mxxzPyyz = mfcab + mfacb; - mxxzMyyz = mfcab - mfacb; + mxxzPyyz = mfcab + mfacb; + mxxzMyyz = mfcab - mfacb; - mxyyPxzz = mfbca + mfbac; - mxyyMxzz = mfbca - mfbac; + mxyyPxzz = mfbca + mfbac; + mxyyMxzz = mfbca - mfbac; - ////////////////////////////////////////////////////////////////////////// - //exclusive for this source node - real mfbbb_NET = mfbbb; - real mxxyPyzz_NET = mxxyPyzz; - real mxxyMyzz_NET = mxxyMyzz; - real mxxzPyyz_NET = mxxzPyyz; - real mxxzMyyz_NET = mxxzMyyz; - real mxyyPxzz_NET = mxyyPxzz; - real mxyyMxzz_NET = mxyyMxzz; - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// + //exclusive for this source node + real mfbbb_NET = mfbbb; + real mxxyPyzz_NET = mxxyPyzz; + real mxxyMyzz_NET = mxxyMyzz; + real mxxzPyyz_NET = mxxzPyyz; + real mxxzMyyz_NET = mxxzMyyz; + real mxyyPxzz_NET = mxyyPxzz; + real mxyyMxzz_NET = mxyyMxzz; + ////////////////////////////////////////////////////////////////////////// @@ -7187,8 +7187,8 @@ __global__ void scaleCF_AA2016_comp_27(real* DC, drho_NEB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; vx1_NEB = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_NEB); - vx2_NEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NEB); - vx3_NEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NEB); + vx2_NEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NEB); + vx3_NEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NEB); kxyFromfcNEQ_NEB = -c3o1*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_NEB) - ((vx1_NEB*vx2_NEB))); kyzFromfcNEQ_NEB = -c3o1*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_NEB) - ((vx2_NEB*vx3_NEB))); @@ -7196,306 +7196,306 @@ __global__ void scaleCF_AA2016_comp_27(real* DC, kxxMyyFromfcNEQ_NEB = -c3o2*omegaS *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_NEB) - ((vx1_NEB*vx1_NEB-vx2_NEB*vx2_NEB))); kxxMzzFromfcNEQ_NEB = -c3o2*omegaS *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_NEB) - ((vx1_NEB*vx1_NEB-vx3_NEB*vx3_NEB))); - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - mfcbb = f_E ; - mfabb = f_W ; - mfbcb = f_N ; - mfbab = f_S ; - mfbbc = f_T ; - mfbba = f_B ; - mfccb = f_NE ; - mfaab = f_SW ; - mfcab = f_SE ; - mfacb = f_NW ; - mfcbc = f_TE ; - mfaba = f_BW ; - mfcba = f_BE ; - mfabc = f_TW ; - mfbcc = f_TN ; - mfbaa = f_BS ; - mfbca = f_BN ; - mfbac = f_TS ; - mfbbb = f_ZERO; - mfccc = f_TNE ; - mfaac = f_TSW ; - mfcac = f_TSE ; - mfacc = f_TNW ; - mfcca = f_BNE ; - mfaaa = f_BSW ; - mfcaa = f_BSE ; - mfaca = f_BNW ; - //////////////////////////////////////////////////////////////////////////////////// - drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + - (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + - ((mfabb+mfcbb) + (mfbab+mfbcb)) + (mfbba+mfbbc)) + mfbbb; - - rho = c1o1+drho; - //////////////////////////////////////////////////////////////////////////////////// - vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + - (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + - (mfcbb-mfabb)) / rho; - vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + - (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + - (mfbcb-mfbab)) / rho; - vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + - (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + - (mfbbc-mfbba)) / rho; - //////////////////////////////////////////////////////////////////////////////////// - //fast - oMdrho = c1o1; // comp special - vx2=vvx*vvx; - vy2=vvy*vvy; - vz2=vvz*vvz; - //////////////////////////////////////////////////////////////////////////////////// - //Hin - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m2 = mfaaa + mfaac; - m1 = mfaac - mfaaa; - m0 = m2 + mfaab; - mfaaa = m0; - m0 += c1o36 * oMdrho; - mfaab = m1 - m0 * vvz; - mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfabc; - m1 = mfabc - mfaba; - m0 = m2 + mfabb; - mfaba = m0; - m0 += c1o9 * oMdrho; - mfabb = m1 - m0 * vvz; - mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfacc; - m1 = mfacc - mfaca; - m0 = m2 + mfacb; - mfaca = m0; - m0 += c1o36 * oMdrho; - mfacb = m1 - m0 * vvz; - mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbac; - m1 = mfbac - mfbaa; - m0 = m2 + mfbab; - mfbaa = m0; - m0 += c1o9 * oMdrho; - mfbab = m1 - m0 * vvz; - mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbba + mfbbc; - m1 = mfbbc - mfbba; - m0 = m2 + mfbbb; - mfbba = m0; - m0 += c4o9 * oMdrho; - mfbbb = m1 - m0 * vvz; - mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbca + mfbcc; - m1 = mfbcc - mfbca; - m0 = m2 + mfbcb; - mfbca = m0; - m0 += c1o9 * oMdrho; - mfbcb = m1 - m0 * vvz; - mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcac; - m1 = mfcac - mfcaa; - m0 = m2 + mfcab; - mfcaa = m0; - m0 += c1o36 * oMdrho; - mfcab = m1 - m0 * vvz; - mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcba + mfcbc; - m1 = mfcbc - mfcba; - m0 = m2 + mfcbb; - mfcba = m0; - m0 += c1o9 * oMdrho; - mfcbb = m1 - m0 * vvz; - mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcca + mfccc; - m1 = mfccc - mfcca; - m0 = m2 + mfccb; - mfcca = m0; - m0 += c1o36 * oMdrho; - mfccb = m1 - m0 * vvz; - mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m2 = mfaaa + mfaca; - m1 = mfaca - mfaaa; - m0 = m2 + mfaba; - mfaaa = m0; - m0 += c1o6 * oMdrho; - mfaba = m1 - m0 * vvy; - mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfacb; - m1 = mfacb - mfaab; - m0 = m2 + mfabb; - mfaab = m0; - mfabb = m1 - m0 * vvy; - mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfacc; - m1 = mfacc - mfaac; - m0 = m2 + mfabc; - mfaac = m0; - m0 += c1o18 * oMdrho; - mfabc = m1 - m0 * vvy; - mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbca; - m1 = mfbca - mfbaa; - m0 = m2 + mfbba; - mfbaa = m0; - m0 += c2o3 * oMdrho; - mfbba = m1 - m0 * vvy; - mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbab + mfbcb; - m1 = mfbcb - mfbab; - m0 = m2 + mfbbb; - mfbab = m0; - mfbbb = m1 - m0 * vvy; - mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbac + mfbcc; - m1 = mfbcc - mfbac; - m0 = m2 + mfbbc; - mfbac = m0; - m0 += c2o9 * oMdrho; - mfbbc = m1 - m0 * vvy; - mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcca; - m1 = mfcca - mfcaa; - m0 = m2 + mfcba; - mfcaa = m0; - m0 += c1o6 * oMdrho; - mfcba = m1 - m0 * vvy; - mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcab + mfccb; - m1 = mfccb - mfcab; - m0 = m2 + mfcbb; - mfcab = m0; - mfcbb = m1 - m0 * vvy; - mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcac + mfccc; - m1 = mfccc - mfcac; - m0 = m2 + mfcbc; - mfcac = m0; - m0 += c1o18 * oMdrho; - mfcbc = m1 - m0 * vvy; - mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m2 = mfaaa + mfcaa; - m1 = mfcaa - mfaaa; - m0 = m2 + mfbaa; - mfaaa = m0; - m0 += c1o1* oMdrho; - mfbaa = m1 - m0 * vvx; - mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfcba; - m1 = mfcba - mfaba; - m0 = m2 + mfbba; - mfaba = m0; - mfbba = m1 - m0 * vvx; - mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfcca; - m1 = mfcca - mfaca; - m0 = m2 + mfbca; - mfaca = m0; - m0 += c1o3 * oMdrho; - mfbca = m1 - m0 * vvx; - mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfcab; - m1 = mfcab - mfaab; - m0 = m2 + mfbab; - mfaab = m0; - mfbab = m1 - m0 * vvx; - mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabb + mfcbb; - m1 = mfcbb - mfabb; - m0 = m2 + mfbbb; - mfabb = m0; - mfbbb = m1 - m0 * vvx; - mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacb + mfccb; - m1 = mfccb - mfacb; - m0 = m2 + mfbcb; - mfacb = m0; - mfbcb = m1 - m0 * vvx; - mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfcac; - m1 = mfcac - mfaac; - m0 = m2 + mfbac; - mfaac = m0; - m0 += c1o3 * oMdrho; - mfbac = m1 - m0 * vvx; - mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabc + mfcbc; - m1 = mfcbc - mfabc; - m0 = m2 + mfbbc; - mfabc = m0; - mfbbc = m1 - m0 * vvx; - mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacc + mfccc; - m1 = mfccc - mfacc; - m0 = m2 + mfbcc; - mfacc = m0; - m0 += c1o9 * oMdrho; - mfbcc = m1 - m0 * vvx; - mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - // linear combinations + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + mfcbb = f_E ; + mfabb = f_W ; + mfbcb = f_N ; + mfbab = f_S ; + mfbbc = f_T ; + mfbba = f_B ; + mfccb = f_NE ; + mfaab = f_SW ; + mfcab = f_SE ; + mfacb = f_NW ; + mfcbc = f_TE ; + mfaba = f_BW ; + mfcba = f_BE ; + mfabc = f_TW ; + mfbcc = f_TN ; + mfbaa = f_BS ; + mfbca = f_BN ; + mfbac = f_TS ; + mfbbb = f_ZERO; + mfccc = f_TNE ; + mfaac = f_TSW ; + mfcac = f_TSE ; + mfacc = f_TNW ; + mfcca = f_BNE ; + mfaaa = f_BSW ; + mfcaa = f_BSE ; + mfaca = f_BNW ; + //////////////////////////////////////////////////////////////////////////////////// + drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + + (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + + ((mfabb+mfcbb) + (mfbab+mfbcb)) + (mfbba+mfbbc)) + mfbbb; + + rho = c1o1+drho; + //////////////////////////////////////////////////////////////////////////////////// + vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + + (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + + (mfcbb-mfabb)) / rho; + vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + + (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + + (mfbcb-mfbab)) / rho; + vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + + (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + + (mfbbc-mfbba)) / rho; + //////////////////////////////////////////////////////////////////////////////////// + //fast + oMdrho = c1o1; // comp special + vx2=vvx*vvx; + vy2=vvy*vvy; + vz2=vvz*vvz; + //////////////////////////////////////////////////////////////////////////////////// + //Hin + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m2 = mfaaa + mfaac; + m1 = mfaac - mfaaa; + m0 = m2 + mfaab; + mfaaa = m0; + m0 += c1o36 * oMdrho; + mfaab = m1 - m0 * vvz; + mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfabc; + m1 = mfabc - mfaba; + m0 = m2 + mfabb; + mfaba = m0; + m0 += c1o9 * oMdrho; + mfabb = m1 - m0 * vvz; + mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfacc; + m1 = mfacc - mfaca; + m0 = m2 + mfacb; + mfaca = m0; + m0 += c1o36 * oMdrho; + mfacb = m1 - m0 * vvz; + mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbac; + m1 = mfbac - mfbaa; + m0 = m2 + mfbab; + mfbaa = m0; + m0 += c1o9 * oMdrho; + mfbab = m1 - m0 * vvz; + mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbba + mfbbc; + m1 = mfbbc - mfbba; + m0 = m2 + mfbbb; + mfbba = m0; + m0 += c4o9 * oMdrho; + mfbbb = m1 - m0 * vvz; + mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbca + mfbcc; + m1 = mfbcc - mfbca; + m0 = m2 + mfbcb; + mfbca = m0; + m0 += c1o9 * oMdrho; + mfbcb = m1 - m0 * vvz; + mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcac; + m1 = mfcac - mfcaa; + m0 = m2 + mfcab; + mfcaa = m0; + m0 += c1o36 * oMdrho; + mfcab = m1 - m0 * vvz; + mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcba + mfcbc; + m1 = mfcbc - mfcba; + m0 = m2 + mfcbb; + mfcba = m0; + m0 += c1o9 * oMdrho; + mfcbb = m1 - m0 * vvz; + mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcca + mfccc; + m1 = mfccc - mfcca; + m0 = m2 + mfccb; + mfcca = m0; + m0 += c1o36 * oMdrho; + mfccb = m1 - m0 * vvz; + mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m2 = mfaaa + mfaca; + m1 = mfaca - mfaaa; + m0 = m2 + mfaba; + mfaaa = m0; + m0 += c1o6 * oMdrho; + mfaba = m1 - m0 * vvy; + mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfacb; + m1 = mfacb - mfaab; + m0 = m2 + mfabb; + mfaab = m0; + mfabb = m1 - m0 * vvy; + mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfacc; + m1 = mfacc - mfaac; + m0 = m2 + mfabc; + mfaac = m0; + m0 += c1o18 * oMdrho; + mfabc = m1 - m0 * vvy; + mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbca; + m1 = mfbca - mfbaa; + m0 = m2 + mfbba; + mfbaa = m0; + m0 += c2o3 * oMdrho; + mfbba = m1 - m0 * vvy; + mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbab + mfbcb; + m1 = mfbcb - mfbab; + m0 = m2 + mfbbb; + mfbab = m0; + mfbbb = m1 - m0 * vvy; + mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbac + mfbcc; + m1 = mfbcc - mfbac; + m0 = m2 + mfbbc; + mfbac = m0; + m0 += c2o9 * oMdrho; + mfbbc = m1 - m0 * vvy; + mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcca; + m1 = mfcca - mfcaa; + m0 = m2 + mfcba; + mfcaa = m0; + m0 += c1o6 * oMdrho; + mfcba = m1 - m0 * vvy; + mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcab + mfccb; + m1 = mfccb - mfcab; + m0 = m2 + mfcbb; + mfcab = m0; + mfcbb = m1 - m0 * vvy; + mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcac + mfccc; + m1 = mfccc - mfcac; + m0 = m2 + mfcbc; + mfcac = m0; + m0 += c1o18 * oMdrho; + mfcbc = m1 - m0 * vvy; + mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m2 = mfaaa + mfcaa; + m1 = mfcaa - mfaaa; + m0 = m2 + mfbaa; + mfaaa = m0; + m0 += c1o1* oMdrho; + mfbaa = m1 - m0 * vvx; + mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfcba; + m1 = mfcba - mfaba; + m0 = m2 + mfbba; + mfaba = m0; + mfbba = m1 - m0 * vvx; + mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfcca; + m1 = mfcca - mfaca; + m0 = m2 + mfbca; + mfaca = m0; + m0 += c1o3 * oMdrho; + mfbca = m1 - m0 * vvx; + mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfcab; + m1 = mfcab - mfaab; + m0 = m2 + mfbab; + mfaab = m0; + mfbab = m1 - m0 * vvx; + mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabb + mfcbb; + m1 = mfcbb - mfabb; + m0 = m2 + mfbbb; + mfabb = m0; + mfbbb = m1 - m0 * vvx; + mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacb + mfccb; + m1 = mfccb - mfacb; + m0 = m2 + mfbcb; + mfacb = m0; + mfbcb = m1 - m0 * vvx; + mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfcac; + m1 = mfcac - mfaac; + m0 = m2 + mfbac; + mfaac = m0; + m0 += c1o3 * oMdrho; + mfbac = m1 - m0 * vvx; + mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabc + mfcbc; + m1 = mfcbc - mfabc; + m0 = m2 + mfbbc; + mfabc = m0; + mfbbc = m1 - m0 * vvx; + mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacc + mfccc; + m1 = mfccc - mfacc; + m0 = m2 + mfbcc; + mfacc = m0; + m0 += c1o9 * oMdrho; + mfbcc = m1 - m0 * vvx; + mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + // linear combinations - mxxyPyzz = mfcba + mfabc; - mxxyMyzz = mfcba - mfabc; + mxxyPyzz = mfcba + mfabc; + mxxyMyzz = mfcba - mfabc; - mxxzPyyz = mfcab + mfacb; - mxxzMyyz = mfcab - mfacb; + mxxzPyyz = mfcab + mfacb; + mxxzMyyz = mfcab - mfacb; - mxyyPxzz = mfbca + mfbac; - mxyyMxzz = mfbca - mfbac; + mxyyPxzz = mfbca + mfbac; + mxyyMxzz = mfbca - mfbac; - ////////////////////////////////////////////////////////////////////////// - //exclusive for this source node - real mfbbb_NEB = mfbbb; - real mxxyPyzz_NEB = mxxyPyzz; - real mxxyMyzz_NEB = mxxyMyzz; - real mxxzPyyz_NEB = mxxzPyyz; - real mxxzMyyz_NEB = mxxzMyyz; - real mxyyPxzz_NEB = mxyyPxzz; - real mxyyMxzz_NEB = mxyyMxzz; - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// + //exclusive for this source node + real mfbbb_NEB = mfbbb; + real mxxyPyzz_NEB = mxxyPyzz; + real mxxyMyzz_NEB = mxxyMyzz; + real mxxzPyyz_NEB = mxxzPyyz; + real mxxzMyyz_NEB = mxxzMyyz; + real mxyyPxzz_NEB = mxyyPxzz; + real mxyyMxzz_NEB = mxyyMxzz; + ////////////////////////////////////////////////////////////////////////// @@ -7552,54 +7552,54 @@ __global__ void scaleCF_AA2016_comp_27(real* DC, ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real mfbbbMean = c1o8 * (mfbbb_SWB + mfbbb_SWT + mfbbb_SET + mfbbb_SEB + mfbbb_NWB + mfbbb_NWT + mfbbb_NET + mfbbb_NEB); - real mxxyPyzzMean = c1o8 * (mxxyPyzz_SWB + mxxyPyzz_SWT + mxxyPyzz_SET + mxxyPyzz_SEB + mxxyPyzz_NWB + mxxyPyzz_NWT + mxxyPyzz_NET + mxxyPyzz_NEB); - real mxxyMyzzMean = c1o8 * (mxxyMyzz_SWB + mxxyMyzz_SWT + mxxyMyzz_SET + mxxyMyzz_SEB + mxxyMyzz_NWB + mxxyMyzz_NWT + mxxyMyzz_NET + mxxyMyzz_NEB); - real mxxzPyyzMean = c1o8 * (mxxzPyyz_SWB + mxxzPyyz_SWT + mxxzPyyz_SET + mxxzPyyz_SEB + mxxzPyyz_NWB + mxxzPyyz_NWT + mxxzPyyz_NET + mxxzPyyz_NEB); - real mxxzMyyzMean = c1o8 * (mxxzMyyz_SWB + mxxzMyyz_SWT + mxxzMyyz_SET + mxxzMyyz_SEB + mxxzMyyz_NWB + mxxzMyyz_NWT + mxxzMyyz_NET + mxxzMyyz_NEB); - real mxyyPxzzMean = c1o8 * (mxyyPxzz_SWB + mxyyPxzz_SWT + mxyyPxzz_SET + mxyyPxzz_SEB + mxyyPxzz_NWB + mxyyPxzz_NWT + mxyyPxzz_NET + mxyyPxzz_NEB); - real mxyyMxzzMean = c1o8 * (mxyyMxzz_SWB + mxyyMxzz_SWT + mxyyMxzz_SET + mxyyMxzz_SEB + mxyyMxzz_NWB + mxyyMxzz_NWT + mxyyMxzz_NET + mxyyMxzz_NEB); + real mfbbbMean = c1o8 * (mfbbb_SWB + mfbbb_SWT + mfbbb_SET + mfbbb_SEB + mfbbb_NWB + mfbbb_NWT + mfbbb_NET + mfbbb_NEB); + real mxxyPyzzMean = c1o8 * (mxxyPyzz_SWB + mxxyPyzz_SWT + mxxyPyzz_SET + mxxyPyzz_SEB + mxxyPyzz_NWB + mxxyPyzz_NWT + mxxyPyzz_NET + mxxyPyzz_NEB); + real mxxyMyzzMean = c1o8 * (mxxyMyzz_SWB + mxxyMyzz_SWT + mxxyMyzz_SET + mxxyMyzz_SEB + mxxyMyzz_NWB + mxxyMyzz_NWT + mxxyMyzz_NET + mxxyMyzz_NEB); + real mxxzPyyzMean = c1o8 * (mxxzPyyz_SWB + mxxzPyyz_SWT + mxxzPyyz_SET + mxxzPyyz_SEB + mxxzPyyz_NWB + mxxzPyyz_NWT + mxxzPyyz_NET + mxxzPyyz_NEB); + real mxxzMyyzMean = c1o8 * (mxxzMyyz_SWB + mxxzMyyz_SWT + mxxzMyyz_SET + mxxzMyyz_SEB + mxxzMyyz_NWB + mxxzMyyz_NWT + mxxzMyyz_NET + mxxzMyyz_NEB); + real mxyyPxzzMean = c1o8 * (mxyyPxzz_SWB + mxyyPxzz_SWT + mxyyPxzz_SET + mxyyPxzz_SEB + mxyyPxzz_NWB + mxyyPxzz_NWT + mxyyPxzz_NET + mxyyPxzz_NEB); + real mxyyMxzzMean = c1o8 * (mxyyMxzz_SWB + mxyyMxzz_SWT + mxyyMxzz_SET + mxyyMxzz_SEB + mxyyMxzz_NWB + mxyyMxzz_NWT + mxyyMxzz_NET + mxyyMxzz_NEB); ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // kxyFromfcNEQ_SWB = zero; - //kyzFromfcNEQ_SWB = zero; - //kxzFromfcNEQ_SWB = zero; - //kxxMyyFromfcNEQ_SWB = zero; - //kxxMzzFromfcNEQ_SWB = zero; - //kxyFromfcNEQ_SWT = zero; - //kyzFromfcNEQ_SWT = zero; - //kxzFromfcNEQ_SWT = zero; - //kxxMyyFromfcNEQ_SWT = zero; - //kxxMzzFromfcNEQ_SWT = zero; - //kxyFromfcNEQ_SET = zero; - //kyzFromfcNEQ_SET = zero; - //kxzFromfcNEQ_SET = zero; - //kxxMyyFromfcNEQ_SET = zero; - //kxxMzzFromfcNEQ_SET = zero; - //kxyFromfcNEQ_SEB = zero; - //kyzFromfcNEQ_SEB = zero; - //kxzFromfcNEQ_SEB = zero; - //kxxMyyFromfcNEQ_SEB = zero; - //kxxMzzFromfcNEQ_SEB = zero; - //kxyFromfcNEQ_NWB = zero; - //kyzFromfcNEQ_NWB = zero; - //kxzFromfcNEQ_NWB = zero; - //kxxMyyFromfcNEQ_NWB = zero; - //kxxMzzFromfcNEQ_NWB = zero; - //kxyFromfcNEQ_NWT = zero; - //kyzFromfcNEQ_NWT = zero; - //kxzFromfcNEQ_NWT = zero; - //kxxMyyFromfcNEQ_NWT = zero; - //kxxMzzFromfcNEQ_NWT = zero; - //kxyFromfcNEQ_NET = zero; - //kyzFromfcNEQ_NET = zero; - //kxzFromfcNEQ_NET = zero; - //kxxMyyFromfcNEQ_NET = zero; - //kxxMzzFromfcNEQ_NET = zero; - //kxyFromfcNEQ_NEB = zero; - //kyzFromfcNEQ_NEB = zero; - //kxzFromfcNEQ_NEB = zero; - //kxxMyyFromfcNEQ_NEB = zero; - //kxxMzzFromfcNEQ_NEB = zero; + // kxyFromfcNEQ_SWB = zero; + //kyzFromfcNEQ_SWB = zero; + //kxzFromfcNEQ_SWB = zero; + //kxxMyyFromfcNEQ_SWB = zero; + //kxxMzzFromfcNEQ_SWB = zero; + //kxyFromfcNEQ_SWT = zero; + //kyzFromfcNEQ_SWT = zero; + //kxzFromfcNEQ_SWT = zero; + //kxxMyyFromfcNEQ_SWT = zero; + //kxxMzzFromfcNEQ_SWT = zero; + //kxyFromfcNEQ_SET = zero; + //kyzFromfcNEQ_SET = zero; + //kxzFromfcNEQ_SET = zero; + //kxxMyyFromfcNEQ_SET = zero; + //kxxMzzFromfcNEQ_SET = zero; + //kxyFromfcNEQ_SEB = zero; + //kyzFromfcNEQ_SEB = zero; + //kxzFromfcNEQ_SEB = zero; + //kxxMyyFromfcNEQ_SEB = zero; + //kxxMzzFromfcNEQ_SEB = zero; + //kxyFromfcNEQ_NWB = zero; + //kyzFromfcNEQ_NWB = zero; + //kxzFromfcNEQ_NWB = zero; + //kxxMyyFromfcNEQ_NWB = zero; + //kxxMzzFromfcNEQ_NWB = zero; + //kxyFromfcNEQ_NWT = zero; + //kyzFromfcNEQ_NWT = zero; + //kxzFromfcNEQ_NWT = zero; + //kxxMyyFromfcNEQ_NWT = zero; + //kxxMzzFromfcNEQ_NWT = zero; + //kxyFromfcNEQ_NET = zero; + //kyzFromfcNEQ_NET = zero; + //kxzFromfcNEQ_NET = zero; + //kxxMyyFromfcNEQ_NET = zero; + //kxxMzzFromfcNEQ_NET = zero; + //kxyFromfcNEQ_NEB = zero; + //kyzFromfcNEQ_NEB = zero; + //kxzFromfcNEQ_NEB = zero; + //kxxMyyFromfcNEQ_NEB = zero; + //kxxMzzFromfcNEQ_NEB = zero; ////////////////////////////////////////////////////////////////////////// //3 ////////////////////////////////////////////////////////////////////////// @@ -7720,94 +7720,94 @@ __global__ void scaleCF_AA2016_comp_27(real* DC, cxyz=-vx3_NEB + vx3_NET + vx3_NWB - vx3_NWT + vx3_SEB - vx3_SET - vx3_SWB + vx3_SWT; ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real kxyAverage = c0o1; - real kyzAverage = c0o1; - real kxzAverage = c0o1; - real kxxMyyAverage = c0o1; - real kxxMzzAverage = c0o1; - //real kxyAverage =(kxyFromfcNEQ_SWB+ - // kxyFromfcNEQ_SWT+ - // kxyFromfcNEQ_SET+ - // kxyFromfcNEQ_SEB+ - // kxyFromfcNEQ_NWB+ - // kxyFromfcNEQ_NWT+ - // kxyFromfcNEQ_NET+ - // kxyFromfcNEQ_NEB)*c1o8-(ay+bx); - //real kyzAverage =(kyzFromfcNEQ_SWB+ - // kyzFromfcNEQ_SWT+ - // kyzFromfcNEQ_SET+ - // kyzFromfcNEQ_SEB+ - // kyzFromfcNEQ_NWB+ - // kyzFromfcNEQ_NWT+ - // kyzFromfcNEQ_NET+ - // kyzFromfcNEQ_NEB)*c1o8-(bz+cy); - //real kxzAverage =(kxzFromfcNEQ_SWB+ - // kxzFromfcNEQ_SWT+ - // kxzFromfcNEQ_SET+ - // kxzFromfcNEQ_SEB+ - // kxzFromfcNEQ_NWB+ - // kxzFromfcNEQ_NWT+ - // kxzFromfcNEQ_NET+ - // kxzFromfcNEQ_NEB)*c1o8-(az+cx); - //real kxxMyyAverage =(kxxMyyFromfcNEQ_SWB+ - // kxxMyyFromfcNEQ_SWT+ - // kxxMyyFromfcNEQ_SET+ - // kxxMyyFromfcNEQ_SEB+ - // kxxMyyFromfcNEQ_NWB+ - // kxxMyyFromfcNEQ_NWT+ - // kxxMyyFromfcNEQ_NET+ - // kxxMyyFromfcNEQ_NEB)*c1o8-(ax-by); - //real kxxMzzAverage =(kxxMzzFromfcNEQ_SWB+ - // kxxMzzFromfcNEQ_SWT+ - // kxxMzzFromfcNEQ_SET+ - // kxxMzzFromfcNEQ_SEB+ - // kxxMzzFromfcNEQ_NWB+ - // kxxMzzFromfcNEQ_NWT+ - // kxxMzzFromfcNEQ_NET+ - // kxxMzzFromfcNEQ_NEB)*c1o8-(ax-cz); - - - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //Press - //d0 = ( press_NEB + press_NET + press_NWB + press_NWT + press_SEB + press_SET + press_SWB + press_SWT) * c1o8; - //dx = ( press_NEB + press_NET - press_NWB - press_NWT + press_SEB + press_SET - press_SWB - press_SWT) * c1o4; - //dy = ( press_NEB + press_NET + press_NWB + press_NWT - press_SEB - press_SET - press_SWB - press_SWT) * c1o4; - //dz = (-press_NEB + press_NET - press_NWB + press_NWT - press_SEB + press_SET - press_SWB + press_SWT) * c1o4; - //dxy = ( press_NEB + press_NET - press_NWB - press_NWT - press_SEB - press_SET + press_SWB + press_SWT) * c1o2; - //dxz = (-press_NEB + press_NET + press_NWB - press_NWT - press_SEB + press_SET + press_SWB - press_SWT) * c1o2; - //dyz = (-press_NEB + press_NET - press_NWB + press_NWT + press_SEB - press_SET + press_SWB - press_SWT) * c1o2; - //dxyz = -press_NEB + press_NET + press_NWB - press_NWT + press_SEB - press_SET - press_SWB + press_SWT; - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho - real LapRho = ((xoff != c0o1) || (yoff != c0o1) || (zoff != c0o1)) ? c0o1 : -c3o1*(ax*ax + by*by + cz*cz) - c6o1 * (bx*ay + cx*az + cy*bz); - d0 = ( drho_NEB + drho_NET + drho_NWB + drho_NWT + drho_SEB + drho_SET + drho_SWB + drho_SWT) * c1o8; - dx = ( drho_NEB + drho_NET - drho_NWB - drho_NWT + drho_SEB + drho_SET - drho_SWB - drho_SWT) * c1o4; - dy = ( drho_NEB + drho_NET + drho_NWB + drho_NWT - drho_SEB - drho_SET - drho_SWB - drho_SWT) * c1o4; - dz = (-drho_NEB + drho_NET - drho_NWB + drho_NWT - drho_SEB + drho_SET - drho_SWB + drho_SWT) * c1o4; - dxy = ( drho_NEB + drho_NET - drho_NWB - drho_NWT - drho_SEB - drho_SET + drho_SWB + drho_SWT) * c1o2; - dxz = (-drho_NEB + drho_NET + drho_NWB - drho_NWT - drho_SEB + drho_SET + drho_SWB - drho_SWT) * c1o2; - dyz = (-drho_NEB + drho_NET - drho_NWB + drho_NWT + drho_SEB - drho_SET + drho_SWB - drho_SWT) * c1o2; - dxyz = -drho_NEB + drho_NET + drho_NWB - drho_NWT + drho_SEB - drho_SET - drho_SWB + drho_SWT; - // d0 = zero; - //dx = zero; - //dy = zero; - //dz = zero; - //dxy = zero; - //dxz = zero; - //dyz = zero; - //dxyz = zero; + real kxyAverage = c0o1; + real kyzAverage = c0o1; + real kxzAverage = c0o1; + real kxxMyyAverage = c0o1; + real kxxMzzAverage = c0o1; + //real kxyAverage =(kxyFromfcNEQ_SWB+ + // kxyFromfcNEQ_SWT+ + // kxyFromfcNEQ_SET+ + // kxyFromfcNEQ_SEB+ + // kxyFromfcNEQ_NWB+ + // kxyFromfcNEQ_NWT+ + // kxyFromfcNEQ_NET+ + // kxyFromfcNEQ_NEB)*c1o8-(ay+bx); + //real kyzAverage =(kyzFromfcNEQ_SWB+ + // kyzFromfcNEQ_SWT+ + // kyzFromfcNEQ_SET+ + // kyzFromfcNEQ_SEB+ + // kyzFromfcNEQ_NWB+ + // kyzFromfcNEQ_NWT+ + // kyzFromfcNEQ_NET+ + // kyzFromfcNEQ_NEB)*c1o8-(bz+cy); + //real kxzAverage =(kxzFromfcNEQ_SWB+ + // kxzFromfcNEQ_SWT+ + // kxzFromfcNEQ_SET+ + // kxzFromfcNEQ_SEB+ + // kxzFromfcNEQ_NWB+ + // kxzFromfcNEQ_NWT+ + // kxzFromfcNEQ_NET+ + // kxzFromfcNEQ_NEB)*c1o8-(az+cx); + //real kxxMyyAverage =(kxxMyyFromfcNEQ_SWB+ + // kxxMyyFromfcNEQ_SWT+ + // kxxMyyFromfcNEQ_SET+ + // kxxMyyFromfcNEQ_SEB+ + // kxxMyyFromfcNEQ_NWB+ + // kxxMyyFromfcNEQ_NWT+ + // kxxMyyFromfcNEQ_NET+ + // kxxMyyFromfcNEQ_NEB)*c1o8-(ax-by); + //real kxxMzzAverage =(kxxMzzFromfcNEQ_SWB+ + // kxxMzzFromfcNEQ_SWT+ + // kxxMzzFromfcNEQ_SET+ + // kxxMzzFromfcNEQ_SEB+ + // kxxMzzFromfcNEQ_NWB+ + // kxxMzzFromfcNEQ_NWT+ + // kxxMzzFromfcNEQ_NET+ + // kxxMzzFromfcNEQ_NEB)*c1o8-(ax-cz); + + + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //Press + //d0 = ( press_NEB + press_NET + press_NWB + press_NWT + press_SEB + press_SET + press_SWB + press_SWT) * c1o8; + //dx = ( press_NEB + press_NET - press_NWB - press_NWT + press_SEB + press_SET - press_SWB - press_SWT) * c1o4; + //dy = ( press_NEB + press_NET + press_NWB + press_NWT - press_SEB - press_SET - press_SWB - press_SWT) * c1o4; + //dz = (-press_NEB + press_NET - press_NWB + press_NWT - press_SEB + press_SET - press_SWB + press_SWT) * c1o4; + //dxy = ( press_NEB + press_NET - press_NWB - press_NWT - press_SEB - press_SET + press_SWB + press_SWT) * c1o2; + //dxz = (-press_NEB + press_NET + press_NWB - press_NWT - press_SEB + press_SET + press_SWB - press_SWT) * c1o2; + //dyz = (-press_NEB + press_NET - press_NWB + press_NWT + press_SEB - press_SET + press_SWB - press_SWT) * c1o2; + //dxyz = -press_NEB + press_NET + press_NWB - press_NWT + press_SEB - press_SET - press_SWB + press_SWT; + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho + real LapRho = ((xoff != c0o1) || (yoff != c0o1) || (zoff != c0o1)) ? c0o1 : -c3o1*(ax*ax + by*by + cz*cz) - c6o1 * (bx*ay + cx*az + cy*bz); + d0 = ( drho_NEB + drho_NET + drho_NWB + drho_NWT + drho_SEB + drho_SET + drho_SWB + drho_SWT) * c1o8; + dx = ( drho_NEB + drho_NET - drho_NWB - drho_NWT + drho_SEB + drho_SET - drho_SWB - drho_SWT) * c1o4; + dy = ( drho_NEB + drho_NET + drho_NWB + drho_NWT - drho_SEB - drho_SET - drho_SWB - drho_SWT) * c1o4; + dz = (-drho_NEB + drho_NET - drho_NWB + drho_NWT - drho_SEB + drho_SET - drho_SWB + drho_SWT) * c1o4; + dxy = ( drho_NEB + drho_NET - drho_NWB - drho_NWT - drho_SEB - drho_SET + drho_SWB + drho_SWT) * c1o2; + dxz = (-drho_NEB + drho_NET + drho_NWB - drho_NWT - drho_SEB + drho_SET + drho_SWB - drho_SWT) * c1o2; + dyz = (-drho_NEB + drho_NET - drho_NWB + drho_NWT + drho_SEB - drho_SET + drho_SWB - drho_SWT) * c1o2; + dxyz = -drho_NEB + drho_NET + drho_NWB - drho_NWT + drho_SEB - drho_SET - drho_SWB + drho_SWT; + // d0 = zero; + //dx = zero; + //dy = zero; + //dz = zero; + //dxy = zero; + //dxz = zero; + //dyz = zero; + //dxyz = zero; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // // Bernd das Brot // - // X------X - // | | x---x - // | ---+-+-> | ----> off-vector - // | | x---x - // X------X - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // X------X + // | | x---x + // | ---+-+-> | ----> off-vector + // | | x---x + // X------X + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// a0 = a0 + xoff * ax + yoff * ay + zoff * az + xoff_sq * axx + yoff_sq * ayy + zoff_sq * azz + xoff*yoff*axy + xoff*zoff*axz + yoff*zoff*ayz; ax = ax + c2o1 * xoff * axx + yoff * axy + zoff * axz; ay = ay + c2o1 * yoff * ayy + xoff * axy + zoff * ayz; @@ -7820,3103 +7820,3103 @@ __global__ void scaleCF_AA2016_comp_27(real* DC, cx = cx + c2o1 * xoff * cxx + yoff * cxy + zoff * cxz; cy = cy + c2o1 * yoff * cyy + xoff * cxy + zoff * cyz; cz = cz + c2o1 * zoff * czz + xoff * cxz + yoff * cyz; - d0 = d0 + xoff * dx + yoff * dy + zoff * dz + xoff*yoff*dxy + xoff*zoff*dxz + yoff*zoff*dyz; - dx = dx + yoff * dxy + zoff * dxz; - dy = dy + xoff * dxy + zoff * dyz; - dz = dz + xoff * dxz + yoff * dyz; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // FIX /////////////////////////////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //AAAAAAAAAAAAHHHHHHHHHHHH!!!!! Mieser Test!!! - //b0= bx= by= bz= bxx= byy= bzz= bxy= bxz= byz= c0= cx= cy= cz= cxx= cyy= czz= cxy= cxz= cyz= axyz= bxyz= cxyz=zero; - //a0=zero; - //ax=zero; - //ay=zero; - //az=zero; - //axx=zero; - //ayy=zero; - //azz=zero; - //axy=zero; - //axz=zero; - //ayz=zero; - //b0=zero; - //bx=zero; - //by=zero; - //bz=zero; - //bxx=zero; - //byy=zero; - //bzz=zero; - //bxy=zero; - //bxz=zero; - //byz=zero; - //c0=zero; - //cx=zero; - //cy=zero; - //cz=zero; - //cxx=zero; - //cyy=zero; - //czz=zero; - //cxy=zero; - //cxz=zero; - //cyz=zero; - //axyz=zero; - //bxyz=zero; - //cxyz=zero; - //ax= ay= az= axx= ayy= azz= axy= axz= ayz= bx= by= bz= bxx= byy= bzz= bxy= bxz= byz= cx= cy= cz= cxx= cyy= czz= cxy= cxz= cyz= axyz= bxyz= cxyz=zero; - //a0=zero; - //b0=zero; - //c0=c1o100; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - mfcbb = c0o1; - mfabb = c0o1; - mfbcb = c0o1; - mfbab = c0o1; - mfbbc = c0o1; - mfbba = c0o1; - mfccb = c0o1; - mfaab = c0o1; - mfcab = c0o1; - mfacb = c0o1; - mfcbc = c0o1; - mfaba = c0o1; - mfcba = c0o1; - mfabc = c0o1; - mfbcc = c0o1; - mfbaa = c0o1; - mfbca = c0o1; - mfbac = c0o1; - mfbbb = c0o1; - mfccc = c0o1; - mfaac = c0o1; - mfcac = c0o1; - mfacc = c0o1; - mfcca = c0o1; - mfaaa = c0o1; - mfcaa = c0o1; - mfaca = c0o1; - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //real m0, m1, m2, vvx, vvy, vvz, vx2, vy2, vz2, oMdrho; - //real mxxPyyPzz, mxxMyy, mxxMzz, mxxyPyzz, mxxyMyzz, mxxzPyyz, mxxzMyyz, mxyyPxzz, mxyyMxzz; - ////real qudricLimit = c1o100;//ganz schlechte Idee -> muss global sein - ////real O3 = two - o; - ////real residu, residutmp; - ////residutmp = zero;// /*-*/ c2o9 * (1./o - c1o2) * eps_new * eps_new; - //real NeqOn = one;//zero;//one; //.... one = on ..... zero = off - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position SWB -0.25f, -0.25f, -0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = -c1o4; - y = -c1o4; - z = -c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //real mxoff = -xoff; - //real myoff = -yoff; - //real mzoff = -zoff; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho = c3o64*drho_NEB+c1o64*drho_NET+c9o64*drho_NWB+c3o64*drho_NWT+c9o64*drho_SEB+c3o64*drho_SET+c27o64*drho_SWB+c9o64*drho_SWT; - //press = press_SWT * (c9o64 + c3o16 * mxoff + c3o16 * myoff - c9o16 * mzoff) + - // press_NWT * (c3o64 + c1o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + - // press_SET * (c3o64 - c3o16 * mxoff + c1o16 * myoff - c3o16 * mzoff) + - // press_NET * (c1o64 - c1o16 * mxoff - c1o16 * myoff - c1o16 * mzoff) + - // press_NEB * (c3o64 - c3o16 * mxoff - c3o16 * myoff + c1o16 * mzoff) + - // press_NWB * (c9o64 + c3o16 * mxoff - c9o16 * myoff + c3o16 * mzoff) + - // press_SEB * (c9o64 - c9o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + - // press_SWB * (c27o64 + c9o16 * mxoff + c9o16 * myoff + c9o16 * mzoff); - //drho = drho_SWT * (c9o64 + c3o16 * xoff + c3o16 * yoff - c9o16 * zoff) + - // drho_NWT * (c3o64 + c1o16 * xoff - c3o16 * yoff - c3o16 * zoff) + - // drho_SET * (c3o64 - c3o16 * xoff + c1o16 * yoff - c3o16 * zoff) + - // drho_NET * (c1o64 - c1o16 * xoff - c1o16 * yoff - c1o16 * zoff) + - // drho_NEB * (c3o64 - c3o16 * xoff - c3o16 * yoff + c1o16 * zoff) + - // drho_NWB * (c9o64 + c3o16 * xoff - c9o16 * yoff + c3o16 * zoff) + - // drho_SEB * (c9o64 - c9o16 * xoff + c3o16 * yoff + c3o16 * zoff) + - // drho_SWB * (c27o64 + c9o16 * xoff + c9o16 * yoff + c9o16 * zoff); - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz + c3o1*x*x*LapRho ; - vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); - vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); - vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); - //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); - //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); - //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //2.f - // linear combinations - mxxPyyPzz = mfaaa; - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - mfbbb = c1o4 * (c24o1*(-c2o1+omCoarse)*(-c2o1-c7o1*omCoarse+c3o1*omCoarse*omCoarse)/(c48o1+c152o1*omCoarse-c130o1*omCoarse*omCoarse+c29o1*omCoarse*omCoarse*omCoarse)) - / (c24o1*(-c2o1+omFine)*(-c2o1-c7o1*omFine+c3o1*omFine*omFine)/(c48o1+c152o1*omFine-c130o1*omFine*omFine+c29o1*omFine*omFine*omFine)) * mfbbbMean; - mxxyPyzz = c1o4 * (c8o1*(-c2o1+omCoarse)*(c1o1+c2o1*omCoarse)/(-c8o1-c14o1*omCoarse+c7o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(c1o1+c2o1*omFine)/(-c8o1-c14o1*omFine+c7o1*omFine*omFine)) * mxxyPyzzMean; - mxxyMyzz = c1o4 * (c8o1*(-c2o1+omCoarse)*(-c7o1+c4o1*omCoarse)/(c56o1-c50o1*omCoarse+c9o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(-c7o1+c4o1*omFine)/(c56o1-c50o1*omFine+c9o1*omFine*omFine)) * mxxyMyzzMean; - mxxzPyyz = c1o4 * (c8o1*(-c2o1+omCoarse)*(c1o1+c2o1*omCoarse)/(-c8o1-c14o1*omCoarse+c7o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(c1o1+c2o1*omFine)/(-c8o1-c14o1*omFine+c7o1*omFine*omFine)) * mxxzPyyzMean; - mxxzMyyz = c1o4 * (c8o1*(-c2o1+omCoarse)*(-c7o1+c4o1*omCoarse)/(c56o1-c50o1*omCoarse+c9o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(-c7o1+c4o1*omFine)/(c56o1-c50o1*omFine+c9o1*omFine*omFine)) * mxxzMyyzMean; - mxyyPxzz = c1o4 * (c8o1*(-c2o1+omCoarse)*(c1o1+c2o1*omCoarse)/(-c8o1-c14o1*omCoarse+c7o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(c1o1+c2o1*omFine)/(-c8o1-c14o1*omFine+c7o1*omFine*omFine)) * mxyyPxzzMean; - mxyyMxzz = c1o4 * (c8o1*(-c2o1+omCoarse)*(-c7o1+c4o1*omCoarse)/(c56o1-c50o1*omCoarse+c9o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(-c7o1+c4o1*omFine)/(c56o1-c50o1*omFine+c9o1*omFine*omFine)) * mxyyMxzzMean; - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //index 0 - k0zero= posFSWB[k]; - k0w = neighborFX[k0zero]; - k0s = neighborFY[k0zero]; - k0b = neighborFZ[k0zero]; - k0sw = neighborFY[k0w]; - k0bw = neighborFZ[k0w]; - k0bs = neighborFZ[k0s]; - k0bsw = neighborFZ[k0sw]; - ////////////////////////////////////////////////////////////////////////// - //index - kzero= k0zero; - kw = k0w; - ks = k0s; - kb = k0b; - ksw = k0sw; - kbw = k0bw; - kbs = k0bs; - kbsw = k0bsw; - //////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - feF[kzero] = mfcbb; - fwF[kw] = mfabb; - fnF[kzero] = mfbcb; - fsF[ks] = mfbab; - ftF[kzero] = mfbbc; - fbF[kb] = mfbba; - fneF[kzero] = mfccb; - fswF[ksw] = mfaab; - fseF[ks] = mfcab; - fnwF[kw] = mfacb; - fteF[kzero] = mfcbc; - fbwF[kbw] = mfaba; - fbeF[kb] = mfcba; - ftwF[kw] = mfabc; - ftnF[kzero] = mfbcc; - fbsF[kbs] = mfbaa; - fbnF[kb] = mfbca; - ftsF[ks] = mfbac; - fzeroF[kzero] = mfbbb; - ftneF[kzero] = mfccc; - ftseF[ks] = mfcac; - fbneF[kb] = mfcca; - fbseF[kbs] = mfcaa; - ftnwF[kw] = mfacc; - ftswF[ksw] = mfaac; - fbnwF[kbw] = mfaca; - fbswF[kbsw] = mfaaa; - //////////////////////////////////////////////////////////////////////////////////// - - //reset - mfcbb = c0o1; - mfabb = c0o1; - mfbcb = c0o1; - mfbab = c0o1; - mfbbc = c0o1; - mfbba = c0o1; - mfccb = c0o1; - mfaab = c0o1; - mfcab = c0o1; - mfacb = c0o1; - mfcbc = c0o1; - mfaba = c0o1; - mfcba = c0o1; - mfabc = c0o1; - mfbcc = c0o1; - mfbaa = c0o1; - mfbca = c0o1; - mfbac = c0o1; - mfbbb = c0o1; - mfccc = c0o1; - mfaac = c0o1; - mfcac = c0o1; - mfacc = c0o1; - mfcca = c0o1; - mfaaa = c0o1; - mfcaa = c0o1; - mfaca = c0o1; - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position SWT -0.25f, -0.25f, 0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = -c1o4; - y = -c1o4; - z = c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho = c1o64*drho_NEB+c3o64*drho_NET+c3o64*drho_NWB+c9o64*drho_NWT+c3o64*drho_SEB+c9o64*drho_SET+c9o64*drho_SWB+c27o64*drho_SWT; - //press = press_SWT * (c27o64 + c9o16 * mxoff + c9o16 * myoff - c9o16 * mzoff) + - // press_NWT * (c9o64 + c3o16 * mxoff - c9o16 * myoff - c3o16 * mzoff) + - // press_SET * (c9o64 - c9o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + - // press_NET * (c3o64 - c3o16 * mxoff - c3o16 * myoff - c1o16 * mzoff) + - // press_NEB * (c1o64 - c1o16 * mxoff - c1o16 * myoff + c1o16 * mzoff) + - // press_NWB * (c3o64 + c1o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + - // press_SEB * (c3o64 - c3o16 * mxoff + c1o16 * myoff + c3o16 * mzoff) + - // press_SWB * (c9o64 + c3o16 * mxoff + c3o16 * myoff + c9o16 * mzoff); - //drho = drho_SWT * (c27o64 + c9o16 * xoff + c9o16 * yoff - c9o16 * zoff) + - // drho_NWT * (c9o64 + c3o16 * xoff - c9o16 * yoff - c3o16 * zoff) + - // drho_SET * (c9o64 - c9o16 * xoff + c3o16 * yoff - c3o16 * zoff) + - // drho_NET * (c3o64 - c3o16 * xoff - c3o16 * yoff - c1o16 * zoff) + - // drho_NEB * (c1o64 - c1o16 * xoff - c1o16 * yoff + c1o16 * zoff) + - // drho_NWB * (c3o64 + c1o16 * xoff - c3o16 * yoff + c3o16 * zoff) + - // drho_SEB * (c3o64 - c3o16 * xoff + c1o16 * yoff + c3o16 * zoff) + - // drho_SWB * (c9o64 + c3o16 * xoff + c3o16 * yoff + c9o16 * zoff); - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz + c3o1*x*x*LapRho ; - vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); - vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); - vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); - //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); - //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); - //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //2.f - // linear combinations - mxxPyyPzz = mfaaa; - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - mfbbb = c1o4 * (c24o1*(-c2o1+omCoarse)*(-c2o1-c7o1*omCoarse+c3o1*omCoarse*omCoarse)/(c48o1+c152o1*omCoarse-c130o1*omCoarse*omCoarse+c29o1*omCoarse*omCoarse*omCoarse)) - / (c24o1*(-c2o1+omFine)*(-c2o1-c7o1*omFine+c3o1*omFine*omFine)/(c48o1+c152o1*omFine-c130o1*omFine*omFine+c29o1*omFine*omFine*omFine)) * mfbbbMean; - mxxyPyzz = c1o4 * (c8o1*(-c2o1+omCoarse)*(c1o1+c2o1*omCoarse)/(-c8o1-c14o1*omCoarse+c7o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(c1o1+c2o1*omFine)/(-c8o1-c14o1*omFine+c7o1*omFine*omFine)) * mxxyPyzzMean; - mxxyMyzz = c1o4 * (c8o1*(-c2o1+omCoarse)*(-c7o1+c4o1*omCoarse)/(c56o1-c50o1*omCoarse+c9o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(-c7o1+c4o1*omFine)/(c56o1-c50o1*omFine+c9o1*omFine*omFine)) * mxxyMyzzMean; - mxxzPyyz = c1o4 * (c8o1*(-c2o1+omCoarse)*(c1o1+c2o1*omCoarse)/(-c8o1-c14o1*omCoarse+c7o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(c1o1+c2o1*omFine)/(-c8o1-c14o1*omFine+c7o1*omFine*omFine)) * mxxzPyyzMean; - mxxzMyyz = c1o4 * (c8o1*(-c2o1+omCoarse)*(-c7o1+c4o1*omCoarse)/(c56o1-c50o1*omCoarse+c9o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(-c7o1+c4o1*omFine)/(c56o1-c50o1*omFine+c9o1*omFine*omFine)) * mxxzMyyzMean; - mxyyPxzz = c1o4 * (c8o1*(-c2o1+omCoarse)*(c1o1+c2o1*omCoarse)/(-c8o1-c14o1*omCoarse+c7o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(c1o1+c2o1*omFine)/(-c8o1-c14o1*omFine+c7o1*omFine*omFine)) * mxyyPxzzMean; - mxyyMxzz = c1o4 * (c8o1*(-c2o1+omCoarse)*(-c7o1+c4o1*omCoarse)/(c56o1-c50o1*omCoarse+c9o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(-c7o1+c4o1*omFine)/(c56o1-c50o1*omFine+c9o1*omFine*omFine)) * mxyyMxzzMean; - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - //index - kzero= kb; - kw = kbw; - ks = kbs; - kb = neighborFZ[kb]; - ksw = kbsw; - kbw = neighborFZ[kbw]; - kbs = neighborFZ[kbs]; - kbsw = neighborFZ[kbsw]; - //////////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - feF[kzero] = mfcbb; - fwF[kw] = mfabb; - fnF[kzero] = mfbcb; - fsF[ks] = mfbab; - ftF[kzero] = mfbbc; - fbF[kb] = mfbba; - fneF[kzero] = mfccb; - fswF[ksw] = mfaab; - fseF[ks] = mfcab; - fnwF[kw] = mfacb; - fteF[kzero] = mfcbc; - fbwF[kbw] = mfaba; - fbeF[kb] = mfcba; - ftwF[kw] = mfabc; - ftnF[kzero] = mfbcc; - fbsF[kbs] = mfbaa; - fbnF[kb] = mfbca; - ftsF[ks] = mfbac; - fzeroF[kzero] = mfbbb; - ftneF[kzero] = mfccc; - ftseF[ks] = mfcac; - fbneF[kb] = mfcca; - fbseF[kbs] = mfcaa; - ftnwF[kw] = mfacc; - ftswF[ksw] = mfaac; - fbnwF[kbw] = mfaca; - fbswF[kbsw] = mfaaa; - //////////////////////////////////////////////////////////////////////////////////// - - - //reset - mfcbb = c0o1; - mfabb = c0o1; - mfbcb = c0o1; - mfbab = c0o1; - mfbbc = c0o1; - mfbba = c0o1; - mfccb = c0o1; - mfaab = c0o1; - mfcab = c0o1; - mfacb = c0o1; - mfcbc = c0o1; - mfaba = c0o1; - mfcba = c0o1; - mfabc = c0o1; - mfbcc = c0o1; - mfbaa = c0o1; - mfbca = c0o1; - mfbac = c0o1; - mfbbb = c0o1; - mfccc = c0o1; - mfaac = c0o1; - mfcac = c0o1; - mfacc = c0o1; - mfcca = c0o1; - mfaaa = c0o1; - mfcaa = c0o1; - mfaca = c0o1; - - - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position SET 0.25f, -0.25f, 0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = c1o4; - y = -c1o4; - z = c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho =c3o64*drho_NEB+c9o64*drho_NET+c1o64*drho_NWB+c3o64*drho_NWT+c9o64*drho_SEB+c27o64*drho_SET+c3o64*drho_SWB+c9o64*drho_SWT; - //press = press_SET * (c27o64 - c9o16 * mxoff + c9o16 * myoff - c9o16 * mzoff) + - // press_NET * (c9o64 - c3o16 * mxoff - c9o16 * myoff - c3o16 * mzoff) + - // press_SWT * (c9o64 + c9o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + - // press_NWT * (c3o64 + c3o16 * mxoff - c3o16 * myoff - c1o16 * mzoff) + - // press_NWB * (c1o64 + c1o16 * mxoff - c1o16 * myoff + c1o16 * mzoff) + - // press_NEB * (c3o64 - c1o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + - // press_SWB * (c3o64 + c3o16 * mxoff + c1o16 * myoff + c3o16 * mzoff) + - // press_SEB * (c9o64 - c3o16 * mxoff + c3o16 * myoff + c9o16 * mzoff); - //drho = drho_SET * (c27o64 - c9o16 * xoff + c9o16 * yoff - c9o16 * zoff) + - // drho_NET * (c9o64 - c3o16 * xoff - c9o16 * yoff - c3o16 * zoff) + - // drho_SWT * (c9o64 + c9o16 * xoff + c3o16 * yoff - c3o16 * zoff) + - // drho_NWT * (c3o64 + c3o16 * xoff - c3o16 * yoff - c1o16 * zoff) + - // drho_NWB * (c1o64 + c1o16 * xoff - c1o16 * yoff + c1o16 * zoff) + - // drho_NEB * (c3o64 - c1o16 * xoff - c3o16 * yoff + c3o16 * zoff) + - // drho_SWB * (c3o64 + c3o16 * xoff + c1o16 * yoff + c3o16 * zoff) + - // drho_SEB * (c9o64 - c3o16 * xoff + c3o16 * yoff + c9o16 * zoff); - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz + c3o1*x*x*LapRho ; - vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); - vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); - vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); - //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); - //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); - //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //2.f - // linear combinations - mxxPyyPzz = mfaaa; - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - mfbbb = c1o4 * (c24o1*(-c2o1+omCoarse)*(-c2o1-c7o1*omCoarse+c3o1*omCoarse*omCoarse)/(c48o1+c152o1*omCoarse-c130o1*omCoarse*omCoarse+c29o1*omCoarse*omCoarse*omCoarse)) - / (c24o1*(-c2o1+omFine)*(-c2o1-c7o1*omFine+c3o1*omFine*omFine)/(c48o1+c152o1*omFine-c130o1*omFine*omFine+c29o1*omFine*omFine*omFine)) * mfbbbMean; - mxxyPyzz = c1o4 * (c8o1*(-c2o1+omCoarse)*(c1o1+c2o1*omCoarse)/(-c8o1-c14o1*omCoarse+c7o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(c1o1+c2o1*omFine)/(-c8o1-c14o1*omFine+c7o1*omFine*omFine)) * mxxyPyzzMean; - mxxyMyzz = c1o4 * (c8o1*(-c2o1+omCoarse)*(-c7o1+c4o1*omCoarse)/(c56o1-c50o1*omCoarse+c9o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(-c7o1+c4o1*omFine)/(c56o1-c50o1*omFine+c9o1*omFine*omFine)) * mxxyMyzzMean; - mxxzPyyz = c1o4 * (c8o1*(-c2o1+omCoarse)*(c1o1+c2o1*omCoarse)/(-c8o1-c14o1*omCoarse+c7o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(c1o1+c2o1*omFine)/(-c8o1-c14o1*omFine+c7o1*omFine*omFine)) * mxxzPyyzMean; - mxxzMyyz = c1o4 * (c8o1*(-c2o1+omCoarse)*(-c7o1+c4o1*omCoarse)/(c56o1-c50o1*omCoarse+c9o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(-c7o1+c4o1*omFine)/(c56o1-c50o1*omFine+c9o1*omFine*omFine)) * mxxzMyyzMean; - mxyyPxzz = c1o4 * (c8o1*(-c2o1+omCoarse)*(c1o1+c2o1*omCoarse)/(-c8o1-c14o1*omCoarse+c7o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(c1o1+c2o1*omFine)/(-c8o1-c14o1*omFine+c7o1*omFine*omFine)) * mxyyPxzzMean; - mxyyMxzz = c1o4 * (c8o1*(-c2o1+omCoarse)*(-c7o1+c4o1*omCoarse)/(c56o1-c50o1*omCoarse+c9o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(-c7o1+c4o1*omFine)/(c56o1-c50o1*omFine+c9o1*omFine*omFine)) * mxyyMxzzMean; - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //index - kzero= kw; - kw = neighborFX[kw]; - ks = ksw; - kb = kbw; - ksw = neighborFX[ksw]; - kbw = neighborFX[kbw]; - kbs = kbsw; - kbsw = neighborFX[kbsw]; - //////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - feF[kzero] = mfcbb; - fwF[kw] = mfabb; - fnF[kzero] = mfbcb; - fsF[ks] = mfbab; - ftF[kzero] = mfbbc; - fbF[kb] = mfbba; - fneF[kzero] = mfccb; - fswF[ksw] = mfaab; - fseF[ks] = mfcab; - fnwF[kw] = mfacb; - fteF[kzero] = mfcbc; - fbwF[kbw] = mfaba; - fbeF[kb] = mfcba; - ftwF[kw] = mfabc; - ftnF[kzero] = mfbcc; - fbsF[kbs] = mfbaa; - fbnF[kb] = mfbca; - ftsF[ks] = mfbac; - fzeroF[kzero] = mfbbb; - ftneF[kzero] = mfccc; - ftseF[ks] = mfcac; - fbneF[kb] = mfcca; - fbseF[kbs] = mfcaa; - ftnwF[kw] = mfacc; - ftswF[ksw] = mfaac; - fbnwF[kbw] = mfaca; - fbswF[kbsw] = mfaaa; - //////////////////////////////////////////////////////////////////////////////////// - - //reset - mfcbb = c0o1; - mfabb = c0o1; - mfbcb = c0o1; - mfbab = c0o1; - mfbbc = c0o1; - mfbba = c0o1; - mfccb = c0o1; - mfaab = c0o1; - mfcab = c0o1; - mfacb = c0o1; - mfcbc = c0o1; - mfaba = c0o1; - mfcba = c0o1; - mfabc = c0o1; - mfbcc = c0o1; - mfbaa = c0o1; - mfbca = c0o1; - mfbac = c0o1; - mfbbb = c0o1; - mfccc = c0o1; - mfaac = c0o1; - mfcac = c0o1; - mfacc = c0o1; - mfcca = c0o1; - mfaaa = c0o1; - mfcaa = c0o1; - mfaca = c0o1; - - - - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position SEB 0.25f, -0.25f, -0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = c1o4; - y = -c1o4; - z = -c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho =c9o64*drho_NEB+c3o64*drho_NET+c3o64*drho_NWB+c1o64*drho_NWT+c27o64*drho_SEB+c9o64*drho_SET+c9o64*drho_SWB+c3o64*drho_SWT; - //press = press_SET * (c9o64 - c3o16 * mxoff + c3o16 * myoff - c9o16 * mzoff) + - // press_NET * (c3o64 - c1o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + - // press_SWT * (c3o64 + c3o16 * mxoff + c1o16 * myoff - c3o16 * mzoff) + - // press_NWT * (c1o64 + c1o16 * mxoff - c1o16 * myoff - c1o16 * mzoff) + - // press_NWB * (c3o64 + c3o16 * mxoff - c3o16 * myoff + c1o16 * mzoff) + - // press_NEB * (c9o64 - c3o16 * mxoff - c9o16 * myoff + c3o16 * mzoff) + - // press_SWB * (c9o64 + c9o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + - // press_SEB * (c27o64 - c9o16 * mxoff + c9o16 * myoff + c9o16 * mzoff); - //drho = drho_SET * (c9o64 - c3o16 * xoff + c3o16 * yoff - c9o16 * zoff) + - // drho_NET * (c3o64 - c1o16 * xoff - c3o16 * yoff - c3o16 * zoff) + - // drho_SWT * (c3o64 + c3o16 * xoff + c1o16 * yoff - c3o16 * zoff) + - // drho_NWT * (c1o64 + c1o16 * xoff - c1o16 * yoff - c1o16 * zoff) + - // drho_NWB * (c3o64 + c3o16 * xoff - c3o16 * yoff + c1o16 * zoff) + - // drho_NEB * (c9o64 - c3o16 * xoff - c9o16 * yoff + c3o16 * zoff) + - // drho_SWB * (c9o64 + c9o16 * xoff + c3o16 * yoff + c3o16 * zoff) + - // drho_SEB * (c27o64 - c9o16 * xoff + c9o16 * yoff + c9o16 * zoff); - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz + c3o1*x*x*LapRho ; - vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); - vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); - vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); - //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); - //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); - //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //2.f - // linear combinations - mxxPyyPzz = mfaaa; - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - mfbbb = c1o4 * (c24o1*(-c2o1+omCoarse)*(-c2o1-c7o1*omCoarse+c3o1*omCoarse*omCoarse)/(c48o1+c152o1*omCoarse-c130o1*omCoarse*omCoarse+c29o1*omCoarse*omCoarse*omCoarse)) - / (c24o1*(-c2o1+omFine)*(-c2o1-c7o1*omFine+c3o1*omFine*omFine)/(c48o1+c152o1*omFine-c130o1*omFine*omFine+c29o1*omFine*omFine*omFine)) * mfbbbMean; - mxxyPyzz = c1o4 * (c8o1*(-c2o1+omCoarse)*(c1o1+c2o1*omCoarse)/(-c8o1-c14o1*omCoarse+c7o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(c1o1+c2o1*omFine)/(-c8o1-c14o1*omFine+c7o1*omFine*omFine)) * mxxyPyzzMean; - mxxyMyzz = c1o4 * (c8o1*(-c2o1+omCoarse)*(-c7o1+c4o1*omCoarse)/(c56o1-c50o1*omCoarse+c9o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(-c7o1+c4o1*omFine)/(c56o1-c50o1*omFine+c9o1*omFine*omFine)) * mxxyMyzzMean; - mxxzPyyz = c1o4 * (c8o1*(-c2o1+omCoarse)*(c1o1+c2o1*omCoarse)/(-c8o1-c14o1*omCoarse+c7o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(c1o1+c2o1*omFine)/(-c8o1-c14o1*omFine+c7o1*omFine*omFine)) * mxxzPyyzMean; - mxxzMyyz = c1o4 * (c8o1*(-c2o1+omCoarse)*(-c7o1+c4o1*omCoarse)/(c56o1-c50o1*omCoarse+c9o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(-c7o1+c4o1*omFine)/(c56o1-c50o1*omFine+c9o1*omFine*omFine)) * mxxzMyyzMean; - mxyyPxzz = c1o4 * (c8o1*(-c2o1+omCoarse)*(c1o1+c2o1*omCoarse)/(-c8o1-c14o1*omCoarse+c7o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(c1o1+c2o1*omFine)/(-c8o1-c14o1*omFine+c7o1*omFine*omFine)) * mxyyPxzzMean; - mxyyMxzz = c1o4 * (c8o1*(-c2o1+omCoarse)*(-c7o1+c4o1*omCoarse)/(c56o1-c50o1*omCoarse+c9o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(-c7o1+c4o1*omFine)/(c56o1-c50o1*omFine+c9o1*omFine*omFine)) * mxyyMxzzMean; - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //index - kb = kzero; - kbw = kw; - kbs = ks; - kbsw = ksw; - kzero= k0w; - kw = neighborFX[k0w]; - ks = k0sw; - ksw = neighborFX[k0sw]; - //////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - feF[kzero] = mfcbb; - fwF[kw] = mfabb; - fnF[kzero] = mfbcb; - fsF[ks] = mfbab; - ftF[kzero] = mfbbc; - fbF[kb] = mfbba; - fneF[kzero] = mfccb; - fswF[ksw] = mfaab; - fseF[ks] = mfcab; - fnwF[kw] = mfacb; - fteF[kzero] = mfcbc; - fbwF[kbw] = mfaba; - fbeF[kb] = mfcba; - ftwF[kw] = mfabc; - ftnF[kzero] = mfbcc; - fbsF[kbs] = mfbaa; - fbnF[kb] = mfbca; - ftsF[ks] = mfbac; - fzeroF[kzero] = mfbbb; - ftneF[kzero] = mfccc; - ftseF[ks] = mfcac; - fbneF[kb] = mfcca; - fbseF[kbs] = mfcaa; - ftnwF[kw] = mfacc; - ftswF[ksw] = mfaac; - fbnwF[kbw] = mfaca; - fbswF[kbsw] = mfaaa; - //////////////////////////////////////////////////////////////////////////////////// - - - //reset - mfcbb = c0o1; - mfabb = c0o1; - mfbcb = c0o1; - mfbab = c0o1; - mfbbc = c0o1; - mfbba = c0o1; - mfccb = c0o1; - mfaab = c0o1; - mfcab = c0o1; - mfacb = c0o1; - mfcbc = c0o1; - mfaba = c0o1; - mfcba = c0o1; - mfabc = c0o1; - mfbcc = c0o1; - mfbaa = c0o1; - mfbca = c0o1; - mfbac = c0o1; - mfbbb = c0o1; - mfccc = c0o1; - mfaac = c0o1; - mfcac = c0o1; - mfacc = c0o1; - mfcca = c0o1; - mfaaa = c0o1; - mfcaa = c0o1; - mfaca = c0o1; - - - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position NWB -0.25f, 0.25f, -0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = -c1o4; - y = c1o4; - z = -c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho = c9o64*drho_NEB+c3o64*drho_NET+c27o64*drho_NWB+c9o64*drho_NWT+c3o64*drho_SEB+c1o64*drho_SET+c9o64*drho_SWB+c3o64*drho_SWT; - //press = press_NWT * (c9o64 + c3o16 * mxoff - c3o16 * myoff - c9o16 * mzoff) + - // press_NET * (c3o64 - c3o16 * mxoff - c1o16 * myoff - c3o16 * mzoff) + - // press_SWT * (c3o64 + c1o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + - // press_SET * (c1o64 - c1o16 * mxoff + c1o16 * myoff - c1o16 * mzoff) + - // press_SEB * (c3o64 - c3o16 * mxoff + c3o16 * myoff + c1o16 * mzoff) + - // press_NEB * (c9o64 - c9o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + - // press_SWB * (c9o64 + c3o16 * mxoff + c9o16 * myoff + c3o16 * mzoff) + - // press_NWB * (c27o64 + c9o16 * mxoff - c9o16 * myoff + c9o16 * mzoff); - //drho = drho_NWT * (c9o64 + c3o16 * xoff - c3o16 * yoff - c9o16 * zoff) + - // drho_NET * (c3o64 - c3o16 * xoff - c1o16 * yoff - c3o16 * zoff) + - // drho_SWT * (c3o64 + c1o16 * xoff + c3o16 * yoff - c3o16 * zoff) + - // drho_SET * (c1o64 - c1o16 * xoff + c1o16 * yoff - c1o16 * zoff) + - // drho_SEB * (c3o64 - c3o16 * xoff + c3o16 * yoff + c1o16 * zoff) + - // drho_NEB * (c9o64 - c9o16 * xoff - c3o16 * yoff + c3o16 * zoff) + - // drho_SWB * (c9o64 + c3o16 * xoff + c9o16 * yoff + c3o16 * zoff) + - // drho_NWB * (c27o64 + c9o16 * xoff - c9o16 * yoff + c9o16 * zoff); - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz + c3o1*x*x*LapRho ; - vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); - vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); - vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); - //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); - //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); - //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //2.f - // linear combinations - mxxPyyPzz = mfaaa; - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - mfbbb = c1o4 * (c24o1*(-c2o1+omCoarse)*(-c2o1-c7o1*omCoarse+c3o1*omCoarse*omCoarse)/(c48o1+c152o1*omCoarse-c130o1*omCoarse*omCoarse+c29o1*omCoarse*omCoarse*omCoarse)) - / (c24o1*(-c2o1+omFine)*(-c2o1-c7o1*omFine+c3o1*omFine*omFine)/(c48o1+c152o1*omFine-c130o1*omFine*omFine+c29o1*omFine*omFine*omFine)) * mfbbbMean; - mxxyPyzz = c1o4 * (c8o1*(-c2o1+omCoarse)*(c1o1+c2o1*omCoarse)/(-c8o1-c14o1*omCoarse+c7o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(c1o1+c2o1*omFine)/(-c8o1-c14o1*omFine+c7o1*omFine*omFine)) * mxxyPyzzMean; - mxxyMyzz = c1o4 * (c8o1*(-c2o1+omCoarse)*(-c7o1+c4o1*omCoarse)/(c56o1-c50o1*omCoarse+c9o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(-c7o1+c4o1*omFine)/(c56o1-c50o1*omFine+c9o1*omFine*omFine)) * mxxyMyzzMean; - mxxzPyyz = c1o4 * (c8o1*(-c2o1+omCoarse)*(c1o1+c2o1*omCoarse)/(-c8o1-c14o1*omCoarse+c7o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(c1o1+c2o1*omFine)/(-c8o1-c14o1*omFine+c7o1*omFine*omFine)) * mxxzPyyzMean; - mxxzMyyz = c1o4 * (c8o1*(-c2o1+omCoarse)*(-c7o1+c4o1*omCoarse)/(c56o1-c50o1*omCoarse+c9o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(-c7o1+c4o1*omFine)/(c56o1-c50o1*omFine+c9o1*omFine*omFine)) * mxxzMyyzMean; - mxyyPxzz = c1o4 * (c8o1*(-c2o1+omCoarse)*(c1o1+c2o1*omCoarse)/(-c8o1-c14o1*omCoarse+c7o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(c1o1+c2o1*omFine)/(-c8o1-c14o1*omFine+c7o1*omFine*omFine)) * mxyyPxzzMean; - mxyyMxzz = c1o4 * (c8o1*(-c2o1+omCoarse)*(-c7o1+c4o1*omCoarse)/(c56o1-c50o1*omCoarse+c9o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(-c7o1+c4o1*omFine)/(c56o1-c50o1*omFine+c9o1*omFine*omFine)) * mxyyMxzzMean; - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //index 0 - k0zero= k0s; - k0w = k0sw; - k0s = neighborFY[k0s]; - k0b = k0bs; - k0sw = neighborFY[k0sw]; - k0bw = k0bsw; - k0bs = neighborFY[k0bs]; - k0bsw = neighborFY[k0bsw]; - ////////////////////////////////////////////////////////////////////////// - //index - kzero= k0zero; - kw = k0w; - ks = k0s; - kb = k0b; - ksw = k0sw; - kbw = k0bw; - kbs = k0bs; - kbsw = k0bsw; - //////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - feF[kzero] = mfcbb; - fwF[kw] = mfabb; - fnF[kzero] = mfbcb; - fsF[ks] = mfbab; - ftF[kzero] = mfbbc; - fbF[kb] = mfbba; - fneF[kzero] = mfccb; - fswF[ksw] = mfaab; - fseF[ks] = mfcab; - fnwF[kw] = mfacb; - fteF[kzero] = mfcbc; - fbwF[kbw] = mfaba; - fbeF[kb] = mfcba; - ftwF[kw] = mfabc; - ftnF[kzero] = mfbcc; - fbsF[kbs] = mfbaa; - fbnF[kb] = mfbca; - ftsF[ks] = mfbac; - fzeroF[kzero] = mfbbb; - ftneF[kzero] = mfccc; - ftseF[ks] = mfcac; - fbneF[kb] = mfcca; - fbseF[kbs] = mfcaa; - ftnwF[kw] = mfacc; - ftswF[ksw] = mfaac; - fbnwF[kbw] = mfaca; - fbswF[kbsw] = mfaaa; - //////////////////////////////////////////////////////////////////////////////////// - - - //reset - mfcbb = c0o1; - mfabb = c0o1; - mfbcb = c0o1; - mfbab = c0o1; - mfbbc = c0o1; - mfbba = c0o1; - mfccb = c0o1; - mfaab = c0o1; - mfcab = c0o1; - mfacb = c0o1; - mfcbc = c0o1; - mfaba = c0o1; - mfcba = c0o1; - mfabc = c0o1; - mfbcc = c0o1; - mfbaa = c0o1; - mfbca = c0o1; - mfbac = c0o1; - mfbbb = c0o1; - mfccc = c0o1; - mfaac = c0o1; - mfcac = c0o1; - mfacc = c0o1; - mfcca = c0o1; - mfaaa = c0o1; - mfcaa = c0o1; - mfaca = c0o1; - - - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position NWT -0.25f, 0.25f, 0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = -c1o4; - y = c1o4; - z = c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho = c3o64*drho_NEB+c9o64*drho_NET+c9o64*drho_NWB+c27o64*drho_NWT+c1o64*drho_SEB+c3o64*drho_SET+c3o64*drho_SWB+c9o64*drho_SWT; - //press = press_NWT * (c27o64 + c9o16 * mxoff - c9o16 * myoff - c9o16 * mzoff) + - // press_NET * (c9o64 - c9o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + - // press_SWT * (c9o64 + c3o16 * mxoff + c9o16 * myoff - c3o16 * mzoff) + - // press_SET * (c3o64 - c3o16 * mxoff + c3o16 * myoff - c1o16 * mzoff) + - // press_SEB * (c1o64 - c1o16 * mxoff + c1o16 * myoff + c1o16 * mzoff) + - // press_NEB * (c3o64 - c3o16 * mxoff - c1o16 * myoff + c3o16 * mzoff) + - // press_SWB * (c3o64 + c1o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + - // press_NWB * (c9o64 + c3o16 * mxoff - c3o16 * myoff + c9o16 * mzoff); - //drho = drho_NWT * (c27o64 + c9o16 * xoff - c9o16 * yoff - c9o16 * zoff) + - // drho_NET * (c9o64 - c9o16 * xoff - c3o16 * yoff - c3o16 * zoff) + - // drho_SWT * (c9o64 + c3o16 * xoff + c9o16 * yoff - c3o16 * zoff) + - // drho_SET * (c3o64 - c3o16 * xoff + c3o16 * yoff - c1o16 * zoff) + - // drho_SEB * (c1o64 - c1o16 * xoff + c1o16 * yoff + c1o16 * zoff) + - // drho_NEB * (c3o64 - c3o16 * xoff - c1o16 * yoff + c3o16 * zoff) + - // drho_SWB * (c3o64 + c1o16 * xoff + c3o16 * yoff + c3o16 * zoff) + - // drho_NWB * (c9o64 + c3o16 * xoff - c3o16 * yoff + c9o16 * zoff); - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz + c3o1*x*x*LapRho ; - vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); - vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); - vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); - //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); - //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); - //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //2.f - // linear combinations - mxxPyyPzz = mfaaa; - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - mfbbb = c1o4 * (c24o1*(-c2o1+omCoarse)*(-c2o1-c7o1*omCoarse+c3o1*omCoarse*omCoarse)/(c48o1+c152o1*omCoarse-c130o1*omCoarse*omCoarse+c29o1*omCoarse*omCoarse*omCoarse)) - / (c24o1*(-c2o1+omFine)*(-c2o1-c7o1*omFine+c3o1*omFine*omFine)/(c48o1+c152o1*omFine-c130o1*omFine*omFine+c29o1*omFine*omFine*omFine)) * mfbbbMean; - mxxyPyzz = c1o4 * (c8o1*(-c2o1+omCoarse)*(c1o1+c2o1*omCoarse)/(-c8o1-c14o1*omCoarse+c7o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(c1o1+c2o1*omFine)/(-c8o1-c14o1*omFine+c7o1*omFine*omFine)) * mxxyPyzzMean; - mxxyMyzz = c1o4 * (c8o1*(-c2o1+omCoarse)*(-c7o1+c4o1*omCoarse)/(c56o1-c50o1*omCoarse+c9o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(-c7o1+c4o1*omFine)/(c56o1-c50o1*omFine+c9o1*omFine*omFine)) * mxxyMyzzMean; - mxxzPyyz = c1o4 * (c8o1*(-c2o1+omCoarse)*(c1o1+c2o1*omCoarse)/(-c8o1-c14o1*omCoarse+c7o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(c1o1+c2o1*omFine)/(-c8o1-c14o1*omFine+c7o1*omFine*omFine)) * mxxzPyyzMean; - mxxzMyyz = c1o4 * (c8o1*(-c2o1+omCoarse)*(-c7o1+c4o1*omCoarse)/(c56o1-c50o1*omCoarse+c9o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(-c7o1+c4o1*omFine)/(c56o1-c50o1*omFine+c9o1*omFine*omFine)) * mxxzMyyzMean; - mxyyPxzz = c1o4 * (c8o1*(-c2o1+omCoarse)*(c1o1+c2o1*omCoarse)/(-c8o1-c14o1*omCoarse+c7o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(c1o1+c2o1*omFine)/(-c8o1-c14o1*omFine+c7o1*omFine*omFine)) * mxyyPxzzMean; - mxyyMxzz = c1o4 * (c8o1*(-c2o1+omCoarse)*(-c7o1+c4o1*omCoarse)/(c56o1-c50o1*omCoarse+c9o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(-c7o1+c4o1*omFine)/(c56o1-c50o1*omFine+c9o1*omFine*omFine)) * mxyyMxzzMean; - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //index - kzero= kb; - kw = kbw; - ks = kbs; - kb = neighborFZ[kb]; - ksw = kbsw; - kbw = neighborFZ[kbw]; - kbs = neighborFZ[kbs]; - kbsw = neighborFZ[kbsw]; - //////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - feF[kzero] = mfcbb; - fwF[kw] = mfabb; - fnF[kzero] = mfbcb; - fsF[ks] = mfbab; - ftF[kzero] = mfbbc; - fbF[kb] = mfbba; - fneF[kzero] = mfccb; - fswF[ksw] = mfaab; - fseF[ks] = mfcab; - fnwF[kw] = mfacb; - fteF[kzero] = mfcbc; - fbwF[kbw] = mfaba; - fbeF[kb] = mfcba; - ftwF[kw] = mfabc; - ftnF[kzero] = mfbcc; - fbsF[kbs] = mfbaa; - fbnF[kb] = mfbca; - ftsF[ks] = mfbac; - fzeroF[kzero] = mfbbb; - ftneF[kzero] = mfccc; - ftseF[ks] = mfcac; - fbneF[kb] = mfcca; - fbseF[kbs] = mfcaa; - ftnwF[kw] = mfacc; - ftswF[ksw] = mfaac; - fbnwF[kbw] = mfaca; - fbswF[kbsw] = mfaaa; - //////////////////////////////////////////////////////////////////////////////////// - - - //reset - mfcbb = c0o1; - mfabb = c0o1; - mfbcb = c0o1; - mfbab = c0o1; - mfbbc = c0o1; - mfbba = c0o1; - mfccb = c0o1; - mfaab = c0o1; - mfcab = c0o1; - mfacb = c0o1; - mfcbc = c0o1; - mfaba = c0o1; - mfcba = c0o1; - mfabc = c0o1; - mfbcc = c0o1; - mfbaa = c0o1; - mfbca = c0o1; - mfbac = c0o1; - mfbbb = c0o1; - mfccc = c0o1; - mfaac = c0o1; - mfcac = c0o1; - mfacc = c0o1; - mfcca = c0o1; - mfaaa = c0o1; - mfcaa = c0o1; - mfaca = c0o1; - - - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position NET 0.25f, 0.25f, 0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = c1o4; - y = c1o4; - z = c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho = c9o64*drho_NEB+c27o64*drho_NET+c3o64*drho_NWB+c9o64*drho_NWT+c3o64*drho_SEB+c9o64*drho_SET+c1o64*drho_SWB+c3o64*drho_SWT; - //press = press_NET * (c27o64 - c9o16 * mxoff - c9o16 * myoff - c9o16 * mzoff) + - // press_NWT * (c9o64 + c9o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + - // press_SET * (c9o64 - c3o16 * mxoff + c9o16 * myoff - c3o16 * mzoff) + - // press_SWT * (c3o64 + c3o16 * mxoff + c3o16 * myoff - c1o16 * mzoff) + - // press_SWB * (c1o64 + c1o16 * mxoff + c1o16 * myoff + c1o16 * mzoff) + - // press_NWB * (c3o64 + c3o16 * mxoff - c1o16 * myoff + c3o16 * mzoff) + - // press_SEB * (c3o64 - c1o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + - // press_NEB * (c9o64 - c3o16 * mxoff - c3o16 * myoff + c9o16 * mzoff); - //drho = drho_NET * (c27o64 - c9o16 * xoff - c9o16 * yoff - c9o16 * zoff) + - // drho_NWT * (c9o64 + c9o16 * xoff - c3o16 * yoff - c3o16 * zoff) + - // drho_SET * (c9o64 - c3o16 * xoff + c9o16 * yoff - c3o16 * zoff) + - // drho_SWT * (c3o64 + c3o16 * xoff + c3o16 * yoff - c1o16 * zoff) + - // drho_SWB * (c1o64 + c1o16 * xoff + c1o16 * yoff + c1o16 * zoff) + - // drho_NWB * (c3o64 + c3o16 * xoff - c1o16 * yoff + c3o16 * zoff) + - // drho_SEB * (c3o64 - c1o16 * xoff + c3o16 * yoff + c3o16 * zoff) + - // drho_NEB * (c9o64 - c3o16 * xoff - c3o16 * yoff + c9o16 * zoff); - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz + c3o1*x*x*LapRho ; - vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); - vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); - vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); - //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); - //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); - //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //2.f - // linear combinations - mxxPyyPzz = mfaaa; - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - mfbbb = c1o4 * (c24o1*(-c2o1+omCoarse)*(-c2o1-c7o1*omCoarse+c3o1*omCoarse*omCoarse)/(c48o1+c152o1*omCoarse-c130o1*omCoarse*omCoarse+c29o1*omCoarse*omCoarse*omCoarse)) - / (c24o1*(-c2o1+omFine)*(-c2o1-c7o1*omFine+c3o1*omFine*omFine)/(c48o1+c152o1*omFine-c130o1*omFine*omFine+c29o1*omFine*omFine*omFine)) * mfbbbMean; - mxxyPyzz = c1o4 * (c8o1*(-c2o1+omCoarse)*(c1o1+c2o1*omCoarse)/(-c8o1-c14o1*omCoarse+c7o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(c1o1+c2o1*omFine)/(-c8o1-c14o1*omFine+c7o1*omFine*omFine)) * mxxyPyzzMean; - mxxyMyzz = c1o4 * (c8o1*(-c2o1+omCoarse)*(-c7o1+c4o1*omCoarse)/(c56o1-c50o1*omCoarse+c9o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(-c7o1+c4o1*omFine)/(c56o1-c50o1*omFine+c9o1*omFine*omFine)) * mxxyMyzzMean; - mxxzPyyz = c1o4 * (c8o1*(-c2o1+omCoarse)*(c1o1+c2o1*omCoarse)/(-c8o1-c14o1*omCoarse+c7o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(c1o1+c2o1*omFine)/(-c8o1-c14o1*omFine+c7o1*omFine*omFine)) * mxxzPyyzMean; - mxxzMyyz = c1o4 * (c8o1*(-c2o1+omCoarse)*(-c7o1+c4o1*omCoarse)/(c56o1-c50o1*omCoarse+c9o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(-c7o1+c4o1*omFine)/(c56o1-c50o1*omFine+c9o1*omFine*omFine)) * mxxzMyyzMean; - mxyyPxzz = c1o4 * (c8o1*(-c2o1+omCoarse)*(c1o1+c2o1*omCoarse)/(-c8o1-c14o1*omCoarse+c7o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(c1o1+c2o1*omFine)/(-c8o1-c14o1*omFine+c7o1*omFine*omFine)) * mxyyPxzzMean; - mxyyMxzz = c1o4 * (c8o1*(-c2o1+omCoarse)*(-c7o1+c4o1*omCoarse)/(c56o1-c50o1*omCoarse+c9o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(-c7o1+c4o1*omFine)/(c56o1-c50o1*omFine+c9o1*omFine*omFine)) * mxyyMxzzMean; - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //index - kzero= kw; - kw = neighborFX[kw]; - ks = ksw; - kb = kbw; - ksw = neighborFX[ksw]; - kbw = neighborFX[kbw]; - kbs = kbsw; - kbsw = neighborFX[kbsw]; - //////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - feF[kzero] = mfcbb; - fwF[kw] = mfabb; - fnF[kzero] = mfbcb; - fsF[ks] = mfbab; - ftF[kzero] = mfbbc; - fbF[kb] = mfbba; - fneF[kzero] = mfccb; - fswF[ksw] = mfaab; - fseF[ks] = mfcab; - fnwF[kw] = mfacb; - fteF[kzero] = mfcbc; - fbwF[kbw] = mfaba; - fbeF[kb] = mfcba; - ftwF[kw] = mfabc; - ftnF[kzero] = mfbcc; - fbsF[kbs] = mfbaa; - fbnF[kb] = mfbca; - ftsF[ks] = mfbac; - fzeroF[kzero] = mfbbb; - ftneF[kzero] = mfccc; - ftseF[ks] = mfcac; - fbneF[kb] = mfcca; - fbseF[kbs] = mfcaa; - ftnwF[kw] = mfacc; - ftswF[ksw] = mfaac; - fbnwF[kbw] = mfaca; - fbswF[kbsw] = mfaaa; - //////////////////////////////////////////////////////////////////////////////////// - - - //reset - mfcbb = c0o1; - mfabb = c0o1; - mfbcb = c0o1; - mfbab = c0o1; - mfbbc = c0o1; - mfbba = c0o1; - mfccb = c0o1; - mfaab = c0o1; - mfcab = c0o1; - mfacb = c0o1; - mfcbc = c0o1; - mfaba = c0o1; - mfcba = c0o1; - mfabc = c0o1; - mfbcc = c0o1; - mfbaa = c0o1; - mfbca = c0o1; - mfbac = c0o1; - mfbbb = c0o1; - mfccc = c0o1; - mfaac = c0o1; - mfcac = c0o1; - mfacc = c0o1; - mfcca = c0o1; - mfaaa = c0o1; - mfcaa = c0o1; - mfaca = c0o1; - - - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position NEB 0.25f, 0.25f, -0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = c1o4; - y = c1o4; - z = -c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho = c27o64*drho_NEB+c9o64*drho_NET+c9o64*drho_NWB+c3o64*drho_NWT+c9o64*drho_SEB+c3o64*drho_SET+c3o64*drho_SWB+c1o64*drho_SWT; - //press = press_NET * (c9o64 - c3o16 * mxoff - c3o16 * myoff - c9o16 * mzoff) + - // press_NWT * (c3o64 + c3o16 * mxoff - c1o16 * myoff - c3o16 * mzoff) + - // press_SET * (c3o64 - c1o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + - // press_SWT * (c1o64 + c1o16 * mxoff + c1o16 * myoff - c1o16 * mzoff) + - // press_SWB * (c3o64 + c3o16 * mxoff + c3o16 * myoff + c1o16 * mzoff) + - // press_NWB * (c9o64 + c9o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + - // press_SEB * (c9o64 - c3o16 * mxoff + c9o16 * myoff + c3o16 * mzoff) + - // press_NEB * (c27o64 - c9o16 * mxoff - c9o16 * myoff + c9o16 * mzoff); - //drho = drho_NET * (c9o64 - c3o16 * xoff - c3o16 * yoff - c9o16 * zoff) + - // drho_NWT * (c3o64 + c3o16 * xoff - c1o16 * yoff - c3o16 * zoff) + - // drho_SET * (c3o64 - c1o16 * xoff + c3o16 * yoff - c3o16 * zoff) + - // drho_SWT * (c1o64 + c1o16 * xoff + c1o16 * yoff - c1o16 * zoff) + - // drho_SWB * (c3o64 + c3o16 * xoff + c3o16 * yoff + c1o16 * zoff) + - // drho_NWB * (c9o64 + c9o16 * xoff - c3o16 * yoff + c3o16 * zoff) + - // drho_SEB * (c9o64 - c3o16 * xoff + c9o16 * yoff + c3o16 * zoff) + - // drho_NEB * (c27o64 - c9o16 * xoff - c9o16 * yoff + c9o16 * zoff); - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz + c3o1*x*x*LapRho ; - vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); - vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); - vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); - //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); - //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); - //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //2.f - // linear combinations - mxxPyyPzz = mfaaa; - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - mfbbb = c1o4 * (c24o1*(-c2o1+omCoarse)*(-c2o1-c7o1*omCoarse+c3o1*omCoarse*omCoarse)/(c48o1+c152o1*omCoarse-c130o1*omCoarse*omCoarse+c29o1*omCoarse*omCoarse*omCoarse)) - / (c24o1*(-c2o1+omFine)*(-c2o1-c7o1*omFine+c3o1*omFine*omFine)/(c48o1+c152o1*omFine-c130o1*omFine*omFine+c29o1*omFine*omFine*omFine)) * mfbbbMean; - mxxyPyzz = c1o4 * (c8o1*(-c2o1+omCoarse)*(c1o1+c2o1*omCoarse)/(-c8o1-c14o1*omCoarse+c7o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(c1o1+c2o1*omFine)/(-c8o1-c14o1*omFine+c7o1*omFine*omFine)) * mxxyPyzzMean; - mxxyMyzz = c1o4 * (c8o1*(-c2o1+omCoarse)*(-c7o1+c4o1*omCoarse)/(c56o1-c50o1*omCoarse+c9o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(-c7o1+c4o1*omFine)/(c56o1-c50o1*omFine+c9o1*omFine*omFine)) * mxxyMyzzMean; - mxxzPyyz = c1o4 * (c8o1*(-c2o1+omCoarse)*(c1o1+c2o1*omCoarse)/(-c8o1-c14o1*omCoarse+c7o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(c1o1+c2o1*omFine)/(-c8o1-c14o1*omFine+c7o1*omFine*omFine)) * mxxzPyyzMean; - mxxzMyyz = c1o4 * (c8o1*(-c2o1+omCoarse)*(-c7o1+c4o1*omCoarse)/(c56o1-c50o1*omCoarse+c9o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(-c7o1+c4o1*omFine)/(c56o1-c50o1*omFine+c9o1*omFine*omFine)) * mxxzMyyzMean; - mxyyPxzz = c1o4 * (c8o1*(-c2o1+omCoarse)*(c1o1+c2o1*omCoarse)/(-c8o1-c14o1*omCoarse+c7o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(c1o1+c2o1*omFine)/(-c8o1-c14o1*omFine+c7o1*omFine*omFine)) * mxyyPxzzMean; - mxyyMxzz = c1o4 * (c8o1*(-c2o1+omCoarse)*(-c7o1+c4o1*omCoarse)/(c56o1-c50o1*omCoarse+c9o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(-c7o1+c4o1*omFine)/(c56o1-c50o1*omFine+c9o1*omFine*omFine)) * mxyyMxzzMean; - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //index - kb = kzero; - kbw = kw; - kbs = ks; - kbsw = ksw; - kzero= k0w; - kw = neighborFX[k0w]; - ks = k0sw; - ksw = neighborFX[k0sw]; - //////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - feF[kzero] = mfcbb; - fwF[kw] = mfabb; - fnF[kzero] = mfbcb; - fsF[ks] = mfbab; - ftF[kzero] = mfbbc; - fbF[kb] = mfbba; - fneF[kzero] = mfccb; - fswF[ksw] = mfaab; - fseF[ks] = mfcab; - fnwF[kw] = mfacb; - fteF[kzero] = mfcbc; - fbwF[kbw] = mfaba; - fbeF[kb] = mfcba; - ftwF[kw] = mfabc; - ftnF[kzero] = mfbcc; - fbsF[kbs] = mfbaa; - fbnF[kb] = mfbca; - ftsF[ks] = mfbac; - fzeroF[kzero] = mfbbb; - ftneF[kzero] = mfccc; - ftseF[ks] = mfcac; - fbneF[kb] = mfcca; - fbseF[kbs] = mfcaa; - ftnwF[kw] = mfacc; - ftswF[ksw] = mfaac; - fbnwF[kbw] = mfaca; - fbswF[kbsw] = mfaaa; - //////////////////////////////////////////////////////////////////////////////////// - } -} -////////////////////////////////////////////////////////////////////////// - - - - - - + d0 = d0 + xoff * dx + yoff * dy + zoff * dz + xoff*yoff*dxy + xoff*zoff*dxz + yoff*zoff*dyz; + dx = dx + yoff * dxy + zoff * dxz; + dy = dy + xoff * dxy + zoff * dyz; + dz = dz + xoff * dxz + yoff * dyz; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // FIX /////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //AAAAAAAAAAAAHHHHHHHHHHHH!!!!! Mieser Test!!! + //b0= bx= by= bz= bxx= byy= bzz= bxy= bxz= byz= c0= cx= cy= cz= cxx= cyy= czz= cxy= cxz= cyz= axyz= bxyz= cxyz=zero; + //a0=zero; + //ax=zero; + //ay=zero; + //az=zero; + //axx=zero; + //ayy=zero; + //azz=zero; + //axy=zero; + //axz=zero; + //ayz=zero; + //b0=zero; + //bx=zero; + //by=zero; + //bz=zero; + //bxx=zero; + //byy=zero; + //bzz=zero; + //bxy=zero; + //bxz=zero; + //byz=zero; + //c0=zero; + //cx=zero; + //cy=zero; + //cz=zero; + //cxx=zero; + //cyy=zero; + //czz=zero; + //cxy=zero; + //cxz=zero; + //cyz=zero; + //axyz=zero; + //bxyz=zero; + //cxyz=zero; + //ax= ay= az= axx= ayy= azz= axy= axz= ayz= bx= by= bz= bxx= byy= bzz= bxy= bxz= byz= cx= cy= cz= cxx= cyy= czz= cxy= cxz= cyz= axyz= bxyz= cxyz=zero; + //a0=zero; + //b0=zero; + //c0=c1o100; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + mfcbb = c0o1; + mfabb = c0o1; + mfbcb = c0o1; + mfbab = c0o1; + mfbbc = c0o1; + mfbba = c0o1; + mfccb = c0o1; + mfaab = c0o1; + mfcab = c0o1; + mfacb = c0o1; + mfcbc = c0o1; + mfaba = c0o1; + mfcba = c0o1; + mfabc = c0o1; + mfbcc = c0o1; + mfbaa = c0o1; + mfbca = c0o1; + mfbac = c0o1; + mfbbb = c0o1; + mfccc = c0o1; + mfaac = c0o1; + mfcac = c0o1; + mfacc = c0o1; + mfcca = c0o1; + mfaaa = c0o1; + mfcaa = c0o1; + mfaca = c0o1; + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //real m0, m1, m2, vvx, vvy, vvz, vx2, vy2, vz2, oMdrho; + //real mxxPyyPzz, mxxMyy, mxxMzz, mxxyPyzz, mxxyMyzz, mxxzPyyz, mxxzMyyz, mxyyPxzz, mxyyMxzz; + ////real qudricLimit = c1o100;//ganz schlechte Idee -> muss global sein + ////real O3 = two - o; + ////real residu, residutmp; + ////residutmp = zero;// /*-*/ c2o9 * (1./o - c1o2) * eps_new * eps_new; + //real NeqOn = one;//zero;//one; //.... one = on ..... zero = off + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position SWB -0.25f, -0.25f, -0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = -c1o4; + y = -c1o4; + z = -c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //real mxoff = -xoff; + //real myoff = -yoff; + //real mzoff = -zoff; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho = c3o64*drho_NEB+c1o64*drho_NET+c9o64*drho_NWB+c3o64*drho_NWT+c9o64*drho_SEB+c3o64*drho_SET+c27o64*drho_SWB+c9o64*drho_SWT; + //press = press_SWT * (c9o64 + c3o16 * mxoff + c3o16 * myoff - c9o16 * mzoff) + + // press_NWT * (c3o64 + c1o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + + // press_SET * (c3o64 - c3o16 * mxoff + c1o16 * myoff - c3o16 * mzoff) + + // press_NET * (c1o64 - c1o16 * mxoff - c1o16 * myoff - c1o16 * mzoff) + + // press_NEB * (c3o64 - c3o16 * mxoff - c3o16 * myoff + c1o16 * mzoff) + + // press_NWB * (c9o64 + c3o16 * mxoff - c9o16 * myoff + c3o16 * mzoff) + + // press_SEB * (c9o64 - c9o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + + // press_SWB * (c27o64 + c9o16 * mxoff + c9o16 * myoff + c9o16 * mzoff); + //drho = drho_SWT * (c9o64 + c3o16 * xoff + c3o16 * yoff - c9o16 * zoff) + + // drho_NWT * (c3o64 + c1o16 * xoff - c3o16 * yoff - c3o16 * zoff) + + // drho_SET * (c3o64 - c3o16 * xoff + c1o16 * yoff - c3o16 * zoff) + + // drho_NET * (c1o64 - c1o16 * xoff - c1o16 * yoff - c1o16 * zoff) + + // drho_NEB * (c3o64 - c3o16 * xoff - c3o16 * yoff + c1o16 * zoff) + + // drho_NWB * (c9o64 + c3o16 * xoff - c9o16 * yoff + c3o16 * zoff) + + // drho_SEB * (c9o64 - c9o16 * xoff + c3o16 * yoff + c3o16 * zoff) + + // drho_SWB * (c27o64 + c9o16 * xoff + c9o16 * yoff + c9o16 * zoff); + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz + c3o1*x*x*LapRho ; + vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); + vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); + vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); + //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); + //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); + //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1; + //oMdrho = one - mfaaa; + + //2.f + // linear combinations + mxxPyyPzz = mfaaa; + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + mfbbb = c1o4 * (c24o1*(-c2o1+omCoarse)*(-c2o1-c7o1*omCoarse+c3o1*omCoarse*omCoarse)/(c48o1+c152o1*omCoarse-c130o1*omCoarse*omCoarse+c29o1*omCoarse*omCoarse*omCoarse)) + / (c24o1*(-c2o1+omFine)*(-c2o1-c7o1*omFine+c3o1*omFine*omFine)/(c48o1+c152o1*omFine-c130o1*omFine*omFine+c29o1*omFine*omFine*omFine)) * mfbbbMean; + mxxyPyzz = c1o4 * (c8o1*(-c2o1+omCoarse)*(c1o1+c2o1*omCoarse)/(-c8o1-c14o1*omCoarse+c7o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(c1o1+c2o1*omFine)/(-c8o1-c14o1*omFine+c7o1*omFine*omFine)) * mxxyPyzzMean; + mxxyMyzz = c1o4 * (c8o1*(-c2o1+omCoarse)*(-c7o1+c4o1*omCoarse)/(c56o1-c50o1*omCoarse+c9o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(-c7o1+c4o1*omFine)/(c56o1-c50o1*omFine+c9o1*omFine*omFine)) * mxxyMyzzMean; + mxxzPyyz = c1o4 * (c8o1*(-c2o1+omCoarse)*(c1o1+c2o1*omCoarse)/(-c8o1-c14o1*omCoarse+c7o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(c1o1+c2o1*omFine)/(-c8o1-c14o1*omFine+c7o1*omFine*omFine)) * mxxzPyyzMean; + mxxzMyyz = c1o4 * (c8o1*(-c2o1+omCoarse)*(-c7o1+c4o1*omCoarse)/(c56o1-c50o1*omCoarse+c9o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(-c7o1+c4o1*omFine)/(c56o1-c50o1*omFine+c9o1*omFine*omFine)) * mxxzMyyzMean; + mxyyPxzz = c1o4 * (c8o1*(-c2o1+omCoarse)*(c1o1+c2o1*omCoarse)/(-c8o1-c14o1*omCoarse+c7o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(c1o1+c2o1*omFine)/(-c8o1-c14o1*omFine+c7o1*omFine*omFine)) * mxyyPxzzMean; + mxyyMxzz = c1o4 * (c8o1*(-c2o1+omCoarse)*(-c7o1+c4o1*omCoarse)/(c56o1-c50o1*omCoarse+c9o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(-c7o1+c4o1*omFine)/(c56o1-c50o1*omFine+c9o1*omFine*omFine)) * mxyyMxzzMean; + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////// + //index 0 + k0zero= posFSWB[k]; + k0w = neighborFX[k0zero]; + k0s = neighborFY[k0zero]; + k0b = neighborFZ[k0zero]; + k0sw = neighborFY[k0w]; + k0bw = neighborFZ[k0w]; + k0bs = neighborFZ[k0s]; + k0bsw = neighborFZ[k0sw]; + ////////////////////////////////////////////////////////////////////////// + //index + kzero= k0zero; + kw = k0w; + ks = k0s; + kb = k0b; + ksw = k0sw; + kbw = k0bw; + kbs = k0bs; + kbsw = k0bsw; + //////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + feF[kzero] = mfcbb; + fwF[kw] = mfabb; + fnF[kzero] = mfbcb; + fsF[ks] = mfbab; + ftF[kzero] = mfbbc; + fbF[kb] = mfbba; + fneF[kzero] = mfccb; + fswF[ksw] = mfaab; + fseF[ks] = mfcab; + fnwF[kw] = mfacb; + fteF[kzero] = mfcbc; + fbwF[kbw] = mfaba; + fbeF[kb] = mfcba; + ftwF[kw] = mfabc; + ftnF[kzero] = mfbcc; + fbsF[kbs] = mfbaa; + fbnF[kb] = mfbca; + ftsF[ks] = mfbac; + fzeroF[kzero] = mfbbb; + ftneF[kzero] = mfccc; + ftseF[ks] = mfcac; + fbneF[kb] = mfcca; + fbseF[kbs] = mfcaa; + ftnwF[kw] = mfacc; + ftswF[ksw] = mfaac; + fbnwF[kbw] = mfaca; + fbswF[kbsw] = mfaaa; + //////////////////////////////////////////////////////////////////////////////////// + + //reset + mfcbb = c0o1; + mfabb = c0o1; + mfbcb = c0o1; + mfbab = c0o1; + mfbbc = c0o1; + mfbba = c0o1; + mfccb = c0o1; + mfaab = c0o1; + mfcab = c0o1; + mfacb = c0o1; + mfcbc = c0o1; + mfaba = c0o1; + mfcba = c0o1; + mfabc = c0o1; + mfbcc = c0o1; + mfbaa = c0o1; + mfbca = c0o1; + mfbac = c0o1; + mfbbb = c0o1; + mfccc = c0o1; + mfaac = c0o1; + mfcac = c0o1; + mfacc = c0o1; + mfcca = c0o1; + mfaaa = c0o1; + mfcaa = c0o1; + mfaca = c0o1; + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position SWT -0.25f, -0.25f, 0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = -c1o4; + y = -c1o4; + z = c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho = c1o64*drho_NEB+c3o64*drho_NET+c3o64*drho_NWB+c9o64*drho_NWT+c3o64*drho_SEB+c9o64*drho_SET+c9o64*drho_SWB+c27o64*drho_SWT; + //press = press_SWT * (c27o64 + c9o16 * mxoff + c9o16 * myoff - c9o16 * mzoff) + + // press_NWT * (c9o64 + c3o16 * mxoff - c9o16 * myoff - c3o16 * mzoff) + + // press_SET * (c9o64 - c9o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + + // press_NET * (c3o64 - c3o16 * mxoff - c3o16 * myoff - c1o16 * mzoff) + + // press_NEB * (c1o64 - c1o16 * mxoff - c1o16 * myoff + c1o16 * mzoff) + + // press_NWB * (c3o64 + c1o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + + // press_SEB * (c3o64 - c3o16 * mxoff + c1o16 * myoff + c3o16 * mzoff) + + // press_SWB * (c9o64 + c3o16 * mxoff + c3o16 * myoff + c9o16 * mzoff); + //drho = drho_SWT * (c27o64 + c9o16 * xoff + c9o16 * yoff - c9o16 * zoff) + + // drho_NWT * (c9o64 + c3o16 * xoff - c9o16 * yoff - c3o16 * zoff) + + // drho_SET * (c9o64 - c9o16 * xoff + c3o16 * yoff - c3o16 * zoff) + + // drho_NET * (c3o64 - c3o16 * xoff - c3o16 * yoff - c1o16 * zoff) + + // drho_NEB * (c1o64 - c1o16 * xoff - c1o16 * yoff + c1o16 * zoff) + + // drho_NWB * (c3o64 + c1o16 * xoff - c3o16 * yoff + c3o16 * zoff) + + // drho_SEB * (c3o64 - c3o16 * xoff + c1o16 * yoff + c3o16 * zoff) + + // drho_SWB * (c9o64 + c3o16 * xoff + c3o16 * yoff + c9o16 * zoff); + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz + c3o1*x*x*LapRho ; + vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); + vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); + vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); + //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); + //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); + //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1; + //oMdrho = one - mfaaa; + + //2.f + // linear combinations + mxxPyyPzz = mfaaa; + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + mfbbb = c1o4 * (c24o1*(-c2o1+omCoarse)*(-c2o1-c7o1*omCoarse+c3o1*omCoarse*omCoarse)/(c48o1+c152o1*omCoarse-c130o1*omCoarse*omCoarse+c29o1*omCoarse*omCoarse*omCoarse)) + / (c24o1*(-c2o1+omFine)*(-c2o1-c7o1*omFine+c3o1*omFine*omFine)/(c48o1+c152o1*omFine-c130o1*omFine*omFine+c29o1*omFine*omFine*omFine)) * mfbbbMean; + mxxyPyzz = c1o4 * (c8o1*(-c2o1+omCoarse)*(c1o1+c2o1*omCoarse)/(-c8o1-c14o1*omCoarse+c7o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(c1o1+c2o1*omFine)/(-c8o1-c14o1*omFine+c7o1*omFine*omFine)) * mxxyPyzzMean; + mxxyMyzz = c1o4 * (c8o1*(-c2o1+omCoarse)*(-c7o1+c4o1*omCoarse)/(c56o1-c50o1*omCoarse+c9o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(-c7o1+c4o1*omFine)/(c56o1-c50o1*omFine+c9o1*omFine*omFine)) * mxxyMyzzMean; + mxxzPyyz = c1o4 * (c8o1*(-c2o1+omCoarse)*(c1o1+c2o1*omCoarse)/(-c8o1-c14o1*omCoarse+c7o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(c1o1+c2o1*omFine)/(-c8o1-c14o1*omFine+c7o1*omFine*omFine)) * mxxzPyyzMean; + mxxzMyyz = c1o4 * (c8o1*(-c2o1+omCoarse)*(-c7o1+c4o1*omCoarse)/(c56o1-c50o1*omCoarse+c9o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(-c7o1+c4o1*omFine)/(c56o1-c50o1*omFine+c9o1*omFine*omFine)) * mxxzMyyzMean; + mxyyPxzz = c1o4 * (c8o1*(-c2o1+omCoarse)*(c1o1+c2o1*omCoarse)/(-c8o1-c14o1*omCoarse+c7o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(c1o1+c2o1*omFine)/(-c8o1-c14o1*omFine+c7o1*omFine*omFine)) * mxyyPxzzMean; + mxyyMxzz = c1o4 * (c8o1*(-c2o1+omCoarse)*(-c7o1+c4o1*omCoarse)/(c56o1-c50o1*omCoarse+c9o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(-c7o1+c4o1*omFine)/(c56o1-c50o1*omFine+c9o1*omFine*omFine)) * mxyyMxzzMean; + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + //index + kzero= kb; + kw = kbw; + ks = kbs; + kb = neighborFZ[kb]; + ksw = kbsw; + kbw = neighborFZ[kbw]; + kbs = neighborFZ[kbs]; + kbsw = neighborFZ[kbsw]; + //////////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + feF[kzero] = mfcbb; + fwF[kw] = mfabb; + fnF[kzero] = mfbcb; + fsF[ks] = mfbab; + ftF[kzero] = mfbbc; + fbF[kb] = mfbba; + fneF[kzero] = mfccb; + fswF[ksw] = mfaab; + fseF[ks] = mfcab; + fnwF[kw] = mfacb; + fteF[kzero] = mfcbc; + fbwF[kbw] = mfaba; + fbeF[kb] = mfcba; + ftwF[kw] = mfabc; + ftnF[kzero] = mfbcc; + fbsF[kbs] = mfbaa; + fbnF[kb] = mfbca; + ftsF[ks] = mfbac; + fzeroF[kzero] = mfbbb; + ftneF[kzero] = mfccc; + ftseF[ks] = mfcac; + fbneF[kb] = mfcca; + fbseF[kbs] = mfcaa; + ftnwF[kw] = mfacc; + ftswF[ksw] = mfaac; + fbnwF[kbw] = mfaca; + fbswF[kbsw] = mfaaa; + //////////////////////////////////////////////////////////////////////////////////// + + + //reset + mfcbb = c0o1; + mfabb = c0o1; + mfbcb = c0o1; + mfbab = c0o1; + mfbbc = c0o1; + mfbba = c0o1; + mfccb = c0o1; + mfaab = c0o1; + mfcab = c0o1; + mfacb = c0o1; + mfcbc = c0o1; + mfaba = c0o1; + mfcba = c0o1; + mfabc = c0o1; + mfbcc = c0o1; + mfbaa = c0o1; + mfbca = c0o1; + mfbac = c0o1; + mfbbb = c0o1; + mfccc = c0o1; + mfaac = c0o1; + mfcac = c0o1; + mfacc = c0o1; + mfcca = c0o1; + mfaaa = c0o1; + mfcaa = c0o1; + mfaca = c0o1; + + + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position SET 0.25f, -0.25f, 0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = c1o4; + y = -c1o4; + z = c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho =c3o64*drho_NEB+c9o64*drho_NET+c1o64*drho_NWB+c3o64*drho_NWT+c9o64*drho_SEB+c27o64*drho_SET+c3o64*drho_SWB+c9o64*drho_SWT; + //press = press_SET * (c27o64 - c9o16 * mxoff + c9o16 * myoff - c9o16 * mzoff) + + // press_NET * (c9o64 - c3o16 * mxoff - c9o16 * myoff - c3o16 * mzoff) + + // press_SWT * (c9o64 + c9o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + + // press_NWT * (c3o64 + c3o16 * mxoff - c3o16 * myoff - c1o16 * mzoff) + + // press_NWB * (c1o64 + c1o16 * mxoff - c1o16 * myoff + c1o16 * mzoff) + + // press_NEB * (c3o64 - c1o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + + // press_SWB * (c3o64 + c3o16 * mxoff + c1o16 * myoff + c3o16 * mzoff) + + // press_SEB * (c9o64 - c3o16 * mxoff + c3o16 * myoff + c9o16 * mzoff); + //drho = drho_SET * (c27o64 - c9o16 * xoff + c9o16 * yoff - c9o16 * zoff) + + // drho_NET * (c9o64 - c3o16 * xoff - c9o16 * yoff - c3o16 * zoff) + + // drho_SWT * (c9o64 + c9o16 * xoff + c3o16 * yoff - c3o16 * zoff) + + // drho_NWT * (c3o64 + c3o16 * xoff - c3o16 * yoff - c1o16 * zoff) + + // drho_NWB * (c1o64 + c1o16 * xoff - c1o16 * yoff + c1o16 * zoff) + + // drho_NEB * (c3o64 - c1o16 * xoff - c3o16 * yoff + c3o16 * zoff) + + // drho_SWB * (c3o64 + c3o16 * xoff + c1o16 * yoff + c3o16 * zoff) + + // drho_SEB * (c9o64 - c3o16 * xoff + c3o16 * yoff + c9o16 * zoff); + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz + c3o1*x*x*LapRho ; + vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); + vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); + vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); + //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); + //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); + //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1; + //oMdrho = one - mfaaa; + + //2.f + // linear combinations + mxxPyyPzz = mfaaa; + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + mfbbb = c1o4 * (c24o1*(-c2o1+omCoarse)*(-c2o1-c7o1*omCoarse+c3o1*omCoarse*omCoarse)/(c48o1+c152o1*omCoarse-c130o1*omCoarse*omCoarse+c29o1*omCoarse*omCoarse*omCoarse)) + / (c24o1*(-c2o1+omFine)*(-c2o1-c7o1*omFine+c3o1*omFine*omFine)/(c48o1+c152o1*omFine-c130o1*omFine*omFine+c29o1*omFine*omFine*omFine)) * mfbbbMean; + mxxyPyzz = c1o4 * (c8o1*(-c2o1+omCoarse)*(c1o1+c2o1*omCoarse)/(-c8o1-c14o1*omCoarse+c7o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(c1o1+c2o1*omFine)/(-c8o1-c14o1*omFine+c7o1*omFine*omFine)) * mxxyPyzzMean; + mxxyMyzz = c1o4 * (c8o1*(-c2o1+omCoarse)*(-c7o1+c4o1*omCoarse)/(c56o1-c50o1*omCoarse+c9o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(-c7o1+c4o1*omFine)/(c56o1-c50o1*omFine+c9o1*omFine*omFine)) * mxxyMyzzMean; + mxxzPyyz = c1o4 * (c8o1*(-c2o1+omCoarse)*(c1o1+c2o1*omCoarse)/(-c8o1-c14o1*omCoarse+c7o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(c1o1+c2o1*omFine)/(-c8o1-c14o1*omFine+c7o1*omFine*omFine)) * mxxzPyyzMean; + mxxzMyyz = c1o4 * (c8o1*(-c2o1+omCoarse)*(-c7o1+c4o1*omCoarse)/(c56o1-c50o1*omCoarse+c9o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(-c7o1+c4o1*omFine)/(c56o1-c50o1*omFine+c9o1*omFine*omFine)) * mxxzMyyzMean; + mxyyPxzz = c1o4 * (c8o1*(-c2o1+omCoarse)*(c1o1+c2o1*omCoarse)/(-c8o1-c14o1*omCoarse+c7o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(c1o1+c2o1*omFine)/(-c8o1-c14o1*omFine+c7o1*omFine*omFine)) * mxyyPxzzMean; + mxyyMxzz = c1o4 * (c8o1*(-c2o1+omCoarse)*(-c7o1+c4o1*omCoarse)/(c56o1-c50o1*omCoarse+c9o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(-c7o1+c4o1*omFine)/(c56o1-c50o1*omFine+c9o1*omFine*omFine)) * mxyyMxzzMean; + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////// + //index + kzero= kw; + kw = neighborFX[kw]; + ks = ksw; + kb = kbw; + ksw = neighborFX[ksw]; + kbw = neighborFX[kbw]; + kbs = kbsw; + kbsw = neighborFX[kbsw]; + //////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + feF[kzero] = mfcbb; + fwF[kw] = mfabb; + fnF[kzero] = mfbcb; + fsF[ks] = mfbab; + ftF[kzero] = mfbbc; + fbF[kb] = mfbba; + fneF[kzero] = mfccb; + fswF[ksw] = mfaab; + fseF[ks] = mfcab; + fnwF[kw] = mfacb; + fteF[kzero] = mfcbc; + fbwF[kbw] = mfaba; + fbeF[kb] = mfcba; + ftwF[kw] = mfabc; + ftnF[kzero] = mfbcc; + fbsF[kbs] = mfbaa; + fbnF[kb] = mfbca; + ftsF[ks] = mfbac; + fzeroF[kzero] = mfbbb; + ftneF[kzero] = mfccc; + ftseF[ks] = mfcac; + fbneF[kb] = mfcca; + fbseF[kbs] = mfcaa; + ftnwF[kw] = mfacc; + ftswF[ksw] = mfaac; + fbnwF[kbw] = mfaca; + fbswF[kbsw] = mfaaa; + //////////////////////////////////////////////////////////////////////////////////// + + //reset + mfcbb = c0o1; + mfabb = c0o1; + mfbcb = c0o1; + mfbab = c0o1; + mfbbc = c0o1; + mfbba = c0o1; + mfccb = c0o1; + mfaab = c0o1; + mfcab = c0o1; + mfacb = c0o1; + mfcbc = c0o1; + mfaba = c0o1; + mfcba = c0o1; + mfabc = c0o1; + mfbcc = c0o1; + mfbaa = c0o1; + mfbca = c0o1; + mfbac = c0o1; + mfbbb = c0o1; + mfccc = c0o1; + mfaac = c0o1; + mfcac = c0o1; + mfacc = c0o1; + mfcca = c0o1; + mfaaa = c0o1; + mfcaa = c0o1; + mfaca = c0o1; + + + + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position SEB 0.25f, -0.25f, -0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = c1o4; + y = -c1o4; + z = -c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho =c9o64*drho_NEB+c3o64*drho_NET+c3o64*drho_NWB+c1o64*drho_NWT+c27o64*drho_SEB+c9o64*drho_SET+c9o64*drho_SWB+c3o64*drho_SWT; + //press = press_SET * (c9o64 - c3o16 * mxoff + c3o16 * myoff - c9o16 * mzoff) + + // press_NET * (c3o64 - c1o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + + // press_SWT * (c3o64 + c3o16 * mxoff + c1o16 * myoff - c3o16 * mzoff) + + // press_NWT * (c1o64 + c1o16 * mxoff - c1o16 * myoff - c1o16 * mzoff) + + // press_NWB * (c3o64 + c3o16 * mxoff - c3o16 * myoff + c1o16 * mzoff) + + // press_NEB * (c9o64 - c3o16 * mxoff - c9o16 * myoff + c3o16 * mzoff) + + // press_SWB * (c9o64 + c9o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + + // press_SEB * (c27o64 - c9o16 * mxoff + c9o16 * myoff + c9o16 * mzoff); + //drho = drho_SET * (c9o64 - c3o16 * xoff + c3o16 * yoff - c9o16 * zoff) + + // drho_NET * (c3o64 - c1o16 * xoff - c3o16 * yoff - c3o16 * zoff) + + // drho_SWT * (c3o64 + c3o16 * xoff + c1o16 * yoff - c3o16 * zoff) + + // drho_NWT * (c1o64 + c1o16 * xoff - c1o16 * yoff - c1o16 * zoff) + + // drho_NWB * (c3o64 + c3o16 * xoff - c3o16 * yoff + c1o16 * zoff) + + // drho_NEB * (c9o64 - c3o16 * xoff - c9o16 * yoff + c3o16 * zoff) + + // drho_SWB * (c9o64 + c9o16 * xoff + c3o16 * yoff + c3o16 * zoff) + + // drho_SEB * (c27o64 - c9o16 * xoff + c9o16 * yoff + c9o16 * zoff); + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz + c3o1*x*x*LapRho ; + vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); + vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); + vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); + //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); + //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); + //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1; + //oMdrho = one - mfaaa; + + //2.f + // linear combinations + mxxPyyPzz = mfaaa; + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + mfbbb = c1o4 * (c24o1*(-c2o1+omCoarse)*(-c2o1-c7o1*omCoarse+c3o1*omCoarse*omCoarse)/(c48o1+c152o1*omCoarse-c130o1*omCoarse*omCoarse+c29o1*omCoarse*omCoarse*omCoarse)) + / (c24o1*(-c2o1+omFine)*(-c2o1-c7o1*omFine+c3o1*omFine*omFine)/(c48o1+c152o1*omFine-c130o1*omFine*omFine+c29o1*omFine*omFine*omFine)) * mfbbbMean; + mxxyPyzz = c1o4 * (c8o1*(-c2o1+omCoarse)*(c1o1+c2o1*omCoarse)/(-c8o1-c14o1*omCoarse+c7o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(c1o1+c2o1*omFine)/(-c8o1-c14o1*omFine+c7o1*omFine*omFine)) * mxxyPyzzMean; + mxxyMyzz = c1o4 * (c8o1*(-c2o1+omCoarse)*(-c7o1+c4o1*omCoarse)/(c56o1-c50o1*omCoarse+c9o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(-c7o1+c4o1*omFine)/(c56o1-c50o1*omFine+c9o1*omFine*omFine)) * mxxyMyzzMean; + mxxzPyyz = c1o4 * (c8o1*(-c2o1+omCoarse)*(c1o1+c2o1*omCoarse)/(-c8o1-c14o1*omCoarse+c7o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(c1o1+c2o1*omFine)/(-c8o1-c14o1*omFine+c7o1*omFine*omFine)) * mxxzPyyzMean; + mxxzMyyz = c1o4 * (c8o1*(-c2o1+omCoarse)*(-c7o1+c4o1*omCoarse)/(c56o1-c50o1*omCoarse+c9o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(-c7o1+c4o1*omFine)/(c56o1-c50o1*omFine+c9o1*omFine*omFine)) * mxxzMyyzMean; + mxyyPxzz = c1o4 * (c8o1*(-c2o1+omCoarse)*(c1o1+c2o1*omCoarse)/(-c8o1-c14o1*omCoarse+c7o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(c1o1+c2o1*omFine)/(-c8o1-c14o1*omFine+c7o1*omFine*omFine)) * mxyyPxzzMean; + mxyyMxzz = c1o4 * (c8o1*(-c2o1+omCoarse)*(-c7o1+c4o1*omCoarse)/(c56o1-c50o1*omCoarse+c9o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(-c7o1+c4o1*omFine)/(c56o1-c50o1*omFine+c9o1*omFine*omFine)) * mxyyMxzzMean; + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////// + //index + kb = kzero; + kbw = kw; + kbs = ks; + kbsw = ksw; + kzero= k0w; + kw = neighborFX[k0w]; + ks = k0sw; + ksw = neighborFX[k0sw]; + //////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + feF[kzero] = mfcbb; + fwF[kw] = mfabb; + fnF[kzero] = mfbcb; + fsF[ks] = mfbab; + ftF[kzero] = mfbbc; + fbF[kb] = mfbba; + fneF[kzero] = mfccb; + fswF[ksw] = mfaab; + fseF[ks] = mfcab; + fnwF[kw] = mfacb; + fteF[kzero] = mfcbc; + fbwF[kbw] = mfaba; + fbeF[kb] = mfcba; + ftwF[kw] = mfabc; + ftnF[kzero] = mfbcc; + fbsF[kbs] = mfbaa; + fbnF[kb] = mfbca; + ftsF[ks] = mfbac; + fzeroF[kzero] = mfbbb; + ftneF[kzero] = mfccc; + ftseF[ks] = mfcac; + fbneF[kb] = mfcca; + fbseF[kbs] = mfcaa; + ftnwF[kw] = mfacc; + ftswF[ksw] = mfaac; + fbnwF[kbw] = mfaca; + fbswF[kbsw] = mfaaa; + //////////////////////////////////////////////////////////////////////////////////// + + + //reset + mfcbb = c0o1; + mfabb = c0o1; + mfbcb = c0o1; + mfbab = c0o1; + mfbbc = c0o1; + mfbba = c0o1; + mfccb = c0o1; + mfaab = c0o1; + mfcab = c0o1; + mfacb = c0o1; + mfcbc = c0o1; + mfaba = c0o1; + mfcba = c0o1; + mfabc = c0o1; + mfbcc = c0o1; + mfbaa = c0o1; + mfbca = c0o1; + mfbac = c0o1; + mfbbb = c0o1; + mfccc = c0o1; + mfaac = c0o1; + mfcac = c0o1; + mfacc = c0o1; + mfcca = c0o1; + mfaaa = c0o1; + mfcaa = c0o1; + mfaca = c0o1; + + + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position NWB -0.25f, 0.25f, -0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = -c1o4; + y = c1o4; + z = -c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho = c9o64*drho_NEB+c3o64*drho_NET+c27o64*drho_NWB+c9o64*drho_NWT+c3o64*drho_SEB+c1o64*drho_SET+c9o64*drho_SWB+c3o64*drho_SWT; + //press = press_NWT * (c9o64 + c3o16 * mxoff - c3o16 * myoff - c9o16 * mzoff) + + // press_NET * (c3o64 - c3o16 * mxoff - c1o16 * myoff - c3o16 * mzoff) + + // press_SWT * (c3o64 + c1o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + + // press_SET * (c1o64 - c1o16 * mxoff + c1o16 * myoff - c1o16 * mzoff) + + // press_SEB * (c3o64 - c3o16 * mxoff + c3o16 * myoff + c1o16 * mzoff) + + // press_NEB * (c9o64 - c9o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + + // press_SWB * (c9o64 + c3o16 * mxoff + c9o16 * myoff + c3o16 * mzoff) + + // press_NWB * (c27o64 + c9o16 * mxoff - c9o16 * myoff + c9o16 * mzoff); + //drho = drho_NWT * (c9o64 + c3o16 * xoff - c3o16 * yoff - c9o16 * zoff) + + // drho_NET * (c3o64 - c3o16 * xoff - c1o16 * yoff - c3o16 * zoff) + + // drho_SWT * (c3o64 + c1o16 * xoff + c3o16 * yoff - c3o16 * zoff) + + // drho_SET * (c1o64 - c1o16 * xoff + c1o16 * yoff - c1o16 * zoff) + + // drho_SEB * (c3o64 - c3o16 * xoff + c3o16 * yoff + c1o16 * zoff) + + // drho_NEB * (c9o64 - c9o16 * xoff - c3o16 * yoff + c3o16 * zoff) + + // drho_SWB * (c9o64 + c3o16 * xoff + c9o16 * yoff + c3o16 * zoff) + + // drho_NWB * (c27o64 + c9o16 * xoff - c9o16 * yoff + c9o16 * zoff); + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz + c3o1*x*x*LapRho ; + vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); + vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); + vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); + //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); + //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); + //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1; + //oMdrho = one - mfaaa; + + //2.f + // linear combinations + mxxPyyPzz = mfaaa; + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + mfbbb = c1o4 * (c24o1*(-c2o1+omCoarse)*(-c2o1-c7o1*omCoarse+c3o1*omCoarse*omCoarse)/(c48o1+c152o1*omCoarse-c130o1*omCoarse*omCoarse+c29o1*omCoarse*omCoarse*omCoarse)) + / (c24o1*(-c2o1+omFine)*(-c2o1-c7o1*omFine+c3o1*omFine*omFine)/(c48o1+c152o1*omFine-c130o1*omFine*omFine+c29o1*omFine*omFine*omFine)) * mfbbbMean; + mxxyPyzz = c1o4 * (c8o1*(-c2o1+omCoarse)*(c1o1+c2o1*omCoarse)/(-c8o1-c14o1*omCoarse+c7o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(c1o1+c2o1*omFine)/(-c8o1-c14o1*omFine+c7o1*omFine*omFine)) * mxxyPyzzMean; + mxxyMyzz = c1o4 * (c8o1*(-c2o1+omCoarse)*(-c7o1+c4o1*omCoarse)/(c56o1-c50o1*omCoarse+c9o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(-c7o1+c4o1*omFine)/(c56o1-c50o1*omFine+c9o1*omFine*omFine)) * mxxyMyzzMean; + mxxzPyyz = c1o4 * (c8o1*(-c2o1+omCoarse)*(c1o1+c2o1*omCoarse)/(-c8o1-c14o1*omCoarse+c7o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(c1o1+c2o1*omFine)/(-c8o1-c14o1*omFine+c7o1*omFine*omFine)) * mxxzPyyzMean; + mxxzMyyz = c1o4 * (c8o1*(-c2o1+omCoarse)*(-c7o1+c4o1*omCoarse)/(c56o1-c50o1*omCoarse+c9o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(-c7o1+c4o1*omFine)/(c56o1-c50o1*omFine+c9o1*omFine*omFine)) * mxxzMyyzMean; + mxyyPxzz = c1o4 * (c8o1*(-c2o1+omCoarse)*(c1o1+c2o1*omCoarse)/(-c8o1-c14o1*omCoarse+c7o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(c1o1+c2o1*omFine)/(-c8o1-c14o1*omFine+c7o1*omFine*omFine)) * mxyyPxzzMean; + mxyyMxzz = c1o4 * (c8o1*(-c2o1+omCoarse)*(-c7o1+c4o1*omCoarse)/(c56o1-c50o1*omCoarse+c9o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(-c7o1+c4o1*omFine)/(c56o1-c50o1*omFine+c9o1*omFine*omFine)) * mxyyMxzzMean; + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////// + //index 0 + k0zero= k0s; + k0w = k0sw; + k0s = neighborFY[k0s]; + k0b = k0bs; + k0sw = neighborFY[k0sw]; + k0bw = k0bsw; + k0bs = neighborFY[k0bs]; + k0bsw = neighborFY[k0bsw]; + ////////////////////////////////////////////////////////////////////////// + //index + kzero= k0zero; + kw = k0w; + ks = k0s; + kb = k0b; + ksw = k0sw; + kbw = k0bw; + kbs = k0bs; + kbsw = k0bsw; + //////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + feF[kzero] = mfcbb; + fwF[kw] = mfabb; + fnF[kzero] = mfbcb; + fsF[ks] = mfbab; + ftF[kzero] = mfbbc; + fbF[kb] = mfbba; + fneF[kzero] = mfccb; + fswF[ksw] = mfaab; + fseF[ks] = mfcab; + fnwF[kw] = mfacb; + fteF[kzero] = mfcbc; + fbwF[kbw] = mfaba; + fbeF[kb] = mfcba; + ftwF[kw] = mfabc; + ftnF[kzero] = mfbcc; + fbsF[kbs] = mfbaa; + fbnF[kb] = mfbca; + ftsF[ks] = mfbac; + fzeroF[kzero] = mfbbb; + ftneF[kzero] = mfccc; + ftseF[ks] = mfcac; + fbneF[kb] = mfcca; + fbseF[kbs] = mfcaa; + ftnwF[kw] = mfacc; + ftswF[ksw] = mfaac; + fbnwF[kbw] = mfaca; + fbswF[kbsw] = mfaaa; + //////////////////////////////////////////////////////////////////////////////////// + + + //reset + mfcbb = c0o1; + mfabb = c0o1; + mfbcb = c0o1; + mfbab = c0o1; + mfbbc = c0o1; + mfbba = c0o1; + mfccb = c0o1; + mfaab = c0o1; + mfcab = c0o1; + mfacb = c0o1; + mfcbc = c0o1; + mfaba = c0o1; + mfcba = c0o1; + mfabc = c0o1; + mfbcc = c0o1; + mfbaa = c0o1; + mfbca = c0o1; + mfbac = c0o1; + mfbbb = c0o1; + mfccc = c0o1; + mfaac = c0o1; + mfcac = c0o1; + mfacc = c0o1; + mfcca = c0o1; + mfaaa = c0o1; + mfcaa = c0o1; + mfaca = c0o1; + + + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position NWT -0.25f, 0.25f, 0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = -c1o4; + y = c1o4; + z = c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho = c3o64*drho_NEB+c9o64*drho_NET+c9o64*drho_NWB+c27o64*drho_NWT+c1o64*drho_SEB+c3o64*drho_SET+c3o64*drho_SWB+c9o64*drho_SWT; + //press = press_NWT * (c27o64 + c9o16 * mxoff - c9o16 * myoff - c9o16 * mzoff) + + // press_NET * (c9o64 - c9o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + + // press_SWT * (c9o64 + c3o16 * mxoff + c9o16 * myoff - c3o16 * mzoff) + + // press_SET * (c3o64 - c3o16 * mxoff + c3o16 * myoff - c1o16 * mzoff) + + // press_SEB * (c1o64 - c1o16 * mxoff + c1o16 * myoff + c1o16 * mzoff) + + // press_NEB * (c3o64 - c3o16 * mxoff - c1o16 * myoff + c3o16 * mzoff) + + // press_SWB * (c3o64 + c1o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + + // press_NWB * (c9o64 + c3o16 * mxoff - c3o16 * myoff + c9o16 * mzoff); + //drho = drho_NWT * (c27o64 + c9o16 * xoff - c9o16 * yoff - c9o16 * zoff) + + // drho_NET * (c9o64 - c9o16 * xoff - c3o16 * yoff - c3o16 * zoff) + + // drho_SWT * (c9o64 + c3o16 * xoff + c9o16 * yoff - c3o16 * zoff) + + // drho_SET * (c3o64 - c3o16 * xoff + c3o16 * yoff - c1o16 * zoff) + + // drho_SEB * (c1o64 - c1o16 * xoff + c1o16 * yoff + c1o16 * zoff) + + // drho_NEB * (c3o64 - c3o16 * xoff - c1o16 * yoff + c3o16 * zoff) + + // drho_SWB * (c3o64 + c1o16 * xoff + c3o16 * yoff + c3o16 * zoff) + + // drho_NWB * (c9o64 + c3o16 * xoff - c3o16 * yoff + c9o16 * zoff); + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz + c3o1*x*x*LapRho ; + vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); + vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); + vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); + //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); + //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); + //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1; + //oMdrho = one - mfaaa; + + //2.f + // linear combinations + mxxPyyPzz = mfaaa; + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + mfbbb = c1o4 * (c24o1*(-c2o1+omCoarse)*(-c2o1-c7o1*omCoarse+c3o1*omCoarse*omCoarse)/(c48o1+c152o1*omCoarse-c130o1*omCoarse*omCoarse+c29o1*omCoarse*omCoarse*omCoarse)) + / (c24o1*(-c2o1+omFine)*(-c2o1-c7o1*omFine+c3o1*omFine*omFine)/(c48o1+c152o1*omFine-c130o1*omFine*omFine+c29o1*omFine*omFine*omFine)) * mfbbbMean; + mxxyPyzz = c1o4 * (c8o1*(-c2o1+omCoarse)*(c1o1+c2o1*omCoarse)/(-c8o1-c14o1*omCoarse+c7o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(c1o1+c2o1*omFine)/(-c8o1-c14o1*omFine+c7o1*omFine*omFine)) * mxxyPyzzMean; + mxxyMyzz = c1o4 * (c8o1*(-c2o1+omCoarse)*(-c7o1+c4o1*omCoarse)/(c56o1-c50o1*omCoarse+c9o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(-c7o1+c4o1*omFine)/(c56o1-c50o1*omFine+c9o1*omFine*omFine)) * mxxyMyzzMean; + mxxzPyyz = c1o4 * (c8o1*(-c2o1+omCoarse)*(c1o1+c2o1*omCoarse)/(-c8o1-c14o1*omCoarse+c7o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(c1o1+c2o1*omFine)/(-c8o1-c14o1*omFine+c7o1*omFine*omFine)) * mxxzPyyzMean; + mxxzMyyz = c1o4 * (c8o1*(-c2o1+omCoarse)*(-c7o1+c4o1*omCoarse)/(c56o1-c50o1*omCoarse+c9o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(-c7o1+c4o1*omFine)/(c56o1-c50o1*omFine+c9o1*omFine*omFine)) * mxxzMyyzMean; + mxyyPxzz = c1o4 * (c8o1*(-c2o1+omCoarse)*(c1o1+c2o1*omCoarse)/(-c8o1-c14o1*omCoarse+c7o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(c1o1+c2o1*omFine)/(-c8o1-c14o1*omFine+c7o1*omFine*omFine)) * mxyyPxzzMean; + mxyyMxzz = c1o4 * (c8o1*(-c2o1+omCoarse)*(-c7o1+c4o1*omCoarse)/(c56o1-c50o1*omCoarse+c9o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(-c7o1+c4o1*omFine)/(c56o1-c50o1*omFine+c9o1*omFine*omFine)) * mxyyMxzzMean; + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////// + //index + kzero= kb; + kw = kbw; + ks = kbs; + kb = neighborFZ[kb]; + ksw = kbsw; + kbw = neighborFZ[kbw]; + kbs = neighborFZ[kbs]; + kbsw = neighborFZ[kbsw]; + //////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + feF[kzero] = mfcbb; + fwF[kw] = mfabb; + fnF[kzero] = mfbcb; + fsF[ks] = mfbab; + ftF[kzero] = mfbbc; + fbF[kb] = mfbba; + fneF[kzero] = mfccb; + fswF[ksw] = mfaab; + fseF[ks] = mfcab; + fnwF[kw] = mfacb; + fteF[kzero] = mfcbc; + fbwF[kbw] = mfaba; + fbeF[kb] = mfcba; + ftwF[kw] = mfabc; + ftnF[kzero] = mfbcc; + fbsF[kbs] = mfbaa; + fbnF[kb] = mfbca; + ftsF[ks] = mfbac; + fzeroF[kzero] = mfbbb; + ftneF[kzero] = mfccc; + ftseF[ks] = mfcac; + fbneF[kb] = mfcca; + fbseF[kbs] = mfcaa; + ftnwF[kw] = mfacc; + ftswF[ksw] = mfaac; + fbnwF[kbw] = mfaca; + fbswF[kbsw] = mfaaa; + //////////////////////////////////////////////////////////////////////////////////// + + + //reset + mfcbb = c0o1; + mfabb = c0o1; + mfbcb = c0o1; + mfbab = c0o1; + mfbbc = c0o1; + mfbba = c0o1; + mfccb = c0o1; + mfaab = c0o1; + mfcab = c0o1; + mfacb = c0o1; + mfcbc = c0o1; + mfaba = c0o1; + mfcba = c0o1; + mfabc = c0o1; + mfbcc = c0o1; + mfbaa = c0o1; + mfbca = c0o1; + mfbac = c0o1; + mfbbb = c0o1; + mfccc = c0o1; + mfaac = c0o1; + mfcac = c0o1; + mfacc = c0o1; + mfcca = c0o1; + mfaaa = c0o1; + mfcaa = c0o1; + mfaca = c0o1; + + + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position NET 0.25f, 0.25f, 0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = c1o4; + y = c1o4; + z = c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho = c9o64*drho_NEB+c27o64*drho_NET+c3o64*drho_NWB+c9o64*drho_NWT+c3o64*drho_SEB+c9o64*drho_SET+c1o64*drho_SWB+c3o64*drho_SWT; + //press = press_NET * (c27o64 - c9o16 * mxoff - c9o16 * myoff - c9o16 * mzoff) + + // press_NWT * (c9o64 + c9o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + + // press_SET * (c9o64 - c3o16 * mxoff + c9o16 * myoff - c3o16 * mzoff) + + // press_SWT * (c3o64 + c3o16 * mxoff + c3o16 * myoff - c1o16 * mzoff) + + // press_SWB * (c1o64 + c1o16 * mxoff + c1o16 * myoff + c1o16 * mzoff) + + // press_NWB * (c3o64 + c3o16 * mxoff - c1o16 * myoff + c3o16 * mzoff) + + // press_SEB * (c3o64 - c1o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + + // press_NEB * (c9o64 - c3o16 * mxoff - c3o16 * myoff + c9o16 * mzoff); + //drho = drho_NET * (c27o64 - c9o16 * xoff - c9o16 * yoff - c9o16 * zoff) + + // drho_NWT * (c9o64 + c9o16 * xoff - c3o16 * yoff - c3o16 * zoff) + + // drho_SET * (c9o64 - c3o16 * xoff + c9o16 * yoff - c3o16 * zoff) + + // drho_SWT * (c3o64 + c3o16 * xoff + c3o16 * yoff - c1o16 * zoff) + + // drho_SWB * (c1o64 + c1o16 * xoff + c1o16 * yoff + c1o16 * zoff) + + // drho_NWB * (c3o64 + c3o16 * xoff - c1o16 * yoff + c3o16 * zoff) + + // drho_SEB * (c3o64 - c1o16 * xoff + c3o16 * yoff + c3o16 * zoff) + + // drho_NEB * (c9o64 - c3o16 * xoff - c3o16 * yoff + c9o16 * zoff); + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz + c3o1*x*x*LapRho ; + vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); + vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); + vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); + //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); + //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); + //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1; + //oMdrho = one - mfaaa; + + //2.f + // linear combinations + mxxPyyPzz = mfaaa; + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + mfbbb = c1o4 * (c24o1*(-c2o1+omCoarse)*(-c2o1-c7o1*omCoarse+c3o1*omCoarse*omCoarse)/(c48o1+c152o1*omCoarse-c130o1*omCoarse*omCoarse+c29o1*omCoarse*omCoarse*omCoarse)) + / (c24o1*(-c2o1+omFine)*(-c2o1-c7o1*omFine+c3o1*omFine*omFine)/(c48o1+c152o1*omFine-c130o1*omFine*omFine+c29o1*omFine*omFine*omFine)) * mfbbbMean; + mxxyPyzz = c1o4 * (c8o1*(-c2o1+omCoarse)*(c1o1+c2o1*omCoarse)/(-c8o1-c14o1*omCoarse+c7o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(c1o1+c2o1*omFine)/(-c8o1-c14o1*omFine+c7o1*omFine*omFine)) * mxxyPyzzMean; + mxxyMyzz = c1o4 * (c8o1*(-c2o1+omCoarse)*(-c7o1+c4o1*omCoarse)/(c56o1-c50o1*omCoarse+c9o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(-c7o1+c4o1*omFine)/(c56o1-c50o1*omFine+c9o1*omFine*omFine)) * mxxyMyzzMean; + mxxzPyyz = c1o4 * (c8o1*(-c2o1+omCoarse)*(c1o1+c2o1*omCoarse)/(-c8o1-c14o1*omCoarse+c7o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(c1o1+c2o1*omFine)/(-c8o1-c14o1*omFine+c7o1*omFine*omFine)) * mxxzPyyzMean; + mxxzMyyz = c1o4 * (c8o1*(-c2o1+omCoarse)*(-c7o1+c4o1*omCoarse)/(c56o1-c50o1*omCoarse+c9o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(-c7o1+c4o1*omFine)/(c56o1-c50o1*omFine+c9o1*omFine*omFine)) * mxxzMyyzMean; + mxyyPxzz = c1o4 * (c8o1*(-c2o1+omCoarse)*(c1o1+c2o1*omCoarse)/(-c8o1-c14o1*omCoarse+c7o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(c1o1+c2o1*omFine)/(-c8o1-c14o1*omFine+c7o1*omFine*omFine)) * mxyyPxzzMean; + mxyyMxzz = c1o4 * (c8o1*(-c2o1+omCoarse)*(-c7o1+c4o1*omCoarse)/(c56o1-c50o1*omCoarse+c9o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(-c7o1+c4o1*omFine)/(c56o1-c50o1*omFine+c9o1*omFine*omFine)) * mxyyMxzzMean; + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////// + //index + kzero= kw; + kw = neighborFX[kw]; + ks = ksw; + kb = kbw; + ksw = neighborFX[ksw]; + kbw = neighborFX[kbw]; + kbs = kbsw; + kbsw = neighborFX[kbsw]; + //////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + feF[kzero] = mfcbb; + fwF[kw] = mfabb; + fnF[kzero] = mfbcb; + fsF[ks] = mfbab; + ftF[kzero] = mfbbc; + fbF[kb] = mfbba; + fneF[kzero] = mfccb; + fswF[ksw] = mfaab; + fseF[ks] = mfcab; + fnwF[kw] = mfacb; + fteF[kzero] = mfcbc; + fbwF[kbw] = mfaba; + fbeF[kb] = mfcba; + ftwF[kw] = mfabc; + ftnF[kzero] = mfbcc; + fbsF[kbs] = mfbaa; + fbnF[kb] = mfbca; + ftsF[ks] = mfbac; + fzeroF[kzero] = mfbbb; + ftneF[kzero] = mfccc; + ftseF[ks] = mfcac; + fbneF[kb] = mfcca; + fbseF[kbs] = mfcaa; + ftnwF[kw] = mfacc; + ftswF[ksw] = mfaac; + fbnwF[kbw] = mfaca; + fbswF[kbsw] = mfaaa; + //////////////////////////////////////////////////////////////////////////////////// + + + //reset + mfcbb = c0o1; + mfabb = c0o1; + mfbcb = c0o1; + mfbab = c0o1; + mfbbc = c0o1; + mfbba = c0o1; + mfccb = c0o1; + mfaab = c0o1; + mfcab = c0o1; + mfacb = c0o1; + mfcbc = c0o1; + mfaba = c0o1; + mfcba = c0o1; + mfabc = c0o1; + mfbcc = c0o1; + mfbaa = c0o1; + mfbca = c0o1; + mfbac = c0o1; + mfbbb = c0o1; + mfccc = c0o1; + mfaac = c0o1; + mfcac = c0o1; + mfacc = c0o1; + mfcca = c0o1; + mfaaa = c0o1; + mfcaa = c0o1; + mfaca = c0o1; + + + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position NEB 0.25f, 0.25f, -0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = c1o4; + y = c1o4; + z = -c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho = c27o64*drho_NEB+c9o64*drho_NET+c9o64*drho_NWB+c3o64*drho_NWT+c9o64*drho_SEB+c3o64*drho_SET+c3o64*drho_SWB+c1o64*drho_SWT; + //press = press_NET * (c9o64 - c3o16 * mxoff - c3o16 * myoff - c9o16 * mzoff) + + // press_NWT * (c3o64 + c3o16 * mxoff - c1o16 * myoff - c3o16 * mzoff) + + // press_SET * (c3o64 - c1o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + + // press_SWT * (c1o64 + c1o16 * mxoff + c1o16 * myoff - c1o16 * mzoff) + + // press_SWB * (c3o64 + c3o16 * mxoff + c3o16 * myoff + c1o16 * mzoff) + + // press_NWB * (c9o64 + c9o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + + // press_SEB * (c9o64 - c3o16 * mxoff + c9o16 * myoff + c3o16 * mzoff) + + // press_NEB * (c27o64 - c9o16 * mxoff - c9o16 * myoff + c9o16 * mzoff); + //drho = drho_NET * (c9o64 - c3o16 * xoff - c3o16 * yoff - c9o16 * zoff) + + // drho_NWT * (c3o64 + c3o16 * xoff - c1o16 * yoff - c3o16 * zoff) + + // drho_SET * (c3o64 - c1o16 * xoff + c3o16 * yoff - c3o16 * zoff) + + // drho_SWT * (c1o64 + c1o16 * xoff + c1o16 * yoff - c1o16 * zoff) + + // drho_SWB * (c3o64 + c3o16 * xoff + c3o16 * yoff + c1o16 * zoff) + + // drho_NWB * (c9o64 + c9o16 * xoff - c3o16 * yoff + c3o16 * zoff) + + // drho_SEB * (c9o64 - c3o16 * xoff + c9o16 * yoff + c3o16 * zoff) + + // drho_NEB * (c27o64 - c9o16 * xoff - c9o16 * yoff + c9o16 * zoff); + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz + c3o1*x*x*LapRho ; + vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); + vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); + vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); + //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); + //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); + //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1; + //oMdrho = one - mfaaa; + + //2.f + // linear combinations + mxxPyyPzz = mfaaa; + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + mfbbb = c1o4 * (c24o1*(-c2o1+omCoarse)*(-c2o1-c7o1*omCoarse+c3o1*omCoarse*omCoarse)/(c48o1+c152o1*omCoarse-c130o1*omCoarse*omCoarse+c29o1*omCoarse*omCoarse*omCoarse)) + / (c24o1*(-c2o1+omFine)*(-c2o1-c7o1*omFine+c3o1*omFine*omFine)/(c48o1+c152o1*omFine-c130o1*omFine*omFine+c29o1*omFine*omFine*omFine)) * mfbbbMean; + mxxyPyzz = c1o4 * (c8o1*(-c2o1+omCoarse)*(c1o1+c2o1*omCoarse)/(-c8o1-c14o1*omCoarse+c7o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(c1o1+c2o1*omFine)/(-c8o1-c14o1*omFine+c7o1*omFine*omFine)) * mxxyPyzzMean; + mxxyMyzz = c1o4 * (c8o1*(-c2o1+omCoarse)*(-c7o1+c4o1*omCoarse)/(c56o1-c50o1*omCoarse+c9o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(-c7o1+c4o1*omFine)/(c56o1-c50o1*omFine+c9o1*omFine*omFine)) * mxxyMyzzMean; + mxxzPyyz = c1o4 * (c8o1*(-c2o1+omCoarse)*(c1o1+c2o1*omCoarse)/(-c8o1-c14o1*omCoarse+c7o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(c1o1+c2o1*omFine)/(-c8o1-c14o1*omFine+c7o1*omFine*omFine)) * mxxzPyyzMean; + mxxzMyyz = c1o4 * (c8o1*(-c2o1+omCoarse)*(-c7o1+c4o1*omCoarse)/(c56o1-c50o1*omCoarse+c9o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(-c7o1+c4o1*omFine)/(c56o1-c50o1*omFine+c9o1*omFine*omFine)) * mxxzMyyzMean; + mxyyPxzz = c1o4 * (c8o1*(-c2o1+omCoarse)*(c1o1+c2o1*omCoarse)/(-c8o1-c14o1*omCoarse+c7o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(c1o1+c2o1*omFine)/(-c8o1-c14o1*omFine+c7o1*omFine*omFine)) * mxyyPxzzMean; + mxyyMxzz = c1o4 * (c8o1*(-c2o1+omCoarse)*(-c7o1+c4o1*omCoarse)/(c56o1-c50o1*omCoarse+c9o1*omCoarse*omCoarse)) / (c8o1*(-c2o1+omFine)*(-c7o1+c4o1*omFine)/(c56o1-c50o1*omFine+c9o1*omFine*omFine)) * mxyyMxzzMean; + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////// + //index + kb = kzero; + kbw = kw; + kbs = ks; + kbsw = ksw; + kzero= k0w; + kw = neighborFX[k0w]; + ks = k0sw; + ksw = neighborFX[k0sw]; + //////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + feF[kzero] = mfcbb; + fwF[kw] = mfabb; + fnF[kzero] = mfbcb; + fsF[ks] = mfbab; + ftF[kzero] = mfbbc; + fbF[kb] = mfbba; + fneF[kzero] = mfccb; + fswF[ksw] = mfaab; + fseF[ks] = mfcab; + fnwF[kw] = mfacb; + fteF[kzero] = mfcbc; + fbwF[kbw] = mfaba; + fbeF[kb] = mfcba; + ftwF[kw] = mfabc; + ftnF[kzero] = mfbcc; + fbsF[kbs] = mfbaa; + fbnF[kb] = mfbca; + ftsF[ks] = mfbac; + fzeroF[kzero] = mfbbb; + ftneF[kzero] = mfccc; + ftseF[ks] = mfcac; + fbneF[kb] = mfcca; + fbseF[kbs] = mfcaa; + ftnwF[kw] = mfacc; + ftswF[ksw] = mfaac; + fbnwF[kbw] = mfaca; + fbswF[kbsw] = mfaaa; + //////////////////////////////////////////////////////////////////////////////////// + } +} +////////////////////////////////////////////////////////////////////////// + + + + + + @@ -10967,27 +10967,27 @@ __global__ void scaleCF_AA2016_comp_27(real* DC, ////////////////////////////////////////////////////////////////////////// __global__ void scaleCF_RhoSq_3rdMom_comp_27(real* DC, - real* DF, - unsigned int* neighborCX, - unsigned int* neighborCY, - unsigned int* neighborCZ, - unsigned int* neighborFX, - unsigned int* neighborFY, - unsigned int* neighborFZ, - unsigned long long numberOfLBnodesCoarse, - unsigned long long numberOfLBnodesFine, - bool isEvenTimestep, - unsigned int* posCSWB, - unsigned int* posFSWB, - unsigned int kCF, - real omCoarse, - real omFine, - real nu, - unsigned int nxC, - unsigned int nyC, - unsigned int nxF, - unsigned int nyF, - ICellNeigh offCF) + real* DF, + unsigned int* neighborCX, + unsigned int* neighborCY, + unsigned int* neighborCZ, + unsigned int* neighborFX, + unsigned int* neighborFY, + unsigned int* neighborFZ, + unsigned long long numberOfLBnodesCoarse, + unsigned long long numberOfLBnodesFine, + bool isEvenTimestep, + unsigned int* posCSWB, + unsigned int* posFSWB, + unsigned int kCF, + real omCoarse, + real omFine, + real nu, + unsigned int nxC, + unsigned int nyC, + unsigned int nxF, + unsigned int nyF, + ICellNeigh offCF) { real *feF, *fwF, *fnF, *fsF, *ftF, *fbF, *fneF, *fswF, *fseF, *fnwF, *fteF, *fbwF, *fbeF, *ftwF, *ftnF, *fbsF, *fbnF, *ftsF, *fzeroF, *ftneF, *ftswF, *ftseF, *ftnwF, *fbneF, *fbswF, *fbseF, *fbnwF; @@ -11127,26 +11127,26 @@ __global__ void scaleCF_RhoSq_3rdMom_comp_27(real* DC, real a0, ax, ay, az, axx, ayy, azz, axy, axz, ayz, b0, bx, by, bz, bxx, byy, bzz, bxy, bxz, byz, c0, cx, cy, cz, cxx, cyy, czz, cxy, cxz, cyz, axyz, bxyz, cxyz; real d0, dx, dy, dz, dxy, dxz, dyz, dxyz; real x,y,z; - ////////////////////////////////////////////////////////////////////////////////////// - real mfcbb, mfabb, mfbcb, mfbab, mfbbc, mfbba, mfccb, mfaab, mfcab, mfacb, mfcbc, mfaba, mfcba, mfabc, mfbcc, mfbaa, mfbca, mfbac, mfbbb, mfccc, mfaac, mfcac, mfacc, mfcca, mfaaa, mfcaa, mfaca; - //real wadjust; - //real qudricLimitP = 0.01f;// * 0.0001f; - //real qudricLimitM = 0.01f;// * 0.0001f; - //real qudricLimitD = 0.01f;// * 0.001f; - //real omega = omCoarse; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real m0, m1, m2, vvx, vvy, vvz, vx2, vy2, vz2, oMdrho; - real mxxPyyPzz, mxxMyy, mxxMzz, mxxyPyzz, mxxyMyzz, mxxzPyyz, mxxzMyyz, mxyyPxzz, mxyyMxzz; - real NeqOn = c1o1; - real drho, rho; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //real OxxPyyPzz; - //real OxyyPxzz; - //real OxyyMxzz; - //real Oxyz ; - //real O4, O5, O6; - //real CUMcbb, CUMbcb, CUMbbc, CUMcca, CUMcac, CUMacc, CUMbcc, CUMcbc, CUMccb, CUMccc; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////////////////// + real mfcbb, mfabb, mfbcb, mfbab, mfbbc, mfbba, mfccb, mfaab, mfcab, mfacb, mfcbc, mfaba, mfcba, mfabc, mfbcc, mfbaa, mfbca, mfbac, mfbbb, mfccc, mfaac, mfcac, mfacc, mfcca, mfaaa, mfcaa, mfaca; + //real wadjust; + //real qudricLimitP = 0.01f;// * 0.0001f; + //real qudricLimitM = 0.01f;// * 0.0001f; + //real qudricLimitD = 0.01f;// * 0.001f; + //real omega = omCoarse; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + real m0, m1, m2, vvx, vvy, vvz, vx2, vy2, vz2, oMdrho; + real mxxPyyPzz, mxxMyy, mxxMzz, mxxyPyzz, mxxyMyzz, mxxzPyyz, mxxzMyyz, mxyyPxzz, mxyyMxzz; + real NeqOn = c1o1; + real drho, rho; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //real OxxPyyPzz; + //real OxyyPxzz; + //real OxyyMxzz; + //real Oxyz ; + //real O4, O5, O6; + //real CUMcbb, CUMbcb, CUMbbc, CUMcca, CUMcac, CUMacc, CUMbcc, CUMcbc, CUMccb, CUMccc; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -11212,8 +11212,8 @@ __global__ void scaleCF_RhoSq_3rdMom_comp_27(real* DC, drho_SWB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; vx1_SWB = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_SWB); - vx2_SWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SWB); - vx3_SWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SWB); + vx2_SWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SWB); + vx3_SWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SWB); kxyFromfcNEQ_SWB = -c3o1*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_SWB) - ((vx1_SWB*vx2_SWB))); kyzFromfcNEQ_SWB = -c3o1*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_SWB) - ((vx2_SWB*vx3_SWB))); @@ -11221,306 +11221,306 @@ __global__ void scaleCF_RhoSq_3rdMom_comp_27(real* DC, kxxMyyFromfcNEQ_SWB = -c3o2*omegaS *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_SWB) - ((vx1_SWB*vx1_SWB-vx2_SWB*vx2_SWB))); kxxMzzFromfcNEQ_SWB = -c3o2*omegaS *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_SWB) - ((vx1_SWB*vx1_SWB-vx3_SWB*vx3_SWB))); - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - mfcbb = f_E ; - mfabb = f_W ; - mfbcb = f_N ; - mfbab = f_S ; - mfbbc = f_T ; - mfbba = f_B ; - mfccb = f_NE ; - mfaab = f_SW ; - mfcab = f_SE ; - mfacb = f_NW ; - mfcbc = f_TE ; - mfaba = f_BW ; - mfcba = f_BE ; - mfabc = f_TW ; - mfbcc = f_TN ; - mfbaa = f_BS ; - mfbca = f_BN ; - mfbac = f_TS ; - mfbbb = f_ZERO; - mfccc = f_TNE ; - mfaac = f_TSW ; - mfcac = f_TSE ; - mfacc = f_TNW ; - mfcca = f_BNE ; - mfaaa = f_BSW ; - mfcaa = f_BSE ; - mfaca = f_BNW ; - //////////////////////////////////////////////////////////////////////////////////// - drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + - (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + - ((mfabb+mfcbb) + (mfbab+mfbcb)) + (mfbba+mfbbc)) + mfbbb; - - rho = c1o1+drho; - //////////////////////////////////////////////////////////////////////////////////// - vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + - (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + - (mfcbb-mfabb)) / rho; - vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + - (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + - (mfbcb-mfbab)) / rho; - vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + - (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + - (mfbbc-mfbba)) / rho; - //////////////////////////////////////////////////////////////////////////////////// - //fast - oMdrho = c1o1; // comp special - vx2=vvx*vvx; - vy2=vvy*vvy; - vz2=vvz*vvz; - //////////////////////////////////////////////////////////////////////////////////// - //Hin - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m2 = mfaaa + mfaac; - m1 = mfaac - mfaaa; - m0 = m2 + mfaab; - mfaaa = m0; - m0 += c1o36 * oMdrho; - mfaab = m1 - m0 * vvz; - mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfabc; - m1 = mfabc - mfaba; - m0 = m2 + mfabb; - mfaba = m0; - m0 += c1o9 * oMdrho; - mfabb = m1 - m0 * vvz; - mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfacc; - m1 = mfacc - mfaca; - m0 = m2 + mfacb; - mfaca = m0; - m0 += c1o36 * oMdrho; - mfacb = m1 - m0 * vvz; - mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbac; - m1 = mfbac - mfbaa; - m0 = m2 + mfbab; - mfbaa = m0; - m0 += c1o9 * oMdrho; - mfbab = m1 - m0 * vvz; - mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbba + mfbbc; - m1 = mfbbc - mfbba; - m0 = m2 + mfbbb; - mfbba = m0; - m0 += c4o9 * oMdrho; - mfbbb = m1 - m0 * vvz; - mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbca + mfbcc; - m1 = mfbcc - mfbca; - m0 = m2 + mfbcb; - mfbca = m0; - m0 += c1o9 * oMdrho; - mfbcb = m1 - m0 * vvz; - mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcac; - m1 = mfcac - mfcaa; - m0 = m2 + mfcab; - mfcaa = m0; - m0 += c1o36 * oMdrho; - mfcab = m1 - m0 * vvz; - mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcba + mfcbc; - m1 = mfcbc - mfcba; - m0 = m2 + mfcbb; - mfcba = m0; - m0 += c1o9 * oMdrho; - mfcbb = m1 - m0 * vvz; - mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcca + mfccc; - m1 = mfccc - mfcca; - m0 = m2 + mfccb; - mfcca = m0; - m0 += c1o36 * oMdrho; - mfccb = m1 - m0 * vvz; - mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m2 = mfaaa + mfaca; - m1 = mfaca - mfaaa; - m0 = m2 + mfaba; - mfaaa = m0; - m0 += c1o6 * oMdrho; - mfaba = m1 - m0 * vvy; - mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfacb; - m1 = mfacb - mfaab; - m0 = m2 + mfabb; - mfaab = m0; - mfabb = m1 - m0 * vvy; - mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfacc; - m1 = mfacc - mfaac; - m0 = m2 + mfabc; - mfaac = m0; - m0 += c1o18 * oMdrho; - mfabc = m1 - m0 * vvy; - mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbca; - m1 = mfbca - mfbaa; - m0 = m2 + mfbba; - mfbaa = m0; - m0 += c2o3 * oMdrho; - mfbba = m1 - m0 * vvy; - mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbab + mfbcb; - m1 = mfbcb - mfbab; - m0 = m2 + mfbbb; - mfbab = m0; - mfbbb = m1 - m0 * vvy; - mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbac + mfbcc; - m1 = mfbcc - mfbac; - m0 = m2 + mfbbc; - mfbac = m0; - m0 += c2o9 * oMdrho; - mfbbc = m1 - m0 * vvy; - mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcca; - m1 = mfcca - mfcaa; - m0 = m2 + mfcba; - mfcaa = m0; - m0 += c1o6 * oMdrho; - mfcba = m1 - m0 * vvy; - mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcab + mfccb; - m1 = mfccb - mfcab; - m0 = m2 + mfcbb; - mfcab = m0; - mfcbb = m1 - m0 * vvy; - mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcac + mfccc; - m1 = mfccc - mfcac; - m0 = m2 + mfcbc; - mfcac = m0; - m0 += c1o18 * oMdrho; - mfcbc = m1 - m0 * vvy; - mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m2 = mfaaa + mfcaa; - m1 = mfcaa - mfaaa; - m0 = m2 + mfbaa; - mfaaa = m0; - m0 += c1o1* oMdrho; - mfbaa = m1 - m0 * vvx; - mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfcba; - m1 = mfcba - mfaba; - m0 = m2 + mfbba; - mfaba = m0; - mfbba = m1 - m0 * vvx; - mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfcca; - m1 = mfcca - mfaca; - m0 = m2 + mfbca; - mfaca = m0; - m0 += c1o3 * oMdrho; - mfbca = m1 - m0 * vvx; - mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfcab; - m1 = mfcab - mfaab; - m0 = m2 + mfbab; - mfaab = m0; - mfbab = m1 - m0 * vvx; - mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabb + mfcbb; - m1 = mfcbb - mfabb; - m0 = m2 + mfbbb; - mfabb = m0; - mfbbb = m1 - m0 * vvx; - mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacb + mfccb; - m1 = mfccb - mfacb; - m0 = m2 + mfbcb; - mfacb = m0; - mfbcb = m1 - m0 * vvx; - mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfcac; - m1 = mfcac - mfaac; - m0 = m2 + mfbac; - mfaac = m0; - m0 += c1o3 * oMdrho; - mfbac = m1 - m0 * vvx; - mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabc + mfcbc; - m1 = mfcbc - mfabc; - m0 = m2 + mfbbc; - mfabc = m0; - mfbbc = m1 - m0 * vvx; - mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacc + mfccc; - m1 = mfccc - mfacc; - m0 = m2 + mfbcc; - mfacc = m0; - m0 += c1o9 * oMdrho; - mfbcc = m1 - m0 * vvx; - mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - // linear combinations + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + mfcbb = f_E ; + mfabb = f_W ; + mfbcb = f_N ; + mfbab = f_S ; + mfbbc = f_T ; + mfbba = f_B ; + mfccb = f_NE ; + mfaab = f_SW ; + mfcab = f_SE ; + mfacb = f_NW ; + mfcbc = f_TE ; + mfaba = f_BW ; + mfcba = f_BE ; + mfabc = f_TW ; + mfbcc = f_TN ; + mfbaa = f_BS ; + mfbca = f_BN ; + mfbac = f_TS ; + mfbbb = f_ZERO; + mfccc = f_TNE ; + mfaac = f_TSW ; + mfcac = f_TSE ; + mfacc = f_TNW ; + mfcca = f_BNE ; + mfaaa = f_BSW ; + mfcaa = f_BSE ; + mfaca = f_BNW ; + //////////////////////////////////////////////////////////////////////////////////// + drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + + (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + + ((mfabb+mfcbb) + (mfbab+mfbcb)) + (mfbba+mfbbc)) + mfbbb; + + rho = c1o1+drho; + //////////////////////////////////////////////////////////////////////////////////// + vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + + (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + + (mfcbb-mfabb)) / rho; + vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + + (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + + (mfbcb-mfbab)) / rho; + vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + + (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + + (mfbbc-mfbba)) / rho; + //////////////////////////////////////////////////////////////////////////////////// + //fast + oMdrho = c1o1; // comp special + vx2=vvx*vvx; + vy2=vvy*vvy; + vz2=vvz*vvz; + //////////////////////////////////////////////////////////////////////////////////// + //Hin + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m2 = mfaaa + mfaac; + m1 = mfaac - mfaaa; + m0 = m2 + mfaab; + mfaaa = m0; + m0 += c1o36 * oMdrho; + mfaab = m1 - m0 * vvz; + mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfabc; + m1 = mfabc - mfaba; + m0 = m2 + mfabb; + mfaba = m0; + m0 += c1o9 * oMdrho; + mfabb = m1 - m0 * vvz; + mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfacc; + m1 = mfacc - mfaca; + m0 = m2 + mfacb; + mfaca = m0; + m0 += c1o36 * oMdrho; + mfacb = m1 - m0 * vvz; + mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbac; + m1 = mfbac - mfbaa; + m0 = m2 + mfbab; + mfbaa = m0; + m0 += c1o9 * oMdrho; + mfbab = m1 - m0 * vvz; + mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbba + mfbbc; + m1 = mfbbc - mfbba; + m0 = m2 + mfbbb; + mfbba = m0; + m0 += c4o9 * oMdrho; + mfbbb = m1 - m0 * vvz; + mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbca + mfbcc; + m1 = mfbcc - mfbca; + m0 = m2 + mfbcb; + mfbca = m0; + m0 += c1o9 * oMdrho; + mfbcb = m1 - m0 * vvz; + mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcac; + m1 = mfcac - mfcaa; + m0 = m2 + mfcab; + mfcaa = m0; + m0 += c1o36 * oMdrho; + mfcab = m1 - m0 * vvz; + mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcba + mfcbc; + m1 = mfcbc - mfcba; + m0 = m2 + mfcbb; + mfcba = m0; + m0 += c1o9 * oMdrho; + mfcbb = m1 - m0 * vvz; + mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcca + mfccc; + m1 = mfccc - mfcca; + m0 = m2 + mfccb; + mfcca = m0; + m0 += c1o36 * oMdrho; + mfccb = m1 - m0 * vvz; + mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m2 = mfaaa + mfaca; + m1 = mfaca - mfaaa; + m0 = m2 + mfaba; + mfaaa = m0; + m0 += c1o6 * oMdrho; + mfaba = m1 - m0 * vvy; + mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfacb; + m1 = mfacb - mfaab; + m0 = m2 + mfabb; + mfaab = m0; + mfabb = m1 - m0 * vvy; + mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfacc; + m1 = mfacc - mfaac; + m0 = m2 + mfabc; + mfaac = m0; + m0 += c1o18 * oMdrho; + mfabc = m1 - m0 * vvy; + mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbca; + m1 = mfbca - mfbaa; + m0 = m2 + mfbba; + mfbaa = m0; + m0 += c2o3 * oMdrho; + mfbba = m1 - m0 * vvy; + mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbab + mfbcb; + m1 = mfbcb - mfbab; + m0 = m2 + mfbbb; + mfbab = m0; + mfbbb = m1 - m0 * vvy; + mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbac + mfbcc; + m1 = mfbcc - mfbac; + m0 = m2 + mfbbc; + mfbac = m0; + m0 += c2o9 * oMdrho; + mfbbc = m1 - m0 * vvy; + mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcca; + m1 = mfcca - mfcaa; + m0 = m2 + mfcba; + mfcaa = m0; + m0 += c1o6 * oMdrho; + mfcba = m1 - m0 * vvy; + mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcab + mfccb; + m1 = mfccb - mfcab; + m0 = m2 + mfcbb; + mfcab = m0; + mfcbb = m1 - m0 * vvy; + mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcac + mfccc; + m1 = mfccc - mfcac; + m0 = m2 + mfcbc; + mfcac = m0; + m0 += c1o18 * oMdrho; + mfcbc = m1 - m0 * vvy; + mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m2 = mfaaa + mfcaa; + m1 = mfcaa - mfaaa; + m0 = m2 + mfbaa; + mfaaa = m0; + m0 += c1o1* oMdrho; + mfbaa = m1 - m0 * vvx; + mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfcba; + m1 = mfcba - mfaba; + m0 = m2 + mfbba; + mfaba = m0; + mfbba = m1 - m0 * vvx; + mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfcca; + m1 = mfcca - mfaca; + m0 = m2 + mfbca; + mfaca = m0; + m0 += c1o3 * oMdrho; + mfbca = m1 - m0 * vvx; + mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfcab; + m1 = mfcab - mfaab; + m0 = m2 + mfbab; + mfaab = m0; + mfbab = m1 - m0 * vvx; + mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabb + mfcbb; + m1 = mfcbb - mfabb; + m0 = m2 + mfbbb; + mfabb = m0; + mfbbb = m1 - m0 * vvx; + mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacb + mfccb; + m1 = mfccb - mfacb; + m0 = m2 + mfbcb; + mfacb = m0; + mfbcb = m1 - m0 * vvx; + mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfcac; + m1 = mfcac - mfaac; + m0 = m2 + mfbac; + mfaac = m0; + m0 += c1o3 * oMdrho; + mfbac = m1 - m0 * vvx; + mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabc + mfcbc; + m1 = mfcbc - mfabc; + m0 = m2 + mfbbc; + mfabc = m0; + mfbbc = m1 - m0 * vvx; + mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacc + mfccc; + m1 = mfccc - mfacc; + m0 = m2 + mfbcc; + mfacc = m0; + m0 += c1o9 * oMdrho; + mfbcc = m1 - m0 * vvx; + mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + // linear combinations - mxxyPyzz = mfcba + mfabc; - mxxyMyzz = mfcba - mfabc; + mxxyPyzz = mfcba + mfabc; + mxxyMyzz = mfcba - mfabc; - mxxzPyyz = mfcab + mfacb; - mxxzMyyz = mfcab - mfacb; + mxxzPyyz = mfcab + mfacb; + mxxzMyyz = mfcab - mfacb; - mxyyPxzz = mfbca + mfbac; - mxyyMxzz = mfbca - mfbac; + mxyyPxzz = mfbca + mfbac; + mxyyMxzz = mfbca - mfbac; - ////////////////////////////////////////////////////////////////////////// - //exclusive for this source node - real mfbbb_SWB = mfbbb; - real mxxyPyzz_SWB = mxxyPyzz; - real mxxyMyzz_SWB = mxxyMyzz; - real mxxzPyyz_SWB = mxxzPyyz; - real mxxzMyyz_SWB = mxxzMyyz; - real mxyyPxzz_SWB = mxyyPxzz; - real mxyyMxzz_SWB = mxyyMxzz; - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// + //exclusive for this source node + real mfbbb_SWB = mfbbb; + real mxxyPyzz_SWB = mxxyPyzz; + real mxxyMyzz_SWB = mxxyMyzz; + real mxxzPyyz_SWB = mxxzPyyz; + real mxxzMyyz_SWB = mxxzMyyz; + real mxyyPxzz_SWB = mxyyPxzz; + real mxyyMxzz_SWB = mxyyMxzz; + ////////////////////////////////////////////////////////////////////////// @@ -11618,8 +11618,8 @@ __global__ void scaleCF_RhoSq_3rdMom_comp_27(real* DC, drho_SWT = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; vx1_SWT = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_SWT); - vx2_SWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SWT); - vx3_SWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SWT); + vx2_SWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SWT); + vx3_SWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SWT); kxyFromfcNEQ_SWT = -c3o1*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_SWT) - ((vx1_SWT*vx2_SWT))); kyzFromfcNEQ_SWT = -c3o1*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_SWT) - ((vx2_SWT*vx3_SWT))); @@ -11627,306 +11627,306 @@ __global__ void scaleCF_RhoSq_3rdMom_comp_27(real* DC, kxxMyyFromfcNEQ_SWT = -c3o2*omegaS *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_SWT) - ((vx1_SWT*vx1_SWT-vx2_SWT*vx2_SWT))); kxxMzzFromfcNEQ_SWT = -c3o2*omegaS *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_SWT) - ((vx1_SWT*vx1_SWT-vx3_SWT*vx3_SWT))); - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - mfcbb = f_E ; - mfabb = f_W ; - mfbcb = f_N ; - mfbab = f_S ; - mfbbc = f_T ; - mfbba = f_B ; - mfccb = f_NE ; - mfaab = f_SW ; - mfcab = f_SE ; - mfacb = f_NW ; - mfcbc = f_TE ; - mfaba = f_BW ; - mfcba = f_BE ; - mfabc = f_TW ; - mfbcc = f_TN ; - mfbaa = f_BS ; - mfbca = f_BN ; - mfbac = f_TS ; - mfbbb = f_ZERO; - mfccc = f_TNE ; - mfaac = f_TSW ; - mfcac = f_TSE ; - mfacc = f_TNW ; - mfcca = f_BNE ; - mfaaa = f_BSW ; - mfcaa = f_BSE ; - mfaca = f_BNW ; - //////////////////////////////////////////////////////////////////////////////////// - drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + - (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + - ((mfabb+mfcbb) + (mfbab+mfbcb)) + (mfbba+mfbbc)) + mfbbb; - - rho = c1o1+drho; - //////////////////////////////////////////////////////////////////////////////////// - vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + - (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + - (mfcbb-mfabb)) / rho; - vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + - (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + - (mfbcb-mfbab)) / rho; - vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + - (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + - (mfbbc-mfbba)) / rho; - //////////////////////////////////////////////////////////////////////////////////// - //fast - oMdrho = c1o1; // comp special - vx2=vvx*vvx; - vy2=vvy*vvy; - vz2=vvz*vvz; - //////////////////////////////////////////////////////////////////////////////////// - //Hin - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m2 = mfaaa + mfaac; - m1 = mfaac - mfaaa; - m0 = m2 + mfaab; - mfaaa = m0; - m0 += c1o36 * oMdrho; - mfaab = m1 - m0 * vvz; - mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfabc; - m1 = mfabc - mfaba; - m0 = m2 + mfabb; - mfaba = m0; - m0 += c1o9 * oMdrho; - mfabb = m1 - m0 * vvz; - mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfacc; - m1 = mfacc - mfaca; - m0 = m2 + mfacb; - mfaca = m0; - m0 += c1o36 * oMdrho; - mfacb = m1 - m0 * vvz; - mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbac; - m1 = mfbac - mfbaa; - m0 = m2 + mfbab; - mfbaa = m0; - m0 += c1o9 * oMdrho; - mfbab = m1 - m0 * vvz; - mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbba + mfbbc; - m1 = mfbbc - mfbba; - m0 = m2 + mfbbb; - mfbba = m0; - m0 += c4o9 * oMdrho; - mfbbb = m1 - m0 * vvz; - mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbca + mfbcc; - m1 = mfbcc - mfbca; - m0 = m2 + mfbcb; - mfbca = m0; - m0 += c1o9 * oMdrho; - mfbcb = m1 - m0 * vvz; - mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcac; - m1 = mfcac - mfcaa; - m0 = m2 + mfcab; - mfcaa = m0; - m0 += c1o36 * oMdrho; - mfcab = m1 - m0 * vvz; - mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcba + mfcbc; - m1 = mfcbc - mfcba; - m0 = m2 + mfcbb; - mfcba = m0; - m0 += c1o9 * oMdrho; - mfcbb = m1 - m0 * vvz; - mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcca + mfccc; - m1 = mfccc - mfcca; - m0 = m2 + mfccb; - mfcca = m0; - m0 += c1o36 * oMdrho; - mfccb = m1 - m0 * vvz; - mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m2 = mfaaa + mfaca; - m1 = mfaca - mfaaa; - m0 = m2 + mfaba; - mfaaa = m0; - m0 += c1o6 * oMdrho; - mfaba = m1 - m0 * vvy; - mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfacb; - m1 = mfacb - mfaab; - m0 = m2 + mfabb; - mfaab = m0; - mfabb = m1 - m0 * vvy; - mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfacc; - m1 = mfacc - mfaac; - m0 = m2 + mfabc; - mfaac = m0; - m0 += c1o18 * oMdrho; - mfabc = m1 - m0 * vvy; - mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbca; - m1 = mfbca - mfbaa; - m0 = m2 + mfbba; - mfbaa = m0; - m0 += c2o3 * oMdrho; - mfbba = m1 - m0 * vvy; - mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbab + mfbcb; - m1 = mfbcb - mfbab; - m0 = m2 + mfbbb; - mfbab = m0; - mfbbb = m1 - m0 * vvy; - mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbac + mfbcc; - m1 = mfbcc - mfbac; - m0 = m2 + mfbbc; - mfbac = m0; - m0 += c2o9 * oMdrho; - mfbbc = m1 - m0 * vvy; - mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcca; - m1 = mfcca - mfcaa; - m0 = m2 + mfcba; - mfcaa = m0; - m0 += c1o6 * oMdrho; - mfcba = m1 - m0 * vvy; - mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcab + mfccb; - m1 = mfccb - mfcab; - m0 = m2 + mfcbb; - mfcab = m0; - mfcbb = m1 - m0 * vvy; - mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcac + mfccc; - m1 = mfccc - mfcac; - m0 = m2 + mfcbc; - mfcac = m0; - m0 += c1o18 * oMdrho; - mfcbc = m1 - m0 * vvy; - mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m2 = mfaaa + mfcaa; - m1 = mfcaa - mfaaa; - m0 = m2 + mfbaa; - mfaaa = m0; - m0 += c1o1* oMdrho; - mfbaa = m1 - m0 * vvx; - mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfcba; - m1 = mfcba - mfaba; - m0 = m2 + mfbba; - mfaba = m0; - mfbba = m1 - m0 * vvx; - mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfcca; - m1 = mfcca - mfaca; - m0 = m2 + mfbca; - mfaca = m0; - m0 += c1o3 * oMdrho; - mfbca = m1 - m0 * vvx; - mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfcab; - m1 = mfcab - mfaab; - m0 = m2 + mfbab; - mfaab = m0; - mfbab = m1 - m0 * vvx; - mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabb + mfcbb; - m1 = mfcbb - mfabb; - m0 = m2 + mfbbb; - mfabb = m0; - mfbbb = m1 - m0 * vvx; - mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacb + mfccb; - m1 = mfccb - mfacb; - m0 = m2 + mfbcb; - mfacb = m0; - mfbcb = m1 - m0 * vvx; - mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfcac; - m1 = mfcac - mfaac; - m0 = m2 + mfbac; - mfaac = m0; - m0 += c1o3 * oMdrho; - mfbac = m1 - m0 * vvx; - mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabc + mfcbc; - m1 = mfcbc - mfabc; - m0 = m2 + mfbbc; - mfabc = m0; - mfbbc = m1 - m0 * vvx; - mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacc + mfccc; - m1 = mfccc - mfacc; - m0 = m2 + mfbcc; - mfacc = m0; - m0 += c1o9 * oMdrho; - mfbcc = m1 - m0 * vvx; - mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - // linear combinations + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + mfcbb = f_E ; + mfabb = f_W ; + mfbcb = f_N ; + mfbab = f_S ; + mfbbc = f_T ; + mfbba = f_B ; + mfccb = f_NE ; + mfaab = f_SW ; + mfcab = f_SE ; + mfacb = f_NW ; + mfcbc = f_TE ; + mfaba = f_BW ; + mfcba = f_BE ; + mfabc = f_TW ; + mfbcc = f_TN ; + mfbaa = f_BS ; + mfbca = f_BN ; + mfbac = f_TS ; + mfbbb = f_ZERO; + mfccc = f_TNE ; + mfaac = f_TSW ; + mfcac = f_TSE ; + mfacc = f_TNW ; + mfcca = f_BNE ; + mfaaa = f_BSW ; + mfcaa = f_BSE ; + mfaca = f_BNW ; + //////////////////////////////////////////////////////////////////////////////////// + drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + + (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + + ((mfabb+mfcbb) + (mfbab+mfbcb)) + (mfbba+mfbbc)) + mfbbb; + + rho = c1o1+drho; + //////////////////////////////////////////////////////////////////////////////////// + vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + + (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + + (mfcbb-mfabb)) / rho; + vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + + (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + + (mfbcb-mfbab)) / rho; + vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + + (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + + (mfbbc-mfbba)) / rho; + //////////////////////////////////////////////////////////////////////////////////// + //fast + oMdrho = c1o1; // comp special + vx2=vvx*vvx; + vy2=vvy*vvy; + vz2=vvz*vvz; + //////////////////////////////////////////////////////////////////////////////////// + //Hin + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m2 = mfaaa + mfaac; + m1 = mfaac - mfaaa; + m0 = m2 + mfaab; + mfaaa = m0; + m0 += c1o36 * oMdrho; + mfaab = m1 - m0 * vvz; + mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfabc; + m1 = mfabc - mfaba; + m0 = m2 + mfabb; + mfaba = m0; + m0 += c1o9 * oMdrho; + mfabb = m1 - m0 * vvz; + mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfacc; + m1 = mfacc - mfaca; + m0 = m2 + mfacb; + mfaca = m0; + m0 += c1o36 * oMdrho; + mfacb = m1 - m0 * vvz; + mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbac; + m1 = mfbac - mfbaa; + m0 = m2 + mfbab; + mfbaa = m0; + m0 += c1o9 * oMdrho; + mfbab = m1 - m0 * vvz; + mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbba + mfbbc; + m1 = mfbbc - mfbba; + m0 = m2 + mfbbb; + mfbba = m0; + m0 += c4o9 * oMdrho; + mfbbb = m1 - m0 * vvz; + mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbca + mfbcc; + m1 = mfbcc - mfbca; + m0 = m2 + mfbcb; + mfbca = m0; + m0 += c1o9 * oMdrho; + mfbcb = m1 - m0 * vvz; + mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcac; + m1 = mfcac - mfcaa; + m0 = m2 + mfcab; + mfcaa = m0; + m0 += c1o36 * oMdrho; + mfcab = m1 - m0 * vvz; + mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcba + mfcbc; + m1 = mfcbc - mfcba; + m0 = m2 + mfcbb; + mfcba = m0; + m0 += c1o9 * oMdrho; + mfcbb = m1 - m0 * vvz; + mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcca + mfccc; + m1 = mfccc - mfcca; + m0 = m2 + mfccb; + mfcca = m0; + m0 += c1o36 * oMdrho; + mfccb = m1 - m0 * vvz; + mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m2 = mfaaa + mfaca; + m1 = mfaca - mfaaa; + m0 = m2 + mfaba; + mfaaa = m0; + m0 += c1o6 * oMdrho; + mfaba = m1 - m0 * vvy; + mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfacb; + m1 = mfacb - mfaab; + m0 = m2 + mfabb; + mfaab = m0; + mfabb = m1 - m0 * vvy; + mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfacc; + m1 = mfacc - mfaac; + m0 = m2 + mfabc; + mfaac = m0; + m0 += c1o18 * oMdrho; + mfabc = m1 - m0 * vvy; + mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbca; + m1 = mfbca - mfbaa; + m0 = m2 + mfbba; + mfbaa = m0; + m0 += c2o3 * oMdrho; + mfbba = m1 - m0 * vvy; + mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbab + mfbcb; + m1 = mfbcb - mfbab; + m0 = m2 + mfbbb; + mfbab = m0; + mfbbb = m1 - m0 * vvy; + mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbac + mfbcc; + m1 = mfbcc - mfbac; + m0 = m2 + mfbbc; + mfbac = m0; + m0 += c2o9 * oMdrho; + mfbbc = m1 - m0 * vvy; + mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcca; + m1 = mfcca - mfcaa; + m0 = m2 + mfcba; + mfcaa = m0; + m0 += c1o6 * oMdrho; + mfcba = m1 - m0 * vvy; + mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcab + mfccb; + m1 = mfccb - mfcab; + m0 = m2 + mfcbb; + mfcab = m0; + mfcbb = m1 - m0 * vvy; + mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcac + mfccc; + m1 = mfccc - mfcac; + m0 = m2 + mfcbc; + mfcac = m0; + m0 += c1o18 * oMdrho; + mfcbc = m1 - m0 * vvy; + mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m2 = mfaaa + mfcaa; + m1 = mfcaa - mfaaa; + m0 = m2 + mfbaa; + mfaaa = m0; + m0 += c1o1* oMdrho; + mfbaa = m1 - m0 * vvx; + mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfcba; + m1 = mfcba - mfaba; + m0 = m2 + mfbba; + mfaba = m0; + mfbba = m1 - m0 * vvx; + mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfcca; + m1 = mfcca - mfaca; + m0 = m2 + mfbca; + mfaca = m0; + m0 += c1o3 * oMdrho; + mfbca = m1 - m0 * vvx; + mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfcab; + m1 = mfcab - mfaab; + m0 = m2 + mfbab; + mfaab = m0; + mfbab = m1 - m0 * vvx; + mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabb + mfcbb; + m1 = mfcbb - mfabb; + m0 = m2 + mfbbb; + mfabb = m0; + mfbbb = m1 - m0 * vvx; + mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacb + mfccb; + m1 = mfccb - mfacb; + m0 = m2 + mfbcb; + mfacb = m0; + mfbcb = m1 - m0 * vvx; + mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfcac; + m1 = mfcac - mfaac; + m0 = m2 + mfbac; + mfaac = m0; + m0 += c1o3 * oMdrho; + mfbac = m1 - m0 * vvx; + mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabc + mfcbc; + m1 = mfcbc - mfabc; + m0 = m2 + mfbbc; + mfabc = m0; + mfbbc = m1 - m0 * vvx; + mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacc + mfccc; + m1 = mfccc - mfacc; + m0 = m2 + mfbcc; + mfacc = m0; + m0 += c1o9 * oMdrho; + mfbcc = m1 - m0 * vvx; + mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + // linear combinations - mxxyPyzz = mfcba + mfabc; - mxxyMyzz = mfcba - mfabc; + mxxyPyzz = mfcba + mfabc; + mxxyMyzz = mfcba - mfabc; - mxxzPyyz = mfcab + mfacb; - mxxzMyyz = mfcab - mfacb; + mxxzPyyz = mfcab + mfacb; + mxxzMyyz = mfcab - mfacb; - mxyyPxzz = mfbca + mfbac; - mxyyMxzz = mfbca - mfbac; + mxyyPxzz = mfbca + mfbac; + mxyyMxzz = mfbca - mfbac; - ////////////////////////////////////////////////////////////////////////// - //exclusive for this source node - real mfbbb_SWT = mfbbb; - real mxxyPyzz_SWT = mxxyPyzz; - real mxxyMyzz_SWT = mxxyMyzz; - real mxxzPyyz_SWT = mxxzPyyz; - real mxxzMyyz_SWT = mxxzMyyz; - real mxyyPxzz_SWT = mxyyPxzz; - real mxyyMxzz_SWT = mxyyMxzz; - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// + //exclusive for this source node + real mfbbb_SWT = mfbbb; + real mxxyPyzz_SWT = mxxyPyzz; + real mxxyMyzz_SWT = mxxyMyzz; + real mxxzPyyz_SWT = mxxzPyyz; + real mxxzMyyz_SWT = mxxzMyyz; + real mxyyPxzz_SWT = mxyyPxzz; + real mxyyMxzz_SWT = mxyyMxzz; + ////////////////////////////////////////////////////////////////////////// @@ -12025,8 +12025,8 @@ __global__ void scaleCF_RhoSq_3rdMom_comp_27(real* DC, drho_SET = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; vx1_SET = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_SET); - vx2_SET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SET); - vx3_SET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SET); + vx2_SET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SET); + vx3_SET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SET); kxyFromfcNEQ_SET = -c3o1*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_SET) - ((vx1_SET*vx2_SET))); kyzFromfcNEQ_SET = -c3o1*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_SET) - ((vx2_SET*vx3_SET))); @@ -12034,306 +12034,306 @@ __global__ void scaleCF_RhoSq_3rdMom_comp_27(real* DC, kxxMyyFromfcNEQ_SET = -c3o2*omegaS *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_SET) - ((vx1_SET*vx1_SET-vx2_SET*vx2_SET))); kxxMzzFromfcNEQ_SET = -c3o2*omegaS *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_SET) - ((vx1_SET*vx1_SET-vx3_SET*vx3_SET))); - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - mfcbb = f_E ; - mfabb = f_W ; - mfbcb = f_N ; - mfbab = f_S ; - mfbbc = f_T ; - mfbba = f_B ; - mfccb = f_NE ; - mfaab = f_SW ; - mfcab = f_SE ; - mfacb = f_NW ; - mfcbc = f_TE ; - mfaba = f_BW ; - mfcba = f_BE ; - mfabc = f_TW ; - mfbcc = f_TN ; - mfbaa = f_BS ; - mfbca = f_BN ; - mfbac = f_TS ; - mfbbb = f_ZERO; - mfccc = f_TNE ; - mfaac = f_TSW ; - mfcac = f_TSE ; - mfacc = f_TNW ; - mfcca = f_BNE ; - mfaaa = f_BSW ; - mfcaa = f_BSE ; - mfaca = f_BNW ; - //////////////////////////////////////////////////////////////////////////////////// - drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + - (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + - ((mfabb+mfcbb) + (mfbab+mfbcb)) + (mfbba+mfbbc)) + mfbbb; - - rho = c1o1+drho; - //////////////////////////////////////////////////////////////////////////////////// - vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + - (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + - (mfcbb-mfabb)) / rho; - vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + - (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + - (mfbcb-mfbab)) / rho; - vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + - (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + - (mfbbc-mfbba)) / rho; - //////////////////////////////////////////////////////////////////////////////////// - //fast - oMdrho = c1o1; // comp special - vx2=vvx*vvx; - vy2=vvy*vvy; - vz2=vvz*vvz; - //////////////////////////////////////////////////////////////////////////////////// - //Hin - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m2 = mfaaa + mfaac; - m1 = mfaac - mfaaa; - m0 = m2 + mfaab; - mfaaa = m0; - m0 += c1o36 * oMdrho; - mfaab = m1 - m0 * vvz; - mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfabc; - m1 = mfabc - mfaba; - m0 = m2 + mfabb; - mfaba = m0; - m0 += c1o9 * oMdrho; - mfabb = m1 - m0 * vvz; - mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfacc; - m1 = mfacc - mfaca; - m0 = m2 + mfacb; - mfaca = m0; - m0 += c1o36 * oMdrho; - mfacb = m1 - m0 * vvz; - mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbac; - m1 = mfbac - mfbaa; - m0 = m2 + mfbab; - mfbaa = m0; - m0 += c1o9 * oMdrho; - mfbab = m1 - m0 * vvz; - mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbba + mfbbc; - m1 = mfbbc - mfbba; - m0 = m2 + mfbbb; - mfbba = m0; - m0 += c4o9 * oMdrho; - mfbbb = m1 - m0 * vvz; - mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbca + mfbcc; - m1 = mfbcc - mfbca; - m0 = m2 + mfbcb; - mfbca = m0; - m0 += c1o9 * oMdrho; - mfbcb = m1 - m0 * vvz; - mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcac; - m1 = mfcac - mfcaa; - m0 = m2 + mfcab; - mfcaa = m0; - m0 += c1o36 * oMdrho; - mfcab = m1 - m0 * vvz; - mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcba + mfcbc; - m1 = mfcbc - mfcba; - m0 = m2 + mfcbb; - mfcba = m0; - m0 += c1o9 * oMdrho; - mfcbb = m1 - m0 * vvz; - mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcca + mfccc; - m1 = mfccc - mfcca; - m0 = m2 + mfccb; - mfcca = m0; - m0 += c1o36 * oMdrho; - mfccb = m1 - m0 * vvz; - mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m2 = mfaaa + mfaca; - m1 = mfaca - mfaaa; - m0 = m2 + mfaba; - mfaaa = m0; - m0 += c1o6 * oMdrho; - mfaba = m1 - m0 * vvy; - mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfacb; - m1 = mfacb - mfaab; - m0 = m2 + mfabb; - mfaab = m0; - mfabb = m1 - m0 * vvy; - mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfacc; - m1 = mfacc - mfaac; - m0 = m2 + mfabc; - mfaac = m0; - m0 += c1o18 * oMdrho; - mfabc = m1 - m0 * vvy; - mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbca; - m1 = mfbca - mfbaa; - m0 = m2 + mfbba; - mfbaa = m0; - m0 += c2o3 * oMdrho; - mfbba = m1 - m0 * vvy; - mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbab + mfbcb; - m1 = mfbcb - mfbab; - m0 = m2 + mfbbb; - mfbab = m0; - mfbbb = m1 - m0 * vvy; - mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbac + mfbcc; - m1 = mfbcc - mfbac; - m0 = m2 + mfbbc; - mfbac = m0; - m0 += c2o9 * oMdrho; - mfbbc = m1 - m0 * vvy; - mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcca; - m1 = mfcca - mfcaa; - m0 = m2 + mfcba; - mfcaa = m0; - m0 += c1o6 * oMdrho; - mfcba = m1 - m0 * vvy; - mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcab + mfccb; - m1 = mfccb - mfcab; - m0 = m2 + mfcbb; - mfcab = m0; - mfcbb = m1 - m0 * vvy; - mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcac + mfccc; - m1 = mfccc - mfcac; - m0 = m2 + mfcbc; - mfcac = m0; - m0 += c1o18 * oMdrho; - mfcbc = m1 - m0 * vvy; - mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m2 = mfaaa + mfcaa; - m1 = mfcaa - mfaaa; - m0 = m2 + mfbaa; - mfaaa = m0; - m0 += c1o1* oMdrho; - mfbaa = m1 - m0 * vvx; - mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfcba; - m1 = mfcba - mfaba; - m0 = m2 + mfbba; - mfaba = m0; - mfbba = m1 - m0 * vvx; - mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfcca; - m1 = mfcca - mfaca; - m0 = m2 + mfbca; - mfaca = m0; - m0 += c1o3 * oMdrho; - mfbca = m1 - m0 * vvx; - mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfcab; - m1 = mfcab - mfaab; - m0 = m2 + mfbab; - mfaab = m0; - mfbab = m1 - m0 * vvx; - mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabb + mfcbb; - m1 = mfcbb - mfabb; - m0 = m2 + mfbbb; - mfabb = m0; - mfbbb = m1 - m0 * vvx; - mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacb + mfccb; - m1 = mfccb - mfacb; - m0 = m2 + mfbcb; - mfacb = m0; - mfbcb = m1 - m0 * vvx; - mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfcac; - m1 = mfcac - mfaac; - m0 = m2 + mfbac; - mfaac = m0; - m0 += c1o3 * oMdrho; - mfbac = m1 - m0 * vvx; - mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabc + mfcbc; - m1 = mfcbc - mfabc; - m0 = m2 + mfbbc; - mfabc = m0; - mfbbc = m1 - m0 * vvx; - mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacc + mfccc; - m1 = mfccc - mfacc; - m0 = m2 + mfbcc; - mfacc = m0; - m0 += c1o9 * oMdrho; - mfbcc = m1 - m0 * vvx; - mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - // linear combinations + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + mfcbb = f_E ; + mfabb = f_W ; + mfbcb = f_N ; + mfbab = f_S ; + mfbbc = f_T ; + mfbba = f_B ; + mfccb = f_NE ; + mfaab = f_SW ; + mfcab = f_SE ; + mfacb = f_NW ; + mfcbc = f_TE ; + mfaba = f_BW ; + mfcba = f_BE ; + mfabc = f_TW ; + mfbcc = f_TN ; + mfbaa = f_BS ; + mfbca = f_BN ; + mfbac = f_TS ; + mfbbb = f_ZERO; + mfccc = f_TNE ; + mfaac = f_TSW ; + mfcac = f_TSE ; + mfacc = f_TNW ; + mfcca = f_BNE ; + mfaaa = f_BSW ; + mfcaa = f_BSE ; + mfaca = f_BNW ; + //////////////////////////////////////////////////////////////////////////////////// + drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + + (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + + ((mfabb+mfcbb) + (mfbab+mfbcb)) + (mfbba+mfbbc)) + mfbbb; + + rho = c1o1+drho; + //////////////////////////////////////////////////////////////////////////////////// + vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + + (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + + (mfcbb-mfabb)) / rho; + vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + + (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + + (mfbcb-mfbab)) / rho; + vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + + (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + + (mfbbc-mfbba)) / rho; + //////////////////////////////////////////////////////////////////////////////////// + //fast + oMdrho = c1o1; // comp special + vx2=vvx*vvx; + vy2=vvy*vvy; + vz2=vvz*vvz; + //////////////////////////////////////////////////////////////////////////////////// + //Hin + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m2 = mfaaa + mfaac; + m1 = mfaac - mfaaa; + m0 = m2 + mfaab; + mfaaa = m0; + m0 += c1o36 * oMdrho; + mfaab = m1 - m0 * vvz; + mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfabc; + m1 = mfabc - mfaba; + m0 = m2 + mfabb; + mfaba = m0; + m0 += c1o9 * oMdrho; + mfabb = m1 - m0 * vvz; + mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfacc; + m1 = mfacc - mfaca; + m0 = m2 + mfacb; + mfaca = m0; + m0 += c1o36 * oMdrho; + mfacb = m1 - m0 * vvz; + mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbac; + m1 = mfbac - mfbaa; + m0 = m2 + mfbab; + mfbaa = m0; + m0 += c1o9 * oMdrho; + mfbab = m1 - m0 * vvz; + mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbba + mfbbc; + m1 = mfbbc - mfbba; + m0 = m2 + mfbbb; + mfbba = m0; + m0 += c4o9 * oMdrho; + mfbbb = m1 - m0 * vvz; + mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbca + mfbcc; + m1 = mfbcc - mfbca; + m0 = m2 + mfbcb; + mfbca = m0; + m0 += c1o9 * oMdrho; + mfbcb = m1 - m0 * vvz; + mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcac; + m1 = mfcac - mfcaa; + m0 = m2 + mfcab; + mfcaa = m0; + m0 += c1o36 * oMdrho; + mfcab = m1 - m0 * vvz; + mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcba + mfcbc; + m1 = mfcbc - mfcba; + m0 = m2 + mfcbb; + mfcba = m0; + m0 += c1o9 * oMdrho; + mfcbb = m1 - m0 * vvz; + mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcca + mfccc; + m1 = mfccc - mfcca; + m0 = m2 + mfccb; + mfcca = m0; + m0 += c1o36 * oMdrho; + mfccb = m1 - m0 * vvz; + mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m2 = mfaaa + mfaca; + m1 = mfaca - mfaaa; + m0 = m2 + mfaba; + mfaaa = m0; + m0 += c1o6 * oMdrho; + mfaba = m1 - m0 * vvy; + mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfacb; + m1 = mfacb - mfaab; + m0 = m2 + mfabb; + mfaab = m0; + mfabb = m1 - m0 * vvy; + mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfacc; + m1 = mfacc - mfaac; + m0 = m2 + mfabc; + mfaac = m0; + m0 += c1o18 * oMdrho; + mfabc = m1 - m0 * vvy; + mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbca; + m1 = mfbca - mfbaa; + m0 = m2 + mfbba; + mfbaa = m0; + m0 += c2o3 * oMdrho; + mfbba = m1 - m0 * vvy; + mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbab + mfbcb; + m1 = mfbcb - mfbab; + m0 = m2 + mfbbb; + mfbab = m0; + mfbbb = m1 - m0 * vvy; + mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbac + mfbcc; + m1 = mfbcc - mfbac; + m0 = m2 + mfbbc; + mfbac = m0; + m0 += c2o9 * oMdrho; + mfbbc = m1 - m0 * vvy; + mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcca; + m1 = mfcca - mfcaa; + m0 = m2 + mfcba; + mfcaa = m0; + m0 += c1o6 * oMdrho; + mfcba = m1 - m0 * vvy; + mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcab + mfccb; + m1 = mfccb - mfcab; + m0 = m2 + mfcbb; + mfcab = m0; + mfcbb = m1 - m0 * vvy; + mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcac + mfccc; + m1 = mfccc - mfcac; + m0 = m2 + mfcbc; + mfcac = m0; + m0 += c1o18 * oMdrho; + mfcbc = m1 - m0 * vvy; + mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m2 = mfaaa + mfcaa; + m1 = mfcaa - mfaaa; + m0 = m2 + mfbaa; + mfaaa = m0; + m0 += c1o1* oMdrho; + mfbaa = m1 - m0 * vvx; + mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfcba; + m1 = mfcba - mfaba; + m0 = m2 + mfbba; + mfaba = m0; + mfbba = m1 - m0 * vvx; + mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfcca; + m1 = mfcca - mfaca; + m0 = m2 + mfbca; + mfaca = m0; + m0 += c1o3 * oMdrho; + mfbca = m1 - m0 * vvx; + mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfcab; + m1 = mfcab - mfaab; + m0 = m2 + mfbab; + mfaab = m0; + mfbab = m1 - m0 * vvx; + mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabb + mfcbb; + m1 = mfcbb - mfabb; + m0 = m2 + mfbbb; + mfabb = m0; + mfbbb = m1 - m0 * vvx; + mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacb + mfccb; + m1 = mfccb - mfacb; + m0 = m2 + mfbcb; + mfacb = m0; + mfbcb = m1 - m0 * vvx; + mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfcac; + m1 = mfcac - mfaac; + m0 = m2 + mfbac; + mfaac = m0; + m0 += c1o3 * oMdrho; + mfbac = m1 - m0 * vvx; + mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabc + mfcbc; + m1 = mfcbc - mfabc; + m0 = m2 + mfbbc; + mfabc = m0; + mfbbc = m1 - m0 * vvx; + mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacc + mfccc; + m1 = mfccc - mfacc; + m0 = m2 + mfbcc; + mfacc = m0; + m0 += c1o9 * oMdrho; + mfbcc = m1 - m0 * vvx; + mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + // linear combinations - mxxyPyzz = mfcba + mfabc; - mxxyMyzz = mfcba - mfabc; + mxxyPyzz = mfcba + mfabc; + mxxyMyzz = mfcba - mfabc; - mxxzPyyz = mfcab + mfacb; - mxxzMyyz = mfcab - mfacb; + mxxzPyyz = mfcab + mfacb; + mxxzMyyz = mfcab - mfacb; - mxyyPxzz = mfbca + mfbac; - mxyyMxzz = mfbca - mfbac; + mxyyPxzz = mfbca + mfbac; + mxyyMxzz = mfbca - mfbac; - ////////////////////////////////////////////////////////////////////////// - //exclusive for this source node - real mfbbb_SET = mfbbb; - real mxxyPyzz_SET = mxxyPyzz; - real mxxyMyzz_SET = mxxyMyzz; - real mxxzPyyz_SET = mxxzPyyz; - real mxxzMyyz_SET = mxxzMyyz; - real mxyyPxzz_SET = mxyyPxzz; - real mxyyMxzz_SET = mxyyMxzz; - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// + //exclusive for this source node + real mfbbb_SET = mfbbb; + real mxxyPyzz_SET = mxxyPyzz; + real mxxyMyzz_SET = mxxyMyzz; + real mxxzPyyz_SET = mxxzPyyz; + real mxxzMyyz_SET = mxxzMyyz; + real mxyyPxzz_SET = mxyyPxzz; + real mxyyMxzz_SET = mxyyMxzz; + ////////////////////////////////////////////////////////////////////////// @@ -12432,8 +12432,8 @@ __global__ void scaleCF_RhoSq_3rdMom_comp_27(real* DC, drho_SEB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; vx1_SEB = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_SEB); - vx2_SEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SEB); - vx3_SEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SEB); + vx2_SEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SEB); + vx3_SEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SEB); kxyFromfcNEQ_SEB = -c3o1*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_SEB) - ((vx1_SEB*vx2_SEB))); kyzFromfcNEQ_SEB = -c3o1*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_SEB) - ((vx2_SEB*vx3_SEB))); @@ -12441,306 +12441,306 @@ __global__ void scaleCF_RhoSq_3rdMom_comp_27(real* DC, kxxMyyFromfcNEQ_SEB = -c3o2*omegaS *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_SEB) - ((vx1_SEB*vx1_SEB-vx2_SEB*vx2_SEB))); kxxMzzFromfcNEQ_SEB = -c3o2*omegaS *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_SEB) - ((vx1_SEB*vx1_SEB-vx3_SEB*vx3_SEB))); - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - mfcbb = f_E ; - mfabb = f_W ; - mfbcb = f_N ; - mfbab = f_S ; - mfbbc = f_T ; - mfbba = f_B ; - mfccb = f_NE ; - mfaab = f_SW ; - mfcab = f_SE ; - mfacb = f_NW ; - mfcbc = f_TE ; - mfaba = f_BW ; - mfcba = f_BE ; - mfabc = f_TW ; - mfbcc = f_TN ; - mfbaa = f_BS ; - mfbca = f_BN ; - mfbac = f_TS ; - mfbbb = f_ZERO; - mfccc = f_TNE ; - mfaac = f_TSW ; - mfcac = f_TSE ; - mfacc = f_TNW ; - mfcca = f_BNE ; - mfaaa = f_BSW ; - mfcaa = f_BSE ; - mfaca = f_BNW ; - //////////////////////////////////////////////////////////////////////////////////// - drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + - (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + - ((mfabb+mfcbb) + (mfbab+mfbcb)) + (mfbba+mfbbc)) + mfbbb; - - rho = c1o1+drho; - //////////////////////////////////////////////////////////////////////////////////// - vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + - (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + - (mfcbb-mfabb)) / rho; - vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + - (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + - (mfbcb-mfbab)) / rho; - vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + - (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + - (mfbbc-mfbba)) / rho; - //////////////////////////////////////////////////////////////////////////////////// - //fast - oMdrho = c1o1; // comp special - vx2=vvx*vvx; - vy2=vvy*vvy; - vz2=vvz*vvz; - //////////////////////////////////////////////////////////////////////////////////// - //Hin - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m2 = mfaaa + mfaac; - m1 = mfaac - mfaaa; - m0 = m2 + mfaab; - mfaaa = m0; - m0 += c1o36 * oMdrho; - mfaab = m1 - m0 * vvz; - mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfabc; - m1 = mfabc - mfaba; - m0 = m2 + mfabb; - mfaba = m0; - m0 += c1o9 * oMdrho; - mfabb = m1 - m0 * vvz; - mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfacc; - m1 = mfacc - mfaca; - m0 = m2 + mfacb; - mfaca = m0; - m0 += c1o36 * oMdrho; - mfacb = m1 - m0 * vvz; - mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbac; - m1 = mfbac - mfbaa; - m0 = m2 + mfbab; - mfbaa = m0; - m0 += c1o9 * oMdrho; - mfbab = m1 - m0 * vvz; - mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbba + mfbbc; - m1 = mfbbc - mfbba; - m0 = m2 + mfbbb; - mfbba = m0; - m0 += c4o9 * oMdrho; - mfbbb = m1 - m0 * vvz; - mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbca + mfbcc; - m1 = mfbcc - mfbca; - m0 = m2 + mfbcb; - mfbca = m0; - m0 += c1o9 * oMdrho; - mfbcb = m1 - m0 * vvz; - mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcac; - m1 = mfcac - mfcaa; - m0 = m2 + mfcab; - mfcaa = m0; - m0 += c1o36 * oMdrho; - mfcab = m1 - m0 * vvz; - mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcba + mfcbc; - m1 = mfcbc - mfcba; - m0 = m2 + mfcbb; - mfcba = m0; - m0 += c1o9 * oMdrho; - mfcbb = m1 - m0 * vvz; - mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcca + mfccc; - m1 = mfccc - mfcca; - m0 = m2 + mfccb; - mfcca = m0; - m0 += c1o36 * oMdrho; - mfccb = m1 - m0 * vvz; - mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m2 = mfaaa + mfaca; - m1 = mfaca - mfaaa; - m0 = m2 + mfaba; - mfaaa = m0; - m0 += c1o6 * oMdrho; - mfaba = m1 - m0 * vvy; - mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfacb; - m1 = mfacb - mfaab; - m0 = m2 + mfabb; - mfaab = m0; - mfabb = m1 - m0 * vvy; - mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfacc; - m1 = mfacc - mfaac; - m0 = m2 + mfabc; - mfaac = m0; - m0 += c1o18 * oMdrho; - mfabc = m1 - m0 * vvy; - mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbca; - m1 = mfbca - mfbaa; - m0 = m2 + mfbba; - mfbaa = m0; - m0 += c2o3 * oMdrho; - mfbba = m1 - m0 * vvy; - mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbab + mfbcb; - m1 = mfbcb - mfbab; - m0 = m2 + mfbbb; - mfbab = m0; - mfbbb = m1 - m0 * vvy; - mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbac + mfbcc; - m1 = mfbcc - mfbac; - m0 = m2 + mfbbc; - mfbac = m0; - m0 += c2o9 * oMdrho; - mfbbc = m1 - m0 * vvy; - mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcca; - m1 = mfcca - mfcaa; - m0 = m2 + mfcba; - mfcaa = m0; - m0 += c1o6 * oMdrho; - mfcba = m1 - m0 * vvy; - mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcab + mfccb; - m1 = mfccb - mfcab; - m0 = m2 + mfcbb; - mfcab = m0; - mfcbb = m1 - m0 * vvy; - mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcac + mfccc; - m1 = mfccc - mfcac; - m0 = m2 + mfcbc; - mfcac = m0; - m0 += c1o18 * oMdrho; - mfcbc = m1 - m0 * vvy; - mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m2 = mfaaa + mfcaa; - m1 = mfcaa - mfaaa; - m0 = m2 + mfbaa; - mfaaa = m0; - m0 += c1o1* oMdrho; - mfbaa = m1 - m0 * vvx; - mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfcba; - m1 = mfcba - mfaba; - m0 = m2 + mfbba; - mfaba = m0; - mfbba = m1 - m0 * vvx; - mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfcca; - m1 = mfcca - mfaca; - m0 = m2 + mfbca; - mfaca = m0; - m0 += c1o3 * oMdrho; - mfbca = m1 - m0 * vvx; - mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfcab; - m1 = mfcab - mfaab; - m0 = m2 + mfbab; - mfaab = m0; - mfbab = m1 - m0 * vvx; - mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabb + mfcbb; - m1 = mfcbb - mfabb; - m0 = m2 + mfbbb; - mfabb = m0; - mfbbb = m1 - m0 * vvx; - mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacb + mfccb; - m1 = mfccb - mfacb; - m0 = m2 + mfbcb; - mfacb = m0; - mfbcb = m1 - m0 * vvx; - mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfcac; - m1 = mfcac - mfaac; - m0 = m2 + mfbac; - mfaac = m0; - m0 += c1o3 * oMdrho; - mfbac = m1 - m0 * vvx; - mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabc + mfcbc; - m1 = mfcbc - mfabc; - m0 = m2 + mfbbc; - mfabc = m0; - mfbbc = m1 - m0 * vvx; - mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacc + mfccc; - m1 = mfccc - mfacc; - m0 = m2 + mfbcc; - mfacc = m0; - m0 += c1o9 * oMdrho; - mfbcc = m1 - m0 * vvx; - mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - // linear combinations + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + mfcbb = f_E ; + mfabb = f_W ; + mfbcb = f_N ; + mfbab = f_S ; + mfbbc = f_T ; + mfbba = f_B ; + mfccb = f_NE ; + mfaab = f_SW ; + mfcab = f_SE ; + mfacb = f_NW ; + mfcbc = f_TE ; + mfaba = f_BW ; + mfcba = f_BE ; + mfabc = f_TW ; + mfbcc = f_TN ; + mfbaa = f_BS ; + mfbca = f_BN ; + mfbac = f_TS ; + mfbbb = f_ZERO; + mfccc = f_TNE ; + mfaac = f_TSW ; + mfcac = f_TSE ; + mfacc = f_TNW ; + mfcca = f_BNE ; + mfaaa = f_BSW ; + mfcaa = f_BSE ; + mfaca = f_BNW ; + //////////////////////////////////////////////////////////////////////////////////// + drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + + (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + + ((mfabb+mfcbb) + (mfbab+mfbcb)) + (mfbba+mfbbc)) + mfbbb; + + rho = c1o1+drho; + //////////////////////////////////////////////////////////////////////////////////// + vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + + (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + + (mfcbb-mfabb)) / rho; + vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + + (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + + (mfbcb-mfbab)) / rho; + vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + + (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + + (mfbbc-mfbba)) / rho; + //////////////////////////////////////////////////////////////////////////////////// + //fast + oMdrho = c1o1; // comp special + vx2=vvx*vvx; + vy2=vvy*vvy; + vz2=vvz*vvz; + //////////////////////////////////////////////////////////////////////////////////// + //Hin + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m2 = mfaaa + mfaac; + m1 = mfaac - mfaaa; + m0 = m2 + mfaab; + mfaaa = m0; + m0 += c1o36 * oMdrho; + mfaab = m1 - m0 * vvz; + mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfabc; + m1 = mfabc - mfaba; + m0 = m2 + mfabb; + mfaba = m0; + m0 += c1o9 * oMdrho; + mfabb = m1 - m0 * vvz; + mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfacc; + m1 = mfacc - mfaca; + m0 = m2 + mfacb; + mfaca = m0; + m0 += c1o36 * oMdrho; + mfacb = m1 - m0 * vvz; + mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbac; + m1 = mfbac - mfbaa; + m0 = m2 + mfbab; + mfbaa = m0; + m0 += c1o9 * oMdrho; + mfbab = m1 - m0 * vvz; + mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbba + mfbbc; + m1 = mfbbc - mfbba; + m0 = m2 + mfbbb; + mfbba = m0; + m0 += c4o9 * oMdrho; + mfbbb = m1 - m0 * vvz; + mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbca + mfbcc; + m1 = mfbcc - mfbca; + m0 = m2 + mfbcb; + mfbca = m0; + m0 += c1o9 * oMdrho; + mfbcb = m1 - m0 * vvz; + mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcac; + m1 = mfcac - mfcaa; + m0 = m2 + mfcab; + mfcaa = m0; + m0 += c1o36 * oMdrho; + mfcab = m1 - m0 * vvz; + mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcba + mfcbc; + m1 = mfcbc - mfcba; + m0 = m2 + mfcbb; + mfcba = m0; + m0 += c1o9 * oMdrho; + mfcbb = m1 - m0 * vvz; + mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcca + mfccc; + m1 = mfccc - mfcca; + m0 = m2 + mfccb; + mfcca = m0; + m0 += c1o36 * oMdrho; + mfccb = m1 - m0 * vvz; + mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m2 = mfaaa + mfaca; + m1 = mfaca - mfaaa; + m0 = m2 + mfaba; + mfaaa = m0; + m0 += c1o6 * oMdrho; + mfaba = m1 - m0 * vvy; + mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfacb; + m1 = mfacb - mfaab; + m0 = m2 + mfabb; + mfaab = m0; + mfabb = m1 - m0 * vvy; + mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfacc; + m1 = mfacc - mfaac; + m0 = m2 + mfabc; + mfaac = m0; + m0 += c1o18 * oMdrho; + mfabc = m1 - m0 * vvy; + mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbca; + m1 = mfbca - mfbaa; + m0 = m2 + mfbba; + mfbaa = m0; + m0 += c2o3 * oMdrho; + mfbba = m1 - m0 * vvy; + mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbab + mfbcb; + m1 = mfbcb - mfbab; + m0 = m2 + mfbbb; + mfbab = m0; + mfbbb = m1 - m0 * vvy; + mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbac + mfbcc; + m1 = mfbcc - mfbac; + m0 = m2 + mfbbc; + mfbac = m0; + m0 += c2o9 * oMdrho; + mfbbc = m1 - m0 * vvy; + mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcca; + m1 = mfcca - mfcaa; + m0 = m2 + mfcba; + mfcaa = m0; + m0 += c1o6 * oMdrho; + mfcba = m1 - m0 * vvy; + mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcab + mfccb; + m1 = mfccb - mfcab; + m0 = m2 + mfcbb; + mfcab = m0; + mfcbb = m1 - m0 * vvy; + mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcac + mfccc; + m1 = mfccc - mfcac; + m0 = m2 + mfcbc; + mfcac = m0; + m0 += c1o18 * oMdrho; + mfcbc = m1 - m0 * vvy; + mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m2 = mfaaa + mfcaa; + m1 = mfcaa - mfaaa; + m0 = m2 + mfbaa; + mfaaa = m0; + m0 += c1o1* oMdrho; + mfbaa = m1 - m0 * vvx; + mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfcba; + m1 = mfcba - mfaba; + m0 = m2 + mfbba; + mfaba = m0; + mfbba = m1 - m0 * vvx; + mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfcca; + m1 = mfcca - mfaca; + m0 = m2 + mfbca; + mfaca = m0; + m0 += c1o3 * oMdrho; + mfbca = m1 - m0 * vvx; + mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfcab; + m1 = mfcab - mfaab; + m0 = m2 + mfbab; + mfaab = m0; + mfbab = m1 - m0 * vvx; + mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabb + mfcbb; + m1 = mfcbb - mfabb; + m0 = m2 + mfbbb; + mfabb = m0; + mfbbb = m1 - m0 * vvx; + mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacb + mfccb; + m1 = mfccb - mfacb; + m0 = m2 + mfbcb; + mfacb = m0; + mfbcb = m1 - m0 * vvx; + mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfcac; + m1 = mfcac - mfaac; + m0 = m2 + mfbac; + mfaac = m0; + m0 += c1o3 * oMdrho; + mfbac = m1 - m0 * vvx; + mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabc + mfcbc; + m1 = mfcbc - mfabc; + m0 = m2 + mfbbc; + mfabc = m0; + mfbbc = m1 - m0 * vvx; + mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacc + mfccc; + m1 = mfccc - mfacc; + m0 = m2 + mfbcc; + mfacc = m0; + m0 += c1o9 * oMdrho; + mfbcc = m1 - m0 * vvx; + mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + // linear combinations - mxxyPyzz = mfcba + mfabc; - mxxyMyzz = mfcba - mfabc; + mxxyPyzz = mfcba + mfabc; + mxxyMyzz = mfcba - mfabc; - mxxzPyyz = mfcab + mfacb; - mxxzMyyz = mfcab - mfacb; + mxxzPyyz = mfcab + mfacb; + mxxzMyyz = mfcab - mfacb; - mxyyPxzz = mfbca + mfbac; - mxyyMxzz = mfbca - mfbac; + mxyyPxzz = mfbca + mfbac; + mxyyMxzz = mfbca - mfbac; - ////////////////////////////////////////////////////////////////////////// - //exclusive for this source node - real mfbbb_SEB = mfbbb; - real mxxyPyzz_SEB = mxxyPyzz; - real mxxyMyzz_SEB = mxxyMyzz; - real mxxzPyyz_SEB = mxxzPyyz; - real mxxzMyyz_SEB = mxxzMyyz; - real mxyyPxzz_SEB = mxyyPxzz; - real mxyyMxzz_SEB = mxyyMxzz; - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// + //exclusive for this source node + real mfbbb_SEB = mfbbb; + real mxxyPyzz_SEB = mxxyPyzz; + real mxxyMyzz_SEB = mxxyMyzz; + real mxxzPyyz_SEB = mxxzPyyz; + real mxxzMyyz_SEB = mxxzMyyz; + real mxyyPxzz_SEB = mxyyPxzz; + real mxyyMxzz_SEB = mxyyMxzz; + ////////////////////////////////////////////////////////////////////////// @@ -12849,8 +12849,8 @@ __global__ void scaleCF_RhoSq_3rdMom_comp_27(real* DC, drho_NWB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; vx1_NWB = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_NWB); - vx2_NWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NWB); - vx3_NWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NWB); + vx2_NWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NWB); + vx3_NWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NWB); kxyFromfcNEQ_NWB = -c3o1*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_NWB) - ((vx1_NWB*vx2_NWB))); kyzFromfcNEQ_NWB = -c3o1*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_NWB) - ((vx2_NWB*vx3_NWB))); @@ -12858,306 +12858,306 @@ __global__ void scaleCF_RhoSq_3rdMom_comp_27(real* DC, kxxMyyFromfcNEQ_NWB = -c3o2*omegaS *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_NWB) - ((vx1_NWB*vx1_NWB-vx2_NWB*vx2_NWB))); kxxMzzFromfcNEQ_NWB = -c3o2*omegaS *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_NWB) - ((vx1_NWB*vx1_NWB-vx3_NWB*vx3_NWB))); - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - mfcbb = f_E ; - mfabb = f_W ; - mfbcb = f_N ; - mfbab = f_S ; - mfbbc = f_T ; - mfbba = f_B ; - mfccb = f_NE ; - mfaab = f_SW ; - mfcab = f_SE ; - mfacb = f_NW ; - mfcbc = f_TE ; - mfaba = f_BW ; - mfcba = f_BE ; - mfabc = f_TW ; - mfbcc = f_TN ; - mfbaa = f_BS ; - mfbca = f_BN ; - mfbac = f_TS ; - mfbbb = f_ZERO; - mfccc = f_TNE ; - mfaac = f_TSW ; - mfcac = f_TSE ; - mfacc = f_TNW ; - mfcca = f_BNE ; - mfaaa = f_BSW ; - mfcaa = f_BSE ; - mfaca = f_BNW ; - //////////////////////////////////////////////////////////////////////////////////// - drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + - (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + - ((mfabb+mfcbb) + (mfbab+mfbcb)) + (mfbba+mfbbc)) + mfbbb; - - rho = c1o1+drho; - //////////////////////////////////////////////////////////////////////////////////// - vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + - (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + - (mfcbb-mfabb)) / rho; - vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + - (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + - (mfbcb-mfbab)) / rho; - vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + - (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + - (mfbbc-mfbba)) / rho; - //////////////////////////////////////////////////////////////////////////////////// - //fast - oMdrho = c1o1; // comp special - vx2=vvx*vvx; - vy2=vvy*vvy; - vz2=vvz*vvz; - //////////////////////////////////////////////////////////////////////////////////// - //Hin - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m2 = mfaaa + mfaac; - m1 = mfaac - mfaaa; - m0 = m2 + mfaab; - mfaaa = m0; - m0 += c1o36 * oMdrho; - mfaab = m1 - m0 * vvz; - mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfabc; - m1 = mfabc - mfaba; - m0 = m2 + mfabb; - mfaba = m0; - m0 += c1o9 * oMdrho; - mfabb = m1 - m0 * vvz; - mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfacc; - m1 = mfacc - mfaca; - m0 = m2 + mfacb; - mfaca = m0; - m0 += c1o36 * oMdrho; - mfacb = m1 - m0 * vvz; - mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbac; - m1 = mfbac - mfbaa; - m0 = m2 + mfbab; - mfbaa = m0; - m0 += c1o9 * oMdrho; - mfbab = m1 - m0 * vvz; - mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbba + mfbbc; - m1 = mfbbc - mfbba; - m0 = m2 + mfbbb; - mfbba = m0; - m0 += c4o9 * oMdrho; - mfbbb = m1 - m0 * vvz; - mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbca + mfbcc; - m1 = mfbcc - mfbca; - m0 = m2 + mfbcb; - mfbca = m0; - m0 += c1o9 * oMdrho; - mfbcb = m1 - m0 * vvz; - mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcac; - m1 = mfcac - mfcaa; - m0 = m2 + mfcab; - mfcaa = m0; - m0 += c1o36 * oMdrho; - mfcab = m1 - m0 * vvz; - mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcba + mfcbc; - m1 = mfcbc - mfcba; - m0 = m2 + mfcbb; - mfcba = m0; - m0 += c1o9 * oMdrho; - mfcbb = m1 - m0 * vvz; - mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcca + mfccc; - m1 = mfccc - mfcca; - m0 = m2 + mfccb; - mfcca = m0; - m0 += c1o36 * oMdrho; - mfccb = m1 - m0 * vvz; - mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m2 = mfaaa + mfaca; - m1 = mfaca - mfaaa; - m0 = m2 + mfaba; - mfaaa = m0; - m0 += c1o6 * oMdrho; - mfaba = m1 - m0 * vvy; - mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfacb; - m1 = mfacb - mfaab; - m0 = m2 + mfabb; - mfaab = m0; - mfabb = m1 - m0 * vvy; - mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfacc; - m1 = mfacc - mfaac; - m0 = m2 + mfabc; - mfaac = m0; - m0 += c1o18 * oMdrho; - mfabc = m1 - m0 * vvy; - mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbca; - m1 = mfbca - mfbaa; - m0 = m2 + mfbba; - mfbaa = m0; - m0 += c2o3 * oMdrho; - mfbba = m1 - m0 * vvy; - mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbab + mfbcb; - m1 = mfbcb - mfbab; - m0 = m2 + mfbbb; - mfbab = m0; - mfbbb = m1 - m0 * vvy; - mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbac + mfbcc; - m1 = mfbcc - mfbac; - m0 = m2 + mfbbc; - mfbac = m0; - m0 += c2o9 * oMdrho; - mfbbc = m1 - m0 * vvy; - mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcca; - m1 = mfcca - mfcaa; - m0 = m2 + mfcba; - mfcaa = m0; - m0 += c1o6 * oMdrho; - mfcba = m1 - m0 * vvy; - mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcab + mfccb; - m1 = mfccb - mfcab; - m0 = m2 + mfcbb; - mfcab = m0; - mfcbb = m1 - m0 * vvy; - mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcac + mfccc; - m1 = mfccc - mfcac; - m0 = m2 + mfcbc; - mfcac = m0; - m0 += c1o18 * oMdrho; - mfcbc = m1 - m0 * vvy; - mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m2 = mfaaa + mfcaa; - m1 = mfcaa - mfaaa; - m0 = m2 + mfbaa; - mfaaa = m0; - m0 += c1o1* oMdrho; - mfbaa = m1 - m0 * vvx; - mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfcba; - m1 = mfcba - mfaba; - m0 = m2 + mfbba; - mfaba = m0; - mfbba = m1 - m0 * vvx; - mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfcca; - m1 = mfcca - mfaca; - m0 = m2 + mfbca; - mfaca = m0; - m0 += c1o3 * oMdrho; - mfbca = m1 - m0 * vvx; - mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfcab; - m1 = mfcab - mfaab; - m0 = m2 + mfbab; - mfaab = m0; - mfbab = m1 - m0 * vvx; - mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabb + mfcbb; - m1 = mfcbb - mfabb; - m0 = m2 + mfbbb; - mfabb = m0; - mfbbb = m1 - m0 * vvx; - mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacb + mfccb; - m1 = mfccb - mfacb; - m0 = m2 + mfbcb; - mfacb = m0; - mfbcb = m1 - m0 * vvx; - mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfcac; - m1 = mfcac - mfaac; - m0 = m2 + mfbac; - mfaac = m0; - m0 += c1o3 * oMdrho; - mfbac = m1 - m0 * vvx; - mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabc + mfcbc; - m1 = mfcbc - mfabc; - m0 = m2 + mfbbc; - mfabc = m0; - mfbbc = m1 - m0 * vvx; - mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacc + mfccc; - m1 = mfccc - mfacc; - m0 = m2 + mfbcc; - mfacc = m0; - m0 += c1o9 * oMdrho; - mfbcc = m1 - m0 * vvx; - mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - // linear combinations + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + mfcbb = f_E ; + mfabb = f_W ; + mfbcb = f_N ; + mfbab = f_S ; + mfbbc = f_T ; + mfbba = f_B ; + mfccb = f_NE ; + mfaab = f_SW ; + mfcab = f_SE ; + mfacb = f_NW ; + mfcbc = f_TE ; + mfaba = f_BW ; + mfcba = f_BE ; + mfabc = f_TW ; + mfbcc = f_TN ; + mfbaa = f_BS ; + mfbca = f_BN ; + mfbac = f_TS ; + mfbbb = f_ZERO; + mfccc = f_TNE ; + mfaac = f_TSW ; + mfcac = f_TSE ; + mfacc = f_TNW ; + mfcca = f_BNE ; + mfaaa = f_BSW ; + mfcaa = f_BSE ; + mfaca = f_BNW ; + //////////////////////////////////////////////////////////////////////////////////// + drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + + (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + + ((mfabb+mfcbb) + (mfbab+mfbcb)) + (mfbba+mfbbc)) + mfbbb; + + rho = c1o1+drho; + //////////////////////////////////////////////////////////////////////////////////// + vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + + (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + + (mfcbb-mfabb)) / rho; + vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + + (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + + (mfbcb-mfbab)) / rho; + vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + + (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + + (mfbbc-mfbba)) / rho; + //////////////////////////////////////////////////////////////////////////////////// + //fast + oMdrho = c1o1; // comp special + vx2=vvx*vvx; + vy2=vvy*vvy; + vz2=vvz*vvz; + //////////////////////////////////////////////////////////////////////////////////// + //Hin + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m2 = mfaaa + mfaac; + m1 = mfaac - mfaaa; + m0 = m2 + mfaab; + mfaaa = m0; + m0 += c1o36 * oMdrho; + mfaab = m1 - m0 * vvz; + mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfabc; + m1 = mfabc - mfaba; + m0 = m2 + mfabb; + mfaba = m0; + m0 += c1o9 * oMdrho; + mfabb = m1 - m0 * vvz; + mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfacc; + m1 = mfacc - mfaca; + m0 = m2 + mfacb; + mfaca = m0; + m0 += c1o36 * oMdrho; + mfacb = m1 - m0 * vvz; + mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbac; + m1 = mfbac - mfbaa; + m0 = m2 + mfbab; + mfbaa = m0; + m0 += c1o9 * oMdrho; + mfbab = m1 - m0 * vvz; + mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbba + mfbbc; + m1 = mfbbc - mfbba; + m0 = m2 + mfbbb; + mfbba = m0; + m0 += c4o9 * oMdrho; + mfbbb = m1 - m0 * vvz; + mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbca + mfbcc; + m1 = mfbcc - mfbca; + m0 = m2 + mfbcb; + mfbca = m0; + m0 += c1o9 * oMdrho; + mfbcb = m1 - m0 * vvz; + mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcac; + m1 = mfcac - mfcaa; + m0 = m2 + mfcab; + mfcaa = m0; + m0 += c1o36 * oMdrho; + mfcab = m1 - m0 * vvz; + mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcba + mfcbc; + m1 = mfcbc - mfcba; + m0 = m2 + mfcbb; + mfcba = m0; + m0 += c1o9 * oMdrho; + mfcbb = m1 - m0 * vvz; + mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcca + mfccc; + m1 = mfccc - mfcca; + m0 = m2 + mfccb; + mfcca = m0; + m0 += c1o36 * oMdrho; + mfccb = m1 - m0 * vvz; + mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m2 = mfaaa + mfaca; + m1 = mfaca - mfaaa; + m0 = m2 + mfaba; + mfaaa = m0; + m0 += c1o6 * oMdrho; + mfaba = m1 - m0 * vvy; + mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfacb; + m1 = mfacb - mfaab; + m0 = m2 + mfabb; + mfaab = m0; + mfabb = m1 - m0 * vvy; + mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfacc; + m1 = mfacc - mfaac; + m0 = m2 + mfabc; + mfaac = m0; + m0 += c1o18 * oMdrho; + mfabc = m1 - m0 * vvy; + mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbca; + m1 = mfbca - mfbaa; + m0 = m2 + mfbba; + mfbaa = m0; + m0 += c2o3 * oMdrho; + mfbba = m1 - m0 * vvy; + mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbab + mfbcb; + m1 = mfbcb - mfbab; + m0 = m2 + mfbbb; + mfbab = m0; + mfbbb = m1 - m0 * vvy; + mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbac + mfbcc; + m1 = mfbcc - mfbac; + m0 = m2 + mfbbc; + mfbac = m0; + m0 += c2o9 * oMdrho; + mfbbc = m1 - m0 * vvy; + mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcca; + m1 = mfcca - mfcaa; + m0 = m2 + mfcba; + mfcaa = m0; + m0 += c1o6 * oMdrho; + mfcba = m1 - m0 * vvy; + mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcab + mfccb; + m1 = mfccb - mfcab; + m0 = m2 + mfcbb; + mfcab = m0; + mfcbb = m1 - m0 * vvy; + mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcac + mfccc; + m1 = mfccc - mfcac; + m0 = m2 + mfcbc; + mfcac = m0; + m0 += c1o18 * oMdrho; + mfcbc = m1 - m0 * vvy; + mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m2 = mfaaa + mfcaa; + m1 = mfcaa - mfaaa; + m0 = m2 + mfbaa; + mfaaa = m0; + m0 += c1o1* oMdrho; + mfbaa = m1 - m0 * vvx; + mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfcba; + m1 = mfcba - mfaba; + m0 = m2 + mfbba; + mfaba = m0; + mfbba = m1 - m0 * vvx; + mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfcca; + m1 = mfcca - mfaca; + m0 = m2 + mfbca; + mfaca = m0; + m0 += c1o3 * oMdrho; + mfbca = m1 - m0 * vvx; + mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfcab; + m1 = mfcab - mfaab; + m0 = m2 + mfbab; + mfaab = m0; + mfbab = m1 - m0 * vvx; + mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabb + mfcbb; + m1 = mfcbb - mfabb; + m0 = m2 + mfbbb; + mfabb = m0; + mfbbb = m1 - m0 * vvx; + mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacb + mfccb; + m1 = mfccb - mfacb; + m0 = m2 + mfbcb; + mfacb = m0; + mfbcb = m1 - m0 * vvx; + mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfcac; + m1 = mfcac - mfaac; + m0 = m2 + mfbac; + mfaac = m0; + m0 += c1o3 * oMdrho; + mfbac = m1 - m0 * vvx; + mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabc + mfcbc; + m1 = mfcbc - mfabc; + m0 = m2 + mfbbc; + mfabc = m0; + mfbbc = m1 - m0 * vvx; + mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacc + mfccc; + m1 = mfccc - mfacc; + m0 = m2 + mfbcc; + mfacc = m0; + m0 += c1o9 * oMdrho; + mfbcc = m1 - m0 * vvx; + mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + // linear combinations - mxxyPyzz = mfcba + mfabc; - mxxyMyzz = mfcba - mfabc; + mxxyPyzz = mfcba + mfabc; + mxxyMyzz = mfcba - mfabc; - mxxzPyyz = mfcab + mfacb; - mxxzMyyz = mfcab - mfacb; + mxxzPyyz = mfcab + mfacb; + mxxzMyyz = mfcab - mfacb; - mxyyPxzz = mfbca + mfbac; - mxyyMxzz = mfbca - mfbac; + mxyyPxzz = mfbca + mfbac; + mxyyMxzz = mfbca - mfbac; - ////////////////////////////////////////////////////////////////////////// - //exclusive for this source node - real mfbbb_NWB = mfbbb; - real mxxyPyzz_NWB = mxxyPyzz; - real mxxyMyzz_NWB = mxxyMyzz; - real mxxzPyyz_NWB = mxxzPyyz; - real mxxzMyyz_NWB = mxxzMyyz; - real mxyyPxzz_NWB = mxyyPxzz; - real mxyyMxzz_NWB = mxyyMxzz; - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// + //exclusive for this source node + real mfbbb_NWB = mfbbb; + real mxxyPyzz_NWB = mxxyPyzz; + real mxxyMyzz_NWB = mxxyMyzz; + real mxxzPyyz_NWB = mxxzPyyz; + real mxxzMyyz_NWB = mxxzMyyz; + real mxyyPxzz_NWB = mxyyPxzz; + real mxyyMxzz_NWB = mxyyMxzz; + ////////////////////////////////////////////////////////////////////////// @@ -13256,8 +13256,8 @@ __global__ void scaleCF_RhoSq_3rdMom_comp_27(real* DC, drho_NWT = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; vx1_NWT = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_NWT); - vx2_NWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NWT); - vx3_NWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NWT); + vx2_NWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NWT); + vx3_NWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NWT); kxyFromfcNEQ_NWT = -c3o1*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_NWT) - ((vx1_NWT*vx2_NWT))); kyzFromfcNEQ_NWT = -c3o1*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_NWT) - ((vx2_NWT*vx3_NWT))); @@ -13265,306 +13265,306 @@ __global__ void scaleCF_RhoSq_3rdMom_comp_27(real* DC, kxxMyyFromfcNEQ_NWT = -c3o2*omegaS *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_NWT) - ((vx1_NWT*vx1_NWT-vx2_NWT*vx2_NWT))); kxxMzzFromfcNEQ_NWT = -c3o2*omegaS *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_NWT) - ((vx1_NWT*vx1_NWT-vx3_NWT*vx3_NWT))); - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - mfcbb = f_E ; - mfabb = f_W ; - mfbcb = f_N ; - mfbab = f_S ; - mfbbc = f_T ; - mfbba = f_B ; - mfccb = f_NE ; - mfaab = f_SW ; - mfcab = f_SE ; - mfacb = f_NW ; - mfcbc = f_TE ; - mfaba = f_BW ; - mfcba = f_BE ; - mfabc = f_TW ; - mfbcc = f_TN ; - mfbaa = f_BS ; - mfbca = f_BN ; - mfbac = f_TS ; - mfbbb = f_ZERO; - mfccc = f_TNE ; - mfaac = f_TSW ; - mfcac = f_TSE ; - mfacc = f_TNW ; - mfcca = f_BNE ; - mfaaa = f_BSW ; - mfcaa = f_BSE ; - mfaca = f_BNW ; - //////////////////////////////////////////////////////////////////////////////////// - drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + - (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + - ((mfabb+mfcbb) + (mfbab+mfbcb)) + (mfbba+mfbbc)) + mfbbb; - - rho = c1o1+drho; - //////////////////////////////////////////////////////////////////////////////////// - vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + - (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + - (mfcbb-mfabb)) / rho; - vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + - (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + - (mfbcb-mfbab)) / rho; - vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + - (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + - (mfbbc-mfbba)) / rho; - //////////////////////////////////////////////////////////////////////////////////// - //fast - oMdrho = c1o1; // comp special - vx2=vvx*vvx; - vy2=vvy*vvy; - vz2=vvz*vvz; - //////////////////////////////////////////////////////////////////////////////////// - //Hin - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m2 = mfaaa + mfaac; - m1 = mfaac - mfaaa; - m0 = m2 + mfaab; - mfaaa = m0; - m0 += c1o36 * oMdrho; - mfaab = m1 - m0 * vvz; - mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfabc; - m1 = mfabc - mfaba; - m0 = m2 + mfabb; - mfaba = m0; - m0 += c1o9 * oMdrho; - mfabb = m1 - m0 * vvz; - mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfacc; - m1 = mfacc - mfaca; - m0 = m2 + mfacb; - mfaca = m0; - m0 += c1o36 * oMdrho; - mfacb = m1 - m0 * vvz; - mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbac; - m1 = mfbac - mfbaa; - m0 = m2 + mfbab; - mfbaa = m0; - m0 += c1o9 * oMdrho; - mfbab = m1 - m0 * vvz; - mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbba + mfbbc; - m1 = mfbbc - mfbba; - m0 = m2 + mfbbb; - mfbba = m0; - m0 += c4o9 * oMdrho; - mfbbb = m1 - m0 * vvz; - mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbca + mfbcc; - m1 = mfbcc - mfbca; - m0 = m2 + mfbcb; - mfbca = m0; - m0 += c1o9 * oMdrho; - mfbcb = m1 - m0 * vvz; - mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcac; - m1 = mfcac - mfcaa; - m0 = m2 + mfcab; - mfcaa = m0; - m0 += c1o36 * oMdrho; - mfcab = m1 - m0 * vvz; - mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcba + mfcbc; - m1 = mfcbc - mfcba; - m0 = m2 + mfcbb; - mfcba = m0; - m0 += c1o9 * oMdrho; - mfcbb = m1 - m0 * vvz; - mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcca + mfccc; - m1 = mfccc - mfcca; - m0 = m2 + mfccb; - mfcca = m0; - m0 += c1o36 * oMdrho; - mfccb = m1 - m0 * vvz; - mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m2 = mfaaa + mfaca; - m1 = mfaca - mfaaa; - m0 = m2 + mfaba; - mfaaa = m0; - m0 += c1o6 * oMdrho; - mfaba = m1 - m0 * vvy; - mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfacb; - m1 = mfacb - mfaab; - m0 = m2 + mfabb; - mfaab = m0; - mfabb = m1 - m0 * vvy; - mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfacc; - m1 = mfacc - mfaac; - m0 = m2 + mfabc; - mfaac = m0; - m0 += c1o18 * oMdrho; - mfabc = m1 - m0 * vvy; - mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbca; - m1 = mfbca - mfbaa; - m0 = m2 + mfbba; - mfbaa = m0; - m0 += c2o3 * oMdrho; - mfbba = m1 - m0 * vvy; - mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbab + mfbcb; - m1 = mfbcb - mfbab; - m0 = m2 + mfbbb; - mfbab = m0; - mfbbb = m1 - m0 * vvy; - mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbac + mfbcc; - m1 = mfbcc - mfbac; - m0 = m2 + mfbbc; - mfbac = m0; - m0 += c2o9 * oMdrho; - mfbbc = m1 - m0 * vvy; - mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcca; - m1 = mfcca - mfcaa; - m0 = m2 + mfcba; - mfcaa = m0; - m0 += c1o6 * oMdrho; - mfcba = m1 - m0 * vvy; - mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcab + mfccb; - m1 = mfccb - mfcab; - m0 = m2 + mfcbb; - mfcab = m0; - mfcbb = m1 - m0 * vvy; - mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcac + mfccc; - m1 = mfccc - mfcac; - m0 = m2 + mfcbc; - mfcac = m0; - m0 += c1o18 * oMdrho; - mfcbc = m1 - m0 * vvy; - mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m2 = mfaaa + mfcaa; - m1 = mfcaa - mfaaa; - m0 = m2 + mfbaa; - mfaaa = m0; - m0 += c1o1* oMdrho; - mfbaa = m1 - m0 * vvx; - mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfcba; - m1 = mfcba - mfaba; - m0 = m2 + mfbba; - mfaba = m0; - mfbba = m1 - m0 * vvx; - mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfcca; - m1 = mfcca - mfaca; - m0 = m2 + mfbca; - mfaca = m0; - m0 += c1o3 * oMdrho; - mfbca = m1 - m0 * vvx; - mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfcab; - m1 = mfcab - mfaab; - m0 = m2 + mfbab; - mfaab = m0; - mfbab = m1 - m0 * vvx; - mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabb + mfcbb; - m1 = mfcbb - mfabb; - m0 = m2 + mfbbb; - mfabb = m0; - mfbbb = m1 - m0 * vvx; - mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacb + mfccb; - m1 = mfccb - mfacb; - m0 = m2 + mfbcb; - mfacb = m0; - mfbcb = m1 - m0 * vvx; - mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfcac; - m1 = mfcac - mfaac; - m0 = m2 + mfbac; - mfaac = m0; - m0 += c1o3 * oMdrho; - mfbac = m1 - m0 * vvx; - mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabc + mfcbc; - m1 = mfcbc - mfabc; - m0 = m2 + mfbbc; - mfabc = m0; - mfbbc = m1 - m0 * vvx; - mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacc + mfccc; - m1 = mfccc - mfacc; - m0 = m2 + mfbcc; - mfacc = m0; - m0 += c1o9 * oMdrho; - mfbcc = m1 - m0 * vvx; - mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - // linear combinations + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + mfcbb = f_E ; + mfabb = f_W ; + mfbcb = f_N ; + mfbab = f_S ; + mfbbc = f_T ; + mfbba = f_B ; + mfccb = f_NE ; + mfaab = f_SW ; + mfcab = f_SE ; + mfacb = f_NW ; + mfcbc = f_TE ; + mfaba = f_BW ; + mfcba = f_BE ; + mfabc = f_TW ; + mfbcc = f_TN ; + mfbaa = f_BS ; + mfbca = f_BN ; + mfbac = f_TS ; + mfbbb = f_ZERO; + mfccc = f_TNE ; + mfaac = f_TSW ; + mfcac = f_TSE ; + mfacc = f_TNW ; + mfcca = f_BNE ; + mfaaa = f_BSW ; + mfcaa = f_BSE ; + mfaca = f_BNW ; + //////////////////////////////////////////////////////////////////////////////////// + drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + + (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + + ((mfabb+mfcbb) + (mfbab+mfbcb)) + (mfbba+mfbbc)) + mfbbb; + + rho = c1o1+drho; + //////////////////////////////////////////////////////////////////////////////////// + vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + + (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + + (mfcbb-mfabb)) / rho; + vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + + (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + + (mfbcb-mfbab)) / rho; + vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + + (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + + (mfbbc-mfbba)) / rho; + //////////////////////////////////////////////////////////////////////////////////// + //fast + oMdrho = c1o1; // comp special + vx2=vvx*vvx; + vy2=vvy*vvy; + vz2=vvz*vvz; + //////////////////////////////////////////////////////////////////////////////////// + //Hin + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m2 = mfaaa + mfaac; + m1 = mfaac - mfaaa; + m0 = m2 + mfaab; + mfaaa = m0; + m0 += c1o36 * oMdrho; + mfaab = m1 - m0 * vvz; + mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfabc; + m1 = mfabc - mfaba; + m0 = m2 + mfabb; + mfaba = m0; + m0 += c1o9 * oMdrho; + mfabb = m1 - m0 * vvz; + mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfacc; + m1 = mfacc - mfaca; + m0 = m2 + mfacb; + mfaca = m0; + m0 += c1o36 * oMdrho; + mfacb = m1 - m0 * vvz; + mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbac; + m1 = mfbac - mfbaa; + m0 = m2 + mfbab; + mfbaa = m0; + m0 += c1o9 * oMdrho; + mfbab = m1 - m0 * vvz; + mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbba + mfbbc; + m1 = mfbbc - mfbba; + m0 = m2 + mfbbb; + mfbba = m0; + m0 += c4o9 * oMdrho; + mfbbb = m1 - m0 * vvz; + mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbca + mfbcc; + m1 = mfbcc - mfbca; + m0 = m2 + mfbcb; + mfbca = m0; + m0 += c1o9 * oMdrho; + mfbcb = m1 - m0 * vvz; + mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcac; + m1 = mfcac - mfcaa; + m0 = m2 + mfcab; + mfcaa = m0; + m0 += c1o36 * oMdrho; + mfcab = m1 - m0 * vvz; + mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcba + mfcbc; + m1 = mfcbc - mfcba; + m0 = m2 + mfcbb; + mfcba = m0; + m0 += c1o9 * oMdrho; + mfcbb = m1 - m0 * vvz; + mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcca + mfccc; + m1 = mfccc - mfcca; + m0 = m2 + mfccb; + mfcca = m0; + m0 += c1o36 * oMdrho; + mfccb = m1 - m0 * vvz; + mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m2 = mfaaa + mfaca; + m1 = mfaca - mfaaa; + m0 = m2 + mfaba; + mfaaa = m0; + m0 += c1o6 * oMdrho; + mfaba = m1 - m0 * vvy; + mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfacb; + m1 = mfacb - mfaab; + m0 = m2 + mfabb; + mfaab = m0; + mfabb = m1 - m0 * vvy; + mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfacc; + m1 = mfacc - mfaac; + m0 = m2 + mfabc; + mfaac = m0; + m0 += c1o18 * oMdrho; + mfabc = m1 - m0 * vvy; + mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbca; + m1 = mfbca - mfbaa; + m0 = m2 + mfbba; + mfbaa = m0; + m0 += c2o3 * oMdrho; + mfbba = m1 - m0 * vvy; + mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbab + mfbcb; + m1 = mfbcb - mfbab; + m0 = m2 + mfbbb; + mfbab = m0; + mfbbb = m1 - m0 * vvy; + mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbac + mfbcc; + m1 = mfbcc - mfbac; + m0 = m2 + mfbbc; + mfbac = m0; + m0 += c2o9 * oMdrho; + mfbbc = m1 - m0 * vvy; + mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcca; + m1 = mfcca - mfcaa; + m0 = m2 + mfcba; + mfcaa = m0; + m0 += c1o6 * oMdrho; + mfcba = m1 - m0 * vvy; + mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcab + mfccb; + m1 = mfccb - mfcab; + m0 = m2 + mfcbb; + mfcab = m0; + mfcbb = m1 - m0 * vvy; + mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcac + mfccc; + m1 = mfccc - mfcac; + m0 = m2 + mfcbc; + mfcac = m0; + m0 += c1o18 * oMdrho; + mfcbc = m1 - m0 * vvy; + mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m2 = mfaaa + mfcaa; + m1 = mfcaa - mfaaa; + m0 = m2 + mfbaa; + mfaaa = m0; + m0 += c1o1* oMdrho; + mfbaa = m1 - m0 * vvx; + mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfcba; + m1 = mfcba - mfaba; + m0 = m2 + mfbba; + mfaba = m0; + mfbba = m1 - m0 * vvx; + mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfcca; + m1 = mfcca - mfaca; + m0 = m2 + mfbca; + mfaca = m0; + m0 += c1o3 * oMdrho; + mfbca = m1 - m0 * vvx; + mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfcab; + m1 = mfcab - mfaab; + m0 = m2 + mfbab; + mfaab = m0; + mfbab = m1 - m0 * vvx; + mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabb + mfcbb; + m1 = mfcbb - mfabb; + m0 = m2 + mfbbb; + mfabb = m0; + mfbbb = m1 - m0 * vvx; + mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacb + mfccb; + m1 = mfccb - mfacb; + m0 = m2 + mfbcb; + mfacb = m0; + mfbcb = m1 - m0 * vvx; + mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfcac; + m1 = mfcac - mfaac; + m0 = m2 + mfbac; + mfaac = m0; + m0 += c1o3 * oMdrho; + mfbac = m1 - m0 * vvx; + mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabc + mfcbc; + m1 = mfcbc - mfabc; + m0 = m2 + mfbbc; + mfabc = m0; + mfbbc = m1 - m0 * vvx; + mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacc + mfccc; + m1 = mfccc - mfacc; + m0 = m2 + mfbcc; + mfacc = m0; + m0 += c1o9 * oMdrho; + mfbcc = m1 - m0 * vvx; + mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + // linear combinations - mxxyPyzz = mfcba + mfabc; - mxxyMyzz = mfcba - mfabc; + mxxyPyzz = mfcba + mfabc; + mxxyMyzz = mfcba - mfabc; - mxxzPyyz = mfcab + mfacb; - mxxzMyyz = mfcab - mfacb; + mxxzPyyz = mfcab + mfacb; + mxxzMyyz = mfcab - mfacb; - mxyyPxzz = mfbca + mfbac; - mxyyMxzz = mfbca - mfbac; + mxyyPxzz = mfbca + mfbac; + mxyyMxzz = mfbca - mfbac; - ////////////////////////////////////////////////////////////////////////// - //exclusive for this source node - real mfbbb_NWT = mfbbb; - real mxxyPyzz_NWT = mxxyPyzz; - real mxxyMyzz_NWT = mxxyMyzz; - real mxxzPyyz_NWT = mxxzPyyz; - real mxxzMyyz_NWT = mxxzMyyz; - real mxyyPxzz_NWT = mxyyPxzz; - real mxyyMxzz_NWT = mxyyMxzz; - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// + //exclusive for this source node + real mfbbb_NWT = mfbbb; + real mxxyPyzz_NWT = mxxyPyzz; + real mxxyMyzz_NWT = mxxyMyzz; + real mxxzPyyz_NWT = mxxzPyyz; + real mxxzMyyz_NWT = mxxzMyyz; + real mxyyPxzz_NWT = mxyyPxzz; + real mxyyMxzz_NWT = mxyyMxzz; + ////////////////////////////////////////////////////////////////////////// @@ -13663,8 +13663,8 @@ __global__ void scaleCF_RhoSq_3rdMom_comp_27(real* DC, drho_NET = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; vx1_NET = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_NET); - vx2_NET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NET); - vx3_NET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NET); + vx2_NET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NET); + vx3_NET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NET); kxyFromfcNEQ_NET = -c3o1*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_NET) - ((vx1_NET*vx2_NET))); kyzFromfcNEQ_NET = -c3o1*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_NET) - ((vx2_NET*vx3_NET))); @@ -13672,306 +13672,306 @@ __global__ void scaleCF_RhoSq_3rdMom_comp_27(real* DC, kxxMyyFromfcNEQ_NET = -c3o2*omegaS *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_NET) - ((vx1_NET*vx1_NET-vx2_NET*vx2_NET))); kxxMzzFromfcNEQ_NET = -c3o2*omegaS *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_NET) - ((vx1_NET*vx1_NET-vx3_NET*vx3_NET))); - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - mfcbb = f_E ; - mfabb = f_W ; - mfbcb = f_N ; - mfbab = f_S ; - mfbbc = f_T ; - mfbba = f_B ; - mfccb = f_NE ; - mfaab = f_SW ; - mfcab = f_SE ; - mfacb = f_NW ; - mfcbc = f_TE ; - mfaba = f_BW ; - mfcba = f_BE ; - mfabc = f_TW ; - mfbcc = f_TN ; - mfbaa = f_BS ; - mfbca = f_BN ; - mfbac = f_TS ; - mfbbb = f_ZERO; - mfccc = f_TNE ; - mfaac = f_TSW ; - mfcac = f_TSE ; - mfacc = f_TNW ; - mfcca = f_BNE ; - mfaaa = f_BSW ; - mfcaa = f_BSE ; - mfaca = f_BNW ; - //////////////////////////////////////////////////////////////////////////////////// - drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + - (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + - ((mfabb+mfcbb) + (mfbab+mfbcb)) + (mfbba+mfbbc)) + mfbbb; - - rho = c1o1+drho; - //////////////////////////////////////////////////////////////////////////////////// - vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + - (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + - (mfcbb-mfabb)) / rho; - vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + - (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + - (mfbcb-mfbab)) / rho; - vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + - (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + - (mfbbc-mfbba)) / rho; - //////////////////////////////////////////////////////////////////////////////////// - //fast - oMdrho = c1o1; // comp special - vx2=vvx*vvx; - vy2=vvy*vvy; - vz2=vvz*vvz; - //////////////////////////////////////////////////////////////////////////////////// - //Hin - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m2 = mfaaa + mfaac; - m1 = mfaac - mfaaa; - m0 = m2 + mfaab; - mfaaa = m0; - m0 += c1o36 * oMdrho; - mfaab = m1 - m0 * vvz; - mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfabc; - m1 = mfabc - mfaba; - m0 = m2 + mfabb; - mfaba = m0; - m0 += c1o9 * oMdrho; - mfabb = m1 - m0 * vvz; - mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfacc; - m1 = mfacc - mfaca; - m0 = m2 + mfacb; - mfaca = m0; - m0 += c1o36 * oMdrho; - mfacb = m1 - m0 * vvz; - mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbac; - m1 = mfbac - mfbaa; - m0 = m2 + mfbab; - mfbaa = m0; - m0 += c1o9 * oMdrho; - mfbab = m1 - m0 * vvz; - mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbba + mfbbc; - m1 = mfbbc - mfbba; - m0 = m2 + mfbbb; - mfbba = m0; - m0 += c4o9 * oMdrho; - mfbbb = m1 - m0 * vvz; - mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbca + mfbcc; - m1 = mfbcc - mfbca; - m0 = m2 + mfbcb; - mfbca = m0; - m0 += c1o9 * oMdrho; - mfbcb = m1 - m0 * vvz; - mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcac; - m1 = mfcac - mfcaa; - m0 = m2 + mfcab; - mfcaa = m0; - m0 += c1o36 * oMdrho; - mfcab = m1 - m0 * vvz; - mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcba + mfcbc; - m1 = mfcbc - mfcba; - m0 = m2 + mfcbb; - mfcba = m0; - m0 += c1o9 * oMdrho; - mfcbb = m1 - m0 * vvz; - mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcca + mfccc; - m1 = mfccc - mfcca; - m0 = m2 + mfccb; - mfcca = m0; - m0 += c1o36 * oMdrho; - mfccb = m1 - m0 * vvz; - mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m2 = mfaaa + mfaca; - m1 = mfaca - mfaaa; - m0 = m2 + mfaba; - mfaaa = m0; - m0 += c1o6 * oMdrho; - mfaba = m1 - m0 * vvy; - mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfacb; - m1 = mfacb - mfaab; - m0 = m2 + mfabb; - mfaab = m0; - mfabb = m1 - m0 * vvy; - mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfacc; - m1 = mfacc - mfaac; - m0 = m2 + mfabc; - mfaac = m0; - m0 += c1o18 * oMdrho; - mfabc = m1 - m0 * vvy; - mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbca; - m1 = mfbca - mfbaa; - m0 = m2 + mfbba; - mfbaa = m0; - m0 += c2o3 * oMdrho; - mfbba = m1 - m0 * vvy; - mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbab + mfbcb; - m1 = mfbcb - mfbab; - m0 = m2 + mfbbb; - mfbab = m0; - mfbbb = m1 - m0 * vvy; - mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbac + mfbcc; - m1 = mfbcc - mfbac; - m0 = m2 + mfbbc; - mfbac = m0; - m0 += c2o9 * oMdrho; - mfbbc = m1 - m0 * vvy; - mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcca; - m1 = mfcca - mfcaa; - m0 = m2 + mfcba; - mfcaa = m0; - m0 += c1o6 * oMdrho; - mfcba = m1 - m0 * vvy; - mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcab + mfccb; - m1 = mfccb - mfcab; - m0 = m2 + mfcbb; - mfcab = m0; - mfcbb = m1 - m0 * vvy; - mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcac + mfccc; - m1 = mfccc - mfcac; - m0 = m2 + mfcbc; - mfcac = m0; - m0 += c1o18 * oMdrho; - mfcbc = m1 - m0 * vvy; - mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m2 = mfaaa + mfcaa; - m1 = mfcaa - mfaaa; - m0 = m2 + mfbaa; - mfaaa = m0; - m0 += c1o1* oMdrho; - mfbaa = m1 - m0 * vvx; - mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfcba; - m1 = mfcba - mfaba; - m0 = m2 + mfbba; - mfaba = m0; - mfbba = m1 - m0 * vvx; - mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfcca; - m1 = mfcca - mfaca; - m0 = m2 + mfbca; - mfaca = m0; - m0 += c1o3 * oMdrho; - mfbca = m1 - m0 * vvx; - mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfcab; - m1 = mfcab - mfaab; - m0 = m2 + mfbab; - mfaab = m0; - mfbab = m1 - m0 * vvx; - mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabb + mfcbb; - m1 = mfcbb - mfabb; - m0 = m2 + mfbbb; - mfabb = m0; - mfbbb = m1 - m0 * vvx; - mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacb + mfccb; - m1 = mfccb - mfacb; - m0 = m2 + mfbcb; - mfacb = m0; - mfbcb = m1 - m0 * vvx; - mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfcac; - m1 = mfcac - mfaac; - m0 = m2 + mfbac; - mfaac = m0; - m0 += c1o3 * oMdrho; - mfbac = m1 - m0 * vvx; - mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabc + mfcbc; - m1 = mfcbc - mfabc; - m0 = m2 + mfbbc; - mfabc = m0; - mfbbc = m1 - m0 * vvx; - mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacc + mfccc; - m1 = mfccc - mfacc; - m0 = m2 + mfbcc; - mfacc = m0; - m0 += c1o9 * oMdrho; - mfbcc = m1 - m0 * vvx; - mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - // linear combinations + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + mfcbb = f_E ; + mfabb = f_W ; + mfbcb = f_N ; + mfbab = f_S ; + mfbbc = f_T ; + mfbba = f_B ; + mfccb = f_NE ; + mfaab = f_SW ; + mfcab = f_SE ; + mfacb = f_NW ; + mfcbc = f_TE ; + mfaba = f_BW ; + mfcba = f_BE ; + mfabc = f_TW ; + mfbcc = f_TN ; + mfbaa = f_BS ; + mfbca = f_BN ; + mfbac = f_TS ; + mfbbb = f_ZERO; + mfccc = f_TNE ; + mfaac = f_TSW ; + mfcac = f_TSE ; + mfacc = f_TNW ; + mfcca = f_BNE ; + mfaaa = f_BSW ; + mfcaa = f_BSE ; + mfaca = f_BNW ; + //////////////////////////////////////////////////////////////////////////////////// + drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + + (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + + ((mfabb+mfcbb) + (mfbab+mfbcb)) + (mfbba+mfbbc)) + mfbbb; + + rho = c1o1+drho; + //////////////////////////////////////////////////////////////////////////////////// + vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + + (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + + (mfcbb-mfabb)) / rho; + vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + + (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + + (mfbcb-mfbab)) / rho; + vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + + (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + + (mfbbc-mfbba)) / rho; + //////////////////////////////////////////////////////////////////////////////////// + //fast + oMdrho = c1o1; // comp special + vx2=vvx*vvx; + vy2=vvy*vvy; + vz2=vvz*vvz; + //////////////////////////////////////////////////////////////////////////////////// + //Hin + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m2 = mfaaa + mfaac; + m1 = mfaac - mfaaa; + m0 = m2 + mfaab; + mfaaa = m0; + m0 += c1o36 * oMdrho; + mfaab = m1 - m0 * vvz; + mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfabc; + m1 = mfabc - mfaba; + m0 = m2 + mfabb; + mfaba = m0; + m0 += c1o9 * oMdrho; + mfabb = m1 - m0 * vvz; + mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfacc; + m1 = mfacc - mfaca; + m0 = m2 + mfacb; + mfaca = m0; + m0 += c1o36 * oMdrho; + mfacb = m1 - m0 * vvz; + mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbac; + m1 = mfbac - mfbaa; + m0 = m2 + mfbab; + mfbaa = m0; + m0 += c1o9 * oMdrho; + mfbab = m1 - m0 * vvz; + mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbba + mfbbc; + m1 = mfbbc - mfbba; + m0 = m2 + mfbbb; + mfbba = m0; + m0 += c4o9 * oMdrho; + mfbbb = m1 - m0 * vvz; + mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbca + mfbcc; + m1 = mfbcc - mfbca; + m0 = m2 + mfbcb; + mfbca = m0; + m0 += c1o9 * oMdrho; + mfbcb = m1 - m0 * vvz; + mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcac; + m1 = mfcac - mfcaa; + m0 = m2 + mfcab; + mfcaa = m0; + m0 += c1o36 * oMdrho; + mfcab = m1 - m0 * vvz; + mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcba + mfcbc; + m1 = mfcbc - mfcba; + m0 = m2 + mfcbb; + mfcba = m0; + m0 += c1o9 * oMdrho; + mfcbb = m1 - m0 * vvz; + mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcca + mfccc; + m1 = mfccc - mfcca; + m0 = m2 + mfccb; + mfcca = m0; + m0 += c1o36 * oMdrho; + mfccb = m1 - m0 * vvz; + mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m2 = mfaaa + mfaca; + m1 = mfaca - mfaaa; + m0 = m2 + mfaba; + mfaaa = m0; + m0 += c1o6 * oMdrho; + mfaba = m1 - m0 * vvy; + mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfacb; + m1 = mfacb - mfaab; + m0 = m2 + mfabb; + mfaab = m0; + mfabb = m1 - m0 * vvy; + mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfacc; + m1 = mfacc - mfaac; + m0 = m2 + mfabc; + mfaac = m0; + m0 += c1o18 * oMdrho; + mfabc = m1 - m0 * vvy; + mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbca; + m1 = mfbca - mfbaa; + m0 = m2 + mfbba; + mfbaa = m0; + m0 += c2o3 * oMdrho; + mfbba = m1 - m0 * vvy; + mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbab + mfbcb; + m1 = mfbcb - mfbab; + m0 = m2 + mfbbb; + mfbab = m0; + mfbbb = m1 - m0 * vvy; + mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbac + mfbcc; + m1 = mfbcc - mfbac; + m0 = m2 + mfbbc; + mfbac = m0; + m0 += c2o9 * oMdrho; + mfbbc = m1 - m0 * vvy; + mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcca; + m1 = mfcca - mfcaa; + m0 = m2 + mfcba; + mfcaa = m0; + m0 += c1o6 * oMdrho; + mfcba = m1 - m0 * vvy; + mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcab + mfccb; + m1 = mfccb - mfcab; + m0 = m2 + mfcbb; + mfcab = m0; + mfcbb = m1 - m0 * vvy; + mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcac + mfccc; + m1 = mfccc - mfcac; + m0 = m2 + mfcbc; + mfcac = m0; + m0 += c1o18 * oMdrho; + mfcbc = m1 - m0 * vvy; + mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m2 = mfaaa + mfcaa; + m1 = mfcaa - mfaaa; + m0 = m2 + mfbaa; + mfaaa = m0; + m0 += c1o1* oMdrho; + mfbaa = m1 - m0 * vvx; + mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfcba; + m1 = mfcba - mfaba; + m0 = m2 + mfbba; + mfaba = m0; + mfbba = m1 - m0 * vvx; + mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfcca; + m1 = mfcca - mfaca; + m0 = m2 + mfbca; + mfaca = m0; + m0 += c1o3 * oMdrho; + mfbca = m1 - m0 * vvx; + mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfcab; + m1 = mfcab - mfaab; + m0 = m2 + mfbab; + mfaab = m0; + mfbab = m1 - m0 * vvx; + mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabb + mfcbb; + m1 = mfcbb - mfabb; + m0 = m2 + mfbbb; + mfabb = m0; + mfbbb = m1 - m0 * vvx; + mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacb + mfccb; + m1 = mfccb - mfacb; + m0 = m2 + mfbcb; + mfacb = m0; + mfbcb = m1 - m0 * vvx; + mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfcac; + m1 = mfcac - mfaac; + m0 = m2 + mfbac; + mfaac = m0; + m0 += c1o3 * oMdrho; + mfbac = m1 - m0 * vvx; + mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabc + mfcbc; + m1 = mfcbc - mfabc; + m0 = m2 + mfbbc; + mfabc = m0; + mfbbc = m1 - m0 * vvx; + mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacc + mfccc; + m1 = mfccc - mfacc; + m0 = m2 + mfbcc; + mfacc = m0; + m0 += c1o9 * oMdrho; + mfbcc = m1 - m0 * vvx; + mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + // linear combinations - mxxyPyzz = mfcba + mfabc; - mxxyMyzz = mfcba - mfabc; + mxxyPyzz = mfcba + mfabc; + mxxyMyzz = mfcba - mfabc; - mxxzPyyz = mfcab + mfacb; - mxxzMyyz = mfcab - mfacb; + mxxzPyyz = mfcab + mfacb; + mxxzMyyz = mfcab - mfacb; - mxyyPxzz = mfbca + mfbac; - mxyyMxzz = mfbca - mfbac; + mxyyPxzz = mfbca + mfbac; + mxyyMxzz = mfbca - mfbac; - ////////////////////////////////////////////////////////////////////////// - //exclusive for this source node - real mfbbb_NET = mfbbb; - real mxxyPyzz_NET = mxxyPyzz; - real mxxyMyzz_NET = mxxyMyzz; - real mxxzPyyz_NET = mxxzPyyz; - real mxxzMyyz_NET = mxxzMyyz; - real mxyyPxzz_NET = mxyyPxzz; - real mxyyMxzz_NET = mxyyMxzz; - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// + //exclusive for this source node + real mfbbb_NET = mfbbb; + real mxxyPyzz_NET = mxxyPyzz; + real mxxyMyzz_NET = mxxyMyzz; + real mxxzPyyz_NET = mxxzPyyz; + real mxxzMyyz_NET = mxxzMyyz; + real mxyyPxzz_NET = mxyyPxzz; + real mxyyMxzz_NET = mxyyMxzz; + ////////////////////////////////////////////////////////////////////////// @@ -14070,8 +14070,8 @@ __global__ void scaleCF_RhoSq_3rdMom_comp_27(real* DC, drho_NEB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; vx1_NEB = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_NEB); - vx2_NEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NEB); - vx3_NEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NEB); + vx2_NEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NEB); + vx3_NEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NEB); kxyFromfcNEQ_NEB = -c3o1*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_NEB) - ((vx1_NEB*vx2_NEB))); kyzFromfcNEQ_NEB = -c3o1*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_NEB) - ((vx2_NEB*vx3_NEB))); @@ -14079,306 +14079,306 @@ __global__ void scaleCF_RhoSq_3rdMom_comp_27(real* DC, kxxMyyFromfcNEQ_NEB = -c3o2*omegaS *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_NEB) - ((vx1_NEB*vx1_NEB-vx2_NEB*vx2_NEB))); kxxMzzFromfcNEQ_NEB = -c3o2*omegaS *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_NEB) - ((vx1_NEB*vx1_NEB-vx3_NEB*vx3_NEB))); - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - mfcbb = f_E ; - mfabb = f_W ; - mfbcb = f_N ; - mfbab = f_S ; - mfbbc = f_T ; - mfbba = f_B ; - mfccb = f_NE ; - mfaab = f_SW ; - mfcab = f_SE ; - mfacb = f_NW ; - mfcbc = f_TE ; - mfaba = f_BW ; - mfcba = f_BE ; - mfabc = f_TW ; - mfbcc = f_TN ; - mfbaa = f_BS ; - mfbca = f_BN ; - mfbac = f_TS ; - mfbbb = f_ZERO; - mfccc = f_TNE ; - mfaac = f_TSW ; - mfcac = f_TSE ; - mfacc = f_TNW ; - mfcca = f_BNE ; - mfaaa = f_BSW ; - mfcaa = f_BSE ; - mfaca = f_BNW ; - //////////////////////////////////////////////////////////////////////////////////// - drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + - (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + - ((mfabb+mfcbb) + (mfbab+mfbcb)) + (mfbba+mfbbc)) + mfbbb; - - rho = c1o1+drho; - //////////////////////////////////////////////////////////////////////////////////// - vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + - (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + - (mfcbb-mfabb)) / rho; - vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + - (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + - (mfbcb-mfbab)) / rho; - vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + - (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + - (mfbbc-mfbba)) / rho; - //////////////////////////////////////////////////////////////////////////////////// - //fast - oMdrho = c1o1; // comp special - vx2=vvx*vvx; - vy2=vvy*vvy; - vz2=vvz*vvz; - //////////////////////////////////////////////////////////////////////////////////// - //Hin - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m2 = mfaaa + mfaac; - m1 = mfaac - mfaaa; - m0 = m2 + mfaab; - mfaaa = m0; - m0 += c1o36 * oMdrho; - mfaab = m1 - m0 * vvz; - mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfabc; - m1 = mfabc - mfaba; - m0 = m2 + mfabb; - mfaba = m0; - m0 += c1o9 * oMdrho; - mfabb = m1 - m0 * vvz; - mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfacc; - m1 = mfacc - mfaca; - m0 = m2 + mfacb; - mfaca = m0; - m0 += c1o36 * oMdrho; - mfacb = m1 - m0 * vvz; - mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbac; - m1 = mfbac - mfbaa; - m0 = m2 + mfbab; - mfbaa = m0; - m0 += c1o9 * oMdrho; - mfbab = m1 - m0 * vvz; - mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbba + mfbbc; - m1 = mfbbc - mfbba; - m0 = m2 + mfbbb; - mfbba = m0; - m0 += c4o9 * oMdrho; - mfbbb = m1 - m0 * vvz; - mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbca + mfbcc; - m1 = mfbcc - mfbca; - m0 = m2 + mfbcb; - mfbca = m0; - m0 += c1o9 * oMdrho; - mfbcb = m1 - m0 * vvz; - mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcac; - m1 = mfcac - mfcaa; - m0 = m2 + mfcab; - mfcaa = m0; - m0 += c1o36 * oMdrho; - mfcab = m1 - m0 * vvz; - mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcba + mfcbc; - m1 = mfcbc - mfcba; - m0 = m2 + mfcbb; - mfcba = m0; - m0 += c1o9 * oMdrho; - mfcbb = m1 - m0 * vvz; - mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcca + mfccc; - m1 = mfccc - mfcca; - m0 = m2 + mfccb; - mfcca = m0; - m0 += c1o36 * oMdrho; - mfccb = m1 - m0 * vvz; - mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m2 = mfaaa + mfaca; - m1 = mfaca - mfaaa; - m0 = m2 + mfaba; - mfaaa = m0; - m0 += c1o6 * oMdrho; - mfaba = m1 - m0 * vvy; - mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfacb; - m1 = mfacb - mfaab; - m0 = m2 + mfabb; - mfaab = m0; - mfabb = m1 - m0 * vvy; - mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfacc; - m1 = mfacc - mfaac; - m0 = m2 + mfabc; - mfaac = m0; - m0 += c1o18 * oMdrho; - mfabc = m1 - m0 * vvy; - mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbca; - m1 = mfbca - mfbaa; - m0 = m2 + mfbba; - mfbaa = m0; - m0 += c2o3 * oMdrho; - mfbba = m1 - m0 * vvy; - mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbab + mfbcb; - m1 = mfbcb - mfbab; - m0 = m2 + mfbbb; - mfbab = m0; - mfbbb = m1 - m0 * vvy; - mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbac + mfbcc; - m1 = mfbcc - mfbac; - m0 = m2 + mfbbc; - mfbac = m0; - m0 += c2o9 * oMdrho; - mfbbc = m1 - m0 * vvy; - mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcca; - m1 = mfcca - mfcaa; - m0 = m2 + mfcba; - mfcaa = m0; - m0 += c1o6 * oMdrho; - mfcba = m1 - m0 * vvy; - mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcab + mfccb; - m1 = mfccb - mfcab; - m0 = m2 + mfcbb; - mfcab = m0; - mfcbb = m1 - m0 * vvy; - mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcac + mfccc; - m1 = mfccc - mfcac; - m0 = m2 + mfcbc; - mfcac = m0; - m0 += c1o18 * oMdrho; - mfcbc = m1 - m0 * vvy; - mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m2 = mfaaa + mfcaa; - m1 = mfcaa - mfaaa; - m0 = m2 + mfbaa; - mfaaa = m0; - m0 += c1o1* oMdrho; - mfbaa = m1 - m0 * vvx; - mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfcba; - m1 = mfcba - mfaba; - m0 = m2 + mfbba; - mfaba = m0; - mfbba = m1 - m0 * vvx; - mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfcca; - m1 = mfcca - mfaca; - m0 = m2 + mfbca; - mfaca = m0; - m0 += c1o3 * oMdrho; - mfbca = m1 - m0 * vvx; - mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfcab; - m1 = mfcab - mfaab; - m0 = m2 + mfbab; - mfaab = m0; - mfbab = m1 - m0 * vvx; - mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabb + mfcbb; - m1 = mfcbb - mfabb; - m0 = m2 + mfbbb; - mfabb = m0; - mfbbb = m1 - m0 * vvx; - mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacb + mfccb; - m1 = mfccb - mfacb; - m0 = m2 + mfbcb; - mfacb = m0; - mfbcb = m1 - m0 * vvx; - mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfcac; - m1 = mfcac - mfaac; - m0 = m2 + mfbac; - mfaac = m0; - m0 += c1o3 * oMdrho; - mfbac = m1 - m0 * vvx; - mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabc + mfcbc; - m1 = mfcbc - mfabc; - m0 = m2 + mfbbc; - mfabc = m0; - mfbbc = m1 - m0 * vvx; - mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacc + mfccc; - m1 = mfccc - mfacc; - m0 = m2 + mfbcc; - mfacc = m0; - m0 += c1o9 * oMdrho; - mfbcc = m1 - m0 * vvx; - mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - // linear combinations + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + mfcbb = f_E ; + mfabb = f_W ; + mfbcb = f_N ; + mfbab = f_S ; + mfbbc = f_T ; + mfbba = f_B ; + mfccb = f_NE ; + mfaab = f_SW ; + mfcab = f_SE ; + mfacb = f_NW ; + mfcbc = f_TE ; + mfaba = f_BW ; + mfcba = f_BE ; + mfabc = f_TW ; + mfbcc = f_TN ; + mfbaa = f_BS ; + mfbca = f_BN ; + mfbac = f_TS ; + mfbbb = f_ZERO; + mfccc = f_TNE ; + mfaac = f_TSW ; + mfcac = f_TSE ; + mfacc = f_TNW ; + mfcca = f_BNE ; + mfaaa = f_BSW ; + mfcaa = f_BSE ; + mfaca = f_BNW ; + //////////////////////////////////////////////////////////////////////////////////// + drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + + (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + + ((mfabb+mfcbb) + (mfbab+mfbcb)) + (mfbba+mfbbc)) + mfbbb; + + rho = c1o1+drho; + //////////////////////////////////////////////////////////////////////////////////// + vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + + (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + + (mfcbb-mfabb)) / rho; + vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + + (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + + (mfbcb-mfbab)) / rho; + vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + + (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + + (mfbbc-mfbba)) / rho; + //////////////////////////////////////////////////////////////////////////////////// + //fast + oMdrho = c1o1; // comp special + vx2=vvx*vvx; + vy2=vvy*vvy; + vz2=vvz*vvz; + //////////////////////////////////////////////////////////////////////////////////// + //Hin + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m2 = mfaaa + mfaac; + m1 = mfaac - mfaaa; + m0 = m2 + mfaab; + mfaaa = m0; + m0 += c1o36 * oMdrho; + mfaab = m1 - m0 * vvz; + mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfabc; + m1 = mfabc - mfaba; + m0 = m2 + mfabb; + mfaba = m0; + m0 += c1o9 * oMdrho; + mfabb = m1 - m0 * vvz; + mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfacc; + m1 = mfacc - mfaca; + m0 = m2 + mfacb; + mfaca = m0; + m0 += c1o36 * oMdrho; + mfacb = m1 - m0 * vvz; + mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbac; + m1 = mfbac - mfbaa; + m0 = m2 + mfbab; + mfbaa = m0; + m0 += c1o9 * oMdrho; + mfbab = m1 - m0 * vvz; + mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbba + mfbbc; + m1 = mfbbc - mfbba; + m0 = m2 + mfbbb; + mfbba = m0; + m0 += c4o9 * oMdrho; + mfbbb = m1 - m0 * vvz; + mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbca + mfbcc; + m1 = mfbcc - mfbca; + m0 = m2 + mfbcb; + mfbca = m0; + m0 += c1o9 * oMdrho; + mfbcb = m1 - m0 * vvz; + mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcac; + m1 = mfcac - mfcaa; + m0 = m2 + mfcab; + mfcaa = m0; + m0 += c1o36 * oMdrho; + mfcab = m1 - m0 * vvz; + mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcba + mfcbc; + m1 = mfcbc - mfcba; + m0 = m2 + mfcbb; + mfcba = m0; + m0 += c1o9 * oMdrho; + mfcbb = m1 - m0 * vvz; + mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcca + mfccc; + m1 = mfccc - mfcca; + m0 = m2 + mfccb; + mfcca = m0; + m0 += c1o36 * oMdrho; + mfccb = m1 - m0 * vvz; + mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m2 = mfaaa + mfaca; + m1 = mfaca - mfaaa; + m0 = m2 + mfaba; + mfaaa = m0; + m0 += c1o6 * oMdrho; + mfaba = m1 - m0 * vvy; + mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfacb; + m1 = mfacb - mfaab; + m0 = m2 + mfabb; + mfaab = m0; + mfabb = m1 - m0 * vvy; + mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfacc; + m1 = mfacc - mfaac; + m0 = m2 + mfabc; + mfaac = m0; + m0 += c1o18 * oMdrho; + mfabc = m1 - m0 * vvy; + mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbca; + m1 = mfbca - mfbaa; + m0 = m2 + mfbba; + mfbaa = m0; + m0 += c2o3 * oMdrho; + mfbba = m1 - m0 * vvy; + mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbab + mfbcb; + m1 = mfbcb - mfbab; + m0 = m2 + mfbbb; + mfbab = m0; + mfbbb = m1 - m0 * vvy; + mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbac + mfbcc; + m1 = mfbcc - mfbac; + m0 = m2 + mfbbc; + mfbac = m0; + m0 += c2o9 * oMdrho; + mfbbc = m1 - m0 * vvy; + mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcca; + m1 = mfcca - mfcaa; + m0 = m2 + mfcba; + mfcaa = m0; + m0 += c1o6 * oMdrho; + mfcba = m1 - m0 * vvy; + mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcab + mfccb; + m1 = mfccb - mfcab; + m0 = m2 + mfcbb; + mfcab = m0; + mfcbb = m1 - m0 * vvy; + mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcac + mfccc; + m1 = mfccc - mfcac; + m0 = m2 + mfcbc; + mfcac = m0; + m0 += c1o18 * oMdrho; + mfcbc = m1 - m0 * vvy; + mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m2 = mfaaa + mfcaa; + m1 = mfcaa - mfaaa; + m0 = m2 + mfbaa; + mfaaa = m0; + m0 += c1o1* oMdrho; + mfbaa = m1 - m0 * vvx; + mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfcba; + m1 = mfcba - mfaba; + m0 = m2 + mfbba; + mfaba = m0; + mfbba = m1 - m0 * vvx; + mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfcca; + m1 = mfcca - mfaca; + m0 = m2 + mfbca; + mfaca = m0; + m0 += c1o3 * oMdrho; + mfbca = m1 - m0 * vvx; + mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfcab; + m1 = mfcab - mfaab; + m0 = m2 + mfbab; + mfaab = m0; + mfbab = m1 - m0 * vvx; + mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabb + mfcbb; + m1 = mfcbb - mfabb; + m0 = m2 + mfbbb; + mfabb = m0; + mfbbb = m1 - m0 * vvx; + mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacb + mfccb; + m1 = mfccb - mfacb; + m0 = m2 + mfbcb; + mfacb = m0; + mfbcb = m1 - m0 * vvx; + mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfcac; + m1 = mfcac - mfaac; + m0 = m2 + mfbac; + mfaac = m0; + m0 += c1o3 * oMdrho; + mfbac = m1 - m0 * vvx; + mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabc + mfcbc; + m1 = mfcbc - mfabc; + m0 = m2 + mfbbc; + mfabc = m0; + mfbbc = m1 - m0 * vvx; + mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacc + mfccc; + m1 = mfccc - mfacc; + m0 = m2 + mfbcc; + mfacc = m0; + m0 += c1o9 * oMdrho; + mfbcc = m1 - m0 * vvx; + mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + // linear combinations - mxxyPyzz = mfcba + mfabc; - mxxyMyzz = mfcba - mfabc; + mxxyPyzz = mfcba + mfabc; + mxxyMyzz = mfcba - mfabc; - mxxzPyyz = mfcab + mfacb; - mxxzMyyz = mfcab - mfacb; + mxxzPyyz = mfcab + mfacb; + mxxzMyyz = mfcab - mfacb; - mxyyPxzz = mfbca + mfbac; - mxyyMxzz = mfbca - mfbac; + mxyyPxzz = mfbca + mfbac; + mxyyMxzz = mfbca - mfbac; - ////////////////////////////////////////////////////////////////////////// - //exclusive for this source node - real mfbbb_NEB = mfbbb; - real mxxyPyzz_NEB = mxxyPyzz; - real mxxyMyzz_NEB = mxxyMyzz; - real mxxzPyyz_NEB = mxxzPyyz; - real mxxzMyyz_NEB = mxxzMyyz; - real mxyyPxzz_NEB = mxyyPxzz; - real mxyyMxzz_NEB = mxyyMxzz; - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// + //exclusive for this source node + real mfbbb_NEB = mfbbb; + real mxxyPyzz_NEB = mxxyPyzz; + real mxxyMyzz_NEB = mxxyMyzz; + real mxxzPyyz_NEB = mxxzPyyz; + real mxxzMyyz_NEB = mxxzMyyz; + real mxyyPxzz_NEB = mxyyPxzz; + real mxyyMxzz_NEB = mxyyMxzz; + ////////////////////////////////////////////////////////////////////////// @@ -14435,54 +14435,54 @@ __global__ void scaleCF_RhoSq_3rdMom_comp_27(real* DC, ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real mfbbbMean = c1o8 * (mfbbb_SWB + mfbbb_SWT + mfbbb_SET + mfbbb_SEB + mfbbb_NWB + mfbbb_NWT + mfbbb_NET + mfbbb_NEB); - real mxxyPyzzMean = c1o8 * (mxxyPyzz_SWB + mxxyPyzz_SWT + mxxyPyzz_SET + mxxyPyzz_SEB + mxxyPyzz_NWB + mxxyPyzz_NWT + mxxyPyzz_NET + mxxyPyzz_NEB); - real mxxyMyzzMean = c1o8 * (mxxyMyzz_SWB + mxxyMyzz_SWT + mxxyMyzz_SET + mxxyMyzz_SEB + mxxyMyzz_NWB + mxxyMyzz_NWT + mxxyMyzz_NET + mxxyMyzz_NEB); - real mxxzPyyzMean = c1o8 * (mxxzPyyz_SWB + mxxzPyyz_SWT + mxxzPyyz_SET + mxxzPyyz_SEB + mxxzPyyz_NWB + mxxzPyyz_NWT + mxxzPyyz_NET + mxxzPyyz_NEB); - real mxxzMyyzMean = c1o8 * (mxxzMyyz_SWB + mxxzMyyz_SWT + mxxzMyyz_SET + mxxzMyyz_SEB + mxxzMyyz_NWB + mxxzMyyz_NWT + mxxzMyyz_NET + mxxzMyyz_NEB); - real mxyyPxzzMean = c1o8 * (mxyyPxzz_SWB + mxyyPxzz_SWT + mxyyPxzz_SET + mxyyPxzz_SEB + mxyyPxzz_NWB + mxyyPxzz_NWT + mxyyPxzz_NET + mxyyPxzz_NEB); - real mxyyMxzzMean = c1o8 * (mxyyMxzz_SWB + mxyyMxzz_SWT + mxyyMxzz_SET + mxyyMxzz_SEB + mxyyMxzz_NWB + mxyyMxzz_NWT + mxyyMxzz_NET + mxyyMxzz_NEB); + real mfbbbMean = c1o8 * (mfbbb_SWB + mfbbb_SWT + mfbbb_SET + mfbbb_SEB + mfbbb_NWB + mfbbb_NWT + mfbbb_NET + mfbbb_NEB); + real mxxyPyzzMean = c1o8 * (mxxyPyzz_SWB + mxxyPyzz_SWT + mxxyPyzz_SET + mxxyPyzz_SEB + mxxyPyzz_NWB + mxxyPyzz_NWT + mxxyPyzz_NET + mxxyPyzz_NEB); + real mxxyMyzzMean = c1o8 * (mxxyMyzz_SWB + mxxyMyzz_SWT + mxxyMyzz_SET + mxxyMyzz_SEB + mxxyMyzz_NWB + mxxyMyzz_NWT + mxxyMyzz_NET + mxxyMyzz_NEB); + real mxxzPyyzMean = c1o8 * (mxxzPyyz_SWB + mxxzPyyz_SWT + mxxzPyyz_SET + mxxzPyyz_SEB + mxxzPyyz_NWB + mxxzPyyz_NWT + mxxzPyyz_NET + mxxzPyyz_NEB); + real mxxzMyyzMean = c1o8 * (mxxzMyyz_SWB + mxxzMyyz_SWT + mxxzMyyz_SET + mxxzMyyz_SEB + mxxzMyyz_NWB + mxxzMyyz_NWT + mxxzMyyz_NET + mxxzMyyz_NEB); + real mxyyPxzzMean = c1o8 * (mxyyPxzz_SWB + mxyyPxzz_SWT + mxyyPxzz_SET + mxyyPxzz_SEB + mxyyPxzz_NWB + mxyyPxzz_NWT + mxyyPxzz_NET + mxyyPxzz_NEB); + real mxyyMxzzMean = c1o8 * (mxyyMxzz_SWB + mxyyMxzz_SWT + mxyyMxzz_SET + mxyyMxzz_SEB + mxyyMxzz_NWB + mxyyMxzz_NWT + mxyyMxzz_NET + mxyyMxzz_NEB); ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // kxyFromfcNEQ_SWB = zero; - //kyzFromfcNEQ_SWB = zero; - //kxzFromfcNEQ_SWB = zero; - //kxxMyyFromfcNEQ_SWB = zero; - //kxxMzzFromfcNEQ_SWB = zero; - //kxyFromfcNEQ_SWT = zero; - //kyzFromfcNEQ_SWT = zero; - //kxzFromfcNEQ_SWT = zero; - //kxxMyyFromfcNEQ_SWT = zero; - //kxxMzzFromfcNEQ_SWT = zero; - //kxyFromfcNEQ_SET = zero; - //kyzFromfcNEQ_SET = zero; - //kxzFromfcNEQ_SET = zero; - //kxxMyyFromfcNEQ_SET = zero; - //kxxMzzFromfcNEQ_SET = zero; - //kxyFromfcNEQ_SEB = zero; - //kyzFromfcNEQ_SEB = zero; - //kxzFromfcNEQ_SEB = zero; - //kxxMyyFromfcNEQ_SEB = zero; - //kxxMzzFromfcNEQ_SEB = zero; - //kxyFromfcNEQ_NWB = zero; - //kyzFromfcNEQ_NWB = zero; - //kxzFromfcNEQ_NWB = zero; - //kxxMyyFromfcNEQ_NWB = zero; - //kxxMzzFromfcNEQ_NWB = zero; - //kxyFromfcNEQ_NWT = zero; - //kyzFromfcNEQ_NWT = zero; - //kxzFromfcNEQ_NWT = zero; - //kxxMyyFromfcNEQ_NWT = zero; - //kxxMzzFromfcNEQ_NWT = zero; - //kxyFromfcNEQ_NET = zero; - //kyzFromfcNEQ_NET = zero; - //kxzFromfcNEQ_NET = zero; - //kxxMyyFromfcNEQ_NET = zero; - //kxxMzzFromfcNEQ_NET = zero; - //kxyFromfcNEQ_NEB = zero; - //kyzFromfcNEQ_NEB = zero; - //kxzFromfcNEQ_NEB = zero; - //kxxMyyFromfcNEQ_NEB = zero; - //kxxMzzFromfcNEQ_NEB = zero; + // kxyFromfcNEQ_SWB = zero; + //kyzFromfcNEQ_SWB = zero; + //kxzFromfcNEQ_SWB = zero; + //kxxMyyFromfcNEQ_SWB = zero; + //kxxMzzFromfcNEQ_SWB = zero; + //kxyFromfcNEQ_SWT = zero; + //kyzFromfcNEQ_SWT = zero; + //kxzFromfcNEQ_SWT = zero; + //kxxMyyFromfcNEQ_SWT = zero; + //kxxMzzFromfcNEQ_SWT = zero; + //kxyFromfcNEQ_SET = zero; + //kyzFromfcNEQ_SET = zero; + //kxzFromfcNEQ_SET = zero; + //kxxMyyFromfcNEQ_SET = zero; + //kxxMzzFromfcNEQ_SET = zero; + //kxyFromfcNEQ_SEB = zero; + //kyzFromfcNEQ_SEB = zero; + //kxzFromfcNEQ_SEB = zero; + //kxxMyyFromfcNEQ_SEB = zero; + //kxxMzzFromfcNEQ_SEB = zero; + //kxyFromfcNEQ_NWB = zero; + //kyzFromfcNEQ_NWB = zero; + //kxzFromfcNEQ_NWB = zero; + //kxxMyyFromfcNEQ_NWB = zero; + //kxxMzzFromfcNEQ_NWB = zero; + //kxyFromfcNEQ_NWT = zero; + //kyzFromfcNEQ_NWT = zero; + //kxzFromfcNEQ_NWT = zero; + //kxxMyyFromfcNEQ_NWT = zero; + //kxxMzzFromfcNEQ_NWT = zero; + //kxyFromfcNEQ_NET = zero; + //kyzFromfcNEQ_NET = zero; + //kxzFromfcNEQ_NET = zero; + //kxxMyyFromfcNEQ_NET = zero; + //kxxMzzFromfcNEQ_NET = zero; + //kxyFromfcNEQ_NEB = zero; + //kyzFromfcNEQ_NEB = zero; + //kxzFromfcNEQ_NEB = zero; + //kxxMyyFromfcNEQ_NEB = zero; + //kxxMzzFromfcNEQ_NEB = zero; ////////////////////////////////////////////////////////////////////////// //3 ////////////////////////////////////////////////////////////////////////// @@ -14603,94 +14603,94 @@ __global__ void scaleCF_RhoSq_3rdMom_comp_27(real* DC, cxyz=-vx3_NEB + vx3_NET + vx3_NWB - vx3_NWT + vx3_SEB - vx3_SET - vx3_SWB + vx3_SWT; ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real kxyAverage = c0o1; - real kyzAverage = c0o1; - real kxzAverage = c0o1; - real kxxMyyAverage = c0o1; - real kxxMzzAverage = c0o1; - //real kxyAverage =(kxyFromfcNEQ_SWB+ - // kxyFromfcNEQ_SWT+ - // kxyFromfcNEQ_SET+ - // kxyFromfcNEQ_SEB+ - // kxyFromfcNEQ_NWB+ - // kxyFromfcNEQ_NWT+ - // kxyFromfcNEQ_NET+ - // kxyFromfcNEQ_NEB)*c1o8-(ay+bx); - //real kyzAverage =(kyzFromfcNEQ_SWB+ - // kyzFromfcNEQ_SWT+ - // kyzFromfcNEQ_SET+ - // kyzFromfcNEQ_SEB+ - // kyzFromfcNEQ_NWB+ - // kyzFromfcNEQ_NWT+ - // kyzFromfcNEQ_NET+ - // kyzFromfcNEQ_NEB)*c1o8-(bz+cy); - //real kxzAverage =(kxzFromfcNEQ_SWB+ - // kxzFromfcNEQ_SWT+ - // kxzFromfcNEQ_SET+ - // kxzFromfcNEQ_SEB+ - // kxzFromfcNEQ_NWB+ - // kxzFromfcNEQ_NWT+ - // kxzFromfcNEQ_NET+ - // kxzFromfcNEQ_NEB)*c1o8-(az+cx); - //real kxxMyyAverage =(kxxMyyFromfcNEQ_SWB+ - // kxxMyyFromfcNEQ_SWT+ - // kxxMyyFromfcNEQ_SET+ - // kxxMyyFromfcNEQ_SEB+ - // kxxMyyFromfcNEQ_NWB+ - // kxxMyyFromfcNEQ_NWT+ - // kxxMyyFromfcNEQ_NET+ - // kxxMyyFromfcNEQ_NEB)*c1o8-(ax-by); - //real kxxMzzAverage =(kxxMzzFromfcNEQ_SWB+ - // kxxMzzFromfcNEQ_SWT+ - // kxxMzzFromfcNEQ_SET+ - // kxxMzzFromfcNEQ_SEB+ - // kxxMzzFromfcNEQ_NWB+ - // kxxMzzFromfcNEQ_NWT+ - // kxxMzzFromfcNEQ_NET+ - // kxxMzzFromfcNEQ_NEB)*c1o8-(ax-cz); - - - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //Press - //d0 = ( press_NEB + press_NET + press_NWB + press_NWT + press_SEB + press_SET + press_SWB + press_SWT) * c1o8; - //dx = ( press_NEB + press_NET - press_NWB - press_NWT + press_SEB + press_SET - press_SWB - press_SWT) * c1o4; - //dy = ( press_NEB + press_NET + press_NWB + press_NWT - press_SEB - press_SET - press_SWB - press_SWT) * c1o4; - //dz = (-press_NEB + press_NET - press_NWB + press_NWT - press_SEB + press_SET - press_SWB + press_SWT) * c1o4; - //dxy = ( press_NEB + press_NET - press_NWB - press_NWT - press_SEB - press_SET + press_SWB + press_SWT) * c1o2; - //dxz = (-press_NEB + press_NET + press_NWB - press_NWT - press_SEB + press_SET + press_SWB - press_SWT) * c1o2; - //dyz = (-press_NEB + press_NET - press_NWB + press_NWT + press_SEB - press_SET + press_SWB - press_SWT) * c1o2; - //dxyz = -press_NEB + press_NET + press_NWB - press_NWT + press_SEB - press_SET - press_SWB + press_SWT; - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho - real LapRho = ((xoff != c0o1) || (yoff != c0o1) || (zoff != c0o1)) ? c0o1 : -c3o1*(ax*ax + by*by + cz*cz) - c6o1 * (bx*ay + cx*az + cy*bz); - d0 = ( drho_NEB + drho_NET + drho_NWB + drho_NWT + drho_SEB + drho_SET + drho_SWB + drho_SWT) * c1o8; - dx = ( drho_NEB + drho_NET - drho_NWB - drho_NWT + drho_SEB + drho_SET - drho_SWB - drho_SWT) * c1o4; - dy = ( drho_NEB + drho_NET + drho_NWB + drho_NWT - drho_SEB - drho_SET - drho_SWB - drho_SWT) * c1o4; - dz = (-drho_NEB + drho_NET - drho_NWB + drho_NWT - drho_SEB + drho_SET - drho_SWB + drho_SWT) * c1o4; - dxy = ( drho_NEB + drho_NET - drho_NWB - drho_NWT - drho_SEB - drho_SET + drho_SWB + drho_SWT) * c1o2; - dxz = (-drho_NEB + drho_NET + drho_NWB - drho_NWT - drho_SEB + drho_SET + drho_SWB - drho_SWT) * c1o2; - dyz = (-drho_NEB + drho_NET - drho_NWB + drho_NWT + drho_SEB - drho_SET + drho_SWB - drho_SWT) * c1o2; - dxyz = -drho_NEB + drho_NET + drho_NWB - drho_NWT + drho_SEB - drho_SET - drho_SWB + drho_SWT; - // d0 = zero; - //dx = zero; - //dy = zero; - //dz = zero; - //dxy = zero; - //dxz = zero; - //dyz = zero; - //dxyz = zero; + real kxyAverage = c0o1; + real kyzAverage = c0o1; + real kxzAverage = c0o1; + real kxxMyyAverage = c0o1; + real kxxMzzAverage = c0o1; + //real kxyAverage =(kxyFromfcNEQ_SWB+ + // kxyFromfcNEQ_SWT+ + // kxyFromfcNEQ_SET+ + // kxyFromfcNEQ_SEB+ + // kxyFromfcNEQ_NWB+ + // kxyFromfcNEQ_NWT+ + // kxyFromfcNEQ_NET+ + // kxyFromfcNEQ_NEB)*c1o8-(ay+bx); + //real kyzAverage =(kyzFromfcNEQ_SWB+ + // kyzFromfcNEQ_SWT+ + // kyzFromfcNEQ_SET+ + // kyzFromfcNEQ_SEB+ + // kyzFromfcNEQ_NWB+ + // kyzFromfcNEQ_NWT+ + // kyzFromfcNEQ_NET+ + // kyzFromfcNEQ_NEB)*c1o8-(bz+cy); + //real kxzAverage =(kxzFromfcNEQ_SWB+ + // kxzFromfcNEQ_SWT+ + // kxzFromfcNEQ_SET+ + // kxzFromfcNEQ_SEB+ + // kxzFromfcNEQ_NWB+ + // kxzFromfcNEQ_NWT+ + // kxzFromfcNEQ_NET+ + // kxzFromfcNEQ_NEB)*c1o8-(az+cx); + //real kxxMyyAverage =(kxxMyyFromfcNEQ_SWB+ + // kxxMyyFromfcNEQ_SWT+ + // kxxMyyFromfcNEQ_SET+ + // kxxMyyFromfcNEQ_SEB+ + // kxxMyyFromfcNEQ_NWB+ + // kxxMyyFromfcNEQ_NWT+ + // kxxMyyFromfcNEQ_NET+ + // kxxMyyFromfcNEQ_NEB)*c1o8-(ax-by); + //real kxxMzzAverage =(kxxMzzFromfcNEQ_SWB+ + // kxxMzzFromfcNEQ_SWT+ + // kxxMzzFromfcNEQ_SET+ + // kxxMzzFromfcNEQ_SEB+ + // kxxMzzFromfcNEQ_NWB+ + // kxxMzzFromfcNEQ_NWT+ + // kxxMzzFromfcNEQ_NET+ + // kxxMzzFromfcNEQ_NEB)*c1o8-(ax-cz); + + + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //Press + //d0 = ( press_NEB + press_NET + press_NWB + press_NWT + press_SEB + press_SET + press_SWB + press_SWT) * c1o8; + //dx = ( press_NEB + press_NET - press_NWB - press_NWT + press_SEB + press_SET - press_SWB - press_SWT) * c1o4; + //dy = ( press_NEB + press_NET + press_NWB + press_NWT - press_SEB - press_SET - press_SWB - press_SWT) * c1o4; + //dz = (-press_NEB + press_NET - press_NWB + press_NWT - press_SEB + press_SET - press_SWB + press_SWT) * c1o4; + //dxy = ( press_NEB + press_NET - press_NWB - press_NWT - press_SEB - press_SET + press_SWB + press_SWT) * c1o2; + //dxz = (-press_NEB + press_NET + press_NWB - press_NWT - press_SEB + press_SET + press_SWB - press_SWT) * c1o2; + //dyz = (-press_NEB + press_NET - press_NWB + press_NWT + press_SEB - press_SET + press_SWB - press_SWT) * c1o2; + //dxyz = -press_NEB + press_NET + press_NWB - press_NWT + press_SEB - press_SET - press_SWB + press_SWT; + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho + real LapRho = ((xoff != c0o1) || (yoff != c0o1) || (zoff != c0o1)) ? c0o1 : -c3o1*(ax*ax + by*by + cz*cz) - c6o1 * (bx*ay + cx*az + cy*bz); + d0 = ( drho_NEB + drho_NET + drho_NWB + drho_NWT + drho_SEB + drho_SET + drho_SWB + drho_SWT) * c1o8; + dx = ( drho_NEB + drho_NET - drho_NWB - drho_NWT + drho_SEB + drho_SET - drho_SWB - drho_SWT) * c1o4; + dy = ( drho_NEB + drho_NET + drho_NWB + drho_NWT - drho_SEB - drho_SET - drho_SWB - drho_SWT) * c1o4; + dz = (-drho_NEB + drho_NET - drho_NWB + drho_NWT - drho_SEB + drho_SET - drho_SWB + drho_SWT) * c1o4; + dxy = ( drho_NEB + drho_NET - drho_NWB - drho_NWT - drho_SEB - drho_SET + drho_SWB + drho_SWT) * c1o2; + dxz = (-drho_NEB + drho_NET + drho_NWB - drho_NWT - drho_SEB + drho_SET + drho_SWB - drho_SWT) * c1o2; + dyz = (-drho_NEB + drho_NET - drho_NWB + drho_NWT + drho_SEB - drho_SET + drho_SWB - drho_SWT) * c1o2; + dxyz = -drho_NEB + drho_NET + drho_NWB - drho_NWT + drho_SEB - drho_SET - drho_SWB + drho_SWT; + // d0 = zero; + //dx = zero; + //dy = zero; + //dz = zero; + //dxy = zero; + //dxz = zero; + //dyz = zero; + //dxyz = zero; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // // Bernd das Brot // - // X------X - // | | x---x - // | ---+-+-> | ----> off-vector - // | | x---x - // X------X - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // X------X + // | | x---x + // | ---+-+-> | ----> off-vector + // | | x---x + // X------X + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// a0 = a0 + xoff * ax + yoff * ay + zoff * az + xoff_sq * axx + yoff_sq * ayy + zoff_sq * azz + xoff*yoff*axy + xoff*zoff*axz + yoff*zoff*ayz; ax = ax + c2o1 * xoff * axx + yoff * axy + zoff * axz; ay = ay + c2o1 * yoff * ayy + xoff * axy + zoff * ayz; @@ -14703,3089 +14703,3089 @@ __global__ void scaleCF_RhoSq_3rdMom_comp_27(real* DC, cx = cx + c2o1 * xoff * cxx + yoff * cxy + zoff * cxz; cy = cy + c2o1 * yoff * cyy + xoff * cxy + zoff * cyz; cz = cz + c2o1 * zoff * czz + xoff * cxz + yoff * cyz; - d0 = d0 + xoff * dx + yoff * dy + zoff * dz + xoff*yoff*dxy + xoff*zoff*dxz + yoff*zoff*dyz; - dx = dx + yoff * dxy + zoff * dxz; - dy = dy + xoff * dxy + zoff * dyz; - dz = dz + xoff * dxz + yoff * dyz; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // FIX /////////////////////////////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //AAAAAAAAAAAAHHHHHHHHHHHH!!!!! Mieser Test!!! - //b0= bx= by= bz= bxx= byy= bzz= bxy= bxz= byz= c0= cx= cy= cz= cxx= cyy= czz= cxy= cxz= cyz= axyz= bxyz= cxyz=zero; - //a0=zero; - //ax=zero; - //ay=zero; - //az=zero; - //axx=zero; - //ayy=zero; - //azz=zero; - //axy=zero; - //axz=zero; - //ayz=zero; - //b0=zero; - //bx=zero; - //by=zero; - //bz=zero; - //bxx=zero; - //byy=zero; - //bzz=zero; - //bxy=zero; - //bxz=zero; - //byz=zero; - //c0=zero; - //cx=zero; - //cy=zero; - //cz=zero; - //cxx=zero; - //cyy=zero; - //czz=zero; - //cxy=zero; - //cxz=zero; - //cyz=zero; - //axyz=zero; - //bxyz=zero; - //cxyz=zero; - //ax= ay= az= axx= ayy= azz= axy= axz= ayz= bx= by= bz= bxx= byy= bzz= bxy= bxz= byz= cx= cy= cz= cxx= cyy= czz= cxy= cxz= cyz= axyz= bxyz= cxyz=zero; - //a0=zero; - //b0=zero; - //c0=c1o100; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - mfcbb = c0o1; - mfabb = c0o1; - mfbcb = c0o1; - mfbab = c0o1; - mfbbc = c0o1; - mfbba = c0o1; - mfccb = c0o1; - mfaab = c0o1; - mfcab = c0o1; - mfacb = c0o1; - mfcbc = c0o1; - mfaba = c0o1; - mfcba = c0o1; - mfabc = c0o1; - mfbcc = c0o1; - mfbaa = c0o1; - mfbca = c0o1; - mfbac = c0o1; - mfbbb = c0o1; - mfccc = c0o1; - mfaac = c0o1; - mfcac = c0o1; - mfacc = c0o1; - mfcca = c0o1; - mfaaa = c0o1; - mfcaa = c0o1; - mfaca = c0o1; - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //real m0, m1, m2, vvx, vvy, vvz, vx2, vy2, vz2, oMdrho; - //real mxxPyyPzz, mxxMyy, mxxMzz, mxxyPyzz, mxxyMyzz, mxxzPyyz, mxxzMyyz, mxyyPxzz, mxyyMxzz; - ////real qudricLimit = c1o100;//ganz schlechte Idee -> muss global sein - ////real O3 = two - o; - ////real residu, residutmp; - ////residutmp = zero;// /*-*/ c2o9 * (1./o - c1o2) * eps_new * eps_new; - //real NeqOn = one;//zero;//one; //.... one = on ..... zero = off - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position SWB -0.25f, -0.25f, -0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = -c1o4; - y = -c1o4; - z = -c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //real mxoff = -xoff; - //real myoff = -yoff; - //real mzoff = -zoff; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho = c3o64*drho_NEB+c1o64*drho_NET+c9o64*drho_NWB+c3o64*drho_NWT+c9o64*drho_SEB+c3o64*drho_SET+c27o64*drho_SWB+c9o64*drho_SWT; - //press = press_SWT * (c9o64 + c3o16 * mxoff + c3o16 * myoff - c9o16 * mzoff) + - // press_NWT * (c3o64 + c1o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + - // press_SET * (c3o64 - c3o16 * mxoff + c1o16 * myoff - c3o16 * mzoff) + - // press_NET * (c1o64 - c1o16 * mxoff - c1o16 * myoff - c1o16 * mzoff) + - // press_NEB * (c3o64 - c3o16 * mxoff - c3o16 * myoff + c1o16 * mzoff) + - // press_NWB * (c9o64 + c3o16 * mxoff - c9o16 * myoff + c3o16 * mzoff) + - // press_SEB * (c9o64 - c9o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + - // press_SWB * (c27o64 + c9o16 * mxoff + c9o16 * myoff + c9o16 * mzoff); - //drho = drho_SWT * (c9o64 + c3o16 * xoff + c3o16 * yoff - c9o16 * zoff) + - // drho_NWT * (c3o64 + c1o16 * xoff - c3o16 * yoff - c3o16 * zoff) + - // drho_SET * (c3o64 - c3o16 * xoff + c1o16 * yoff - c3o16 * zoff) + - // drho_NET * (c1o64 - c1o16 * xoff - c1o16 * yoff - c1o16 * zoff) + - // drho_NEB * (c3o64 - c3o16 * xoff - c3o16 * yoff + c1o16 * zoff) + - // drho_NWB * (c9o64 + c3o16 * xoff - c9o16 * yoff + c3o16 * zoff) + - // drho_SEB * (c9o64 - c9o16 * xoff + c3o16 * yoff + c3o16 * zoff) + - // drho_SWB * (c27o64 + c9o16 * xoff + c9o16 * yoff + c9o16 * zoff); - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz + c3o1*x*x*LapRho ; - vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); - vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); - vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); - //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); - //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); - //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //2.f - // linear combinations - mxxPyyPzz = mfaaa; - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - mfbbb = c1o2 * (( omFine + c12o1)*(-omCoarse + c2o1)) / ((omCoarse + c12o1)*(-omFine + c2o1)) * mfbbbMean; - mxxyPyzz = c1o2 * ((-omFine + c3o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c3o1 )*(-omFine + c2o1)) * mxxyPyzzMean; - mxxyMyzz = c1o2 * ((-omFine + c6o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c6o1 )*(-omFine + c2o1)) * mxxyMyzzMean; - mxxzPyyz = c1o2 * ((-omFine + c3o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c3o1 )*(-omFine + c2o1)) * mxxzPyyzMean; - mxxzMyyz = c1o2 * ((-omFine + c6o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c6o1 )*(-omFine + c2o1)) * mxxzMyyzMean; - mxyyPxzz = c1o2 * ((-omFine + c3o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c3o1 )*(-omFine + c2o1)) * mxyyPxzzMean; - mxyyMxzz = c1o2 * ((-omFine + c6o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c6o1 )*(-omFine + c2o1)) * mxyyMxzzMean; - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //index 0 - k0zero= posFSWB[k]; - k0w = neighborFX[k0zero]; - k0s = neighborFY[k0zero]; - k0b = neighborFZ[k0zero]; - k0sw = neighborFY[k0w]; - k0bw = neighborFZ[k0w]; - k0bs = neighborFZ[k0s]; - k0bsw = neighborFZ[k0sw]; - ////////////////////////////////////////////////////////////////////////// - //index - kzero= k0zero; - kw = k0w; - ks = k0s; - kb = k0b; - ksw = k0sw; - kbw = k0bw; - kbs = k0bs; - kbsw = k0bsw; - //////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - feF[kzero] = mfcbb; - fwF[kw] = mfabb; - fnF[kzero] = mfbcb; - fsF[ks] = mfbab; - ftF[kzero] = mfbbc; - fbF[kb] = mfbba; - fneF[kzero] = mfccb; - fswF[ksw] = mfaab; - fseF[ks] = mfcab; - fnwF[kw] = mfacb; - fteF[kzero] = mfcbc; - fbwF[kbw] = mfaba; - fbeF[kb] = mfcba; - ftwF[kw] = mfabc; - ftnF[kzero] = mfbcc; - fbsF[kbs] = mfbaa; - fbnF[kb] = mfbca; - ftsF[ks] = mfbac; - fzeroF[kzero] = mfbbb; - ftneF[kzero] = mfccc; - ftseF[ks] = mfcac; - fbneF[kb] = mfcca; - fbseF[kbs] = mfcaa; - ftnwF[kw] = mfacc; - ftswF[ksw] = mfaac; - fbnwF[kbw] = mfaca; - fbswF[kbsw] = mfaaa; - //////////////////////////////////////////////////////////////////////////////////// - - //reset - mfcbb = c0o1; - mfabb = c0o1; - mfbcb = c0o1; - mfbab = c0o1; - mfbbc = c0o1; - mfbba = c0o1; - mfccb = c0o1; - mfaab = c0o1; - mfcab = c0o1; - mfacb = c0o1; - mfcbc = c0o1; - mfaba = c0o1; - mfcba = c0o1; - mfabc = c0o1; - mfbcc = c0o1; - mfbaa = c0o1; - mfbca = c0o1; - mfbac = c0o1; - mfbbb = c0o1; - mfccc = c0o1; - mfaac = c0o1; - mfcac = c0o1; - mfacc = c0o1; - mfcca = c0o1; - mfaaa = c0o1; - mfcaa = c0o1; - mfaca = c0o1; - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position SWT -0.25f, -0.25f, 0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = -c1o4; - y = -c1o4; - z = c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho = c1o64*drho_NEB+c3o64*drho_NET+c3o64*drho_NWB+c9o64*drho_NWT+c3o64*drho_SEB+c9o64*drho_SET+c9o64*drho_SWB+c27o64*drho_SWT; - //press = press_SWT * (c27o64 + c9o16 * mxoff + c9o16 * myoff - c9o16 * mzoff) + - // press_NWT * (c9o64 + c3o16 * mxoff - c9o16 * myoff - c3o16 * mzoff) + - // press_SET * (c9o64 - c9o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + - // press_NET * (c3o64 - c3o16 * mxoff - c3o16 * myoff - c1o16 * mzoff) + - // press_NEB * (c1o64 - c1o16 * mxoff - c1o16 * myoff + c1o16 * mzoff) + - // press_NWB * (c3o64 + c1o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + - // press_SEB * (c3o64 - c3o16 * mxoff + c1o16 * myoff + c3o16 * mzoff) + - // press_SWB * (c9o64 + c3o16 * mxoff + c3o16 * myoff + c9o16 * mzoff); - //drho = drho_SWT * (c27o64 + c9o16 * xoff + c9o16 * yoff - c9o16 * zoff) + - // drho_NWT * (c9o64 + c3o16 * xoff - c9o16 * yoff - c3o16 * zoff) + - // drho_SET * (c9o64 - c9o16 * xoff + c3o16 * yoff - c3o16 * zoff) + - // drho_NET * (c3o64 - c3o16 * xoff - c3o16 * yoff - c1o16 * zoff) + - // drho_NEB * (c1o64 - c1o16 * xoff - c1o16 * yoff + c1o16 * zoff) + - // drho_NWB * (c3o64 + c1o16 * xoff - c3o16 * yoff + c3o16 * zoff) + - // drho_SEB * (c3o64 - c3o16 * xoff + c1o16 * yoff + c3o16 * zoff) + - // drho_SWB * (c9o64 + c3o16 * xoff + c3o16 * yoff + c9o16 * zoff); - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz + c3o1*x*x*LapRho ; - vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); - vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); - vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); - //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); - //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); - //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //2.f - // linear combinations - mxxPyyPzz = mfaaa; - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - mfbbb = c1o2 * (( omFine + c12o1)*(-omCoarse + c2o1)) / ((omCoarse + c12o1)*(-omFine + c2o1)) * mfbbbMean; - mxxyPyzz = c1o2 * ((-omFine + c3o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c3o1 )*(-omFine + c2o1)) * mxxyPyzzMean; - mxxyMyzz = c1o2 * ((-omFine + c6o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c6o1 )*(-omFine + c2o1)) * mxxyMyzzMean; - mxxzPyyz = c1o2 * ((-omFine + c3o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c3o1 )*(-omFine + c2o1)) * mxxzPyyzMean; - mxxzMyyz = c1o2 * ((-omFine + c6o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c6o1 )*(-omFine + c2o1)) * mxxzMyyzMean; - mxyyPxzz = c1o2 * ((-omFine + c3o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c3o1 )*(-omFine + c2o1)) * mxyyPxzzMean; - mxyyMxzz = c1o2 * ((-omFine + c6o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c6o1 )*(-omFine + c2o1)) * mxyyMxzzMean; - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - //index - kzero= kb; - kw = kbw; - ks = kbs; - kb = neighborFZ[kb]; - ksw = kbsw; - kbw = neighborFZ[kbw]; - kbs = neighborFZ[kbs]; - kbsw = neighborFZ[kbsw]; - //////////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - feF[kzero] = mfcbb; - fwF[kw] = mfabb; - fnF[kzero] = mfbcb; - fsF[ks] = mfbab; - ftF[kzero] = mfbbc; - fbF[kb] = mfbba; - fneF[kzero] = mfccb; - fswF[ksw] = mfaab; - fseF[ks] = mfcab; - fnwF[kw] = mfacb; - fteF[kzero] = mfcbc; - fbwF[kbw] = mfaba; - fbeF[kb] = mfcba; - ftwF[kw] = mfabc; - ftnF[kzero] = mfbcc; - fbsF[kbs] = mfbaa; - fbnF[kb] = mfbca; - ftsF[ks] = mfbac; - fzeroF[kzero] = mfbbb; - ftneF[kzero] = mfccc; - ftseF[ks] = mfcac; - fbneF[kb] = mfcca; - fbseF[kbs] = mfcaa; - ftnwF[kw] = mfacc; - ftswF[ksw] = mfaac; - fbnwF[kbw] = mfaca; - fbswF[kbsw] = mfaaa; - //////////////////////////////////////////////////////////////////////////////////// - - - //reset - mfcbb = c0o1; - mfabb = c0o1; - mfbcb = c0o1; - mfbab = c0o1; - mfbbc = c0o1; - mfbba = c0o1; - mfccb = c0o1; - mfaab = c0o1; - mfcab = c0o1; - mfacb = c0o1; - mfcbc = c0o1; - mfaba = c0o1; - mfcba = c0o1; - mfabc = c0o1; - mfbcc = c0o1; - mfbaa = c0o1; - mfbca = c0o1; - mfbac = c0o1; - mfbbb = c0o1; - mfccc = c0o1; - mfaac = c0o1; - mfcac = c0o1; - mfacc = c0o1; - mfcca = c0o1; - mfaaa = c0o1; - mfcaa = c0o1; - mfaca = c0o1; - - - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position SET 0.25f, -0.25f, 0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = c1o4; - y = -c1o4; - z = c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho =c3o64*drho_NEB+c9o64*drho_NET+c1o64*drho_NWB+c3o64*drho_NWT+c9o64*drho_SEB+c27o64*drho_SET+c3o64*drho_SWB+c9o64*drho_SWT; - //press = press_SET * (c27o64 - c9o16 * mxoff + c9o16 * myoff - c9o16 * mzoff) + - // press_NET * (c9o64 - c3o16 * mxoff - c9o16 * myoff - c3o16 * mzoff) + - // press_SWT * (c9o64 + c9o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + - // press_NWT * (c3o64 + c3o16 * mxoff - c3o16 * myoff - c1o16 * mzoff) + - // press_NWB * (c1o64 + c1o16 * mxoff - c1o16 * myoff + c1o16 * mzoff) + - // press_NEB * (c3o64 - c1o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + - // press_SWB * (c3o64 + c3o16 * mxoff + c1o16 * myoff + c3o16 * mzoff) + - // press_SEB * (c9o64 - c3o16 * mxoff + c3o16 * myoff + c9o16 * mzoff); - //drho = drho_SET * (c27o64 - c9o16 * xoff + c9o16 * yoff - c9o16 * zoff) + - // drho_NET * (c9o64 - c3o16 * xoff - c9o16 * yoff - c3o16 * zoff) + - // drho_SWT * (c9o64 + c9o16 * xoff + c3o16 * yoff - c3o16 * zoff) + - // drho_NWT * (c3o64 + c3o16 * xoff - c3o16 * yoff - c1o16 * zoff) + - // drho_NWB * (c1o64 + c1o16 * xoff - c1o16 * yoff + c1o16 * zoff) + - // drho_NEB * (c3o64 - c1o16 * xoff - c3o16 * yoff + c3o16 * zoff) + - // drho_SWB * (c3o64 + c3o16 * xoff + c1o16 * yoff + c3o16 * zoff) + - // drho_SEB * (c9o64 - c3o16 * xoff + c3o16 * yoff + c9o16 * zoff); - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz + c3o1*x*x*LapRho ; - vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); - vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); - vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); - //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); - //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); - //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //2.f - // linear combinations - mxxPyyPzz = mfaaa; - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - mfbbb = c1o2 * (( omFine + c12o1)*(-omCoarse + c2o1)) / ((omCoarse + c12o1)*(-omFine + c2o1)) * mfbbbMean; - mxxyPyzz = c1o2 * ((-omFine + c3o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c3o1 )*(-omFine + c2o1)) * mxxyPyzzMean; - mxxyMyzz = c1o2 * ((-omFine + c6o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c6o1 )*(-omFine + c2o1)) * mxxyMyzzMean; - mxxzPyyz = c1o2 * ((-omFine + c3o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c3o1 )*(-omFine + c2o1)) * mxxzPyyzMean; - mxxzMyyz = c1o2 * ((-omFine + c6o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c6o1 )*(-omFine + c2o1)) * mxxzMyyzMean; - mxyyPxzz = c1o2 * ((-omFine + c3o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c3o1 )*(-omFine + c2o1)) * mxyyPxzzMean; - mxyyMxzz = c1o2 * ((-omFine + c6o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c6o1 )*(-omFine + c2o1)) * mxyyMxzzMean; - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //index - kzero= kw; - kw = neighborFX[kw]; - ks = ksw; - kb = kbw; - ksw = neighborFX[ksw]; - kbw = neighborFX[kbw]; - kbs = kbsw; - kbsw = neighborFX[kbsw]; - //////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - feF[kzero] = mfcbb; - fwF[kw] = mfabb; - fnF[kzero] = mfbcb; - fsF[ks] = mfbab; - ftF[kzero] = mfbbc; - fbF[kb] = mfbba; - fneF[kzero] = mfccb; - fswF[ksw] = mfaab; - fseF[ks] = mfcab; - fnwF[kw] = mfacb; - fteF[kzero] = mfcbc; - fbwF[kbw] = mfaba; - fbeF[kb] = mfcba; - ftwF[kw] = mfabc; - ftnF[kzero] = mfbcc; - fbsF[kbs] = mfbaa; - fbnF[kb] = mfbca; - ftsF[ks] = mfbac; - fzeroF[kzero] = mfbbb; - ftneF[kzero] = mfccc; - ftseF[ks] = mfcac; - fbneF[kb] = mfcca; - fbseF[kbs] = mfcaa; - ftnwF[kw] = mfacc; - ftswF[ksw] = mfaac; - fbnwF[kbw] = mfaca; - fbswF[kbsw] = mfaaa; - //////////////////////////////////////////////////////////////////////////////////// - - //reset - mfcbb = c0o1; - mfabb = c0o1; - mfbcb = c0o1; - mfbab = c0o1; - mfbbc = c0o1; - mfbba = c0o1; - mfccb = c0o1; - mfaab = c0o1; - mfcab = c0o1; - mfacb = c0o1; - mfcbc = c0o1; - mfaba = c0o1; - mfcba = c0o1; - mfabc = c0o1; - mfbcc = c0o1; - mfbaa = c0o1; - mfbca = c0o1; - mfbac = c0o1; - mfbbb = c0o1; - mfccc = c0o1; - mfaac = c0o1; - mfcac = c0o1; - mfacc = c0o1; - mfcca = c0o1; - mfaaa = c0o1; - mfcaa = c0o1; - mfaca = c0o1; - - - - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position SEB 0.25f, -0.25f, -0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = c1o4; - y = -c1o4; - z = -c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho =c9o64*drho_NEB+c3o64*drho_NET+c3o64*drho_NWB+c1o64*drho_NWT+c27o64*drho_SEB+c9o64*drho_SET+c9o64*drho_SWB+c3o64*drho_SWT; - //press = press_SET * (c9o64 - c3o16 * mxoff + c3o16 * myoff - c9o16 * mzoff) + - // press_NET * (c3o64 - c1o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + - // press_SWT * (c3o64 + c3o16 * mxoff + c1o16 * myoff - c3o16 * mzoff) + - // press_NWT * (c1o64 + c1o16 * mxoff - c1o16 * myoff - c1o16 * mzoff) + - // press_NWB * (c3o64 + c3o16 * mxoff - c3o16 * myoff + c1o16 * mzoff) + - // press_NEB * (c9o64 - c3o16 * mxoff - c9o16 * myoff + c3o16 * mzoff) + - // press_SWB * (c9o64 + c9o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + - // press_SEB * (c27o64 - c9o16 * mxoff + c9o16 * myoff + c9o16 * mzoff); - //drho = drho_SET * (c9o64 - c3o16 * xoff + c3o16 * yoff - c9o16 * zoff) + - // drho_NET * (c3o64 - c1o16 * xoff - c3o16 * yoff - c3o16 * zoff) + - // drho_SWT * (c3o64 + c3o16 * xoff + c1o16 * yoff - c3o16 * zoff) + - // drho_NWT * (c1o64 + c1o16 * xoff - c1o16 * yoff - c1o16 * zoff) + - // drho_NWB * (c3o64 + c3o16 * xoff - c3o16 * yoff + c1o16 * zoff) + - // drho_NEB * (c9o64 - c3o16 * xoff - c9o16 * yoff + c3o16 * zoff) + - // drho_SWB * (c9o64 + c9o16 * xoff + c3o16 * yoff + c3o16 * zoff) + - // drho_SEB * (c27o64 - c9o16 * xoff + c9o16 * yoff + c9o16 * zoff); - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz + c3o1*x*x*LapRho ; - vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); - vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); - vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); - //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); - //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); - //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //2.f - // linear combinations - mxxPyyPzz = mfaaa; - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - mfbbb = c1o2 * (( omFine + c12o1)*(-omCoarse + c2o1)) / ((omCoarse + c12o1)*(-omFine + c2o1)) * mfbbbMean; - mxxyPyzz = c1o2 * ((-omFine + c3o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c3o1 )*(-omFine + c2o1)) * mxxyPyzzMean; - mxxyMyzz = c1o2 * ((-omFine + c6o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c6o1 )*(-omFine + c2o1)) * mxxyMyzzMean; - mxxzPyyz = c1o2 * ((-omFine + c3o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c3o1 )*(-omFine + c2o1)) * mxxzPyyzMean; - mxxzMyyz = c1o2 * ((-omFine + c6o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c6o1 )*(-omFine + c2o1)) * mxxzMyyzMean; - mxyyPxzz = c1o2 * ((-omFine + c3o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c3o1 )*(-omFine + c2o1)) * mxyyPxzzMean; - mxyyMxzz = c1o2 * ((-omFine + c6o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c6o1 )*(-omFine + c2o1)) * mxyyMxzzMean; - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //index - kb = kzero; - kbw = kw; - kbs = ks; - kbsw = ksw; - kzero= k0w; - kw = neighborFX[k0w]; - ks = k0sw; - ksw = neighborFX[k0sw]; - //////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - feF[kzero] = mfcbb; - fwF[kw] = mfabb; - fnF[kzero] = mfbcb; - fsF[ks] = mfbab; - ftF[kzero] = mfbbc; - fbF[kb] = mfbba; - fneF[kzero] = mfccb; - fswF[ksw] = mfaab; - fseF[ks] = mfcab; - fnwF[kw] = mfacb; - fteF[kzero] = mfcbc; - fbwF[kbw] = mfaba; - fbeF[kb] = mfcba; - ftwF[kw] = mfabc; - ftnF[kzero] = mfbcc; - fbsF[kbs] = mfbaa; - fbnF[kb] = mfbca; - ftsF[ks] = mfbac; - fzeroF[kzero] = mfbbb; - ftneF[kzero] = mfccc; - ftseF[ks] = mfcac; - fbneF[kb] = mfcca; - fbseF[kbs] = mfcaa; - ftnwF[kw] = mfacc; - ftswF[ksw] = mfaac; - fbnwF[kbw] = mfaca; - fbswF[kbsw] = mfaaa; - //////////////////////////////////////////////////////////////////////////////////// - - - //reset - mfcbb = c0o1; - mfabb = c0o1; - mfbcb = c0o1; - mfbab = c0o1; - mfbbc = c0o1; - mfbba = c0o1; - mfccb = c0o1; - mfaab = c0o1; - mfcab = c0o1; - mfacb = c0o1; - mfcbc = c0o1; - mfaba = c0o1; - mfcba = c0o1; - mfabc = c0o1; - mfbcc = c0o1; - mfbaa = c0o1; - mfbca = c0o1; - mfbac = c0o1; - mfbbb = c0o1; - mfccc = c0o1; - mfaac = c0o1; - mfcac = c0o1; - mfacc = c0o1; - mfcca = c0o1; - mfaaa = c0o1; - mfcaa = c0o1; - mfaca = c0o1; - - - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position NWB -0.25f, 0.25f, -0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = -c1o4; - y = c1o4; - z = -c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho = c9o64*drho_NEB+c3o64*drho_NET+c27o64*drho_NWB+c9o64*drho_NWT+c3o64*drho_SEB+c1o64*drho_SET+c9o64*drho_SWB+c3o64*drho_SWT; - //press = press_NWT * (c9o64 + c3o16 * mxoff - c3o16 * myoff - c9o16 * mzoff) + - // press_NET * (c3o64 - c3o16 * mxoff - c1o16 * myoff - c3o16 * mzoff) + - // press_SWT * (c3o64 + c1o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + - // press_SET * (c1o64 - c1o16 * mxoff + c1o16 * myoff - c1o16 * mzoff) + - // press_SEB * (c3o64 - c3o16 * mxoff + c3o16 * myoff + c1o16 * mzoff) + - // press_NEB * (c9o64 - c9o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + - // press_SWB * (c9o64 + c3o16 * mxoff + c9o16 * myoff + c3o16 * mzoff) + - // press_NWB * (c27o64 + c9o16 * mxoff - c9o16 * myoff + c9o16 * mzoff); - //drho = drho_NWT * (c9o64 + c3o16 * xoff - c3o16 * yoff - c9o16 * zoff) + - // drho_NET * (c3o64 - c3o16 * xoff - c1o16 * yoff - c3o16 * zoff) + - // drho_SWT * (c3o64 + c1o16 * xoff + c3o16 * yoff - c3o16 * zoff) + - // drho_SET * (c1o64 - c1o16 * xoff + c1o16 * yoff - c1o16 * zoff) + - // drho_SEB * (c3o64 - c3o16 * xoff + c3o16 * yoff + c1o16 * zoff) + - // drho_NEB * (c9o64 - c9o16 * xoff - c3o16 * yoff + c3o16 * zoff) + - // drho_SWB * (c9o64 + c3o16 * xoff + c9o16 * yoff + c3o16 * zoff) + - // drho_NWB * (c27o64 + c9o16 * xoff - c9o16 * yoff + c9o16 * zoff); - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz + c3o1*x*x*LapRho ; - vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); - vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); - vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); - //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); - //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); - //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //2.f - // linear combinations - mxxPyyPzz = mfaaa; - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - mfbbb = c1o2 * (( omFine + c12o1)*(-omCoarse + c2o1)) / ((omCoarse + c12o1)*(-omFine + c2o1)) * mfbbbMean; - mxxyPyzz = c1o2 * ((-omFine + c3o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c3o1 )*(-omFine + c2o1)) * mxxyPyzzMean; - mxxyMyzz = c1o2 * ((-omFine + c6o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c6o1 )*(-omFine + c2o1)) * mxxyMyzzMean; - mxxzPyyz = c1o2 * ((-omFine + c3o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c3o1 )*(-omFine + c2o1)) * mxxzPyyzMean; - mxxzMyyz = c1o2 * ((-omFine + c6o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c6o1 )*(-omFine + c2o1)) * mxxzMyyzMean; - mxyyPxzz = c1o2 * ((-omFine + c3o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c3o1 )*(-omFine + c2o1)) * mxyyPxzzMean; - mxyyMxzz = c1o2 * ((-omFine + c6o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c6o1 )*(-omFine + c2o1)) * mxyyMxzzMean; - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //index 0 - k0zero= k0s; - k0w = k0sw; - k0s = neighborFY[k0s]; - k0b = k0bs; - k0sw = neighborFY[k0sw]; - k0bw = k0bsw; - k0bs = neighborFY[k0bs]; - k0bsw = neighborFY[k0bsw]; - ////////////////////////////////////////////////////////////////////////// - //index - kzero= k0zero; - kw = k0w; - ks = k0s; - kb = k0b; - ksw = k0sw; - kbw = k0bw; - kbs = k0bs; - kbsw = k0bsw; - //////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - feF[kzero] = mfcbb; - fwF[kw] = mfabb; - fnF[kzero] = mfbcb; - fsF[ks] = mfbab; - ftF[kzero] = mfbbc; - fbF[kb] = mfbba; - fneF[kzero] = mfccb; - fswF[ksw] = mfaab; - fseF[ks] = mfcab; - fnwF[kw] = mfacb; - fteF[kzero] = mfcbc; - fbwF[kbw] = mfaba; - fbeF[kb] = mfcba; - ftwF[kw] = mfabc; - ftnF[kzero] = mfbcc; - fbsF[kbs] = mfbaa; - fbnF[kb] = mfbca; - ftsF[ks] = mfbac; - fzeroF[kzero] = mfbbb; - ftneF[kzero] = mfccc; - ftseF[ks] = mfcac; - fbneF[kb] = mfcca; - fbseF[kbs] = mfcaa; - ftnwF[kw] = mfacc; - ftswF[ksw] = mfaac; - fbnwF[kbw] = mfaca; - fbswF[kbsw] = mfaaa; - //////////////////////////////////////////////////////////////////////////////////// - - - //reset - mfcbb = c0o1; - mfabb = c0o1; - mfbcb = c0o1; - mfbab = c0o1; - mfbbc = c0o1; - mfbba = c0o1; - mfccb = c0o1; - mfaab = c0o1; - mfcab = c0o1; - mfacb = c0o1; - mfcbc = c0o1; - mfaba = c0o1; - mfcba = c0o1; - mfabc = c0o1; - mfbcc = c0o1; - mfbaa = c0o1; - mfbca = c0o1; - mfbac = c0o1; - mfbbb = c0o1; - mfccc = c0o1; - mfaac = c0o1; - mfcac = c0o1; - mfacc = c0o1; - mfcca = c0o1; - mfaaa = c0o1; - mfcaa = c0o1; - mfaca = c0o1; - - - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position NWT -0.25f, 0.25f, 0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = -c1o4; - y = c1o4; - z = c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho = c3o64*drho_NEB+c9o64*drho_NET+c9o64*drho_NWB+c27o64*drho_NWT+c1o64*drho_SEB+c3o64*drho_SET+c3o64*drho_SWB+c9o64*drho_SWT; - //press = press_NWT * (c27o64 + c9o16 * mxoff - c9o16 * myoff - c9o16 * mzoff) + - // press_NET * (c9o64 - c9o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + - // press_SWT * (c9o64 + c3o16 * mxoff + c9o16 * myoff - c3o16 * mzoff) + - // press_SET * (c3o64 - c3o16 * mxoff + c3o16 * myoff - c1o16 * mzoff) + - // press_SEB * (c1o64 - c1o16 * mxoff + c1o16 * myoff + c1o16 * mzoff) + - // press_NEB * (c3o64 - c3o16 * mxoff - c1o16 * myoff + c3o16 * mzoff) + - // press_SWB * (c3o64 + c1o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + - // press_NWB * (c9o64 + c3o16 * mxoff - c3o16 * myoff + c9o16 * mzoff); - //drho = drho_NWT * (c27o64 + c9o16 * xoff - c9o16 * yoff - c9o16 * zoff) + - // drho_NET * (c9o64 - c9o16 * xoff - c3o16 * yoff - c3o16 * zoff) + - // drho_SWT * (c9o64 + c3o16 * xoff + c9o16 * yoff - c3o16 * zoff) + - // drho_SET * (c3o64 - c3o16 * xoff + c3o16 * yoff - c1o16 * zoff) + - // drho_SEB * (c1o64 - c1o16 * xoff + c1o16 * yoff + c1o16 * zoff) + - // drho_NEB * (c3o64 - c3o16 * xoff - c1o16 * yoff + c3o16 * zoff) + - // drho_SWB * (c3o64 + c1o16 * xoff + c3o16 * yoff + c3o16 * zoff) + - // drho_NWB * (c9o64 + c3o16 * xoff - c3o16 * yoff + c9o16 * zoff); - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz + c3o1*x*x*LapRho ; - vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); - vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); - vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); - //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); - //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); - //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //2.f - // linear combinations - mxxPyyPzz = mfaaa; - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - mfbbb = c1o2 * (( omFine + c12o1)*(-omCoarse + c2o1)) / ((omCoarse + c12o1)*(-omFine + c2o1)) * mfbbbMean; - mxxyPyzz = c1o2 * ((-omFine + c3o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c3o1 )*(-omFine + c2o1)) * mxxyPyzzMean; - mxxyMyzz = c1o2 * ((-omFine + c6o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c6o1 )*(-omFine + c2o1)) * mxxyMyzzMean; - mxxzPyyz = c1o2 * ((-omFine + c3o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c3o1 )*(-omFine + c2o1)) * mxxzPyyzMean; - mxxzMyyz = c1o2 * ((-omFine + c6o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c6o1 )*(-omFine + c2o1)) * mxxzMyyzMean; - mxyyPxzz = c1o2 * ((-omFine + c3o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c3o1 )*(-omFine + c2o1)) * mxyyPxzzMean; - mxyyMxzz = c1o2 * ((-omFine + c6o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c6o1 )*(-omFine + c2o1)) * mxyyMxzzMean; - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //index - kzero= kb; - kw = kbw; - ks = kbs; - kb = neighborFZ[kb]; - ksw = kbsw; - kbw = neighborFZ[kbw]; - kbs = neighborFZ[kbs]; - kbsw = neighborFZ[kbsw]; - //////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - feF[kzero] = mfcbb; - fwF[kw] = mfabb; - fnF[kzero] = mfbcb; - fsF[ks] = mfbab; - ftF[kzero] = mfbbc; - fbF[kb] = mfbba; - fneF[kzero] = mfccb; - fswF[ksw] = mfaab; - fseF[ks] = mfcab; - fnwF[kw] = mfacb; - fteF[kzero] = mfcbc; - fbwF[kbw] = mfaba; - fbeF[kb] = mfcba; - ftwF[kw] = mfabc; - ftnF[kzero] = mfbcc; - fbsF[kbs] = mfbaa; - fbnF[kb] = mfbca; - ftsF[ks] = mfbac; - fzeroF[kzero] = mfbbb; - ftneF[kzero] = mfccc; - ftseF[ks] = mfcac; - fbneF[kb] = mfcca; - fbseF[kbs] = mfcaa; - ftnwF[kw] = mfacc; - ftswF[ksw] = mfaac; - fbnwF[kbw] = mfaca; - fbswF[kbsw] = mfaaa; - //////////////////////////////////////////////////////////////////////////////////// - - - //reset - mfcbb = c0o1; - mfabb = c0o1; - mfbcb = c0o1; - mfbab = c0o1; - mfbbc = c0o1; - mfbba = c0o1; - mfccb = c0o1; - mfaab = c0o1; - mfcab = c0o1; - mfacb = c0o1; - mfcbc = c0o1; - mfaba = c0o1; - mfcba = c0o1; - mfabc = c0o1; - mfbcc = c0o1; - mfbaa = c0o1; - mfbca = c0o1; - mfbac = c0o1; - mfbbb = c0o1; - mfccc = c0o1; - mfaac = c0o1; - mfcac = c0o1; - mfacc = c0o1; - mfcca = c0o1; - mfaaa = c0o1; - mfcaa = c0o1; - mfaca = c0o1; - - - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position NET 0.25f, 0.25f, 0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = c1o4; - y = c1o4; - z = c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho = c9o64*drho_NEB+c27o64*drho_NET+c3o64*drho_NWB+c9o64*drho_NWT+c3o64*drho_SEB+c9o64*drho_SET+c1o64*drho_SWB+c3o64*drho_SWT; - //press = press_NET * (c27o64 - c9o16 * mxoff - c9o16 * myoff - c9o16 * mzoff) + - // press_NWT * (c9o64 + c9o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + - // press_SET * (c9o64 - c3o16 * mxoff + c9o16 * myoff - c3o16 * mzoff) + - // press_SWT * (c3o64 + c3o16 * mxoff + c3o16 * myoff - c1o16 * mzoff) + - // press_SWB * (c1o64 + c1o16 * mxoff + c1o16 * myoff + c1o16 * mzoff) + - // press_NWB * (c3o64 + c3o16 * mxoff - c1o16 * myoff + c3o16 * mzoff) + - // press_SEB * (c3o64 - c1o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + - // press_NEB * (c9o64 - c3o16 * mxoff - c3o16 * myoff + c9o16 * mzoff); - //drho = drho_NET * (c27o64 - c9o16 * xoff - c9o16 * yoff - c9o16 * zoff) + - // drho_NWT * (c9o64 + c9o16 * xoff - c3o16 * yoff - c3o16 * zoff) + - // drho_SET * (c9o64 - c3o16 * xoff + c9o16 * yoff - c3o16 * zoff) + - // drho_SWT * (c3o64 + c3o16 * xoff + c3o16 * yoff - c1o16 * zoff) + - // drho_SWB * (c1o64 + c1o16 * xoff + c1o16 * yoff + c1o16 * zoff) + - // drho_NWB * (c3o64 + c3o16 * xoff - c1o16 * yoff + c3o16 * zoff) + - // drho_SEB * (c3o64 - c1o16 * xoff + c3o16 * yoff + c3o16 * zoff) + - // drho_NEB * (c9o64 - c3o16 * xoff - c3o16 * yoff + c9o16 * zoff); - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz + c3o1*x*x*LapRho ; - vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); - vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); - vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); - //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); - //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); - //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //2.f - // linear combinations - mxxPyyPzz = mfaaa; - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - mfbbb = c1o2 * (( omFine + c12o1)*(-omCoarse + c2o1)) / ((omCoarse + c12o1)*(-omFine + c2o1)) * mfbbbMean; - mxxyPyzz = c1o2 * ((-omFine + c3o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c3o1 )*(-omFine + c2o1)) * mxxyPyzzMean; - mxxyMyzz = c1o2 * ((-omFine + c6o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c6o1 )*(-omFine + c2o1)) * mxxyMyzzMean; - mxxzPyyz = c1o2 * ((-omFine + c3o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c3o1 )*(-omFine + c2o1)) * mxxzPyyzMean; - mxxzMyyz = c1o2 * ((-omFine + c6o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c6o1 )*(-omFine + c2o1)) * mxxzMyyzMean; - mxyyPxzz = c1o2 * ((-omFine + c3o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c3o1 )*(-omFine + c2o1)) * mxyyPxzzMean; - mxyyMxzz = c1o2 * ((-omFine + c6o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c6o1 )*(-omFine + c2o1)) * mxyyMxzzMean; - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //index - kzero= kw; - kw = neighborFX[kw]; - ks = ksw; - kb = kbw; - ksw = neighborFX[ksw]; - kbw = neighborFX[kbw]; - kbs = kbsw; - kbsw = neighborFX[kbsw]; - //////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - feF[kzero] = mfcbb; - fwF[kw] = mfabb; - fnF[kzero] = mfbcb; - fsF[ks] = mfbab; - ftF[kzero] = mfbbc; - fbF[kb] = mfbba; - fneF[kzero] = mfccb; - fswF[ksw] = mfaab; - fseF[ks] = mfcab; - fnwF[kw] = mfacb; - fteF[kzero] = mfcbc; - fbwF[kbw] = mfaba; - fbeF[kb] = mfcba; - ftwF[kw] = mfabc; - ftnF[kzero] = mfbcc; - fbsF[kbs] = mfbaa; - fbnF[kb] = mfbca; - ftsF[ks] = mfbac; - fzeroF[kzero] = mfbbb; - ftneF[kzero] = mfccc; - ftseF[ks] = mfcac; - fbneF[kb] = mfcca; - fbseF[kbs] = mfcaa; - ftnwF[kw] = mfacc; - ftswF[ksw] = mfaac; - fbnwF[kbw] = mfaca; - fbswF[kbsw] = mfaaa; - //////////////////////////////////////////////////////////////////////////////////// - - - //reset - mfcbb = c0o1; - mfabb = c0o1; - mfbcb = c0o1; - mfbab = c0o1; - mfbbc = c0o1; - mfbba = c0o1; - mfccb = c0o1; - mfaab = c0o1; - mfcab = c0o1; - mfacb = c0o1; - mfcbc = c0o1; - mfaba = c0o1; - mfcba = c0o1; - mfabc = c0o1; - mfbcc = c0o1; - mfbaa = c0o1; - mfbca = c0o1; - mfbac = c0o1; - mfbbb = c0o1; - mfccc = c0o1; - mfaac = c0o1; - mfcac = c0o1; - mfacc = c0o1; - mfcca = c0o1; - mfaaa = c0o1; - mfcaa = c0o1; - mfaca = c0o1; - - - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position NEB 0.25f, 0.25f, -0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = c1o4; - y = c1o4; - z = -c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho = c27o64*drho_NEB+c9o64*drho_NET+c9o64*drho_NWB+c3o64*drho_NWT+c9o64*drho_SEB+c3o64*drho_SET+c3o64*drho_SWB+c1o64*drho_SWT; - //press = press_NET * (c9o64 - c3o16 * mxoff - c3o16 * myoff - c9o16 * mzoff) + - // press_NWT * (c3o64 + c3o16 * mxoff - c1o16 * myoff - c3o16 * mzoff) + - // press_SET * (c3o64 - c1o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + - // press_SWT * (c1o64 + c1o16 * mxoff + c1o16 * myoff - c1o16 * mzoff) + - // press_SWB * (c3o64 + c3o16 * mxoff + c3o16 * myoff + c1o16 * mzoff) + - // press_NWB * (c9o64 + c9o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + - // press_SEB * (c9o64 - c3o16 * mxoff + c9o16 * myoff + c3o16 * mzoff) + - // press_NEB * (c27o64 - c9o16 * mxoff - c9o16 * myoff + c9o16 * mzoff); - //drho = drho_NET * (c9o64 - c3o16 * xoff - c3o16 * yoff - c9o16 * zoff) + - // drho_NWT * (c3o64 + c3o16 * xoff - c1o16 * yoff - c3o16 * zoff) + - // drho_SET * (c3o64 - c1o16 * xoff + c3o16 * yoff - c3o16 * zoff) + - // drho_SWT * (c1o64 + c1o16 * xoff + c1o16 * yoff - c1o16 * zoff) + - // drho_SWB * (c3o64 + c3o16 * xoff + c3o16 * yoff + c1o16 * zoff) + - // drho_NWB * (c9o64 + c9o16 * xoff - c3o16 * yoff + c3o16 * zoff) + - // drho_SEB * (c9o64 - c3o16 * xoff + c9o16 * yoff + c3o16 * zoff) + - // drho_NEB * (c27o64 - c9o16 * xoff - c9o16 * yoff + c9o16 * zoff); - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz + c3o1*x*x*LapRho ; - vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); - vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); - vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); - //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); - //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); - //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //2.f - // linear combinations - mxxPyyPzz = mfaaa; - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - mfbbb = c1o2 * (( omFine + c12o1)*(-omCoarse + c2o1)) / ((omCoarse + c12o1)*(-omFine + c2o1)) * mfbbbMean; - mxxyPyzz = c1o2 * ((-omFine + c3o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c3o1 )*(-omFine + c2o1)) * mxxyPyzzMean; - mxxyMyzz = c1o2 * ((-omFine + c6o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c6o1 )*(-omFine + c2o1)) * mxxyMyzzMean; - mxxzPyyz = c1o2 * ((-omFine + c3o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c3o1 )*(-omFine + c2o1)) * mxxzPyyzMean; - mxxzMyyz = c1o2 * ((-omFine + c6o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c6o1 )*(-omFine + c2o1)) * mxxzMyyzMean; - mxyyPxzz = c1o2 * ((-omFine + c3o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c3o1 )*(-omFine + c2o1)) * mxyyPxzzMean; - mxyyMxzz = c1o2 * ((-omFine + c6o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c6o1 )*(-omFine + c2o1)) * mxyyMxzzMean; - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //index - kb = kzero; - kbw = kw; - kbs = ks; - kbsw = ksw; - kzero= k0w; - kw = neighborFX[k0w]; - ks = k0sw; - ksw = neighborFX[k0sw]; - //////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - feF[kzero] = mfcbb; - fwF[kw] = mfabb; - fnF[kzero] = mfbcb; - fsF[ks] = mfbab; - ftF[kzero] = mfbbc; - fbF[kb] = mfbba; - fneF[kzero] = mfccb; - fswF[ksw] = mfaab; - fseF[ks] = mfcab; - fnwF[kw] = mfacb; - fteF[kzero] = mfcbc; - fbwF[kbw] = mfaba; - fbeF[kb] = mfcba; - ftwF[kw] = mfabc; - ftnF[kzero] = mfbcc; - fbsF[kbs] = mfbaa; - fbnF[kb] = mfbca; - ftsF[ks] = mfbac; - fzeroF[kzero] = mfbbb; - ftneF[kzero] = mfccc; - ftseF[ks] = mfcac; - fbneF[kb] = mfcca; - fbseF[kbs] = mfcaa; - ftnwF[kw] = mfacc; - ftswF[ksw] = mfaac; - fbnwF[kbw] = mfaca; - fbswF[kbsw] = mfaaa; - //////////////////////////////////////////////////////////////////////////////////// - } -} -////////////////////////////////////////////////////////////////////////// + d0 = d0 + xoff * dx + yoff * dy + zoff * dz + xoff*yoff*dxy + xoff*zoff*dxz + yoff*zoff*dyz; + dx = dx + yoff * dxy + zoff * dxz; + dy = dy + xoff * dxy + zoff * dyz; + dz = dz + xoff * dxz + yoff * dyz; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // FIX /////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //AAAAAAAAAAAAHHHHHHHHHHHH!!!!! Mieser Test!!! + //b0= bx= by= bz= bxx= byy= bzz= bxy= bxz= byz= c0= cx= cy= cz= cxx= cyy= czz= cxy= cxz= cyz= axyz= bxyz= cxyz=zero; + //a0=zero; + //ax=zero; + //ay=zero; + //az=zero; + //axx=zero; + //ayy=zero; + //azz=zero; + //axy=zero; + //axz=zero; + //ayz=zero; + //b0=zero; + //bx=zero; + //by=zero; + //bz=zero; + //bxx=zero; + //byy=zero; + //bzz=zero; + //bxy=zero; + //bxz=zero; + //byz=zero; + //c0=zero; + //cx=zero; + //cy=zero; + //cz=zero; + //cxx=zero; + //cyy=zero; + //czz=zero; + //cxy=zero; + //cxz=zero; + //cyz=zero; + //axyz=zero; + //bxyz=zero; + //cxyz=zero; + //ax= ay= az= axx= ayy= azz= axy= axz= ayz= bx= by= bz= bxx= byy= bzz= bxy= bxz= byz= cx= cy= cz= cxx= cyy= czz= cxy= cxz= cyz= axyz= bxyz= cxyz=zero; + //a0=zero; + //b0=zero; + //c0=c1o100; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + mfcbb = c0o1; + mfabb = c0o1; + mfbcb = c0o1; + mfbab = c0o1; + mfbbc = c0o1; + mfbba = c0o1; + mfccb = c0o1; + mfaab = c0o1; + mfcab = c0o1; + mfacb = c0o1; + mfcbc = c0o1; + mfaba = c0o1; + mfcba = c0o1; + mfabc = c0o1; + mfbcc = c0o1; + mfbaa = c0o1; + mfbca = c0o1; + mfbac = c0o1; + mfbbb = c0o1; + mfccc = c0o1; + mfaac = c0o1; + mfcac = c0o1; + mfacc = c0o1; + mfcca = c0o1; + mfaaa = c0o1; + mfcaa = c0o1; + mfaca = c0o1; + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //real m0, m1, m2, vvx, vvy, vvz, vx2, vy2, vz2, oMdrho; + //real mxxPyyPzz, mxxMyy, mxxMzz, mxxyPyzz, mxxyMyzz, mxxzPyyz, mxxzMyyz, mxyyPxzz, mxyyMxzz; + ////real qudricLimit = c1o100;//ganz schlechte Idee -> muss global sein + ////real O3 = two - o; + ////real residu, residutmp; + ////residutmp = zero;// /*-*/ c2o9 * (1./o - c1o2) * eps_new * eps_new; + //real NeqOn = one;//zero;//one; //.... one = on ..... zero = off + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position SWB -0.25f, -0.25f, -0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = -c1o4; + y = -c1o4; + z = -c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //real mxoff = -xoff; + //real myoff = -yoff; + //real mzoff = -zoff; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho = c3o64*drho_NEB+c1o64*drho_NET+c9o64*drho_NWB+c3o64*drho_NWT+c9o64*drho_SEB+c3o64*drho_SET+c27o64*drho_SWB+c9o64*drho_SWT; + //press = press_SWT * (c9o64 + c3o16 * mxoff + c3o16 * myoff - c9o16 * mzoff) + + // press_NWT * (c3o64 + c1o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + + // press_SET * (c3o64 - c3o16 * mxoff + c1o16 * myoff - c3o16 * mzoff) + + // press_NET * (c1o64 - c1o16 * mxoff - c1o16 * myoff - c1o16 * mzoff) + + // press_NEB * (c3o64 - c3o16 * mxoff - c3o16 * myoff + c1o16 * mzoff) + + // press_NWB * (c9o64 + c3o16 * mxoff - c9o16 * myoff + c3o16 * mzoff) + + // press_SEB * (c9o64 - c9o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + + // press_SWB * (c27o64 + c9o16 * mxoff + c9o16 * myoff + c9o16 * mzoff); + //drho = drho_SWT * (c9o64 + c3o16 * xoff + c3o16 * yoff - c9o16 * zoff) + + // drho_NWT * (c3o64 + c1o16 * xoff - c3o16 * yoff - c3o16 * zoff) + + // drho_SET * (c3o64 - c3o16 * xoff + c1o16 * yoff - c3o16 * zoff) + + // drho_NET * (c1o64 - c1o16 * xoff - c1o16 * yoff - c1o16 * zoff) + + // drho_NEB * (c3o64 - c3o16 * xoff - c3o16 * yoff + c1o16 * zoff) + + // drho_NWB * (c9o64 + c3o16 * xoff - c9o16 * yoff + c3o16 * zoff) + + // drho_SEB * (c9o64 - c9o16 * xoff + c3o16 * yoff + c3o16 * zoff) + + // drho_SWB * (c27o64 + c9o16 * xoff + c9o16 * yoff + c9o16 * zoff); + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz + c3o1*x*x*LapRho ; + vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); + vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); + vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); + //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); + //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); + //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1; + //oMdrho = one - mfaaa; + + //2.f + // linear combinations + mxxPyyPzz = mfaaa; + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + mfbbb = c1o2 * (( omFine + c12o1)*(-omCoarse + c2o1)) / ((omCoarse + c12o1)*(-omFine + c2o1)) * mfbbbMean; + mxxyPyzz = c1o2 * ((-omFine + c3o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c3o1 )*(-omFine + c2o1)) * mxxyPyzzMean; + mxxyMyzz = c1o2 * ((-omFine + c6o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c6o1 )*(-omFine + c2o1)) * mxxyMyzzMean; + mxxzPyyz = c1o2 * ((-omFine + c3o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c3o1 )*(-omFine + c2o1)) * mxxzPyyzMean; + mxxzMyyz = c1o2 * ((-omFine + c6o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c6o1 )*(-omFine + c2o1)) * mxxzMyyzMean; + mxyyPxzz = c1o2 * ((-omFine + c3o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c3o1 )*(-omFine + c2o1)) * mxyyPxzzMean; + mxyyMxzz = c1o2 * ((-omFine + c6o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c6o1 )*(-omFine + c2o1)) * mxyyMxzzMean; + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////// + //index 0 + k0zero= posFSWB[k]; + k0w = neighborFX[k0zero]; + k0s = neighborFY[k0zero]; + k0b = neighborFZ[k0zero]; + k0sw = neighborFY[k0w]; + k0bw = neighborFZ[k0w]; + k0bs = neighborFZ[k0s]; + k0bsw = neighborFZ[k0sw]; + ////////////////////////////////////////////////////////////////////////// + //index + kzero= k0zero; + kw = k0w; + ks = k0s; + kb = k0b; + ksw = k0sw; + kbw = k0bw; + kbs = k0bs; + kbsw = k0bsw; + //////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + feF[kzero] = mfcbb; + fwF[kw] = mfabb; + fnF[kzero] = mfbcb; + fsF[ks] = mfbab; + ftF[kzero] = mfbbc; + fbF[kb] = mfbba; + fneF[kzero] = mfccb; + fswF[ksw] = mfaab; + fseF[ks] = mfcab; + fnwF[kw] = mfacb; + fteF[kzero] = mfcbc; + fbwF[kbw] = mfaba; + fbeF[kb] = mfcba; + ftwF[kw] = mfabc; + ftnF[kzero] = mfbcc; + fbsF[kbs] = mfbaa; + fbnF[kb] = mfbca; + ftsF[ks] = mfbac; + fzeroF[kzero] = mfbbb; + ftneF[kzero] = mfccc; + ftseF[ks] = mfcac; + fbneF[kb] = mfcca; + fbseF[kbs] = mfcaa; + ftnwF[kw] = mfacc; + ftswF[ksw] = mfaac; + fbnwF[kbw] = mfaca; + fbswF[kbsw] = mfaaa; + //////////////////////////////////////////////////////////////////////////////////// + + //reset + mfcbb = c0o1; + mfabb = c0o1; + mfbcb = c0o1; + mfbab = c0o1; + mfbbc = c0o1; + mfbba = c0o1; + mfccb = c0o1; + mfaab = c0o1; + mfcab = c0o1; + mfacb = c0o1; + mfcbc = c0o1; + mfaba = c0o1; + mfcba = c0o1; + mfabc = c0o1; + mfbcc = c0o1; + mfbaa = c0o1; + mfbca = c0o1; + mfbac = c0o1; + mfbbb = c0o1; + mfccc = c0o1; + mfaac = c0o1; + mfcac = c0o1; + mfacc = c0o1; + mfcca = c0o1; + mfaaa = c0o1; + mfcaa = c0o1; + mfaca = c0o1; + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position SWT -0.25f, -0.25f, 0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = -c1o4; + y = -c1o4; + z = c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho = c1o64*drho_NEB+c3o64*drho_NET+c3o64*drho_NWB+c9o64*drho_NWT+c3o64*drho_SEB+c9o64*drho_SET+c9o64*drho_SWB+c27o64*drho_SWT; + //press = press_SWT * (c27o64 + c9o16 * mxoff + c9o16 * myoff - c9o16 * mzoff) + + // press_NWT * (c9o64 + c3o16 * mxoff - c9o16 * myoff - c3o16 * mzoff) + + // press_SET * (c9o64 - c9o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + + // press_NET * (c3o64 - c3o16 * mxoff - c3o16 * myoff - c1o16 * mzoff) + + // press_NEB * (c1o64 - c1o16 * mxoff - c1o16 * myoff + c1o16 * mzoff) + + // press_NWB * (c3o64 + c1o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + + // press_SEB * (c3o64 - c3o16 * mxoff + c1o16 * myoff + c3o16 * mzoff) + + // press_SWB * (c9o64 + c3o16 * mxoff + c3o16 * myoff + c9o16 * mzoff); + //drho = drho_SWT * (c27o64 + c9o16 * xoff + c9o16 * yoff - c9o16 * zoff) + + // drho_NWT * (c9o64 + c3o16 * xoff - c9o16 * yoff - c3o16 * zoff) + + // drho_SET * (c9o64 - c9o16 * xoff + c3o16 * yoff - c3o16 * zoff) + + // drho_NET * (c3o64 - c3o16 * xoff - c3o16 * yoff - c1o16 * zoff) + + // drho_NEB * (c1o64 - c1o16 * xoff - c1o16 * yoff + c1o16 * zoff) + + // drho_NWB * (c3o64 + c1o16 * xoff - c3o16 * yoff + c3o16 * zoff) + + // drho_SEB * (c3o64 - c3o16 * xoff + c1o16 * yoff + c3o16 * zoff) + + // drho_SWB * (c9o64 + c3o16 * xoff + c3o16 * yoff + c9o16 * zoff); + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz + c3o1*x*x*LapRho ; + vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); + vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); + vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); + //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); + //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); + //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1; + //oMdrho = one - mfaaa; + + //2.f + // linear combinations + mxxPyyPzz = mfaaa; + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + mfbbb = c1o2 * (( omFine + c12o1)*(-omCoarse + c2o1)) / ((omCoarse + c12o1)*(-omFine + c2o1)) * mfbbbMean; + mxxyPyzz = c1o2 * ((-omFine + c3o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c3o1 )*(-omFine + c2o1)) * mxxyPyzzMean; + mxxyMyzz = c1o2 * ((-omFine + c6o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c6o1 )*(-omFine + c2o1)) * mxxyMyzzMean; + mxxzPyyz = c1o2 * ((-omFine + c3o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c3o1 )*(-omFine + c2o1)) * mxxzPyyzMean; + mxxzMyyz = c1o2 * ((-omFine + c6o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c6o1 )*(-omFine + c2o1)) * mxxzMyyzMean; + mxyyPxzz = c1o2 * ((-omFine + c3o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c3o1 )*(-omFine + c2o1)) * mxyyPxzzMean; + mxyyMxzz = c1o2 * ((-omFine + c6o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c6o1 )*(-omFine + c2o1)) * mxyyMxzzMean; + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + //index + kzero= kb; + kw = kbw; + ks = kbs; + kb = neighborFZ[kb]; + ksw = kbsw; + kbw = neighborFZ[kbw]; + kbs = neighborFZ[kbs]; + kbsw = neighborFZ[kbsw]; + //////////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + feF[kzero] = mfcbb; + fwF[kw] = mfabb; + fnF[kzero] = mfbcb; + fsF[ks] = mfbab; + ftF[kzero] = mfbbc; + fbF[kb] = mfbba; + fneF[kzero] = mfccb; + fswF[ksw] = mfaab; + fseF[ks] = mfcab; + fnwF[kw] = mfacb; + fteF[kzero] = mfcbc; + fbwF[kbw] = mfaba; + fbeF[kb] = mfcba; + ftwF[kw] = mfabc; + ftnF[kzero] = mfbcc; + fbsF[kbs] = mfbaa; + fbnF[kb] = mfbca; + ftsF[ks] = mfbac; + fzeroF[kzero] = mfbbb; + ftneF[kzero] = mfccc; + ftseF[ks] = mfcac; + fbneF[kb] = mfcca; + fbseF[kbs] = mfcaa; + ftnwF[kw] = mfacc; + ftswF[ksw] = mfaac; + fbnwF[kbw] = mfaca; + fbswF[kbsw] = mfaaa; + //////////////////////////////////////////////////////////////////////////////////// + + + //reset + mfcbb = c0o1; + mfabb = c0o1; + mfbcb = c0o1; + mfbab = c0o1; + mfbbc = c0o1; + mfbba = c0o1; + mfccb = c0o1; + mfaab = c0o1; + mfcab = c0o1; + mfacb = c0o1; + mfcbc = c0o1; + mfaba = c0o1; + mfcba = c0o1; + mfabc = c0o1; + mfbcc = c0o1; + mfbaa = c0o1; + mfbca = c0o1; + mfbac = c0o1; + mfbbb = c0o1; + mfccc = c0o1; + mfaac = c0o1; + mfcac = c0o1; + mfacc = c0o1; + mfcca = c0o1; + mfaaa = c0o1; + mfcaa = c0o1; + mfaca = c0o1; + + + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position SET 0.25f, -0.25f, 0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = c1o4; + y = -c1o4; + z = c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho =c3o64*drho_NEB+c9o64*drho_NET+c1o64*drho_NWB+c3o64*drho_NWT+c9o64*drho_SEB+c27o64*drho_SET+c3o64*drho_SWB+c9o64*drho_SWT; + //press = press_SET * (c27o64 - c9o16 * mxoff + c9o16 * myoff - c9o16 * mzoff) + + // press_NET * (c9o64 - c3o16 * mxoff - c9o16 * myoff - c3o16 * mzoff) + + // press_SWT * (c9o64 + c9o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + + // press_NWT * (c3o64 + c3o16 * mxoff - c3o16 * myoff - c1o16 * mzoff) + + // press_NWB * (c1o64 + c1o16 * mxoff - c1o16 * myoff + c1o16 * mzoff) + + // press_NEB * (c3o64 - c1o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + + // press_SWB * (c3o64 + c3o16 * mxoff + c1o16 * myoff + c3o16 * mzoff) + + // press_SEB * (c9o64 - c3o16 * mxoff + c3o16 * myoff + c9o16 * mzoff); + //drho = drho_SET * (c27o64 - c9o16 * xoff + c9o16 * yoff - c9o16 * zoff) + + // drho_NET * (c9o64 - c3o16 * xoff - c9o16 * yoff - c3o16 * zoff) + + // drho_SWT * (c9o64 + c9o16 * xoff + c3o16 * yoff - c3o16 * zoff) + + // drho_NWT * (c3o64 + c3o16 * xoff - c3o16 * yoff - c1o16 * zoff) + + // drho_NWB * (c1o64 + c1o16 * xoff - c1o16 * yoff + c1o16 * zoff) + + // drho_NEB * (c3o64 - c1o16 * xoff - c3o16 * yoff + c3o16 * zoff) + + // drho_SWB * (c3o64 + c3o16 * xoff + c1o16 * yoff + c3o16 * zoff) + + // drho_SEB * (c9o64 - c3o16 * xoff + c3o16 * yoff + c9o16 * zoff); + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz + c3o1*x*x*LapRho ; + vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); + vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); + vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); + //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); + //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); + //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1; + //oMdrho = one - mfaaa; + + //2.f + // linear combinations + mxxPyyPzz = mfaaa; + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + mfbbb = c1o2 * (( omFine + c12o1)*(-omCoarse + c2o1)) / ((omCoarse + c12o1)*(-omFine + c2o1)) * mfbbbMean; + mxxyPyzz = c1o2 * ((-omFine + c3o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c3o1 )*(-omFine + c2o1)) * mxxyPyzzMean; + mxxyMyzz = c1o2 * ((-omFine + c6o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c6o1 )*(-omFine + c2o1)) * mxxyMyzzMean; + mxxzPyyz = c1o2 * ((-omFine + c3o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c3o1 )*(-omFine + c2o1)) * mxxzPyyzMean; + mxxzMyyz = c1o2 * ((-omFine + c6o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c6o1 )*(-omFine + c2o1)) * mxxzMyyzMean; + mxyyPxzz = c1o2 * ((-omFine + c3o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c3o1 )*(-omFine + c2o1)) * mxyyPxzzMean; + mxyyMxzz = c1o2 * ((-omFine + c6o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c6o1 )*(-omFine + c2o1)) * mxyyMxzzMean; + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////// + //index + kzero= kw; + kw = neighborFX[kw]; + ks = ksw; + kb = kbw; + ksw = neighborFX[ksw]; + kbw = neighborFX[kbw]; + kbs = kbsw; + kbsw = neighborFX[kbsw]; + //////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + feF[kzero] = mfcbb; + fwF[kw] = mfabb; + fnF[kzero] = mfbcb; + fsF[ks] = mfbab; + ftF[kzero] = mfbbc; + fbF[kb] = mfbba; + fneF[kzero] = mfccb; + fswF[ksw] = mfaab; + fseF[ks] = mfcab; + fnwF[kw] = mfacb; + fteF[kzero] = mfcbc; + fbwF[kbw] = mfaba; + fbeF[kb] = mfcba; + ftwF[kw] = mfabc; + ftnF[kzero] = mfbcc; + fbsF[kbs] = mfbaa; + fbnF[kb] = mfbca; + ftsF[ks] = mfbac; + fzeroF[kzero] = mfbbb; + ftneF[kzero] = mfccc; + ftseF[ks] = mfcac; + fbneF[kb] = mfcca; + fbseF[kbs] = mfcaa; + ftnwF[kw] = mfacc; + ftswF[ksw] = mfaac; + fbnwF[kbw] = mfaca; + fbswF[kbsw] = mfaaa; + //////////////////////////////////////////////////////////////////////////////////// + + //reset + mfcbb = c0o1; + mfabb = c0o1; + mfbcb = c0o1; + mfbab = c0o1; + mfbbc = c0o1; + mfbba = c0o1; + mfccb = c0o1; + mfaab = c0o1; + mfcab = c0o1; + mfacb = c0o1; + mfcbc = c0o1; + mfaba = c0o1; + mfcba = c0o1; + mfabc = c0o1; + mfbcc = c0o1; + mfbaa = c0o1; + mfbca = c0o1; + mfbac = c0o1; + mfbbb = c0o1; + mfccc = c0o1; + mfaac = c0o1; + mfcac = c0o1; + mfacc = c0o1; + mfcca = c0o1; + mfaaa = c0o1; + mfcaa = c0o1; + mfaca = c0o1; + + + + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position SEB 0.25f, -0.25f, -0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = c1o4; + y = -c1o4; + z = -c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho =c9o64*drho_NEB+c3o64*drho_NET+c3o64*drho_NWB+c1o64*drho_NWT+c27o64*drho_SEB+c9o64*drho_SET+c9o64*drho_SWB+c3o64*drho_SWT; + //press = press_SET * (c9o64 - c3o16 * mxoff + c3o16 * myoff - c9o16 * mzoff) + + // press_NET * (c3o64 - c1o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + + // press_SWT * (c3o64 + c3o16 * mxoff + c1o16 * myoff - c3o16 * mzoff) + + // press_NWT * (c1o64 + c1o16 * mxoff - c1o16 * myoff - c1o16 * mzoff) + + // press_NWB * (c3o64 + c3o16 * mxoff - c3o16 * myoff + c1o16 * mzoff) + + // press_NEB * (c9o64 - c3o16 * mxoff - c9o16 * myoff + c3o16 * mzoff) + + // press_SWB * (c9o64 + c9o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + + // press_SEB * (c27o64 - c9o16 * mxoff + c9o16 * myoff + c9o16 * mzoff); + //drho = drho_SET * (c9o64 - c3o16 * xoff + c3o16 * yoff - c9o16 * zoff) + + // drho_NET * (c3o64 - c1o16 * xoff - c3o16 * yoff - c3o16 * zoff) + + // drho_SWT * (c3o64 + c3o16 * xoff + c1o16 * yoff - c3o16 * zoff) + + // drho_NWT * (c1o64 + c1o16 * xoff - c1o16 * yoff - c1o16 * zoff) + + // drho_NWB * (c3o64 + c3o16 * xoff - c3o16 * yoff + c1o16 * zoff) + + // drho_NEB * (c9o64 - c3o16 * xoff - c9o16 * yoff + c3o16 * zoff) + + // drho_SWB * (c9o64 + c9o16 * xoff + c3o16 * yoff + c3o16 * zoff) + + // drho_SEB * (c27o64 - c9o16 * xoff + c9o16 * yoff + c9o16 * zoff); + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz + c3o1*x*x*LapRho ; + vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); + vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); + vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); + //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); + //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); + //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1; + //oMdrho = one - mfaaa; + + //2.f + // linear combinations + mxxPyyPzz = mfaaa; + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + mfbbb = c1o2 * (( omFine + c12o1)*(-omCoarse + c2o1)) / ((omCoarse + c12o1)*(-omFine + c2o1)) * mfbbbMean; + mxxyPyzz = c1o2 * ((-omFine + c3o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c3o1 )*(-omFine + c2o1)) * mxxyPyzzMean; + mxxyMyzz = c1o2 * ((-omFine + c6o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c6o1 )*(-omFine + c2o1)) * mxxyMyzzMean; + mxxzPyyz = c1o2 * ((-omFine + c3o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c3o1 )*(-omFine + c2o1)) * mxxzPyyzMean; + mxxzMyyz = c1o2 * ((-omFine + c6o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c6o1 )*(-omFine + c2o1)) * mxxzMyyzMean; + mxyyPxzz = c1o2 * ((-omFine + c3o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c3o1 )*(-omFine + c2o1)) * mxyyPxzzMean; + mxyyMxzz = c1o2 * ((-omFine + c6o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c6o1 )*(-omFine + c2o1)) * mxyyMxzzMean; + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////// + //index + kb = kzero; + kbw = kw; + kbs = ks; + kbsw = ksw; + kzero= k0w; + kw = neighborFX[k0w]; + ks = k0sw; + ksw = neighborFX[k0sw]; + //////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + feF[kzero] = mfcbb; + fwF[kw] = mfabb; + fnF[kzero] = mfbcb; + fsF[ks] = mfbab; + ftF[kzero] = mfbbc; + fbF[kb] = mfbba; + fneF[kzero] = mfccb; + fswF[ksw] = mfaab; + fseF[ks] = mfcab; + fnwF[kw] = mfacb; + fteF[kzero] = mfcbc; + fbwF[kbw] = mfaba; + fbeF[kb] = mfcba; + ftwF[kw] = mfabc; + ftnF[kzero] = mfbcc; + fbsF[kbs] = mfbaa; + fbnF[kb] = mfbca; + ftsF[ks] = mfbac; + fzeroF[kzero] = mfbbb; + ftneF[kzero] = mfccc; + ftseF[ks] = mfcac; + fbneF[kb] = mfcca; + fbseF[kbs] = mfcaa; + ftnwF[kw] = mfacc; + ftswF[ksw] = mfaac; + fbnwF[kbw] = mfaca; + fbswF[kbsw] = mfaaa; + //////////////////////////////////////////////////////////////////////////////////// + + + //reset + mfcbb = c0o1; + mfabb = c0o1; + mfbcb = c0o1; + mfbab = c0o1; + mfbbc = c0o1; + mfbba = c0o1; + mfccb = c0o1; + mfaab = c0o1; + mfcab = c0o1; + mfacb = c0o1; + mfcbc = c0o1; + mfaba = c0o1; + mfcba = c0o1; + mfabc = c0o1; + mfbcc = c0o1; + mfbaa = c0o1; + mfbca = c0o1; + mfbac = c0o1; + mfbbb = c0o1; + mfccc = c0o1; + mfaac = c0o1; + mfcac = c0o1; + mfacc = c0o1; + mfcca = c0o1; + mfaaa = c0o1; + mfcaa = c0o1; + mfaca = c0o1; + + + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position NWB -0.25f, 0.25f, -0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = -c1o4; + y = c1o4; + z = -c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho = c9o64*drho_NEB+c3o64*drho_NET+c27o64*drho_NWB+c9o64*drho_NWT+c3o64*drho_SEB+c1o64*drho_SET+c9o64*drho_SWB+c3o64*drho_SWT; + //press = press_NWT * (c9o64 + c3o16 * mxoff - c3o16 * myoff - c9o16 * mzoff) + + // press_NET * (c3o64 - c3o16 * mxoff - c1o16 * myoff - c3o16 * mzoff) + + // press_SWT * (c3o64 + c1o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + + // press_SET * (c1o64 - c1o16 * mxoff + c1o16 * myoff - c1o16 * mzoff) + + // press_SEB * (c3o64 - c3o16 * mxoff + c3o16 * myoff + c1o16 * mzoff) + + // press_NEB * (c9o64 - c9o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + + // press_SWB * (c9o64 + c3o16 * mxoff + c9o16 * myoff + c3o16 * mzoff) + + // press_NWB * (c27o64 + c9o16 * mxoff - c9o16 * myoff + c9o16 * mzoff); + //drho = drho_NWT * (c9o64 + c3o16 * xoff - c3o16 * yoff - c9o16 * zoff) + + // drho_NET * (c3o64 - c3o16 * xoff - c1o16 * yoff - c3o16 * zoff) + + // drho_SWT * (c3o64 + c1o16 * xoff + c3o16 * yoff - c3o16 * zoff) + + // drho_SET * (c1o64 - c1o16 * xoff + c1o16 * yoff - c1o16 * zoff) + + // drho_SEB * (c3o64 - c3o16 * xoff + c3o16 * yoff + c1o16 * zoff) + + // drho_NEB * (c9o64 - c9o16 * xoff - c3o16 * yoff + c3o16 * zoff) + + // drho_SWB * (c9o64 + c3o16 * xoff + c9o16 * yoff + c3o16 * zoff) + + // drho_NWB * (c27o64 + c9o16 * xoff - c9o16 * yoff + c9o16 * zoff); + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz + c3o1*x*x*LapRho ; + vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); + vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); + vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); + //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); + //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); + //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1; + //oMdrho = one - mfaaa; + + //2.f + // linear combinations + mxxPyyPzz = mfaaa; + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + mfbbb = c1o2 * (( omFine + c12o1)*(-omCoarse + c2o1)) / ((omCoarse + c12o1)*(-omFine + c2o1)) * mfbbbMean; + mxxyPyzz = c1o2 * ((-omFine + c3o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c3o1 )*(-omFine + c2o1)) * mxxyPyzzMean; + mxxyMyzz = c1o2 * ((-omFine + c6o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c6o1 )*(-omFine + c2o1)) * mxxyMyzzMean; + mxxzPyyz = c1o2 * ((-omFine + c3o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c3o1 )*(-omFine + c2o1)) * mxxzPyyzMean; + mxxzMyyz = c1o2 * ((-omFine + c6o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c6o1 )*(-omFine + c2o1)) * mxxzMyyzMean; + mxyyPxzz = c1o2 * ((-omFine + c3o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c3o1 )*(-omFine + c2o1)) * mxyyPxzzMean; + mxyyMxzz = c1o2 * ((-omFine + c6o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c6o1 )*(-omFine + c2o1)) * mxyyMxzzMean; + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////// + //index 0 + k0zero= k0s; + k0w = k0sw; + k0s = neighborFY[k0s]; + k0b = k0bs; + k0sw = neighborFY[k0sw]; + k0bw = k0bsw; + k0bs = neighborFY[k0bs]; + k0bsw = neighborFY[k0bsw]; + ////////////////////////////////////////////////////////////////////////// + //index + kzero= k0zero; + kw = k0w; + ks = k0s; + kb = k0b; + ksw = k0sw; + kbw = k0bw; + kbs = k0bs; + kbsw = k0bsw; + //////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + feF[kzero] = mfcbb; + fwF[kw] = mfabb; + fnF[kzero] = mfbcb; + fsF[ks] = mfbab; + ftF[kzero] = mfbbc; + fbF[kb] = mfbba; + fneF[kzero] = mfccb; + fswF[ksw] = mfaab; + fseF[ks] = mfcab; + fnwF[kw] = mfacb; + fteF[kzero] = mfcbc; + fbwF[kbw] = mfaba; + fbeF[kb] = mfcba; + ftwF[kw] = mfabc; + ftnF[kzero] = mfbcc; + fbsF[kbs] = mfbaa; + fbnF[kb] = mfbca; + ftsF[ks] = mfbac; + fzeroF[kzero] = mfbbb; + ftneF[kzero] = mfccc; + ftseF[ks] = mfcac; + fbneF[kb] = mfcca; + fbseF[kbs] = mfcaa; + ftnwF[kw] = mfacc; + ftswF[ksw] = mfaac; + fbnwF[kbw] = mfaca; + fbswF[kbsw] = mfaaa; + //////////////////////////////////////////////////////////////////////////////////// + + + //reset + mfcbb = c0o1; + mfabb = c0o1; + mfbcb = c0o1; + mfbab = c0o1; + mfbbc = c0o1; + mfbba = c0o1; + mfccb = c0o1; + mfaab = c0o1; + mfcab = c0o1; + mfacb = c0o1; + mfcbc = c0o1; + mfaba = c0o1; + mfcba = c0o1; + mfabc = c0o1; + mfbcc = c0o1; + mfbaa = c0o1; + mfbca = c0o1; + mfbac = c0o1; + mfbbb = c0o1; + mfccc = c0o1; + mfaac = c0o1; + mfcac = c0o1; + mfacc = c0o1; + mfcca = c0o1; + mfaaa = c0o1; + mfcaa = c0o1; + mfaca = c0o1; + + + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position NWT -0.25f, 0.25f, 0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = -c1o4; + y = c1o4; + z = c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho = c3o64*drho_NEB+c9o64*drho_NET+c9o64*drho_NWB+c27o64*drho_NWT+c1o64*drho_SEB+c3o64*drho_SET+c3o64*drho_SWB+c9o64*drho_SWT; + //press = press_NWT * (c27o64 + c9o16 * mxoff - c9o16 * myoff - c9o16 * mzoff) + + // press_NET * (c9o64 - c9o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + + // press_SWT * (c9o64 + c3o16 * mxoff + c9o16 * myoff - c3o16 * mzoff) + + // press_SET * (c3o64 - c3o16 * mxoff + c3o16 * myoff - c1o16 * mzoff) + + // press_SEB * (c1o64 - c1o16 * mxoff + c1o16 * myoff + c1o16 * mzoff) + + // press_NEB * (c3o64 - c3o16 * mxoff - c1o16 * myoff + c3o16 * mzoff) + + // press_SWB * (c3o64 + c1o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + + // press_NWB * (c9o64 + c3o16 * mxoff - c3o16 * myoff + c9o16 * mzoff); + //drho = drho_NWT * (c27o64 + c9o16 * xoff - c9o16 * yoff - c9o16 * zoff) + + // drho_NET * (c9o64 - c9o16 * xoff - c3o16 * yoff - c3o16 * zoff) + + // drho_SWT * (c9o64 + c3o16 * xoff + c9o16 * yoff - c3o16 * zoff) + + // drho_SET * (c3o64 - c3o16 * xoff + c3o16 * yoff - c1o16 * zoff) + + // drho_SEB * (c1o64 - c1o16 * xoff + c1o16 * yoff + c1o16 * zoff) + + // drho_NEB * (c3o64 - c3o16 * xoff - c1o16 * yoff + c3o16 * zoff) + + // drho_SWB * (c3o64 + c1o16 * xoff + c3o16 * yoff + c3o16 * zoff) + + // drho_NWB * (c9o64 + c3o16 * xoff - c3o16 * yoff + c9o16 * zoff); + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz + c3o1*x*x*LapRho ; + vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); + vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); + vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); + //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); + //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); + //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1; + //oMdrho = one - mfaaa; + + //2.f + // linear combinations + mxxPyyPzz = mfaaa; + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + mfbbb = c1o2 * (( omFine + c12o1)*(-omCoarse + c2o1)) / ((omCoarse + c12o1)*(-omFine + c2o1)) * mfbbbMean; + mxxyPyzz = c1o2 * ((-omFine + c3o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c3o1 )*(-omFine + c2o1)) * mxxyPyzzMean; + mxxyMyzz = c1o2 * ((-omFine + c6o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c6o1 )*(-omFine + c2o1)) * mxxyMyzzMean; + mxxzPyyz = c1o2 * ((-omFine + c3o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c3o1 )*(-omFine + c2o1)) * mxxzPyyzMean; + mxxzMyyz = c1o2 * ((-omFine + c6o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c6o1 )*(-omFine + c2o1)) * mxxzMyyzMean; + mxyyPxzz = c1o2 * ((-omFine + c3o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c3o1 )*(-omFine + c2o1)) * mxyyPxzzMean; + mxyyMxzz = c1o2 * ((-omFine + c6o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c6o1 )*(-omFine + c2o1)) * mxyyMxzzMean; + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////// + //index + kzero= kb; + kw = kbw; + ks = kbs; + kb = neighborFZ[kb]; + ksw = kbsw; + kbw = neighborFZ[kbw]; + kbs = neighborFZ[kbs]; + kbsw = neighborFZ[kbsw]; + //////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + feF[kzero] = mfcbb; + fwF[kw] = mfabb; + fnF[kzero] = mfbcb; + fsF[ks] = mfbab; + ftF[kzero] = mfbbc; + fbF[kb] = mfbba; + fneF[kzero] = mfccb; + fswF[ksw] = mfaab; + fseF[ks] = mfcab; + fnwF[kw] = mfacb; + fteF[kzero] = mfcbc; + fbwF[kbw] = mfaba; + fbeF[kb] = mfcba; + ftwF[kw] = mfabc; + ftnF[kzero] = mfbcc; + fbsF[kbs] = mfbaa; + fbnF[kb] = mfbca; + ftsF[ks] = mfbac; + fzeroF[kzero] = mfbbb; + ftneF[kzero] = mfccc; + ftseF[ks] = mfcac; + fbneF[kb] = mfcca; + fbseF[kbs] = mfcaa; + ftnwF[kw] = mfacc; + ftswF[ksw] = mfaac; + fbnwF[kbw] = mfaca; + fbswF[kbsw] = mfaaa; + //////////////////////////////////////////////////////////////////////////////////// + + + //reset + mfcbb = c0o1; + mfabb = c0o1; + mfbcb = c0o1; + mfbab = c0o1; + mfbbc = c0o1; + mfbba = c0o1; + mfccb = c0o1; + mfaab = c0o1; + mfcab = c0o1; + mfacb = c0o1; + mfcbc = c0o1; + mfaba = c0o1; + mfcba = c0o1; + mfabc = c0o1; + mfbcc = c0o1; + mfbaa = c0o1; + mfbca = c0o1; + mfbac = c0o1; + mfbbb = c0o1; + mfccc = c0o1; + mfaac = c0o1; + mfcac = c0o1; + mfacc = c0o1; + mfcca = c0o1; + mfaaa = c0o1; + mfcaa = c0o1; + mfaca = c0o1; + + + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position NET 0.25f, 0.25f, 0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = c1o4; + y = c1o4; + z = c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho = c9o64*drho_NEB+c27o64*drho_NET+c3o64*drho_NWB+c9o64*drho_NWT+c3o64*drho_SEB+c9o64*drho_SET+c1o64*drho_SWB+c3o64*drho_SWT; + //press = press_NET * (c27o64 - c9o16 * mxoff - c9o16 * myoff - c9o16 * mzoff) + + // press_NWT * (c9o64 + c9o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + + // press_SET * (c9o64 - c3o16 * mxoff + c9o16 * myoff - c3o16 * mzoff) + + // press_SWT * (c3o64 + c3o16 * mxoff + c3o16 * myoff - c1o16 * mzoff) + + // press_SWB * (c1o64 + c1o16 * mxoff + c1o16 * myoff + c1o16 * mzoff) + + // press_NWB * (c3o64 + c3o16 * mxoff - c1o16 * myoff + c3o16 * mzoff) + + // press_SEB * (c3o64 - c1o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + + // press_NEB * (c9o64 - c3o16 * mxoff - c3o16 * myoff + c9o16 * mzoff); + //drho = drho_NET * (c27o64 - c9o16 * xoff - c9o16 * yoff - c9o16 * zoff) + + // drho_NWT * (c9o64 + c9o16 * xoff - c3o16 * yoff - c3o16 * zoff) + + // drho_SET * (c9o64 - c3o16 * xoff + c9o16 * yoff - c3o16 * zoff) + + // drho_SWT * (c3o64 + c3o16 * xoff + c3o16 * yoff - c1o16 * zoff) + + // drho_SWB * (c1o64 + c1o16 * xoff + c1o16 * yoff + c1o16 * zoff) + + // drho_NWB * (c3o64 + c3o16 * xoff - c1o16 * yoff + c3o16 * zoff) + + // drho_SEB * (c3o64 - c1o16 * xoff + c3o16 * yoff + c3o16 * zoff) + + // drho_NEB * (c9o64 - c3o16 * xoff - c3o16 * yoff + c9o16 * zoff); + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz + c3o1*x*x*LapRho ; + vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); + vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); + vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); + //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); + //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); + //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1; + //oMdrho = one - mfaaa; + + //2.f + // linear combinations + mxxPyyPzz = mfaaa; + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + mfbbb = c1o2 * (( omFine + c12o1)*(-omCoarse + c2o1)) / ((omCoarse + c12o1)*(-omFine + c2o1)) * mfbbbMean; + mxxyPyzz = c1o2 * ((-omFine + c3o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c3o1 )*(-omFine + c2o1)) * mxxyPyzzMean; + mxxyMyzz = c1o2 * ((-omFine + c6o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c6o1 )*(-omFine + c2o1)) * mxxyMyzzMean; + mxxzPyyz = c1o2 * ((-omFine + c3o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c3o1 )*(-omFine + c2o1)) * mxxzPyyzMean; + mxxzMyyz = c1o2 * ((-omFine + c6o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c6o1 )*(-omFine + c2o1)) * mxxzMyyzMean; + mxyyPxzz = c1o2 * ((-omFine + c3o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c3o1 )*(-omFine + c2o1)) * mxyyPxzzMean; + mxyyMxzz = c1o2 * ((-omFine + c6o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c6o1 )*(-omFine + c2o1)) * mxyyMxzzMean; + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////// + //index + kzero= kw; + kw = neighborFX[kw]; + ks = ksw; + kb = kbw; + ksw = neighborFX[ksw]; + kbw = neighborFX[kbw]; + kbs = kbsw; + kbsw = neighborFX[kbsw]; + //////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + feF[kzero] = mfcbb; + fwF[kw] = mfabb; + fnF[kzero] = mfbcb; + fsF[ks] = mfbab; + ftF[kzero] = mfbbc; + fbF[kb] = mfbba; + fneF[kzero] = mfccb; + fswF[ksw] = mfaab; + fseF[ks] = mfcab; + fnwF[kw] = mfacb; + fteF[kzero] = mfcbc; + fbwF[kbw] = mfaba; + fbeF[kb] = mfcba; + ftwF[kw] = mfabc; + ftnF[kzero] = mfbcc; + fbsF[kbs] = mfbaa; + fbnF[kb] = mfbca; + ftsF[ks] = mfbac; + fzeroF[kzero] = mfbbb; + ftneF[kzero] = mfccc; + ftseF[ks] = mfcac; + fbneF[kb] = mfcca; + fbseF[kbs] = mfcaa; + ftnwF[kw] = mfacc; + ftswF[ksw] = mfaac; + fbnwF[kbw] = mfaca; + fbswF[kbsw] = mfaaa; + //////////////////////////////////////////////////////////////////////////////////// + + + //reset + mfcbb = c0o1; + mfabb = c0o1; + mfbcb = c0o1; + mfbab = c0o1; + mfbbc = c0o1; + mfbba = c0o1; + mfccb = c0o1; + mfaab = c0o1; + mfcab = c0o1; + mfacb = c0o1; + mfcbc = c0o1; + mfaba = c0o1; + mfcba = c0o1; + mfabc = c0o1; + mfbcc = c0o1; + mfbaa = c0o1; + mfbca = c0o1; + mfbac = c0o1; + mfbbb = c0o1; + mfccc = c0o1; + mfaac = c0o1; + mfcac = c0o1; + mfacc = c0o1; + mfcca = c0o1; + mfaaa = c0o1; + mfcaa = c0o1; + mfaca = c0o1; + + + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position NEB 0.25f, 0.25f, -0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = c1o4; + y = c1o4; + z = -c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho = c27o64*drho_NEB+c9o64*drho_NET+c9o64*drho_NWB+c3o64*drho_NWT+c9o64*drho_SEB+c3o64*drho_SET+c3o64*drho_SWB+c1o64*drho_SWT; + //press = press_NET * (c9o64 - c3o16 * mxoff - c3o16 * myoff - c9o16 * mzoff) + + // press_NWT * (c3o64 + c3o16 * mxoff - c1o16 * myoff - c3o16 * mzoff) + + // press_SET * (c3o64 - c1o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + + // press_SWT * (c1o64 + c1o16 * mxoff + c1o16 * myoff - c1o16 * mzoff) + + // press_SWB * (c3o64 + c3o16 * mxoff + c3o16 * myoff + c1o16 * mzoff) + + // press_NWB * (c9o64 + c9o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + + // press_SEB * (c9o64 - c3o16 * mxoff + c9o16 * myoff + c3o16 * mzoff) + + // press_NEB * (c27o64 - c9o16 * mxoff - c9o16 * myoff + c9o16 * mzoff); + //drho = drho_NET * (c9o64 - c3o16 * xoff - c3o16 * yoff - c9o16 * zoff) + + // drho_NWT * (c3o64 + c3o16 * xoff - c1o16 * yoff - c3o16 * zoff) + + // drho_SET * (c3o64 - c1o16 * xoff + c3o16 * yoff - c3o16 * zoff) + + // drho_SWT * (c1o64 + c1o16 * xoff + c1o16 * yoff - c1o16 * zoff) + + // drho_SWB * (c3o64 + c3o16 * xoff + c3o16 * yoff + c1o16 * zoff) + + // drho_NWB * (c9o64 + c9o16 * xoff - c3o16 * yoff + c3o16 * zoff) + + // drho_SEB * (c9o64 - c3o16 * xoff + c9o16 * yoff + c3o16 * zoff) + + // drho_NEB * (c27o64 - c9o16 * xoff - c9o16 * yoff + c9o16 * zoff); + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz + c3o1*x*x*LapRho ; + vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); + vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); + vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); + //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); + //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); + //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1; + //oMdrho = one - mfaaa; + + //2.f + // linear combinations + mxxPyyPzz = mfaaa; + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + mfbbb = c1o2 * (( omFine + c12o1)*(-omCoarse + c2o1)) / ((omCoarse + c12o1)*(-omFine + c2o1)) * mfbbbMean; + mxxyPyzz = c1o2 * ((-omFine + c3o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c3o1 )*(-omFine + c2o1)) * mxxyPyzzMean; + mxxyMyzz = c1o2 * ((-omFine + c6o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c6o1 )*(-omFine + c2o1)) * mxxyMyzzMean; + mxxzPyyz = c1o2 * ((-omFine + c3o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c3o1 )*(-omFine + c2o1)) * mxxzPyyzMean; + mxxzMyyz = c1o2 * ((-omFine + c6o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c6o1 )*(-omFine + c2o1)) * mxxzMyyzMean; + mxyyPxzz = c1o2 * ((-omFine + c3o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c3o1 )*(-omFine + c2o1)) * mxyyPxzzMean; + mxyyMxzz = c1o2 * ((-omFine + c6o1 )*(-omCoarse + c2o1)) / ((-omCoarse + c6o1 )*(-omFine + c2o1)) * mxyyMxzzMean; + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////// + //index + kb = kzero; + kbw = kw; + kbs = ks; + kbsw = ksw; + kzero= k0w; + kw = neighborFX[k0w]; + ks = k0sw; + ksw = neighborFX[k0sw]; + //////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + feF[kzero] = mfcbb; + fwF[kw] = mfabb; + fnF[kzero] = mfbcb; + fsF[ks] = mfbab; + ftF[kzero] = mfbbc; + fbF[kb] = mfbba; + fneF[kzero] = mfccb; + fswF[ksw] = mfaab; + fseF[ks] = mfcab; + fnwF[kw] = mfacb; + fteF[kzero] = mfcbc; + fbwF[kbw] = mfaba; + fbeF[kb] = mfcba; + ftwF[kw] = mfabc; + ftnF[kzero] = mfbcc; + fbsF[kbs] = mfbaa; + fbnF[kb] = mfbca; + ftsF[ks] = mfbac; + fzeroF[kzero] = mfbbb; + ftneF[kzero] = mfccc; + ftseF[ks] = mfcac; + fbneF[kb] = mfcca; + fbseF[kbs] = mfcaa; + ftnwF[kw] = mfacc; + ftswF[ksw] = mfaac; + fbnwF[kbw] = mfaca; + fbswF[kbsw] = mfaaa; + //////////////////////////////////////////////////////////////////////////////////// + } +} +////////////////////////////////////////////////////////////////////////// @@ -17842,27 +17842,27 @@ __global__ void scaleCF_RhoSq_3rdMom_comp_27(real* DC, ////////////////////////////////////////////////////////////////////////// __global__ void scaleCF_RhoSq_comp_27(real* DC, - real* DF, - unsigned int* neighborCX, - unsigned int* neighborCY, - unsigned int* neighborCZ, - unsigned int* neighborFX, - unsigned int* neighborFY, - unsigned int* neighborFZ, - unsigned long long numberOfLBnodesCoarse, - unsigned long long numberOfLBnodesFine, - bool isEvenTimestep, - unsigned int* posCSWB, - unsigned int* posFSWB, - unsigned int kCF, - real omCoarse, - real omFine, - real nu, - unsigned int nxC, - unsigned int nyC, - unsigned int nxF, - unsigned int nyF, - ICellNeigh offCF) + real* DF, + unsigned int* neighborCX, + unsigned int* neighborCY, + unsigned int* neighborCZ, + unsigned int* neighborFX, + unsigned int* neighborFY, + unsigned int* neighborFZ, + unsigned long long numberOfLBnodesCoarse, + unsigned long long numberOfLBnodesFine, + bool isEvenTimestep, + unsigned int* posCSWB, + unsigned int* posFSWB, + unsigned int kCF, + real omCoarse, + real omFine, + real nu, + unsigned int nxC, + unsigned int nyC, + unsigned int nxF, + unsigned int nyF, + ICellNeigh offCF) { real *feF, *fwF, *fnF, *fsF, *ftF, *fbF, *fneF, *fswF, *fseF, *fnwF, *fteF, *fbwF, *fbeF, *ftwF, *ftnF, *fbsF, *fbnF, *ftsF, *fzeroF, *ftneF, *ftswF, *ftseF, *ftnwF, *fbneF, *fbswF, *fbseF, *fbnwF; @@ -18071,8 +18071,8 @@ __global__ void scaleCF_RhoSq_comp_27(real* DC, ((f_W + f_E) + (f_S + f_N) + (f_B + f_T))) + f_ZERO; vx1_SWB = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_SWB); - vx2_SWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SWB); - vx3_SWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SWB); + vx2_SWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SWB); + vx3_SWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SWB); kxyFromfcNEQ_SWB = -c3o1*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_SWB) - ((vx1_SWB*vx2_SWB))); kyzFromfcNEQ_SWB = -c3o1*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_SWB) - ((vx2_SWB*vx3_SWB))); @@ -18127,8 +18127,8 @@ __global__ void scaleCF_RhoSq_comp_27(real* DC, ((f_W + f_E) + (f_S + f_N) + (f_B + f_T))) + f_ZERO; vx1_SWT = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_SWT); - vx2_SWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SWT); - vx3_SWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SWT); + vx2_SWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SWT); + vx3_SWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SWT); kxyFromfcNEQ_SWT = -c3o1*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_SWT) - ((vx1_SWT*vx2_SWT))); kyzFromfcNEQ_SWT = -c3o1*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_SWT) - ((vx2_SWT*vx3_SWT))); @@ -18183,8 +18183,8 @@ __global__ void scaleCF_RhoSq_comp_27(real* DC, ((f_W + f_E) + (f_S + f_N) + (f_B + f_T))) + f_ZERO; vx1_SET = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_SET); - vx2_SET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SET); - vx3_SET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SET); + vx2_SET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SET); + vx3_SET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SET); kxyFromfcNEQ_SET = -c3o1*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_SET) - ((vx1_SET*vx2_SET))); kyzFromfcNEQ_SET = -c3o1*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_SET) - ((vx2_SET*vx3_SET))); @@ -18239,8 +18239,8 @@ __global__ void scaleCF_RhoSq_comp_27(real* DC, ((f_W + f_E) + (f_S + f_N) + (f_B + f_T))) + f_ZERO; vx1_SEB = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_SEB); - vx2_SEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SEB); - vx3_SEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SEB); + vx2_SEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SEB); + vx3_SEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SEB); kxyFromfcNEQ_SEB = -c3o1*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_SEB) - ((vx1_SEB*vx2_SEB))); kyzFromfcNEQ_SEB = -c3o1*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_SEB) - ((vx2_SEB*vx3_SEB))); @@ -18305,8 +18305,8 @@ __global__ void scaleCF_RhoSq_comp_27(real* DC, ((f_W + f_E) + (f_S + f_N) + (f_B + f_T))) + f_ZERO; vx1_NWB = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_NWB); - vx2_NWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NWB); - vx3_NWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NWB); + vx2_NWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NWB); + vx3_NWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NWB); kxyFromfcNEQ_NWB = -c3o1*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_NWB) - ((vx1_NWB*vx2_NWB))); kyzFromfcNEQ_NWB = -c3o1*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_NWB) - ((vx2_NWB*vx3_NWB))); @@ -18361,8 +18361,8 @@ __global__ void scaleCF_RhoSq_comp_27(real* DC, ((f_W + f_E) + (f_S + f_N) + (f_B + f_T))) + f_ZERO; vx1_NWT = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_NWT); - vx2_NWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NWT); - vx3_NWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NWT); + vx2_NWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NWT); + vx3_NWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NWT); kxyFromfcNEQ_NWT = -c3o1*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_NWT) - ((vx1_NWT*vx2_NWT))); kyzFromfcNEQ_NWT = -c3o1*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_NWT) - ((vx2_NWT*vx3_NWT))); @@ -18417,8 +18417,8 @@ __global__ void scaleCF_RhoSq_comp_27(real* DC, ((f_W + f_E) + (f_S + f_N) + (f_B + f_T))) + f_ZERO; vx1_NET = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_NET); - vx2_NET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NET); - vx3_NET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NET); + vx2_NET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NET); + vx3_NET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NET); kxyFromfcNEQ_NET = -c3o1*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_NET) - ((vx1_NET*vx2_NET))); kyzFromfcNEQ_NET = -c3o1*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_NET) - ((vx2_NET*vx3_NET))); @@ -18473,8 +18473,8 @@ __global__ void scaleCF_RhoSq_comp_27(real* DC, ((f_W + f_E) + (f_S + f_N) + (f_B + f_T))) + f_ZERO; vx1_NEB = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_NEB); - vx2_NEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NEB); - vx3_NEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NEB); + vx2_NEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NEB); + vx3_NEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NEB); kxyFromfcNEQ_NEB = -c3o1*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_NEB) - ((vx1_NEB*vx2_NEB))); kyzFromfcNEQ_NEB = -c3o1*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_NEB) - ((vx2_NEB*vx3_NEB))); @@ -18483,46 +18483,46 @@ __global__ void scaleCF_RhoSq_comp_27(real* DC, kxxMzzFromfcNEQ_NEB = -c3o2*omegaS *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_NEB) - ((vx1_NEB*vx1_NEB-vx3_NEB*vx3_NEB))); ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // kxyFromfcNEQ_SWB = zero; - //kyzFromfcNEQ_SWB = zero; - //kxzFromfcNEQ_SWB = zero; - //kxxMyyFromfcNEQ_SWB = zero; - //kxxMzzFromfcNEQ_SWB = zero; - //kxyFromfcNEQ_SWT = zero; - //kyzFromfcNEQ_SWT = zero; - //kxzFromfcNEQ_SWT = zero; - //kxxMyyFromfcNEQ_SWT = zero; - //kxxMzzFromfcNEQ_SWT = zero; - //kxyFromfcNEQ_SET = zero; - //kyzFromfcNEQ_SET = zero; - //kxzFromfcNEQ_SET = zero; - //kxxMyyFromfcNEQ_SET = zero; - //kxxMzzFromfcNEQ_SET = zero; - //kxyFromfcNEQ_SEB = zero; - //kyzFromfcNEQ_SEB = zero; - //kxzFromfcNEQ_SEB = zero; - //kxxMyyFromfcNEQ_SEB = zero; - //kxxMzzFromfcNEQ_SEB = zero; - //kxyFromfcNEQ_NWB = zero; - //kyzFromfcNEQ_NWB = zero; - //kxzFromfcNEQ_NWB = zero; - //kxxMyyFromfcNEQ_NWB = zero; - //kxxMzzFromfcNEQ_NWB = zero; - //kxyFromfcNEQ_NWT = zero; - //kyzFromfcNEQ_NWT = zero; - //kxzFromfcNEQ_NWT = zero; - //kxxMyyFromfcNEQ_NWT = zero; - //kxxMzzFromfcNEQ_NWT = zero; - //kxyFromfcNEQ_NET = zero; - //kyzFromfcNEQ_NET = zero; - //kxzFromfcNEQ_NET = zero; - //kxxMyyFromfcNEQ_NET = zero; - //kxxMzzFromfcNEQ_NET = zero; - //kxyFromfcNEQ_NEB = zero; - //kyzFromfcNEQ_NEB = zero; - //kxzFromfcNEQ_NEB = zero; - //kxxMyyFromfcNEQ_NEB = zero; - //kxxMzzFromfcNEQ_NEB = zero; + // kxyFromfcNEQ_SWB = zero; + //kyzFromfcNEQ_SWB = zero; + //kxzFromfcNEQ_SWB = zero; + //kxxMyyFromfcNEQ_SWB = zero; + //kxxMzzFromfcNEQ_SWB = zero; + //kxyFromfcNEQ_SWT = zero; + //kyzFromfcNEQ_SWT = zero; + //kxzFromfcNEQ_SWT = zero; + //kxxMyyFromfcNEQ_SWT = zero; + //kxxMzzFromfcNEQ_SWT = zero; + //kxyFromfcNEQ_SET = zero; + //kyzFromfcNEQ_SET = zero; + //kxzFromfcNEQ_SET = zero; + //kxxMyyFromfcNEQ_SET = zero; + //kxxMzzFromfcNEQ_SET = zero; + //kxyFromfcNEQ_SEB = zero; + //kyzFromfcNEQ_SEB = zero; + //kxzFromfcNEQ_SEB = zero; + //kxxMyyFromfcNEQ_SEB = zero; + //kxxMzzFromfcNEQ_SEB = zero; + //kxyFromfcNEQ_NWB = zero; + //kyzFromfcNEQ_NWB = zero; + //kxzFromfcNEQ_NWB = zero; + //kxxMyyFromfcNEQ_NWB = zero; + //kxxMzzFromfcNEQ_NWB = zero; + //kxyFromfcNEQ_NWT = zero; + //kyzFromfcNEQ_NWT = zero; + //kxzFromfcNEQ_NWT = zero; + //kxxMyyFromfcNEQ_NWT = zero; + //kxxMzzFromfcNEQ_NWT = zero; + //kxyFromfcNEQ_NET = zero; + //kyzFromfcNEQ_NET = zero; + //kxzFromfcNEQ_NET = zero; + //kxxMyyFromfcNEQ_NET = zero; + //kxxMzzFromfcNEQ_NET = zero; + //kxyFromfcNEQ_NEB = zero; + //kyzFromfcNEQ_NEB = zero; + //kxzFromfcNEQ_NEB = zero; + //kxxMyyFromfcNEQ_NEB = zero; + //kxxMzzFromfcNEQ_NEB = zero; ////////////////////////////////////////////////////////////////////////// //3 ////////////////////////////////////////////////////////////////////////// @@ -18643,94 +18643,94 @@ __global__ void scaleCF_RhoSq_comp_27(real* DC, cxyz=-vx3_NEB + vx3_NET + vx3_NWB - vx3_NWT + vx3_SEB - vx3_SET - vx3_SWB + vx3_SWT; ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real kxyAverage = c0o1; - real kyzAverage = c0o1; - real kxzAverage = c0o1; - real kxxMyyAverage = c0o1; - real kxxMzzAverage = c0o1; - //real kxyAverage =(kxyFromfcNEQ_SWB+ - // kxyFromfcNEQ_SWT+ - // kxyFromfcNEQ_SET+ - // kxyFromfcNEQ_SEB+ - // kxyFromfcNEQ_NWB+ - // kxyFromfcNEQ_NWT+ - // kxyFromfcNEQ_NET+ - // kxyFromfcNEQ_NEB)*c1o8-(ay+bx); - //real kyzAverage =(kyzFromfcNEQ_SWB+ - // kyzFromfcNEQ_SWT+ - // kyzFromfcNEQ_SET+ - // kyzFromfcNEQ_SEB+ - // kyzFromfcNEQ_NWB+ - // kyzFromfcNEQ_NWT+ - // kyzFromfcNEQ_NET+ - // kyzFromfcNEQ_NEB)*c1o8-(bz+cy); - //real kxzAverage =(kxzFromfcNEQ_SWB+ - // kxzFromfcNEQ_SWT+ - // kxzFromfcNEQ_SET+ - // kxzFromfcNEQ_SEB+ - // kxzFromfcNEQ_NWB+ - // kxzFromfcNEQ_NWT+ - // kxzFromfcNEQ_NET+ - // kxzFromfcNEQ_NEB)*c1o8-(az+cx); - //real kxxMyyAverage =(kxxMyyFromfcNEQ_SWB+ - // kxxMyyFromfcNEQ_SWT+ - // kxxMyyFromfcNEQ_SET+ - // kxxMyyFromfcNEQ_SEB+ - // kxxMyyFromfcNEQ_NWB+ - // kxxMyyFromfcNEQ_NWT+ - // kxxMyyFromfcNEQ_NET+ - // kxxMyyFromfcNEQ_NEB)*c1o8-(ax-by); - //real kxxMzzAverage =(kxxMzzFromfcNEQ_SWB+ - // kxxMzzFromfcNEQ_SWT+ - // kxxMzzFromfcNEQ_SET+ - // kxxMzzFromfcNEQ_SEB+ - // kxxMzzFromfcNEQ_NWB+ - // kxxMzzFromfcNEQ_NWT+ - // kxxMzzFromfcNEQ_NET+ - // kxxMzzFromfcNEQ_NEB)*c1o8-(ax-cz); - - - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //Press - //d0 = ( press_NEB + press_NET + press_NWB + press_NWT + press_SEB + press_SET + press_SWB + press_SWT) * c1o8; - //dx = ( press_NEB + press_NET - press_NWB - press_NWT + press_SEB + press_SET - press_SWB - press_SWT) * c1o4; - //dy = ( press_NEB + press_NET + press_NWB + press_NWT - press_SEB - press_SET - press_SWB - press_SWT) * c1o4; - //dz = (-press_NEB + press_NET - press_NWB + press_NWT - press_SEB + press_SET - press_SWB + press_SWT) * c1o4; - //dxy = ( press_NEB + press_NET - press_NWB - press_NWT - press_SEB - press_SET + press_SWB + press_SWT) * c1o2; - //dxz = (-press_NEB + press_NET + press_NWB - press_NWT - press_SEB + press_SET + press_SWB - press_SWT) * c1o2; - //dyz = (-press_NEB + press_NET - press_NWB + press_NWT + press_SEB - press_SET + press_SWB - press_SWT) * c1o2; - //dxyz = -press_NEB + press_NET + press_NWB - press_NWT + press_SEB - press_SET - press_SWB + press_SWT; - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho - real LapRho = ((xoff != c0o1) || (yoff != c0o1) || (zoff != c0o1)) ? c0o1 : -c3o1*(ax*ax + by*by + cz*cz) - c6o1 * (bx*ay + cx*az + cy*bz); - d0 = ( drho_NEB + drho_NET + drho_NWB + drho_NWT + drho_SEB + drho_SET + drho_SWB + drho_SWT) * c1o8; - dx = ( drho_NEB + drho_NET - drho_NWB - drho_NWT + drho_SEB + drho_SET - drho_SWB - drho_SWT) * c1o4; - dy = ( drho_NEB + drho_NET + drho_NWB + drho_NWT - drho_SEB - drho_SET - drho_SWB - drho_SWT) * c1o4; - dz = (-drho_NEB + drho_NET - drho_NWB + drho_NWT - drho_SEB + drho_SET - drho_SWB + drho_SWT) * c1o4; - dxy = ( drho_NEB + drho_NET - drho_NWB - drho_NWT - drho_SEB - drho_SET + drho_SWB + drho_SWT) * c1o2; - dxz = (-drho_NEB + drho_NET + drho_NWB - drho_NWT - drho_SEB + drho_SET + drho_SWB - drho_SWT) * c1o2; - dyz = (-drho_NEB + drho_NET - drho_NWB + drho_NWT + drho_SEB - drho_SET + drho_SWB - drho_SWT) * c1o2; - dxyz = -drho_NEB + drho_NET + drho_NWB - drho_NWT + drho_SEB - drho_SET - drho_SWB + drho_SWT; - // d0 = zero; - //dx = zero; - //dy = zero; - //dz = zero; - //dxy = zero; - //dxz = zero; - //dyz = zero; - //dxyz = zero; + real kxyAverage = c0o1; + real kyzAverage = c0o1; + real kxzAverage = c0o1; + real kxxMyyAverage = c0o1; + real kxxMzzAverage = c0o1; + //real kxyAverage =(kxyFromfcNEQ_SWB+ + // kxyFromfcNEQ_SWT+ + // kxyFromfcNEQ_SET+ + // kxyFromfcNEQ_SEB+ + // kxyFromfcNEQ_NWB+ + // kxyFromfcNEQ_NWT+ + // kxyFromfcNEQ_NET+ + // kxyFromfcNEQ_NEB)*c1o8-(ay+bx); + //real kyzAverage =(kyzFromfcNEQ_SWB+ + // kyzFromfcNEQ_SWT+ + // kyzFromfcNEQ_SET+ + // kyzFromfcNEQ_SEB+ + // kyzFromfcNEQ_NWB+ + // kyzFromfcNEQ_NWT+ + // kyzFromfcNEQ_NET+ + // kyzFromfcNEQ_NEB)*c1o8-(bz+cy); + //real kxzAverage =(kxzFromfcNEQ_SWB+ + // kxzFromfcNEQ_SWT+ + // kxzFromfcNEQ_SET+ + // kxzFromfcNEQ_SEB+ + // kxzFromfcNEQ_NWB+ + // kxzFromfcNEQ_NWT+ + // kxzFromfcNEQ_NET+ + // kxzFromfcNEQ_NEB)*c1o8-(az+cx); + //real kxxMyyAverage =(kxxMyyFromfcNEQ_SWB+ + // kxxMyyFromfcNEQ_SWT+ + // kxxMyyFromfcNEQ_SET+ + // kxxMyyFromfcNEQ_SEB+ + // kxxMyyFromfcNEQ_NWB+ + // kxxMyyFromfcNEQ_NWT+ + // kxxMyyFromfcNEQ_NET+ + // kxxMyyFromfcNEQ_NEB)*c1o8-(ax-by); + //real kxxMzzAverage =(kxxMzzFromfcNEQ_SWB+ + // kxxMzzFromfcNEQ_SWT+ + // kxxMzzFromfcNEQ_SET+ + // kxxMzzFromfcNEQ_SEB+ + // kxxMzzFromfcNEQ_NWB+ + // kxxMzzFromfcNEQ_NWT+ + // kxxMzzFromfcNEQ_NET+ + // kxxMzzFromfcNEQ_NEB)*c1o8-(ax-cz); + + + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //Press + //d0 = ( press_NEB + press_NET + press_NWB + press_NWT + press_SEB + press_SET + press_SWB + press_SWT) * c1o8; + //dx = ( press_NEB + press_NET - press_NWB - press_NWT + press_SEB + press_SET - press_SWB - press_SWT) * c1o4; + //dy = ( press_NEB + press_NET + press_NWB + press_NWT - press_SEB - press_SET - press_SWB - press_SWT) * c1o4; + //dz = (-press_NEB + press_NET - press_NWB + press_NWT - press_SEB + press_SET - press_SWB + press_SWT) * c1o4; + //dxy = ( press_NEB + press_NET - press_NWB - press_NWT - press_SEB - press_SET + press_SWB + press_SWT) * c1o2; + //dxz = (-press_NEB + press_NET + press_NWB - press_NWT - press_SEB + press_SET + press_SWB - press_SWT) * c1o2; + //dyz = (-press_NEB + press_NET - press_NWB + press_NWT + press_SEB - press_SET + press_SWB - press_SWT) * c1o2; + //dxyz = -press_NEB + press_NET + press_NWB - press_NWT + press_SEB - press_SET - press_SWB + press_SWT; + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho + real LapRho = ((xoff != c0o1) || (yoff != c0o1) || (zoff != c0o1)) ? c0o1 : -c3o1*(ax*ax + by*by + cz*cz) - c6o1 * (bx*ay + cx*az + cy*bz); + d0 = ( drho_NEB + drho_NET + drho_NWB + drho_NWT + drho_SEB + drho_SET + drho_SWB + drho_SWT) * c1o8; + dx = ( drho_NEB + drho_NET - drho_NWB - drho_NWT + drho_SEB + drho_SET - drho_SWB - drho_SWT) * c1o4; + dy = ( drho_NEB + drho_NET + drho_NWB + drho_NWT - drho_SEB - drho_SET - drho_SWB - drho_SWT) * c1o4; + dz = (-drho_NEB + drho_NET - drho_NWB + drho_NWT - drho_SEB + drho_SET - drho_SWB + drho_SWT) * c1o4; + dxy = ( drho_NEB + drho_NET - drho_NWB - drho_NWT - drho_SEB - drho_SET + drho_SWB + drho_SWT) * c1o2; + dxz = (-drho_NEB + drho_NET + drho_NWB - drho_NWT - drho_SEB + drho_SET + drho_SWB - drho_SWT) * c1o2; + dyz = (-drho_NEB + drho_NET - drho_NWB + drho_NWT + drho_SEB - drho_SET + drho_SWB - drho_SWT) * c1o2; + dxyz = -drho_NEB + drho_NET + drho_NWB - drho_NWT + drho_SEB - drho_SET - drho_SWB + drho_SWT; + // d0 = zero; + //dx = zero; + //dy = zero; + //dz = zero; + //dxy = zero; + //dxz = zero; + //dyz = zero; + //dxyz = zero; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // // Bernd das Brot // - // X------X - // | | x---x - // | ---+-+-> | ----> off-vector - // | | x---x - // X------X - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // X------X + // | | x---x + // | ---+-+-> | ----> off-vector + // | | x---x + // X------X + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// a0 = a0 + xoff * ax + yoff * ay + zoff * az + xoff_sq * axx + yoff_sq * ayy + zoff_sq * azz + xoff*yoff*axy + xoff*zoff*axz + yoff*zoff*ayz; ax = ax + c2o1 * xoff * axx + yoff * axy + zoff * axz; ay = ay + c2o1 * yoff * ayy + xoff * axy + zoff * ayz; @@ -18743,3339 +18743,3339 @@ __global__ void scaleCF_RhoSq_comp_27(real* DC, cx = cx + c2o1 * xoff * cxx + yoff * cxy + zoff * cxz; cy = cy + c2o1 * yoff * cyy + xoff * cxy + zoff * cyz; cz = cz + c2o1 * zoff * czz + xoff * cxz + yoff * cyz; - d0 = d0 + xoff * dx + yoff * dy + zoff * dz + xoff*yoff*dxy + xoff*zoff*dxz + yoff*zoff*dyz; - dx = dx + yoff * dxy + zoff * dxz; - dy = dy + xoff * dxy + zoff * dyz; - dz = dz + xoff * dxz + yoff * dyz; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // FIX /////////////////////////////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //AAAAAAAAAAAAHHHHHHHHHHHH!!!!! Mieser Test!!! - //b0= bx= by= bz= bxx= byy= bzz= bxy= bxz= byz= c0= cx= cy= cz= cxx= cyy= czz= cxy= cxz= cyz= axyz= bxyz= cxyz=zero; - //a0=zero; - //ax=zero; - //ay=zero; - //az=zero; - //axx=zero; - //ayy=zero; - //azz=zero; - //axy=zero; - //axz=zero; - //ayz=zero; - //b0=zero; - //bx=zero; - //by=zero; - //bz=zero; - //bxx=zero; - //byy=zero; - //bzz=zero; - //bxy=zero; - //bxz=zero; - //byz=zero; - //c0=zero; - //cx=zero; - //cy=zero; - //cz=zero; - //cxx=zero; - //cyy=zero; - //czz=zero; - //cxy=zero; - //cxz=zero; - //cyz=zero; - //axyz=zero; - //bxyz=zero; - //cxyz=zero; - //ax= ay= az= axx= ayy= azz= axy= axz= ayz= bx= by= bz= bxx= byy= bzz= bxy= bxz= byz= cx= cy= cz= cxx= cyy= czz= cxy= cxz= cyz= axyz= bxyz= cxyz=zero; - //a0=zero; - //b0=zero; - //c0=c1o100; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real mfcbb = c0o1; - real mfabb = c0o1; - real mfbcb = c0o1; - real mfbab = c0o1; - real mfbbc = c0o1; - real mfbba = c0o1; - real mfccb = c0o1; - real mfaab = c0o1; - real mfcab = c0o1; - real mfacb = c0o1; - real mfcbc = c0o1; - real mfaba = c0o1; - real mfcba = c0o1; - real mfabc = c0o1; - real mfbcc = c0o1; - real mfbaa = c0o1; - real mfbca = c0o1; - real mfbac = c0o1; - real mfbbb = c0o1; - real mfccc = c0o1; - real mfaac = c0o1; - real mfcac = c0o1; - real mfacc = c0o1; - real mfcca = c0o1; - real mfaaa = c0o1; - real mfcaa = c0o1; - real mfaca = c0o1; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real m0, m1, m2, vvx, vvy, vvz, vx2, vy2, vz2, oMdrho; - real mxxPyyPzz, mxxMyy, mxxMzz, mxxyPyzz, mxxyMyzz, mxxzPyyz, mxxzMyyz, mxyyPxzz, mxyyMxzz; - //real qudricLimit = c1o100;//ganz schlechte Idee -> muss global sein - //real O3 = two - o; - //real residu, residutmp; - //residutmp = zero;// /*-*/ c2o9 * (1./o - c1o2) * eps_new * eps_new; - real NeqOn = c1o1;//zero;//one; //.... one = on ..... zero = off - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position SWB -0.25f, -0.25f, -0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = -c1o4; - y = -c1o4; - z = -c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //real mxoff = -xoff; - //real myoff = -yoff; - //real mzoff = -zoff; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho = c3o64*drho_NEB+c1o64*drho_NET+c9o64*drho_NWB+c3o64*drho_NWT+c9o64*drho_SEB+c3o64*drho_SET+c27o64*drho_SWB+c9o64*drho_SWT; - //press = press_SWT * (c9o64 + c3o16 * mxoff + c3o16 * myoff - c9o16 * mzoff) + - // press_NWT * (c3o64 + c1o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + - // press_SET * (c3o64 - c3o16 * mxoff + c1o16 * myoff - c3o16 * mzoff) + - // press_NET * (c1o64 - c1o16 * mxoff - c1o16 * myoff - c1o16 * mzoff) + - // press_NEB * (c3o64 - c3o16 * mxoff - c3o16 * myoff + c1o16 * mzoff) + - // press_NWB * (c9o64 + c3o16 * mxoff - c9o16 * myoff + c3o16 * mzoff) + - // press_SEB * (c9o64 - c9o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + - // press_SWB * (c27o64 + c9o16 * mxoff + c9o16 * myoff + c9o16 * mzoff); - //drho = drho_SWT * (c9o64 + c3o16 * xoff + c3o16 * yoff - c9o16 * zoff) + - // drho_NWT * (c3o64 + c1o16 * xoff - c3o16 * yoff - c3o16 * zoff) + - // drho_SET * (c3o64 - c3o16 * xoff + c1o16 * yoff - c3o16 * zoff) + - // drho_NET * (c1o64 - c1o16 * xoff - c1o16 * yoff - c1o16 * zoff) + - // drho_NEB * (c3o64 - c3o16 * xoff - c3o16 * yoff + c1o16 * zoff) + - // drho_NWB * (c9o64 + c3o16 * xoff - c9o16 * yoff + c3o16 * zoff) + - // drho_SEB * (c9o64 - c9o16 * xoff + c3o16 * yoff + c3o16 * zoff) + - // drho_SWB * (c27o64 + c9o16 * xoff + c9o16 * yoff + c9o16 * zoff); - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz + c3o1*x*x*LapRho ; - vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); - vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); - vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); - //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); - //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); - //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //2.f - // linear combinations - mxxPyyPzz = mfaaa; - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y - + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y - + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); - //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mfbbb = c0o1; - - //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); - //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); - //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); - //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyPyzz = c0o1; - - //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); - //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyMyzz = c0o1; - - //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); - //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); - //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzPyyz = c0o1; - - //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); - //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzMyyz = c0o1; - - //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); - //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); - //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyPxzz = c0o1; - - //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); - //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyMxzz = c0o1; - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //index 0 - k0zero= posFSWB[k]; - k0w = neighborFX[k0zero]; - k0s = neighborFY[k0zero]; - k0b = neighborFZ[k0zero]; - k0sw = neighborFY[k0w]; - k0bw = neighborFZ[k0w]; - k0bs = neighborFZ[k0s]; - k0bsw = neighborFZ[k0sw]; - ////////////////////////////////////////////////////////////////////////// - //index - kzero= k0zero; - kw = k0w; - ks = k0s; - kb = k0b; - ksw = k0sw; - kbw = k0bw; - kbs = k0bs; - kbsw = k0bsw; - //////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - feF[kzero] = mfcbb; - fwF[kw] = mfabb; - fnF[kzero] = mfbcb; - fsF[ks] = mfbab; - ftF[kzero] = mfbbc; - fbF[kb] = mfbba; - fneF[kzero] = mfccb; - fswF[ksw] = mfaab; - fseF[ks] = mfcab; - fnwF[kw] = mfacb; - fteF[kzero] = mfcbc; - fbwF[kbw] = mfaba; - fbeF[kb] = mfcba; - ftwF[kw] = mfabc; - ftnF[kzero] = mfbcc; - fbsF[kbs] = mfbaa; - fbnF[kb] = mfbca; - ftsF[ks] = mfbac; - fzeroF[kzero] = mfbbb; - ftneF[kzero] = mfccc; - ftseF[ks] = mfcac; - fbneF[kb] = mfcca; - fbseF[kbs] = mfcaa; - ftnwF[kw] = mfacc; - ftswF[ksw] = mfaac; - fbnwF[kbw] = mfaca; - fbswF[kbsw] = mfaaa; - //////////////////////////////////////////////////////////////////////////////////// - - //reset - mfcbb = c0o1; - mfabb = c0o1; - mfbcb = c0o1; - mfbab = c0o1; - mfbbc = c0o1; - mfbba = c0o1; - mfccb = c0o1; - mfaab = c0o1; - mfcab = c0o1; - mfacb = c0o1; - mfcbc = c0o1; - mfaba = c0o1; - mfcba = c0o1; - mfabc = c0o1; - mfbcc = c0o1; - mfbaa = c0o1; - mfbca = c0o1; - mfbac = c0o1; - mfbbb = c0o1; - mfccc = c0o1; - mfaac = c0o1; - mfcac = c0o1; - mfacc = c0o1; - mfcca = c0o1; - mfaaa = c0o1; - mfcaa = c0o1; - mfaca = c0o1; - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position SWT -0.25f, -0.25f, 0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = -c1o4; - y = -c1o4; - z = c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho = c1o64*drho_NEB+c3o64*drho_NET+c3o64*drho_NWB+c9o64*drho_NWT+c3o64*drho_SEB+c9o64*drho_SET+c9o64*drho_SWB+c27o64*drho_SWT; - //press = press_SWT * (c27o64 + c9o16 * mxoff + c9o16 * myoff - c9o16 * mzoff) + - // press_NWT * (c9o64 + c3o16 * mxoff - c9o16 * myoff - c3o16 * mzoff) + - // press_SET * (c9o64 - c9o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + - // press_NET * (c3o64 - c3o16 * mxoff - c3o16 * myoff - c1o16 * mzoff) + - // press_NEB * (c1o64 - c1o16 * mxoff - c1o16 * myoff + c1o16 * mzoff) + - // press_NWB * (c3o64 + c1o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + - // press_SEB * (c3o64 - c3o16 * mxoff + c1o16 * myoff + c3o16 * mzoff) + - // press_SWB * (c9o64 + c3o16 * mxoff + c3o16 * myoff + c9o16 * mzoff); - //drho = drho_SWT * (c27o64 + c9o16 * xoff + c9o16 * yoff - c9o16 * zoff) + - // drho_NWT * (c9o64 + c3o16 * xoff - c9o16 * yoff - c3o16 * zoff) + - // drho_SET * (c9o64 - c9o16 * xoff + c3o16 * yoff - c3o16 * zoff) + - // drho_NET * (c3o64 - c3o16 * xoff - c3o16 * yoff - c1o16 * zoff) + - // drho_NEB * (c1o64 - c1o16 * xoff - c1o16 * yoff + c1o16 * zoff) + - // drho_NWB * (c3o64 + c1o16 * xoff - c3o16 * yoff + c3o16 * zoff) + - // drho_SEB * (c3o64 - c3o16 * xoff + c1o16 * yoff + c3o16 * zoff) + - // drho_SWB * (c9o64 + c3o16 * xoff + c3o16 * yoff + c9o16 * zoff); - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz + c3o1*x*x*LapRho ; - vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); - vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); - vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); - //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); - //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); - //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //2.f - // linear combinations - mxxPyyPzz = mfaaa; - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); - //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mfbbb = c0o1; - - //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); - //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); - //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); - //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyPyzz = c0o1; - - //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); - //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyMyzz = c0o1; - - //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); - //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); - //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzPyyz = c0o1; - - //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); - //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzMyyz = c0o1; - - //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); - //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); - //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyPxzz = c0o1; - - //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); - //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyMxzz = c0o1; - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - //index - kzero= kb; - kw = kbw; - ks = kbs; - kb = neighborFZ[kb]; - ksw = kbsw; - kbw = neighborFZ[kbw]; - kbs = neighborFZ[kbs]; - kbsw = neighborFZ[kbsw]; - //////////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - feF[kzero] = mfcbb; - fwF[kw] = mfabb; - fnF[kzero] = mfbcb; - fsF[ks] = mfbab; - ftF[kzero] = mfbbc; - fbF[kb] = mfbba; - fneF[kzero] = mfccb; - fswF[ksw] = mfaab; - fseF[ks] = mfcab; - fnwF[kw] = mfacb; - fteF[kzero] = mfcbc; - fbwF[kbw] = mfaba; - fbeF[kb] = mfcba; - ftwF[kw] = mfabc; - ftnF[kzero] = mfbcc; - fbsF[kbs] = mfbaa; - fbnF[kb] = mfbca; - ftsF[ks] = mfbac; - fzeroF[kzero] = mfbbb; - ftneF[kzero] = mfccc; - ftseF[ks] = mfcac; - fbneF[kb] = mfcca; - fbseF[kbs] = mfcaa; - ftnwF[kw] = mfacc; - ftswF[ksw] = mfaac; - fbnwF[kbw] = mfaca; - fbswF[kbsw] = mfaaa; - //////////////////////////////////////////////////////////////////////////////////// - - - //reset - mfcbb = c0o1; - mfabb = c0o1; - mfbcb = c0o1; - mfbab = c0o1; - mfbbc = c0o1; - mfbba = c0o1; - mfccb = c0o1; - mfaab = c0o1; - mfcab = c0o1; - mfacb = c0o1; - mfcbc = c0o1; - mfaba = c0o1; - mfcba = c0o1; - mfabc = c0o1; - mfbcc = c0o1; - mfbaa = c0o1; - mfbca = c0o1; - mfbac = c0o1; - mfbbb = c0o1; - mfccc = c0o1; - mfaac = c0o1; - mfcac = c0o1; - mfacc = c0o1; - mfcca = c0o1; - mfaaa = c0o1; - mfcaa = c0o1; - mfaca = c0o1; - - - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position SET 0.25f, -0.25f, 0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = c1o4; - y = -c1o4; - z = c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho =c3o64*drho_NEB+c9o64*drho_NET+c1o64*drho_NWB+c3o64*drho_NWT+c9o64*drho_SEB+c27o64*drho_SET+c3o64*drho_SWB+c9o64*drho_SWT; - //press = press_SET * (c27o64 - c9o16 * mxoff + c9o16 * myoff - c9o16 * mzoff) + - // press_NET * (c9o64 - c3o16 * mxoff - c9o16 * myoff - c3o16 * mzoff) + - // press_SWT * (c9o64 + c9o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + - // press_NWT * (c3o64 + c3o16 * mxoff - c3o16 * myoff - c1o16 * mzoff) + - // press_NWB * (c1o64 + c1o16 * mxoff - c1o16 * myoff + c1o16 * mzoff) + - // press_NEB * (c3o64 - c1o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + - // press_SWB * (c3o64 + c3o16 * mxoff + c1o16 * myoff + c3o16 * mzoff) + - // press_SEB * (c9o64 - c3o16 * mxoff + c3o16 * myoff + c9o16 * mzoff); - //drho = drho_SET * (c27o64 - c9o16 * xoff + c9o16 * yoff - c9o16 * zoff) + - // drho_NET * (c9o64 - c3o16 * xoff - c9o16 * yoff - c3o16 * zoff) + - // drho_SWT * (c9o64 + c9o16 * xoff + c3o16 * yoff - c3o16 * zoff) + - // drho_NWT * (c3o64 + c3o16 * xoff - c3o16 * yoff - c1o16 * zoff) + - // drho_NWB * (c1o64 + c1o16 * xoff - c1o16 * yoff + c1o16 * zoff) + - // drho_NEB * (c3o64 - c1o16 * xoff - c3o16 * yoff + c3o16 * zoff) + - // drho_SWB * (c3o64 + c3o16 * xoff + c1o16 * yoff + c3o16 * zoff) + - // drho_SEB * (c9o64 - c3o16 * xoff + c3o16 * yoff + c9o16 * zoff); - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz + c3o1*x*x*LapRho ; - vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); - vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); - vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); - //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); - //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); - //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //2.f - // linear combinations - mxxPyyPzz = mfaaa; - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); - //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mfbbb = c0o1; - - //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); - //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); - //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); - //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyPyzz = c0o1; - - //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); - //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyMyzz = c0o1; - - //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); - //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); - //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzPyyz = c0o1; - - //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); - //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzMyyz = c0o1; - - //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); - //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); - //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyPxzz = c0o1; - - //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); - //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyMxzz = c0o1; - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //index - kzero= kw; - kw = neighborFX[kw]; - ks = ksw; - kb = kbw; - ksw = neighborFX[ksw]; - kbw = neighborFX[kbw]; - kbs = kbsw; - kbsw = neighborFX[kbsw]; - //////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - feF[kzero] = mfcbb; - fwF[kw] = mfabb; - fnF[kzero] = mfbcb; - fsF[ks] = mfbab; - ftF[kzero] = mfbbc; - fbF[kb] = mfbba; - fneF[kzero] = mfccb; - fswF[ksw] = mfaab; - fseF[ks] = mfcab; - fnwF[kw] = mfacb; - fteF[kzero] = mfcbc; - fbwF[kbw] = mfaba; - fbeF[kb] = mfcba; - ftwF[kw] = mfabc; - ftnF[kzero] = mfbcc; - fbsF[kbs] = mfbaa; - fbnF[kb] = mfbca; - ftsF[ks] = mfbac; - fzeroF[kzero] = mfbbb; - ftneF[kzero] = mfccc; - ftseF[ks] = mfcac; - fbneF[kb] = mfcca; - fbseF[kbs] = mfcaa; - ftnwF[kw] = mfacc; - ftswF[ksw] = mfaac; - fbnwF[kbw] = mfaca; - fbswF[kbsw] = mfaaa; - //////////////////////////////////////////////////////////////////////////////////// - - //reset - mfcbb = c0o1; - mfabb = c0o1; - mfbcb = c0o1; - mfbab = c0o1; - mfbbc = c0o1; - mfbba = c0o1; - mfccb = c0o1; - mfaab = c0o1; - mfcab = c0o1; - mfacb = c0o1; - mfcbc = c0o1; - mfaba = c0o1; - mfcba = c0o1; - mfabc = c0o1; - mfbcc = c0o1; - mfbaa = c0o1; - mfbca = c0o1; - mfbac = c0o1; - mfbbb = c0o1; - mfccc = c0o1; - mfaac = c0o1; - mfcac = c0o1; - mfacc = c0o1; - mfcca = c0o1; - mfaaa = c0o1; - mfcaa = c0o1; - mfaca = c0o1; - - - - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position SEB 0.25f, -0.25f, -0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = c1o4; - y = -c1o4; - z = -c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho =c9o64*drho_NEB+c3o64*drho_NET+c3o64*drho_NWB+c1o64*drho_NWT+c27o64*drho_SEB+c9o64*drho_SET+c9o64*drho_SWB+c3o64*drho_SWT; - //press = press_SET * (c9o64 - c3o16 * mxoff + c3o16 * myoff - c9o16 * mzoff) + - // press_NET * (c3o64 - c1o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + - // press_SWT * (c3o64 + c3o16 * mxoff + c1o16 * myoff - c3o16 * mzoff) + - // press_NWT * (c1o64 + c1o16 * mxoff - c1o16 * myoff - c1o16 * mzoff) + - // press_NWB * (c3o64 + c3o16 * mxoff - c3o16 * myoff + c1o16 * mzoff) + - // press_NEB * (c9o64 - c3o16 * mxoff - c9o16 * myoff + c3o16 * mzoff) + - // press_SWB * (c9o64 + c9o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + - // press_SEB * (c27o64 - c9o16 * mxoff + c9o16 * myoff + c9o16 * mzoff); - //drho = drho_SET * (c9o64 - c3o16 * xoff + c3o16 * yoff - c9o16 * zoff) + - // drho_NET * (c3o64 - c1o16 * xoff - c3o16 * yoff - c3o16 * zoff) + - // drho_SWT * (c3o64 + c3o16 * xoff + c1o16 * yoff - c3o16 * zoff) + - // drho_NWT * (c1o64 + c1o16 * xoff - c1o16 * yoff - c1o16 * zoff) + - // drho_NWB * (c3o64 + c3o16 * xoff - c3o16 * yoff + c1o16 * zoff) + - // drho_NEB * (c9o64 - c3o16 * xoff - c9o16 * yoff + c3o16 * zoff) + - // drho_SWB * (c9o64 + c9o16 * xoff + c3o16 * yoff + c3o16 * zoff) + - // drho_SEB * (c27o64 - c9o16 * xoff + c9o16 * yoff + c9o16 * zoff); - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz + c3o1*x*x*LapRho ; - vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); - vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); - vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); - //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); - //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); - //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //2.f - // linear combinations - mxxPyyPzz = mfaaa; - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); - //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mfbbb = c0o1; - - //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); - //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); - //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); - //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyPyzz = c0o1; - - //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); - //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyMyzz = c0o1; - - //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); - //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); - //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzPyyz = c0o1; - - //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); - //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzMyyz = c0o1; - - //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); - //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); - //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyPxzz = c0o1; - - //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); - //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyMxzz = c0o1; - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //index - kb = kzero; - kbw = kw; - kbs = ks; - kbsw = ksw; - kzero= k0w; - kw = neighborFX[k0w]; - ks = k0sw; - ksw = neighborFX[k0sw]; - //////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - feF[kzero] = mfcbb; - fwF[kw] = mfabb; - fnF[kzero] = mfbcb; - fsF[ks] = mfbab; - ftF[kzero] = mfbbc; - fbF[kb] = mfbba; - fneF[kzero] = mfccb; - fswF[ksw] = mfaab; - fseF[ks] = mfcab; - fnwF[kw] = mfacb; - fteF[kzero] = mfcbc; - fbwF[kbw] = mfaba; - fbeF[kb] = mfcba; - ftwF[kw] = mfabc; - ftnF[kzero] = mfbcc; - fbsF[kbs] = mfbaa; - fbnF[kb] = mfbca; - ftsF[ks] = mfbac; - fzeroF[kzero] = mfbbb; - ftneF[kzero] = mfccc; - ftseF[ks] = mfcac; - fbneF[kb] = mfcca; - fbseF[kbs] = mfcaa; - ftnwF[kw] = mfacc; - ftswF[ksw] = mfaac; - fbnwF[kbw] = mfaca; - fbswF[kbsw] = mfaaa; - //////////////////////////////////////////////////////////////////////////////////// - - - //reset - mfcbb = c0o1; - mfabb = c0o1; - mfbcb = c0o1; - mfbab = c0o1; - mfbbc = c0o1; - mfbba = c0o1; - mfccb = c0o1; - mfaab = c0o1; - mfcab = c0o1; - mfacb = c0o1; - mfcbc = c0o1; - mfaba = c0o1; - mfcba = c0o1; - mfabc = c0o1; - mfbcc = c0o1; - mfbaa = c0o1; - mfbca = c0o1; - mfbac = c0o1; - mfbbb = c0o1; - mfccc = c0o1; - mfaac = c0o1; - mfcac = c0o1; - mfacc = c0o1; - mfcca = c0o1; - mfaaa = c0o1; - mfcaa = c0o1; - mfaca = c0o1; - - - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position NWB -0.25f, 0.25f, -0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = -c1o4; - y = c1o4; - z = -c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho = c9o64*drho_NEB+c3o64*drho_NET+c27o64*drho_NWB+c9o64*drho_NWT+c3o64*drho_SEB+c1o64*drho_SET+c9o64*drho_SWB+c3o64*drho_SWT; - //press = press_NWT * (c9o64 + c3o16 * mxoff - c3o16 * myoff - c9o16 * mzoff) + - // press_NET * (c3o64 - c3o16 * mxoff - c1o16 * myoff - c3o16 * mzoff) + - // press_SWT * (c3o64 + c1o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + - // press_SET * (c1o64 - c1o16 * mxoff + c1o16 * myoff - c1o16 * mzoff) + - // press_SEB * (c3o64 - c3o16 * mxoff + c3o16 * myoff + c1o16 * mzoff) + - // press_NEB * (c9o64 - c9o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + - // press_SWB * (c9o64 + c3o16 * mxoff + c9o16 * myoff + c3o16 * mzoff) + - // press_NWB * (c27o64 + c9o16 * mxoff - c9o16 * myoff + c9o16 * mzoff); - //drho = drho_NWT * (c9o64 + c3o16 * xoff - c3o16 * yoff - c9o16 * zoff) + - // drho_NET * (c3o64 - c3o16 * xoff - c1o16 * yoff - c3o16 * zoff) + - // drho_SWT * (c3o64 + c1o16 * xoff + c3o16 * yoff - c3o16 * zoff) + - // drho_SET * (c1o64 - c1o16 * xoff + c1o16 * yoff - c1o16 * zoff) + - // drho_SEB * (c3o64 - c3o16 * xoff + c3o16 * yoff + c1o16 * zoff) + - // drho_NEB * (c9o64 - c9o16 * xoff - c3o16 * yoff + c3o16 * zoff) + - // drho_SWB * (c9o64 + c3o16 * xoff + c9o16 * yoff + c3o16 * zoff) + - // drho_NWB * (c27o64 + c9o16 * xoff - c9o16 * yoff + c9o16 * zoff); - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz + c3o1*x*x*LapRho ; - vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); - vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); - vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); - //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); - //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); - //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //2.f - // linear combinations - mxxPyyPzz = mfaaa; - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); - //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mfbbb = c0o1; - - //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); - //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); - //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); - //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyPyzz = c0o1; - - //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); - //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyMyzz = c0o1; - - //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); - //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); - //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzPyyz = c0o1; - - //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); - //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzMyyz = c0o1; - - //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); - //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); - //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyPxzz = c0o1; - - //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); - //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyMxzz = c0o1; - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //index 0 - k0zero= k0s; - k0w = k0sw; - k0s = neighborFY[k0s]; - k0b = k0bs; - k0sw = neighborFY[k0sw]; - k0bw = k0bsw; - k0bs = neighborFY[k0bs]; - k0bsw = neighborFY[k0bsw]; - ////////////////////////////////////////////////////////////////////////// - //index - kzero= k0zero; - kw = k0w; - ks = k0s; - kb = k0b; - ksw = k0sw; - kbw = k0bw; - kbs = k0bs; - kbsw = k0bsw; - //////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - feF[kzero] = mfcbb; - fwF[kw] = mfabb; - fnF[kzero] = mfbcb; - fsF[ks] = mfbab; - ftF[kzero] = mfbbc; - fbF[kb] = mfbba; - fneF[kzero] = mfccb; - fswF[ksw] = mfaab; - fseF[ks] = mfcab; - fnwF[kw] = mfacb; - fteF[kzero] = mfcbc; - fbwF[kbw] = mfaba; - fbeF[kb] = mfcba; - ftwF[kw] = mfabc; - ftnF[kzero] = mfbcc; - fbsF[kbs] = mfbaa; - fbnF[kb] = mfbca; - ftsF[ks] = mfbac; - fzeroF[kzero] = mfbbb; - ftneF[kzero] = mfccc; - ftseF[ks] = mfcac; - fbneF[kb] = mfcca; - fbseF[kbs] = mfcaa; - ftnwF[kw] = mfacc; - ftswF[ksw] = mfaac; - fbnwF[kbw] = mfaca; - fbswF[kbsw] = mfaaa; - //////////////////////////////////////////////////////////////////////////////////// - - - //reset - mfcbb = c0o1; - mfabb = c0o1; - mfbcb = c0o1; - mfbab = c0o1; - mfbbc = c0o1; - mfbba = c0o1; - mfccb = c0o1; - mfaab = c0o1; - mfcab = c0o1; - mfacb = c0o1; - mfcbc = c0o1; - mfaba = c0o1; - mfcba = c0o1; - mfabc = c0o1; - mfbcc = c0o1; - mfbaa = c0o1; - mfbca = c0o1; - mfbac = c0o1; - mfbbb = c0o1; - mfccc = c0o1; - mfaac = c0o1; - mfcac = c0o1; - mfacc = c0o1; - mfcca = c0o1; - mfaaa = c0o1; - mfcaa = c0o1; - mfaca = c0o1; - - - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position NWT -0.25f, 0.25f, 0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = -c1o4; - y = c1o4; - z = c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho = c3o64*drho_NEB+c9o64*drho_NET+c9o64*drho_NWB+c27o64*drho_NWT+c1o64*drho_SEB+c3o64*drho_SET+c3o64*drho_SWB+c9o64*drho_SWT; - //press = press_NWT * (c27o64 + c9o16 * mxoff - c9o16 * myoff - c9o16 * mzoff) + - // press_NET * (c9o64 - c9o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + - // press_SWT * (c9o64 + c3o16 * mxoff + c9o16 * myoff - c3o16 * mzoff) + - // press_SET * (c3o64 - c3o16 * mxoff + c3o16 * myoff - c1o16 * mzoff) + - // press_SEB * (c1o64 - c1o16 * mxoff + c1o16 * myoff + c1o16 * mzoff) + - // press_NEB * (c3o64 - c3o16 * mxoff - c1o16 * myoff + c3o16 * mzoff) + - // press_SWB * (c3o64 + c1o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + - // press_NWB * (c9o64 + c3o16 * mxoff - c3o16 * myoff + c9o16 * mzoff); - //drho = drho_NWT * (c27o64 + c9o16 * xoff - c9o16 * yoff - c9o16 * zoff) + - // drho_NET * (c9o64 - c9o16 * xoff - c3o16 * yoff - c3o16 * zoff) + - // drho_SWT * (c9o64 + c3o16 * xoff + c9o16 * yoff - c3o16 * zoff) + - // drho_SET * (c3o64 - c3o16 * xoff + c3o16 * yoff - c1o16 * zoff) + - // drho_SEB * (c1o64 - c1o16 * xoff + c1o16 * yoff + c1o16 * zoff) + - // drho_NEB * (c3o64 - c3o16 * xoff - c1o16 * yoff + c3o16 * zoff) + - // drho_SWB * (c3o64 + c1o16 * xoff + c3o16 * yoff + c3o16 * zoff) + - // drho_NWB * (c9o64 + c3o16 * xoff - c3o16 * yoff + c9o16 * zoff); - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz + c3o1*x*x*LapRho ; - vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); - vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); - vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); - //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); - //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); - //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //2.f - // linear combinations - mxxPyyPzz = mfaaa; - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); - //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mfbbb = c0o1; - - //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); - //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); - //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); - //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyPyzz = c0o1; - - //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); - //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyMyzz = c0o1; - - //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); - //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); - //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzPyyz = c0o1; - - //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); - //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzMyyz = c0o1; - - //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); - //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); - //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyPxzz = c0o1; - - //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); - //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyMxzz = c0o1; - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //index - kzero= kb; - kw = kbw; - ks = kbs; - kb = neighborFZ[kb]; - ksw = kbsw; - kbw = neighborFZ[kbw]; - kbs = neighborFZ[kbs]; - kbsw = neighborFZ[kbsw]; - //////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - feF[kzero] = mfcbb; - fwF[kw] = mfabb; - fnF[kzero] = mfbcb; - fsF[ks] = mfbab; - ftF[kzero] = mfbbc; - fbF[kb] = mfbba; - fneF[kzero] = mfccb; - fswF[ksw] = mfaab; - fseF[ks] = mfcab; - fnwF[kw] = mfacb; - fteF[kzero] = mfcbc; - fbwF[kbw] = mfaba; - fbeF[kb] = mfcba; - ftwF[kw] = mfabc; - ftnF[kzero] = mfbcc; - fbsF[kbs] = mfbaa; - fbnF[kb] = mfbca; - ftsF[ks] = mfbac; - fzeroF[kzero] = mfbbb; - ftneF[kzero] = mfccc; - ftseF[ks] = mfcac; - fbneF[kb] = mfcca; - fbseF[kbs] = mfcaa; - ftnwF[kw] = mfacc; - ftswF[ksw] = mfaac; - fbnwF[kbw] = mfaca; - fbswF[kbsw] = mfaaa; - //////////////////////////////////////////////////////////////////////////////////// - - - //reset - mfcbb = c0o1; - mfabb = c0o1; - mfbcb = c0o1; - mfbab = c0o1; - mfbbc = c0o1; - mfbba = c0o1; - mfccb = c0o1; - mfaab = c0o1; - mfcab = c0o1; - mfacb = c0o1; - mfcbc = c0o1; - mfaba = c0o1; - mfcba = c0o1; - mfabc = c0o1; - mfbcc = c0o1; - mfbaa = c0o1; - mfbca = c0o1; - mfbac = c0o1; - mfbbb = c0o1; - mfccc = c0o1; - mfaac = c0o1; - mfcac = c0o1; - mfacc = c0o1; - mfcca = c0o1; - mfaaa = c0o1; - mfcaa = c0o1; - mfaca = c0o1; - - - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position NET 0.25f, 0.25f, 0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = c1o4; - y = c1o4; - z = c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho = c9o64*drho_NEB+c27o64*drho_NET+c3o64*drho_NWB+c9o64*drho_NWT+c3o64*drho_SEB+c9o64*drho_SET+c1o64*drho_SWB+c3o64*drho_SWT; - //press = press_NET * (c27o64 - c9o16 * mxoff - c9o16 * myoff - c9o16 * mzoff) + - // press_NWT * (c9o64 + c9o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + - // press_SET * (c9o64 - c3o16 * mxoff + c9o16 * myoff - c3o16 * mzoff) + - // press_SWT * (c3o64 + c3o16 * mxoff + c3o16 * myoff - c1o16 * mzoff) + - // press_SWB * (c1o64 + c1o16 * mxoff + c1o16 * myoff + c1o16 * mzoff) + - // press_NWB * (c3o64 + c3o16 * mxoff - c1o16 * myoff + c3o16 * mzoff) + - // press_SEB * (c3o64 - c1o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + - // press_NEB * (c9o64 - c3o16 * mxoff - c3o16 * myoff + c9o16 * mzoff); - //drho = drho_NET * (c27o64 - c9o16 * xoff - c9o16 * yoff - c9o16 * zoff) + - // drho_NWT * (c9o64 + c9o16 * xoff - c3o16 * yoff - c3o16 * zoff) + - // drho_SET * (c9o64 - c3o16 * xoff + c9o16 * yoff - c3o16 * zoff) + - // drho_SWT * (c3o64 + c3o16 * xoff + c3o16 * yoff - c1o16 * zoff) + - // drho_SWB * (c1o64 + c1o16 * xoff + c1o16 * yoff + c1o16 * zoff) + - // drho_NWB * (c3o64 + c3o16 * xoff - c1o16 * yoff + c3o16 * zoff) + - // drho_SEB * (c3o64 - c1o16 * xoff + c3o16 * yoff + c3o16 * zoff) + - // drho_NEB * (c9o64 - c3o16 * xoff - c3o16 * yoff + c9o16 * zoff); - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz + c3o1*x*x*LapRho ; - vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); - vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); - vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); - //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); - //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); - //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //2.f - // linear combinations - mxxPyyPzz = mfaaa; - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); - //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mfbbb = c0o1; - - //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); - //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); - //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); - //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyPyzz = c0o1; - - //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); - //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyMyzz = c0o1; - - //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); - //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); - //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzPyyz = c0o1; - - //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); - //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzMyyz = c0o1; - - //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); - //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); - //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyPxzz = c0o1; - - //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); - //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyMxzz = c0o1; - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //index - kzero= kw; - kw = neighborFX[kw]; - ks = ksw; - kb = kbw; - ksw = neighborFX[ksw]; - kbw = neighborFX[kbw]; - kbs = kbsw; - kbsw = neighborFX[kbsw]; - //////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - feF[kzero] = mfcbb; - fwF[kw] = mfabb; - fnF[kzero] = mfbcb; - fsF[ks] = mfbab; - ftF[kzero] = mfbbc; - fbF[kb] = mfbba; - fneF[kzero] = mfccb; - fswF[ksw] = mfaab; - fseF[ks] = mfcab; - fnwF[kw] = mfacb; - fteF[kzero] = mfcbc; - fbwF[kbw] = mfaba; - fbeF[kb] = mfcba; - ftwF[kw] = mfabc; - ftnF[kzero] = mfbcc; - fbsF[kbs] = mfbaa; - fbnF[kb] = mfbca; - ftsF[ks] = mfbac; - fzeroF[kzero] = mfbbb; - ftneF[kzero] = mfccc; - ftseF[ks] = mfcac; - fbneF[kb] = mfcca; - fbseF[kbs] = mfcaa; - ftnwF[kw] = mfacc; - ftswF[ksw] = mfaac; - fbnwF[kbw] = mfaca; - fbswF[kbsw] = mfaaa; - //////////////////////////////////////////////////////////////////////////////////// - - - //reset - mfcbb = c0o1; - mfabb = c0o1; - mfbcb = c0o1; - mfbab = c0o1; - mfbbc = c0o1; - mfbba = c0o1; - mfccb = c0o1; - mfaab = c0o1; - mfcab = c0o1; - mfacb = c0o1; - mfcbc = c0o1; - mfaba = c0o1; - mfcba = c0o1; - mfabc = c0o1; - mfbcc = c0o1; - mfbaa = c0o1; - mfbca = c0o1; - mfbac = c0o1; - mfbbb = c0o1; - mfccc = c0o1; - mfaac = c0o1; - mfcac = c0o1; - mfacc = c0o1; - mfcca = c0o1; - mfaaa = c0o1; - mfcaa = c0o1; - mfaca = c0o1; - - - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position NEB 0.25f, 0.25f, -0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = c1o4; - y = c1o4; - z = -c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho = c27o64*drho_NEB+c9o64*drho_NET+c9o64*drho_NWB+c3o64*drho_NWT+c9o64*drho_SEB+c3o64*drho_SET+c3o64*drho_SWB+c1o64*drho_SWT; - //press = press_NET * (c9o64 - c3o16 * mxoff - c3o16 * myoff - c9o16 * mzoff) + - // press_NWT * (c3o64 + c3o16 * mxoff - c1o16 * myoff - c3o16 * mzoff) + - // press_SET * (c3o64 - c1o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + - // press_SWT * (c1o64 + c1o16 * mxoff + c1o16 * myoff - c1o16 * mzoff) + - // press_SWB * (c3o64 + c3o16 * mxoff + c3o16 * myoff + c1o16 * mzoff) + - // press_NWB * (c9o64 + c9o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + - // press_SEB * (c9o64 - c3o16 * mxoff + c9o16 * myoff + c3o16 * mzoff) + - // press_NEB * (c27o64 - c9o16 * mxoff - c9o16 * myoff + c9o16 * mzoff); - //drho = drho_NET * (c9o64 - c3o16 * xoff - c3o16 * yoff - c9o16 * zoff) + - // drho_NWT * (c3o64 + c3o16 * xoff - c1o16 * yoff - c3o16 * zoff) + - // drho_SET * (c3o64 - c1o16 * xoff + c3o16 * yoff - c3o16 * zoff) + - // drho_SWT * (c1o64 + c1o16 * xoff + c1o16 * yoff - c1o16 * zoff) + - // drho_SWB * (c3o64 + c3o16 * xoff + c3o16 * yoff + c1o16 * zoff) + - // drho_NWB * (c9o64 + c9o16 * xoff - c3o16 * yoff + c3o16 * zoff) + - // drho_SEB * (c9o64 - c3o16 * xoff + c9o16 * yoff + c3o16 * zoff) + - // drho_NEB * (c27o64 - c9o16 * xoff - c9o16 * yoff + c9o16 * zoff); - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz + c3o1*x*x*LapRho ; - vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); - vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); - vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); - //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); - //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); - //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //2.f - // linear combinations - mxxPyyPzz = mfaaa; - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); - //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mfbbb = c0o1; - - //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); - //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); - //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); - //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyPyzz = c0o1; - - //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); - //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyMyzz = c0o1; - - //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); - //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); - //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzPyyz = c0o1; - - //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); - //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzMyyz = c0o1; - - //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); - //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); - //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyPxzz = c0o1; - - //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); - //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyMxzz = c0o1; - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //index - kb = kzero; - kbw = kw; - kbs = ks; - kbsw = ksw; - kzero= k0w; - kw = neighborFX[k0w]; - ks = k0sw; - ksw = neighborFX[k0sw]; - //////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - feF[kzero] = mfcbb; - fwF[kw] = mfabb; - fnF[kzero] = mfbcb; - fsF[ks] = mfbab; - ftF[kzero] = mfbbc; - fbF[kb] = mfbba; - fneF[kzero] = mfccb; - fswF[ksw] = mfaab; - fseF[ks] = mfcab; - fnwF[kw] = mfacb; - fteF[kzero] = mfcbc; - fbwF[kbw] = mfaba; - fbeF[kb] = mfcba; - ftwF[kw] = mfabc; - ftnF[kzero] = mfbcc; - fbsF[kbs] = mfbaa; - fbnF[kb] = mfbca; - ftsF[ks] = mfbac; - fzeroF[kzero] = mfbbb; - ftneF[kzero] = mfccc; - ftseF[ks] = mfcac; - fbneF[kb] = mfcca; - fbseF[kbs] = mfcaa; - ftnwF[kw] = mfacc; - ftswF[ksw] = mfaac; - fbnwF[kbw] = mfaca; - fbswF[kbsw] = mfaaa; - //////////////////////////////////////////////////////////////////////////////////// - } -} -////////////////////////////////////////////////////////////////////////// - - - - - - + d0 = d0 + xoff * dx + yoff * dy + zoff * dz + xoff*yoff*dxy + xoff*zoff*dxz + yoff*zoff*dyz; + dx = dx + yoff * dxy + zoff * dxz; + dy = dy + xoff * dxy + zoff * dyz; + dz = dz + xoff * dxz + yoff * dyz; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // FIX /////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //AAAAAAAAAAAAHHHHHHHHHHHH!!!!! Mieser Test!!! + //b0= bx= by= bz= bxx= byy= bzz= bxy= bxz= byz= c0= cx= cy= cz= cxx= cyy= czz= cxy= cxz= cyz= axyz= bxyz= cxyz=zero; + //a0=zero; + //ax=zero; + //ay=zero; + //az=zero; + //axx=zero; + //ayy=zero; + //azz=zero; + //axy=zero; + //axz=zero; + //ayz=zero; + //b0=zero; + //bx=zero; + //by=zero; + //bz=zero; + //bxx=zero; + //byy=zero; + //bzz=zero; + //bxy=zero; + //bxz=zero; + //byz=zero; + //c0=zero; + //cx=zero; + //cy=zero; + //cz=zero; + //cxx=zero; + //cyy=zero; + //czz=zero; + //cxy=zero; + //cxz=zero; + //cyz=zero; + //axyz=zero; + //bxyz=zero; + //cxyz=zero; + //ax= ay= az= axx= ayy= azz= axy= axz= ayz= bx= by= bz= bxx= byy= bzz= bxy= bxz= byz= cx= cy= cz= cxx= cyy= czz= cxy= cxz= cyz= axyz= bxyz= cxyz=zero; + //a0=zero; + //b0=zero; + //c0=c1o100; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + real mfcbb = c0o1; + real mfabb = c0o1; + real mfbcb = c0o1; + real mfbab = c0o1; + real mfbbc = c0o1; + real mfbba = c0o1; + real mfccb = c0o1; + real mfaab = c0o1; + real mfcab = c0o1; + real mfacb = c0o1; + real mfcbc = c0o1; + real mfaba = c0o1; + real mfcba = c0o1; + real mfabc = c0o1; + real mfbcc = c0o1; + real mfbaa = c0o1; + real mfbca = c0o1; + real mfbac = c0o1; + real mfbbb = c0o1; + real mfccc = c0o1; + real mfaac = c0o1; + real mfcac = c0o1; + real mfacc = c0o1; + real mfcca = c0o1; + real mfaaa = c0o1; + real mfcaa = c0o1; + real mfaca = c0o1; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + real m0, m1, m2, vvx, vvy, vvz, vx2, vy2, vz2, oMdrho; + real mxxPyyPzz, mxxMyy, mxxMzz, mxxyPyzz, mxxyMyzz, mxxzPyyz, mxxzMyyz, mxyyPxzz, mxyyMxzz; + //real qudricLimit = c1o100;//ganz schlechte Idee -> muss global sein + //real O3 = two - o; + //real residu, residutmp; + //residutmp = zero;// /*-*/ c2o9 * (1./o - c1o2) * eps_new * eps_new; + real NeqOn = c1o1;//zero;//one; //.... one = on ..... zero = off + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position SWB -0.25f, -0.25f, -0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = -c1o4; + y = -c1o4; + z = -c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //real mxoff = -xoff; + //real myoff = -yoff; + //real mzoff = -zoff; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho = c3o64*drho_NEB+c1o64*drho_NET+c9o64*drho_NWB+c3o64*drho_NWT+c9o64*drho_SEB+c3o64*drho_SET+c27o64*drho_SWB+c9o64*drho_SWT; + //press = press_SWT * (c9o64 + c3o16 * mxoff + c3o16 * myoff - c9o16 * mzoff) + + // press_NWT * (c3o64 + c1o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + + // press_SET * (c3o64 - c3o16 * mxoff + c1o16 * myoff - c3o16 * mzoff) + + // press_NET * (c1o64 - c1o16 * mxoff - c1o16 * myoff - c1o16 * mzoff) + + // press_NEB * (c3o64 - c3o16 * mxoff - c3o16 * myoff + c1o16 * mzoff) + + // press_NWB * (c9o64 + c3o16 * mxoff - c9o16 * myoff + c3o16 * mzoff) + + // press_SEB * (c9o64 - c9o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + + // press_SWB * (c27o64 + c9o16 * mxoff + c9o16 * myoff + c9o16 * mzoff); + //drho = drho_SWT * (c9o64 + c3o16 * xoff + c3o16 * yoff - c9o16 * zoff) + + // drho_NWT * (c3o64 + c1o16 * xoff - c3o16 * yoff - c3o16 * zoff) + + // drho_SET * (c3o64 - c3o16 * xoff + c1o16 * yoff - c3o16 * zoff) + + // drho_NET * (c1o64 - c1o16 * xoff - c1o16 * yoff - c1o16 * zoff) + + // drho_NEB * (c3o64 - c3o16 * xoff - c3o16 * yoff + c1o16 * zoff) + + // drho_NWB * (c9o64 + c3o16 * xoff - c9o16 * yoff + c3o16 * zoff) + + // drho_SEB * (c9o64 - c9o16 * xoff + c3o16 * yoff + c3o16 * zoff) + + // drho_SWB * (c27o64 + c9o16 * xoff + c9o16 * yoff + c9o16 * zoff); + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz + c3o1*x*x*LapRho ; + vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); + vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); + vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); + //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); + //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); + //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1; + //oMdrho = one - mfaaa; + + //2.f + // linear combinations + mxxPyyPzz = mfaaa; + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y + - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y + - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); + //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mfbbb = c0o1; + + //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); + //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); + //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); + //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyPyzz = c0o1; + + //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); + //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); + //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyMyzz = c0o1; + + //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); + //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); + //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzPyyz = c0o1; + + //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); + //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); + //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzMyyz = c0o1; + + //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); + //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; + //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); + //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyPxzz = c0o1; + + //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); + //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); + //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyMxzz = c0o1; + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////// + //index 0 + k0zero= posFSWB[k]; + k0w = neighborFX[k0zero]; + k0s = neighborFY[k0zero]; + k0b = neighborFZ[k0zero]; + k0sw = neighborFY[k0w]; + k0bw = neighborFZ[k0w]; + k0bs = neighborFZ[k0s]; + k0bsw = neighborFZ[k0sw]; + ////////////////////////////////////////////////////////////////////////// + //index + kzero= k0zero; + kw = k0w; + ks = k0s; + kb = k0b; + ksw = k0sw; + kbw = k0bw; + kbs = k0bs; + kbsw = k0bsw; + //////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + feF[kzero] = mfcbb; + fwF[kw] = mfabb; + fnF[kzero] = mfbcb; + fsF[ks] = mfbab; + ftF[kzero] = mfbbc; + fbF[kb] = mfbba; + fneF[kzero] = mfccb; + fswF[ksw] = mfaab; + fseF[ks] = mfcab; + fnwF[kw] = mfacb; + fteF[kzero] = mfcbc; + fbwF[kbw] = mfaba; + fbeF[kb] = mfcba; + ftwF[kw] = mfabc; + ftnF[kzero] = mfbcc; + fbsF[kbs] = mfbaa; + fbnF[kb] = mfbca; + ftsF[ks] = mfbac; + fzeroF[kzero] = mfbbb; + ftneF[kzero] = mfccc; + ftseF[ks] = mfcac; + fbneF[kb] = mfcca; + fbseF[kbs] = mfcaa; + ftnwF[kw] = mfacc; + ftswF[ksw] = mfaac; + fbnwF[kbw] = mfaca; + fbswF[kbsw] = mfaaa; + //////////////////////////////////////////////////////////////////////////////////// + + //reset + mfcbb = c0o1; + mfabb = c0o1; + mfbcb = c0o1; + mfbab = c0o1; + mfbbc = c0o1; + mfbba = c0o1; + mfccb = c0o1; + mfaab = c0o1; + mfcab = c0o1; + mfacb = c0o1; + mfcbc = c0o1; + mfaba = c0o1; + mfcba = c0o1; + mfabc = c0o1; + mfbcc = c0o1; + mfbaa = c0o1; + mfbca = c0o1; + mfbac = c0o1; + mfbbb = c0o1; + mfccc = c0o1; + mfaac = c0o1; + mfcac = c0o1; + mfacc = c0o1; + mfcca = c0o1; + mfaaa = c0o1; + mfcaa = c0o1; + mfaca = c0o1; + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position SWT -0.25f, -0.25f, 0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = -c1o4; + y = -c1o4; + z = c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho = c1o64*drho_NEB+c3o64*drho_NET+c3o64*drho_NWB+c9o64*drho_NWT+c3o64*drho_SEB+c9o64*drho_SET+c9o64*drho_SWB+c27o64*drho_SWT; + //press = press_SWT * (c27o64 + c9o16 * mxoff + c9o16 * myoff - c9o16 * mzoff) + + // press_NWT * (c9o64 + c3o16 * mxoff - c9o16 * myoff - c3o16 * mzoff) + + // press_SET * (c9o64 - c9o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + + // press_NET * (c3o64 - c3o16 * mxoff - c3o16 * myoff - c1o16 * mzoff) + + // press_NEB * (c1o64 - c1o16 * mxoff - c1o16 * myoff + c1o16 * mzoff) + + // press_NWB * (c3o64 + c1o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + + // press_SEB * (c3o64 - c3o16 * mxoff + c1o16 * myoff + c3o16 * mzoff) + + // press_SWB * (c9o64 + c3o16 * mxoff + c3o16 * myoff + c9o16 * mzoff); + //drho = drho_SWT * (c27o64 + c9o16 * xoff + c9o16 * yoff - c9o16 * zoff) + + // drho_NWT * (c9o64 + c3o16 * xoff - c9o16 * yoff - c3o16 * zoff) + + // drho_SET * (c9o64 - c9o16 * xoff + c3o16 * yoff - c3o16 * zoff) + + // drho_NET * (c3o64 - c3o16 * xoff - c3o16 * yoff - c1o16 * zoff) + + // drho_NEB * (c1o64 - c1o16 * xoff - c1o16 * yoff + c1o16 * zoff) + + // drho_NWB * (c3o64 + c1o16 * xoff - c3o16 * yoff + c3o16 * zoff) + + // drho_SEB * (c3o64 - c3o16 * xoff + c1o16 * yoff + c3o16 * zoff) + + // drho_SWB * (c9o64 + c3o16 * xoff + c3o16 * yoff + c9o16 * zoff); + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz + c3o1*x*x*LapRho ; + vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); + vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); + vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); + //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); + //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); + //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1; + //oMdrho = one - mfaaa; + + //2.f + // linear combinations + mxxPyyPzz = mfaaa; + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); + //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mfbbb = c0o1; + + //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); + //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); + //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); + //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyPyzz = c0o1; + + //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); + //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); + //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyMyzz = c0o1; + + //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); + //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); + //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzPyyz = c0o1; + + //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); + //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); + //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzMyyz = c0o1; + + //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); + //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; + //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); + //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyPxzz = c0o1; + + //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); + //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); + //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyMxzz = c0o1; + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + //index + kzero= kb; + kw = kbw; + ks = kbs; + kb = neighborFZ[kb]; + ksw = kbsw; + kbw = neighborFZ[kbw]; + kbs = neighborFZ[kbs]; + kbsw = neighborFZ[kbsw]; + //////////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + feF[kzero] = mfcbb; + fwF[kw] = mfabb; + fnF[kzero] = mfbcb; + fsF[ks] = mfbab; + ftF[kzero] = mfbbc; + fbF[kb] = mfbba; + fneF[kzero] = mfccb; + fswF[ksw] = mfaab; + fseF[ks] = mfcab; + fnwF[kw] = mfacb; + fteF[kzero] = mfcbc; + fbwF[kbw] = mfaba; + fbeF[kb] = mfcba; + ftwF[kw] = mfabc; + ftnF[kzero] = mfbcc; + fbsF[kbs] = mfbaa; + fbnF[kb] = mfbca; + ftsF[ks] = mfbac; + fzeroF[kzero] = mfbbb; + ftneF[kzero] = mfccc; + ftseF[ks] = mfcac; + fbneF[kb] = mfcca; + fbseF[kbs] = mfcaa; + ftnwF[kw] = mfacc; + ftswF[ksw] = mfaac; + fbnwF[kbw] = mfaca; + fbswF[kbsw] = mfaaa; + //////////////////////////////////////////////////////////////////////////////////// + + + //reset + mfcbb = c0o1; + mfabb = c0o1; + mfbcb = c0o1; + mfbab = c0o1; + mfbbc = c0o1; + mfbba = c0o1; + mfccb = c0o1; + mfaab = c0o1; + mfcab = c0o1; + mfacb = c0o1; + mfcbc = c0o1; + mfaba = c0o1; + mfcba = c0o1; + mfabc = c0o1; + mfbcc = c0o1; + mfbaa = c0o1; + mfbca = c0o1; + mfbac = c0o1; + mfbbb = c0o1; + mfccc = c0o1; + mfaac = c0o1; + mfcac = c0o1; + mfacc = c0o1; + mfcca = c0o1; + mfaaa = c0o1; + mfcaa = c0o1; + mfaca = c0o1; + + + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position SET 0.25f, -0.25f, 0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = c1o4; + y = -c1o4; + z = c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho =c3o64*drho_NEB+c9o64*drho_NET+c1o64*drho_NWB+c3o64*drho_NWT+c9o64*drho_SEB+c27o64*drho_SET+c3o64*drho_SWB+c9o64*drho_SWT; + //press = press_SET * (c27o64 - c9o16 * mxoff + c9o16 * myoff - c9o16 * mzoff) + + // press_NET * (c9o64 - c3o16 * mxoff - c9o16 * myoff - c3o16 * mzoff) + + // press_SWT * (c9o64 + c9o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + + // press_NWT * (c3o64 + c3o16 * mxoff - c3o16 * myoff - c1o16 * mzoff) + + // press_NWB * (c1o64 + c1o16 * mxoff - c1o16 * myoff + c1o16 * mzoff) + + // press_NEB * (c3o64 - c1o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + + // press_SWB * (c3o64 + c3o16 * mxoff + c1o16 * myoff + c3o16 * mzoff) + + // press_SEB * (c9o64 - c3o16 * mxoff + c3o16 * myoff + c9o16 * mzoff); + //drho = drho_SET * (c27o64 - c9o16 * xoff + c9o16 * yoff - c9o16 * zoff) + + // drho_NET * (c9o64 - c3o16 * xoff - c9o16 * yoff - c3o16 * zoff) + + // drho_SWT * (c9o64 + c9o16 * xoff + c3o16 * yoff - c3o16 * zoff) + + // drho_NWT * (c3o64 + c3o16 * xoff - c3o16 * yoff - c1o16 * zoff) + + // drho_NWB * (c1o64 + c1o16 * xoff - c1o16 * yoff + c1o16 * zoff) + + // drho_NEB * (c3o64 - c1o16 * xoff - c3o16 * yoff + c3o16 * zoff) + + // drho_SWB * (c3o64 + c3o16 * xoff + c1o16 * yoff + c3o16 * zoff) + + // drho_SEB * (c9o64 - c3o16 * xoff + c3o16 * yoff + c9o16 * zoff); + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz + c3o1*x*x*LapRho ; + vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); + vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); + vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); + //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); + //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); + //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1; + //oMdrho = one - mfaaa; + + //2.f + // linear combinations + mxxPyyPzz = mfaaa; + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); + //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mfbbb = c0o1; + + //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); + //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); + //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); + //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyPyzz = c0o1; + + //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); + //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); + //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyMyzz = c0o1; + + //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); + //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); + //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzPyyz = c0o1; + + //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); + //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); + //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzMyyz = c0o1; + + //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); + //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; + //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); + //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyPxzz = c0o1; + + //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); + //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); + //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyMxzz = c0o1; + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////// + //index + kzero= kw; + kw = neighborFX[kw]; + ks = ksw; + kb = kbw; + ksw = neighborFX[ksw]; + kbw = neighborFX[kbw]; + kbs = kbsw; + kbsw = neighborFX[kbsw]; + //////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + feF[kzero] = mfcbb; + fwF[kw] = mfabb; + fnF[kzero] = mfbcb; + fsF[ks] = mfbab; + ftF[kzero] = mfbbc; + fbF[kb] = mfbba; + fneF[kzero] = mfccb; + fswF[ksw] = mfaab; + fseF[ks] = mfcab; + fnwF[kw] = mfacb; + fteF[kzero] = mfcbc; + fbwF[kbw] = mfaba; + fbeF[kb] = mfcba; + ftwF[kw] = mfabc; + ftnF[kzero] = mfbcc; + fbsF[kbs] = mfbaa; + fbnF[kb] = mfbca; + ftsF[ks] = mfbac; + fzeroF[kzero] = mfbbb; + ftneF[kzero] = mfccc; + ftseF[ks] = mfcac; + fbneF[kb] = mfcca; + fbseF[kbs] = mfcaa; + ftnwF[kw] = mfacc; + ftswF[ksw] = mfaac; + fbnwF[kbw] = mfaca; + fbswF[kbsw] = mfaaa; + //////////////////////////////////////////////////////////////////////////////////// + + //reset + mfcbb = c0o1; + mfabb = c0o1; + mfbcb = c0o1; + mfbab = c0o1; + mfbbc = c0o1; + mfbba = c0o1; + mfccb = c0o1; + mfaab = c0o1; + mfcab = c0o1; + mfacb = c0o1; + mfcbc = c0o1; + mfaba = c0o1; + mfcba = c0o1; + mfabc = c0o1; + mfbcc = c0o1; + mfbaa = c0o1; + mfbca = c0o1; + mfbac = c0o1; + mfbbb = c0o1; + mfccc = c0o1; + mfaac = c0o1; + mfcac = c0o1; + mfacc = c0o1; + mfcca = c0o1; + mfaaa = c0o1; + mfcaa = c0o1; + mfaca = c0o1; + + + + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position SEB 0.25f, -0.25f, -0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = c1o4; + y = -c1o4; + z = -c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho =c9o64*drho_NEB+c3o64*drho_NET+c3o64*drho_NWB+c1o64*drho_NWT+c27o64*drho_SEB+c9o64*drho_SET+c9o64*drho_SWB+c3o64*drho_SWT; + //press = press_SET * (c9o64 - c3o16 * mxoff + c3o16 * myoff - c9o16 * mzoff) + + // press_NET * (c3o64 - c1o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + + // press_SWT * (c3o64 + c3o16 * mxoff + c1o16 * myoff - c3o16 * mzoff) + + // press_NWT * (c1o64 + c1o16 * mxoff - c1o16 * myoff - c1o16 * mzoff) + + // press_NWB * (c3o64 + c3o16 * mxoff - c3o16 * myoff + c1o16 * mzoff) + + // press_NEB * (c9o64 - c3o16 * mxoff - c9o16 * myoff + c3o16 * mzoff) + + // press_SWB * (c9o64 + c9o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + + // press_SEB * (c27o64 - c9o16 * mxoff + c9o16 * myoff + c9o16 * mzoff); + //drho = drho_SET * (c9o64 - c3o16 * xoff + c3o16 * yoff - c9o16 * zoff) + + // drho_NET * (c3o64 - c1o16 * xoff - c3o16 * yoff - c3o16 * zoff) + + // drho_SWT * (c3o64 + c3o16 * xoff + c1o16 * yoff - c3o16 * zoff) + + // drho_NWT * (c1o64 + c1o16 * xoff - c1o16 * yoff - c1o16 * zoff) + + // drho_NWB * (c3o64 + c3o16 * xoff - c3o16 * yoff + c1o16 * zoff) + + // drho_NEB * (c9o64 - c3o16 * xoff - c9o16 * yoff + c3o16 * zoff) + + // drho_SWB * (c9o64 + c9o16 * xoff + c3o16 * yoff + c3o16 * zoff) + + // drho_SEB * (c27o64 - c9o16 * xoff + c9o16 * yoff + c9o16 * zoff); + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz + c3o1*x*x*LapRho ; + vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); + vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); + vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); + //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); + //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); + //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1; + //oMdrho = one - mfaaa; + + //2.f + // linear combinations + mxxPyyPzz = mfaaa; + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); + //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mfbbb = c0o1; + + //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); + //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); + //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); + //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyPyzz = c0o1; + + //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); + //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); + //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyMyzz = c0o1; + + //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); + //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); + //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzPyyz = c0o1; + + //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); + //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); + //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzMyyz = c0o1; + + //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); + //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; + //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); + //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyPxzz = c0o1; + + //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); + //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); + //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyMxzz = c0o1; + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////// + //index + kb = kzero; + kbw = kw; + kbs = ks; + kbsw = ksw; + kzero= k0w; + kw = neighborFX[k0w]; + ks = k0sw; + ksw = neighborFX[k0sw]; + //////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + feF[kzero] = mfcbb; + fwF[kw] = mfabb; + fnF[kzero] = mfbcb; + fsF[ks] = mfbab; + ftF[kzero] = mfbbc; + fbF[kb] = mfbba; + fneF[kzero] = mfccb; + fswF[ksw] = mfaab; + fseF[ks] = mfcab; + fnwF[kw] = mfacb; + fteF[kzero] = mfcbc; + fbwF[kbw] = mfaba; + fbeF[kb] = mfcba; + ftwF[kw] = mfabc; + ftnF[kzero] = mfbcc; + fbsF[kbs] = mfbaa; + fbnF[kb] = mfbca; + ftsF[ks] = mfbac; + fzeroF[kzero] = mfbbb; + ftneF[kzero] = mfccc; + ftseF[ks] = mfcac; + fbneF[kb] = mfcca; + fbseF[kbs] = mfcaa; + ftnwF[kw] = mfacc; + ftswF[ksw] = mfaac; + fbnwF[kbw] = mfaca; + fbswF[kbsw] = mfaaa; + //////////////////////////////////////////////////////////////////////////////////// + + + //reset + mfcbb = c0o1; + mfabb = c0o1; + mfbcb = c0o1; + mfbab = c0o1; + mfbbc = c0o1; + mfbba = c0o1; + mfccb = c0o1; + mfaab = c0o1; + mfcab = c0o1; + mfacb = c0o1; + mfcbc = c0o1; + mfaba = c0o1; + mfcba = c0o1; + mfabc = c0o1; + mfbcc = c0o1; + mfbaa = c0o1; + mfbca = c0o1; + mfbac = c0o1; + mfbbb = c0o1; + mfccc = c0o1; + mfaac = c0o1; + mfcac = c0o1; + mfacc = c0o1; + mfcca = c0o1; + mfaaa = c0o1; + mfcaa = c0o1; + mfaca = c0o1; + + + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position NWB -0.25f, 0.25f, -0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = -c1o4; + y = c1o4; + z = -c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho = c9o64*drho_NEB+c3o64*drho_NET+c27o64*drho_NWB+c9o64*drho_NWT+c3o64*drho_SEB+c1o64*drho_SET+c9o64*drho_SWB+c3o64*drho_SWT; + //press = press_NWT * (c9o64 + c3o16 * mxoff - c3o16 * myoff - c9o16 * mzoff) + + // press_NET * (c3o64 - c3o16 * mxoff - c1o16 * myoff - c3o16 * mzoff) + + // press_SWT * (c3o64 + c1o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + + // press_SET * (c1o64 - c1o16 * mxoff + c1o16 * myoff - c1o16 * mzoff) + + // press_SEB * (c3o64 - c3o16 * mxoff + c3o16 * myoff + c1o16 * mzoff) + + // press_NEB * (c9o64 - c9o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + + // press_SWB * (c9o64 + c3o16 * mxoff + c9o16 * myoff + c3o16 * mzoff) + + // press_NWB * (c27o64 + c9o16 * mxoff - c9o16 * myoff + c9o16 * mzoff); + //drho = drho_NWT * (c9o64 + c3o16 * xoff - c3o16 * yoff - c9o16 * zoff) + + // drho_NET * (c3o64 - c3o16 * xoff - c1o16 * yoff - c3o16 * zoff) + + // drho_SWT * (c3o64 + c1o16 * xoff + c3o16 * yoff - c3o16 * zoff) + + // drho_SET * (c1o64 - c1o16 * xoff + c1o16 * yoff - c1o16 * zoff) + + // drho_SEB * (c3o64 - c3o16 * xoff + c3o16 * yoff + c1o16 * zoff) + + // drho_NEB * (c9o64 - c9o16 * xoff - c3o16 * yoff + c3o16 * zoff) + + // drho_SWB * (c9o64 + c3o16 * xoff + c9o16 * yoff + c3o16 * zoff) + + // drho_NWB * (c27o64 + c9o16 * xoff - c9o16 * yoff + c9o16 * zoff); + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz + c3o1*x*x*LapRho ; + vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); + vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); + vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); + //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); + //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); + //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1; + //oMdrho = one - mfaaa; + + //2.f + // linear combinations + mxxPyyPzz = mfaaa; + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); + //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mfbbb = c0o1; + + //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); + //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); + //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); + //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyPyzz = c0o1; + + //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); + //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); + //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyMyzz = c0o1; + + //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); + //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); + //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzPyyz = c0o1; + + //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); + //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); + //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzMyyz = c0o1; + + //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); + //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; + //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); + //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyPxzz = c0o1; + + //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); + //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); + //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyMxzz = c0o1; + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////// + //index 0 + k0zero= k0s; + k0w = k0sw; + k0s = neighborFY[k0s]; + k0b = k0bs; + k0sw = neighborFY[k0sw]; + k0bw = k0bsw; + k0bs = neighborFY[k0bs]; + k0bsw = neighborFY[k0bsw]; + ////////////////////////////////////////////////////////////////////////// + //index + kzero= k0zero; + kw = k0w; + ks = k0s; + kb = k0b; + ksw = k0sw; + kbw = k0bw; + kbs = k0bs; + kbsw = k0bsw; + //////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + feF[kzero] = mfcbb; + fwF[kw] = mfabb; + fnF[kzero] = mfbcb; + fsF[ks] = mfbab; + ftF[kzero] = mfbbc; + fbF[kb] = mfbba; + fneF[kzero] = mfccb; + fswF[ksw] = mfaab; + fseF[ks] = mfcab; + fnwF[kw] = mfacb; + fteF[kzero] = mfcbc; + fbwF[kbw] = mfaba; + fbeF[kb] = mfcba; + ftwF[kw] = mfabc; + ftnF[kzero] = mfbcc; + fbsF[kbs] = mfbaa; + fbnF[kb] = mfbca; + ftsF[ks] = mfbac; + fzeroF[kzero] = mfbbb; + ftneF[kzero] = mfccc; + ftseF[ks] = mfcac; + fbneF[kb] = mfcca; + fbseF[kbs] = mfcaa; + ftnwF[kw] = mfacc; + ftswF[ksw] = mfaac; + fbnwF[kbw] = mfaca; + fbswF[kbsw] = mfaaa; + //////////////////////////////////////////////////////////////////////////////////// + + + //reset + mfcbb = c0o1; + mfabb = c0o1; + mfbcb = c0o1; + mfbab = c0o1; + mfbbc = c0o1; + mfbba = c0o1; + mfccb = c0o1; + mfaab = c0o1; + mfcab = c0o1; + mfacb = c0o1; + mfcbc = c0o1; + mfaba = c0o1; + mfcba = c0o1; + mfabc = c0o1; + mfbcc = c0o1; + mfbaa = c0o1; + mfbca = c0o1; + mfbac = c0o1; + mfbbb = c0o1; + mfccc = c0o1; + mfaac = c0o1; + mfcac = c0o1; + mfacc = c0o1; + mfcca = c0o1; + mfaaa = c0o1; + mfcaa = c0o1; + mfaca = c0o1; + + + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position NWT -0.25f, 0.25f, 0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = -c1o4; + y = c1o4; + z = c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho = c3o64*drho_NEB+c9o64*drho_NET+c9o64*drho_NWB+c27o64*drho_NWT+c1o64*drho_SEB+c3o64*drho_SET+c3o64*drho_SWB+c9o64*drho_SWT; + //press = press_NWT * (c27o64 + c9o16 * mxoff - c9o16 * myoff - c9o16 * mzoff) + + // press_NET * (c9o64 - c9o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + + // press_SWT * (c9o64 + c3o16 * mxoff + c9o16 * myoff - c3o16 * mzoff) + + // press_SET * (c3o64 - c3o16 * mxoff + c3o16 * myoff - c1o16 * mzoff) + + // press_SEB * (c1o64 - c1o16 * mxoff + c1o16 * myoff + c1o16 * mzoff) + + // press_NEB * (c3o64 - c3o16 * mxoff - c1o16 * myoff + c3o16 * mzoff) + + // press_SWB * (c3o64 + c1o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + + // press_NWB * (c9o64 + c3o16 * mxoff - c3o16 * myoff + c9o16 * mzoff); + //drho = drho_NWT * (c27o64 + c9o16 * xoff - c9o16 * yoff - c9o16 * zoff) + + // drho_NET * (c9o64 - c9o16 * xoff - c3o16 * yoff - c3o16 * zoff) + + // drho_SWT * (c9o64 + c3o16 * xoff + c9o16 * yoff - c3o16 * zoff) + + // drho_SET * (c3o64 - c3o16 * xoff + c3o16 * yoff - c1o16 * zoff) + + // drho_SEB * (c1o64 - c1o16 * xoff + c1o16 * yoff + c1o16 * zoff) + + // drho_NEB * (c3o64 - c3o16 * xoff - c1o16 * yoff + c3o16 * zoff) + + // drho_SWB * (c3o64 + c1o16 * xoff + c3o16 * yoff + c3o16 * zoff) + + // drho_NWB * (c9o64 + c3o16 * xoff - c3o16 * yoff + c9o16 * zoff); + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz + c3o1*x*x*LapRho ; + vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); + vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); + vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); + //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); + //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); + //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1; + //oMdrho = one - mfaaa; + + //2.f + // linear combinations + mxxPyyPzz = mfaaa; + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); + //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mfbbb = c0o1; + + //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); + //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); + //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); + //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyPyzz = c0o1; + + //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); + //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); + //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyMyzz = c0o1; + + //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); + //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); + //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzPyyz = c0o1; + + //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); + //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); + //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzMyyz = c0o1; + + //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); + //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; + //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); + //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyPxzz = c0o1; + + //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); + //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); + //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyMxzz = c0o1; + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////// + //index + kzero= kb; + kw = kbw; + ks = kbs; + kb = neighborFZ[kb]; + ksw = kbsw; + kbw = neighborFZ[kbw]; + kbs = neighborFZ[kbs]; + kbsw = neighborFZ[kbsw]; + //////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + feF[kzero] = mfcbb; + fwF[kw] = mfabb; + fnF[kzero] = mfbcb; + fsF[ks] = mfbab; + ftF[kzero] = mfbbc; + fbF[kb] = mfbba; + fneF[kzero] = mfccb; + fswF[ksw] = mfaab; + fseF[ks] = mfcab; + fnwF[kw] = mfacb; + fteF[kzero] = mfcbc; + fbwF[kbw] = mfaba; + fbeF[kb] = mfcba; + ftwF[kw] = mfabc; + ftnF[kzero] = mfbcc; + fbsF[kbs] = mfbaa; + fbnF[kb] = mfbca; + ftsF[ks] = mfbac; + fzeroF[kzero] = mfbbb; + ftneF[kzero] = mfccc; + ftseF[ks] = mfcac; + fbneF[kb] = mfcca; + fbseF[kbs] = mfcaa; + ftnwF[kw] = mfacc; + ftswF[ksw] = mfaac; + fbnwF[kbw] = mfaca; + fbswF[kbsw] = mfaaa; + //////////////////////////////////////////////////////////////////////////////////// + + + //reset + mfcbb = c0o1; + mfabb = c0o1; + mfbcb = c0o1; + mfbab = c0o1; + mfbbc = c0o1; + mfbba = c0o1; + mfccb = c0o1; + mfaab = c0o1; + mfcab = c0o1; + mfacb = c0o1; + mfcbc = c0o1; + mfaba = c0o1; + mfcba = c0o1; + mfabc = c0o1; + mfbcc = c0o1; + mfbaa = c0o1; + mfbca = c0o1; + mfbac = c0o1; + mfbbb = c0o1; + mfccc = c0o1; + mfaac = c0o1; + mfcac = c0o1; + mfacc = c0o1; + mfcca = c0o1; + mfaaa = c0o1; + mfcaa = c0o1; + mfaca = c0o1; + + + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position NET 0.25f, 0.25f, 0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = c1o4; + y = c1o4; + z = c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho = c9o64*drho_NEB+c27o64*drho_NET+c3o64*drho_NWB+c9o64*drho_NWT+c3o64*drho_SEB+c9o64*drho_SET+c1o64*drho_SWB+c3o64*drho_SWT; + //press = press_NET * (c27o64 - c9o16 * mxoff - c9o16 * myoff - c9o16 * mzoff) + + // press_NWT * (c9o64 + c9o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + + // press_SET * (c9o64 - c3o16 * mxoff + c9o16 * myoff - c3o16 * mzoff) + + // press_SWT * (c3o64 + c3o16 * mxoff + c3o16 * myoff - c1o16 * mzoff) + + // press_SWB * (c1o64 + c1o16 * mxoff + c1o16 * myoff + c1o16 * mzoff) + + // press_NWB * (c3o64 + c3o16 * mxoff - c1o16 * myoff + c3o16 * mzoff) + + // press_SEB * (c3o64 - c1o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + + // press_NEB * (c9o64 - c3o16 * mxoff - c3o16 * myoff + c9o16 * mzoff); + //drho = drho_NET * (c27o64 - c9o16 * xoff - c9o16 * yoff - c9o16 * zoff) + + // drho_NWT * (c9o64 + c9o16 * xoff - c3o16 * yoff - c3o16 * zoff) + + // drho_SET * (c9o64 - c3o16 * xoff + c9o16 * yoff - c3o16 * zoff) + + // drho_SWT * (c3o64 + c3o16 * xoff + c3o16 * yoff - c1o16 * zoff) + + // drho_SWB * (c1o64 + c1o16 * xoff + c1o16 * yoff + c1o16 * zoff) + + // drho_NWB * (c3o64 + c3o16 * xoff - c1o16 * yoff + c3o16 * zoff) + + // drho_SEB * (c3o64 - c1o16 * xoff + c3o16 * yoff + c3o16 * zoff) + + // drho_NEB * (c9o64 - c3o16 * xoff - c3o16 * yoff + c9o16 * zoff); + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz + c3o1*x*x*LapRho ; + vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); + vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); + vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); + //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); + //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); + //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1; + //oMdrho = one - mfaaa; + + //2.f + // linear combinations + mxxPyyPzz = mfaaa; + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); + //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mfbbb = c0o1; + + //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); + //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); + //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); + //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyPyzz = c0o1; + + //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); + //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); + //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyMyzz = c0o1; + + //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); + //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); + //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzPyyz = c0o1; + + //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); + //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); + //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzMyyz = c0o1; + + //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); + //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; + //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); + //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyPxzz = c0o1; + + //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); + //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); + //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyMxzz = c0o1; + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////// + //index + kzero= kw; + kw = neighborFX[kw]; + ks = ksw; + kb = kbw; + ksw = neighborFX[ksw]; + kbw = neighborFX[kbw]; + kbs = kbsw; + kbsw = neighborFX[kbsw]; + //////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + feF[kzero] = mfcbb; + fwF[kw] = mfabb; + fnF[kzero] = mfbcb; + fsF[ks] = mfbab; + ftF[kzero] = mfbbc; + fbF[kb] = mfbba; + fneF[kzero] = mfccb; + fswF[ksw] = mfaab; + fseF[ks] = mfcab; + fnwF[kw] = mfacb; + fteF[kzero] = mfcbc; + fbwF[kbw] = mfaba; + fbeF[kb] = mfcba; + ftwF[kw] = mfabc; + ftnF[kzero] = mfbcc; + fbsF[kbs] = mfbaa; + fbnF[kb] = mfbca; + ftsF[ks] = mfbac; + fzeroF[kzero] = mfbbb; + ftneF[kzero] = mfccc; + ftseF[ks] = mfcac; + fbneF[kb] = mfcca; + fbseF[kbs] = mfcaa; + ftnwF[kw] = mfacc; + ftswF[ksw] = mfaac; + fbnwF[kbw] = mfaca; + fbswF[kbsw] = mfaaa; + //////////////////////////////////////////////////////////////////////////////////// + + + //reset + mfcbb = c0o1; + mfabb = c0o1; + mfbcb = c0o1; + mfbab = c0o1; + mfbbc = c0o1; + mfbba = c0o1; + mfccb = c0o1; + mfaab = c0o1; + mfcab = c0o1; + mfacb = c0o1; + mfcbc = c0o1; + mfaba = c0o1; + mfcba = c0o1; + mfabc = c0o1; + mfbcc = c0o1; + mfbaa = c0o1; + mfbca = c0o1; + mfbac = c0o1; + mfbbb = c0o1; + mfccc = c0o1; + mfaac = c0o1; + mfcac = c0o1; + mfacc = c0o1; + mfcca = c0o1; + mfaaa = c0o1; + mfcaa = c0o1; + mfaca = c0o1; + + + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position NEB 0.25f, 0.25f, -0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = c1o4; + y = c1o4; + z = -c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho = c27o64*drho_NEB+c9o64*drho_NET+c9o64*drho_NWB+c3o64*drho_NWT+c9o64*drho_SEB+c3o64*drho_SET+c3o64*drho_SWB+c1o64*drho_SWT; + //press = press_NET * (c9o64 - c3o16 * mxoff - c3o16 * myoff - c9o16 * mzoff) + + // press_NWT * (c3o64 + c3o16 * mxoff - c1o16 * myoff - c3o16 * mzoff) + + // press_SET * (c3o64 - c1o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + + // press_SWT * (c1o64 + c1o16 * mxoff + c1o16 * myoff - c1o16 * mzoff) + + // press_SWB * (c3o64 + c3o16 * mxoff + c3o16 * myoff + c1o16 * mzoff) + + // press_NWB * (c9o64 + c9o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + + // press_SEB * (c9o64 - c3o16 * mxoff + c9o16 * myoff + c3o16 * mzoff) + + // press_NEB * (c27o64 - c9o16 * mxoff - c9o16 * myoff + c9o16 * mzoff); + //drho = drho_NET * (c9o64 - c3o16 * xoff - c3o16 * yoff - c9o16 * zoff) + + // drho_NWT * (c3o64 + c3o16 * xoff - c1o16 * yoff - c3o16 * zoff) + + // drho_SET * (c3o64 - c1o16 * xoff + c3o16 * yoff - c3o16 * zoff) + + // drho_SWT * (c1o64 + c1o16 * xoff + c1o16 * yoff - c1o16 * zoff) + + // drho_SWB * (c3o64 + c3o16 * xoff + c3o16 * yoff + c1o16 * zoff) + + // drho_NWB * (c9o64 + c9o16 * xoff - c3o16 * yoff + c3o16 * zoff) + + // drho_SEB * (c9o64 - c3o16 * xoff + c9o16 * yoff + c3o16 * zoff) + + // drho_NEB * (c27o64 - c9o16 * xoff - c9o16 * yoff + c9o16 * zoff); + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz + c3o1*x*x*LapRho ; + vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); + vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); + vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); + //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); + //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); + //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1; + //oMdrho = one - mfaaa; + + //2.f + // linear combinations + mxxPyyPzz = mfaaa; + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); + //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mfbbb = c0o1; + + //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); + //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); + //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); + //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyPyzz = c0o1; + + //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); + //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); + //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyMyzz = c0o1; + + //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); + //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); + //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzPyyz = c0o1; + + //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); + //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); + //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzMyyz = c0o1; + + //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); + //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; + //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); + //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyPxzz = c0o1; + + //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); + //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); + //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyMxzz = c0o1; + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////// + //index + kb = kzero; + kbw = kw; + kbs = ks; + kbsw = ksw; + kzero= k0w; + kw = neighborFX[k0w]; + ks = k0sw; + ksw = neighborFX[k0sw]; + //////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + feF[kzero] = mfcbb; + fwF[kw] = mfabb; + fnF[kzero] = mfbcb; + fsF[ks] = mfbab; + ftF[kzero] = mfbbc; + fbF[kb] = mfbba; + fneF[kzero] = mfccb; + fswF[ksw] = mfaab; + fseF[ks] = mfcab; + fnwF[kw] = mfacb; + fteF[kzero] = mfcbc; + fbwF[kbw] = mfaba; + fbeF[kb] = mfcba; + ftwF[kw] = mfabc; + ftnF[kzero] = mfbcc; + fbsF[kbs] = mfbaa; + fbnF[kb] = mfbca; + ftsF[ks] = mfbac; + fzeroF[kzero] = mfbbb; + ftneF[kzero] = mfccc; + ftseF[ks] = mfcac; + fbneF[kb] = mfcca; + fbseF[kbs] = mfcaa; + ftnwF[kw] = mfacc; + ftswF[ksw] = mfaac; + fbnwF[kbw] = mfaca; + fbswF[kbsw] = mfaaa; + //////////////////////////////////////////////////////////////////////////////////// + } +} +////////////////////////////////////////////////////////////////////////// + + + + + + @@ -22126,27 +22126,27 @@ __global__ void scaleCF_RhoSq_comp_27(real* DC, ////////////////////////////////////////////////////////////////////////// __global__ void scaleCF_staggered_time_comp_27( real* DC, - real* DF, - unsigned int* neighborCX, - unsigned int* neighborCY, - unsigned int* neighborCZ, - unsigned int* neighborFX, - unsigned int* neighborFY, - unsigned int* neighborFZ, - unsigned long long numberOfLBnodesCoarse, - unsigned long long numberOfLBnodesFine, - bool isEvenTimestep, - unsigned int* posCSWB, - unsigned int* posFSWB, - unsigned int kCF, - real omCoarse, - real omFine, - real nu, - unsigned int nxC, - unsigned int nyC, - unsigned int nxF, - unsigned int nyF, - ICellNeigh offCF) + real* DF, + unsigned int* neighborCX, + unsigned int* neighborCY, + unsigned int* neighborCZ, + unsigned int* neighborFX, + unsigned int* neighborFY, + unsigned int* neighborFZ, + unsigned long long numberOfLBnodesCoarse, + unsigned long long numberOfLBnodesFine, + bool isEvenTimestep, + unsigned int* posCSWB, + unsigned int* posFSWB, + unsigned int kCF, + real omCoarse, + real omFine, + real nu, + unsigned int nxC, + unsigned int nyC, + unsigned int nxF, + unsigned int nyF, + ICellNeigh offCF) { real *feF, *fwF, *fnF, *fsF, *ftF, *fbF, *fneF, *fswF, *fseF, *fnwF, *fteF, *fbwF, *fbeF, *ftwF, *ftnF, *fbsF, *fbnF, *ftsF, *fzeroF, *ftneF, *ftswF, *ftseF, *ftnwF, *fbneF, *fbswF, *fbseF, *fbnwF; @@ -22351,8 +22351,8 @@ __global__ void scaleCF_staggered_time_comp_27( real* DC, drho_SWB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; vx1_SWB = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W)); - vx2_SWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S)); - vx3_SWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B)); + vx2_SWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S)); + vx3_SWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B)); kxyFromfcNEQ_SWB = -c3o1*omegaS*(f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE-((vx1_SWB*vx2_SWB) /(c1o1 + drho_SWB))); kyzFromfcNEQ_SWB = -c3o1*omegaS*(f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW-((vx2_SWB*vx3_SWB) /(c1o1 + drho_SWB))); @@ -22403,8 +22403,8 @@ __global__ void scaleCF_staggered_time_comp_27( real* DC, drho_SWT = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; vx1_SWT = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W)); - vx2_SWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S)); - vx3_SWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B)); + vx2_SWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S)); + vx3_SWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B)); kxyFromfcNEQ_SWT = -c3o1*omegaS*(f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE-((vx1_SWT*vx2_SWT) /(c1o1 + drho_SWT))); kyzFromfcNEQ_SWT = -c3o1*omegaS*(f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW-((vx2_SWT*vx3_SWT) /(c1o1 + drho_SWT))); @@ -22455,8 +22455,8 @@ __global__ void scaleCF_staggered_time_comp_27( real* DC, drho_SET = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; vx1_SET = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W)); - vx2_SET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S)); - vx3_SET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B)); + vx2_SET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S)); + vx3_SET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B)); kxyFromfcNEQ_SET = -c3o1*omegaS*(f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE-((vx1_SET*vx2_SET) /(c1o1 + drho_SET))); kyzFromfcNEQ_SET = -c3o1*omegaS*(f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW-((vx2_SET*vx3_SET) /(c1o1 + drho_SET))); @@ -22507,8 +22507,8 @@ __global__ void scaleCF_staggered_time_comp_27( real* DC, drho_SEB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; vx1_SEB = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W)); - vx2_SEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S)); - vx3_SEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B)); + vx2_SEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S)); + vx3_SEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B)); kxyFromfcNEQ_SEB = -c3o1*omegaS*(f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE-((vx1_SEB*vx2_SEB) /(c1o1 + drho_SEB))); kyzFromfcNEQ_SEB = -c3o1*omegaS*(f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW-((vx2_SEB*vx3_SEB) /(c1o1 + drho_SEB))); @@ -22569,8 +22569,8 @@ __global__ void scaleCF_staggered_time_comp_27( real* DC, drho_NWB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; vx1_NWB = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W)); - vx2_NWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S)); - vx3_NWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B)); + vx2_NWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S)); + vx3_NWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B)); kxyFromfcNEQ_NWB = -c3o1*omegaS*(f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE-((vx1_NWB*vx2_NWB) /(c1o1 + drho_NWB))); kyzFromfcNEQ_NWB = -c3o1*omegaS*(f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW-((vx2_NWB*vx3_NWB) /(c1o1 + drho_NWB))); @@ -22621,8 +22621,8 @@ __global__ void scaleCF_staggered_time_comp_27( real* DC, drho_NWT = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; vx1_NWT = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W)); - vx2_NWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S)); - vx3_NWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B)); + vx2_NWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S)); + vx3_NWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B)); kxyFromfcNEQ_NWT = -c3o1*omegaS*(f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE-((vx1_NWT*vx2_NWT) /(c1o1 + drho_NWT))); kyzFromfcNEQ_NWT = -c3o1*omegaS*(f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW-((vx2_NWT*vx3_NWT) /(c1o1 + drho_NWT))); @@ -22673,8 +22673,8 @@ __global__ void scaleCF_staggered_time_comp_27( real* DC, drho_NET = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; vx1_NET = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W)); - vx2_NET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S)); - vx3_NET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B)); + vx2_NET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S)); + vx3_NET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B)); kxyFromfcNEQ_NET = -c3o1*omegaS*(f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE-((vx1_NET*vx2_NET) /(c1o1 + drho_NET))); kyzFromfcNEQ_NET = -c3o1*omegaS*(f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW-((vx2_NET*vx3_NET) /(c1o1 + drho_NET))); @@ -22725,8 +22725,8 @@ __global__ void scaleCF_staggered_time_comp_27( real* DC, drho_NEB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; vx1_NEB = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W)); - vx2_NEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S)); - vx3_NEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B)); + vx2_NEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S)); + vx3_NEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B)); kxyFromfcNEQ_NEB = -c3o1*omegaS*(f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE-((vx1_NEB*vx2_NEB) /(c1o1 + drho_NEB))); kyzFromfcNEQ_NEB = -c3o1*omegaS*(f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW-((vx2_NEB*vx3_NEB) /(c1o1 + drho_NEB))); @@ -22735,46 +22735,46 @@ __global__ void scaleCF_staggered_time_comp_27( real* DC, kxxMzzFromfcNEQ_NEB = -c3o2*omegaS*(f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE-((vx1_NEB*vx1_NEB-vx3_NEB*vx3_NEB)/(c1o1 + drho_NEB))); ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // kxyFromfcNEQ_SWB = zero; - //kyzFromfcNEQ_SWB = zero; - //kxzFromfcNEQ_SWB = zero; - //kxxMyyFromfcNEQ_SWB = zero; - //kxxMzzFromfcNEQ_SWB = zero; - //kxyFromfcNEQ_SWT = zero; - //kyzFromfcNEQ_SWT = zero; - //kxzFromfcNEQ_SWT = zero; - //kxxMyyFromfcNEQ_SWT = zero; - //kxxMzzFromfcNEQ_SWT = zero; - //kxyFromfcNEQ_SET = zero; - //kyzFromfcNEQ_SET = zero; - //kxzFromfcNEQ_SET = zero; - //kxxMyyFromfcNEQ_SET = zero; - //kxxMzzFromfcNEQ_SET = zero; - //kxyFromfcNEQ_SEB = zero; - //kyzFromfcNEQ_SEB = zero; - //kxzFromfcNEQ_SEB = zero; - //kxxMyyFromfcNEQ_SEB = zero; - //kxxMzzFromfcNEQ_SEB = zero; - //kxyFromfcNEQ_NWB = zero; - //kyzFromfcNEQ_NWB = zero; - //kxzFromfcNEQ_NWB = zero; - //kxxMyyFromfcNEQ_NWB = zero; - //kxxMzzFromfcNEQ_NWB = zero; - //kxyFromfcNEQ_NWT = zero; - //kyzFromfcNEQ_NWT = zero; - //kxzFromfcNEQ_NWT = zero; - //kxxMyyFromfcNEQ_NWT = zero; - //kxxMzzFromfcNEQ_NWT = zero; - //kxyFromfcNEQ_NET = zero; - //kyzFromfcNEQ_NET = zero; - //kxzFromfcNEQ_NET = zero; - //kxxMyyFromfcNEQ_NET = zero; - //kxxMzzFromfcNEQ_NET = zero; - //kxyFromfcNEQ_NEB = zero; - //kyzFromfcNEQ_NEB = zero; - //kxzFromfcNEQ_NEB = zero; - //kxxMyyFromfcNEQ_NEB = zero; - //kxxMzzFromfcNEQ_NEB = zero; + // kxyFromfcNEQ_SWB = zero; + //kyzFromfcNEQ_SWB = zero; + //kxzFromfcNEQ_SWB = zero; + //kxxMyyFromfcNEQ_SWB = zero; + //kxxMzzFromfcNEQ_SWB = zero; + //kxyFromfcNEQ_SWT = zero; + //kyzFromfcNEQ_SWT = zero; + //kxzFromfcNEQ_SWT = zero; + //kxxMyyFromfcNEQ_SWT = zero; + //kxxMzzFromfcNEQ_SWT = zero; + //kxyFromfcNEQ_SET = zero; + //kyzFromfcNEQ_SET = zero; + //kxzFromfcNEQ_SET = zero; + //kxxMyyFromfcNEQ_SET = zero; + //kxxMzzFromfcNEQ_SET = zero; + //kxyFromfcNEQ_SEB = zero; + //kyzFromfcNEQ_SEB = zero; + //kxzFromfcNEQ_SEB = zero; + //kxxMyyFromfcNEQ_SEB = zero; + //kxxMzzFromfcNEQ_SEB = zero; + //kxyFromfcNEQ_NWB = zero; + //kyzFromfcNEQ_NWB = zero; + //kxzFromfcNEQ_NWB = zero; + //kxxMyyFromfcNEQ_NWB = zero; + //kxxMzzFromfcNEQ_NWB = zero; + //kxyFromfcNEQ_NWT = zero; + //kyzFromfcNEQ_NWT = zero; + //kxzFromfcNEQ_NWT = zero; + //kxxMyyFromfcNEQ_NWT = zero; + //kxxMzzFromfcNEQ_NWT = zero; + //kxyFromfcNEQ_NET = zero; + //kyzFromfcNEQ_NET = zero; + //kxzFromfcNEQ_NET = zero; + //kxxMyyFromfcNEQ_NET = zero; + //kxxMzzFromfcNEQ_NET = zero; + //kxyFromfcNEQ_NEB = zero; + //kyzFromfcNEQ_NEB = zero; + //kxzFromfcNEQ_NEB = zero; + //kxxMyyFromfcNEQ_NEB = zero; + //kxxMzzFromfcNEQ_NEB = zero; ////////////////////////////////////////////////////////////////////////// //3 ////////////////////////////////////////////////////////////////////////// @@ -22895,88 +22895,88 @@ __global__ void scaleCF_staggered_time_comp_27( real* DC, cxyz=-vx3_NEB + vx3_NET + vx3_NWB - vx3_NWT + vx3_SEB - vx3_SET - vx3_SWB + vx3_SWT; ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real kxyAverage =(kxyFromfcNEQ_SWB+ - kxyFromfcNEQ_SWT+ - kxyFromfcNEQ_SET+ - kxyFromfcNEQ_SEB+ - kxyFromfcNEQ_NWB+ - kxyFromfcNEQ_NWT+ - kxyFromfcNEQ_NET+ - kxyFromfcNEQ_NEB)*c1o8-(ay+bx); - real kyzAverage =(kyzFromfcNEQ_SWB+ - kyzFromfcNEQ_SWT+ - kyzFromfcNEQ_SET+ - kyzFromfcNEQ_SEB+ - kyzFromfcNEQ_NWB+ - kyzFromfcNEQ_NWT+ - kyzFromfcNEQ_NET+ - kyzFromfcNEQ_NEB)*c1o8-(bz+cy); - real kxzAverage =(kxzFromfcNEQ_SWB+ - kxzFromfcNEQ_SWT+ - kxzFromfcNEQ_SET+ - kxzFromfcNEQ_SEB+ - kxzFromfcNEQ_NWB+ - kxzFromfcNEQ_NWT+ - kxzFromfcNEQ_NET+ - kxzFromfcNEQ_NEB)*c1o8-(az+cx); - real kxxMyyAverage =(kxxMyyFromfcNEQ_SWB+ - kxxMyyFromfcNEQ_SWT+ - kxxMyyFromfcNEQ_SET+ - kxxMyyFromfcNEQ_SEB+ - kxxMyyFromfcNEQ_NWB+ - kxxMyyFromfcNEQ_NWT+ - kxxMyyFromfcNEQ_NET+ - kxxMyyFromfcNEQ_NEB)*c1o8-(ax-by); - real kxxMzzAverage =(kxxMzzFromfcNEQ_SWB+ - kxxMzzFromfcNEQ_SWT+ - kxxMzzFromfcNEQ_SET+ - kxxMzzFromfcNEQ_SEB+ - kxxMzzFromfcNEQ_NWB+ - kxxMzzFromfcNEQ_NWT+ - kxxMzzFromfcNEQ_NET+ - kxxMzzFromfcNEQ_NEB)*c1o8-(ax-cz); - - - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //Press - //d0 = ( press_NEB + press_NET + press_NWB + press_NWT + press_SEB + press_SET + press_SWB + press_SWT) * c1o8; - //dx = ( press_NEB + press_NET - press_NWB - press_NWT + press_SEB + press_SET - press_SWB - press_SWT) * c1o4; - //dy = ( press_NEB + press_NET + press_NWB + press_NWT - press_SEB - press_SET - press_SWB - press_SWT) * c1o4; - //dz = (-press_NEB + press_NET - press_NWB + press_NWT - press_SEB + press_SET - press_SWB + press_SWT) * c1o4; - //dxy = ( press_NEB + press_NET - press_NWB - press_NWT - press_SEB - press_SET + press_SWB + press_SWT) * c1o2; - //dxz = (-press_NEB + press_NET + press_NWB - press_NWT - press_SEB + press_SET + press_SWB - press_SWT) * c1o2; - //dyz = (-press_NEB + press_NET - press_NWB + press_NWT + press_SEB - press_SET + press_SWB - press_SWT) * c1o2; - //dxyz = -press_NEB + press_NET + press_NWB - press_NWT + press_SEB - press_SET - press_SWB + press_SWT; - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho - d0 = ( drho_NEB + drho_NET + drho_NWB + drho_NWT + drho_SEB + drho_SET + drho_SWB + drho_SWT) * c1o8; - dx = ( drho_NEB + drho_NET - drho_NWB - drho_NWT + drho_SEB + drho_SET - drho_SWB - drho_SWT) * c1o4; - dy = ( drho_NEB + drho_NET + drho_NWB + drho_NWT - drho_SEB - drho_SET - drho_SWB - drho_SWT) * c1o4; - dz = (-drho_NEB + drho_NET - drho_NWB + drho_NWT - drho_SEB + drho_SET - drho_SWB + drho_SWT) * c1o4; - dxy = ( drho_NEB + drho_NET - drho_NWB - drho_NWT - drho_SEB - drho_SET + drho_SWB + drho_SWT) * c1o2; - dxz = (-drho_NEB + drho_NET + drho_NWB - drho_NWT - drho_SEB + drho_SET + drho_SWB - drho_SWT) * c1o2; - dyz = (-drho_NEB + drho_NET - drho_NWB + drho_NWT + drho_SEB - drho_SET + drho_SWB - drho_SWT) * c1o2; - dxyz = -drho_NEB + drho_NET + drho_NWB - drho_NWT + drho_SEB - drho_SET - drho_SWB + drho_SWT; - // d0 = zero; - //dx = zero; - //dy = zero; - //dz = zero; - //dxy = zero; - //dxz = zero; - //dyz = zero; - //dxyz = zero; + real kxyAverage =(kxyFromfcNEQ_SWB+ + kxyFromfcNEQ_SWT+ + kxyFromfcNEQ_SET+ + kxyFromfcNEQ_SEB+ + kxyFromfcNEQ_NWB+ + kxyFromfcNEQ_NWT+ + kxyFromfcNEQ_NET+ + kxyFromfcNEQ_NEB)*c1o8-(ay+bx); + real kyzAverage =(kyzFromfcNEQ_SWB+ + kyzFromfcNEQ_SWT+ + kyzFromfcNEQ_SET+ + kyzFromfcNEQ_SEB+ + kyzFromfcNEQ_NWB+ + kyzFromfcNEQ_NWT+ + kyzFromfcNEQ_NET+ + kyzFromfcNEQ_NEB)*c1o8-(bz+cy); + real kxzAverage =(kxzFromfcNEQ_SWB+ + kxzFromfcNEQ_SWT+ + kxzFromfcNEQ_SET+ + kxzFromfcNEQ_SEB+ + kxzFromfcNEQ_NWB+ + kxzFromfcNEQ_NWT+ + kxzFromfcNEQ_NET+ + kxzFromfcNEQ_NEB)*c1o8-(az+cx); + real kxxMyyAverage =(kxxMyyFromfcNEQ_SWB+ + kxxMyyFromfcNEQ_SWT+ + kxxMyyFromfcNEQ_SET+ + kxxMyyFromfcNEQ_SEB+ + kxxMyyFromfcNEQ_NWB+ + kxxMyyFromfcNEQ_NWT+ + kxxMyyFromfcNEQ_NET+ + kxxMyyFromfcNEQ_NEB)*c1o8-(ax-by); + real kxxMzzAverage =(kxxMzzFromfcNEQ_SWB+ + kxxMzzFromfcNEQ_SWT+ + kxxMzzFromfcNEQ_SET+ + kxxMzzFromfcNEQ_SEB+ + kxxMzzFromfcNEQ_NWB+ + kxxMzzFromfcNEQ_NWT+ + kxxMzzFromfcNEQ_NET+ + kxxMzzFromfcNEQ_NEB)*c1o8-(ax-cz); + + + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //Press + //d0 = ( press_NEB + press_NET + press_NWB + press_NWT + press_SEB + press_SET + press_SWB + press_SWT) * c1o8; + //dx = ( press_NEB + press_NET - press_NWB - press_NWT + press_SEB + press_SET - press_SWB - press_SWT) * c1o4; + //dy = ( press_NEB + press_NET + press_NWB + press_NWT - press_SEB - press_SET - press_SWB - press_SWT) * c1o4; + //dz = (-press_NEB + press_NET - press_NWB + press_NWT - press_SEB + press_SET - press_SWB + press_SWT) * c1o4; + //dxy = ( press_NEB + press_NET - press_NWB - press_NWT - press_SEB - press_SET + press_SWB + press_SWT) * c1o2; + //dxz = (-press_NEB + press_NET + press_NWB - press_NWT - press_SEB + press_SET + press_SWB - press_SWT) * c1o2; + //dyz = (-press_NEB + press_NET - press_NWB + press_NWT + press_SEB - press_SET + press_SWB - press_SWT) * c1o2; + //dxyz = -press_NEB + press_NET + press_NWB - press_NWT + press_SEB - press_SET - press_SWB + press_SWT; + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho + d0 = ( drho_NEB + drho_NET + drho_NWB + drho_NWT + drho_SEB + drho_SET + drho_SWB + drho_SWT) * c1o8; + dx = ( drho_NEB + drho_NET - drho_NWB - drho_NWT + drho_SEB + drho_SET - drho_SWB - drho_SWT) * c1o4; + dy = ( drho_NEB + drho_NET + drho_NWB + drho_NWT - drho_SEB - drho_SET - drho_SWB - drho_SWT) * c1o4; + dz = (-drho_NEB + drho_NET - drho_NWB + drho_NWT - drho_SEB + drho_SET - drho_SWB + drho_SWT) * c1o4; + dxy = ( drho_NEB + drho_NET - drho_NWB - drho_NWT - drho_SEB - drho_SET + drho_SWB + drho_SWT) * c1o2; + dxz = (-drho_NEB + drho_NET + drho_NWB - drho_NWT - drho_SEB + drho_SET + drho_SWB - drho_SWT) * c1o2; + dyz = (-drho_NEB + drho_NET - drho_NWB + drho_NWT + drho_SEB - drho_SET + drho_SWB - drho_SWT) * c1o2; + dxyz = -drho_NEB + drho_NET + drho_NWB - drho_NWT + drho_SEB - drho_SET - drho_SWB + drho_SWT; + // d0 = zero; + //dx = zero; + //dy = zero; + //dz = zero; + //dxy = zero; + //dxz = zero; + //dyz = zero; + //dxyz = zero; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // // Bernd das Brot // - // X------X - // | | x---x - // | ---+-+-> | ----> off-vector - // | | x---x - // X------X - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // X------X + // | | x---x + // | ---+-+-> | ----> off-vector + // | | x---x + // X------X + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// a0 = a0 + xoff * ax + yoff * ay + zoff * az + xoff_sq * axx + yoff_sq * ayy + zoff_sq * azz + xoff*yoff*axy + xoff*zoff*axz + yoff*zoff*ayz; ax = ax + c2o1 * xoff * axx + yoff * axy + zoff * axz; ay = ay + c2o1 * yoff * ayy + xoff * axy + zoff * ayz; @@ -22989,3328 +22989,3328 @@ __global__ void scaleCF_staggered_time_comp_27( real* DC, cx = cx + c2o1 * xoff * cxx + yoff * cxy + zoff * cxz; cy = cy + c2o1 * yoff * cyy + xoff * cxy + zoff * cyz; cz = cz + c2o1 * zoff * czz + xoff * cxz + yoff * cyz; - d0 = d0 + xoff * dx + yoff * dy + zoff * dz + xoff*yoff*dxy + xoff*zoff*dxz + yoff*zoff*dyz; - dx = dx + yoff * dxy + zoff * dxz; - dy = dy + xoff * dxy + zoff * dyz; - dz = dz + xoff * dxz + yoff * dyz; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // FIX /////////////////////////////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //AAAAAAAAAAAAHHHHHHHHHHHH!!!!! Mieser Test!!! - //b0= bx= by= bz= bxx= byy= bzz= bxy= bxz= byz= c0= cx= cy= cz= cxx= cyy= czz= cxy= cxz= cyz= axyz= bxyz= cxyz=zero; - //a0=zero; - //ax=zero; - //ay=zero; - //az=zero; - //axx=zero; - //ayy=zero; - //azz=zero; - //axy=zero; - //axz=zero; - //ayz=zero; - //b0=zero; - //bx=zero; - //by=zero; - //bz=zero; - //bxx=zero; - //byy=zero; - //bzz=zero; - //bxy=zero; - //bxz=zero; - //byz=zero; - //c0=zero; - //cx=zero; - //cy=zero; - //cz=zero; - //cxx=zero; - //cyy=zero; - //czz=zero; - //cxy=zero; - //cxz=zero; - //cyz=zero; - //axyz=zero; - //bxyz=zero; - //cxyz=zero; - //ax= ay= az= axx= ayy= azz= axy= axz= ayz= bx= by= bz= bxx= byy= bzz= bxy= bxz= byz= cx= cy= cz= cxx= cyy= czz= cxy= cxz= cyz= axyz= bxyz= cxyz=zero; - //a0=zero; - //b0=zero; - //c0=c1o100; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real mfcbb = c0o1; - real mfabb = c0o1; - real mfbcb = c0o1; - real mfbab = c0o1; - real mfbbc = c0o1; - real mfbba = c0o1; - real mfccb = c0o1; - real mfaab = c0o1; - real mfcab = c0o1; - real mfacb = c0o1; - real mfcbc = c0o1; - real mfaba = c0o1; - real mfcba = c0o1; - real mfabc = c0o1; - real mfbcc = c0o1; - real mfbaa = c0o1; - real mfbca = c0o1; - real mfbac = c0o1; - real mfbbb = c0o1; - real mfccc = c0o1; - real mfaac = c0o1; - real mfcac = c0o1; - real mfacc = c0o1; - real mfcca = c0o1; - real mfaaa = c0o1; - real mfcaa = c0o1; - real mfaca = c0o1; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real m0, m1, m2, vvx, vvy, vvz, vx2, vy2, vz2, oMdrho; - real mxxPyyPzz, mxxMyy, mxxMzz, mxxyPyzz, mxxyMyzz, mxxzPyyz, mxxzMyyz, mxyyPxzz, mxyyMxzz; - //real qudricLimit = c1o100;//ganz schlechte Idee -> muss global sein - //real O3 = two - o; - //real residu, residutmp; - //residutmp = zero;// /*-*/ c2o9 * (1./o - c1o2) * eps_new * eps_new; - real NeqOn = c1o1;//zero;//one; //.... one = on ..... zero = off - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position SWB -0.25f, -0.25f, -0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = -c1o4; - y = -c1o4; - z = -c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //real mxoff = -xoff; - //real myoff = -yoff; - //real mzoff = -zoff; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho = c3o64*drho_NEB+c1o64*drho_NET+c9o64*drho_NWB+c3o64*drho_NWT+c9o64*drho_SEB+c3o64*drho_SET+c27o64*drho_SWB+c9o64*drho_SWT; - //press = press_SWT * (c9o64 + c3o16 * mxoff + c3o16 * myoff - c9o16 * mzoff) + - // press_NWT * (c3o64 + c1o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + - // press_SET * (c3o64 - c3o16 * mxoff + c1o16 * myoff - c3o16 * mzoff) + - // press_NET * (c1o64 - c1o16 * mxoff - c1o16 * myoff - c1o16 * mzoff) + - // press_NEB * (c3o64 - c3o16 * mxoff - c3o16 * myoff + c1o16 * mzoff) + - // press_NWB * (c9o64 + c3o16 * mxoff - c9o16 * myoff + c3o16 * mzoff) + - // press_SEB * (c9o64 - c9o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + - // press_SWB * (c27o64 + c9o16 * mxoff + c9o16 * myoff + c9o16 * mzoff); - //drho = drho_SWT * (c9o64 + c3o16 * xoff + c3o16 * yoff - c9o16 * zoff) + - // drho_NWT * (c3o64 + c1o16 * xoff - c3o16 * yoff - c3o16 * zoff) + - // drho_SET * (c3o64 - c3o16 * xoff + c1o16 * yoff - c3o16 * zoff) + - // drho_NET * (c1o64 - c1o16 * xoff - c1o16 * yoff - c1o16 * zoff) + - // drho_NEB * (c3o64 - c3o16 * xoff - c3o16 * yoff + c1o16 * zoff) + - // drho_NWB * (c9o64 + c3o16 * xoff - c9o16 * yoff + c3o16 * zoff) + - // drho_SEB * (c9o64 - c9o16 * xoff + c3o16 * yoff + c3o16 * zoff) + - // drho_SWB * (c27o64 + c9o16 * xoff + c9o16 * yoff + c9o16 * zoff); - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; - vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz)/(c1o1 + press); - vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz)/(c1o1 + press); - vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz)/(c1o1 + press); - //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); - //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); - //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //2.f - // linear combinations - mxxPyyPzz = mfaaa; - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o; - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); - //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mfbbb = c0o1; - - //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); - //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); - //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); - //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyPyzz = c0o1; - - //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); - //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyMyzz = c0o1; - - //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); - //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); - //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzPyyz = c0o1; - - //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); - //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzMyyz = c0o1; - - //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); - //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); - //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyPxzz = c0o1; - - //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); - //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyMxzz = c0o1; - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //index 0 - k0zero= posFSWB[k]; - k0w = neighborFX[k0zero]; - k0s = neighborFY[k0zero]; - k0b = neighborFZ[k0zero]; - k0sw = neighborFY[k0w]; - k0bw = neighborFZ[k0w]; - k0bs = neighborFZ[k0s]; - k0bsw = neighborFZ[k0sw]; - ////////////////////////////////////////////////////////////////////////// - //index - kzero= k0zero; - kw = k0w; - ks = k0s; - kb = k0b; - ksw = k0sw; - kbw = k0bw; - kbs = k0bs; - kbsw = k0bsw; - //////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - feF[kzero] = mfcbb; - fwF[kw] = mfabb; - fnF[kzero] = mfbcb; - fsF[ks] = mfbab; - ftF[kzero] = mfbbc; - fbF[kb] = mfbba; - fneF[kzero] = mfccb; - fswF[ksw] = mfaab; - fseF[ks] = mfcab; - fnwF[kw] = mfacb; - fteF[kzero] = mfcbc; - fbwF[kbw] = mfaba; - fbeF[kb] = mfcba; - ftwF[kw] = mfabc; - ftnF[kzero] = mfbcc; - fbsF[kbs] = mfbaa; - fbnF[kb] = mfbca; - ftsF[ks] = mfbac; - fzeroF[kzero] = mfbbb; - ftneF[kzero] = mfccc; - ftseF[ks] = mfcac; - fbneF[kb] = mfcca; - fbseF[kbs] = mfcaa; - ftnwF[kw] = mfacc; - ftswF[ksw] = mfaac; - fbnwF[kbw] = mfaca; - fbswF[kbsw] = mfaaa; - //////////////////////////////////////////////////////////////////////////////////// - - //reset - mfcbb = c0o1; - mfabb = c0o1; - mfbcb = c0o1; - mfbab = c0o1; - mfbbc = c0o1; - mfbba = c0o1; - mfccb = c0o1; - mfaab = c0o1; - mfcab = c0o1; - mfacb = c0o1; - mfcbc = c0o1; - mfaba = c0o1; - mfcba = c0o1; - mfabc = c0o1; - mfbcc = c0o1; - mfbaa = c0o1; - mfbca = c0o1; - mfbac = c0o1; - mfbbb = c0o1; - mfccc = c0o1; - mfaac = c0o1; - mfcac = c0o1; - mfacc = c0o1; - mfcca = c0o1; - mfaaa = c0o1; - mfcaa = c0o1; - mfaca = c0o1; - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position SWT -0.25f, -0.25f, 0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = -c1o4; - y = -c1o4; - z = c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho = c1o64*drho_NEB+c3o64*drho_NET+c3o64*drho_NWB+c9o64*drho_NWT+c3o64*drho_SEB+c9o64*drho_SET+c9o64*drho_SWB+c27o64*drho_SWT; - //press = press_SWT * (c27o64 + c9o16 * mxoff + c9o16 * myoff - c9o16 * mzoff) + - // press_NWT * (c9o64 + c3o16 * mxoff - c9o16 * myoff - c3o16 * mzoff) + - // press_SET * (c9o64 - c9o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + - // press_NET * (c3o64 - c3o16 * mxoff - c3o16 * myoff - c1o16 * mzoff) + - // press_NEB * (c1o64 - c1o16 * mxoff - c1o16 * myoff + c1o16 * mzoff) + - // press_NWB * (c3o64 + c1o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + - // press_SEB * (c3o64 - c3o16 * mxoff + c1o16 * myoff + c3o16 * mzoff) + - // press_SWB * (c9o64 + c3o16 * mxoff + c3o16 * myoff + c9o16 * mzoff); - //drho = drho_SWT * (c27o64 + c9o16 * xoff + c9o16 * yoff - c9o16 * zoff) + - // drho_NWT * (c9o64 + c3o16 * xoff - c9o16 * yoff - c3o16 * zoff) + - // drho_SET * (c9o64 - c9o16 * xoff + c3o16 * yoff - c3o16 * zoff) + - // drho_NET * (c3o64 - c3o16 * xoff - c3o16 * yoff - c1o16 * zoff) + - // drho_NEB * (c1o64 - c1o16 * xoff - c1o16 * yoff + c1o16 * zoff) + - // drho_NWB * (c3o64 + c1o16 * xoff - c3o16 * yoff + c3o16 * zoff) + - // drho_SEB * (c3o64 - c3o16 * xoff + c1o16 * yoff + c3o16 * zoff) + - // drho_SWB * (c9o64 + c3o16 * xoff + c3o16 * yoff + c9o16 * zoff); - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; - vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz)/(c1o1 + press); - vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz)/(c1o1 + press); - vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz)/(c1o1 + press); - //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); - //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); - //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //two - // linear combinations - mxxPyyPzz = mfaaa; - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o; - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); - //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mfbbb = c0o1; - - //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); - //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); - //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); - //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyPyzz = c0o1; - - //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); - //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyMyzz = c0o1; - - //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); - //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); - //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzPyyz = c0o1; - - //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); - //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzMyyz = c0o1; - - //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); - //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); - //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyPxzz = c0o1; - - //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); - //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyMxzz = c0o1; - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - //index - kzero= kb; - kw = kbw; - ks = kbs; - kb = neighborFZ[kb]; - ksw = kbsw; - kbw = neighborFZ[kbw]; - kbs = neighborFZ[kbs]; - kbsw = neighborFZ[kbsw]; - //////////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - feF[kzero] = mfcbb; - fwF[kw] = mfabb; - fnF[kzero] = mfbcb; - fsF[ks] = mfbab; - ftF[kzero] = mfbbc; - fbF[kb] = mfbba; - fneF[kzero] = mfccb; - fswF[ksw] = mfaab; - fseF[ks] = mfcab; - fnwF[kw] = mfacb; - fteF[kzero] = mfcbc; - fbwF[kbw] = mfaba; - fbeF[kb] = mfcba; - ftwF[kw] = mfabc; - ftnF[kzero] = mfbcc; - fbsF[kbs] = mfbaa; - fbnF[kb] = mfbca; - ftsF[ks] = mfbac; - fzeroF[kzero] = mfbbb; - ftneF[kzero] = mfccc; - ftseF[ks] = mfcac; - fbneF[kb] = mfcca; - fbseF[kbs] = mfcaa; - ftnwF[kw] = mfacc; - ftswF[ksw] = mfaac; - fbnwF[kbw] = mfaca; - fbswF[kbsw] = mfaaa; - //////////////////////////////////////////////////////////////////////////////////// - - - //reset - mfcbb = c0o1; - mfabb = c0o1; - mfbcb = c0o1; - mfbab = c0o1; - mfbbc = c0o1; - mfbba = c0o1; - mfccb = c0o1; - mfaab = c0o1; - mfcab = c0o1; - mfacb = c0o1; - mfcbc = c0o1; - mfaba = c0o1; - mfcba = c0o1; - mfabc = c0o1; - mfbcc = c0o1; - mfbaa = c0o1; - mfbca = c0o1; - mfbac = c0o1; - mfbbb = c0o1; - mfccc = c0o1; - mfaac = c0o1; - mfcac = c0o1; - mfacc = c0o1; - mfcca = c0o1; - mfaaa = c0o1; - mfcaa = c0o1; - mfaca = c0o1; - - - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position SET 0.25f, -0.25f, 0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = c1o4; - y = -c1o4; - z = c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho =c3o64*drho_NEB+c9o64*drho_NET+c1o64*drho_NWB+c3o64*drho_NWT+c9o64*drho_SEB+c27o64*drho_SET+c3o64*drho_SWB+c9o64*drho_SWT; - //press = press_SET * (c27o64 - c9o16 * mxoff + c9o16 * myoff - c9o16 * mzoff) + - // press_NET * (c9o64 - c3o16 * mxoff - c9o16 * myoff - c3o16 * mzoff) + - // press_SWT * (c9o64 + c9o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + - // press_NWT * (c3o64 + c3o16 * mxoff - c3o16 * myoff - c1o16 * mzoff) + - // press_NWB * (c1o64 + c1o16 * mxoff - c1o16 * myoff + c1o16 * mzoff) + - // press_NEB * (c3o64 - c1o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + - // press_SWB * (c3o64 + c3o16 * mxoff + c1o16 * myoff + c3o16 * mzoff) + - // press_SEB * (c9o64 - c3o16 * mxoff + c3o16 * myoff + c9o16 * mzoff); - //drho = drho_SET * (c27o64 - c9o16 * xoff + c9o16 * yoff - c9o16 * zoff) + - // drho_NET * (c9o64 - c3o16 * xoff - c9o16 * yoff - c3o16 * zoff) + - // drho_SWT * (c9o64 + c9o16 * xoff + c3o16 * yoff - c3o16 * zoff) + - // drho_NWT * (c3o64 + c3o16 * xoff - c3o16 * yoff - c1o16 * zoff) + - // drho_NWB * (c1o64 + c1o16 * xoff - c1o16 * yoff + c1o16 * zoff) + - // drho_NEB * (c3o64 - c1o16 * xoff - c3o16 * yoff + c3o16 * zoff) + - // drho_SWB * (c3o64 + c3o16 * xoff + c1o16 * yoff + c3o16 * zoff) + - // drho_SEB * (c9o64 - c3o16 * xoff + c3o16 * yoff + c9o16 * zoff); - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; - vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz)/(c1o1 + press); - vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz)/(c1o1 + press); - vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz)/(c1o1 + press); - //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); - //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); - //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //two - // linear combinations - mxxPyyPzz = mfaaa; - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o; - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); - //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mfbbb = c0o1; - - //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); - //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); - //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); - //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyPyzz = c0o1; - - //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); - //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyMyzz = c0o1; - - //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); - //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); - //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzPyyz = c0o1; - - //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); - //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzMyyz = c0o1; - - //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); - //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); - //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyPxzz = c0o1; - - //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); - //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyMxzz = c0o1; - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //index - kzero= kw; - kw = neighborFX[kw]; - ks = ksw; - kb = kbw; - ksw = neighborFX[ksw]; - kbw = neighborFX[kbw]; - kbs = kbsw; - kbsw = neighborFX[kbsw]; - //////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - feF[kzero] = mfcbb; - fwF[kw] = mfabb; - fnF[kzero] = mfbcb; - fsF[ks] = mfbab; - ftF[kzero] = mfbbc; - fbF[kb] = mfbba; - fneF[kzero] = mfccb; - fswF[ksw] = mfaab; - fseF[ks] = mfcab; - fnwF[kw] = mfacb; - fteF[kzero] = mfcbc; - fbwF[kbw] = mfaba; - fbeF[kb] = mfcba; - ftwF[kw] = mfabc; - ftnF[kzero] = mfbcc; - fbsF[kbs] = mfbaa; - fbnF[kb] = mfbca; - ftsF[ks] = mfbac; - fzeroF[kzero] = mfbbb; - ftneF[kzero] = mfccc; - ftseF[ks] = mfcac; - fbneF[kb] = mfcca; - fbseF[kbs] = mfcaa; - ftnwF[kw] = mfacc; - ftswF[ksw] = mfaac; - fbnwF[kbw] = mfaca; - fbswF[kbsw] = mfaaa; - //////////////////////////////////////////////////////////////////////////////////// - - //reset - mfcbb = c0o1; - mfabb = c0o1; - mfbcb = c0o1; - mfbab = c0o1; - mfbbc = c0o1; - mfbba = c0o1; - mfccb = c0o1; - mfaab = c0o1; - mfcab = c0o1; - mfacb = c0o1; - mfcbc = c0o1; - mfaba = c0o1; - mfcba = c0o1; - mfabc = c0o1; - mfbcc = c0o1; - mfbaa = c0o1; - mfbca = c0o1; - mfbac = c0o1; - mfbbb = c0o1; - mfccc = c0o1; - mfaac = c0o1; - mfcac = c0o1; - mfacc = c0o1; - mfcca = c0o1; - mfaaa = c0o1; - mfcaa = c0o1; - mfaca = c0o1; - - - - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position SEB 0.25f, -0.25f, -0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = c1o4; - y = -c1o4; - z = -c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho =c9o64*drho_NEB+c3o64*drho_NET+c3o64*drho_NWB+c1o64*drho_NWT+c27o64*drho_SEB+c9o64*drho_SET+c9o64*drho_SWB+c3o64*drho_SWT; - //press = press_SET * (c9o64 - c3o16 * mxoff + c3o16 * myoff - c9o16 * mzoff) + - // press_NET * (c3o64 - c1o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + - // press_SWT * (c3o64 + c3o16 * mxoff + c1o16 * myoff - c3o16 * mzoff) + - // press_NWT * (c1o64 + c1o16 * mxoff - c1o16 * myoff - c1o16 * mzoff) + - // press_NWB * (c3o64 + c3o16 * mxoff - c3o16 * myoff + c1o16 * mzoff) + - // press_NEB * (c9o64 - c3o16 * mxoff - c9o16 * myoff + c3o16 * mzoff) + - // press_SWB * (c9o64 + c9o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + - // press_SEB * (c27o64 - c9o16 * mxoff + c9o16 * myoff + c9o16 * mzoff); - //drho = drho_SET * (c9o64 - c3o16 * xoff + c3o16 * yoff - c9o16 * zoff) + - // drho_NET * (c3o64 - c1o16 * xoff - c3o16 * yoff - c3o16 * zoff) + - // drho_SWT * (c3o64 + c3o16 * xoff + c1o16 * yoff - c3o16 * zoff) + - // drho_NWT * (c1o64 + c1o16 * xoff - c1o16 * yoff - c1o16 * zoff) + - // drho_NWB * (c3o64 + c3o16 * xoff - c3o16 * yoff + c1o16 * zoff) + - // drho_NEB * (c9o64 - c3o16 * xoff - c9o16 * yoff + c3o16 * zoff) + - // drho_SWB * (c9o64 + c9o16 * xoff + c3o16 * yoff + c3o16 * zoff) + - // drho_SEB * (c27o64 - c9o16 * xoff + c9o16 * yoff + c9o16 * zoff); - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; - vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz)/(c1o1 + press); - vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz)/(c1o1 + press); - vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz)/(c1o1 + press); - //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); - //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); - //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //two - // linear combinations - mxxPyyPzz = mfaaa; - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o; - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); - //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mfbbb = c0o1; - - //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); - //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); - //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); - //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyPyzz = c0o1; - - //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); - //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyMyzz = c0o1; - - //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); - //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); - //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzPyyz = c0o1; - - //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); - //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzMyyz = c0o1; - - //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); - //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); - //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyPxzz = c0o1; - - //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); - //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyMxzz = c0o1; - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //index - kb = kzero; - kbw = kw; - kbs = ks; - kbsw = ksw; - kzero= k0w; - kw = neighborFX[k0w]; - ks = k0sw; - ksw = neighborFX[k0sw]; - //////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - feF[kzero] = mfcbb; - fwF[kw] = mfabb; - fnF[kzero] = mfbcb; - fsF[ks] = mfbab; - ftF[kzero] = mfbbc; - fbF[kb] = mfbba; - fneF[kzero] = mfccb; - fswF[ksw] = mfaab; - fseF[ks] = mfcab; - fnwF[kw] = mfacb; - fteF[kzero] = mfcbc; - fbwF[kbw] = mfaba; - fbeF[kb] = mfcba; - ftwF[kw] = mfabc; - ftnF[kzero] = mfbcc; - fbsF[kbs] = mfbaa; - fbnF[kb] = mfbca; - ftsF[ks] = mfbac; - fzeroF[kzero] = mfbbb; - ftneF[kzero] = mfccc; - ftseF[ks] = mfcac; - fbneF[kb] = mfcca; - fbseF[kbs] = mfcaa; - ftnwF[kw] = mfacc; - ftswF[ksw] = mfaac; - fbnwF[kbw] = mfaca; - fbswF[kbsw] = mfaaa; - //////////////////////////////////////////////////////////////////////////////////// - - - //reset - mfcbb = c0o1; - mfabb = c0o1; - mfbcb = c0o1; - mfbab = c0o1; - mfbbc = c0o1; - mfbba = c0o1; - mfccb = c0o1; - mfaab = c0o1; - mfcab = c0o1; - mfacb = c0o1; - mfcbc = c0o1; - mfaba = c0o1; - mfcba = c0o1; - mfabc = c0o1; - mfbcc = c0o1; - mfbaa = c0o1; - mfbca = c0o1; - mfbac = c0o1; - mfbbb = c0o1; - mfccc = c0o1; - mfaac = c0o1; - mfcac = c0o1; - mfacc = c0o1; - mfcca = c0o1; - mfaaa = c0o1; - mfcaa = c0o1; - mfaca = c0o1; - - - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position NWB -0.25f, 0.25f, -0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = -c1o4; - y = c1o4; - z = -c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho = c9o64*drho_NEB+c3o64*drho_NET+c27o64*drho_NWB+c9o64*drho_NWT+c3o64*drho_SEB+c1o64*drho_SET+c9o64*drho_SWB+c3o64*drho_SWT; - //press = press_NWT * (c9o64 + c3o16 * mxoff - c3o16 * myoff - c9o16 * mzoff) + - // press_NET * (c3o64 - c3o16 * mxoff - c1o16 * myoff - c3o16 * mzoff) + - // press_SWT * (c3o64 + c1o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + - // press_SET * (c1o64 - c1o16 * mxoff + c1o16 * myoff - c1o16 * mzoff) + - // press_SEB * (c3o64 - c3o16 * mxoff + c3o16 * myoff + c1o16 * mzoff) + - // press_NEB * (c9o64 - c9o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + - // press_SWB * (c9o64 + c3o16 * mxoff + c9o16 * myoff + c3o16 * mzoff) + - // press_NWB * (c27o64 + c9o16 * mxoff - c9o16 * myoff + c9o16 * mzoff); - //drho = drho_NWT * (c9o64 + c3o16 * xoff - c3o16 * yoff - c9o16 * zoff) + - // drho_NET * (c3o64 - c3o16 * xoff - c1o16 * yoff - c3o16 * zoff) + - // drho_SWT * (c3o64 + c1o16 * xoff + c3o16 * yoff - c3o16 * zoff) + - // drho_SET * (c1o64 - c1o16 * xoff + c1o16 * yoff - c1o16 * zoff) + - // drho_SEB * (c3o64 - c3o16 * xoff + c3o16 * yoff + c1o16 * zoff) + - // drho_NEB * (c9o64 - c9o16 * xoff - c3o16 * yoff + c3o16 * zoff) + - // drho_SWB * (c9o64 + c3o16 * xoff + c9o16 * yoff + c3o16 * zoff) + - // drho_NWB * (c27o64 + c9o16 * xoff - c9o16 * yoff + c9o16 * zoff); - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; - vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz)/(c1o1 + press); - vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz)/(c1o1 + press); - vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz)/(c1o1 + press); - //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); - //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); - //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //two - // linear combinations - mxxPyyPzz = mfaaa; - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o; - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); - //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mfbbb = c0o1; - - //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); - //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); - //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); - //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyPyzz = c0o1; - - //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); - //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyMyzz = c0o1; - - //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); - //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); - //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzPyyz = c0o1; - - //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); - //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzMyyz = c0o1; - - //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); - //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); - //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyPxzz = c0o1; - - //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); - //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyMxzz = c0o1; - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //index 0 - k0zero= k0s; - k0w = k0sw; - k0s = neighborFY[k0s]; - k0b = k0bs; - k0sw = neighborFY[k0sw]; - k0bw = k0bsw; - k0bs = neighborFY[k0bs]; - k0bsw = neighborFY[k0bsw]; - ////////////////////////////////////////////////////////////////////////// - //index - kzero= k0zero; - kw = k0w; - ks = k0s; - kb = k0b; - ksw = k0sw; - kbw = k0bw; - kbs = k0bs; - kbsw = k0bsw; - //////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - feF[kzero] = mfcbb; - fwF[kw] = mfabb; - fnF[kzero] = mfbcb; - fsF[ks] = mfbab; - ftF[kzero] = mfbbc; - fbF[kb] = mfbba; - fneF[kzero] = mfccb; - fswF[ksw] = mfaab; - fseF[ks] = mfcab; - fnwF[kw] = mfacb; - fteF[kzero] = mfcbc; - fbwF[kbw] = mfaba; - fbeF[kb] = mfcba; - ftwF[kw] = mfabc; - ftnF[kzero] = mfbcc; - fbsF[kbs] = mfbaa; - fbnF[kb] = mfbca; - ftsF[ks] = mfbac; - fzeroF[kzero] = mfbbb; - ftneF[kzero] = mfccc; - ftseF[ks] = mfcac; - fbneF[kb] = mfcca; - fbseF[kbs] = mfcaa; - ftnwF[kw] = mfacc; - ftswF[ksw] = mfaac; - fbnwF[kbw] = mfaca; - fbswF[kbsw] = mfaaa; - //////////////////////////////////////////////////////////////////////////////////// - - - //reset - mfcbb = c0o1; - mfabb = c0o1; - mfbcb = c0o1; - mfbab = c0o1; - mfbbc = c0o1; - mfbba = c0o1; - mfccb = c0o1; - mfaab = c0o1; - mfcab = c0o1; - mfacb = c0o1; - mfcbc = c0o1; - mfaba = c0o1; - mfcba = c0o1; - mfabc = c0o1; - mfbcc = c0o1; - mfbaa = c0o1; - mfbca = c0o1; - mfbac = c0o1; - mfbbb = c0o1; - mfccc = c0o1; - mfaac = c0o1; - mfcac = c0o1; - mfacc = c0o1; - mfcca = c0o1; - mfaaa = c0o1; - mfcaa = c0o1; - mfaca = c0o1; - - - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position NWT -0.25f, 0.25f, 0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = -c1o4; - y = c1o4; - z = c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho = c3o64*drho_NEB+c9o64*drho_NET+c9o64*drho_NWB+c27o64*drho_NWT+c1o64*drho_SEB+c3o64*drho_SET+c3o64*drho_SWB+c9o64*drho_SWT; - //press = press_NWT * (c27o64 + c9o16 * mxoff - c9o16 * myoff - c9o16 * mzoff) + - // press_NET * (c9o64 - c9o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + - // press_SWT * (c9o64 + c3o16 * mxoff + c9o16 * myoff - c3o16 * mzoff) + - // press_SET * (c3o64 - c3o16 * mxoff + c3o16 * myoff - c1o16 * mzoff) + - // press_SEB * (c1o64 - c1o16 * mxoff + c1o16 * myoff + c1o16 * mzoff) + - // press_NEB * (c3o64 - c3o16 * mxoff - c1o16 * myoff + c3o16 * mzoff) + - // press_SWB * (c3o64 + c1o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + - // press_NWB * (c9o64 + c3o16 * mxoff - c3o16 * myoff + c9o16 * mzoff); - //drho = drho_NWT * (c27o64 + c9o16 * xoff - c9o16 * yoff - c9o16 * zoff) + - // drho_NET * (c9o64 - c9o16 * xoff - c3o16 * yoff - c3o16 * zoff) + - // drho_SWT * (c9o64 + c3o16 * xoff + c9o16 * yoff - c3o16 * zoff) + - // drho_SET * (c3o64 - c3o16 * xoff + c3o16 * yoff - c1o16 * zoff) + - // drho_SEB * (c1o64 - c1o16 * xoff + c1o16 * yoff + c1o16 * zoff) + - // drho_NEB * (c3o64 - c3o16 * xoff - c1o16 * yoff + c3o16 * zoff) + - // drho_SWB * (c3o64 + c1o16 * xoff + c3o16 * yoff + c3o16 * zoff) + - // drho_NWB * (c9o64 + c3o16 * xoff - c3o16 * yoff + c9o16 * zoff); - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; - vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz)/(c1o1 + press); - vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz)/(c1o1 + press); - vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz)/(c1o1 + press); - //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); - //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); - //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //two - // linear combinations - mxxPyyPzz = mfaaa; - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o; - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); - //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mfbbb = c0o1; - - //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); - //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); - //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); - //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyPyzz = c0o1; - - //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); - //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyMyzz = c0o1; - - //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); - //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); - //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzPyyz = c0o1; - - //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); - //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzMyyz = c0o1; - - //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); - //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); - //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyPxzz = c0o1; - - //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); - //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyMxzz = c0o1; - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //index - kzero= kb; - kw = kbw; - ks = kbs; - kb = neighborFZ[kb]; - ksw = kbsw; - kbw = neighborFZ[kbw]; - kbs = neighborFZ[kbs]; - kbsw = neighborFZ[kbsw]; - //////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - feF[kzero] = mfcbb; - fwF[kw] = mfabb; - fnF[kzero] = mfbcb; - fsF[ks] = mfbab; - ftF[kzero] = mfbbc; - fbF[kb] = mfbba; - fneF[kzero] = mfccb; - fswF[ksw] = mfaab; - fseF[ks] = mfcab; - fnwF[kw] = mfacb; - fteF[kzero] = mfcbc; - fbwF[kbw] = mfaba; - fbeF[kb] = mfcba; - ftwF[kw] = mfabc; - ftnF[kzero] = mfbcc; - fbsF[kbs] = mfbaa; - fbnF[kb] = mfbca; - ftsF[ks] = mfbac; - fzeroF[kzero] = mfbbb; - ftneF[kzero] = mfccc; - ftseF[ks] = mfcac; - fbneF[kb] = mfcca; - fbseF[kbs] = mfcaa; - ftnwF[kw] = mfacc; - ftswF[ksw] = mfaac; - fbnwF[kbw] = mfaca; - fbswF[kbsw] = mfaaa; - //////////////////////////////////////////////////////////////////////////////////// - - - //reset - mfcbb = c0o1; - mfabb = c0o1; - mfbcb = c0o1; - mfbab = c0o1; - mfbbc = c0o1; - mfbba = c0o1; - mfccb = c0o1; - mfaab = c0o1; - mfcab = c0o1; - mfacb = c0o1; - mfcbc = c0o1; - mfaba = c0o1; - mfcba = c0o1; - mfabc = c0o1; - mfbcc = c0o1; - mfbaa = c0o1; - mfbca = c0o1; - mfbac = c0o1; - mfbbb = c0o1; - mfccc = c0o1; - mfaac = c0o1; - mfcac = c0o1; - mfacc = c0o1; - mfcca = c0o1; - mfaaa = c0o1; - mfcaa = c0o1; - mfaca = c0o1; - - - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position NET 0.25f, 0.25f, 0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = c1o4; - y = c1o4; - z = c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho = c9o64*drho_NEB+c27o64*drho_NET+c3o64*drho_NWB+c9o64*drho_NWT+c3o64*drho_SEB+c9o64*drho_SET+c1o64*drho_SWB+c3o64*drho_SWT; - //press = press_NET * (c27o64 - c9o16 * mxoff - c9o16 * myoff - c9o16 * mzoff) + - // press_NWT * (c9o64 + c9o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + - // press_SET * (c9o64 - c3o16 * mxoff + c9o16 * myoff - c3o16 * mzoff) + - // press_SWT * (c3o64 + c3o16 * mxoff + c3o16 * myoff - c1o16 * mzoff) + - // press_SWB * (c1o64 + c1o16 * mxoff + c1o16 * myoff + c1o16 * mzoff) + - // press_NWB * (c3o64 + c3o16 * mxoff - c1o16 * myoff + c3o16 * mzoff) + - // press_SEB * (c3o64 - c1o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + - // press_NEB * (c9o64 - c3o16 * mxoff - c3o16 * myoff + c9o16 * mzoff); - //drho = drho_NET * (c27o64 - c9o16 * xoff - c9o16 * yoff - c9o16 * zoff) + - // drho_NWT * (c9o64 + c9o16 * xoff - c3o16 * yoff - c3o16 * zoff) + - // drho_SET * (c9o64 - c3o16 * xoff + c9o16 * yoff - c3o16 * zoff) + - // drho_SWT * (c3o64 + c3o16 * xoff + c3o16 * yoff - c1o16 * zoff) + - // drho_SWB * (c1o64 + c1o16 * xoff + c1o16 * yoff + c1o16 * zoff) + - // drho_NWB * (c3o64 + c3o16 * xoff - c1o16 * yoff + c3o16 * zoff) + - // drho_SEB * (c3o64 - c1o16 * xoff + c3o16 * yoff + c3o16 * zoff) + - // drho_NEB * (c9o64 - c3o16 * xoff - c3o16 * yoff + c9o16 * zoff); - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; - vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz)/(c1o1 + press); - vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz)/(c1o1 + press); - vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz)/(c1o1 + press); - //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); - //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); - //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //two - // linear combinations - mxxPyyPzz = mfaaa; - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o; - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); - //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mfbbb = c0o1; - - //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); - //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); - //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); - //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyPyzz = c0o1; - - //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); - //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyMyzz = c0o1; - - //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); - //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); - //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzPyyz = c0o1; - - //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); - //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzMyyz = c0o1; - - //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); - //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); - //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyPxzz = c0o1; - - //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); - //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyMxzz = c0o1; - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //index - kzero= kw; - kw = neighborFX[kw]; - ks = ksw; - kb = kbw; - ksw = neighborFX[ksw]; - kbw = neighborFX[kbw]; - kbs = kbsw; - kbsw = neighborFX[kbsw]; - //////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - feF[kzero] = mfcbb; - fwF[kw] = mfabb; - fnF[kzero] = mfbcb; - fsF[ks] = mfbab; - ftF[kzero] = mfbbc; - fbF[kb] = mfbba; - fneF[kzero] = mfccb; - fswF[ksw] = mfaab; - fseF[ks] = mfcab; - fnwF[kw] = mfacb; - fteF[kzero] = mfcbc; - fbwF[kbw] = mfaba; - fbeF[kb] = mfcba; - ftwF[kw] = mfabc; - ftnF[kzero] = mfbcc; - fbsF[kbs] = mfbaa; - fbnF[kb] = mfbca; - ftsF[ks] = mfbac; - fzeroF[kzero] = mfbbb; - ftneF[kzero] = mfccc; - ftseF[ks] = mfcac; - fbneF[kb] = mfcca; - fbseF[kbs] = mfcaa; - ftnwF[kw] = mfacc; - ftswF[ksw] = mfaac; - fbnwF[kbw] = mfaca; - fbswF[kbsw] = mfaaa; - //////////////////////////////////////////////////////////////////////////////////// - - - //reset - mfcbb = c0o1; - mfabb = c0o1; - mfbcb = c0o1; - mfbab = c0o1; - mfbbc = c0o1; - mfbba = c0o1; - mfccb = c0o1; - mfaab = c0o1; - mfcab = c0o1; - mfacb = c0o1; - mfcbc = c0o1; - mfaba = c0o1; - mfcba = c0o1; - mfabc = c0o1; - mfbcc = c0o1; - mfbaa = c0o1; - mfbca = c0o1; - mfbac = c0o1; - mfbbb = c0o1; - mfccc = c0o1; - mfaac = c0o1; - mfcac = c0o1; - mfacc = c0o1; - mfcca = c0o1; - mfaaa = c0o1; - mfcaa = c0o1; - mfaca = c0o1; - - - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position NEB 0.25f, 0.25f, -0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = c1o4; - y = c1o4; - z = -c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho = c27o64*drho_NEB+c9o64*drho_NET+c9o64*drho_NWB+c3o64*drho_NWT+c9o64*drho_SEB+c3o64*drho_SET+c3o64*drho_SWB+c1o64*drho_SWT; - //press = press_NET * (c9o64 - c3o16 * mxoff - c3o16 * myoff - c9o16 * mzoff) + - // press_NWT * (c3o64 + c3o16 * mxoff - c1o16 * myoff - c3o16 * mzoff) + - // press_SET * (c3o64 - c1o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + - // press_SWT * (c1o64 + c1o16 * mxoff + c1o16 * myoff - c1o16 * mzoff) + - // press_SWB * (c3o64 + c3o16 * mxoff + c3o16 * myoff + c1o16 * mzoff) + - // press_NWB * (c9o64 + c9o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + - // press_SEB * (c9o64 - c3o16 * mxoff + c9o16 * myoff + c3o16 * mzoff) + - // press_NEB * (c27o64 - c9o16 * mxoff - c9o16 * myoff + c9o16 * mzoff); - //drho = drho_NET * (c9o64 - c3o16 * xoff - c3o16 * yoff - c9o16 * zoff) + - // drho_NWT * (c3o64 + c3o16 * xoff - c1o16 * yoff - c3o16 * zoff) + - // drho_SET * (c3o64 - c1o16 * xoff + c3o16 * yoff - c3o16 * zoff) + - // drho_SWT * (c1o64 + c1o16 * xoff + c1o16 * yoff - c1o16 * zoff) + - // drho_SWB * (c3o64 + c3o16 * xoff + c3o16 * yoff + c1o16 * zoff) + - // drho_NWB * (c9o64 + c9o16 * xoff - c3o16 * yoff + c3o16 * zoff) + - // drho_SEB * (c9o64 - c3o16 * xoff + c9o16 * yoff + c3o16 * zoff) + - // drho_NEB * (c27o64 - c9o16 * xoff - c9o16 * yoff + c9o16 * zoff); - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; - vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz)/(c1o1 + press); - vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz)/(c1o1 + press); - vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz)/(c1o1 + press); - //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); - //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); - //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //two - // linear combinations - mxxPyyPzz = mfaaa; - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o; - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); - //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mfbbb = c0o1; - - //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); - //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); - //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); - //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyPyzz = c0o1; - - //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); - //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyMyzz = c0o1; - - //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); - //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); - //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzPyyz = c0o1; - - //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); - //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzMyyz = c0o1; - - //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); - //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); - //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyPxzz = c0o1; - - //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); - //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyMxzz = c0o1; - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //index - kb = kzero; - kbw = kw; - kbs = ks; - kbsw = ksw; - kzero= k0w; - kw = neighborFX[k0w]; - ks = k0sw; - ksw = neighborFX[k0sw]; - //////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - feF[kzero] = mfcbb; - fwF[kw] = mfabb; - fnF[kzero] = mfbcb; - fsF[ks] = mfbab; - ftF[kzero] = mfbbc; - fbF[kb] = mfbba; - fneF[kzero] = mfccb; - fswF[ksw] = mfaab; - fseF[ks] = mfcab; - fnwF[kw] = mfacb; - fteF[kzero] = mfcbc; - fbwF[kbw] = mfaba; - fbeF[kb] = mfcba; - ftwF[kw] = mfabc; - ftnF[kzero] = mfbcc; - fbsF[kbs] = mfbaa; - fbnF[kb] = mfbca; - ftsF[ks] = mfbac; - fzeroF[kzero] = mfbbb; - ftneF[kzero] = mfccc; - ftseF[ks] = mfcac; - fbneF[kb] = mfcca; - fbseF[kbs] = mfcaa; - ftnwF[kw] = mfacc; - ftswF[ksw] = mfaac; - fbnwF[kbw] = mfaca; - fbswF[kbsw] = mfaaa; - //////////////////////////////////////////////////////////////////////////////////// - } -} -////////////////////////////////////////////////////////////////////////// - - - - - + d0 = d0 + xoff * dx + yoff * dy + zoff * dz + xoff*yoff*dxy + xoff*zoff*dxz + yoff*zoff*dyz; + dx = dx + yoff * dxy + zoff * dxz; + dy = dy + xoff * dxy + zoff * dyz; + dz = dz + xoff * dxz + yoff * dyz; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // FIX /////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //AAAAAAAAAAAAHHHHHHHHHHHH!!!!! Mieser Test!!! + //b0= bx= by= bz= bxx= byy= bzz= bxy= bxz= byz= c0= cx= cy= cz= cxx= cyy= czz= cxy= cxz= cyz= axyz= bxyz= cxyz=zero; + //a0=zero; + //ax=zero; + //ay=zero; + //az=zero; + //axx=zero; + //ayy=zero; + //azz=zero; + //axy=zero; + //axz=zero; + //ayz=zero; + //b0=zero; + //bx=zero; + //by=zero; + //bz=zero; + //bxx=zero; + //byy=zero; + //bzz=zero; + //bxy=zero; + //bxz=zero; + //byz=zero; + //c0=zero; + //cx=zero; + //cy=zero; + //cz=zero; + //cxx=zero; + //cyy=zero; + //czz=zero; + //cxy=zero; + //cxz=zero; + //cyz=zero; + //axyz=zero; + //bxyz=zero; + //cxyz=zero; + //ax= ay= az= axx= ayy= azz= axy= axz= ayz= bx= by= bz= bxx= byy= bzz= bxy= bxz= byz= cx= cy= cz= cxx= cyy= czz= cxy= cxz= cyz= axyz= bxyz= cxyz=zero; + //a0=zero; + //b0=zero; + //c0=c1o100; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + real mfcbb = c0o1; + real mfabb = c0o1; + real mfbcb = c0o1; + real mfbab = c0o1; + real mfbbc = c0o1; + real mfbba = c0o1; + real mfccb = c0o1; + real mfaab = c0o1; + real mfcab = c0o1; + real mfacb = c0o1; + real mfcbc = c0o1; + real mfaba = c0o1; + real mfcba = c0o1; + real mfabc = c0o1; + real mfbcc = c0o1; + real mfbaa = c0o1; + real mfbca = c0o1; + real mfbac = c0o1; + real mfbbb = c0o1; + real mfccc = c0o1; + real mfaac = c0o1; + real mfcac = c0o1; + real mfacc = c0o1; + real mfcca = c0o1; + real mfaaa = c0o1; + real mfcaa = c0o1; + real mfaca = c0o1; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + real m0, m1, m2, vvx, vvy, vvz, vx2, vy2, vz2, oMdrho; + real mxxPyyPzz, mxxMyy, mxxMzz, mxxyPyzz, mxxyMyzz, mxxzPyyz, mxxzMyyz, mxyyPxzz, mxyyMxzz; + //real qudricLimit = c1o100;//ganz schlechte Idee -> muss global sein + //real O3 = two - o; + //real residu, residutmp; + //residutmp = zero;// /*-*/ c2o9 * (1./o - c1o2) * eps_new * eps_new; + real NeqOn = c1o1;//zero;//one; //.... one = on ..... zero = off + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position SWB -0.25f, -0.25f, -0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = -c1o4; + y = -c1o4; + z = -c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //real mxoff = -xoff; + //real myoff = -yoff; + //real mzoff = -zoff; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho = c3o64*drho_NEB+c1o64*drho_NET+c9o64*drho_NWB+c3o64*drho_NWT+c9o64*drho_SEB+c3o64*drho_SET+c27o64*drho_SWB+c9o64*drho_SWT; + //press = press_SWT * (c9o64 + c3o16 * mxoff + c3o16 * myoff - c9o16 * mzoff) + + // press_NWT * (c3o64 + c1o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + + // press_SET * (c3o64 - c3o16 * mxoff + c1o16 * myoff - c3o16 * mzoff) + + // press_NET * (c1o64 - c1o16 * mxoff - c1o16 * myoff - c1o16 * mzoff) + + // press_NEB * (c3o64 - c3o16 * mxoff - c3o16 * myoff + c1o16 * mzoff) + + // press_NWB * (c9o64 + c3o16 * mxoff - c9o16 * myoff + c3o16 * mzoff) + + // press_SEB * (c9o64 - c9o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + + // press_SWB * (c27o64 + c9o16 * mxoff + c9o16 * myoff + c9o16 * mzoff); + //drho = drho_SWT * (c9o64 + c3o16 * xoff + c3o16 * yoff - c9o16 * zoff) + + // drho_NWT * (c3o64 + c1o16 * xoff - c3o16 * yoff - c3o16 * zoff) + + // drho_SET * (c3o64 - c3o16 * xoff + c1o16 * yoff - c3o16 * zoff) + + // drho_NET * (c1o64 - c1o16 * xoff - c1o16 * yoff - c1o16 * zoff) + + // drho_NEB * (c3o64 - c3o16 * xoff - c3o16 * yoff + c1o16 * zoff) + + // drho_NWB * (c9o64 + c3o16 * xoff - c9o16 * yoff + c3o16 * zoff) + + // drho_SEB * (c9o64 - c9o16 * xoff + c3o16 * yoff + c3o16 * zoff) + + // drho_SWB * (c27o64 + c9o16 * xoff + c9o16 * yoff + c9o16 * zoff); + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; + vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz)/(c1o1 + press); + vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz)/(c1o1 + press); + vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz)/(c1o1 + press); + //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); + //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); + //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1; + //oMdrho = one - mfaaa; + + //2.f + // linear combinations + mxxPyyPzz = mfaaa; + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o; + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); + //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mfbbb = c0o1; + + //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); + //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); + //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); + //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyPyzz = c0o1; + + //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); + //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); + //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyMyzz = c0o1; + + //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); + //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); + //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzPyyz = c0o1; + + //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); + //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); + //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzMyyz = c0o1; + + //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); + //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; + //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); + //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyPxzz = c0o1; + + //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); + //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); + //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyMxzz = c0o1; + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////// + //index 0 + k0zero= posFSWB[k]; + k0w = neighborFX[k0zero]; + k0s = neighborFY[k0zero]; + k0b = neighborFZ[k0zero]; + k0sw = neighborFY[k0w]; + k0bw = neighborFZ[k0w]; + k0bs = neighborFZ[k0s]; + k0bsw = neighborFZ[k0sw]; + ////////////////////////////////////////////////////////////////////////// + //index + kzero= k0zero; + kw = k0w; + ks = k0s; + kb = k0b; + ksw = k0sw; + kbw = k0bw; + kbs = k0bs; + kbsw = k0bsw; + //////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + feF[kzero] = mfcbb; + fwF[kw] = mfabb; + fnF[kzero] = mfbcb; + fsF[ks] = mfbab; + ftF[kzero] = mfbbc; + fbF[kb] = mfbba; + fneF[kzero] = mfccb; + fswF[ksw] = mfaab; + fseF[ks] = mfcab; + fnwF[kw] = mfacb; + fteF[kzero] = mfcbc; + fbwF[kbw] = mfaba; + fbeF[kb] = mfcba; + ftwF[kw] = mfabc; + ftnF[kzero] = mfbcc; + fbsF[kbs] = mfbaa; + fbnF[kb] = mfbca; + ftsF[ks] = mfbac; + fzeroF[kzero] = mfbbb; + ftneF[kzero] = mfccc; + ftseF[ks] = mfcac; + fbneF[kb] = mfcca; + fbseF[kbs] = mfcaa; + ftnwF[kw] = mfacc; + ftswF[ksw] = mfaac; + fbnwF[kbw] = mfaca; + fbswF[kbsw] = mfaaa; + //////////////////////////////////////////////////////////////////////////////////// + + //reset + mfcbb = c0o1; + mfabb = c0o1; + mfbcb = c0o1; + mfbab = c0o1; + mfbbc = c0o1; + mfbba = c0o1; + mfccb = c0o1; + mfaab = c0o1; + mfcab = c0o1; + mfacb = c0o1; + mfcbc = c0o1; + mfaba = c0o1; + mfcba = c0o1; + mfabc = c0o1; + mfbcc = c0o1; + mfbaa = c0o1; + mfbca = c0o1; + mfbac = c0o1; + mfbbb = c0o1; + mfccc = c0o1; + mfaac = c0o1; + mfcac = c0o1; + mfacc = c0o1; + mfcca = c0o1; + mfaaa = c0o1; + mfcaa = c0o1; + mfaca = c0o1; + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position SWT -0.25f, -0.25f, 0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = -c1o4; + y = -c1o4; + z = c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho = c1o64*drho_NEB+c3o64*drho_NET+c3o64*drho_NWB+c9o64*drho_NWT+c3o64*drho_SEB+c9o64*drho_SET+c9o64*drho_SWB+c27o64*drho_SWT; + //press = press_SWT * (c27o64 + c9o16 * mxoff + c9o16 * myoff - c9o16 * mzoff) + + // press_NWT * (c9o64 + c3o16 * mxoff - c9o16 * myoff - c3o16 * mzoff) + + // press_SET * (c9o64 - c9o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + + // press_NET * (c3o64 - c3o16 * mxoff - c3o16 * myoff - c1o16 * mzoff) + + // press_NEB * (c1o64 - c1o16 * mxoff - c1o16 * myoff + c1o16 * mzoff) + + // press_NWB * (c3o64 + c1o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + + // press_SEB * (c3o64 - c3o16 * mxoff + c1o16 * myoff + c3o16 * mzoff) + + // press_SWB * (c9o64 + c3o16 * mxoff + c3o16 * myoff + c9o16 * mzoff); + //drho = drho_SWT * (c27o64 + c9o16 * xoff + c9o16 * yoff - c9o16 * zoff) + + // drho_NWT * (c9o64 + c3o16 * xoff - c9o16 * yoff - c3o16 * zoff) + + // drho_SET * (c9o64 - c9o16 * xoff + c3o16 * yoff - c3o16 * zoff) + + // drho_NET * (c3o64 - c3o16 * xoff - c3o16 * yoff - c1o16 * zoff) + + // drho_NEB * (c1o64 - c1o16 * xoff - c1o16 * yoff + c1o16 * zoff) + + // drho_NWB * (c3o64 + c1o16 * xoff - c3o16 * yoff + c3o16 * zoff) + + // drho_SEB * (c3o64 - c3o16 * xoff + c1o16 * yoff + c3o16 * zoff) + + // drho_SWB * (c9o64 + c3o16 * xoff + c3o16 * yoff + c9o16 * zoff); + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; + vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz)/(c1o1 + press); + vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz)/(c1o1 + press); + vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz)/(c1o1 + press); + //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); + //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); + //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1; + //oMdrho = one - mfaaa; + + //two + // linear combinations + mxxPyyPzz = mfaaa; + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o; + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); + //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mfbbb = c0o1; + + //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); + //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); + //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); + //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyPyzz = c0o1; + + //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); + //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); + //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyMyzz = c0o1; + + //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); + //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); + //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzPyyz = c0o1; + + //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); + //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); + //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzMyyz = c0o1; + + //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); + //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; + //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); + //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyPxzz = c0o1; + + //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); + //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); + //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyMxzz = c0o1; + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + //index + kzero= kb; + kw = kbw; + ks = kbs; + kb = neighborFZ[kb]; + ksw = kbsw; + kbw = neighborFZ[kbw]; + kbs = neighborFZ[kbs]; + kbsw = neighborFZ[kbsw]; + //////////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + feF[kzero] = mfcbb; + fwF[kw] = mfabb; + fnF[kzero] = mfbcb; + fsF[ks] = mfbab; + ftF[kzero] = mfbbc; + fbF[kb] = mfbba; + fneF[kzero] = mfccb; + fswF[ksw] = mfaab; + fseF[ks] = mfcab; + fnwF[kw] = mfacb; + fteF[kzero] = mfcbc; + fbwF[kbw] = mfaba; + fbeF[kb] = mfcba; + ftwF[kw] = mfabc; + ftnF[kzero] = mfbcc; + fbsF[kbs] = mfbaa; + fbnF[kb] = mfbca; + ftsF[ks] = mfbac; + fzeroF[kzero] = mfbbb; + ftneF[kzero] = mfccc; + ftseF[ks] = mfcac; + fbneF[kb] = mfcca; + fbseF[kbs] = mfcaa; + ftnwF[kw] = mfacc; + ftswF[ksw] = mfaac; + fbnwF[kbw] = mfaca; + fbswF[kbsw] = mfaaa; + //////////////////////////////////////////////////////////////////////////////////// + + + //reset + mfcbb = c0o1; + mfabb = c0o1; + mfbcb = c0o1; + mfbab = c0o1; + mfbbc = c0o1; + mfbba = c0o1; + mfccb = c0o1; + mfaab = c0o1; + mfcab = c0o1; + mfacb = c0o1; + mfcbc = c0o1; + mfaba = c0o1; + mfcba = c0o1; + mfabc = c0o1; + mfbcc = c0o1; + mfbaa = c0o1; + mfbca = c0o1; + mfbac = c0o1; + mfbbb = c0o1; + mfccc = c0o1; + mfaac = c0o1; + mfcac = c0o1; + mfacc = c0o1; + mfcca = c0o1; + mfaaa = c0o1; + mfcaa = c0o1; + mfaca = c0o1; + + + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position SET 0.25f, -0.25f, 0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = c1o4; + y = -c1o4; + z = c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho =c3o64*drho_NEB+c9o64*drho_NET+c1o64*drho_NWB+c3o64*drho_NWT+c9o64*drho_SEB+c27o64*drho_SET+c3o64*drho_SWB+c9o64*drho_SWT; + //press = press_SET * (c27o64 - c9o16 * mxoff + c9o16 * myoff - c9o16 * mzoff) + + // press_NET * (c9o64 - c3o16 * mxoff - c9o16 * myoff - c3o16 * mzoff) + + // press_SWT * (c9o64 + c9o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + + // press_NWT * (c3o64 + c3o16 * mxoff - c3o16 * myoff - c1o16 * mzoff) + + // press_NWB * (c1o64 + c1o16 * mxoff - c1o16 * myoff + c1o16 * mzoff) + + // press_NEB * (c3o64 - c1o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + + // press_SWB * (c3o64 + c3o16 * mxoff + c1o16 * myoff + c3o16 * mzoff) + + // press_SEB * (c9o64 - c3o16 * mxoff + c3o16 * myoff + c9o16 * mzoff); + //drho = drho_SET * (c27o64 - c9o16 * xoff + c9o16 * yoff - c9o16 * zoff) + + // drho_NET * (c9o64 - c3o16 * xoff - c9o16 * yoff - c3o16 * zoff) + + // drho_SWT * (c9o64 + c9o16 * xoff + c3o16 * yoff - c3o16 * zoff) + + // drho_NWT * (c3o64 + c3o16 * xoff - c3o16 * yoff - c1o16 * zoff) + + // drho_NWB * (c1o64 + c1o16 * xoff - c1o16 * yoff + c1o16 * zoff) + + // drho_NEB * (c3o64 - c1o16 * xoff - c3o16 * yoff + c3o16 * zoff) + + // drho_SWB * (c3o64 + c3o16 * xoff + c1o16 * yoff + c3o16 * zoff) + + // drho_SEB * (c9o64 - c3o16 * xoff + c3o16 * yoff + c9o16 * zoff); + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; + vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz)/(c1o1 + press); + vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz)/(c1o1 + press); + vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz)/(c1o1 + press); + //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); + //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); + //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1; + //oMdrho = one - mfaaa; + + //two + // linear combinations + mxxPyyPzz = mfaaa; + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o; + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); + //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mfbbb = c0o1; + + //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); + //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); + //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); + //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyPyzz = c0o1; + + //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); + //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); + //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyMyzz = c0o1; + + //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); + //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); + //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzPyyz = c0o1; + + //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); + //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); + //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzMyyz = c0o1; + + //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); + //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; + //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); + //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyPxzz = c0o1; + + //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); + //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); + //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyMxzz = c0o1; + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////// + //index + kzero= kw; + kw = neighborFX[kw]; + ks = ksw; + kb = kbw; + ksw = neighborFX[ksw]; + kbw = neighborFX[kbw]; + kbs = kbsw; + kbsw = neighborFX[kbsw]; + //////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + feF[kzero] = mfcbb; + fwF[kw] = mfabb; + fnF[kzero] = mfbcb; + fsF[ks] = mfbab; + ftF[kzero] = mfbbc; + fbF[kb] = mfbba; + fneF[kzero] = mfccb; + fswF[ksw] = mfaab; + fseF[ks] = mfcab; + fnwF[kw] = mfacb; + fteF[kzero] = mfcbc; + fbwF[kbw] = mfaba; + fbeF[kb] = mfcba; + ftwF[kw] = mfabc; + ftnF[kzero] = mfbcc; + fbsF[kbs] = mfbaa; + fbnF[kb] = mfbca; + ftsF[ks] = mfbac; + fzeroF[kzero] = mfbbb; + ftneF[kzero] = mfccc; + ftseF[ks] = mfcac; + fbneF[kb] = mfcca; + fbseF[kbs] = mfcaa; + ftnwF[kw] = mfacc; + ftswF[ksw] = mfaac; + fbnwF[kbw] = mfaca; + fbswF[kbsw] = mfaaa; + //////////////////////////////////////////////////////////////////////////////////// + + //reset + mfcbb = c0o1; + mfabb = c0o1; + mfbcb = c0o1; + mfbab = c0o1; + mfbbc = c0o1; + mfbba = c0o1; + mfccb = c0o1; + mfaab = c0o1; + mfcab = c0o1; + mfacb = c0o1; + mfcbc = c0o1; + mfaba = c0o1; + mfcba = c0o1; + mfabc = c0o1; + mfbcc = c0o1; + mfbaa = c0o1; + mfbca = c0o1; + mfbac = c0o1; + mfbbb = c0o1; + mfccc = c0o1; + mfaac = c0o1; + mfcac = c0o1; + mfacc = c0o1; + mfcca = c0o1; + mfaaa = c0o1; + mfcaa = c0o1; + mfaca = c0o1; + + + + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position SEB 0.25f, -0.25f, -0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = c1o4; + y = -c1o4; + z = -c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho =c9o64*drho_NEB+c3o64*drho_NET+c3o64*drho_NWB+c1o64*drho_NWT+c27o64*drho_SEB+c9o64*drho_SET+c9o64*drho_SWB+c3o64*drho_SWT; + //press = press_SET * (c9o64 - c3o16 * mxoff + c3o16 * myoff - c9o16 * mzoff) + + // press_NET * (c3o64 - c1o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + + // press_SWT * (c3o64 + c3o16 * mxoff + c1o16 * myoff - c3o16 * mzoff) + + // press_NWT * (c1o64 + c1o16 * mxoff - c1o16 * myoff - c1o16 * mzoff) + + // press_NWB * (c3o64 + c3o16 * mxoff - c3o16 * myoff + c1o16 * mzoff) + + // press_NEB * (c9o64 - c3o16 * mxoff - c9o16 * myoff + c3o16 * mzoff) + + // press_SWB * (c9o64 + c9o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + + // press_SEB * (c27o64 - c9o16 * mxoff + c9o16 * myoff + c9o16 * mzoff); + //drho = drho_SET * (c9o64 - c3o16 * xoff + c3o16 * yoff - c9o16 * zoff) + + // drho_NET * (c3o64 - c1o16 * xoff - c3o16 * yoff - c3o16 * zoff) + + // drho_SWT * (c3o64 + c3o16 * xoff + c1o16 * yoff - c3o16 * zoff) + + // drho_NWT * (c1o64 + c1o16 * xoff - c1o16 * yoff - c1o16 * zoff) + + // drho_NWB * (c3o64 + c3o16 * xoff - c3o16 * yoff + c1o16 * zoff) + + // drho_NEB * (c9o64 - c3o16 * xoff - c9o16 * yoff + c3o16 * zoff) + + // drho_SWB * (c9o64 + c9o16 * xoff + c3o16 * yoff + c3o16 * zoff) + + // drho_SEB * (c27o64 - c9o16 * xoff + c9o16 * yoff + c9o16 * zoff); + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; + vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz)/(c1o1 + press); + vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz)/(c1o1 + press); + vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz)/(c1o1 + press); + //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); + //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); + //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1; + //oMdrho = one - mfaaa; + + //two + // linear combinations + mxxPyyPzz = mfaaa; + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o; + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); + //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mfbbb = c0o1; + + //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); + //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); + //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); + //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyPyzz = c0o1; + + //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); + //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); + //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyMyzz = c0o1; + + //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); + //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); + //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzPyyz = c0o1; + + //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); + //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); + //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzMyyz = c0o1; + + //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); + //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; + //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); + //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyPxzz = c0o1; + + //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); + //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); + //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyMxzz = c0o1; + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////// + //index + kb = kzero; + kbw = kw; + kbs = ks; + kbsw = ksw; + kzero= k0w; + kw = neighborFX[k0w]; + ks = k0sw; + ksw = neighborFX[k0sw]; + //////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + feF[kzero] = mfcbb; + fwF[kw] = mfabb; + fnF[kzero] = mfbcb; + fsF[ks] = mfbab; + ftF[kzero] = mfbbc; + fbF[kb] = mfbba; + fneF[kzero] = mfccb; + fswF[ksw] = mfaab; + fseF[ks] = mfcab; + fnwF[kw] = mfacb; + fteF[kzero] = mfcbc; + fbwF[kbw] = mfaba; + fbeF[kb] = mfcba; + ftwF[kw] = mfabc; + ftnF[kzero] = mfbcc; + fbsF[kbs] = mfbaa; + fbnF[kb] = mfbca; + ftsF[ks] = mfbac; + fzeroF[kzero] = mfbbb; + ftneF[kzero] = mfccc; + ftseF[ks] = mfcac; + fbneF[kb] = mfcca; + fbseF[kbs] = mfcaa; + ftnwF[kw] = mfacc; + ftswF[ksw] = mfaac; + fbnwF[kbw] = mfaca; + fbswF[kbsw] = mfaaa; + //////////////////////////////////////////////////////////////////////////////////// + + + //reset + mfcbb = c0o1; + mfabb = c0o1; + mfbcb = c0o1; + mfbab = c0o1; + mfbbc = c0o1; + mfbba = c0o1; + mfccb = c0o1; + mfaab = c0o1; + mfcab = c0o1; + mfacb = c0o1; + mfcbc = c0o1; + mfaba = c0o1; + mfcba = c0o1; + mfabc = c0o1; + mfbcc = c0o1; + mfbaa = c0o1; + mfbca = c0o1; + mfbac = c0o1; + mfbbb = c0o1; + mfccc = c0o1; + mfaac = c0o1; + mfcac = c0o1; + mfacc = c0o1; + mfcca = c0o1; + mfaaa = c0o1; + mfcaa = c0o1; + mfaca = c0o1; + + + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position NWB -0.25f, 0.25f, -0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = -c1o4; + y = c1o4; + z = -c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho = c9o64*drho_NEB+c3o64*drho_NET+c27o64*drho_NWB+c9o64*drho_NWT+c3o64*drho_SEB+c1o64*drho_SET+c9o64*drho_SWB+c3o64*drho_SWT; + //press = press_NWT * (c9o64 + c3o16 * mxoff - c3o16 * myoff - c9o16 * mzoff) + + // press_NET * (c3o64 - c3o16 * mxoff - c1o16 * myoff - c3o16 * mzoff) + + // press_SWT * (c3o64 + c1o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + + // press_SET * (c1o64 - c1o16 * mxoff + c1o16 * myoff - c1o16 * mzoff) + + // press_SEB * (c3o64 - c3o16 * mxoff + c3o16 * myoff + c1o16 * mzoff) + + // press_NEB * (c9o64 - c9o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + + // press_SWB * (c9o64 + c3o16 * mxoff + c9o16 * myoff + c3o16 * mzoff) + + // press_NWB * (c27o64 + c9o16 * mxoff - c9o16 * myoff + c9o16 * mzoff); + //drho = drho_NWT * (c9o64 + c3o16 * xoff - c3o16 * yoff - c9o16 * zoff) + + // drho_NET * (c3o64 - c3o16 * xoff - c1o16 * yoff - c3o16 * zoff) + + // drho_SWT * (c3o64 + c1o16 * xoff + c3o16 * yoff - c3o16 * zoff) + + // drho_SET * (c1o64 - c1o16 * xoff + c1o16 * yoff - c1o16 * zoff) + + // drho_SEB * (c3o64 - c3o16 * xoff + c3o16 * yoff + c1o16 * zoff) + + // drho_NEB * (c9o64 - c9o16 * xoff - c3o16 * yoff + c3o16 * zoff) + + // drho_SWB * (c9o64 + c3o16 * xoff + c9o16 * yoff + c3o16 * zoff) + + // drho_NWB * (c27o64 + c9o16 * xoff - c9o16 * yoff + c9o16 * zoff); + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; + vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz)/(c1o1 + press); + vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz)/(c1o1 + press); + vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz)/(c1o1 + press); + //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); + //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); + //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1; + //oMdrho = one - mfaaa; + + //two + // linear combinations + mxxPyyPzz = mfaaa; + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o; + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); + //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mfbbb = c0o1; + + //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); + //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); + //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); + //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyPyzz = c0o1; + + //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); + //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); + //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyMyzz = c0o1; + + //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); + //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); + //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzPyyz = c0o1; + + //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); + //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); + //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzMyyz = c0o1; + + //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); + //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; + //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); + //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyPxzz = c0o1; + + //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); + //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); + //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyMxzz = c0o1; + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////// + //index 0 + k0zero= k0s; + k0w = k0sw; + k0s = neighborFY[k0s]; + k0b = k0bs; + k0sw = neighborFY[k0sw]; + k0bw = k0bsw; + k0bs = neighborFY[k0bs]; + k0bsw = neighborFY[k0bsw]; + ////////////////////////////////////////////////////////////////////////// + //index + kzero= k0zero; + kw = k0w; + ks = k0s; + kb = k0b; + ksw = k0sw; + kbw = k0bw; + kbs = k0bs; + kbsw = k0bsw; + //////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + feF[kzero] = mfcbb; + fwF[kw] = mfabb; + fnF[kzero] = mfbcb; + fsF[ks] = mfbab; + ftF[kzero] = mfbbc; + fbF[kb] = mfbba; + fneF[kzero] = mfccb; + fswF[ksw] = mfaab; + fseF[ks] = mfcab; + fnwF[kw] = mfacb; + fteF[kzero] = mfcbc; + fbwF[kbw] = mfaba; + fbeF[kb] = mfcba; + ftwF[kw] = mfabc; + ftnF[kzero] = mfbcc; + fbsF[kbs] = mfbaa; + fbnF[kb] = mfbca; + ftsF[ks] = mfbac; + fzeroF[kzero] = mfbbb; + ftneF[kzero] = mfccc; + ftseF[ks] = mfcac; + fbneF[kb] = mfcca; + fbseF[kbs] = mfcaa; + ftnwF[kw] = mfacc; + ftswF[ksw] = mfaac; + fbnwF[kbw] = mfaca; + fbswF[kbsw] = mfaaa; + //////////////////////////////////////////////////////////////////////////////////// + + + //reset + mfcbb = c0o1; + mfabb = c0o1; + mfbcb = c0o1; + mfbab = c0o1; + mfbbc = c0o1; + mfbba = c0o1; + mfccb = c0o1; + mfaab = c0o1; + mfcab = c0o1; + mfacb = c0o1; + mfcbc = c0o1; + mfaba = c0o1; + mfcba = c0o1; + mfabc = c0o1; + mfbcc = c0o1; + mfbaa = c0o1; + mfbca = c0o1; + mfbac = c0o1; + mfbbb = c0o1; + mfccc = c0o1; + mfaac = c0o1; + mfcac = c0o1; + mfacc = c0o1; + mfcca = c0o1; + mfaaa = c0o1; + mfcaa = c0o1; + mfaca = c0o1; + + + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position NWT -0.25f, 0.25f, 0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = -c1o4; + y = c1o4; + z = c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho = c3o64*drho_NEB+c9o64*drho_NET+c9o64*drho_NWB+c27o64*drho_NWT+c1o64*drho_SEB+c3o64*drho_SET+c3o64*drho_SWB+c9o64*drho_SWT; + //press = press_NWT * (c27o64 + c9o16 * mxoff - c9o16 * myoff - c9o16 * mzoff) + + // press_NET * (c9o64 - c9o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + + // press_SWT * (c9o64 + c3o16 * mxoff + c9o16 * myoff - c3o16 * mzoff) + + // press_SET * (c3o64 - c3o16 * mxoff + c3o16 * myoff - c1o16 * mzoff) + + // press_SEB * (c1o64 - c1o16 * mxoff + c1o16 * myoff + c1o16 * mzoff) + + // press_NEB * (c3o64 - c3o16 * mxoff - c1o16 * myoff + c3o16 * mzoff) + + // press_SWB * (c3o64 + c1o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + + // press_NWB * (c9o64 + c3o16 * mxoff - c3o16 * myoff + c9o16 * mzoff); + //drho = drho_NWT * (c27o64 + c9o16 * xoff - c9o16 * yoff - c9o16 * zoff) + + // drho_NET * (c9o64 - c9o16 * xoff - c3o16 * yoff - c3o16 * zoff) + + // drho_SWT * (c9o64 + c3o16 * xoff + c9o16 * yoff - c3o16 * zoff) + + // drho_SET * (c3o64 - c3o16 * xoff + c3o16 * yoff - c1o16 * zoff) + + // drho_SEB * (c1o64 - c1o16 * xoff + c1o16 * yoff + c1o16 * zoff) + + // drho_NEB * (c3o64 - c3o16 * xoff - c1o16 * yoff + c3o16 * zoff) + + // drho_SWB * (c3o64 + c1o16 * xoff + c3o16 * yoff + c3o16 * zoff) + + // drho_NWB * (c9o64 + c3o16 * xoff - c3o16 * yoff + c9o16 * zoff); + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; + vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz)/(c1o1 + press); + vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz)/(c1o1 + press); + vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz)/(c1o1 + press); + //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); + //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); + //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1; + //oMdrho = one - mfaaa; + + //two + // linear combinations + mxxPyyPzz = mfaaa; + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o; + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); + //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mfbbb = c0o1; + + //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); + //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); + //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); + //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyPyzz = c0o1; + + //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); + //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); + //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyMyzz = c0o1; + + //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); + //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); + //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzPyyz = c0o1; + + //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); + //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); + //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzMyyz = c0o1; + + //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); + //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; + //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); + //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyPxzz = c0o1; + + //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); + //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); + //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyMxzz = c0o1; + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////// + //index + kzero= kb; + kw = kbw; + ks = kbs; + kb = neighborFZ[kb]; + ksw = kbsw; + kbw = neighborFZ[kbw]; + kbs = neighborFZ[kbs]; + kbsw = neighborFZ[kbsw]; + //////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + feF[kzero] = mfcbb; + fwF[kw] = mfabb; + fnF[kzero] = mfbcb; + fsF[ks] = mfbab; + ftF[kzero] = mfbbc; + fbF[kb] = mfbba; + fneF[kzero] = mfccb; + fswF[ksw] = mfaab; + fseF[ks] = mfcab; + fnwF[kw] = mfacb; + fteF[kzero] = mfcbc; + fbwF[kbw] = mfaba; + fbeF[kb] = mfcba; + ftwF[kw] = mfabc; + ftnF[kzero] = mfbcc; + fbsF[kbs] = mfbaa; + fbnF[kb] = mfbca; + ftsF[ks] = mfbac; + fzeroF[kzero] = mfbbb; + ftneF[kzero] = mfccc; + ftseF[ks] = mfcac; + fbneF[kb] = mfcca; + fbseF[kbs] = mfcaa; + ftnwF[kw] = mfacc; + ftswF[ksw] = mfaac; + fbnwF[kbw] = mfaca; + fbswF[kbsw] = mfaaa; + //////////////////////////////////////////////////////////////////////////////////// + + + //reset + mfcbb = c0o1; + mfabb = c0o1; + mfbcb = c0o1; + mfbab = c0o1; + mfbbc = c0o1; + mfbba = c0o1; + mfccb = c0o1; + mfaab = c0o1; + mfcab = c0o1; + mfacb = c0o1; + mfcbc = c0o1; + mfaba = c0o1; + mfcba = c0o1; + mfabc = c0o1; + mfbcc = c0o1; + mfbaa = c0o1; + mfbca = c0o1; + mfbac = c0o1; + mfbbb = c0o1; + mfccc = c0o1; + mfaac = c0o1; + mfcac = c0o1; + mfacc = c0o1; + mfcca = c0o1; + mfaaa = c0o1; + mfcaa = c0o1; + mfaca = c0o1; + + + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position NET 0.25f, 0.25f, 0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = c1o4; + y = c1o4; + z = c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho = c9o64*drho_NEB+c27o64*drho_NET+c3o64*drho_NWB+c9o64*drho_NWT+c3o64*drho_SEB+c9o64*drho_SET+c1o64*drho_SWB+c3o64*drho_SWT; + //press = press_NET * (c27o64 - c9o16 * mxoff - c9o16 * myoff - c9o16 * mzoff) + + // press_NWT * (c9o64 + c9o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + + // press_SET * (c9o64 - c3o16 * mxoff + c9o16 * myoff - c3o16 * mzoff) + + // press_SWT * (c3o64 + c3o16 * mxoff + c3o16 * myoff - c1o16 * mzoff) + + // press_SWB * (c1o64 + c1o16 * mxoff + c1o16 * myoff + c1o16 * mzoff) + + // press_NWB * (c3o64 + c3o16 * mxoff - c1o16 * myoff + c3o16 * mzoff) + + // press_SEB * (c3o64 - c1o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + + // press_NEB * (c9o64 - c3o16 * mxoff - c3o16 * myoff + c9o16 * mzoff); + //drho = drho_NET * (c27o64 - c9o16 * xoff - c9o16 * yoff - c9o16 * zoff) + + // drho_NWT * (c9o64 + c9o16 * xoff - c3o16 * yoff - c3o16 * zoff) + + // drho_SET * (c9o64 - c3o16 * xoff + c9o16 * yoff - c3o16 * zoff) + + // drho_SWT * (c3o64 + c3o16 * xoff + c3o16 * yoff - c1o16 * zoff) + + // drho_SWB * (c1o64 + c1o16 * xoff + c1o16 * yoff + c1o16 * zoff) + + // drho_NWB * (c3o64 + c3o16 * xoff - c1o16 * yoff + c3o16 * zoff) + + // drho_SEB * (c3o64 - c1o16 * xoff + c3o16 * yoff + c3o16 * zoff) + + // drho_NEB * (c9o64 - c3o16 * xoff - c3o16 * yoff + c9o16 * zoff); + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; + vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz)/(c1o1 + press); + vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz)/(c1o1 + press); + vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz)/(c1o1 + press); + //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); + //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); + //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1; + //oMdrho = one - mfaaa; + + //two + // linear combinations + mxxPyyPzz = mfaaa; + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o; + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); + //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mfbbb = c0o1; + + //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); + //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); + //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); + //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyPyzz = c0o1; + + //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); + //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); + //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyMyzz = c0o1; + + //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); + //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); + //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzPyyz = c0o1; + + //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); + //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); + //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzMyyz = c0o1; + + //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); + //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; + //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); + //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyPxzz = c0o1; + + //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); + //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); + //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyMxzz = c0o1; + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////// + //index + kzero= kw; + kw = neighborFX[kw]; + ks = ksw; + kb = kbw; + ksw = neighborFX[ksw]; + kbw = neighborFX[kbw]; + kbs = kbsw; + kbsw = neighborFX[kbsw]; + //////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + feF[kzero] = mfcbb; + fwF[kw] = mfabb; + fnF[kzero] = mfbcb; + fsF[ks] = mfbab; + ftF[kzero] = mfbbc; + fbF[kb] = mfbba; + fneF[kzero] = mfccb; + fswF[ksw] = mfaab; + fseF[ks] = mfcab; + fnwF[kw] = mfacb; + fteF[kzero] = mfcbc; + fbwF[kbw] = mfaba; + fbeF[kb] = mfcba; + ftwF[kw] = mfabc; + ftnF[kzero] = mfbcc; + fbsF[kbs] = mfbaa; + fbnF[kb] = mfbca; + ftsF[ks] = mfbac; + fzeroF[kzero] = mfbbb; + ftneF[kzero] = mfccc; + ftseF[ks] = mfcac; + fbneF[kb] = mfcca; + fbseF[kbs] = mfcaa; + ftnwF[kw] = mfacc; + ftswF[ksw] = mfaac; + fbnwF[kbw] = mfaca; + fbswF[kbsw] = mfaaa; + //////////////////////////////////////////////////////////////////////////////////// + + + //reset + mfcbb = c0o1; + mfabb = c0o1; + mfbcb = c0o1; + mfbab = c0o1; + mfbbc = c0o1; + mfbba = c0o1; + mfccb = c0o1; + mfaab = c0o1; + mfcab = c0o1; + mfacb = c0o1; + mfcbc = c0o1; + mfaba = c0o1; + mfcba = c0o1; + mfabc = c0o1; + mfbcc = c0o1; + mfbaa = c0o1; + mfbca = c0o1; + mfbac = c0o1; + mfbbb = c0o1; + mfccc = c0o1; + mfaac = c0o1; + mfcac = c0o1; + mfacc = c0o1; + mfcca = c0o1; + mfaaa = c0o1; + mfcaa = c0o1; + mfaca = c0o1; + + + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position NEB 0.25f, 0.25f, -0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = c1o4; + y = c1o4; + z = -c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho = c27o64*drho_NEB+c9o64*drho_NET+c9o64*drho_NWB+c3o64*drho_NWT+c9o64*drho_SEB+c3o64*drho_SET+c3o64*drho_SWB+c1o64*drho_SWT; + //press = press_NET * (c9o64 - c3o16 * mxoff - c3o16 * myoff - c9o16 * mzoff) + + // press_NWT * (c3o64 + c3o16 * mxoff - c1o16 * myoff - c3o16 * mzoff) + + // press_SET * (c3o64 - c1o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + + // press_SWT * (c1o64 + c1o16 * mxoff + c1o16 * myoff - c1o16 * mzoff) + + // press_SWB * (c3o64 + c3o16 * mxoff + c3o16 * myoff + c1o16 * mzoff) + + // press_NWB * (c9o64 + c9o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + + // press_SEB * (c9o64 - c3o16 * mxoff + c9o16 * myoff + c3o16 * mzoff) + + // press_NEB * (c27o64 - c9o16 * mxoff - c9o16 * myoff + c9o16 * mzoff); + //drho = drho_NET * (c9o64 - c3o16 * xoff - c3o16 * yoff - c9o16 * zoff) + + // drho_NWT * (c3o64 + c3o16 * xoff - c1o16 * yoff - c3o16 * zoff) + + // drho_SET * (c3o64 - c1o16 * xoff + c3o16 * yoff - c3o16 * zoff) + + // drho_SWT * (c1o64 + c1o16 * xoff + c1o16 * yoff - c1o16 * zoff) + + // drho_SWB * (c3o64 + c3o16 * xoff + c3o16 * yoff + c1o16 * zoff) + + // drho_NWB * (c9o64 + c9o16 * xoff - c3o16 * yoff + c3o16 * zoff) + + // drho_SEB * (c9o64 - c3o16 * xoff + c9o16 * yoff + c3o16 * zoff) + + // drho_NEB * (c27o64 - c9o16 * xoff - c9o16 * yoff + c9o16 * zoff); + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; + vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz)/(c1o1 + press); + vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz)/(c1o1 + press); + vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz)/(c1o1 + press); + //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); + //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); + //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1; + //oMdrho = one - mfaaa; + + //two + // linear combinations + mxxPyyPzz = mfaaa; + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o; + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); + //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mfbbb = c0o1; + + //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); + //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); + //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); + //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyPyzz = c0o1; + + //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); + //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); + //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyMyzz = c0o1; + + //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); + //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); + //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzPyyz = c0o1; + + //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); + //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); + //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzMyyz = c0o1; + + //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); + //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; + //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); + //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyPxzz = c0o1; + + //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); + //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); + //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyMxzz = c0o1; + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////// + //index + kb = kzero; + kbw = kw; + kbs = ks; + kbsw = ksw; + kzero= k0w; + kw = neighborFX[k0w]; + ks = k0sw; + ksw = neighborFX[k0sw]; + //////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + feF[kzero] = mfcbb; + fwF[kw] = mfabb; + fnF[kzero] = mfbcb; + fsF[ks] = mfbab; + ftF[kzero] = mfbbc; + fbF[kb] = mfbba; + fneF[kzero] = mfccb; + fswF[ksw] = mfaab; + fseF[ks] = mfcab; + fnwF[kw] = mfacb; + fteF[kzero] = mfcbc; + fbwF[kbw] = mfaba; + fbeF[kb] = mfcba; + ftwF[kw] = mfabc; + ftnF[kzero] = mfbcc; + fbsF[kbs] = mfbaa; + fbnF[kb] = mfbca; + ftsF[ks] = mfbac; + fzeroF[kzero] = mfbbb; + ftneF[kzero] = mfccc; + ftseF[ks] = mfcac; + fbneF[kb] = mfcca; + fbseF[kbs] = mfcaa; + ftnwF[kw] = mfacc; + ftswF[ksw] = mfaac; + fbnwF[kbw] = mfaca; + fbswF[kbsw] = mfaaa; + //////////////////////////////////////////////////////////////////////////////////// + } +} +////////////////////////////////////////////////////////////////////////// + + + + + @@ -26362,27 +26362,27 @@ __global__ void scaleCF_staggered_time_comp_27( real* DC, ////////////////////////////////////////////////////////////////////////// __global__ void scaleCF_Fix_comp_27( real* DC, - real* DF, - unsigned int* neighborCX, - unsigned int* neighborCY, - unsigned int* neighborCZ, - unsigned int* neighborFX, - unsigned int* neighborFY, - unsigned int* neighborFZ, - unsigned long long numberOfLBnodesCoarse, - unsigned long long numberOfLBnodesFine, - bool isEvenTimestep, - unsigned int* posCSWB, - unsigned int* posFSWB, - unsigned int kCF, - real omCoarse, - real omFine, - real nu, - unsigned int nxC, - unsigned int nyC, - unsigned int nxF, - unsigned int nyF, - ICellNeigh offCF) + real* DF, + unsigned int* neighborCX, + unsigned int* neighborCY, + unsigned int* neighborCZ, + unsigned int* neighborFX, + unsigned int* neighborFY, + unsigned int* neighborFZ, + unsigned long long numberOfLBnodesCoarse, + unsigned long long numberOfLBnodesFine, + bool isEvenTimestep, + unsigned int* posCSWB, + unsigned int* posFSWB, + unsigned int kCF, + real omCoarse, + real omFine, + real nu, + unsigned int nxC, + unsigned int nyC, + unsigned int nxF, + unsigned int nyF, + ICellNeigh offCF) { real *feF, *fwF, *fnF, *fsF, *ftF, *fbF, *fneF, *fswF, *fseF, *fnwF, *fteF, *fbwF, *fbeF, *ftwF, *ftnF, *fbsF, *fbnF, *ftsF, *fzeroF, *ftneF, *ftswF, *ftseF, *ftnwF, *fbneF, *fbswF, *fbseF, *fbnwF; @@ -26590,71 +26590,71 @@ __global__ void scaleCF_Fix_comp_27( real* DC, drho_SWB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; vx1_SWB = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_SWB); - vx2_SWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SWB); - vx3_SWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SWB); + vx2_SWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SWB); + vx3_SWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SWB); - //nicht konditioniert - //kxyFromfcNEQ_SWB = -three*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (one + drho_SWB) - ((vx1_SWB*vx2_SWB))); + //nicht konditioniert + //kxyFromfcNEQ_SWB = -three*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (one + drho_SWB) - ((vx1_SWB*vx2_SWB))); //kyzFromfcNEQ_SWB = -three*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (one + drho_SWB) - ((vx2_SWB*vx3_SWB))); //kxzFromfcNEQ_SWB = -three*omegaS*((f_BW+f_BSW+f_BNW-f_TW-f_TSW-f_TNW-f_BE-f_BSE-f_BNE+f_TE+f_TSE+f_TNE ) / (one + drho_SWB) - ((vx1_SWB*vx3_SWB))); //kxxMyyFromfcNEQ_SWB = -c3o2*omegaS *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (one + drho_SWB) - ((vx1_SWB*vx1_SWB-vx2_SWB*vx2_SWB))); //kxxMzzFromfcNEQ_SWB = -c3o2*omegaS *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (one + drho_SWB) - ((vx1_SWB*vx1_SWB-vx3_SWB*vx3_SWB))); - kxyFromfcNEQ_SWB = -c3o1*omegaS*((((f_SW - f_SE) + (f_NE - f_NW)) + (((f_BSW - f_BSE) + (f_BNE - f_BNW)) + ((f_TSW - f_TSE) + (f_TNE - f_TNW)))) / (c1o1 + drho_SWB) - ((vx1_SWB*vx2_SWB))); - kyzFromfcNEQ_SWB = -c3o1*omegaS*((((f_BS - f_TS) + (f_TN - f_BN)) + (((f_BSE - f_TSE) + (f_BSW - f_BNW)) + ((f_TNE - f_BNE) + (f_TNW - f_TSW)))) / (c1o1 + drho_SWB) - ((vx2_SWB*vx3_SWB))); - kxzFromfcNEQ_SWB = -c3o1*omegaS*((((f_BW - f_BE) + (f_TE - f_TW)) + (((f_BSW - f_BSE) + (f_BNW - f_BNE)) + ((f_TSE - f_TSW) + (f_TNE - f_TNW)))) / (c1o1 + drho_SWB) - ((vx1_SWB*vx3_SWB))); - kxxMyyFromfcNEQ_SWB = -c3o2*omegaS *(((((f_BW - f_BS) + (f_TW - f_TS)) + ((f_BE - f_BN) + (f_TE - f_TN))) + ((f_W - f_S) + (f_E - f_N))) / (c1o1 + drho_SWB) - ((vx1_SWB*vx1_SWB - vx2_SWB*vx2_SWB))); - kxxMzzFromfcNEQ_SWB = -c3o2*omegaS *(((((f_SW - f_BS) + (f_NW - f_BN)) + ((f_SE - f_TS) + (f_NE - f_TN))) + ((f_W - f_B) + (f_E - f_T))) / (c1o1 + drho_SWB) - ((vx1_SWB*vx1_SWB - vx3_SWB*vx3_SWB))); - kyyMzzFromfcNEQ_SWB = -c3o2*omegaS *(((((f_SE - f_BE) + (f_SW - f_BW)) + ((f_NE - f_TE) + (f_NW - f_TW))) + ((f_S - f_B) + (f_N - f_T))) / (c1o1 + drho_SWB) - ((vx2_SWB*vx2_SWB - vx3_SWB*vx3_SWB))); - - ////konditioniert - //vvx = vx1_SWB; - //vvy = vx2_SWB; - //vvz = vx3_SWB; - //drho = drho_SWB; - //vx2 = vvx * vvx; - //vy2 = vvy * vvy; - //vz2 = vvz * vvz; - - - //f_E -= c2over27*drho + (drho + one)*(c2o9*(vvx + vx2) + (c1o6 + c1o2*(vvx + vx2))*vy2*vz2 - c1o9*(vy2 + vz2) - c1o3*(vvx + vx2)*(vy2 + vz2)); - //f_W -= c2over27*drho - (drho + one)*((vvx - vx2)*(c2o9 - c1o3*vy2) - (c1o6*vy2 + (vvx - vx2)*(c1o3 - c1o2*vy2))*vz2 + c1o9*(vy2 + vz2)); - //f_N -= c2over27*drho + (drho + one)*(c2o9*(vvy + vy2) + vx2*(c1o6 + c1o2*(vvy + vy2))*vz2 - c1o9*(vx2 + vz2) - c1o3*(vvy + vy2)*(vx2 + vz2)); - //f_S -= c2over27*drho - (drho + one)*((c2o9 - c1o3*vx2)*(vvy - vy2) - (c1o6*vx2 + (c1o3 - c1o2*vx2)*(vvy - vy2))*vz2 + c1o9*(vx2 + vz2)); - //f_T -= c2over27*drho + (drho + one)*(-(c1o9*(vx2 + vy2)) + c2o9*(vvz + vz2) - c1o3*(vx2 + vy2)*(vvz + vz2) + vx2*vy2*(c1o6 + c1o2*(vvz + vz2))); - //f_B -= c2over27*drho - (drho + one)*(c1o9*(vx2 + vy2) + c2o9*(vvz - vz2) - c1o3*(vx2 + vy2)*(vvz - vz2) - vx2*vy2*(c1o6 + c1o2*(-vvz + vz2))); - //f_NE -= c1over54*drho + (drho + one)*(c1o6*(vvx + vx2)*(vvy + vy2) + c1o18*(vvx + vvy + vx2 + vy2) - (c1o36 + c1o4*(vvx + vx2)*(vvy + vy2) + c1o12*(vvx + vvy + vx2 + vy2))*vz2); - //f_SW -= c1over54*drho + (drho + one)*(c1o6*(vvx - vx2)*(vvy - vy2) + c1o18*(-vvx - vvy + vx2 + vy2) - (c1o36 + c1o4*(vvx - vx2)*(vvy - vy2) + c1o12*(-vvx - vvy + vx2 + vy2))*vz2); - //f_SE -= c1over54*drho + (drho + one)*(-(c1o6*(vvx + vx2)*(vvy - vy2)) + c1o18*(vvx - vvy + vx2 + vy2) - (c1o36 - c1o4*(vvx + vx2)*(vvy - vy2) + c1o12*(vvx - vvy + vx2 + vy2))*vz2); - //f_NW -= c1over54*drho + (drho + one)*(-(c1o6*(vvx - vx2)*(vvy + vy2)) + c1o18*(-vvx + vvy + vx2 + vy2) - (c1o36 - c1o4*(vvx - vx2)*(vvy + vy2) + c1o12*(-vvx + vvy + vx2 + vy2))*vz2); - //f_TE -= c1over54*drho + (drho + one)*(c1o6*(vvx + vx2)*(vvz + vz2) + c1o18*(vvx + vvz + vx2 + vz2) - vy2*(c1o36 + c1o4*(vvx + vx2)*(vvz + vz2) + c1o12*(vvx + vvz + vx2 + vz2))); - //f_BW -= c1over54*drho - (drho + one)*(-(c1o6*(vvx - vx2)*(vvz - vz2)) + c1o18*(vvx + vvz - vx2 - vz2) + vy2*(c1o36 + c1o4*(vvx - vx2)*(vvz - vz2) + c1o12*(-vvx - vvz + vx2 + vz2))); - //f_BE -= c1over54*drho + (drho + one)*(-(c1o6*(vvx + vx2)*(vvz - vz2)) + c1o18*(vvx - vvz + vx2 + vz2) - vy2*(c1o36 - c1o4*(vvx + vx2)*(vvz - vz2) + c1o12*(vvx - vvz + vx2 + vz2))); - //f_TW -= c1over54*drho - (drho + one)*(c1o18*(vvx - vvz - vx2 - vz2) + c1o6*(vvx - vx2)*(vvz + vz2) + vy2*(c1o36 - c1o4*(vvx - vx2)*(vvz + vz2) + c1o12*(-vvx + vvz + vx2 + vz2))); - //f_TN -= c1over54*drho + (drho + one)*(c1o6*(vvy + vy2)*(vvz + vz2) + c1o18*(vvy + vvz + vy2 + vz2) - vx2*(c1o36 + c1o4*(vvy + vy2)*(vvz + vz2) + c1o12*(vvy + vvz + vy2 + vz2))); - //f_BS -= c1over54*drho - (drho + one)*(c1o18*(vvy - vvz - vy2 - vz2) + c1o6*(vvy - vy2)*(vvz + vz2) + vx2*(c1o36 - c1o4*(vvy - vy2)*(vvz + vz2) + c1o12*(-vvy + vvz + vy2 + vz2))); - //f_BN -= c1over54*drho + (drho + one)*(-(c1o6*(vvy + vy2)*(vvz - vz2)) + c1o18*(vvy - vvz + vy2 + vz2) - vx2*(c1o36 - c1o4*(vvy + vy2)*(vvz - vz2) + c1o12*(vvy - vvz + vy2 + vz2))); - //f_TS -= c1over54*drho - (drho + one)*(c1o18*(vvy - vvz - vy2 - vz2) + c1o6*(vvy - vy2)*(vvz + vz2) + vx2*(c1o36 - c1o4*(vvy - vy2)*(vvz + vz2) + c1o12*(-vvy + vvz + vy2 + vz2))); - //f_ZERO -= c8over27*drho - (drho + one)*(vx2*vy2*vz2 + c4o9*(vx2 + vy2 + vz2) - c2o3*(vx2*vy2 + (vx2 + vy2)*vz2)); - //f_TNE -= c1over216*drho + (drho + one)*(c1o8*(vvx + vx2)*(vvy + vy2)*(vvz + vz2) + c1o72*(vvx + vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 + vvy*(vvz + vx2 + vz2) + vvx*(vvy + vvz + vy2 + vz2))); - //f_TSW -= c1over216*drho + (drho + one)*(c1o8*(vvx - vx2)*(vvy - vy2)*(vvz + vz2) + c1o72*(-vvx - vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + vvx*(vvy - vvz - vy2 - vz2) + (vx2 + vy2)*vz2 - vvy*(vvz + vx2 + vz2))); - //f_TSE -= c1over216*drho + (drho + one)*(-(c1o8*(vvx + vx2)*(vvy - vy2)*(vvz + vz2)) + c1o72*(vvx - vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 - vvy*(vvz + vx2 + vz2) + vvx*(-vvy + vvz + vy2 + vz2))); - //f_TNW -= c1over216*drho - (drho + one)*(c1o72*(vvx - vvy - vvz - vx2 - vy2 - vz2) + c1o8*(vvx - vx2)*(vvy + vy2)*(vvz + vz2) - c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 + vvy*(vvz + vx2 + vz2) - vvx*(vvy + vvz + vy2 + vz2))); - //f_BNE -= c1over216*drho + (drho + one)*(-(c1o8*(vvx + vx2)*(vvy + vy2)*(vvz - vz2)) + c1o72*(vvx + vvy - vvz + vx2 + vy2 + vz2) + c1o24*(-(vvy*vvz) + vvy*vx2 - vvz*vx2 - vvz*vy2 + vx2*vy2 + (vvy + vx2 + vy2)*vz2 + vvx*(vvy - vvz + vy2 + vz2))); - //f_BSW -= c1over216*drho - (drho + one)*(c1o8*(vvx - vx2)*(vvy - vy2)*(vvz - vz2) + c1o72*(vvx + vvy + vvz - vx2 - vy2 - vz2) + c1o24*(vvz*vx2 + vvz*vy2 - vx2*vy2 - (vx2 + vy2)*vz2 + vvy*(-vvz + vx2 + vz2) + vvx*(-vvy - vvz + vy2 + vz2))); - //f_BSE -= c1over216*drho + (drho + one)*(c1o8*(vvx + vx2)*(vvy - vy2)*(vvz - vz2) + c1o72*(vvx - vvy - vvz + vx2 + vy2 + vz2) + c1o24*(-(vvx*vvy) - vvx*vvz + vvy*vvz - (vvy + vvz)*vx2 + (vvx - vvz + vx2)*vy2 + (vvx - vvy + vx2 + vy2)*vz2)); - //f_BNW -= c1over216*drho - (drho + one)*(-(c1o8*(vvx - vx2)*(vvy + vy2)*(vvz - vz2)) + c1o72*(vvx - vvy + vvz - vx2 - vy2 - vz2) + c1o24*(vvy*vvz - vvy*vx2 + vvz*vx2 + vvz*vy2 - vx2*vy2 - (vvy + vx2 + vy2)*vz2 + vvx*(vvy - vvz + vy2 + vz2))); - - //kxyFromfcNEQ_SWB = -three*omegaS*((((f_SW - f_SE) + (f_NE - f_NW)) + (((f_BSW - f_BSE) + (f_BNE - f_BNW)) + ((f_TSW - f_TSE) + (f_TNE - f_TNW)))) / (one + drho)); - //kyzFromfcNEQ_SWB = -three*omegaS*((((f_BS - f_TS) + (f_TN - f_BN)) + (((f_BSE - f_TSE) + (f_BSW - f_BNW)) + ((f_TNE - f_BNE) + (f_TNW - f_TSW)))) / (one + drho)); - //kxzFromfcNEQ_SWB = -three*omegaS*((((f_BW - f_BE) + (f_TE - f_TW)) + (((f_BSW - f_BSE) + (f_BNW - f_BNE)) + ((f_TSE - f_TSW) + (f_TNE - f_TNW)))) / (one + drho)); - //kxxMyyFromfcNEQ_SWB = -c3o2*omegaS *(((((f_BW - f_BS) + (f_TW - f_TS)) + ((f_BE - f_BN) + (f_TE - f_TN))) + ((f_W - f_S) + (f_E - f_N))) / (one + drho)); - //kxxMzzFromfcNEQ_SWB = -c3o2*omegaS *(((((f_SW - f_BS) + (f_NW - f_BN)) + ((f_SE - f_TS) + (f_NE - f_TN))) + ((f_W - f_B) + (f_E - f_T))) / (one + drho)); - //kyyMzzFromfcNEQ_SWB = -c3o2*omegaS *(((((f_SE - f_BE) + (f_SW - f_BW)) + ((f_NE - f_TE) + (f_NW - f_TW))) + ((f_S - f_B) + (f_N - f_T))) / (one + drho)); - - - - ////////////////////////////////////////////////////////////////////////// + kxyFromfcNEQ_SWB = -c3o1*omegaS*((((f_SW - f_SE) + (f_NE - f_NW)) + (((f_BSW - f_BSE) + (f_BNE - f_BNW)) + ((f_TSW - f_TSE) + (f_TNE - f_TNW)))) / (c1o1 + drho_SWB) - ((vx1_SWB*vx2_SWB))); + kyzFromfcNEQ_SWB = -c3o1*omegaS*((((f_BS - f_TS) + (f_TN - f_BN)) + (((f_BSE - f_TSE) + (f_BSW - f_BNW)) + ((f_TNE - f_BNE) + (f_TNW - f_TSW)))) / (c1o1 + drho_SWB) - ((vx2_SWB*vx3_SWB))); + kxzFromfcNEQ_SWB = -c3o1*omegaS*((((f_BW - f_BE) + (f_TE - f_TW)) + (((f_BSW - f_BSE) + (f_BNW - f_BNE)) + ((f_TSE - f_TSW) + (f_TNE - f_TNW)))) / (c1o1 + drho_SWB) - ((vx1_SWB*vx3_SWB))); + kxxMyyFromfcNEQ_SWB = -c3o2*omegaS *(((((f_BW - f_BS) + (f_TW - f_TS)) + ((f_BE - f_BN) + (f_TE - f_TN))) + ((f_W - f_S) + (f_E - f_N))) / (c1o1 + drho_SWB) - ((vx1_SWB*vx1_SWB - vx2_SWB*vx2_SWB))); + kxxMzzFromfcNEQ_SWB = -c3o2*omegaS *(((((f_SW - f_BS) + (f_NW - f_BN)) + ((f_SE - f_TS) + (f_NE - f_TN))) + ((f_W - f_B) + (f_E - f_T))) / (c1o1 + drho_SWB) - ((vx1_SWB*vx1_SWB - vx3_SWB*vx3_SWB))); + kyyMzzFromfcNEQ_SWB = -c3o2*omegaS *(((((f_SE - f_BE) + (f_SW - f_BW)) + ((f_NE - f_TE) + (f_NW - f_TW))) + ((f_S - f_B) + (f_N - f_T))) / (c1o1 + drho_SWB) - ((vx2_SWB*vx2_SWB - vx3_SWB*vx3_SWB))); + + ////konditioniert + //vvx = vx1_SWB; + //vvy = vx2_SWB; + //vvz = vx3_SWB; + //drho = drho_SWB; + //vx2 = vvx * vvx; + //vy2 = vvy * vvy; + //vz2 = vvz * vvz; + + + //f_E -= c2over27*drho + (drho + one)*(c2o9*(vvx + vx2) + (c1o6 + c1o2*(vvx + vx2))*vy2*vz2 - c1o9*(vy2 + vz2) - c1o3*(vvx + vx2)*(vy2 + vz2)); + //f_W -= c2over27*drho - (drho + one)*((vvx - vx2)*(c2o9 - c1o3*vy2) - (c1o6*vy2 + (vvx - vx2)*(c1o3 - c1o2*vy2))*vz2 + c1o9*(vy2 + vz2)); + //f_N -= c2over27*drho + (drho + one)*(c2o9*(vvy + vy2) + vx2*(c1o6 + c1o2*(vvy + vy2))*vz2 - c1o9*(vx2 + vz2) - c1o3*(vvy + vy2)*(vx2 + vz2)); + //f_S -= c2over27*drho - (drho + one)*((c2o9 - c1o3*vx2)*(vvy - vy2) - (c1o6*vx2 + (c1o3 - c1o2*vx2)*(vvy - vy2))*vz2 + c1o9*(vx2 + vz2)); + //f_T -= c2over27*drho + (drho + one)*(-(c1o9*(vx2 + vy2)) + c2o9*(vvz + vz2) - c1o3*(vx2 + vy2)*(vvz + vz2) + vx2*vy2*(c1o6 + c1o2*(vvz + vz2))); + //f_B -= c2over27*drho - (drho + one)*(c1o9*(vx2 + vy2) + c2o9*(vvz - vz2) - c1o3*(vx2 + vy2)*(vvz - vz2) - vx2*vy2*(c1o6 + c1o2*(-vvz + vz2))); + //f_NE -= c1over54*drho + (drho + one)*(c1o6*(vvx + vx2)*(vvy + vy2) + c1o18*(vvx + vvy + vx2 + vy2) - (c1o36 + c1o4*(vvx + vx2)*(vvy + vy2) + c1o12*(vvx + vvy + vx2 + vy2))*vz2); + //f_SW -= c1over54*drho + (drho + one)*(c1o6*(vvx - vx2)*(vvy - vy2) + c1o18*(-vvx - vvy + vx2 + vy2) - (c1o36 + c1o4*(vvx - vx2)*(vvy - vy2) + c1o12*(-vvx - vvy + vx2 + vy2))*vz2); + //f_SE -= c1over54*drho + (drho + one)*(-(c1o6*(vvx + vx2)*(vvy - vy2)) + c1o18*(vvx - vvy + vx2 + vy2) - (c1o36 - c1o4*(vvx + vx2)*(vvy - vy2) + c1o12*(vvx - vvy + vx2 + vy2))*vz2); + //f_NW -= c1over54*drho + (drho + one)*(-(c1o6*(vvx - vx2)*(vvy + vy2)) + c1o18*(-vvx + vvy + vx2 + vy2) - (c1o36 - c1o4*(vvx - vx2)*(vvy + vy2) + c1o12*(-vvx + vvy + vx2 + vy2))*vz2); + //f_TE -= c1over54*drho + (drho + one)*(c1o6*(vvx + vx2)*(vvz + vz2) + c1o18*(vvx + vvz + vx2 + vz2) - vy2*(c1o36 + c1o4*(vvx + vx2)*(vvz + vz2) + c1o12*(vvx + vvz + vx2 + vz2))); + //f_BW -= c1over54*drho - (drho + one)*(-(c1o6*(vvx - vx2)*(vvz - vz2)) + c1o18*(vvx + vvz - vx2 - vz2) + vy2*(c1o36 + c1o4*(vvx - vx2)*(vvz - vz2) + c1o12*(-vvx - vvz + vx2 + vz2))); + //f_BE -= c1over54*drho + (drho + one)*(-(c1o6*(vvx + vx2)*(vvz - vz2)) + c1o18*(vvx - vvz + vx2 + vz2) - vy2*(c1o36 - c1o4*(vvx + vx2)*(vvz - vz2) + c1o12*(vvx - vvz + vx2 + vz2))); + //f_TW -= c1over54*drho - (drho + one)*(c1o18*(vvx - vvz - vx2 - vz2) + c1o6*(vvx - vx2)*(vvz + vz2) + vy2*(c1o36 - c1o4*(vvx - vx2)*(vvz + vz2) + c1o12*(-vvx + vvz + vx2 + vz2))); + //f_TN -= c1over54*drho + (drho + one)*(c1o6*(vvy + vy2)*(vvz + vz2) + c1o18*(vvy + vvz + vy2 + vz2) - vx2*(c1o36 + c1o4*(vvy + vy2)*(vvz + vz2) + c1o12*(vvy + vvz + vy2 + vz2))); + //f_BS -= c1over54*drho - (drho + one)*(c1o18*(vvy - vvz - vy2 - vz2) + c1o6*(vvy - vy2)*(vvz + vz2) + vx2*(c1o36 - c1o4*(vvy - vy2)*(vvz + vz2) + c1o12*(-vvy + vvz + vy2 + vz2))); + //f_BN -= c1over54*drho + (drho + one)*(-(c1o6*(vvy + vy2)*(vvz - vz2)) + c1o18*(vvy - vvz + vy2 + vz2) - vx2*(c1o36 - c1o4*(vvy + vy2)*(vvz - vz2) + c1o12*(vvy - vvz + vy2 + vz2))); + //f_TS -= c1over54*drho - (drho + one)*(c1o18*(vvy - vvz - vy2 - vz2) + c1o6*(vvy - vy2)*(vvz + vz2) + vx2*(c1o36 - c1o4*(vvy - vy2)*(vvz + vz2) + c1o12*(-vvy + vvz + vy2 + vz2))); + //f_ZERO -= c8over27*drho - (drho + one)*(vx2*vy2*vz2 + c4o9*(vx2 + vy2 + vz2) - c2o3*(vx2*vy2 + (vx2 + vy2)*vz2)); + //f_TNE -= c1over216*drho + (drho + one)*(c1o8*(vvx + vx2)*(vvy + vy2)*(vvz + vz2) + c1o72*(vvx + vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 + vvy*(vvz + vx2 + vz2) + vvx*(vvy + vvz + vy2 + vz2))); + //f_TSW -= c1over216*drho + (drho + one)*(c1o8*(vvx - vx2)*(vvy - vy2)*(vvz + vz2) + c1o72*(-vvx - vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + vvx*(vvy - vvz - vy2 - vz2) + (vx2 + vy2)*vz2 - vvy*(vvz + vx2 + vz2))); + //f_TSE -= c1over216*drho + (drho + one)*(-(c1o8*(vvx + vx2)*(vvy - vy2)*(vvz + vz2)) + c1o72*(vvx - vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 - vvy*(vvz + vx2 + vz2) + vvx*(-vvy + vvz + vy2 + vz2))); + //f_TNW -= c1over216*drho - (drho + one)*(c1o72*(vvx - vvy - vvz - vx2 - vy2 - vz2) + c1o8*(vvx - vx2)*(vvy + vy2)*(vvz + vz2) - c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 + vvy*(vvz + vx2 + vz2) - vvx*(vvy + vvz + vy2 + vz2))); + //f_BNE -= c1over216*drho + (drho + one)*(-(c1o8*(vvx + vx2)*(vvy + vy2)*(vvz - vz2)) + c1o72*(vvx + vvy - vvz + vx2 + vy2 + vz2) + c1o24*(-(vvy*vvz) + vvy*vx2 - vvz*vx2 - vvz*vy2 + vx2*vy2 + (vvy + vx2 + vy2)*vz2 + vvx*(vvy - vvz + vy2 + vz2))); + //f_BSW -= c1over216*drho - (drho + one)*(c1o8*(vvx - vx2)*(vvy - vy2)*(vvz - vz2) + c1o72*(vvx + vvy + vvz - vx2 - vy2 - vz2) + c1o24*(vvz*vx2 + vvz*vy2 - vx2*vy2 - (vx2 + vy2)*vz2 + vvy*(-vvz + vx2 + vz2) + vvx*(-vvy - vvz + vy2 + vz2))); + //f_BSE -= c1over216*drho + (drho + one)*(c1o8*(vvx + vx2)*(vvy - vy2)*(vvz - vz2) + c1o72*(vvx - vvy - vvz + vx2 + vy2 + vz2) + c1o24*(-(vvx*vvy) - vvx*vvz + vvy*vvz - (vvy + vvz)*vx2 + (vvx - vvz + vx2)*vy2 + (vvx - vvy + vx2 + vy2)*vz2)); + //f_BNW -= c1over216*drho - (drho + one)*(-(c1o8*(vvx - vx2)*(vvy + vy2)*(vvz - vz2)) + c1o72*(vvx - vvy + vvz - vx2 - vy2 - vz2) + c1o24*(vvy*vvz - vvy*vx2 + vvz*vx2 + vvz*vy2 - vx2*vy2 - (vvy + vx2 + vy2)*vz2 + vvx*(vvy - vvz + vy2 + vz2))); + + //kxyFromfcNEQ_SWB = -three*omegaS*((((f_SW - f_SE) + (f_NE - f_NW)) + (((f_BSW - f_BSE) + (f_BNE - f_BNW)) + ((f_TSW - f_TSE) + (f_TNE - f_TNW)))) / (one + drho)); + //kyzFromfcNEQ_SWB = -three*omegaS*((((f_BS - f_TS) + (f_TN - f_BN)) + (((f_BSE - f_TSE) + (f_BSW - f_BNW)) + ((f_TNE - f_BNE) + (f_TNW - f_TSW)))) / (one + drho)); + //kxzFromfcNEQ_SWB = -three*omegaS*((((f_BW - f_BE) + (f_TE - f_TW)) + (((f_BSW - f_BSE) + (f_BNW - f_BNE)) + ((f_TSE - f_TSW) + (f_TNE - f_TNW)))) / (one + drho)); + //kxxMyyFromfcNEQ_SWB = -c3o2*omegaS *(((((f_BW - f_BS) + (f_TW - f_TS)) + ((f_BE - f_BN) + (f_TE - f_TN))) + ((f_W - f_S) + (f_E - f_N))) / (one + drho)); + //kxxMzzFromfcNEQ_SWB = -c3o2*omegaS *(((((f_SW - f_BS) + (f_NW - f_BN)) + ((f_SE - f_TS) + (f_NE - f_TN))) + ((f_W - f_B) + (f_E - f_T))) / (one + drho)); + //kyyMzzFromfcNEQ_SWB = -c3o2*omegaS *(((((f_SE - f_BE) + (f_SW - f_BW)) + ((f_NE - f_TE) + (f_NW - f_TW))) + ((f_S - f_B) + (f_N - f_T))) / (one + drho)); + + + + ////////////////////////////////////////////////////////////////////////// //SWT// ////////////////////////////////////////////////////////////////////////// //index @@ -26697,67 +26697,67 @@ __global__ void scaleCF_Fix_comp_27( real* DC, drho_SWT = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; vx1_SWT = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_SWT); - vx2_SWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SWT); - vx3_SWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SWT); + vx2_SWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SWT); + vx3_SWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SWT); - //nicht konditioniert - //kxyFromfcNEQ_SWT = -three*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (one + drho_SWT) - ((vx1_SWT*vx2_SWT))); + //nicht konditioniert + //kxyFromfcNEQ_SWT = -three*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (one + drho_SWT) - ((vx1_SWT*vx2_SWT))); //kyzFromfcNEQ_SWT = -three*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (one + drho_SWT) - ((vx2_SWT*vx3_SWT))); //kxzFromfcNEQ_SWT = -three*omegaS*((f_BW+f_BSW+f_BNW-f_TW-f_TSW-f_TNW-f_BE-f_BSE-f_BNE+f_TE+f_TSE+f_TNE ) / (one + drho_SWT) - ((vx1_SWT*vx3_SWT))); //kxxMyyFromfcNEQ_SWT = -c3o2*omegaS *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (one + drho_SWT) - ((vx1_SWT*vx1_SWT-vx2_SWT*vx2_SWT))); //kxxMzzFromfcNEQ_SWT = -c3o2*omegaS *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (one + drho_SWT) - ((vx1_SWT*vx1_SWT-vx3_SWT*vx3_SWT))); - kxyFromfcNEQ_SWT = -c3o1*omegaS*((((f_SW - f_SE) + (f_NE - f_NW)) + (((f_BSW - f_BSE) + (f_BNE - f_BNW)) + ((f_TSW - f_TSE) + (f_TNE - f_TNW)))) / (c1o1 + drho_SWT) - ((vx1_SWT*vx2_SWT))); - kyzFromfcNEQ_SWT = -c3o1*omegaS*((((f_BS - f_TS) + (f_TN - f_BN)) + (((f_BSE - f_TSE) + (f_BSW - f_BNW)) + ((f_TNE - f_BNE) + (f_TNW - f_TSW)))) / (c1o1 + drho_SWT) - ((vx2_SWT*vx3_SWT))); - kxzFromfcNEQ_SWT = -c3o1*omegaS*((((f_BW - f_BE) + (f_TE - f_TW)) + (((f_BSW - f_BSE) + (f_BNW - f_BNE)) + ((f_TSE - f_TSW) + (f_TNE - f_TNW)))) / (c1o1 + drho_SWT) - ((vx1_SWT*vx3_SWT))); - kxxMyyFromfcNEQ_SWT = -c3o2*omegaS *(((((f_BW - f_BS) + (f_TW - f_TS)) + ((f_BE - f_BN) + (f_TE - f_TN))) + ((f_W - f_S) + (f_E - f_N))) / (c1o1 + drho_SWT) - ((vx1_SWT*vx1_SWT - vx2_SWT*vx2_SWT))); - kxxMzzFromfcNEQ_SWT = -c3o2*omegaS *(((((f_SW - f_BS) + (f_NW - f_BN)) + ((f_SE - f_TS) + (f_NE - f_TN))) + ((f_W - f_B) + (f_E - f_T))) / (c1o1 + drho_SWT) - ((vx1_SWT*vx1_SWT - vx3_SWT*vx3_SWT))); - kyyMzzFromfcNEQ_SWT = -c3o2*omegaS *(((((f_SE - f_BE) + (f_SW - f_BW)) + ((f_NE - f_TE) + (f_NW - f_TW))) + ((f_S - f_B) + (f_N - f_T))) / (c1o1 + drho_SWT) - ((vx2_SWT*vx2_SWT - vx3_SWT*vx3_SWT))); - - ////konditioniert - //vvx = vx1_SWT; - //vvy = vx2_SWT; - //vvz = vx3_SWT; - //drho = drho_SWT; - //vx2 = vvx * vvx; - //vy2 = vvy * vvy; - //vz2 = vvz * vvz; - - - //f_E -= c2over27*drho + (drho + one)*(c2o9*(vvx + vx2) + (c1o6 + c1o2*(vvx + vx2))*vy2*vz2 - c1o9*(vy2 + vz2) - c1o3*(vvx + vx2)*(vy2 + vz2)); - //f_W -= c2over27*drho - (drho + one)*((vvx - vx2)*(c2o9 - c1o3*vy2) - (c1o6*vy2 + (vvx - vx2)*(c1o3 - c1o2*vy2))*vz2 + c1o9*(vy2 + vz2)); - //f_N -= c2over27*drho + (drho + one)*(c2o9*(vvy + vy2) + vx2*(c1o6 + c1o2*(vvy + vy2))*vz2 - c1o9*(vx2 + vz2) - c1o3*(vvy + vy2)*(vx2 + vz2)); - //f_S -= c2over27*drho - (drho + one)*((c2o9 - c1o3*vx2)*(vvy - vy2) - (c1o6*vx2 + (c1o3 - c1o2*vx2)*(vvy - vy2))*vz2 + c1o9*(vx2 + vz2)); - //f_T -= c2over27*drho + (drho + one)*(-(c1o9*(vx2 + vy2)) + c2o9*(vvz + vz2) - c1o3*(vx2 + vy2)*(vvz + vz2) + vx2*vy2*(c1o6 + c1o2*(vvz + vz2))); - //f_B -= c2over27*drho - (drho + one)*(c1o9*(vx2 + vy2) + c2o9*(vvz - vz2) - c1o3*(vx2 + vy2)*(vvz - vz2) - vx2*vy2*(c1o6 + c1o2*(-vvz + vz2))); - //f_NE -= c1over54*drho + (drho + one)*(c1o6*(vvx + vx2)*(vvy + vy2) + c1o18*(vvx + vvy + vx2 + vy2) - (c1o36 + c1o4*(vvx + vx2)*(vvy + vy2) + c1o12*(vvx + vvy + vx2 + vy2))*vz2); - //f_SW -= c1over54*drho + (drho + one)*(c1o6*(vvx - vx2)*(vvy - vy2) + c1o18*(-vvx - vvy + vx2 + vy2) - (c1o36 + c1o4*(vvx - vx2)*(vvy - vy2) + c1o12*(-vvx - vvy + vx2 + vy2))*vz2); - //f_SE -= c1over54*drho + (drho + one)*(-(c1o6*(vvx + vx2)*(vvy - vy2)) + c1o18*(vvx - vvy + vx2 + vy2) - (c1o36 - c1o4*(vvx + vx2)*(vvy - vy2) + c1o12*(vvx - vvy + vx2 + vy2))*vz2); - //f_NW -= c1over54*drho + (drho + one)*(-(c1o6*(vvx - vx2)*(vvy + vy2)) + c1o18*(-vvx + vvy + vx2 + vy2) - (c1o36 - c1o4*(vvx - vx2)*(vvy + vy2) + c1o12*(-vvx + vvy + vx2 + vy2))*vz2); - //f_TE -= c1over54*drho + (drho + one)*(c1o6*(vvx + vx2)*(vvz + vz2) + c1o18*(vvx + vvz + vx2 + vz2) - vy2*(c1o36 + c1o4*(vvx + vx2)*(vvz + vz2) + c1o12*(vvx + vvz + vx2 + vz2))); - //f_BW -= c1over54*drho - (drho + one)*(-(c1o6*(vvx - vx2)*(vvz - vz2)) + c1o18*(vvx + vvz - vx2 - vz2) + vy2*(c1o36 + c1o4*(vvx - vx2)*(vvz - vz2) + c1o12*(-vvx - vvz + vx2 + vz2))); - //f_BE -= c1over54*drho + (drho + one)*(-(c1o6*(vvx + vx2)*(vvz - vz2)) + c1o18*(vvx - vvz + vx2 + vz2) - vy2*(c1o36 - c1o4*(vvx + vx2)*(vvz - vz2) + c1o12*(vvx - vvz + vx2 + vz2))); - //f_TW -= c1over54*drho - (drho + one)*(c1o18*(vvx - vvz - vx2 - vz2) + c1o6*(vvx - vx2)*(vvz + vz2) + vy2*(c1o36 - c1o4*(vvx - vx2)*(vvz + vz2) + c1o12*(-vvx + vvz + vx2 + vz2))); - //f_TN -= c1over54*drho + (drho + one)*(c1o6*(vvy + vy2)*(vvz + vz2) + c1o18*(vvy + vvz + vy2 + vz2) - vx2*(c1o36 + c1o4*(vvy + vy2)*(vvz + vz2) + c1o12*(vvy + vvz + vy2 + vz2))); - //f_BS -= c1over54*drho - (drho + one)*(c1o18*(vvy - vvz - vy2 - vz2) + c1o6*(vvy - vy2)*(vvz + vz2) + vx2*(c1o36 - c1o4*(vvy - vy2)*(vvz + vz2) + c1o12*(-vvy + vvz + vy2 + vz2))); - //f_BN -= c1over54*drho + (drho + one)*(-(c1o6*(vvy + vy2)*(vvz - vz2)) + c1o18*(vvy - vvz + vy2 + vz2) - vx2*(c1o36 - c1o4*(vvy + vy2)*(vvz - vz2) + c1o12*(vvy - vvz + vy2 + vz2))); - //f_TS -= c1over54*drho - (drho + one)*(c1o18*(vvy - vvz - vy2 - vz2) + c1o6*(vvy - vy2)*(vvz + vz2) + vx2*(c1o36 - c1o4*(vvy - vy2)*(vvz + vz2) + c1o12*(-vvy + vvz + vy2 + vz2))); - //f_ZERO -= c8over27*drho - (drho + one)*(vx2*vy2*vz2 + c4o9*(vx2 + vy2 + vz2) - c2o3*(vx2*vy2 + (vx2 + vy2)*vz2)); - //f_TNE -= c1over216*drho + (drho + one)*(c1o8*(vvx + vx2)*(vvy + vy2)*(vvz + vz2) + c1o72*(vvx + vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 + vvy*(vvz + vx2 + vz2) + vvx*(vvy + vvz + vy2 + vz2))); - //f_TSW -= c1over216*drho + (drho + one)*(c1o8*(vvx - vx2)*(vvy - vy2)*(vvz + vz2) + c1o72*(-vvx - vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + vvx*(vvy - vvz - vy2 - vz2) + (vx2 + vy2)*vz2 - vvy*(vvz + vx2 + vz2))); - //f_TSE -= c1over216*drho + (drho + one)*(-(c1o8*(vvx + vx2)*(vvy - vy2)*(vvz + vz2)) + c1o72*(vvx - vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 - vvy*(vvz + vx2 + vz2) + vvx*(-vvy + vvz + vy2 + vz2))); - //f_TNW -= c1over216*drho - (drho + one)*(c1o72*(vvx - vvy - vvz - vx2 - vy2 - vz2) + c1o8*(vvx - vx2)*(vvy + vy2)*(vvz + vz2) - c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 + vvy*(vvz + vx2 + vz2) - vvx*(vvy + vvz + vy2 + vz2))); - //f_BNE -= c1over216*drho + (drho + one)*(-(c1o8*(vvx + vx2)*(vvy + vy2)*(vvz - vz2)) + c1o72*(vvx + vvy - vvz + vx2 + vy2 + vz2) + c1o24*(-(vvy*vvz) + vvy*vx2 - vvz*vx2 - vvz*vy2 + vx2*vy2 + (vvy + vx2 + vy2)*vz2 + vvx*(vvy - vvz + vy2 + vz2))); - //f_BSW -= c1over216*drho - (drho + one)*(c1o8*(vvx - vx2)*(vvy - vy2)*(vvz - vz2) + c1o72*(vvx + vvy + vvz - vx2 - vy2 - vz2) + c1o24*(vvz*vx2 + vvz*vy2 - vx2*vy2 - (vx2 + vy2)*vz2 + vvy*(-vvz + vx2 + vz2) + vvx*(-vvy - vvz + vy2 + vz2))); - //f_BSE -= c1over216*drho + (drho + one)*(c1o8*(vvx + vx2)*(vvy - vy2)*(vvz - vz2) + c1o72*(vvx - vvy - vvz + vx2 + vy2 + vz2) + c1o24*(-(vvx*vvy) - vvx*vvz + vvy*vvz - (vvy + vvz)*vx2 + (vvx - vvz + vx2)*vy2 + (vvx - vvy + vx2 + vy2)*vz2)); - //f_BNW -= c1over216*drho - (drho + one)*(-(c1o8*(vvx - vx2)*(vvy + vy2)*(vvz - vz2)) + c1o72*(vvx - vvy + vvz - vx2 - vy2 - vz2) + c1o24*(vvy*vvz - vvy*vx2 + vvz*vx2 + vvz*vy2 - vx2*vy2 - (vvy + vx2 + vy2)*vz2 + vvx*(vvy - vvz + vy2 + vz2))); - - //kxyFromfcNEQ_SWT = -three*omegaS*((((f_SW - f_SE) + (f_NE - f_NW)) + (((f_BSW - f_BSE) + (f_BNE - f_BNW)) + ((f_TSW - f_TSE) + (f_TNE - f_TNW)))) / (one + drho)); - //kyzFromfcNEQ_SWT = -three*omegaS*((((f_BS - f_TS) + (f_TN - f_BN)) + (((f_BSE - f_TSE) + (f_BSW - f_BNW)) + ((f_TNE - f_BNE) + (f_TNW - f_TSW)))) / (one + drho)); - //kxzFromfcNEQ_SWT = -three*omegaS*((((f_BW - f_BE) + (f_TE - f_TW)) + (((f_BSW - f_BSE) + (f_BNW - f_BNE)) + ((f_TSE - f_TSW) + (f_TNE - f_TNW)))) / (one + drho)); - //kxxMyyFromfcNEQ_SWT = -c3o2*omegaS *(((((f_BW - f_BS) + (f_TW - f_TS)) + ((f_BE - f_BN) + (f_TE - f_TN))) + ((f_W - f_S) + (f_E - f_N))) / (one + drho)); - //kxxMzzFromfcNEQ_SWT = -c3o2*omegaS *(((((f_SW - f_BS) + (f_NW - f_BN)) + ((f_SE - f_TS) + (f_NE - f_TN))) + ((f_W - f_B) + (f_E - f_T))) / (one + drho)); - //kyyMzzFromfcNEQ_SWT = -c3o2*omegaS *(((((f_SE - f_BE) + (f_SW - f_BW)) + ((f_NE - f_TE) + (f_NW - f_TW))) + ((f_S - f_B) + (f_N - f_T))) / (one + drho)); + kxyFromfcNEQ_SWT = -c3o1*omegaS*((((f_SW - f_SE) + (f_NE - f_NW)) + (((f_BSW - f_BSE) + (f_BNE - f_BNW)) + ((f_TSW - f_TSE) + (f_TNE - f_TNW)))) / (c1o1 + drho_SWT) - ((vx1_SWT*vx2_SWT))); + kyzFromfcNEQ_SWT = -c3o1*omegaS*((((f_BS - f_TS) + (f_TN - f_BN)) + (((f_BSE - f_TSE) + (f_BSW - f_BNW)) + ((f_TNE - f_BNE) + (f_TNW - f_TSW)))) / (c1o1 + drho_SWT) - ((vx2_SWT*vx3_SWT))); + kxzFromfcNEQ_SWT = -c3o1*omegaS*((((f_BW - f_BE) + (f_TE - f_TW)) + (((f_BSW - f_BSE) + (f_BNW - f_BNE)) + ((f_TSE - f_TSW) + (f_TNE - f_TNW)))) / (c1o1 + drho_SWT) - ((vx1_SWT*vx3_SWT))); + kxxMyyFromfcNEQ_SWT = -c3o2*omegaS *(((((f_BW - f_BS) + (f_TW - f_TS)) + ((f_BE - f_BN) + (f_TE - f_TN))) + ((f_W - f_S) + (f_E - f_N))) / (c1o1 + drho_SWT) - ((vx1_SWT*vx1_SWT - vx2_SWT*vx2_SWT))); + kxxMzzFromfcNEQ_SWT = -c3o2*omegaS *(((((f_SW - f_BS) + (f_NW - f_BN)) + ((f_SE - f_TS) + (f_NE - f_TN))) + ((f_W - f_B) + (f_E - f_T))) / (c1o1 + drho_SWT) - ((vx1_SWT*vx1_SWT - vx3_SWT*vx3_SWT))); + kyyMzzFromfcNEQ_SWT = -c3o2*omegaS *(((((f_SE - f_BE) + (f_SW - f_BW)) + ((f_NE - f_TE) + (f_NW - f_TW))) + ((f_S - f_B) + (f_N - f_T))) / (c1o1 + drho_SWT) - ((vx2_SWT*vx2_SWT - vx3_SWT*vx3_SWT))); + + ////konditioniert + //vvx = vx1_SWT; + //vvy = vx2_SWT; + //vvz = vx3_SWT; + //drho = drho_SWT; + //vx2 = vvx * vvx; + //vy2 = vvy * vvy; + //vz2 = vvz * vvz; + + + //f_E -= c2over27*drho + (drho + one)*(c2o9*(vvx + vx2) + (c1o6 + c1o2*(vvx + vx2))*vy2*vz2 - c1o9*(vy2 + vz2) - c1o3*(vvx + vx2)*(vy2 + vz2)); + //f_W -= c2over27*drho - (drho + one)*((vvx - vx2)*(c2o9 - c1o3*vy2) - (c1o6*vy2 + (vvx - vx2)*(c1o3 - c1o2*vy2))*vz2 + c1o9*(vy2 + vz2)); + //f_N -= c2over27*drho + (drho + one)*(c2o9*(vvy + vy2) + vx2*(c1o6 + c1o2*(vvy + vy2))*vz2 - c1o9*(vx2 + vz2) - c1o3*(vvy + vy2)*(vx2 + vz2)); + //f_S -= c2over27*drho - (drho + one)*((c2o9 - c1o3*vx2)*(vvy - vy2) - (c1o6*vx2 + (c1o3 - c1o2*vx2)*(vvy - vy2))*vz2 + c1o9*(vx2 + vz2)); + //f_T -= c2over27*drho + (drho + one)*(-(c1o9*(vx2 + vy2)) + c2o9*(vvz + vz2) - c1o3*(vx2 + vy2)*(vvz + vz2) + vx2*vy2*(c1o6 + c1o2*(vvz + vz2))); + //f_B -= c2over27*drho - (drho + one)*(c1o9*(vx2 + vy2) + c2o9*(vvz - vz2) - c1o3*(vx2 + vy2)*(vvz - vz2) - vx2*vy2*(c1o6 + c1o2*(-vvz + vz2))); + //f_NE -= c1over54*drho + (drho + one)*(c1o6*(vvx + vx2)*(vvy + vy2) + c1o18*(vvx + vvy + vx2 + vy2) - (c1o36 + c1o4*(vvx + vx2)*(vvy + vy2) + c1o12*(vvx + vvy + vx2 + vy2))*vz2); + //f_SW -= c1over54*drho + (drho + one)*(c1o6*(vvx - vx2)*(vvy - vy2) + c1o18*(-vvx - vvy + vx2 + vy2) - (c1o36 + c1o4*(vvx - vx2)*(vvy - vy2) + c1o12*(-vvx - vvy + vx2 + vy2))*vz2); + //f_SE -= c1over54*drho + (drho + one)*(-(c1o6*(vvx + vx2)*(vvy - vy2)) + c1o18*(vvx - vvy + vx2 + vy2) - (c1o36 - c1o4*(vvx + vx2)*(vvy - vy2) + c1o12*(vvx - vvy + vx2 + vy2))*vz2); + //f_NW -= c1over54*drho + (drho + one)*(-(c1o6*(vvx - vx2)*(vvy + vy2)) + c1o18*(-vvx + vvy + vx2 + vy2) - (c1o36 - c1o4*(vvx - vx2)*(vvy + vy2) + c1o12*(-vvx + vvy + vx2 + vy2))*vz2); + //f_TE -= c1over54*drho + (drho + one)*(c1o6*(vvx + vx2)*(vvz + vz2) + c1o18*(vvx + vvz + vx2 + vz2) - vy2*(c1o36 + c1o4*(vvx + vx2)*(vvz + vz2) + c1o12*(vvx + vvz + vx2 + vz2))); + //f_BW -= c1over54*drho - (drho + one)*(-(c1o6*(vvx - vx2)*(vvz - vz2)) + c1o18*(vvx + vvz - vx2 - vz2) + vy2*(c1o36 + c1o4*(vvx - vx2)*(vvz - vz2) + c1o12*(-vvx - vvz + vx2 + vz2))); + //f_BE -= c1over54*drho + (drho + one)*(-(c1o6*(vvx + vx2)*(vvz - vz2)) + c1o18*(vvx - vvz + vx2 + vz2) - vy2*(c1o36 - c1o4*(vvx + vx2)*(vvz - vz2) + c1o12*(vvx - vvz + vx2 + vz2))); + //f_TW -= c1over54*drho - (drho + one)*(c1o18*(vvx - vvz - vx2 - vz2) + c1o6*(vvx - vx2)*(vvz + vz2) + vy2*(c1o36 - c1o4*(vvx - vx2)*(vvz + vz2) + c1o12*(-vvx + vvz + vx2 + vz2))); + //f_TN -= c1over54*drho + (drho + one)*(c1o6*(vvy + vy2)*(vvz + vz2) + c1o18*(vvy + vvz + vy2 + vz2) - vx2*(c1o36 + c1o4*(vvy + vy2)*(vvz + vz2) + c1o12*(vvy + vvz + vy2 + vz2))); + //f_BS -= c1over54*drho - (drho + one)*(c1o18*(vvy - vvz - vy2 - vz2) + c1o6*(vvy - vy2)*(vvz + vz2) + vx2*(c1o36 - c1o4*(vvy - vy2)*(vvz + vz2) + c1o12*(-vvy + vvz + vy2 + vz2))); + //f_BN -= c1over54*drho + (drho + one)*(-(c1o6*(vvy + vy2)*(vvz - vz2)) + c1o18*(vvy - vvz + vy2 + vz2) - vx2*(c1o36 - c1o4*(vvy + vy2)*(vvz - vz2) + c1o12*(vvy - vvz + vy2 + vz2))); + //f_TS -= c1over54*drho - (drho + one)*(c1o18*(vvy - vvz - vy2 - vz2) + c1o6*(vvy - vy2)*(vvz + vz2) + vx2*(c1o36 - c1o4*(vvy - vy2)*(vvz + vz2) + c1o12*(-vvy + vvz + vy2 + vz2))); + //f_ZERO -= c8over27*drho - (drho + one)*(vx2*vy2*vz2 + c4o9*(vx2 + vy2 + vz2) - c2o3*(vx2*vy2 + (vx2 + vy2)*vz2)); + //f_TNE -= c1over216*drho + (drho + one)*(c1o8*(vvx + vx2)*(vvy + vy2)*(vvz + vz2) + c1o72*(vvx + vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 + vvy*(vvz + vx2 + vz2) + vvx*(vvy + vvz + vy2 + vz2))); + //f_TSW -= c1over216*drho + (drho + one)*(c1o8*(vvx - vx2)*(vvy - vy2)*(vvz + vz2) + c1o72*(-vvx - vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + vvx*(vvy - vvz - vy2 - vz2) + (vx2 + vy2)*vz2 - vvy*(vvz + vx2 + vz2))); + //f_TSE -= c1over216*drho + (drho + one)*(-(c1o8*(vvx + vx2)*(vvy - vy2)*(vvz + vz2)) + c1o72*(vvx - vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 - vvy*(vvz + vx2 + vz2) + vvx*(-vvy + vvz + vy2 + vz2))); + //f_TNW -= c1over216*drho - (drho + one)*(c1o72*(vvx - vvy - vvz - vx2 - vy2 - vz2) + c1o8*(vvx - vx2)*(vvy + vy2)*(vvz + vz2) - c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 + vvy*(vvz + vx2 + vz2) - vvx*(vvy + vvz + vy2 + vz2))); + //f_BNE -= c1over216*drho + (drho + one)*(-(c1o8*(vvx + vx2)*(vvy + vy2)*(vvz - vz2)) + c1o72*(vvx + vvy - vvz + vx2 + vy2 + vz2) + c1o24*(-(vvy*vvz) + vvy*vx2 - vvz*vx2 - vvz*vy2 + vx2*vy2 + (vvy + vx2 + vy2)*vz2 + vvx*(vvy - vvz + vy2 + vz2))); + //f_BSW -= c1over216*drho - (drho + one)*(c1o8*(vvx - vx2)*(vvy - vy2)*(vvz - vz2) + c1o72*(vvx + vvy + vvz - vx2 - vy2 - vz2) + c1o24*(vvz*vx2 + vvz*vy2 - vx2*vy2 - (vx2 + vy2)*vz2 + vvy*(-vvz + vx2 + vz2) + vvx*(-vvy - vvz + vy2 + vz2))); + //f_BSE -= c1over216*drho + (drho + one)*(c1o8*(vvx + vx2)*(vvy - vy2)*(vvz - vz2) + c1o72*(vvx - vvy - vvz + vx2 + vy2 + vz2) + c1o24*(-(vvx*vvy) - vvx*vvz + vvy*vvz - (vvy + vvz)*vx2 + (vvx - vvz + vx2)*vy2 + (vvx - vvy + vx2 + vy2)*vz2)); + //f_BNW -= c1over216*drho - (drho + one)*(-(c1o8*(vvx - vx2)*(vvy + vy2)*(vvz - vz2)) + c1o72*(vvx - vvy + vvz - vx2 - vy2 - vz2) + c1o24*(vvy*vvz - vvy*vx2 + vvz*vx2 + vvz*vy2 - vx2*vy2 - (vvy + vx2 + vy2)*vz2 + vvx*(vvy - vvz + vy2 + vz2))); + + //kxyFromfcNEQ_SWT = -three*omegaS*((((f_SW - f_SE) + (f_NE - f_NW)) + (((f_BSW - f_BSE) + (f_BNE - f_BNW)) + ((f_TSW - f_TSE) + (f_TNE - f_TNW)))) / (one + drho)); + //kyzFromfcNEQ_SWT = -three*omegaS*((((f_BS - f_TS) + (f_TN - f_BN)) + (((f_BSE - f_TSE) + (f_BSW - f_BNW)) + ((f_TNE - f_BNE) + (f_TNW - f_TSW)))) / (one + drho)); + //kxzFromfcNEQ_SWT = -three*omegaS*((((f_BW - f_BE) + (f_TE - f_TW)) + (((f_BSW - f_BSE) + (f_BNW - f_BNE)) + ((f_TSE - f_TSW) + (f_TNE - f_TNW)))) / (one + drho)); + //kxxMyyFromfcNEQ_SWT = -c3o2*omegaS *(((((f_BW - f_BS) + (f_TW - f_TS)) + ((f_BE - f_BN) + (f_TE - f_TN))) + ((f_W - f_S) + (f_E - f_N))) / (one + drho)); + //kxxMzzFromfcNEQ_SWT = -c3o2*omegaS *(((((f_SW - f_BS) + (f_NW - f_BN)) + ((f_SE - f_TS) + (f_NE - f_TN))) + ((f_W - f_B) + (f_E - f_T))) / (one + drho)); + //kyyMzzFromfcNEQ_SWT = -c3o2*omegaS *(((((f_SE - f_BE) + (f_SW - f_BW)) + ((f_NE - f_TE) + (f_NW - f_TW))) + ((f_S - f_B) + (f_N - f_T))) / (one + drho)); @@ -26805,72 +26805,72 @@ __global__ void scaleCF_Fix_comp_27( real* DC, drho_SET = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; vx1_SET = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_SET); - vx2_SET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SET); - vx3_SET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SET); + vx2_SET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SET); + vx3_SET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SET); - //nicht konditioniert - //kxyFromfcNEQ_SET = -three*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (one + drho_SET) - ((vx1_SET*vx2_SET))); + //nicht konditioniert + //kxyFromfcNEQ_SET = -three*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (one + drho_SET) - ((vx1_SET*vx2_SET))); //kyzFromfcNEQ_SET = -three*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (one + drho_SET) - ((vx2_SET*vx3_SET))); //kxzFromfcNEQ_SET = -three*omegaS*((f_BW+f_BSW+f_BNW-f_TW-f_TSW-f_TNW-f_BE-f_BSE-f_BNE+f_TE+f_TSE+f_TNE ) / (one + drho_SET) - ((vx1_SET*vx3_SET))); //kxxMyyFromfcNEQ_SET = -c3o2*omegaS *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (one + drho_SET) - ((vx1_SET*vx1_SET-vx2_SET*vx2_SET))); //kxxMzzFromfcNEQ_SET = -c3o2*omegaS *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (one + drho_SET) - ((vx1_SET*vx1_SET-vx3_SET*vx3_SET))); - kxyFromfcNEQ_SET = -c3o1*omegaS*((((f_SW - f_SE) + (f_NE - f_NW)) + (((f_BSW - f_BSE) + (f_BNE - f_BNW)) + ((f_TSW - f_TSE) + (f_TNE - f_TNW)))) / (c1o1 + drho_SET) - ((vx1_SET*vx2_SET))); - kyzFromfcNEQ_SET = -c3o1*omegaS*((((f_BS - f_TS) + (f_TN - f_BN)) + (((f_BSE - f_TSE) + (f_BSW - f_BNW)) + ((f_TNE - f_BNE) + (f_TNW - f_TSW)))) / (c1o1 + drho_SET) - ((vx2_SET*vx3_SET))); - kxzFromfcNEQ_SET = -c3o1*omegaS*((((f_BW - f_BE) + (f_TE - f_TW)) + (((f_BSW - f_BSE) + (f_BNW - f_BNE)) + ((f_TSE - f_TSW) + (f_TNE - f_TNW)))) / (c1o1 + drho_SET) - ((vx1_SET*vx3_SET))); - kxxMyyFromfcNEQ_SET = -c3o2*omegaS *(((((f_BW - f_BS) + (f_TW - f_TS)) + ((f_BE - f_BN) + (f_TE - f_TN))) + ((f_W - f_S) + (f_E - f_N))) / (c1o1 + drho_SET) - ((vx1_SET*vx1_SET - vx2_SET*vx2_SET))); - kxxMzzFromfcNEQ_SET = -c3o2*omegaS *(((((f_SW - f_BS) + (f_NW - f_BN)) + ((f_SE - f_TS) + (f_NE - f_TN))) + ((f_W - f_B) + (f_E - f_T))) / (c1o1 + drho_SET) - ((vx1_SET*vx1_SET - vx3_SET*vx3_SET))); - kyyMzzFromfcNEQ_SET = -c3o2*omegaS *(((((f_SE - f_BE) + (f_SW - f_BW)) + ((f_NE - f_TE) + (f_NW - f_TW))) + ((f_S - f_B) + (f_N - f_T))) / (c1o1 + drho_SET) - ((vx2_SET*vx2_SET - vx3_SET*vx3_SET))); - - ////konditioniert - //vvx = vx1_SET; - //vvy = vx2_SET; - //vvz = vx3_SET; - //drho = drho_SET; - //vx2 = vvx * vvx; - //vy2 = vvy * vvy; - //vz2 = vvz * vvz; - - - //f_E -= c2over27*drho + (drho + one)*(c2o9*(vvx + vx2) + (c1o6 + c1o2*(vvx + vx2))*vy2*vz2 - c1o9*(vy2 + vz2) - c1o3*(vvx + vx2)*(vy2 + vz2)); - //f_W -= c2over27*drho - (drho + one)*((vvx - vx2)*(c2o9 - c1o3*vy2) - (c1o6*vy2 + (vvx - vx2)*(c1o3 - c1o2*vy2))*vz2 + c1o9*(vy2 + vz2)); - //f_N -= c2over27*drho + (drho + one)*(c2o9*(vvy + vy2) + vx2*(c1o6 + c1o2*(vvy + vy2))*vz2 - c1o9*(vx2 + vz2) - c1o3*(vvy + vy2)*(vx2 + vz2)); - //f_S -= c2over27*drho - (drho + one)*((c2o9 - c1o3*vx2)*(vvy - vy2) - (c1o6*vx2 + (c1o3 - c1o2*vx2)*(vvy - vy2))*vz2 + c1o9*(vx2 + vz2)); - //f_T -= c2over27*drho + (drho + one)*(-(c1o9*(vx2 + vy2)) + c2o9*(vvz + vz2) - c1o3*(vx2 + vy2)*(vvz + vz2) + vx2*vy2*(c1o6 + c1o2*(vvz + vz2))); - //f_B -= c2over27*drho - (drho + one)*(c1o9*(vx2 + vy2) + c2o9*(vvz - vz2) - c1o3*(vx2 + vy2)*(vvz - vz2) - vx2*vy2*(c1o6 + c1o2*(-vvz + vz2))); - //f_NE -= c1over54*drho + (drho + one)*(c1o6*(vvx + vx2)*(vvy + vy2) + c1o18*(vvx + vvy + vx2 + vy2) - (c1o36 + c1o4*(vvx + vx2)*(vvy + vy2) + c1o12*(vvx + vvy + vx2 + vy2))*vz2); - //f_SW -= c1over54*drho + (drho + one)*(c1o6*(vvx - vx2)*(vvy - vy2) + c1o18*(-vvx - vvy + vx2 + vy2) - (c1o36 + c1o4*(vvx - vx2)*(vvy - vy2) + c1o12*(-vvx - vvy + vx2 + vy2))*vz2); - //f_SE -= c1over54*drho + (drho + one)*(-(c1o6*(vvx + vx2)*(vvy - vy2)) + c1o18*(vvx - vvy + vx2 + vy2) - (c1o36 - c1o4*(vvx + vx2)*(vvy - vy2) + c1o12*(vvx - vvy + vx2 + vy2))*vz2); - //f_NW -= c1over54*drho + (drho + one)*(-(c1o6*(vvx - vx2)*(vvy + vy2)) + c1o18*(-vvx + vvy + vx2 + vy2) - (c1o36 - c1o4*(vvx - vx2)*(vvy + vy2) + c1o12*(-vvx + vvy + vx2 + vy2))*vz2); - //f_TE -= c1over54*drho + (drho + one)*(c1o6*(vvx + vx2)*(vvz + vz2) + c1o18*(vvx + vvz + vx2 + vz2) - vy2*(c1o36 + c1o4*(vvx + vx2)*(vvz + vz2) + c1o12*(vvx + vvz + vx2 + vz2))); - //f_BW -= c1over54*drho - (drho + one)*(-(c1o6*(vvx - vx2)*(vvz - vz2)) + c1o18*(vvx + vvz - vx2 - vz2) + vy2*(c1o36 + c1o4*(vvx - vx2)*(vvz - vz2) + c1o12*(-vvx - vvz + vx2 + vz2))); - //f_BE -= c1over54*drho + (drho + one)*(-(c1o6*(vvx + vx2)*(vvz - vz2)) + c1o18*(vvx - vvz + vx2 + vz2) - vy2*(c1o36 - c1o4*(vvx + vx2)*(vvz - vz2) + c1o12*(vvx - vvz + vx2 + vz2))); - //f_TW -= c1over54*drho - (drho + one)*(c1o18*(vvx - vvz - vx2 - vz2) + c1o6*(vvx - vx2)*(vvz + vz2) + vy2*(c1o36 - c1o4*(vvx - vx2)*(vvz + vz2) + c1o12*(-vvx + vvz + vx2 + vz2))); - //f_TN -= c1over54*drho + (drho + one)*(c1o6*(vvy + vy2)*(vvz + vz2) + c1o18*(vvy + vvz + vy2 + vz2) - vx2*(c1o36 + c1o4*(vvy + vy2)*(vvz + vz2) + c1o12*(vvy + vvz + vy2 + vz2))); - //f_BS -= c1over54*drho - (drho + one)*(c1o18*(vvy - vvz - vy2 - vz2) + c1o6*(vvy - vy2)*(vvz + vz2) + vx2*(c1o36 - c1o4*(vvy - vy2)*(vvz + vz2) + c1o12*(-vvy + vvz + vy2 + vz2))); - //f_BN -= c1over54*drho + (drho + one)*(-(c1o6*(vvy + vy2)*(vvz - vz2)) + c1o18*(vvy - vvz + vy2 + vz2) - vx2*(c1o36 - c1o4*(vvy + vy2)*(vvz - vz2) + c1o12*(vvy - vvz + vy2 + vz2))); - //f_TS -= c1over54*drho - (drho + one)*(c1o18*(vvy - vvz - vy2 - vz2) + c1o6*(vvy - vy2)*(vvz + vz2) + vx2*(c1o36 - c1o4*(vvy - vy2)*(vvz + vz2) + c1o12*(-vvy + vvz + vy2 + vz2))); - //f_ZERO -= c8over27*drho - (drho + one)*(vx2*vy2*vz2 + c4o9*(vx2 + vy2 + vz2) - c2o3*(vx2*vy2 + (vx2 + vy2)*vz2)); - //f_TNE -= c1over216*drho + (drho + one)*(c1o8*(vvx + vx2)*(vvy + vy2)*(vvz + vz2) + c1o72*(vvx + vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 + vvy*(vvz + vx2 + vz2) + vvx*(vvy + vvz + vy2 + vz2))); - //f_TSW -= c1over216*drho + (drho + one)*(c1o8*(vvx - vx2)*(vvy - vy2)*(vvz + vz2) + c1o72*(-vvx - vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + vvx*(vvy - vvz - vy2 - vz2) + (vx2 + vy2)*vz2 - vvy*(vvz + vx2 + vz2))); - //f_TSE -= c1over216*drho + (drho + one)*(-(c1o8*(vvx + vx2)*(vvy - vy2)*(vvz + vz2)) + c1o72*(vvx - vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 - vvy*(vvz + vx2 + vz2) + vvx*(-vvy + vvz + vy2 + vz2))); - //f_TNW -= c1over216*drho - (drho + one)*(c1o72*(vvx - vvy - vvz - vx2 - vy2 - vz2) + c1o8*(vvx - vx2)*(vvy + vy2)*(vvz + vz2) - c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 + vvy*(vvz + vx2 + vz2) - vvx*(vvy + vvz + vy2 + vz2))); - //f_BNE -= c1over216*drho + (drho + one)*(-(c1o8*(vvx + vx2)*(vvy + vy2)*(vvz - vz2)) + c1o72*(vvx + vvy - vvz + vx2 + vy2 + vz2) + c1o24*(-(vvy*vvz) + vvy*vx2 - vvz*vx2 - vvz*vy2 + vx2*vy2 + (vvy + vx2 + vy2)*vz2 + vvx*(vvy - vvz + vy2 + vz2))); - //f_BSW -= c1over216*drho - (drho + one)*(c1o8*(vvx - vx2)*(vvy - vy2)*(vvz - vz2) + c1o72*(vvx + vvy + vvz - vx2 - vy2 - vz2) + c1o24*(vvz*vx2 + vvz*vy2 - vx2*vy2 - (vx2 + vy2)*vz2 + vvy*(-vvz + vx2 + vz2) + vvx*(-vvy - vvz + vy2 + vz2))); - //f_BSE -= c1over216*drho + (drho + one)*(c1o8*(vvx + vx2)*(vvy - vy2)*(vvz - vz2) + c1o72*(vvx - vvy - vvz + vx2 + vy2 + vz2) + c1o24*(-(vvx*vvy) - vvx*vvz + vvy*vvz - (vvy + vvz)*vx2 + (vvx - vvz + vx2)*vy2 + (vvx - vvy + vx2 + vy2)*vz2)); - //f_BNW -= c1over216*drho - (drho + one)*(-(c1o8*(vvx - vx2)*(vvy + vy2)*(vvz - vz2)) + c1o72*(vvx - vvy + vvz - vx2 - vy2 - vz2) + c1o24*(vvy*vvz - vvy*vx2 + vvz*vx2 + vvz*vy2 - vx2*vy2 - (vvy + vx2 + vy2)*vz2 + vvx*(vvy - vvz + vy2 + vz2))); - - //kxyFromfcNEQ_SET = -three*omegaS*((((f_SW - f_SE) + (f_NE - f_NW)) + (((f_BSW - f_BSE) + (f_BNE - f_BNW)) + ((f_TSW - f_TSE) + (f_TNE - f_TNW)))) / (one + drho)); - //kyzFromfcNEQ_SET = -three*omegaS*((((f_BS - f_TS) + (f_TN - f_BN)) + (((f_BSE - f_TSE) + (f_BSW - f_BNW)) + ((f_TNE - f_BNE) + (f_TNW - f_TSW)))) / (one + drho)); - //kxzFromfcNEQ_SET = -three*omegaS*((((f_BW - f_BE) + (f_TE - f_TW)) + (((f_BSW - f_BSE) + (f_BNW - f_BNE)) + ((f_TSE - f_TSW) + (f_TNE - f_TNW)))) / (one + drho)); - //kxxMyyFromfcNEQ_SET = -c3o2*omegaS *(((((f_BW - f_BS) + (f_TW - f_TS)) + ((f_BE - f_BN) + (f_TE - f_TN))) + ((f_W - f_S) + (f_E - f_N))) / (one + drho)); - //kxxMzzFromfcNEQ_SET = -c3o2*omegaS *(((((f_SW - f_BS) + (f_NW - f_BN)) + ((f_SE - f_TS) + (f_NE - f_TN))) + ((f_W - f_B) + (f_E - f_T))) / (one + drho)); - //kyyMzzFromfcNEQ_SET = -c3o2*omegaS *(((((f_SE - f_BE) + (f_SW - f_BW)) + ((f_NE - f_TE) + (f_NW - f_TW))) + ((f_S - f_B) + (f_N - f_T))) / (one + drho)); - - - - - ////////////////////////////////////////////////////////////////////////// + kxyFromfcNEQ_SET = -c3o1*omegaS*((((f_SW - f_SE) + (f_NE - f_NW)) + (((f_BSW - f_BSE) + (f_BNE - f_BNW)) + ((f_TSW - f_TSE) + (f_TNE - f_TNW)))) / (c1o1 + drho_SET) - ((vx1_SET*vx2_SET))); + kyzFromfcNEQ_SET = -c3o1*omegaS*((((f_BS - f_TS) + (f_TN - f_BN)) + (((f_BSE - f_TSE) + (f_BSW - f_BNW)) + ((f_TNE - f_BNE) + (f_TNW - f_TSW)))) / (c1o1 + drho_SET) - ((vx2_SET*vx3_SET))); + kxzFromfcNEQ_SET = -c3o1*omegaS*((((f_BW - f_BE) + (f_TE - f_TW)) + (((f_BSW - f_BSE) + (f_BNW - f_BNE)) + ((f_TSE - f_TSW) + (f_TNE - f_TNW)))) / (c1o1 + drho_SET) - ((vx1_SET*vx3_SET))); + kxxMyyFromfcNEQ_SET = -c3o2*omegaS *(((((f_BW - f_BS) + (f_TW - f_TS)) + ((f_BE - f_BN) + (f_TE - f_TN))) + ((f_W - f_S) + (f_E - f_N))) / (c1o1 + drho_SET) - ((vx1_SET*vx1_SET - vx2_SET*vx2_SET))); + kxxMzzFromfcNEQ_SET = -c3o2*omegaS *(((((f_SW - f_BS) + (f_NW - f_BN)) + ((f_SE - f_TS) + (f_NE - f_TN))) + ((f_W - f_B) + (f_E - f_T))) / (c1o1 + drho_SET) - ((vx1_SET*vx1_SET - vx3_SET*vx3_SET))); + kyyMzzFromfcNEQ_SET = -c3o2*omegaS *(((((f_SE - f_BE) + (f_SW - f_BW)) + ((f_NE - f_TE) + (f_NW - f_TW))) + ((f_S - f_B) + (f_N - f_T))) / (c1o1 + drho_SET) - ((vx2_SET*vx2_SET - vx3_SET*vx3_SET))); + + ////konditioniert + //vvx = vx1_SET; + //vvy = vx2_SET; + //vvz = vx3_SET; + //drho = drho_SET; + //vx2 = vvx * vvx; + //vy2 = vvy * vvy; + //vz2 = vvz * vvz; + + + //f_E -= c2over27*drho + (drho + one)*(c2o9*(vvx + vx2) + (c1o6 + c1o2*(vvx + vx2))*vy2*vz2 - c1o9*(vy2 + vz2) - c1o3*(vvx + vx2)*(vy2 + vz2)); + //f_W -= c2over27*drho - (drho + one)*((vvx - vx2)*(c2o9 - c1o3*vy2) - (c1o6*vy2 + (vvx - vx2)*(c1o3 - c1o2*vy2))*vz2 + c1o9*(vy2 + vz2)); + //f_N -= c2over27*drho + (drho + one)*(c2o9*(vvy + vy2) + vx2*(c1o6 + c1o2*(vvy + vy2))*vz2 - c1o9*(vx2 + vz2) - c1o3*(vvy + vy2)*(vx2 + vz2)); + //f_S -= c2over27*drho - (drho + one)*((c2o9 - c1o3*vx2)*(vvy - vy2) - (c1o6*vx2 + (c1o3 - c1o2*vx2)*(vvy - vy2))*vz2 + c1o9*(vx2 + vz2)); + //f_T -= c2over27*drho + (drho + one)*(-(c1o9*(vx2 + vy2)) + c2o9*(vvz + vz2) - c1o3*(vx2 + vy2)*(vvz + vz2) + vx2*vy2*(c1o6 + c1o2*(vvz + vz2))); + //f_B -= c2over27*drho - (drho + one)*(c1o9*(vx2 + vy2) + c2o9*(vvz - vz2) - c1o3*(vx2 + vy2)*(vvz - vz2) - vx2*vy2*(c1o6 + c1o2*(-vvz + vz2))); + //f_NE -= c1over54*drho + (drho + one)*(c1o6*(vvx + vx2)*(vvy + vy2) + c1o18*(vvx + vvy + vx2 + vy2) - (c1o36 + c1o4*(vvx + vx2)*(vvy + vy2) + c1o12*(vvx + vvy + vx2 + vy2))*vz2); + //f_SW -= c1over54*drho + (drho + one)*(c1o6*(vvx - vx2)*(vvy - vy2) + c1o18*(-vvx - vvy + vx2 + vy2) - (c1o36 + c1o4*(vvx - vx2)*(vvy - vy2) + c1o12*(-vvx - vvy + vx2 + vy2))*vz2); + //f_SE -= c1over54*drho + (drho + one)*(-(c1o6*(vvx + vx2)*(vvy - vy2)) + c1o18*(vvx - vvy + vx2 + vy2) - (c1o36 - c1o4*(vvx + vx2)*(vvy - vy2) + c1o12*(vvx - vvy + vx2 + vy2))*vz2); + //f_NW -= c1over54*drho + (drho + one)*(-(c1o6*(vvx - vx2)*(vvy + vy2)) + c1o18*(-vvx + vvy + vx2 + vy2) - (c1o36 - c1o4*(vvx - vx2)*(vvy + vy2) + c1o12*(-vvx + vvy + vx2 + vy2))*vz2); + //f_TE -= c1over54*drho + (drho + one)*(c1o6*(vvx + vx2)*(vvz + vz2) + c1o18*(vvx + vvz + vx2 + vz2) - vy2*(c1o36 + c1o4*(vvx + vx2)*(vvz + vz2) + c1o12*(vvx + vvz + vx2 + vz2))); + //f_BW -= c1over54*drho - (drho + one)*(-(c1o6*(vvx - vx2)*(vvz - vz2)) + c1o18*(vvx + vvz - vx2 - vz2) + vy2*(c1o36 + c1o4*(vvx - vx2)*(vvz - vz2) + c1o12*(-vvx - vvz + vx2 + vz2))); + //f_BE -= c1over54*drho + (drho + one)*(-(c1o6*(vvx + vx2)*(vvz - vz2)) + c1o18*(vvx - vvz + vx2 + vz2) - vy2*(c1o36 - c1o4*(vvx + vx2)*(vvz - vz2) + c1o12*(vvx - vvz + vx2 + vz2))); + //f_TW -= c1over54*drho - (drho + one)*(c1o18*(vvx - vvz - vx2 - vz2) + c1o6*(vvx - vx2)*(vvz + vz2) + vy2*(c1o36 - c1o4*(vvx - vx2)*(vvz + vz2) + c1o12*(-vvx + vvz + vx2 + vz2))); + //f_TN -= c1over54*drho + (drho + one)*(c1o6*(vvy + vy2)*(vvz + vz2) + c1o18*(vvy + vvz + vy2 + vz2) - vx2*(c1o36 + c1o4*(vvy + vy2)*(vvz + vz2) + c1o12*(vvy + vvz + vy2 + vz2))); + //f_BS -= c1over54*drho - (drho + one)*(c1o18*(vvy - vvz - vy2 - vz2) + c1o6*(vvy - vy2)*(vvz + vz2) + vx2*(c1o36 - c1o4*(vvy - vy2)*(vvz + vz2) + c1o12*(-vvy + vvz + vy2 + vz2))); + //f_BN -= c1over54*drho + (drho + one)*(-(c1o6*(vvy + vy2)*(vvz - vz2)) + c1o18*(vvy - vvz + vy2 + vz2) - vx2*(c1o36 - c1o4*(vvy + vy2)*(vvz - vz2) + c1o12*(vvy - vvz + vy2 + vz2))); + //f_TS -= c1over54*drho - (drho + one)*(c1o18*(vvy - vvz - vy2 - vz2) + c1o6*(vvy - vy2)*(vvz + vz2) + vx2*(c1o36 - c1o4*(vvy - vy2)*(vvz + vz2) + c1o12*(-vvy + vvz + vy2 + vz2))); + //f_ZERO -= c8over27*drho - (drho + one)*(vx2*vy2*vz2 + c4o9*(vx2 + vy2 + vz2) - c2o3*(vx2*vy2 + (vx2 + vy2)*vz2)); + //f_TNE -= c1over216*drho + (drho + one)*(c1o8*(vvx + vx2)*(vvy + vy2)*(vvz + vz2) + c1o72*(vvx + vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 + vvy*(vvz + vx2 + vz2) + vvx*(vvy + vvz + vy2 + vz2))); + //f_TSW -= c1over216*drho + (drho + one)*(c1o8*(vvx - vx2)*(vvy - vy2)*(vvz + vz2) + c1o72*(-vvx - vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + vvx*(vvy - vvz - vy2 - vz2) + (vx2 + vy2)*vz2 - vvy*(vvz + vx2 + vz2))); + //f_TSE -= c1over216*drho + (drho + one)*(-(c1o8*(vvx + vx2)*(vvy - vy2)*(vvz + vz2)) + c1o72*(vvx - vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 - vvy*(vvz + vx2 + vz2) + vvx*(-vvy + vvz + vy2 + vz2))); + //f_TNW -= c1over216*drho - (drho + one)*(c1o72*(vvx - vvy - vvz - vx2 - vy2 - vz2) + c1o8*(vvx - vx2)*(vvy + vy2)*(vvz + vz2) - c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 + vvy*(vvz + vx2 + vz2) - vvx*(vvy + vvz + vy2 + vz2))); + //f_BNE -= c1over216*drho + (drho + one)*(-(c1o8*(vvx + vx2)*(vvy + vy2)*(vvz - vz2)) + c1o72*(vvx + vvy - vvz + vx2 + vy2 + vz2) + c1o24*(-(vvy*vvz) + vvy*vx2 - vvz*vx2 - vvz*vy2 + vx2*vy2 + (vvy + vx2 + vy2)*vz2 + vvx*(vvy - vvz + vy2 + vz2))); + //f_BSW -= c1over216*drho - (drho + one)*(c1o8*(vvx - vx2)*(vvy - vy2)*(vvz - vz2) + c1o72*(vvx + vvy + vvz - vx2 - vy2 - vz2) + c1o24*(vvz*vx2 + vvz*vy2 - vx2*vy2 - (vx2 + vy2)*vz2 + vvy*(-vvz + vx2 + vz2) + vvx*(-vvy - vvz + vy2 + vz2))); + //f_BSE -= c1over216*drho + (drho + one)*(c1o8*(vvx + vx2)*(vvy - vy2)*(vvz - vz2) + c1o72*(vvx - vvy - vvz + vx2 + vy2 + vz2) + c1o24*(-(vvx*vvy) - vvx*vvz + vvy*vvz - (vvy + vvz)*vx2 + (vvx - vvz + vx2)*vy2 + (vvx - vvy + vx2 + vy2)*vz2)); + //f_BNW -= c1over216*drho - (drho + one)*(-(c1o8*(vvx - vx2)*(vvy + vy2)*(vvz - vz2)) + c1o72*(vvx - vvy + vvz - vx2 - vy2 - vz2) + c1o24*(vvy*vvz - vvy*vx2 + vvz*vx2 + vvz*vy2 - vx2*vy2 - (vvy + vx2 + vy2)*vz2 + vvx*(vvy - vvz + vy2 + vz2))); + + //kxyFromfcNEQ_SET = -three*omegaS*((((f_SW - f_SE) + (f_NE - f_NW)) + (((f_BSW - f_BSE) + (f_BNE - f_BNW)) + ((f_TSW - f_TSE) + (f_TNE - f_TNW)))) / (one + drho)); + //kyzFromfcNEQ_SET = -three*omegaS*((((f_BS - f_TS) + (f_TN - f_BN)) + (((f_BSE - f_TSE) + (f_BSW - f_BNW)) + ((f_TNE - f_BNE) + (f_TNW - f_TSW)))) / (one + drho)); + //kxzFromfcNEQ_SET = -three*omegaS*((((f_BW - f_BE) + (f_TE - f_TW)) + (((f_BSW - f_BSE) + (f_BNW - f_BNE)) + ((f_TSE - f_TSW) + (f_TNE - f_TNW)))) / (one + drho)); + //kxxMyyFromfcNEQ_SET = -c3o2*omegaS *(((((f_BW - f_BS) + (f_TW - f_TS)) + ((f_BE - f_BN) + (f_TE - f_TN))) + ((f_W - f_S) + (f_E - f_N))) / (one + drho)); + //kxxMzzFromfcNEQ_SET = -c3o2*omegaS *(((((f_SW - f_BS) + (f_NW - f_BN)) + ((f_SE - f_TS) + (f_NE - f_TN))) + ((f_W - f_B) + (f_E - f_T))) / (one + drho)); + //kyyMzzFromfcNEQ_SET = -c3o2*omegaS *(((((f_SE - f_BE) + (f_SW - f_BW)) + ((f_NE - f_TE) + (f_NW - f_TW))) + ((f_S - f_B) + (f_N - f_T))) / (one + drho)); + + + + + ////////////////////////////////////////////////////////////////////////// //SEB// ////////////////////////////////////////////////////////////////////////// //index @@ -26913,67 +26913,67 @@ __global__ void scaleCF_Fix_comp_27( real* DC, drho_SEB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; vx1_SEB = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_SEB); - vx2_SEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SEB); - vx3_SEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SEB); + vx2_SEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SEB); + vx3_SEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SEB); - //nicht konditioniert - //kxyFromfcNEQ_SEB = -three*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (one + drho_SEB) - ((vx1_SEB*vx2_SEB))); + //nicht konditioniert + //kxyFromfcNEQ_SEB = -three*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (one + drho_SEB) - ((vx1_SEB*vx2_SEB))); //kyzFromfcNEQ_SEB = -three*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (one + drho_SEB) - ((vx2_SEB*vx3_SEB))); //kxzFromfcNEQ_SEB = -three*omegaS*((f_BW+f_BSW+f_BNW-f_TW-f_TSW-f_TNW-f_BE-f_BSE-f_BNE+f_TE+f_TSE+f_TNE ) / (one + drho_SEB) - ((vx1_SEB*vx3_SEB))); //kxxMyyFromfcNEQ_SEB = -c3o2*omegaS *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (one + drho_SEB) - ((vx1_SEB*vx1_SEB-vx2_SEB*vx2_SEB))); //kxxMzzFromfcNEQ_SEB = -c3o2*omegaS *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (one + drho_SEB) - ((vx1_SEB*vx1_SEB-vx3_SEB*vx3_SEB))); - kxyFromfcNEQ_SEB = -c3o1*omegaS*((((f_SW - f_SE) + (f_NE - f_NW)) + (((f_BSW - f_BSE) + (f_BNE - f_BNW)) + ((f_TSW - f_TSE) + (f_TNE - f_TNW)))) / (c1o1 + drho_SEB) - ((vx1_SEB*vx2_SEB))); - kyzFromfcNEQ_SEB = -c3o1*omegaS*((((f_BS - f_TS) + (f_TN - f_BN)) + (((f_BSE - f_TSE) + (f_BSW - f_BNW)) + ((f_TNE - f_BNE) + (f_TNW - f_TSW)))) / (c1o1 + drho_SEB) - ((vx2_SEB*vx3_SEB))); - kxzFromfcNEQ_SEB = -c3o1*omegaS*((((f_BW - f_BE) + (f_TE - f_TW)) + (((f_BSW - f_BSE) + (f_BNW - f_BNE)) + ((f_TSE - f_TSW) + (f_TNE - f_TNW)))) / (c1o1 + drho_SEB) - ((vx1_SEB*vx3_SEB))); - kxxMyyFromfcNEQ_SEB = -c3o2*omegaS *(((((f_BW - f_BS) + (f_TW - f_TS)) + ((f_BE - f_BN) + (f_TE - f_TN))) + ((f_W - f_S) + (f_E - f_N))) / (c1o1 + drho_SEB) - ((vx1_SEB*vx1_SEB - vx2_SEB*vx2_SEB))); - kxxMzzFromfcNEQ_SEB = -c3o2*omegaS *(((((f_SW - f_BS) + (f_NW - f_BN)) + ((f_SE - f_TS) + (f_NE - f_TN))) + ((f_W - f_B) + (f_E - f_T))) / (c1o1 + drho_SEB) - ((vx1_SEB*vx1_SEB - vx3_SEB*vx3_SEB))); - kyyMzzFromfcNEQ_SEB = -c3o2*omegaS *(((((f_SE - f_BE) + (f_SW - f_BW)) + ((f_NE - f_TE) + (f_NW - f_TW))) + ((f_S - f_B) + (f_N - f_T))) / (c1o1 + drho_SEB) - ((vx2_SEB*vx2_SEB - vx3_SEB*vx3_SEB))); - - ////konditioniert - //vvx = vx1_SEB; - //vvy = vx2_SEB; - //vvz = vx3_SEB; - //drho = drho_SEB; - //vx2 = vvx * vvx; - //vy2 = vvy * vvy; - //vz2 = vvz * vvz; - - - //f_E -= c2over27*drho + (drho + one)*(c2o9*(vvx + vx2) + (c1o6 + c1o2*(vvx + vx2))*vy2*vz2 - c1o9*(vy2 + vz2) - c1o3*(vvx + vx2)*(vy2 + vz2)); - //f_W -= c2over27*drho - (drho + one)*((vvx - vx2)*(c2o9 - c1o3*vy2) - (c1o6*vy2 + (vvx - vx2)*(c1o3 - c1o2*vy2))*vz2 + c1o9*(vy2 + vz2)); - //f_N -= c2over27*drho + (drho + one)*(c2o9*(vvy + vy2) + vx2*(c1o6 + c1o2*(vvy + vy2))*vz2 - c1o9*(vx2 + vz2) - c1o3*(vvy + vy2)*(vx2 + vz2)); - //f_S -= c2over27*drho - (drho + one)*((c2o9 - c1o3*vx2)*(vvy - vy2) - (c1o6*vx2 + (c1o3 - c1o2*vx2)*(vvy - vy2))*vz2 + c1o9*(vx2 + vz2)); - //f_T -= c2over27*drho + (drho + one)*(-(c1o9*(vx2 + vy2)) + c2o9*(vvz + vz2) - c1o3*(vx2 + vy2)*(vvz + vz2) + vx2*vy2*(c1o6 + c1o2*(vvz + vz2))); - //f_B -= c2over27*drho - (drho + one)*(c1o9*(vx2 + vy2) + c2o9*(vvz - vz2) - c1o3*(vx2 + vy2)*(vvz - vz2) - vx2*vy2*(c1o6 + c1o2*(-vvz + vz2))); - //f_NE -= c1over54*drho + (drho + one)*(c1o6*(vvx + vx2)*(vvy + vy2) + c1o18*(vvx + vvy + vx2 + vy2) - (c1o36 + c1o4*(vvx + vx2)*(vvy + vy2) + c1o12*(vvx + vvy + vx2 + vy2))*vz2); - //f_SW -= c1over54*drho + (drho + one)*(c1o6*(vvx - vx2)*(vvy - vy2) + c1o18*(-vvx - vvy + vx2 + vy2) - (c1o36 + c1o4*(vvx - vx2)*(vvy - vy2) + c1o12*(-vvx - vvy + vx2 + vy2))*vz2); - //f_SE -= c1over54*drho + (drho + one)*(-(c1o6*(vvx + vx2)*(vvy - vy2)) + c1o18*(vvx - vvy + vx2 + vy2) - (c1o36 - c1o4*(vvx + vx2)*(vvy - vy2) + c1o12*(vvx - vvy + vx2 + vy2))*vz2); - //f_NW -= c1over54*drho + (drho + one)*(-(c1o6*(vvx - vx2)*(vvy + vy2)) + c1o18*(-vvx + vvy + vx2 + vy2) - (c1o36 - c1o4*(vvx - vx2)*(vvy + vy2) + c1o12*(-vvx + vvy + vx2 + vy2))*vz2); - //f_TE -= c1over54*drho + (drho + one)*(c1o6*(vvx + vx2)*(vvz + vz2) + c1o18*(vvx + vvz + vx2 + vz2) - vy2*(c1o36 + c1o4*(vvx + vx2)*(vvz + vz2) + c1o12*(vvx + vvz + vx2 + vz2))); - //f_BW -= c1over54*drho - (drho + one)*(-(c1o6*(vvx - vx2)*(vvz - vz2)) + c1o18*(vvx + vvz - vx2 - vz2) + vy2*(c1o36 + c1o4*(vvx - vx2)*(vvz - vz2) + c1o12*(-vvx - vvz + vx2 + vz2))); - //f_BE -= c1over54*drho + (drho + one)*(-(c1o6*(vvx + vx2)*(vvz - vz2)) + c1o18*(vvx - vvz + vx2 + vz2) - vy2*(c1o36 - c1o4*(vvx + vx2)*(vvz - vz2) + c1o12*(vvx - vvz + vx2 + vz2))); - //f_TW -= c1over54*drho - (drho + one)*(c1o18*(vvx - vvz - vx2 - vz2) + c1o6*(vvx - vx2)*(vvz + vz2) + vy2*(c1o36 - c1o4*(vvx - vx2)*(vvz + vz2) + c1o12*(-vvx + vvz + vx2 + vz2))); - //f_TN -= c1over54*drho + (drho + one)*(c1o6*(vvy + vy2)*(vvz + vz2) + c1o18*(vvy + vvz + vy2 + vz2) - vx2*(c1o36 + c1o4*(vvy + vy2)*(vvz + vz2) + c1o12*(vvy + vvz + vy2 + vz2))); - //f_BS -= c1over54*drho - (drho + one)*(c1o18*(vvy - vvz - vy2 - vz2) + c1o6*(vvy - vy2)*(vvz + vz2) + vx2*(c1o36 - c1o4*(vvy - vy2)*(vvz + vz2) + c1o12*(-vvy + vvz + vy2 + vz2))); - //f_BN -= c1over54*drho + (drho + one)*(-(c1o6*(vvy + vy2)*(vvz - vz2)) + c1o18*(vvy - vvz + vy2 + vz2) - vx2*(c1o36 - c1o4*(vvy + vy2)*(vvz - vz2) + c1o12*(vvy - vvz + vy2 + vz2))); - //f_TS -= c1over54*drho - (drho + one)*(c1o18*(vvy - vvz - vy2 - vz2) + c1o6*(vvy - vy2)*(vvz + vz2) + vx2*(c1o36 - c1o4*(vvy - vy2)*(vvz + vz2) + c1o12*(-vvy + vvz + vy2 + vz2))); - //f_ZERO -= c8over27*drho - (drho + one)*(vx2*vy2*vz2 + c4o9*(vx2 + vy2 + vz2) - c2o3*(vx2*vy2 + (vx2 + vy2)*vz2)); - //f_TNE -= c1over216*drho + (drho + one)*(c1o8*(vvx + vx2)*(vvy + vy2)*(vvz + vz2) + c1o72*(vvx + vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 + vvy*(vvz + vx2 + vz2) + vvx*(vvy + vvz + vy2 + vz2))); - //f_TSW -= c1over216*drho + (drho + one)*(c1o8*(vvx - vx2)*(vvy - vy2)*(vvz + vz2) + c1o72*(-vvx - vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + vvx*(vvy - vvz - vy2 - vz2) + (vx2 + vy2)*vz2 - vvy*(vvz + vx2 + vz2))); - //f_TSE -= c1over216*drho + (drho + one)*(-(c1o8*(vvx + vx2)*(vvy - vy2)*(vvz + vz2)) + c1o72*(vvx - vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 - vvy*(vvz + vx2 + vz2) + vvx*(-vvy + vvz + vy2 + vz2))); - //f_TNW -= c1over216*drho - (drho + one)*(c1o72*(vvx - vvy - vvz - vx2 - vy2 - vz2) + c1o8*(vvx - vx2)*(vvy + vy2)*(vvz + vz2) - c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 + vvy*(vvz + vx2 + vz2) - vvx*(vvy + vvz + vy2 + vz2))); - //f_BNE -= c1over216*drho + (drho + one)*(-(c1o8*(vvx + vx2)*(vvy + vy2)*(vvz - vz2)) + c1o72*(vvx + vvy - vvz + vx2 + vy2 + vz2) + c1o24*(-(vvy*vvz) + vvy*vx2 - vvz*vx2 - vvz*vy2 + vx2*vy2 + (vvy + vx2 + vy2)*vz2 + vvx*(vvy - vvz + vy2 + vz2))); - //f_BSW -= c1over216*drho - (drho + one)*(c1o8*(vvx - vx2)*(vvy - vy2)*(vvz - vz2) + c1o72*(vvx + vvy + vvz - vx2 - vy2 - vz2) + c1o24*(vvz*vx2 + vvz*vy2 - vx2*vy2 - (vx2 + vy2)*vz2 + vvy*(-vvz + vx2 + vz2) + vvx*(-vvy - vvz + vy2 + vz2))); - //f_BSE -= c1over216*drho + (drho + one)*(c1o8*(vvx + vx2)*(vvy - vy2)*(vvz - vz2) + c1o72*(vvx - vvy - vvz + vx2 + vy2 + vz2) + c1o24*(-(vvx*vvy) - vvx*vvz + vvy*vvz - (vvy + vvz)*vx2 + (vvx - vvz + vx2)*vy2 + (vvx - vvy + vx2 + vy2)*vz2)); - //f_BNW -= c1over216*drho - (drho + one)*(-(c1o8*(vvx - vx2)*(vvy + vy2)*(vvz - vz2)) + c1o72*(vvx - vvy + vvz - vx2 - vy2 - vz2) + c1o24*(vvy*vvz - vvy*vx2 + vvz*vx2 + vvz*vy2 - vx2*vy2 - (vvy + vx2 + vy2)*vz2 + vvx*(vvy - vvz + vy2 + vz2))); - - //kxyFromfcNEQ_SEB = -three*omegaS*((((f_SW - f_SE) + (f_NE - f_NW)) + (((f_BSW - f_BSE) + (f_BNE - f_BNW)) + ((f_TSW - f_TSE) + (f_TNE - f_TNW)))) / (one + drho)); - //kyzFromfcNEQ_SEB = -three*omegaS*((((f_BS - f_TS) + (f_TN - f_BN)) + (((f_BSE - f_TSE) + (f_BSW - f_BNW)) + ((f_TNE - f_BNE) + (f_TNW - f_TSW)))) / (one + drho)); - //kxzFromfcNEQ_SEB = -three*omegaS*((((f_BW - f_BE) + (f_TE - f_TW)) + (((f_BSW - f_BSE) + (f_BNW - f_BNE)) + ((f_TSE - f_TSW) + (f_TNE - f_TNW)))) / (one + drho)); - //kxxMyyFromfcNEQ_SEB = -c3o2*omegaS *(((((f_BW - f_BS) + (f_TW - f_TS)) + ((f_BE - f_BN) + (f_TE - f_TN))) + ((f_W - f_S) + (f_E - f_N))) / (one + drho)); - //kxxMzzFromfcNEQ_SEB = -c3o2*omegaS *(((((f_SW - f_BS) + (f_NW - f_BN)) + ((f_SE - f_TS) + (f_NE - f_TN))) + ((f_W - f_B) + (f_E - f_T))) / (one + drho)); - //kyyMzzFromfcNEQ_SEB = -c3o2*omegaS *(((((f_SE - f_BE) + (f_SW - f_BW)) + ((f_NE - f_TE) + (f_NW - f_TW))) + ((f_S - f_B) + (f_N - f_T))) / (one + drho)); + kxyFromfcNEQ_SEB = -c3o1*omegaS*((((f_SW - f_SE) + (f_NE - f_NW)) + (((f_BSW - f_BSE) + (f_BNE - f_BNW)) + ((f_TSW - f_TSE) + (f_TNE - f_TNW)))) / (c1o1 + drho_SEB) - ((vx1_SEB*vx2_SEB))); + kyzFromfcNEQ_SEB = -c3o1*omegaS*((((f_BS - f_TS) + (f_TN - f_BN)) + (((f_BSE - f_TSE) + (f_BSW - f_BNW)) + ((f_TNE - f_BNE) + (f_TNW - f_TSW)))) / (c1o1 + drho_SEB) - ((vx2_SEB*vx3_SEB))); + kxzFromfcNEQ_SEB = -c3o1*omegaS*((((f_BW - f_BE) + (f_TE - f_TW)) + (((f_BSW - f_BSE) + (f_BNW - f_BNE)) + ((f_TSE - f_TSW) + (f_TNE - f_TNW)))) / (c1o1 + drho_SEB) - ((vx1_SEB*vx3_SEB))); + kxxMyyFromfcNEQ_SEB = -c3o2*omegaS *(((((f_BW - f_BS) + (f_TW - f_TS)) + ((f_BE - f_BN) + (f_TE - f_TN))) + ((f_W - f_S) + (f_E - f_N))) / (c1o1 + drho_SEB) - ((vx1_SEB*vx1_SEB - vx2_SEB*vx2_SEB))); + kxxMzzFromfcNEQ_SEB = -c3o2*omegaS *(((((f_SW - f_BS) + (f_NW - f_BN)) + ((f_SE - f_TS) + (f_NE - f_TN))) + ((f_W - f_B) + (f_E - f_T))) / (c1o1 + drho_SEB) - ((vx1_SEB*vx1_SEB - vx3_SEB*vx3_SEB))); + kyyMzzFromfcNEQ_SEB = -c3o2*omegaS *(((((f_SE - f_BE) + (f_SW - f_BW)) + ((f_NE - f_TE) + (f_NW - f_TW))) + ((f_S - f_B) + (f_N - f_T))) / (c1o1 + drho_SEB) - ((vx2_SEB*vx2_SEB - vx3_SEB*vx3_SEB))); + + ////konditioniert + //vvx = vx1_SEB; + //vvy = vx2_SEB; + //vvz = vx3_SEB; + //drho = drho_SEB; + //vx2 = vvx * vvx; + //vy2 = vvy * vvy; + //vz2 = vvz * vvz; + + + //f_E -= c2over27*drho + (drho + one)*(c2o9*(vvx + vx2) + (c1o6 + c1o2*(vvx + vx2))*vy2*vz2 - c1o9*(vy2 + vz2) - c1o3*(vvx + vx2)*(vy2 + vz2)); + //f_W -= c2over27*drho - (drho + one)*((vvx - vx2)*(c2o9 - c1o3*vy2) - (c1o6*vy2 + (vvx - vx2)*(c1o3 - c1o2*vy2))*vz2 + c1o9*(vy2 + vz2)); + //f_N -= c2over27*drho + (drho + one)*(c2o9*(vvy + vy2) + vx2*(c1o6 + c1o2*(vvy + vy2))*vz2 - c1o9*(vx2 + vz2) - c1o3*(vvy + vy2)*(vx2 + vz2)); + //f_S -= c2over27*drho - (drho + one)*((c2o9 - c1o3*vx2)*(vvy - vy2) - (c1o6*vx2 + (c1o3 - c1o2*vx2)*(vvy - vy2))*vz2 + c1o9*(vx2 + vz2)); + //f_T -= c2over27*drho + (drho + one)*(-(c1o9*(vx2 + vy2)) + c2o9*(vvz + vz2) - c1o3*(vx2 + vy2)*(vvz + vz2) + vx2*vy2*(c1o6 + c1o2*(vvz + vz2))); + //f_B -= c2over27*drho - (drho + one)*(c1o9*(vx2 + vy2) + c2o9*(vvz - vz2) - c1o3*(vx2 + vy2)*(vvz - vz2) - vx2*vy2*(c1o6 + c1o2*(-vvz + vz2))); + //f_NE -= c1over54*drho + (drho + one)*(c1o6*(vvx + vx2)*(vvy + vy2) + c1o18*(vvx + vvy + vx2 + vy2) - (c1o36 + c1o4*(vvx + vx2)*(vvy + vy2) + c1o12*(vvx + vvy + vx2 + vy2))*vz2); + //f_SW -= c1over54*drho + (drho + one)*(c1o6*(vvx - vx2)*(vvy - vy2) + c1o18*(-vvx - vvy + vx2 + vy2) - (c1o36 + c1o4*(vvx - vx2)*(vvy - vy2) + c1o12*(-vvx - vvy + vx2 + vy2))*vz2); + //f_SE -= c1over54*drho + (drho + one)*(-(c1o6*(vvx + vx2)*(vvy - vy2)) + c1o18*(vvx - vvy + vx2 + vy2) - (c1o36 - c1o4*(vvx + vx2)*(vvy - vy2) + c1o12*(vvx - vvy + vx2 + vy2))*vz2); + //f_NW -= c1over54*drho + (drho + one)*(-(c1o6*(vvx - vx2)*(vvy + vy2)) + c1o18*(-vvx + vvy + vx2 + vy2) - (c1o36 - c1o4*(vvx - vx2)*(vvy + vy2) + c1o12*(-vvx + vvy + vx2 + vy2))*vz2); + //f_TE -= c1over54*drho + (drho + one)*(c1o6*(vvx + vx2)*(vvz + vz2) + c1o18*(vvx + vvz + vx2 + vz2) - vy2*(c1o36 + c1o4*(vvx + vx2)*(vvz + vz2) + c1o12*(vvx + vvz + vx2 + vz2))); + //f_BW -= c1over54*drho - (drho + one)*(-(c1o6*(vvx - vx2)*(vvz - vz2)) + c1o18*(vvx + vvz - vx2 - vz2) + vy2*(c1o36 + c1o4*(vvx - vx2)*(vvz - vz2) + c1o12*(-vvx - vvz + vx2 + vz2))); + //f_BE -= c1over54*drho + (drho + one)*(-(c1o6*(vvx + vx2)*(vvz - vz2)) + c1o18*(vvx - vvz + vx2 + vz2) - vy2*(c1o36 - c1o4*(vvx + vx2)*(vvz - vz2) + c1o12*(vvx - vvz + vx2 + vz2))); + //f_TW -= c1over54*drho - (drho + one)*(c1o18*(vvx - vvz - vx2 - vz2) + c1o6*(vvx - vx2)*(vvz + vz2) + vy2*(c1o36 - c1o4*(vvx - vx2)*(vvz + vz2) + c1o12*(-vvx + vvz + vx2 + vz2))); + //f_TN -= c1over54*drho + (drho + one)*(c1o6*(vvy + vy2)*(vvz + vz2) + c1o18*(vvy + vvz + vy2 + vz2) - vx2*(c1o36 + c1o4*(vvy + vy2)*(vvz + vz2) + c1o12*(vvy + vvz + vy2 + vz2))); + //f_BS -= c1over54*drho - (drho + one)*(c1o18*(vvy - vvz - vy2 - vz2) + c1o6*(vvy - vy2)*(vvz + vz2) + vx2*(c1o36 - c1o4*(vvy - vy2)*(vvz + vz2) + c1o12*(-vvy + vvz + vy2 + vz2))); + //f_BN -= c1over54*drho + (drho + one)*(-(c1o6*(vvy + vy2)*(vvz - vz2)) + c1o18*(vvy - vvz + vy2 + vz2) - vx2*(c1o36 - c1o4*(vvy + vy2)*(vvz - vz2) + c1o12*(vvy - vvz + vy2 + vz2))); + //f_TS -= c1over54*drho - (drho + one)*(c1o18*(vvy - vvz - vy2 - vz2) + c1o6*(vvy - vy2)*(vvz + vz2) + vx2*(c1o36 - c1o4*(vvy - vy2)*(vvz + vz2) + c1o12*(-vvy + vvz + vy2 + vz2))); + //f_ZERO -= c8over27*drho - (drho + one)*(vx2*vy2*vz2 + c4o9*(vx2 + vy2 + vz2) - c2o3*(vx2*vy2 + (vx2 + vy2)*vz2)); + //f_TNE -= c1over216*drho + (drho + one)*(c1o8*(vvx + vx2)*(vvy + vy2)*(vvz + vz2) + c1o72*(vvx + vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 + vvy*(vvz + vx2 + vz2) + vvx*(vvy + vvz + vy2 + vz2))); + //f_TSW -= c1over216*drho + (drho + one)*(c1o8*(vvx - vx2)*(vvy - vy2)*(vvz + vz2) + c1o72*(-vvx - vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + vvx*(vvy - vvz - vy2 - vz2) + (vx2 + vy2)*vz2 - vvy*(vvz + vx2 + vz2))); + //f_TSE -= c1over216*drho + (drho + one)*(-(c1o8*(vvx + vx2)*(vvy - vy2)*(vvz + vz2)) + c1o72*(vvx - vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 - vvy*(vvz + vx2 + vz2) + vvx*(-vvy + vvz + vy2 + vz2))); + //f_TNW -= c1over216*drho - (drho + one)*(c1o72*(vvx - vvy - vvz - vx2 - vy2 - vz2) + c1o8*(vvx - vx2)*(vvy + vy2)*(vvz + vz2) - c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 + vvy*(vvz + vx2 + vz2) - vvx*(vvy + vvz + vy2 + vz2))); + //f_BNE -= c1over216*drho + (drho + one)*(-(c1o8*(vvx + vx2)*(vvy + vy2)*(vvz - vz2)) + c1o72*(vvx + vvy - vvz + vx2 + vy2 + vz2) + c1o24*(-(vvy*vvz) + vvy*vx2 - vvz*vx2 - vvz*vy2 + vx2*vy2 + (vvy + vx2 + vy2)*vz2 + vvx*(vvy - vvz + vy2 + vz2))); + //f_BSW -= c1over216*drho - (drho + one)*(c1o8*(vvx - vx2)*(vvy - vy2)*(vvz - vz2) + c1o72*(vvx + vvy + vvz - vx2 - vy2 - vz2) + c1o24*(vvz*vx2 + vvz*vy2 - vx2*vy2 - (vx2 + vy2)*vz2 + vvy*(-vvz + vx2 + vz2) + vvx*(-vvy - vvz + vy2 + vz2))); + //f_BSE -= c1over216*drho + (drho + one)*(c1o8*(vvx + vx2)*(vvy - vy2)*(vvz - vz2) + c1o72*(vvx - vvy - vvz + vx2 + vy2 + vz2) + c1o24*(-(vvx*vvy) - vvx*vvz + vvy*vvz - (vvy + vvz)*vx2 + (vvx - vvz + vx2)*vy2 + (vvx - vvy + vx2 + vy2)*vz2)); + //f_BNW -= c1over216*drho - (drho + one)*(-(c1o8*(vvx - vx2)*(vvy + vy2)*(vvz - vz2)) + c1o72*(vvx - vvy + vvz - vx2 - vy2 - vz2) + c1o24*(vvy*vvz - vvy*vx2 + vvz*vx2 + vvz*vy2 - vx2*vy2 - (vvy + vx2 + vy2)*vz2 + vvx*(vvy - vvz + vy2 + vz2))); + + //kxyFromfcNEQ_SEB = -three*omegaS*((((f_SW - f_SE) + (f_NE - f_NW)) + (((f_BSW - f_BSE) + (f_BNE - f_BNW)) + ((f_TSW - f_TSE) + (f_TNE - f_TNW)))) / (one + drho)); + //kyzFromfcNEQ_SEB = -three*omegaS*((((f_BS - f_TS) + (f_TN - f_BN)) + (((f_BSE - f_TSE) + (f_BSW - f_BNW)) + ((f_TNE - f_BNE) + (f_TNW - f_TSW)))) / (one + drho)); + //kxzFromfcNEQ_SEB = -three*omegaS*((((f_BW - f_BE) + (f_TE - f_TW)) + (((f_BSW - f_BSE) + (f_BNW - f_BNE)) + ((f_TSE - f_TSW) + (f_TNE - f_TNW)))) / (one + drho)); + //kxxMyyFromfcNEQ_SEB = -c3o2*omegaS *(((((f_BW - f_BS) + (f_TW - f_TS)) + ((f_BE - f_BN) + (f_TE - f_TN))) + ((f_W - f_S) + (f_E - f_N))) / (one + drho)); + //kxxMzzFromfcNEQ_SEB = -c3o2*omegaS *(((((f_SW - f_BS) + (f_NW - f_BN)) + ((f_SE - f_TS) + (f_NE - f_TN))) + ((f_W - f_B) + (f_E - f_T))) / (one + drho)); + //kyyMzzFromfcNEQ_SEB = -c3o2*omegaS *(((((f_SE - f_BE) + (f_SW - f_BW)) + ((f_NE - f_TE) + (f_NW - f_TW))) + ((f_S - f_B) + (f_N - f_T))) / (one + drho)); @@ -27031,67 +27031,67 @@ __global__ void scaleCF_Fix_comp_27( real* DC, drho_NWB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; vx1_NWB = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_NWB); - vx2_NWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NWB); - vx3_NWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NWB); + vx2_NWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NWB); + vx3_NWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NWB); - //nicht konditioniert - //kxyFromfcNEQ_NWB = -three*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (one + drho_NWB) - ((vx1_NWB*vx2_NWB))); + //nicht konditioniert + //kxyFromfcNEQ_NWB = -three*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (one + drho_NWB) - ((vx1_NWB*vx2_NWB))); //kyzFromfcNEQ_NWB = -three*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (one + drho_NWB) - ((vx2_NWB*vx3_NWB))); //kxzFromfcNEQ_NWB = -three*omegaS*((f_BW+f_BSW+f_BNW-f_TW-f_TSW-f_TNW-f_BE-f_BSE-f_BNE+f_TE+f_TSE+f_TNE ) / (one + drho_NWB) - ((vx1_NWB*vx3_NWB))); //kxxMyyFromfcNEQ_NWB = -c3o2*omegaS *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (one + drho_NWB) - ((vx1_NWB*vx1_NWB-vx2_NWB*vx2_NWB))); //kxxMzzFromfcNEQ_NWB = -c3o2*omegaS *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (one + drho_NWB) - ((vx1_NWB*vx1_NWB-vx3_NWB*vx3_NWB))); - kxyFromfcNEQ_NWB = -c3o1*omegaS*((((f_SW - f_SE) + (f_NE - f_NW)) + (((f_BSW - f_BSE) + (f_BNE - f_BNW)) + ((f_TSW - f_TSE) + (f_TNE - f_TNW)))) / (c1o1 + drho_NWB) - ((vx1_NWB*vx2_NWB))); - kyzFromfcNEQ_NWB = -c3o1*omegaS*((((f_BS - f_TS) + (f_TN - f_BN)) + (((f_BSE - f_TSE) + (f_BSW - f_BNW)) + ((f_TNE - f_BNE) + (f_TNW - f_TSW)))) / (c1o1 + drho_NWB) - ((vx2_NWB*vx3_NWB))); - kxzFromfcNEQ_NWB = -c3o1*omegaS*((((f_BW - f_BE) + (f_TE - f_TW)) + (((f_BSW - f_BSE) + (f_BNW - f_BNE)) + ((f_TSE - f_TSW) + (f_TNE - f_TNW)))) / (c1o1 + drho_NWB) - ((vx1_NWB*vx3_NWB))); - kxxMyyFromfcNEQ_NWB = -c3o2*omegaS *(((((f_BW - f_BS) + (f_TW - f_TS)) + ((f_BE - f_BN) + (f_TE - f_TN))) + ((f_W - f_S) + (f_E - f_N))) / (c1o1 + drho_NWB) - ((vx1_NWB*vx1_NWB - vx2_NWB*vx2_NWB))); - kxxMzzFromfcNEQ_NWB = -c3o2*omegaS *(((((f_SW - f_BS) + (f_NW - f_BN)) + ((f_SE - f_TS) + (f_NE - f_TN))) + ((f_W - f_B) + (f_E - f_T))) / (c1o1 + drho_NWB) - ((vx1_NWB*vx1_NWB - vx3_NWB*vx3_NWB))); - kyyMzzFromfcNEQ_NWB = -c3o2*omegaS *(((((f_SE - f_BE) + (f_SW - f_BW)) + ((f_NE - f_TE) + (f_NW - f_TW))) + ((f_S - f_B) + (f_N - f_T))) / (c1o1 + drho_NWB) - ((vx2_NWB*vx2_NWB - vx3_NWB*vx3_NWB))); - - ////konditioniert - //vvx = vx1_NWB; - //vvy = vx2_NWB; - //vvz = vx3_NWB; - //drho = drho_NWB; - //vx2 = vvx * vvx; - //vy2 = vvy * vvy; - //vz2 = vvz * vvz; - - - //f_E -= c2over27*drho + (drho + one)*(c2o9*(vvx + vx2) + (c1o6 + c1o2*(vvx + vx2))*vy2*vz2 - c1o9*(vy2 + vz2) - c1o3*(vvx + vx2)*(vy2 + vz2)); - //f_W -= c2over27*drho - (drho + one)*((vvx - vx2)*(c2o9 - c1o3*vy2) - (c1o6*vy2 + (vvx - vx2)*(c1o3 - c1o2*vy2))*vz2 + c1o9*(vy2 + vz2)); - //f_N -= c2over27*drho + (drho + one)*(c2o9*(vvy + vy2) + vx2*(c1o6 + c1o2*(vvy + vy2))*vz2 - c1o9*(vx2 + vz2) - c1o3*(vvy + vy2)*(vx2 + vz2)); - //f_S -= c2over27*drho - (drho + one)*((c2o9 - c1o3*vx2)*(vvy - vy2) - (c1o6*vx2 + (c1o3 - c1o2*vx2)*(vvy - vy2))*vz2 + c1o9*(vx2 + vz2)); - //f_T -= c2over27*drho + (drho + one)*(-(c1o9*(vx2 + vy2)) + c2o9*(vvz + vz2) - c1o3*(vx2 + vy2)*(vvz + vz2) + vx2*vy2*(c1o6 + c1o2*(vvz + vz2))); - //f_B -= c2over27*drho - (drho + one)*(c1o9*(vx2 + vy2) + c2o9*(vvz - vz2) - c1o3*(vx2 + vy2)*(vvz - vz2) - vx2*vy2*(c1o6 + c1o2*(-vvz + vz2))); - //f_NE -= c1over54*drho + (drho + one)*(c1o6*(vvx + vx2)*(vvy + vy2) + c1o18*(vvx + vvy + vx2 + vy2) - (c1o36 + c1o4*(vvx + vx2)*(vvy + vy2) + c1o12*(vvx + vvy + vx2 + vy2))*vz2); - //f_SW -= c1over54*drho + (drho + one)*(c1o6*(vvx - vx2)*(vvy - vy2) + c1o18*(-vvx - vvy + vx2 + vy2) - (c1o36 + c1o4*(vvx - vx2)*(vvy - vy2) + c1o12*(-vvx - vvy + vx2 + vy2))*vz2); - //f_SE -= c1over54*drho + (drho + one)*(-(c1o6*(vvx + vx2)*(vvy - vy2)) + c1o18*(vvx - vvy + vx2 + vy2) - (c1o36 - c1o4*(vvx + vx2)*(vvy - vy2) + c1o12*(vvx - vvy + vx2 + vy2))*vz2); - //f_NW -= c1over54*drho + (drho + one)*(-(c1o6*(vvx - vx2)*(vvy + vy2)) + c1o18*(-vvx + vvy + vx2 + vy2) - (c1o36 - c1o4*(vvx - vx2)*(vvy + vy2) + c1o12*(-vvx + vvy + vx2 + vy2))*vz2); - //f_TE -= c1over54*drho + (drho + one)*(c1o6*(vvx + vx2)*(vvz + vz2) + c1o18*(vvx + vvz + vx2 + vz2) - vy2*(c1o36 + c1o4*(vvx + vx2)*(vvz + vz2) + c1o12*(vvx + vvz + vx2 + vz2))); - //f_BW -= c1over54*drho - (drho + one)*(-(c1o6*(vvx - vx2)*(vvz - vz2)) + c1o18*(vvx + vvz - vx2 - vz2) + vy2*(c1o36 + c1o4*(vvx - vx2)*(vvz - vz2) + c1o12*(-vvx - vvz + vx2 + vz2))); - //f_BE -= c1over54*drho + (drho + one)*(-(c1o6*(vvx + vx2)*(vvz - vz2)) + c1o18*(vvx - vvz + vx2 + vz2) - vy2*(c1o36 - c1o4*(vvx + vx2)*(vvz - vz2) + c1o12*(vvx - vvz + vx2 + vz2))); - //f_TW -= c1over54*drho - (drho + one)*(c1o18*(vvx - vvz - vx2 - vz2) + c1o6*(vvx - vx2)*(vvz + vz2) + vy2*(c1o36 - c1o4*(vvx - vx2)*(vvz + vz2) + c1o12*(-vvx + vvz + vx2 + vz2))); - //f_TN -= c1over54*drho + (drho + one)*(c1o6*(vvy + vy2)*(vvz + vz2) + c1o18*(vvy + vvz + vy2 + vz2) - vx2*(c1o36 + c1o4*(vvy + vy2)*(vvz + vz2) + c1o12*(vvy + vvz + vy2 + vz2))); - //f_BS -= c1over54*drho - (drho + one)*(c1o18*(vvy - vvz - vy2 - vz2) + c1o6*(vvy - vy2)*(vvz + vz2) + vx2*(c1o36 - c1o4*(vvy - vy2)*(vvz + vz2) + c1o12*(-vvy + vvz + vy2 + vz2))); - //f_BN -= c1over54*drho + (drho + one)*(-(c1o6*(vvy + vy2)*(vvz - vz2)) + c1o18*(vvy - vvz + vy2 + vz2) - vx2*(c1o36 - c1o4*(vvy + vy2)*(vvz - vz2) + c1o12*(vvy - vvz + vy2 + vz2))); - //f_TS -= c1over54*drho - (drho + one)*(c1o18*(vvy - vvz - vy2 - vz2) + c1o6*(vvy - vy2)*(vvz + vz2) + vx2*(c1o36 - c1o4*(vvy - vy2)*(vvz + vz2) + c1o12*(-vvy + vvz + vy2 + vz2))); - //f_ZERO -= c8over27*drho - (drho + one)*(vx2*vy2*vz2 + c4o9*(vx2 + vy2 + vz2) - c2o3*(vx2*vy2 + (vx2 + vy2)*vz2)); - //f_TNE -= c1over216*drho + (drho + one)*(c1o8*(vvx + vx2)*(vvy + vy2)*(vvz + vz2) + c1o72*(vvx + vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 + vvy*(vvz + vx2 + vz2) + vvx*(vvy + vvz + vy2 + vz2))); - //f_TSW -= c1over216*drho + (drho + one)*(c1o8*(vvx - vx2)*(vvy - vy2)*(vvz + vz2) + c1o72*(-vvx - vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + vvx*(vvy - vvz - vy2 - vz2) + (vx2 + vy2)*vz2 - vvy*(vvz + vx2 + vz2))); - //f_TSE -= c1over216*drho + (drho + one)*(-(c1o8*(vvx + vx2)*(vvy - vy2)*(vvz + vz2)) + c1o72*(vvx - vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 - vvy*(vvz + vx2 + vz2) + vvx*(-vvy + vvz + vy2 + vz2))); - //f_TNW -= c1over216*drho - (drho + one)*(c1o72*(vvx - vvy - vvz - vx2 - vy2 - vz2) + c1o8*(vvx - vx2)*(vvy + vy2)*(vvz + vz2) - c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 + vvy*(vvz + vx2 + vz2) - vvx*(vvy + vvz + vy2 + vz2))); - //f_BNE -= c1over216*drho + (drho + one)*(-(c1o8*(vvx + vx2)*(vvy + vy2)*(vvz - vz2)) + c1o72*(vvx + vvy - vvz + vx2 + vy2 + vz2) + c1o24*(-(vvy*vvz) + vvy*vx2 - vvz*vx2 - vvz*vy2 + vx2*vy2 + (vvy + vx2 + vy2)*vz2 + vvx*(vvy - vvz + vy2 + vz2))); - //f_BSW -= c1over216*drho - (drho + one)*(c1o8*(vvx - vx2)*(vvy - vy2)*(vvz - vz2) + c1o72*(vvx + vvy + vvz - vx2 - vy2 - vz2) + c1o24*(vvz*vx2 + vvz*vy2 - vx2*vy2 - (vx2 + vy2)*vz2 + vvy*(-vvz + vx2 + vz2) + vvx*(-vvy - vvz + vy2 + vz2))); - //f_BSE -= c1over216*drho + (drho + one)*(c1o8*(vvx + vx2)*(vvy - vy2)*(vvz - vz2) + c1o72*(vvx - vvy - vvz + vx2 + vy2 + vz2) + c1o24*(-(vvx*vvy) - vvx*vvz + vvy*vvz - (vvy + vvz)*vx2 + (vvx - vvz + vx2)*vy2 + (vvx - vvy + vx2 + vy2)*vz2)); - //f_BNW -= c1over216*drho - (drho + one)*(-(c1o8*(vvx - vx2)*(vvy + vy2)*(vvz - vz2)) + c1o72*(vvx - vvy + vvz - vx2 - vy2 - vz2) + c1o24*(vvy*vvz - vvy*vx2 + vvz*vx2 + vvz*vy2 - vx2*vy2 - (vvy + vx2 + vy2)*vz2 + vvx*(vvy - vvz + vy2 + vz2))); - - //kxyFromfcNEQ_NWB = -three*omegaS*((((f_SW - f_SE) + (f_NE - f_NW)) + (((f_BSW - f_BSE) + (f_BNE - f_BNW)) + ((f_TSW - f_TSE) + (f_TNE - f_TNW)))) / (one + drho)); - //kyzFromfcNEQ_NWB = -three*omegaS*((((f_BS - f_TS) + (f_TN - f_BN)) + (((f_BSE - f_TSE) + (f_BSW - f_BNW)) + ((f_TNE - f_BNE) + (f_TNW - f_TSW)))) / (one + drho)); - //kxzFromfcNEQ_NWB = -three*omegaS*((((f_BW - f_BE) + (f_TE - f_TW)) + (((f_BSW - f_BSE) + (f_BNW - f_BNE)) + ((f_TSE - f_TSW) + (f_TNE - f_TNW)))) / (one + drho)); - //kxxMyyFromfcNEQ_NWB = -c3o2*omegaS *(((((f_BW - f_BS) + (f_TW - f_TS)) + ((f_BE - f_BN) + (f_TE - f_TN))) + ((f_W - f_S) + (f_E - f_N))) / (one + drho)); - //kxxMzzFromfcNEQ_NWB = -c3o2*omegaS *(((((f_SW - f_BS) + (f_NW - f_BN)) + ((f_SE - f_TS) + (f_NE - f_TN))) + ((f_W - f_B) + (f_E - f_T))) / (one + drho)); - //kyyMzzFromfcNEQ_NWB = -c3o2*omegaS *(((((f_SE - f_BE) + (f_SW - f_BW)) + ((f_NE - f_TE) + (f_NW - f_TW))) + ((f_S - f_B) + (f_N - f_T))) / (one + drho)); + kxyFromfcNEQ_NWB = -c3o1*omegaS*((((f_SW - f_SE) + (f_NE - f_NW)) + (((f_BSW - f_BSE) + (f_BNE - f_BNW)) + ((f_TSW - f_TSE) + (f_TNE - f_TNW)))) / (c1o1 + drho_NWB) - ((vx1_NWB*vx2_NWB))); + kyzFromfcNEQ_NWB = -c3o1*omegaS*((((f_BS - f_TS) + (f_TN - f_BN)) + (((f_BSE - f_TSE) + (f_BSW - f_BNW)) + ((f_TNE - f_BNE) + (f_TNW - f_TSW)))) / (c1o1 + drho_NWB) - ((vx2_NWB*vx3_NWB))); + kxzFromfcNEQ_NWB = -c3o1*omegaS*((((f_BW - f_BE) + (f_TE - f_TW)) + (((f_BSW - f_BSE) + (f_BNW - f_BNE)) + ((f_TSE - f_TSW) + (f_TNE - f_TNW)))) / (c1o1 + drho_NWB) - ((vx1_NWB*vx3_NWB))); + kxxMyyFromfcNEQ_NWB = -c3o2*omegaS *(((((f_BW - f_BS) + (f_TW - f_TS)) + ((f_BE - f_BN) + (f_TE - f_TN))) + ((f_W - f_S) + (f_E - f_N))) / (c1o1 + drho_NWB) - ((vx1_NWB*vx1_NWB - vx2_NWB*vx2_NWB))); + kxxMzzFromfcNEQ_NWB = -c3o2*omegaS *(((((f_SW - f_BS) + (f_NW - f_BN)) + ((f_SE - f_TS) + (f_NE - f_TN))) + ((f_W - f_B) + (f_E - f_T))) / (c1o1 + drho_NWB) - ((vx1_NWB*vx1_NWB - vx3_NWB*vx3_NWB))); + kyyMzzFromfcNEQ_NWB = -c3o2*omegaS *(((((f_SE - f_BE) + (f_SW - f_BW)) + ((f_NE - f_TE) + (f_NW - f_TW))) + ((f_S - f_B) + (f_N - f_T))) / (c1o1 + drho_NWB) - ((vx2_NWB*vx2_NWB - vx3_NWB*vx3_NWB))); + + ////konditioniert + //vvx = vx1_NWB; + //vvy = vx2_NWB; + //vvz = vx3_NWB; + //drho = drho_NWB; + //vx2 = vvx * vvx; + //vy2 = vvy * vvy; + //vz2 = vvz * vvz; + + + //f_E -= c2over27*drho + (drho + one)*(c2o9*(vvx + vx2) + (c1o6 + c1o2*(vvx + vx2))*vy2*vz2 - c1o9*(vy2 + vz2) - c1o3*(vvx + vx2)*(vy2 + vz2)); + //f_W -= c2over27*drho - (drho + one)*((vvx - vx2)*(c2o9 - c1o3*vy2) - (c1o6*vy2 + (vvx - vx2)*(c1o3 - c1o2*vy2))*vz2 + c1o9*(vy2 + vz2)); + //f_N -= c2over27*drho + (drho + one)*(c2o9*(vvy + vy2) + vx2*(c1o6 + c1o2*(vvy + vy2))*vz2 - c1o9*(vx2 + vz2) - c1o3*(vvy + vy2)*(vx2 + vz2)); + //f_S -= c2over27*drho - (drho + one)*((c2o9 - c1o3*vx2)*(vvy - vy2) - (c1o6*vx2 + (c1o3 - c1o2*vx2)*(vvy - vy2))*vz2 + c1o9*(vx2 + vz2)); + //f_T -= c2over27*drho + (drho + one)*(-(c1o9*(vx2 + vy2)) + c2o9*(vvz + vz2) - c1o3*(vx2 + vy2)*(vvz + vz2) + vx2*vy2*(c1o6 + c1o2*(vvz + vz2))); + //f_B -= c2over27*drho - (drho + one)*(c1o9*(vx2 + vy2) + c2o9*(vvz - vz2) - c1o3*(vx2 + vy2)*(vvz - vz2) - vx2*vy2*(c1o6 + c1o2*(-vvz + vz2))); + //f_NE -= c1over54*drho + (drho + one)*(c1o6*(vvx + vx2)*(vvy + vy2) + c1o18*(vvx + vvy + vx2 + vy2) - (c1o36 + c1o4*(vvx + vx2)*(vvy + vy2) + c1o12*(vvx + vvy + vx2 + vy2))*vz2); + //f_SW -= c1over54*drho + (drho + one)*(c1o6*(vvx - vx2)*(vvy - vy2) + c1o18*(-vvx - vvy + vx2 + vy2) - (c1o36 + c1o4*(vvx - vx2)*(vvy - vy2) + c1o12*(-vvx - vvy + vx2 + vy2))*vz2); + //f_SE -= c1over54*drho + (drho + one)*(-(c1o6*(vvx + vx2)*(vvy - vy2)) + c1o18*(vvx - vvy + vx2 + vy2) - (c1o36 - c1o4*(vvx + vx2)*(vvy - vy2) + c1o12*(vvx - vvy + vx2 + vy2))*vz2); + //f_NW -= c1over54*drho + (drho + one)*(-(c1o6*(vvx - vx2)*(vvy + vy2)) + c1o18*(-vvx + vvy + vx2 + vy2) - (c1o36 - c1o4*(vvx - vx2)*(vvy + vy2) + c1o12*(-vvx + vvy + vx2 + vy2))*vz2); + //f_TE -= c1over54*drho + (drho + one)*(c1o6*(vvx + vx2)*(vvz + vz2) + c1o18*(vvx + vvz + vx2 + vz2) - vy2*(c1o36 + c1o4*(vvx + vx2)*(vvz + vz2) + c1o12*(vvx + vvz + vx2 + vz2))); + //f_BW -= c1over54*drho - (drho + one)*(-(c1o6*(vvx - vx2)*(vvz - vz2)) + c1o18*(vvx + vvz - vx2 - vz2) + vy2*(c1o36 + c1o4*(vvx - vx2)*(vvz - vz2) + c1o12*(-vvx - vvz + vx2 + vz2))); + //f_BE -= c1over54*drho + (drho + one)*(-(c1o6*(vvx + vx2)*(vvz - vz2)) + c1o18*(vvx - vvz + vx2 + vz2) - vy2*(c1o36 - c1o4*(vvx + vx2)*(vvz - vz2) + c1o12*(vvx - vvz + vx2 + vz2))); + //f_TW -= c1over54*drho - (drho + one)*(c1o18*(vvx - vvz - vx2 - vz2) + c1o6*(vvx - vx2)*(vvz + vz2) + vy2*(c1o36 - c1o4*(vvx - vx2)*(vvz + vz2) + c1o12*(-vvx + vvz + vx2 + vz2))); + //f_TN -= c1over54*drho + (drho + one)*(c1o6*(vvy + vy2)*(vvz + vz2) + c1o18*(vvy + vvz + vy2 + vz2) - vx2*(c1o36 + c1o4*(vvy + vy2)*(vvz + vz2) + c1o12*(vvy + vvz + vy2 + vz2))); + //f_BS -= c1over54*drho - (drho + one)*(c1o18*(vvy - vvz - vy2 - vz2) + c1o6*(vvy - vy2)*(vvz + vz2) + vx2*(c1o36 - c1o4*(vvy - vy2)*(vvz + vz2) + c1o12*(-vvy + vvz + vy2 + vz2))); + //f_BN -= c1over54*drho + (drho + one)*(-(c1o6*(vvy + vy2)*(vvz - vz2)) + c1o18*(vvy - vvz + vy2 + vz2) - vx2*(c1o36 - c1o4*(vvy + vy2)*(vvz - vz2) + c1o12*(vvy - vvz + vy2 + vz2))); + //f_TS -= c1over54*drho - (drho + one)*(c1o18*(vvy - vvz - vy2 - vz2) + c1o6*(vvy - vy2)*(vvz + vz2) + vx2*(c1o36 - c1o4*(vvy - vy2)*(vvz + vz2) + c1o12*(-vvy + vvz + vy2 + vz2))); + //f_ZERO -= c8over27*drho - (drho + one)*(vx2*vy2*vz2 + c4o9*(vx2 + vy2 + vz2) - c2o3*(vx2*vy2 + (vx2 + vy2)*vz2)); + //f_TNE -= c1over216*drho + (drho + one)*(c1o8*(vvx + vx2)*(vvy + vy2)*(vvz + vz2) + c1o72*(vvx + vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 + vvy*(vvz + vx2 + vz2) + vvx*(vvy + vvz + vy2 + vz2))); + //f_TSW -= c1over216*drho + (drho + one)*(c1o8*(vvx - vx2)*(vvy - vy2)*(vvz + vz2) + c1o72*(-vvx - vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + vvx*(vvy - vvz - vy2 - vz2) + (vx2 + vy2)*vz2 - vvy*(vvz + vx2 + vz2))); + //f_TSE -= c1over216*drho + (drho + one)*(-(c1o8*(vvx + vx2)*(vvy - vy2)*(vvz + vz2)) + c1o72*(vvx - vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 - vvy*(vvz + vx2 + vz2) + vvx*(-vvy + vvz + vy2 + vz2))); + //f_TNW -= c1over216*drho - (drho + one)*(c1o72*(vvx - vvy - vvz - vx2 - vy2 - vz2) + c1o8*(vvx - vx2)*(vvy + vy2)*(vvz + vz2) - c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 + vvy*(vvz + vx2 + vz2) - vvx*(vvy + vvz + vy2 + vz2))); + //f_BNE -= c1over216*drho + (drho + one)*(-(c1o8*(vvx + vx2)*(vvy + vy2)*(vvz - vz2)) + c1o72*(vvx + vvy - vvz + vx2 + vy2 + vz2) + c1o24*(-(vvy*vvz) + vvy*vx2 - vvz*vx2 - vvz*vy2 + vx2*vy2 + (vvy + vx2 + vy2)*vz2 + vvx*(vvy - vvz + vy2 + vz2))); + //f_BSW -= c1over216*drho - (drho + one)*(c1o8*(vvx - vx2)*(vvy - vy2)*(vvz - vz2) + c1o72*(vvx + vvy + vvz - vx2 - vy2 - vz2) + c1o24*(vvz*vx2 + vvz*vy2 - vx2*vy2 - (vx2 + vy2)*vz2 + vvy*(-vvz + vx2 + vz2) + vvx*(-vvy - vvz + vy2 + vz2))); + //f_BSE -= c1over216*drho + (drho + one)*(c1o8*(vvx + vx2)*(vvy - vy2)*(vvz - vz2) + c1o72*(vvx - vvy - vvz + vx2 + vy2 + vz2) + c1o24*(-(vvx*vvy) - vvx*vvz + vvy*vvz - (vvy + vvz)*vx2 + (vvx - vvz + vx2)*vy2 + (vvx - vvy + vx2 + vy2)*vz2)); + //f_BNW -= c1over216*drho - (drho + one)*(-(c1o8*(vvx - vx2)*(vvy + vy2)*(vvz - vz2)) + c1o72*(vvx - vvy + vvz - vx2 - vy2 - vz2) + c1o24*(vvy*vvz - vvy*vx2 + vvz*vx2 + vvz*vy2 - vx2*vy2 - (vvy + vx2 + vy2)*vz2 + vvx*(vvy - vvz + vy2 + vz2))); + + //kxyFromfcNEQ_NWB = -three*omegaS*((((f_SW - f_SE) + (f_NE - f_NW)) + (((f_BSW - f_BSE) + (f_BNE - f_BNW)) + ((f_TSW - f_TSE) + (f_TNE - f_TNW)))) / (one + drho)); + //kyzFromfcNEQ_NWB = -three*omegaS*((((f_BS - f_TS) + (f_TN - f_BN)) + (((f_BSE - f_TSE) + (f_BSW - f_BNW)) + ((f_TNE - f_BNE) + (f_TNW - f_TSW)))) / (one + drho)); + //kxzFromfcNEQ_NWB = -three*omegaS*((((f_BW - f_BE) + (f_TE - f_TW)) + (((f_BSW - f_BSE) + (f_BNW - f_BNE)) + ((f_TSE - f_TSW) + (f_TNE - f_TNW)))) / (one + drho)); + //kxxMyyFromfcNEQ_NWB = -c3o2*omegaS *(((((f_BW - f_BS) + (f_TW - f_TS)) + ((f_BE - f_BN) + (f_TE - f_TN))) + ((f_W - f_S) + (f_E - f_N))) / (one + drho)); + //kxxMzzFromfcNEQ_NWB = -c3o2*omegaS *(((((f_SW - f_BS) + (f_NW - f_BN)) + ((f_SE - f_TS) + (f_NE - f_TN))) + ((f_W - f_B) + (f_E - f_T))) / (one + drho)); + //kyyMzzFromfcNEQ_NWB = -c3o2*omegaS *(((((f_SE - f_BE) + (f_SW - f_BW)) + ((f_NE - f_TE) + (f_NW - f_TW))) + ((f_S - f_B) + (f_N - f_T))) / (one + drho)); @@ -27139,67 +27139,67 @@ __global__ void scaleCF_Fix_comp_27( real* DC, drho_NWT = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; vx1_NWT = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_NWT); - vx2_NWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NWT); - vx3_NWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NWT); + vx2_NWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NWT); + vx3_NWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NWT); - //nicht konditioniert - //kxyFromfcNEQ_NWT = -three*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (one + drho_NWT) - ((vx1_NWT*vx2_NWT))); + //nicht konditioniert + //kxyFromfcNEQ_NWT = -three*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (one + drho_NWT) - ((vx1_NWT*vx2_NWT))); //kyzFromfcNEQ_NWT = -three*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (one + drho_NWT) - ((vx2_NWT*vx3_NWT))); //kxzFromfcNEQ_NWT = -three*omegaS*((f_BW+f_BSW+f_BNW-f_TW-f_TSW-f_TNW-f_BE-f_BSE-f_BNE+f_TE+f_TSE+f_TNE ) / (one + drho_NWT) - ((vx1_NWT*vx3_NWT))); //kxxMyyFromfcNEQ_NWT = -c3o2*omegaS *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (one + drho_NWT) - ((vx1_NWT*vx1_NWT-vx2_NWT*vx2_NWT))); //kxxMzzFromfcNEQ_NWT = -c3o2*omegaS *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (one + drho_NWT) - ((vx1_NWT*vx1_NWT-vx3_NWT*vx3_NWT))); - kxyFromfcNEQ_NWT = -c3o1*omegaS*((((f_SW - f_SE) + (f_NE - f_NW)) + (((f_BSW - f_BSE) + (f_BNE - f_BNW)) + ((f_TSW - f_TSE) + (f_TNE - f_TNW)))) / (c1o1 + drho_NWT) - ((vx1_NWT*vx2_NWT))); - kyzFromfcNEQ_NWT = -c3o1*omegaS*((((f_BS - f_TS) + (f_TN - f_BN)) + (((f_BSE - f_TSE) + (f_BSW - f_BNW)) + ((f_TNE - f_BNE) + (f_TNW - f_TSW)))) / (c1o1 + drho_NWT) - ((vx2_NWT*vx3_NWT))); - kxzFromfcNEQ_NWT = -c3o1*omegaS*((((f_BW - f_BE) + (f_TE - f_TW)) + (((f_BSW - f_BSE) + (f_BNW - f_BNE)) + ((f_TSE - f_TSW) + (f_TNE - f_TNW)))) / (c1o1 + drho_NWT) - ((vx1_NWT*vx3_NWT))); - kxxMyyFromfcNEQ_NWT = -c3o2*omegaS *(((((f_BW - f_BS) + (f_TW - f_TS)) + ((f_BE - f_BN) + (f_TE - f_TN))) + ((f_W - f_S) + (f_E - f_N))) / (c1o1 + drho_NWT) - ((vx1_NWT*vx1_NWT - vx2_NWT*vx2_NWT))); - kxxMzzFromfcNEQ_NWT = -c3o2*omegaS *(((((f_SW - f_BS) + (f_NW - f_BN)) + ((f_SE - f_TS) + (f_NE - f_TN))) + ((f_W - f_B) + (f_E - f_T))) / (c1o1 + drho_NWT) - ((vx1_NWT*vx1_NWT - vx3_NWT*vx3_NWT))); - kyyMzzFromfcNEQ_NWT = -c3o2*omegaS *(((((f_SE - f_BE) + (f_SW - f_BW)) + ((f_NE - f_TE) + (f_NW - f_TW))) + ((f_S - f_B) + (f_N - f_T))) / (c1o1 + drho_NWT) - ((vx2_NWT*vx2_NWT - vx3_NWT*vx3_NWT))); - - ////konditionirt - //vvx = vx1_NWT; - //vvy = vx2_NWT; - //vvz = vx3_NWT; - //drho = drho_NWT; - //vx2 = vvx * vvx; - //vy2 = vvy * vvy; - //vz2 = vvz * vvz; - - - //f_E -= c2over27*drho + (drho + one)*(c2o9*(vvx + vx2) + (c1o6 + c1o2*(vvx + vx2))*vy2*vz2 - c1o9*(vy2 + vz2) - c1o3*(vvx + vx2)*(vy2 + vz2)); - //f_W -= c2over27*drho - (drho + one)*((vvx - vx2)*(c2o9 - c1o3*vy2) - (c1o6*vy2 + (vvx - vx2)*(c1o3 - c1o2*vy2))*vz2 + c1o9*(vy2 + vz2)); - //f_N -= c2over27*drho + (drho + one)*(c2o9*(vvy + vy2) + vx2*(c1o6 + c1o2*(vvy + vy2))*vz2 - c1o9*(vx2 + vz2) - c1o3*(vvy + vy2)*(vx2 + vz2)); - //f_S -= c2over27*drho - (drho + one)*((c2o9 - c1o3*vx2)*(vvy - vy2) - (c1o6*vx2 + (c1o3 - c1o2*vx2)*(vvy - vy2))*vz2 + c1o9*(vx2 + vz2)); - //f_T -= c2over27*drho + (drho + one)*(-(c1o9*(vx2 + vy2)) + c2o9*(vvz + vz2) - c1o3*(vx2 + vy2)*(vvz + vz2) + vx2*vy2*(c1o6 + c1o2*(vvz + vz2))); - //f_B -= c2over27*drho - (drho + one)*(c1o9*(vx2 + vy2) + c2o9*(vvz - vz2) - c1o3*(vx2 + vy2)*(vvz - vz2) - vx2*vy2*(c1o6 + c1o2*(-vvz + vz2))); - //f_NE -= c1over54*drho + (drho + one)*(c1o6*(vvx + vx2)*(vvy + vy2) + c1o18*(vvx + vvy + vx2 + vy2) - (c1o36 + c1o4*(vvx + vx2)*(vvy + vy2) + c1o12*(vvx + vvy + vx2 + vy2))*vz2); - //f_SW -= c1over54*drho + (drho + one)*(c1o6*(vvx - vx2)*(vvy - vy2) + c1o18*(-vvx - vvy + vx2 + vy2) - (c1o36 + c1o4*(vvx - vx2)*(vvy - vy2) + c1o12*(-vvx - vvy + vx2 + vy2))*vz2); - //f_SE -= c1over54*drho + (drho + one)*(-(c1o6*(vvx + vx2)*(vvy - vy2)) + c1o18*(vvx - vvy + vx2 + vy2) - (c1o36 - c1o4*(vvx + vx2)*(vvy - vy2) + c1o12*(vvx - vvy + vx2 + vy2))*vz2); - //f_NW -= c1over54*drho + (drho + one)*(-(c1o6*(vvx - vx2)*(vvy + vy2)) + c1o18*(-vvx + vvy + vx2 + vy2) - (c1o36 - c1o4*(vvx - vx2)*(vvy + vy2) + c1o12*(-vvx + vvy + vx2 + vy2))*vz2); - //f_TE -= c1over54*drho + (drho + one)*(c1o6*(vvx + vx2)*(vvz + vz2) + c1o18*(vvx + vvz + vx2 + vz2) - vy2*(c1o36 + c1o4*(vvx + vx2)*(vvz + vz2) + c1o12*(vvx + vvz + vx2 + vz2))); - //f_BW -= c1over54*drho - (drho + one)*(-(c1o6*(vvx - vx2)*(vvz - vz2)) + c1o18*(vvx + vvz - vx2 - vz2) + vy2*(c1o36 + c1o4*(vvx - vx2)*(vvz - vz2) + c1o12*(-vvx - vvz + vx2 + vz2))); - //f_BE -= c1over54*drho + (drho + one)*(-(c1o6*(vvx + vx2)*(vvz - vz2)) + c1o18*(vvx - vvz + vx2 + vz2) - vy2*(c1o36 - c1o4*(vvx + vx2)*(vvz - vz2) + c1o12*(vvx - vvz + vx2 + vz2))); - //f_TW -= c1over54*drho - (drho + one)*(c1o18*(vvx - vvz - vx2 - vz2) + c1o6*(vvx - vx2)*(vvz + vz2) + vy2*(c1o36 - c1o4*(vvx - vx2)*(vvz + vz2) + c1o12*(-vvx + vvz + vx2 + vz2))); - //f_TN -= c1over54*drho + (drho + one)*(c1o6*(vvy + vy2)*(vvz + vz2) + c1o18*(vvy + vvz + vy2 + vz2) - vx2*(c1o36 + c1o4*(vvy + vy2)*(vvz + vz2) + c1o12*(vvy + vvz + vy2 + vz2))); - //f_BS -= c1over54*drho - (drho + one)*(c1o18*(vvy - vvz - vy2 - vz2) + c1o6*(vvy - vy2)*(vvz + vz2) + vx2*(c1o36 - c1o4*(vvy - vy2)*(vvz + vz2) + c1o12*(-vvy + vvz + vy2 + vz2))); - //f_BN -= c1over54*drho + (drho + one)*(-(c1o6*(vvy + vy2)*(vvz - vz2)) + c1o18*(vvy - vvz + vy2 + vz2) - vx2*(c1o36 - c1o4*(vvy + vy2)*(vvz - vz2) + c1o12*(vvy - vvz + vy2 + vz2))); - //f_TS -= c1over54*drho - (drho + one)*(c1o18*(vvy - vvz - vy2 - vz2) + c1o6*(vvy - vy2)*(vvz + vz2) + vx2*(c1o36 - c1o4*(vvy - vy2)*(vvz + vz2) + c1o12*(-vvy + vvz + vy2 + vz2))); - //f_ZERO -= c8over27*drho - (drho + one)*(vx2*vy2*vz2 + c4o9*(vx2 + vy2 + vz2) - c2o3*(vx2*vy2 + (vx2 + vy2)*vz2)); - //f_TNE -= c1over216*drho + (drho + one)*(c1o8*(vvx + vx2)*(vvy + vy2)*(vvz + vz2) + c1o72*(vvx + vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 + vvy*(vvz + vx2 + vz2) + vvx*(vvy + vvz + vy2 + vz2))); - //f_TSW -= c1over216*drho + (drho + one)*(c1o8*(vvx - vx2)*(vvy - vy2)*(vvz + vz2) + c1o72*(-vvx - vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + vvx*(vvy - vvz - vy2 - vz2) + (vx2 + vy2)*vz2 - vvy*(vvz + vx2 + vz2))); - //f_TSE -= c1over216*drho + (drho + one)*(-(c1o8*(vvx + vx2)*(vvy - vy2)*(vvz + vz2)) + c1o72*(vvx - vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 - vvy*(vvz + vx2 + vz2) + vvx*(-vvy + vvz + vy2 + vz2))); - //f_TNW -= c1over216*drho - (drho + one)*(c1o72*(vvx - vvy - vvz - vx2 - vy2 - vz2) + c1o8*(vvx - vx2)*(vvy + vy2)*(vvz + vz2) - c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 + vvy*(vvz + vx2 + vz2) - vvx*(vvy + vvz + vy2 + vz2))); - //f_BNE -= c1over216*drho + (drho + one)*(-(c1o8*(vvx + vx2)*(vvy + vy2)*(vvz - vz2)) + c1o72*(vvx + vvy - vvz + vx2 + vy2 + vz2) + c1o24*(-(vvy*vvz) + vvy*vx2 - vvz*vx2 - vvz*vy2 + vx2*vy2 + (vvy + vx2 + vy2)*vz2 + vvx*(vvy - vvz + vy2 + vz2))); - //f_BSW -= c1over216*drho - (drho + one)*(c1o8*(vvx - vx2)*(vvy - vy2)*(vvz - vz2) + c1o72*(vvx + vvy + vvz - vx2 - vy2 - vz2) + c1o24*(vvz*vx2 + vvz*vy2 - vx2*vy2 - (vx2 + vy2)*vz2 + vvy*(-vvz + vx2 + vz2) + vvx*(-vvy - vvz + vy2 + vz2))); - //f_BSE -= c1over216*drho + (drho + one)*(c1o8*(vvx + vx2)*(vvy - vy2)*(vvz - vz2) + c1o72*(vvx - vvy - vvz + vx2 + vy2 + vz2) + c1o24*(-(vvx*vvy) - vvx*vvz + vvy*vvz - (vvy + vvz)*vx2 + (vvx - vvz + vx2)*vy2 + (vvx - vvy + vx2 + vy2)*vz2)); - //f_BNW -= c1over216*drho - (drho + one)*(-(c1o8*(vvx - vx2)*(vvy + vy2)*(vvz - vz2)) + c1o72*(vvx - vvy + vvz - vx2 - vy2 - vz2) + c1o24*(vvy*vvz - vvy*vx2 + vvz*vx2 + vvz*vy2 - vx2*vy2 - (vvy + vx2 + vy2)*vz2 + vvx*(vvy - vvz + vy2 + vz2))); - - //kxyFromfcNEQ_NWT = -three*omegaS*((((f_SW - f_SE) + (f_NE - f_NW)) + (((f_BSW - f_BSE) + (f_BNE - f_BNW)) + ((f_TSW - f_TSE) + (f_TNE - f_TNW)))) / (one + drho)); - //kyzFromfcNEQ_NWT = -three*omegaS*((((f_BS - f_TS) + (f_TN - f_BN)) + (((f_BSE - f_TSE) + (f_BSW - f_BNW)) + ((f_TNE - f_BNE) + (f_TNW - f_TSW)))) / (one + drho)); - //kxzFromfcNEQ_NWT = -three*omegaS*((((f_BW - f_BE) + (f_TE - f_TW)) + (((f_BSW - f_BSE) + (f_BNW - f_BNE)) + ((f_TSE - f_TSW) + (f_TNE - f_TNW)))) / (one + drho)); - //kxxMyyFromfcNEQ_NWT = -c3o2*omegaS *(((((f_BW - f_BS) + (f_TW - f_TS)) + ((f_BE - f_BN) + (f_TE - f_TN))) + ((f_W - f_S) + (f_E - f_N))) / (one + drho)); - //kxxMzzFromfcNEQ_NWT = -c3o2*omegaS *(((((f_SW - f_BS) + (f_NW - f_BN)) + ((f_SE - f_TS) + (f_NE - f_TN))) + ((f_W - f_B) + (f_E - f_T))) / (one + drho)); - //kyyMzzFromfcNEQ_NWT = -c3o2*omegaS *(((((f_SE - f_BE) + (f_SW - f_BW)) + ((f_NE - f_TE) + (f_NW - f_TW))) + ((f_S - f_B) + (f_N - f_T))) / (one + drho)); + kxyFromfcNEQ_NWT = -c3o1*omegaS*((((f_SW - f_SE) + (f_NE - f_NW)) + (((f_BSW - f_BSE) + (f_BNE - f_BNW)) + ((f_TSW - f_TSE) + (f_TNE - f_TNW)))) / (c1o1 + drho_NWT) - ((vx1_NWT*vx2_NWT))); + kyzFromfcNEQ_NWT = -c3o1*omegaS*((((f_BS - f_TS) + (f_TN - f_BN)) + (((f_BSE - f_TSE) + (f_BSW - f_BNW)) + ((f_TNE - f_BNE) + (f_TNW - f_TSW)))) / (c1o1 + drho_NWT) - ((vx2_NWT*vx3_NWT))); + kxzFromfcNEQ_NWT = -c3o1*omegaS*((((f_BW - f_BE) + (f_TE - f_TW)) + (((f_BSW - f_BSE) + (f_BNW - f_BNE)) + ((f_TSE - f_TSW) + (f_TNE - f_TNW)))) / (c1o1 + drho_NWT) - ((vx1_NWT*vx3_NWT))); + kxxMyyFromfcNEQ_NWT = -c3o2*omegaS *(((((f_BW - f_BS) + (f_TW - f_TS)) + ((f_BE - f_BN) + (f_TE - f_TN))) + ((f_W - f_S) + (f_E - f_N))) / (c1o1 + drho_NWT) - ((vx1_NWT*vx1_NWT - vx2_NWT*vx2_NWT))); + kxxMzzFromfcNEQ_NWT = -c3o2*omegaS *(((((f_SW - f_BS) + (f_NW - f_BN)) + ((f_SE - f_TS) + (f_NE - f_TN))) + ((f_W - f_B) + (f_E - f_T))) / (c1o1 + drho_NWT) - ((vx1_NWT*vx1_NWT - vx3_NWT*vx3_NWT))); + kyyMzzFromfcNEQ_NWT = -c3o2*omegaS *(((((f_SE - f_BE) + (f_SW - f_BW)) + ((f_NE - f_TE) + (f_NW - f_TW))) + ((f_S - f_B) + (f_N - f_T))) / (c1o1 + drho_NWT) - ((vx2_NWT*vx2_NWT - vx3_NWT*vx3_NWT))); + + ////konditionirt + //vvx = vx1_NWT; + //vvy = vx2_NWT; + //vvz = vx3_NWT; + //drho = drho_NWT; + //vx2 = vvx * vvx; + //vy2 = vvy * vvy; + //vz2 = vvz * vvz; + + + //f_E -= c2over27*drho + (drho + one)*(c2o9*(vvx + vx2) + (c1o6 + c1o2*(vvx + vx2))*vy2*vz2 - c1o9*(vy2 + vz2) - c1o3*(vvx + vx2)*(vy2 + vz2)); + //f_W -= c2over27*drho - (drho + one)*((vvx - vx2)*(c2o9 - c1o3*vy2) - (c1o6*vy2 + (vvx - vx2)*(c1o3 - c1o2*vy2))*vz2 + c1o9*(vy2 + vz2)); + //f_N -= c2over27*drho + (drho + one)*(c2o9*(vvy + vy2) + vx2*(c1o6 + c1o2*(vvy + vy2))*vz2 - c1o9*(vx2 + vz2) - c1o3*(vvy + vy2)*(vx2 + vz2)); + //f_S -= c2over27*drho - (drho + one)*((c2o9 - c1o3*vx2)*(vvy - vy2) - (c1o6*vx2 + (c1o3 - c1o2*vx2)*(vvy - vy2))*vz2 + c1o9*(vx2 + vz2)); + //f_T -= c2over27*drho + (drho + one)*(-(c1o9*(vx2 + vy2)) + c2o9*(vvz + vz2) - c1o3*(vx2 + vy2)*(vvz + vz2) + vx2*vy2*(c1o6 + c1o2*(vvz + vz2))); + //f_B -= c2over27*drho - (drho + one)*(c1o9*(vx2 + vy2) + c2o9*(vvz - vz2) - c1o3*(vx2 + vy2)*(vvz - vz2) - vx2*vy2*(c1o6 + c1o2*(-vvz + vz2))); + //f_NE -= c1over54*drho + (drho + one)*(c1o6*(vvx + vx2)*(vvy + vy2) + c1o18*(vvx + vvy + vx2 + vy2) - (c1o36 + c1o4*(vvx + vx2)*(vvy + vy2) + c1o12*(vvx + vvy + vx2 + vy2))*vz2); + //f_SW -= c1over54*drho + (drho + one)*(c1o6*(vvx - vx2)*(vvy - vy2) + c1o18*(-vvx - vvy + vx2 + vy2) - (c1o36 + c1o4*(vvx - vx2)*(vvy - vy2) + c1o12*(-vvx - vvy + vx2 + vy2))*vz2); + //f_SE -= c1over54*drho + (drho + one)*(-(c1o6*(vvx + vx2)*(vvy - vy2)) + c1o18*(vvx - vvy + vx2 + vy2) - (c1o36 - c1o4*(vvx + vx2)*(vvy - vy2) + c1o12*(vvx - vvy + vx2 + vy2))*vz2); + //f_NW -= c1over54*drho + (drho + one)*(-(c1o6*(vvx - vx2)*(vvy + vy2)) + c1o18*(-vvx + vvy + vx2 + vy2) - (c1o36 - c1o4*(vvx - vx2)*(vvy + vy2) + c1o12*(-vvx + vvy + vx2 + vy2))*vz2); + //f_TE -= c1over54*drho + (drho + one)*(c1o6*(vvx + vx2)*(vvz + vz2) + c1o18*(vvx + vvz + vx2 + vz2) - vy2*(c1o36 + c1o4*(vvx + vx2)*(vvz + vz2) + c1o12*(vvx + vvz + vx2 + vz2))); + //f_BW -= c1over54*drho - (drho + one)*(-(c1o6*(vvx - vx2)*(vvz - vz2)) + c1o18*(vvx + vvz - vx2 - vz2) + vy2*(c1o36 + c1o4*(vvx - vx2)*(vvz - vz2) + c1o12*(-vvx - vvz + vx2 + vz2))); + //f_BE -= c1over54*drho + (drho + one)*(-(c1o6*(vvx + vx2)*(vvz - vz2)) + c1o18*(vvx - vvz + vx2 + vz2) - vy2*(c1o36 - c1o4*(vvx + vx2)*(vvz - vz2) + c1o12*(vvx - vvz + vx2 + vz2))); + //f_TW -= c1over54*drho - (drho + one)*(c1o18*(vvx - vvz - vx2 - vz2) + c1o6*(vvx - vx2)*(vvz + vz2) + vy2*(c1o36 - c1o4*(vvx - vx2)*(vvz + vz2) + c1o12*(-vvx + vvz + vx2 + vz2))); + //f_TN -= c1over54*drho + (drho + one)*(c1o6*(vvy + vy2)*(vvz + vz2) + c1o18*(vvy + vvz + vy2 + vz2) - vx2*(c1o36 + c1o4*(vvy + vy2)*(vvz + vz2) + c1o12*(vvy + vvz + vy2 + vz2))); + //f_BS -= c1over54*drho - (drho + one)*(c1o18*(vvy - vvz - vy2 - vz2) + c1o6*(vvy - vy2)*(vvz + vz2) + vx2*(c1o36 - c1o4*(vvy - vy2)*(vvz + vz2) + c1o12*(-vvy + vvz + vy2 + vz2))); + //f_BN -= c1over54*drho + (drho + one)*(-(c1o6*(vvy + vy2)*(vvz - vz2)) + c1o18*(vvy - vvz + vy2 + vz2) - vx2*(c1o36 - c1o4*(vvy + vy2)*(vvz - vz2) + c1o12*(vvy - vvz + vy2 + vz2))); + //f_TS -= c1over54*drho - (drho + one)*(c1o18*(vvy - vvz - vy2 - vz2) + c1o6*(vvy - vy2)*(vvz + vz2) + vx2*(c1o36 - c1o4*(vvy - vy2)*(vvz + vz2) + c1o12*(-vvy + vvz + vy2 + vz2))); + //f_ZERO -= c8over27*drho - (drho + one)*(vx2*vy2*vz2 + c4o9*(vx2 + vy2 + vz2) - c2o3*(vx2*vy2 + (vx2 + vy2)*vz2)); + //f_TNE -= c1over216*drho + (drho + one)*(c1o8*(vvx + vx2)*(vvy + vy2)*(vvz + vz2) + c1o72*(vvx + vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 + vvy*(vvz + vx2 + vz2) + vvx*(vvy + vvz + vy2 + vz2))); + //f_TSW -= c1over216*drho + (drho + one)*(c1o8*(vvx - vx2)*(vvy - vy2)*(vvz + vz2) + c1o72*(-vvx - vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + vvx*(vvy - vvz - vy2 - vz2) + (vx2 + vy2)*vz2 - vvy*(vvz + vx2 + vz2))); + //f_TSE -= c1over216*drho + (drho + one)*(-(c1o8*(vvx + vx2)*(vvy - vy2)*(vvz + vz2)) + c1o72*(vvx - vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 - vvy*(vvz + vx2 + vz2) + vvx*(-vvy + vvz + vy2 + vz2))); + //f_TNW -= c1over216*drho - (drho + one)*(c1o72*(vvx - vvy - vvz - vx2 - vy2 - vz2) + c1o8*(vvx - vx2)*(vvy + vy2)*(vvz + vz2) - c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 + vvy*(vvz + vx2 + vz2) - vvx*(vvy + vvz + vy2 + vz2))); + //f_BNE -= c1over216*drho + (drho + one)*(-(c1o8*(vvx + vx2)*(vvy + vy2)*(vvz - vz2)) + c1o72*(vvx + vvy - vvz + vx2 + vy2 + vz2) + c1o24*(-(vvy*vvz) + vvy*vx2 - vvz*vx2 - vvz*vy2 + vx2*vy2 + (vvy + vx2 + vy2)*vz2 + vvx*(vvy - vvz + vy2 + vz2))); + //f_BSW -= c1over216*drho - (drho + one)*(c1o8*(vvx - vx2)*(vvy - vy2)*(vvz - vz2) + c1o72*(vvx + vvy + vvz - vx2 - vy2 - vz2) + c1o24*(vvz*vx2 + vvz*vy2 - vx2*vy2 - (vx2 + vy2)*vz2 + vvy*(-vvz + vx2 + vz2) + vvx*(-vvy - vvz + vy2 + vz2))); + //f_BSE -= c1over216*drho + (drho + one)*(c1o8*(vvx + vx2)*(vvy - vy2)*(vvz - vz2) + c1o72*(vvx - vvy - vvz + vx2 + vy2 + vz2) + c1o24*(-(vvx*vvy) - vvx*vvz + vvy*vvz - (vvy + vvz)*vx2 + (vvx - vvz + vx2)*vy2 + (vvx - vvy + vx2 + vy2)*vz2)); + //f_BNW -= c1over216*drho - (drho + one)*(-(c1o8*(vvx - vx2)*(vvy + vy2)*(vvz - vz2)) + c1o72*(vvx - vvy + vvz - vx2 - vy2 - vz2) + c1o24*(vvy*vvz - vvy*vx2 + vvz*vx2 + vvz*vy2 - vx2*vy2 - (vvy + vx2 + vy2)*vz2 + vvx*(vvy - vvz + vy2 + vz2))); + + //kxyFromfcNEQ_NWT = -three*omegaS*((((f_SW - f_SE) + (f_NE - f_NW)) + (((f_BSW - f_BSE) + (f_BNE - f_BNW)) + ((f_TSW - f_TSE) + (f_TNE - f_TNW)))) / (one + drho)); + //kyzFromfcNEQ_NWT = -three*omegaS*((((f_BS - f_TS) + (f_TN - f_BN)) + (((f_BSE - f_TSE) + (f_BSW - f_BNW)) + ((f_TNE - f_BNE) + (f_TNW - f_TSW)))) / (one + drho)); + //kxzFromfcNEQ_NWT = -three*omegaS*((((f_BW - f_BE) + (f_TE - f_TW)) + (((f_BSW - f_BSE) + (f_BNW - f_BNE)) + ((f_TSE - f_TSW) + (f_TNE - f_TNW)))) / (one + drho)); + //kxxMyyFromfcNEQ_NWT = -c3o2*omegaS *(((((f_BW - f_BS) + (f_TW - f_TS)) + ((f_BE - f_BN) + (f_TE - f_TN))) + ((f_W - f_S) + (f_E - f_N))) / (one + drho)); + //kxxMzzFromfcNEQ_NWT = -c3o2*omegaS *(((((f_SW - f_BS) + (f_NW - f_BN)) + ((f_SE - f_TS) + (f_NE - f_TN))) + ((f_W - f_B) + (f_E - f_T))) / (one + drho)); + //kyyMzzFromfcNEQ_NWT = -c3o2*omegaS *(((((f_SE - f_BE) + (f_SW - f_BW)) + ((f_NE - f_TE) + (f_NW - f_TW))) + ((f_S - f_B) + (f_N - f_T))) / (one + drho)); @@ -27247,67 +27247,67 @@ __global__ void scaleCF_Fix_comp_27( real* DC, drho_NET = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; vx1_NET = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_NET); - vx2_NET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NET); - vx3_NET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NET); + vx2_NET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NET); + vx3_NET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NET); - //nicht konditioniert - //kxyFromfcNEQ_NET = -three*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (one + drho_NET) - ((vx1_NET*vx2_NET))); + //nicht konditioniert + //kxyFromfcNEQ_NET = -three*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (one + drho_NET) - ((vx1_NET*vx2_NET))); //kyzFromfcNEQ_NET = -three*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (one + drho_NET) - ((vx2_NET*vx3_NET))); //kxzFromfcNEQ_NET = -three*omegaS*((f_BW+f_BSW+f_BNW-f_TW-f_TSW-f_TNW-f_BE-f_BSE-f_BNE+f_TE+f_TSE+f_TNE ) / (one + drho_NET) - ((vx1_NET*vx3_NET))); //kxxMyyFromfcNEQ_NET = -c3o2*omegaS *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (one + drho_NET) - ((vx1_NET*vx1_NET-vx2_NET*vx2_NET))); //kxxMzzFromfcNEQ_NET = -c3o2*omegaS *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (one + drho_NET) - ((vx1_NET*vx1_NET-vx3_NET*vx3_NET))); - kxyFromfcNEQ_NET = -c3o1*omegaS*((((f_SW - f_SE) + (f_NE - f_NW)) + (((f_BSW - f_BSE) + (f_BNE - f_BNW)) + ((f_TSW - f_TSE) + (f_TNE - f_TNW)))) / (c1o1 + drho_NET) - ((vx1_NET*vx2_NET))); - kyzFromfcNEQ_NET = -c3o1*omegaS*((((f_BS - f_TS) + (f_TN - f_BN)) + (((f_BSE - f_TSE) + (f_BSW - f_BNW)) + ((f_TNE - f_BNE) + (f_TNW - f_TSW)))) / (c1o1 + drho_NET) - ((vx2_NET*vx3_NET))); - kxzFromfcNEQ_NET = -c3o1*omegaS*((((f_BW - f_BE) + (f_TE - f_TW)) + (((f_BSW - f_BSE) + (f_BNW - f_BNE)) + ((f_TSE - f_TSW) + (f_TNE - f_TNW)))) / (c1o1 + drho_NET) - ((vx1_NET*vx3_NET))); - kxxMyyFromfcNEQ_NET = -c3o2*omegaS *(((((f_BW - f_BS) + (f_TW - f_TS)) + ((f_BE - f_BN) + (f_TE - f_TN))) + ((f_W - f_S) + (f_E - f_N))) / (c1o1 + drho_NET) - ((vx1_NET*vx1_NET - vx2_NET*vx2_NET))); - kxxMzzFromfcNEQ_NET = -c3o2*omegaS *(((((f_SW - f_BS) + (f_NW - f_BN)) + ((f_SE - f_TS) + (f_NE - f_TN))) + ((f_W - f_B) + (f_E - f_T))) / (c1o1 + drho_NET) - ((vx1_NET*vx1_NET - vx3_NET*vx3_NET))); - kyyMzzFromfcNEQ_NET = -c3o2*omegaS *(((((f_SE - f_BE) + (f_SW - f_BW)) + ((f_NE - f_TE) + (f_NW - f_TW))) + ((f_S - f_B) + (f_N - f_T))) / (c1o1 + drho_NET) - ((vx2_NET*vx2_NET - vx3_NET*vx3_NET))); - - ////konditionirt - //vvx = vx1_NET; - //vvy = vx2_NET; - //vvz = vx3_NET; - //drho = drho_NET; - //vx2 = vvx * vvx; - //vy2 = vvy * vvy; - //vz2 = vvz * vvz; - - - //f_E -= c2over27*drho + (drho + one)*(c2o9*(vvx + vx2) + (c1o6 + c1o2*(vvx + vx2))*vy2*vz2 - c1o9*(vy2 + vz2) - c1o3*(vvx + vx2)*(vy2 + vz2)); - //f_W -= c2over27*drho - (drho + one)*((vvx - vx2)*(c2o9 - c1o3*vy2) - (c1o6*vy2 + (vvx - vx2)*(c1o3 - c1o2*vy2))*vz2 + c1o9*(vy2 + vz2)); - //f_N -= c2over27*drho + (drho + one)*(c2o9*(vvy + vy2) + vx2*(c1o6 + c1o2*(vvy + vy2))*vz2 - c1o9*(vx2 + vz2) - c1o3*(vvy + vy2)*(vx2 + vz2)); - //f_S -= c2over27*drho - (drho + one)*((c2o9 - c1o3*vx2)*(vvy - vy2) - (c1o6*vx2 + (c1o3 - c1o2*vx2)*(vvy - vy2))*vz2 + c1o9*(vx2 + vz2)); - //f_T -= c2over27*drho + (drho + one)*(-(c1o9*(vx2 + vy2)) + c2o9*(vvz + vz2) - c1o3*(vx2 + vy2)*(vvz + vz2) + vx2*vy2*(c1o6 + c1o2*(vvz + vz2))); - //f_B -= c2over27*drho - (drho + one)*(c1o9*(vx2 + vy2) + c2o9*(vvz - vz2) - c1o3*(vx2 + vy2)*(vvz - vz2) - vx2*vy2*(c1o6 + c1o2*(-vvz + vz2))); - //f_NE -= c1over54*drho + (drho + one)*(c1o6*(vvx + vx2)*(vvy + vy2) + c1o18*(vvx + vvy + vx2 + vy2) - (c1o36 + c1o4*(vvx + vx2)*(vvy + vy2) + c1o12*(vvx + vvy + vx2 + vy2))*vz2); - //f_SW -= c1over54*drho + (drho + one)*(c1o6*(vvx - vx2)*(vvy - vy2) + c1o18*(-vvx - vvy + vx2 + vy2) - (c1o36 + c1o4*(vvx - vx2)*(vvy - vy2) + c1o12*(-vvx - vvy + vx2 + vy2))*vz2); - //f_SE -= c1over54*drho + (drho + one)*(-(c1o6*(vvx + vx2)*(vvy - vy2)) + c1o18*(vvx - vvy + vx2 + vy2) - (c1o36 - c1o4*(vvx + vx2)*(vvy - vy2) + c1o12*(vvx - vvy + vx2 + vy2))*vz2); - //f_NW -= c1over54*drho + (drho + one)*(-(c1o6*(vvx - vx2)*(vvy + vy2)) + c1o18*(-vvx + vvy + vx2 + vy2) - (c1o36 - c1o4*(vvx - vx2)*(vvy + vy2) + c1o12*(-vvx + vvy + vx2 + vy2))*vz2); - //f_TE -= c1over54*drho + (drho + one)*(c1o6*(vvx + vx2)*(vvz + vz2) + c1o18*(vvx + vvz + vx2 + vz2) - vy2*(c1o36 + c1o4*(vvx + vx2)*(vvz + vz2) + c1o12*(vvx + vvz + vx2 + vz2))); - //f_BW -= c1over54*drho - (drho + one)*(-(c1o6*(vvx - vx2)*(vvz - vz2)) + c1o18*(vvx + vvz - vx2 - vz2) + vy2*(c1o36 + c1o4*(vvx - vx2)*(vvz - vz2) + c1o12*(-vvx - vvz + vx2 + vz2))); - //f_BE -= c1over54*drho + (drho + one)*(-(c1o6*(vvx + vx2)*(vvz - vz2)) + c1o18*(vvx - vvz + vx2 + vz2) - vy2*(c1o36 - c1o4*(vvx + vx2)*(vvz - vz2) + c1o12*(vvx - vvz + vx2 + vz2))); - //f_TW -= c1over54*drho - (drho + one)*(c1o18*(vvx - vvz - vx2 - vz2) + c1o6*(vvx - vx2)*(vvz + vz2) + vy2*(c1o36 - c1o4*(vvx - vx2)*(vvz + vz2) + c1o12*(-vvx + vvz + vx2 + vz2))); - //f_TN -= c1over54*drho + (drho + one)*(c1o6*(vvy + vy2)*(vvz + vz2) + c1o18*(vvy + vvz + vy2 + vz2) - vx2*(c1o36 + c1o4*(vvy + vy2)*(vvz + vz2) + c1o12*(vvy + vvz + vy2 + vz2))); - //f_BS -= c1over54*drho - (drho + one)*(c1o18*(vvy - vvz - vy2 - vz2) + c1o6*(vvy - vy2)*(vvz + vz2) + vx2*(c1o36 - c1o4*(vvy - vy2)*(vvz + vz2) + c1o12*(-vvy + vvz + vy2 + vz2))); - //f_BN -= c1over54*drho + (drho + one)*(-(c1o6*(vvy + vy2)*(vvz - vz2)) + c1o18*(vvy - vvz + vy2 + vz2) - vx2*(c1o36 - c1o4*(vvy + vy2)*(vvz - vz2) + c1o12*(vvy - vvz + vy2 + vz2))); - //f_TS -= c1over54*drho - (drho + one)*(c1o18*(vvy - vvz - vy2 - vz2) + c1o6*(vvy - vy2)*(vvz + vz2) + vx2*(c1o36 - c1o4*(vvy - vy2)*(vvz + vz2) + c1o12*(-vvy + vvz + vy2 + vz2))); - //f_ZERO -= c8over27*drho - (drho + one)*(vx2*vy2*vz2 + c4o9*(vx2 + vy2 + vz2) - c2o3*(vx2*vy2 + (vx2 + vy2)*vz2)); - //f_TNE -= c1over216*drho + (drho + one)*(c1o8*(vvx + vx2)*(vvy + vy2)*(vvz + vz2) + c1o72*(vvx + vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 + vvy*(vvz + vx2 + vz2) + vvx*(vvy + vvz + vy2 + vz2))); - //f_TSW -= c1over216*drho + (drho + one)*(c1o8*(vvx - vx2)*(vvy - vy2)*(vvz + vz2) + c1o72*(-vvx - vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + vvx*(vvy - vvz - vy2 - vz2) + (vx2 + vy2)*vz2 - vvy*(vvz + vx2 + vz2))); - //f_TSE -= c1over216*drho + (drho + one)*(-(c1o8*(vvx + vx2)*(vvy - vy2)*(vvz + vz2)) + c1o72*(vvx - vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 - vvy*(vvz + vx2 + vz2) + vvx*(-vvy + vvz + vy2 + vz2))); - //f_TNW -= c1over216*drho - (drho + one)*(c1o72*(vvx - vvy - vvz - vx2 - vy2 - vz2) + c1o8*(vvx - vx2)*(vvy + vy2)*(vvz + vz2) - c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 + vvy*(vvz + vx2 + vz2) - vvx*(vvy + vvz + vy2 + vz2))); - //f_BNE -= c1over216*drho + (drho + one)*(-(c1o8*(vvx + vx2)*(vvy + vy2)*(vvz - vz2)) + c1o72*(vvx + vvy - vvz + vx2 + vy2 + vz2) + c1o24*(-(vvy*vvz) + vvy*vx2 - vvz*vx2 - vvz*vy2 + vx2*vy2 + (vvy + vx2 + vy2)*vz2 + vvx*(vvy - vvz + vy2 + vz2))); - //f_BSW -= c1over216*drho - (drho + one)*(c1o8*(vvx - vx2)*(vvy - vy2)*(vvz - vz2) + c1o72*(vvx + vvy + vvz - vx2 - vy2 - vz2) + c1o24*(vvz*vx2 + vvz*vy2 - vx2*vy2 - (vx2 + vy2)*vz2 + vvy*(-vvz + vx2 + vz2) + vvx*(-vvy - vvz + vy2 + vz2))); - //f_BSE -= c1over216*drho + (drho + one)*(c1o8*(vvx + vx2)*(vvy - vy2)*(vvz - vz2) + c1o72*(vvx - vvy - vvz + vx2 + vy2 + vz2) + c1o24*(-(vvx*vvy) - vvx*vvz + vvy*vvz - (vvy + vvz)*vx2 + (vvx - vvz + vx2)*vy2 + (vvx - vvy + vx2 + vy2)*vz2)); - //f_BNW -= c1over216*drho - (drho + one)*(-(c1o8*(vvx - vx2)*(vvy + vy2)*(vvz - vz2)) + c1o72*(vvx - vvy + vvz - vx2 - vy2 - vz2) + c1o24*(vvy*vvz - vvy*vx2 + vvz*vx2 + vvz*vy2 - vx2*vy2 - (vvy + vx2 + vy2)*vz2 + vvx*(vvy - vvz + vy2 + vz2))); - - //kxyFromfcNEQ_NET = -three*omegaS*((((f_SW - f_SE) + (f_NE - f_NW)) + (((f_BSW - f_BSE) + (f_BNE - f_BNW)) + ((f_TSW - f_TSE) + (f_TNE - f_TNW)))) / (one + drho)); - //kyzFromfcNEQ_NET = -three*omegaS*((((f_BS - f_TS) + (f_TN - f_BN)) + (((f_BSE - f_TSE) + (f_BSW - f_BNW)) + ((f_TNE - f_BNE) + (f_TNW - f_TSW)))) / (one + drho)); - //kxzFromfcNEQ_NET = -three*omegaS*((((f_BW - f_BE) + (f_TE - f_TW)) + (((f_BSW - f_BSE) + (f_BNW - f_BNE)) + ((f_TSE - f_TSW) + (f_TNE - f_TNW)))) / (one + drho)); - //kxxMyyFromfcNEQ_NET = -c3o2*omegaS *(((((f_BW - f_BS) + (f_TW - f_TS)) + ((f_BE - f_BN) + (f_TE - f_TN))) + ((f_W - f_S) + (f_E - f_N))) / (one + drho)); - //kxxMzzFromfcNEQ_NET = -c3o2*omegaS *(((((f_SW - f_BS) + (f_NW - f_BN)) + ((f_SE - f_TS) + (f_NE - f_TN))) + ((f_W - f_B) + (f_E - f_T))) / (one + drho)); - //kyyMzzFromfcNEQ_NET = -c3o2*omegaS *(((((f_SE - f_BE) + (f_SW - f_BW)) + ((f_NE - f_TE) + (f_NW - f_TW))) + ((f_S - f_B) + (f_N - f_T))) / (one + drho)); + kxyFromfcNEQ_NET = -c3o1*omegaS*((((f_SW - f_SE) + (f_NE - f_NW)) + (((f_BSW - f_BSE) + (f_BNE - f_BNW)) + ((f_TSW - f_TSE) + (f_TNE - f_TNW)))) / (c1o1 + drho_NET) - ((vx1_NET*vx2_NET))); + kyzFromfcNEQ_NET = -c3o1*omegaS*((((f_BS - f_TS) + (f_TN - f_BN)) + (((f_BSE - f_TSE) + (f_BSW - f_BNW)) + ((f_TNE - f_BNE) + (f_TNW - f_TSW)))) / (c1o1 + drho_NET) - ((vx2_NET*vx3_NET))); + kxzFromfcNEQ_NET = -c3o1*omegaS*((((f_BW - f_BE) + (f_TE - f_TW)) + (((f_BSW - f_BSE) + (f_BNW - f_BNE)) + ((f_TSE - f_TSW) + (f_TNE - f_TNW)))) / (c1o1 + drho_NET) - ((vx1_NET*vx3_NET))); + kxxMyyFromfcNEQ_NET = -c3o2*omegaS *(((((f_BW - f_BS) + (f_TW - f_TS)) + ((f_BE - f_BN) + (f_TE - f_TN))) + ((f_W - f_S) + (f_E - f_N))) / (c1o1 + drho_NET) - ((vx1_NET*vx1_NET - vx2_NET*vx2_NET))); + kxxMzzFromfcNEQ_NET = -c3o2*omegaS *(((((f_SW - f_BS) + (f_NW - f_BN)) + ((f_SE - f_TS) + (f_NE - f_TN))) + ((f_W - f_B) + (f_E - f_T))) / (c1o1 + drho_NET) - ((vx1_NET*vx1_NET - vx3_NET*vx3_NET))); + kyyMzzFromfcNEQ_NET = -c3o2*omegaS *(((((f_SE - f_BE) + (f_SW - f_BW)) + ((f_NE - f_TE) + (f_NW - f_TW))) + ((f_S - f_B) + (f_N - f_T))) / (c1o1 + drho_NET) - ((vx2_NET*vx2_NET - vx3_NET*vx3_NET))); + + ////konditionirt + //vvx = vx1_NET; + //vvy = vx2_NET; + //vvz = vx3_NET; + //drho = drho_NET; + //vx2 = vvx * vvx; + //vy2 = vvy * vvy; + //vz2 = vvz * vvz; + + + //f_E -= c2over27*drho + (drho + one)*(c2o9*(vvx + vx2) + (c1o6 + c1o2*(vvx + vx2))*vy2*vz2 - c1o9*(vy2 + vz2) - c1o3*(vvx + vx2)*(vy2 + vz2)); + //f_W -= c2over27*drho - (drho + one)*((vvx - vx2)*(c2o9 - c1o3*vy2) - (c1o6*vy2 + (vvx - vx2)*(c1o3 - c1o2*vy2))*vz2 + c1o9*(vy2 + vz2)); + //f_N -= c2over27*drho + (drho + one)*(c2o9*(vvy + vy2) + vx2*(c1o6 + c1o2*(vvy + vy2))*vz2 - c1o9*(vx2 + vz2) - c1o3*(vvy + vy2)*(vx2 + vz2)); + //f_S -= c2over27*drho - (drho + one)*((c2o9 - c1o3*vx2)*(vvy - vy2) - (c1o6*vx2 + (c1o3 - c1o2*vx2)*(vvy - vy2))*vz2 + c1o9*(vx2 + vz2)); + //f_T -= c2over27*drho + (drho + one)*(-(c1o9*(vx2 + vy2)) + c2o9*(vvz + vz2) - c1o3*(vx2 + vy2)*(vvz + vz2) + vx2*vy2*(c1o6 + c1o2*(vvz + vz2))); + //f_B -= c2over27*drho - (drho + one)*(c1o9*(vx2 + vy2) + c2o9*(vvz - vz2) - c1o3*(vx2 + vy2)*(vvz - vz2) - vx2*vy2*(c1o6 + c1o2*(-vvz + vz2))); + //f_NE -= c1over54*drho + (drho + one)*(c1o6*(vvx + vx2)*(vvy + vy2) + c1o18*(vvx + vvy + vx2 + vy2) - (c1o36 + c1o4*(vvx + vx2)*(vvy + vy2) + c1o12*(vvx + vvy + vx2 + vy2))*vz2); + //f_SW -= c1over54*drho + (drho + one)*(c1o6*(vvx - vx2)*(vvy - vy2) + c1o18*(-vvx - vvy + vx2 + vy2) - (c1o36 + c1o4*(vvx - vx2)*(vvy - vy2) + c1o12*(-vvx - vvy + vx2 + vy2))*vz2); + //f_SE -= c1over54*drho + (drho + one)*(-(c1o6*(vvx + vx2)*(vvy - vy2)) + c1o18*(vvx - vvy + vx2 + vy2) - (c1o36 - c1o4*(vvx + vx2)*(vvy - vy2) + c1o12*(vvx - vvy + vx2 + vy2))*vz2); + //f_NW -= c1over54*drho + (drho + one)*(-(c1o6*(vvx - vx2)*(vvy + vy2)) + c1o18*(-vvx + vvy + vx2 + vy2) - (c1o36 - c1o4*(vvx - vx2)*(vvy + vy2) + c1o12*(-vvx + vvy + vx2 + vy2))*vz2); + //f_TE -= c1over54*drho + (drho + one)*(c1o6*(vvx + vx2)*(vvz + vz2) + c1o18*(vvx + vvz + vx2 + vz2) - vy2*(c1o36 + c1o4*(vvx + vx2)*(vvz + vz2) + c1o12*(vvx + vvz + vx2 + vz2))); + //f_BW -= c1over54*drho - (drho + one)*(-(c1o6*(vvx - vx2)*(vvz - vz2)) + c1o18*(vvx + vvz - vx2 - vz2) + vy2*(c1o36 + c1o4*(vvx - vx2)*(vvz - vz2) + c1o12*(-vvx - vvz + vx2 + vz2))); + //f_BE -= c1over54*drho + (drho + one)*(-(c1o6*(vvx + vx2)*(vvz - vz2)) + c1o18*(vvx - vvz + vx2 + vz2) - vy2*(c1o36 - c1o4*(vvx + vx2)*(vvz - vz2) + c1o12*(vvx - vvz + vx2 + vz2))); + //f_TW -= c1over54*drho - (drho + one)*(c1o18*(vvx - vvz - vx2 - vz2) + c1o6*(vvx - vx2)*(vvz + vz2) + vy2*(c1o36 - c1o4*(vvx - vx2)*(vvz + vz2) + c1o12*(-vvx + vvz + vx2 + vz2))); + //f_TN -= c1over54*drho + (drho + one)*(c1o6*(vvy + vy2)*(vvz + vz2) + c1o18*(vvy + vvz + vy2 + vz2) - vx2*(c1o36 + c1o4*(vvy + vy2)*(vvz + vz2) + c1o12*(vvy + vvz + vy2 + vz2))); + //f_BS -= c1over54*drho - (drho + one)*(c1o18*(vvy - vvz - vy2 - vz2) + c1o6*(vvy - vy2)*(vvz + vz2) + vx2*(c1o36 - c1o4*(vvy - vy2)*(vvz + vz2) + c1o12*(-vvy + vvz + vy2 + vz2))); + //f_BN -= c1over54*drho + (drho + one)*(-(c1o6*(vvy + vy2)*(vvz - vz2)) + c1o18*(vvy - vvz + vy2 + vz2) - vx2*(c1o36 - c1o4*(vvy + vy2)*(vvz - vz2) + c1o12*(vvy - vvz + vy2 + vz2))); + //f_TS -= c1over54*drho - (drho + one)*(c1o18*(vvy - vvz - vy2 - vz2) + c1o6*(vvy - vy2)*(vvz + vz2) + vx2*(c1o36 - c1o4*(vvy - vy2)*(vvz + vz2) + c1o12*(-vvy + vvz + vy2 + vz2))); + //f_ZERO -= c8over27*drho - (drho + one)*(vx2*vy2*vz2 + c4o9*(vx2 + vy2 + vz2) - c2o3*(vx2*vy2 + (vx2 + vy2)*vz2)); + //f_TNE -= c1over216*drho + (drho + one)*(c1o8*(vvx + vx2)*(vvy + vy2)*(vvz + vz2) + c1o72*(vvx + vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 + vvy*(vvz + vx2 + vz2) + vvx*(vvy + vvz + vy2 + vz2))); + //f_TSW -= c1over216*drho + (drho + one)*(c1o8*(vvx - vx2)*(vvy - vy2)*(vvz + vz2) + c1o72*(-vvx - vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + vvx*(vvy - vvz - vy2 - vz2) + (vx2 + vy2)*vz2 - vvy*(vvz + vx2 + vz2))); + //f_TSE -= c1over216*drho + (drho + one)*(-(c1o8*(vvx + vx2)*(vvy - vy2)*(vvz + vz2)) + c1o72*(vvx - vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 - vvy*(vvz + vx2 + vz2) + vvx*(-vvy + vvz + vy2 + vz2))); + //f_TNW -= c1over216*drho - (drho + one)*(c1o72*(vvx - vvy - vvz - vx2 - vy2 - vz2) + c1o8*(vvx - vx2)*(vvy + vy2)*(vvz + vz2) - c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 + vvy*(vvz + vx2 + vz2) - vvx*(vvy + vvz + vy2 + vz2))); + //f_BNE -= c1over216*drho + (drho + one)*(-(c1o8*(vvx + vx2)*(vvy + vy2)*(vvz - vz2)) + c1o72*(vvx + vvy - vvz + vx2 + vy2 + vz2) + c1o24*(-(vvy*vvz) + vvy*vx2 - vvz*vx2 - vvz*vy2 + vx2*vy2 + (vvy + vx2 + vy2)*vz2 + vvx*(vvy - vvz + vy2 + vz2))); + //f_BSW -= c1over216*drho - (drho + one)*(c1o8*(vvx - vx2)*(vvy - vy2)*(vvz - vz2) + c1o72*(vvx + vvy + vvz - vx2 - vy2 - vz2) + c1o24*(vvz*vx2 + vvz*vy2 - vx2*vy2 - (vx2 + vy2)*vz2 + vvy*(-vvz + vx2 + vz2) + vvx*(-vvy - vvz + vy2 + vz2))); + //f_BSE -= c1over216*drho + (drho + one)*(c1o8*(vvx + vx2)*(vvy - vy2)*(vvz - vz2) + c1o72*(vvx - vvy - vvz + vx2 + vy2 + vz2) + c1o24*(-(vvx*vvy) - vvx*vvz + vvy*vvz - (vvy + vvz)*vx2 + (vvx - vvz + vx2)*vy2 + (vvx - vvy + vx2 + vy2)*vz2)); + //f_BNW -= c1over216*drho - (drho + one)*(-(c1o8*(vvx - vx2)*(vvy + vy2)*(vvz - vz2)) + c1o72*(vvx - vvy + vvz - vx2 - vy2 - vz2) + c1o24*(vvy*vvz - vvy*vx2 + vvz*vx2 + vvz*vy2 - vx2*vy2 - (vvy + vx2 + vy2)*vz2 + vvx*(vvy - vvz + vy2 + vz2))); + + //kxyFromfcNEQ_NET = -three*omegaS*((((f_SW - f_SE) + (f_NE - f_NW)) + (((f_BSW - f_BSE) + (f_BNE - f_BNW)) + ((f_TSW - f_TSE) + (f_TNE - f_TNW)))) / (one + drho)); + //kyzFromfcNEQ_NET = -three*omegaS*((((f_BS - f_TS) + (f_TN - f_BN)) + (((f_BSE - f_TSE) + (f_BSW - f_BNW)) + ((f_TNE - f_BNE) + (f_TNW - f_TSW)))) / (one + drho)); + //kxzFromfcNEQ_NET = -three*omegaS*((((f_BW - f_BE) + (f_TE - f_TW)) + (((f_BSW - f_BSE) + (f_BNW - f_BNE)) + ((f_TSE - f_TSW) + (f_TNE - f_TNW)))) / (one + drho)); + //kxxMyyFromfcNEQ_NET = -c3o2*omegaS *(((((f_BW - f_BS) + (f_TW - f_TS)) + ((f_BE - f_BN) + (f_TE - f_TN))) + ((f_W - f_S) + (f_E - f_N))) / (one + drho)); + //kxxMzzFromfcNEQ_NET = -c3o2*omegaS *(((((f_SW - f_BS) + (f_NW - f_BN)) + ((f_SE - f_TS) + (f_NE - f_TN))) + ((f_W - f_B) + (f_E - f_T))) / (one + drho)); + //kyyMzzFromfcNEQ_NET = -c3o2*omegaS *(((((f_SE - f_BE) + (f_SW - f_BW)) + ((f_NE - f_TE) + (f_NW - f_TW))) + ((f_S - f_B) + (f_N - f_T))) / (one + drho)); @@ -27354,178 +27354,178 @@ __global__ void scaleCF_Fix_comp_27( real* DC, drho_NEB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; vx1_NEB = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_NEB); - vx2_NEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NEB); - vx3_NEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NEB); + vx2_NEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NEB); + vx3_NEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NEB); - //nicht konditioniert - //kxyFromfcNEQ_NEB = -three*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (one + drho_NEB) - ((vx1_NEB*vx2_NEB))); + //nicht konditioniert + //kxyFromfcNEQ_NEB = -three*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (one + drho_NEB) - ((vx1_NEB*vx2_NEB))); //kyzFromfcNEQ_NEB = -three*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (one + drho_NEB) - ((vx2_NEB*vx3_NEB))); //kxzFromfcNEQ_NEB = -three*omegaS*((f_BW+f_BSW+f_BNW-f_TW-f_TSW-f_TNW-f_BE-f_BSE-f_BNE+f_TE+f_TSE+f_TNE ) / (one + drho_NEB) - ((vx1_NEB*vx3_NEB))); //kxxMyyFromfcNEQ_NEB = -c3o2*omegaS *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (one + drho_NEB) - ((vx1_NEB*vx1_NEB-vx2_NEB*vx2_NEB))); //kxxMzzFromfcNEQ_NEB = -c3o2*omegaS *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (one + drho_NEB) - ((vx1_NEB*vx1_NEB-vx3_NEB*vx3_NEB))); - kxyFromfcNEQ_NEB = -c3o1*omegaS*((((f_SW - f_SE) + (f_NE - f_NW)) + (((f_BSW - f_BSE) + (f_BNE - f_BNW)) + ((f_TSW - f_TSE) + (f_TNE - f_TNW)))) / (c1o1 + drho_NEB) - ((vx1_NEB*vx2_NEB))); - kyzFromfcNEQ_NEB = -c3o1*omegaS*((((f_BS - f_TS) + (f_TN - f_BN)) + (((f_BSE - f_TSE) + (f_BSW - f_BNW)) + ((f_TNE - f_BNE) + (f_TNW - f_TSW)))) / (c1o1 + drho_NEB) - ((vx2_NEB*vx3_NEB))); - kxzFromfcNEQ_NEB = -c3o1*omegaS*((((f_BW - f_BE) + (f_TE - f_TW)) + (((f_BSW - f_BSE) + (f_BNW - f_BNE)) + ((f_TSE - f_TSW) + (f_TNE - f_TNW)))) / (c1o1 + drho_NEB) - ((vx1_NEB*vx3_NEB))); - kxxMyyFromfcNEQ_NEB = -c3o2*omegaS *(((((f_BW - f_BS) + (f_TW - f_TS)) + ((f_BE - f_BN) + (f_TE - f_TN))) + ((f_W - f_S) + (f_E - f_N))) / (c1o1 + drho_NEB) - ((vx1_NEB*vx1_NEB - vx2_NEB*vx2_NEB))); - kxxMzzFromfcNEQ_NEB = -c3o2*omegaS *(((((f_SW - f_BS) + (f_NW - f_BN)) + ((f_SE - f_TS) + (f_NE - f_TN))) + ((f_W - f_B) + (f_E - f_T))) / (c1o1 + drho_NEB) - ((vx1_NEB*vx1_NEB - vx3_NEB*vx3_NEB))); - kyyMzzFromfcNEQ_NEB = -c3o2*omegaS *(((((f_SE - f_BE) + (f_SW - f_BW)) + ((f_NE - f_TE) + (f_NW - f_TW))) + ((f_S - f_B) + (f_N - f_T))) / (c1o1 + drho_NEB) - ((vx2_NEB*vx2_NEB - vx3_NEB*vx3_NEB))); - - ////konditionirt - //vvx = vx1_NEB; - //vvy = vx2_NEB; - //vvz = vx3_NEB; - //drho = drho_NEB; - //vx2 = vvx * vvx; - //vy2 = vvy * vvy; - //vz2 = vvz * vvz; - - - //f_E -= c2over27*drho + (drho + one)*(c2o9*(vvx + vx2) + (c1o6 + c1o2*(vvx + vx2))*vy2*vz2 - c1o9*(vy2 + vz2) - c1o3*(vvx + vx2)*(vy2 + vz2)); - //f_W -= c2over27*drho - (drho + one)*((vvx - vx2)*(c2o9 - c1o3*vy2) - (c1o6*vy2 + (vvx - vx2)*(c1o3 - c1o2*vy2))*vz2 + c1o9*(vy2 + vz2)); - //f_N -= c2over27*drho + (drho + one)*(c2o9*(vvy + vy2) + vx2*(c1o6 + c1o2*(vvy + vy2))*vz2 - c1o9*(vx2 + vz2) - c1o3*(vvy + vy2)*(vx2 + vz2)); - //f_S -= c2over27*drho - (drho + one)*((c2o9 - c1o3*vx2)*(vvy - vy2) - (c1o6*vx2 + (c1o3 - c1o2*vx2)*(vvy - vy2))*vz2 + c1o9*(vx2 + vz2)); - //f_T -= c2over27*drho + (drho + one)*(-(c1o9*(vx2 + vy2)) + c2o9*(vvz + vz2) - c1o3*(vx2 + vy2)*(vvz + vz2) + vx2*vy2*(c1o6 + c1o2*(vvz + vz2))); - //f_B -= c2over27*drho - (drho + one)*(c1o9*(vx2 + vy2) + c2o9*(vvz - vz2) - c1o3*(vx2 + vy2)*(vvz - vz2) - vx2*vy2*(c1o6 + c1o2*(-vvz + vz2))); - //f_NE -= c1over54*drho + (drho + one)*(c1o6*(vvx + vx2)*(vvy + vy2) + c1o18*(vvx + vvy + vx2 + vy2) - (c1o36 + c1o4*(vvx + vx2)*(vvy + vy2) + c1o12*(vvx + vvy + vx2 + vy2))*vz2); - //f_SW -= c1over54*drho + (drho + one)*(c1o6*(vvx - vx2)*(vvy - vy2) + c1o18*(-vvx - vvy + vx2 + vy2) - (c1o36 + c1o4*(vvx - vx2)*(vvy - vy2) + c1o12*(-vvx - vvy + vx2 + vy2))*vz2); - //f_SE -= c1over54*drho + (drho + one)*(-(c1o6*(vvx + vx2)*(vvy - vy2)) + c1o18*(vvx - vvy + vx2 + vy2) - (c1o36 - c1o4*(vvx + vx2)*(vvy - vy2) + c1o12*(vvx - vvy + vx2 + vy2))*vz2); - //f_NW -= c1over54*drho + (drho + one)*(-(c1o6*(vvx - vx2)*(vvy + vy2)) + c1o18*(-vvx + vvy + vx2 + vy2) - (c1o36 - c1o4*(vvx - vx2)*(vvy + vy2) + c1o12*(-vvx + vvy + vx2 + vy2))*vz2); - //f_TE -= c1over54*drho + (drho + one)*(c1o6*(vvx + vx2)*(vvz + vz2) + c1o18*(vvx + vvz + vx2 + vz2) - vy2*(c1o36 + c1o4*(vvx + vx2)*(vvz + vz2) + c1o12*(vvx + vvz + vx2 + vz2))); - //f_BW -= c1over54*drho - (drho + one)*(-(c1o6*(vvx - vx2)*(vvz - vz2)) + c1o18*(vvx + vvz - vx2 - vz2) + vy2*(c1o36 + c1o4*(vvx - vx2)*(vvz - vz2) + c1o12*(-vvx - vvz + vx2 + vz2))); - //f_BE -= c1over54*drho + (drho + one)*(-(c1o6*(vvx + vx2)*(vvz - vz2)) + c1o18*(vvx - vvz + vx2 + vz2) - vy2*(c1o36 - c1o4*(vvx + vx2)*(vvz - vz2) + c1o12*(vvx - vvz + vx2 + vz2))); - //f_TW -= c1over54*drho - (drho + one)*(c1o18*(vvx - vvz - vx2 - vz2) + c1o6*(vvx - vx2)*(vvz + vz2) + vy2*(c1o36 - c1o4*(vvx - vx2)*(vvz + vz2) + c1o12*(-vvx + vvz + vx2 + vz2))); - //f_TN -= c1over54*drho + (drho + one)*(c1o6*(vvy + vy2)*(vvz + vz2) + c1o18*(vvy + vvz + vy2 + vz2) - vx2*(c1o36 + c1o4*(vvy + vy2)*(vvz + vz2) + c1o12*(vvy + vvz + vy2 + vz2))); - //f_BS -= c1over54*drho - (drho + one)*(c1o18*(vvy - vvz - vy2 - vz2) + c1o6*(vvy - vy2)*(vvz + vz2) + vx2*(c1o36 - c1o4*(vvy - vy2)*(vvz + vz2) + c1o12*(-vvy + vvz + vy2 + vz2))); - //f_BN -= c1over54*drho + (drho + one)*(-(c1o6*(vvy + vy2)*(vvz - vz2)) + c1o18*(vvy - vvz + vy2 + vz2) - vx2*(c1o36 - c1o4*(vvy + vy2)*(vvz - vz2) + c1o12*(vvy - vvz + vy2 + vz2))); - //f_TS -= c1over54*drho - (drho + one)*(c1o18*(vvy - vvz - vy2 - vz2) + c1o6*(vvy - vy2)*(vvz + vz2) + vx2*(c1o36 - c1o4*(vvy - vy2)*(vvz + vz2) + c1o12*(-vvy + vvz + vy2 + vz2))); - //f_ZERO -= c8over27*drho - (drho + one)*(vx2*vy2*vz2 + c4o9*(vx2 + vy2 + vz2) - c2o3*(vx2*vy2 + (vx2 + vy2)*vz2)); - //f_TNE -= c1over216*drho + (drho + one)*(c1o8*(vvx + vx2)*(vvy + vy2)*(vvz + vz2) + c1o72*(vvx + vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 + vvy*(vvz + vx2 + vz2) + vvx*(vvy + vvz + vy2 + vz2))); - //f_TSW -= c1over216*drho + (drho + one)*(c1o8*(vvx - vx2)*(vvy - vy2)*(vvz + vz2) + c1o72*(-vvx - vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + vvx*(vvy - vvz - vy2 - vz2) + (vx2 + vy2)*vz2 - vvy*(vvz + vx2 + vz2))); - //f_TSE -= c1over216*drho + (drho + one)*(-(c1o8*(vvx + vx2)*(vvy - vy2)*(vvz + vz2)) + c1o72*(vvx - vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 - vvy*(vvz + vx2 + vz2) + vvx*(-vvy + vvz + vy2 + vz2))); - //f_TNW -= c1over216*drho - (drho + one)*(c1o72*(vvx - vvy - vvz - vx2 - vy2 - vz2) + c1o8*(vvx - vx2)*(vvy + vy2)*(vvz + vz2) - c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 + vvy*(vvz + vx2 + vz2) - vvx*(vvy + vvz + vy2 + vz2))); - //f_BNE -= c1over216*drho + (drho + one)*(-(c1o8*(vvx + vx2)*(vvy + vy2)*(vvz - vz2)) + c1o72*(vvx + vvy - vvz + vx2 + vy2 + vz2) + c1o24*(-(vvy*vvz) + vvy*vx2 - vvz*vx2 - vvz*vy2 + vx2*vy2 + (vvy + vx2 + vy2)*vz2 + vvx*(vvy - vvz + vy2 + vz2))); - //f_BSW -= c1over216*drho - (drho + one)*(c1o8*(vvx - vx2)*(vvy - vy2)*(vvz - vz2) + c1o72*(vvx + vvy + vvz - vx2 - vy2 - vz2) + c1o24*(vvz*vx2 + vvz*vy2 - vx2*vy2 - (vx2 + vy2)*vz2 + vvy*(-vvz + vx2 + vz2) + vvx*(-vvy - vvz + vy2 + vz2))); - //f_BSE -= c1over216*drho + (drho + one)*(c1o8*(vvx + vx2)*(vvy - vy2)*(vvz - vz2) + c1o72*(vvx - vvy - vvz + vx2 + vy2 + vz2) + c1o24*(-(vvx*vvy) - vvx*vvz + vvy*vvz - (vvy + vvz)*vx2 + (vvx - vvz + vx2)*vy2 + (vvx - vvy + vx2 + vy2)*vz2)); - //f_BNW -= c1over216*drho - (drho + one)*(-(c1o8*(vvx - vx2)*(vvy + vy2)*(vvz - vz2)) + c1o72*(vvx - vvy + vvz - vx2 - vy2 - vz2) + c1o24*(vvy*vvz - vvy*vx2 + vvz*vx2 + vvz*vy2 - vx2*vy2 - (vvy + vx2 + vy2)*vz2 + vvx*(vvy - vvz + vy2 + vz2))); - - //kxyFromfcNEQ_NEB = -three*omegaS*((((f_SW - f_SE) + (f_NE - f_NW)) + (((f_BSW - f_BSE) + (f_BNE - f_BNW)) + ((f_TSW - f_TSE) + (f_TNE - f_TNW)))) / (one + drho)); - //kyzFromfcNEQ_NEB = -three*omegaS*((((f_BS - f_TS) + (f_TN - f_BN)) + (((f_BSE - f_TSE) + (f_BSW - f_BNW)) + ((f_TNE - f_BNE) + (f_TNW - f_TSW)))) / (one + drho)); - //kxzFromfcNEQ_NEB = -three*omegaS*((((f_BW - f_BE) + (f_TE - f_TW)) + (((f_BSW - f_BSE) + (f_BNW - f_BNE)) + ((f_TSE - f_TSW) + (f_TNE - f_TNW)))) / (one + drho)); - //kxxMyyFromfcNEQ_NEB = -c3o2*omegaS *(((((f_BW - f_BS) + (f_TW - f_TS)) + ((f_BE - f_BN) + (f_TE - f_TN))) + ((f_W - f_S) + (f_E - f_N))) / (one + drho)); - //kxxMzzFromfcNEQ_NEB = -c3o2*omegaS *(((((f_SW - f_BS) + (f_NW - f_BN)) + ((f_SE - f_TS) + (f_NE - f_TN))) + ((f_W - f_B) + (f_E - f_T))) / (one + drho)); - //kyyMzzFromfcNEQ_NEB = -c3o2*omegaS *(((((f_SE - f_BE) + (f_SW - f_BW)) + ((f_NE - f_TE) + (f_NW - f_TW))) + ((f_S - f_B) + (f_N - f_T))) / (one + drho)); - - - - - - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // kxyFromfcNEQ_SWB = zero; - //kyzFromfcNEQ_SWB = zero; - //kxzFromfcNEQ_SWB = zero; - //kxxMyyFromfcNEQ_SWB = zero; - //kxxMzzFromfcNEQ_SWB = zero; - //kxyFromfcNEQ_SWT = zero; - //kyzFromfcNEQ_SWT = zero; - //kxzFromfcNEQ_SWT = zero; - //kxxMyyFromfcNEQ_SWT = zero; - //kxxMzzFromfcNEQ_SWT = zero; - //kxyFromfcNEQ_SET = zero; - //kyzFromfcNEQ_SET = zero; - //kxzFromfcNEQ_SET = zero; - //kxxMyyFromfcNEQ_SET = zero; - //kxxMzzFromfcNEQ_SET = zero; - //kxyFromfcNEQ_SEB = zero; - //kyzFromfcNEQ_SEB = zero; - //kxzFromfcNEQ_SEB = zero; - //kxxMyyFromfcNEQ_SEB = zero; - //kxxMzzFromfcNEQ_SEB = zero; - //kxyFromfcNEQ_NWB = zero; - //kyzFromfcNEQ_NWB = zero; - //kxzFromfcNEQ_NWB = zero; - //kxxMyyFromfcNEQ_NWB = zero; - //kxxMzzFromfcNEQ_NWB = zero; - //kxyFromfcNEQ_NWT = zero; - //kyzFromfcNEQ_NWT = zero; - //kxzFromfcNEQ_NWT = zero; - //kxxMyyFromfcNEQ_NWT = zero; - //kxxMzzFromfcNEQ_NWT = zero; - //kxyFromfcNEQ_NET = zero; - //kyzFromfcNEQ_NET = zero; - //kxzFromfcNEQ_NET = zero; - //kxxMyyFromfcNEQ_NET = zero; - //kxxMzzFromfcNEQ_NET = zero; - //kxyFromfcNEQ_NEB = zero; - //kyzFromfcNEQ_NEB = zero; - //kxzFromfcNEQ_NEB = zero; - //kxxMyyFromfcNEQ_NEB = zero; - //kxxMzzFromfcNEQ_NEB = zero; + kxyFromfcNEQ_NEB = -c3o1*omegaS*((((f_SW - f_SE) + (f_NE - f_NW)) + (((f_BSW - f_BSE) + (f_BNE - f_BNW)) + ((f_TSW - f_TSE) + (f_TNE - f_TNW)))) / (c1o1 + drho_NEB) - ((vx1_NEB*vx2_NEB))); + kyzFromfcNEQ_NEB = -c3o1*omegaS*((((f_BS - f_TS) + (f_TN - f_BN)) + (((f_BSE - f_TSE) + (f_BSW - f_BNW)) + ((f_TNE - f_BNE) + (f_TNW - f_TSW)))) / (c1o1 + drho_NEB) - ((vx2_NEB*vx3_NEB))); + kxzFromfcNEQ_NEB = -c3o1*omegaS*((((f_BW - f_BE) + (f_TE - f_TW)) + (((f_BSW - f_BSE) + (f_BNW - f_BNE)) + ((f_TSE - f_TSW) + (f_TNE - f_TNW)))) / (c1o1 + drho_NEB) - ((vx1_NEB*vx3_NEB))); + kxxMyyFromfcNEQ_NEB = -c3o2*omegaS *(((((f_BW - f_BS) + (f_TW - f_TS)) + ((f_BE - f_BN) + (f_TE - f_TN))) + ((f_W - f_S) + (f_E - f_N))) / (c1o1 + drho_NEB) - ((vx1_NEB*vx1_NEB - vx2_NEB*vx2_NEB))); + kxxMzzFromfcNEQ_NEB = -c3o2*omegaS *(((((f_SW - f_BS) + (f_NW - f_BN)) + ((f_SE - f_TS) + (f_NE - f_TN))) + ((f_W - f_B) + (f_E - f_T))) / (c1o1 + drho_NEB) - ((vx1_NEB*vx1_NEB - vx3_NEB*vx3_NEB))); + kyyMzzFromfcNEQ_NEB = -c3o2*omegaS *(((((f_SE - f_BE) + (f_SW - f_BW)) + ((f_NE - f_TE) + (f_NW - f_TW))) + ((f_S - f_B) + (f_N - f_T))) / (c1o1 + drho_NEB) - ((vx2_NEB*vx2_NEB - vx3_NEB*vx3_NEB))); + + ////konditionirt + //vvx = vx1_NEB; + //vvy = vx2_NEB; + //vvz = vx3_NEB; + //drho = drho_NEB; + //vx2 = vvx * vvx; + //vy2 = vvy * vvy; + //vz2 = vvz * vvz; + + + //f_E -= c2over27*drho + (drho + one)*(c2o9*(vvx + vx2) + (c1o6 + c1o2*(vvx + vx2))*vy2*vz2 - c1o9*(vy2 + vz2) - c1o3*(vvx + vx2)*(vy2 + vz2)); + //f_W -= c2over27*drho - (drho + one)*((vvx - vx2)*(c2o9 - c1o3*vy2) - (c1o6*vy2 + (vvx - vx2)*(c1o3 - c1o2*vy2))*vz2 + c1o9*(vy2 + vz2)); + //f_N -= c2over27*drho + (drho + one)*(c2o9*(vvy + vy2) + vx2*(c1o6 + c1o2*(vvy + vy2))*vz2 - c1o9*(vx2 + vz2) - c1o3*(vvy + vy2)*(vx2 + vz2)); + //f_S -= c2over27*drho - (drho + one)*((c2o9 - c1o3*vx2)*(vvy - vy2) - (c1o6*vx2 + (c1o3 - c1o2*vx2)*(vvy - vy2))*vz2 + c1o9*(vx2 + vz2)); + //f_T -= c2over27*drho + (drho + one)*(-(c1o9*(vx2 + vy2)) + c2o9*(vvz + vz2) - c1o3*(vx2 + vy2)*(vvz + vz2) + vx2*vy2*(c1o6 + c1o2*(vvz + vz2))); + //f_B -= c2over27*drho - (drho + one)*(c1o9*(vx2 + vy2) + c2o9*(vvz - vz2) - c1o3*(vx2 + vy2)*(vvz - vz2) - vx2*vy2*(c1o6 + c1o2*(-vvz + vz2))); + //f_NE -= c1over54*drho + (drho + one)*(c1o6*(vvx + vx2)*(vvy + vy2) + c1o18*(vvx + vvy + vx2 + vy2) - (c1o36 + c1o4*(vvx + vx2)*(vvy + vy2) + c1o12*(vvx + vvy + vx2 + vy2))*vz2); + //f_SW -= c1over54*drho + (drho + one)*(c1o6*(vvx - vx2)*(vvy - vy2) + c1o18*(-vvx - vvy + vx2 + vy2) - (c1o36 + c1o4*(vvx - vx2)*(vvy - vy2) + c1o12*(-vvx - vvy + vx2 + vy2))*vz2); + //f_SE -= c1over54*drho + (drho + one)*(-(c1o6*(vvx + vx2)*(vvy - vy2)) + c1o18*(vvx - vvy + vx2 + vy2) - (c1o36 - c1o4*(vvx + vx2)*(vvy - vy2) + c1o12*(vvx - vvy + vx2 + vy2))*vz2); + //f_NW -= c1over54*drho + (drho + one)*(-(c1o6*(vvx - vx2)*(vvy + vy2)) + c1o18*(-vvx + vvy + vx2 + vy2) - (c1o36 - c1o4*(vvx - vx2)*(vvy + vy2) + c1o12*(-vvx + vvy + vx2 + vy2))*vz2); + //f_TE -= c1over54*drho + (drho + one)*(c1o6*(vvx + vx2)*(vvz + vz2) + c1o18*(vvx + vvz + vx2 + vz2) - vy2*(c1o36 + c1o4*(vvx + vx2)*(vvz + vz2) + c1o12*(vvx + vvz + vx2 + vz2))); + //f_BW -= c1over54*drho - (drho + one)*(-(c1o6*(vvx - vx2)*(vvz - vz2)) + c1o18*(vvx + vvz - vx2 - vz2) + vy2*(c1o36 + c1o4*(vvx - vx2)*(vvz - vz2) + c1o12*(-vvx - vvz + vx2 + vz2))); + //f_BE -= c1over54*drho + (drho + one)*(-(c1o6*(vvx + vx2)*(vvz - vz2)) + c1o18*(vvx - vvz + vx2 + vz2) - vy2*(c1o36 - c1o4*(vvx + vx2)*(vvz - vz2) + c1o12*(vvx - vvz + vx2 + vz2))); + //f_TW -= c1over54*drho - (drho + one)*(c1o18*(vvx - vvz - vx2 - vz2) + c1o6*(vvx - vx2)*(vvz + vz2) + vy2*(c1o36 - c1o4*(vvx - vx2)*(vvz + vz2) + c1o12*(-vvx + vvz + vx2 + vz2))); + //f_TN -= c1over54*drho + (drho + one)*(c1o6*(vvy + vy2)*(vvz + vz2) + c1o18*(vvy + vvz + vy2 + vz2) - vx2*(c1o36 + c1o4*(vvy + vy2)*(vvz + vz2) + c1o12*(vvy + vvz + vy2 + vz2))); + //f_BS -= c1over54*drho - (drho + one)*(c1o18*(vvy - vvz - vy2 - vz2) + c1o6*(vvy - vy2)*(vvz + vz2) + vx2*(c1o36 - c1o4*(vvy - vy2)*(vvz + vz2) + c1o12*(-vvy + vvz + vy2 + vz2))); + //f_BN -= c1over54*drho + (drho + one)*(-(c1o6*(vvy + vy2)*(vvz - vz2)) + c1o18*(vvy - vvz + vy2 + vz2) - vx2*(c1o36 - c1o4*(vvy + vy2)*(vvz - vz2) + c1o12*(vvy - vvz + vy2 + vz2))); + //f_TS -= c1over54*drho - (drho + one)*(c1o18*(vvy - vvz - vy2 - vz2) + c1o6*(vvy - vy2)*(vvz + vz2) + vx2*(c1o36 - c1o4*(vvy - vy2)*(vvz + vz2) + c1o12*(-vvy + vvz + vy2 + vz2))); + //f_ZERO -= c8over27*drho - (drho + one)*(vx2*vy2*vz2 + c4o9*(vx2 + vy2 + vz2) - c2o3*(vx2*vy2 + (vx2 + vy2)*vz2)); + //f_TNE -= c1over216*drho + (drho + one)*(c1o8*(vvx + vx2)*(vvy + vy2)*(vvz + vz2) + c1o72*(vvx + vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 + vvy*(vvz + vx2 + vz2) + vvx*(vvy + vvz + vy2 + vz2))); + //f_TSW -= c1over216*drho + (drho + one)*(c1o8*(vvx - vx2)*(vvy - vy2)*(vvz + vz2) + c1o72*(-vvx - vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + vvx*(vvy - vvz - vy2 - vz2) + (vx2 + vy2)*vz2 - vvy*(vvz + vx2 + vz2))); + //f_TSE -= c1over216*drho + (drho + one)*(-(c1o8*(vvx + vx2)*(vvy - vy2)*(vvz + vz2)) + c1o72*(vvx - vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 - vvy*(vvz + vx2 + vz2) + vvx*(-vvy + vvz + vy2 + vz2))); + //f_TNW -= c1over216*drho - (drho + one)*(c1o72*(vvx - vvy - vvz - vx2 - vy2 - vz2) + c1o8*(vvx - vx2)*(vvy + vy2)*(vvz + vz2) - c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 + vvy*(vvz + vx2 + vz2) - vvx*(vvy + vvz + vy2 + vz2))); + //f_BNE -= c1over216*drho + (drho + one)*(-(c1o8*(vvx + vx2)*(vvy + vy2)*(vvz - vz2)) + c1o72*(vvx + vvy - vvz + vx2 + vy2 + vz2) + c1o24*(-(vvy*vvz) + vvy*vx2 - vvz*vx2 - vvz*vy2 + vx2*vy2 + (vvy + vx2 + vy2)*vz2 + vvx*(vvy - vvz + vy2 + vz2))); + //f_BSW -= c1over216*drho - (drho + one)*(c1o8*(vvx - vx2)*(vvy - vy2)*(vvz - vz2) + c1o72*(vvx + vvy + vvz - vx2 - vy2 - vz2) + c1o24*(vvz*vx2 + vvz*vy2 - vx2*vy2 - (vx2 + vy2)*vz2 + vvy*(-vvz + vx2 + vz2) + vvx*(-vvy - vvz + vy2 + vz2))); + //f_BSE -= c1over216*drho + (drho + one)*(c1o8*(vvx + vx2)*(vvy - vy2)*(vvz - vz2) + c1o72*(vvx - vvy - vvz + vx2 + vy2 + vz2) + c1o24*(-(vvx*vvy) - vvx*vvz + vvy*vvz - (vvy + vvz)*vx2 + (vvx - vvz + vx2)*vy2 + (vvx - vvy + vx2 + vy2)*vz2)); + //f_BNW -= c1over216*drho - (drho + one)*(-(c1o8*(vvx - vx2)*(vvy + vy2)*(vvz - vz2)) + c1o72*(vvx - vvy + vvz - vx2 - vy2 - vz2) + c1o24*(vvy*vvz - vvy*vx2 + vvz*vx2 + vvz*vy2 - vx2*vy2 - (vvy + vx2 + vy2)*vz2 + vvx*(vvy - vvz + vy2 + vz2))); + + //kxyFromfcNEQ_NEB = -three*omegaS*((((f_SW - f_SE) + (f_NE - f_NW)) + (((f_BSW - f_BSE) + (f_BNE - f_BNW)) + ((f_TSW - f_TSE) + (f_TNE - f_TNW)))) / (one + drho)); + //kyzFromfcNEQ_NEB = -three*omegaS*((((f_BS - f_TS) + (f_TN - f_BN)) + (((f_BSE - f_TSE) + (f_BSW - f_BNW)) + ((f_TNE - f_BNE) + (f_TNW - f_TSW)))) / (one + drho)); + //kxzFromfcNEQ_NEB = -three*omegaS*((((f_BW - f_BE) + (f_TE - f_TW)) + (((f_BSW - f_BSE) + (f_BNW - f_BNE)) + ((f_TSE - f_TSW) + (f_TNE - f_TNW)))) / (one + drho)); + //kxxMyyFromfcNEQ_NEB = -c3o2*omegaS *(((((f_BW - f_BS) + (f_TW - f_TS)) + ((f_BE - f_BN) + (f_TE - f_TN))) + ((f_W - f_S) + (f_E - f_N))) / (one + drho)); + //kxxMzzFromfcNEQ_NEB = -c3o2*omegaS *(((((f_SW - f_BS) + (f_NW - f_BN)) + ((f_SE - f_TS) + (f_NE - f_TN))) + ((f_W - f_B) + (f_E - f_T))) / (one + drho)); + //kyyMzzFromfcNEQ_NEB = -c3o2*omegaS *(((((f_SE - f_BE) + (f_SW - f_BW)) + ((f_NE - f_TE) + (f_NW - f_TW))) + ((f_S - f_B) + (f_N - f_T))) / (one + drho)); + + + + + + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // kxyFromfcNEQ_SWB = zero; + //kyzFromfcNEQ_SWB = zero; + //kxzFromfcNEQ_SWB = zero; + //kxxMyyFromfcNEQ_SWB = zero; + //kxxMzzFromfcNEQ_SWB = zero; + //kxyFromfcNEQ_SWT = zero; + //kyzFromfcNEQ_SWT = zero; + //kxzFromfcNEQ_SWT = zero; + //kxxMyyFromfcNEQ_SWT = zero; + //kxxMzzFromfcNEQ_SWT = zero; + //kxyFromfcNEQ_SET = zero; + //kyzFromfcNEQ_SET = zero; + //kxzFromfcNEQ_SET = zero; + //kxxMyyFromfcNEQ_SET = zero; + //kxxMzzFromfcNEQ_SET = zero; + //kxyFromfcNEQ_SEB = zero; + //kyzFromfcNEQ_SEB = zero; + //kxzFromfcNEQ_SEB = zero; + //kxxMyyFromfcNEQ_SEB = zero; + //kxxMzzFromfcNEQ_SEB = zero; + //kxyFromfcNEQ_NWB = zero; + //kyzFromfcNEQ_NWB = zero; + //kxzFromfcNEQ_NWB = zero; + //kxxMyyFromfcNEQ_NWB = zero; + //kxxMzzFromfcNEQ_NWB = zero; + //kxyFromfcNEQ_NWT = zero; + //kyzFromfcNEQ_NWT = zero; + //kxzFromfcNEQ_NWT = zero; + //kxxMyyFromfcNEQ_NWT = zero; + //kxxMzzFromfcNEQ_NWT = zero; + //kxyFromfcNEQ_NET = zero; + //kyzFromfcNEQ_NET = zero; + //kxzFromfcNEQ_NET = zero; + //kxxMyyFromfcNEQ_NET = zero; + //kxxMzzFromfcNEQ_NET = zero; + //kxyFromfcNEQ_NEB = zero; + //kyzFromfcNEQ_NEB = zero; + //kxzFromfcNEQ_NEB = zero; + //kxxMyyFromfcNEQ_NEB = zero; + //kxxMzzFromfcNEQ_NEB = zero; ////////////////////////////////////////////////////////////////////////// //3 ////////////////////////////////////////////////////////////////////////// - a0 = c1o8*(((vx1_NEB + vx1_NET) + (vx1_NWB + vx1_NWT)) + ((vx1_SEB + vx1_SET) + (vx1_SWB + vx1_SWT))); - ax = c1o4*(((vx1_NEB - vx1_SWT) + (vx1_NET - vx1_SWB)) + ((vx1_SET - vx1_NWB) + (vx1_SEB - vx1_NWT))); - ay = c1o4*(((vx1_NEB - vx1_SWT) + (vx1_NET - vx1_SWB)) + ((vx1_NWB - vx1_SET) + (vx1_NWT - vx1_SEB))); - az = c1o4*(((vx1_SWT - vx1_NEB) + (vx1_NET - vx1_SWB)) + ((vx1_SET - vx1_NWB) + (vx1_NWT - vx1_SEB))); - axy = c1o2*(((vx1_NEB - vx1_SET) + (vx1_SWB - vx1_NWT)) + ((vx1_SWT - vx1_NWB) + (vx1_NET - vx1_SEB))); - axz = c1o2*(((vx1_SET - vx1_NEB) + (vx1_SWB - vx1_NWT)) + ((vx1_NWB - vx1_SWT) + (vx1_NET - vx1_SEB))); - ayz = c1o2*(((vx1_NET - vx1_NWB) + (vx1_SEB - vx1_SWT)) + ((vx1_NWT - vx1_NEB) + (vx1_SWB - vx1_SET))); - axyz= ((vx1_SWT - vx1_NEB) + (vx1_NET - vx1_SWB)) + ((vx1_NWB - vx1_SET) + (vx1_SEB - vx1_NWT)) ; - b0 = c1o8*(((vx2_NEB + vx2_NET) + (vx2_NWB + vx2_NWT)) + ((vx2_SEB + vx2_SET) + (vx2_SWB + vx2_SWT))); - bx = c1o4*(((vx2_NEB - vx2_SWT) + (vx2_NET - vx2_SWB)) + ((vx2_SET - vx2_NWB) + (vx2_SEB - vx2_NWT))); - by = c1o4*(((vx2_NEB - vx2_SWT) + (vx2_NET - vx2_SWB)) + ((vx2_NWB - vx2_SET) + (vx2_NWT - vx2_SEB))); - bz = c1o4*(((vx2_SWT - vx2_NEB) + (vx2_NET - vx2_SWB)) + ((vx2_SET - vx2_NWB) + (vx2_NWT - vx2_SEB))); - bxy = c1o2*(((vx2_NEB - vx2_NWT) + (vx2_SWB - vx2_SET)) + ((vx2_SWT - vx2_SEB) + (vx2_NET - vx2_NWB))); - bxz = c1o2*(((vx2_SWB - vx2_NEB) + (vx2_SET - vx2_NWT)) + ((vx2_NWB - vx2_SEB) + (vx2_NET - vx2_SWT))); - byz = c1o2*(((vx2_NWT - vx2_NEB) + (vx2_SWB - vx2_SET)) + ((vx2_SEB - vx2_SWT) + (vx2_NET - vx2_NWB))); - bxyz= ((vx2_SWT - vx2_NEB) + (vx2_NET - vx2_SWB)) + ((vx2_NWB - vx2_SET) + (vx2_SEB - vx2_NWT)) ; - c0 = c1o8*(((vx3_NEB + vx3_NET) + (vx3_NWB + vx3_NWT)) + ((vx3_SEB + vx3_SET) + (vx3_SWB + vx3_SWT))); - cx = c1o4*(((vx3_NEB - vx3_SWT) + (vx3_NET - vx3_SWB)) + ((vx3_SET - vx3_NWB) + (vx3_SEB - vx3_NWT))); - cy = c1o4*(((vx3_NEB - vx3_SWT) + (vx3_NET - vx3_SWB)) + ((vx3_NWB - vx3_SET) + (vx3_NWT - vx3_SEB))); - cz = c1o4*(((vx3_SWT - vx3_NEB) + (vx3_NET - vx3_SWB)) + ((vx3_SET - vx3_NWB) + (vx3_NWT - vx3_SEB))); - cxy = c1o2*(((vx3_NEB - vx3_SET) + (vx3_SWB - vx3_NWT)) + ((vx3_SWT - vx3_NWB) + (vx3_NET - vx3_SEB))); - cxz = c1o2*(((vx3_SWB - vx3_NEB) + (vx3_SET - vx3_NWT)) + ((vx3_NWB - vx3_SEB) + (vx3_NET - vx3_SWT))); - cyz = c1o2*(((vx3_SWB - vx3_NEB) + (vx3_NWT - vx3_SET)) + ((vx3_SEB - vx3_NWB) + (vx3_NET - vx3_SWT))); - cxyz= ((vx3_SWT - vx3_NEB) + (vx3_NET - vx3_SWB)) + ((vx3_NWB - vx3_SET) + (vx3_SEB - vx3_NWT)) ; - - //bxx = zero; - //cxx = zero; - //ayy = zero; - //cyy = zero; - //azz = zero; - //bzz = zero; - //axx = zero; - //byy = zero; - //czz = zero; - - bxx = c1o8*(((kxyFromfcNEQ_NET - kxyFromfcNEQ_SWB) + (kxyFromfcNEQ_SEB - kxyFromfcNEQ_NWT)) + ((kxyFromfcNEQ_SET - kxyFromfcNEQ_NWB) + (kxyFromfcNEQ_NEB - kxyFromfcNEQ_SWT))) - c1o2*axy; - cxx = c1o8*(((kxzFromfcNEQ_NET - kxzFromfcNEQ_SWB) + (kxzFromfcNEQ_SEB - kxzFromfcNEQ_NWT)) + ((kxzFromfcNEQ_SET - kxzFromfcNEQ_NWB) + (kxzFromfcNEQ_NEB - kxzFromfcNEQ_SWT))) - c1o2*axz; - - ayy = c1o8*(((kxyFromfcNEQ_NET - kxyFromfcNEQ_SWB) + (kxyFromfcNEQ_NEB - kxyFromfcNEQ_SWT)) - ((kxyFromfcNEQ_SEB - kxyFromfcNEQ_NWT) + (kxyFromfcNEQ_SET - kxyFromfcNEQ_NWB))) - c1o2*bxy; - cyy = c1o8*(((kyzFromfcNEQ_NET - kyzFromfcNEQ_SWB) + (kyzFromfcNEQ_NEB - kyzFromfcNEQ_SWT)) - ((kyzFromfcNEQ_SEB - kyzFromfcNEQ_NWT) + (kyzFromfcNEQ_SET - kyzFromfcNEQ_NWB))) - c1o2*byz; - - azz = c1o8*(((kxzFromfcNEQ_NET - kxzFromfcNEQ_SWB) - (kxzFromfcNEQ_SEB - kxzFromfcNEQ_NWT)) + ((kxzFromfcNEQ_SET - kxzFromfcNEQ_NWB) - (kxzFromfcNEQ_NEB - kxzFromfcNEQ_SWT))) - c1o2*cxz; - bzz = c1o8*(((kyzFromfcNEQ_NET - kyzFromfcNEQ_SWB) - (kyzFromfcNEQ_SEB - kyzFromfcNEQ_NWT)) + ((kyzFromfcNEQ_SET - kyzFromfcNEQ_NWB) - (kyzFromfcNEQ_NEB - kyzFromfcNEQ_SWT))) - c1o2*cyz; - - axx = (c1o16*(((kxxMyyFromfcNEQ_NET - kxxMyyFromfcNEQ_SWB) + (kxxMyyFromfcNEQ_SEB - kxxMyyFromfcNEQ_NWT)) + ((kxxMyyFromfcNEQ_SET - kxxMyyFromfcNEQ_NWB) + (kxxMyyFromfcNEQ_NEB - kxxMyyFromfcNEQ_SWT))) - c1o4*bxy) - + (c1o16*(((kxxMzzFromfcNEQ_NET - kxxMzzFromfcNEQ_SWB) + (kxxMzzFromfcNEQ_SEB - kxxMzzFromfcNEQ_NWT)) + ((kxxMzzFromfcNEQ_SET - kxxMzzFromfcNEQ_NWB) + (kxxMzzFromfcNEQ_NEB - kxxMzzFromfcNEQ_SWT))) - c1o4*cxz); - - byy = (-c1o16*(((kxxMyyFromfcNEQ_NET - kxxMyyFromfcNEQ_SWB) - (kxxMyyFromfcNEQ_SEB - kxxMyyFromfcNEQ_NWT)) + ((kxxMyyFromfcNEQ_NEB - kxxMyyFromfcNEQ_SWT) - (kxxMyyFromfcNEQ_SET - kxxMyyFromfcNEQ_NWB))) - c1o4*axy) - + (c1o16*(((kyyMzzFromfcNEQ_NET - kyyMzzFromfcNEQ_SWB) - (kyyMzzFromfcNEQ_SEB - kyyMzzFromfcNEQ_NWT)) + ((kyyMzzFromfcNEQ_NEB - kyyMzzFromfcNEQ_SWT) - (kyyMzzFromfcNEQ_SET - kyyMzzFromfcNEQ_NWB))) - c1o4*cyz); - - czz = (-c1o16*(((kxxMzzFromfcNEQ_NET - kxxMzzFromfcNEQ_SWB) - (kxxMzzFromfcNEQ_SEB - kxxMzzFromfcNEQ_NWT)) - ((kxxMzzFromfcNEQ_NEB - kxxMzzFromfcNEQ_SWT) - (kxxMzzFromfcNEQ_SET - kxxMzzFromfcNEQ_NWB))) - c1o4*axz) - + (c1o16*(((kyyMzzFromfcNEQ_NET - kyyMzzFromfcNEQ_SWB) - (kyyMzzFromfcNEQ_SEB - kyyMzzFromfcNEQ_NWT)) - ((kyyMzzFromfcNEQ_NEB - kyyMzzFromfcNEQ_SWT) - (kyyMzzFromfcNEQ_SET - kyyMzzFromfcNEQ_NWB))) - c1o4*byz); - - a0 -= c1o4*(axx + ayy + azz); - b0 -= c1o4*(bxx + byy + bzz); - c0 -= c1o4*(cxx + cyy + czz); - - - - - //////////// - //a0 = (-kxxMyyFromfcNEQ_NEB - kxxMyyFromfcNEQ_NET + kxxMyyFromfcNEQ_NWB + kxxMyyFromfcNEQ_NWT - + a0 = c1o8*(((vx1_NEB + vx1_NET) + (vx1_NWB + vx1_NWT)) + ((vx1_SEB + vx1_SET) + (vx1_SWB + vx1_SWT))); + ax = c1o4*(((vx1_NEB - vx1_SWT) + (vx1_NET - vx1_SWB)) + ((vx1_SET - vx1_NWB) + (vx1_SEB - vx1_NWT))); + ay = c1o4*(((vx1_NEB - vx1_SWT) + (vx1_NET - vx1_SWB)) + ((vx1_NWB - vx1_SET) + (vx1_NWT - vx1_SEB))); + az = c1o4*(((vx1_SWT - vx1_NEB) + (vx1_NET - vx1_SWB)) + ((vx1_SET - vx1_NWB) + (vx1_NWT - vx1_SEB))); + axy = c1o2*(((vx1_NEB - vx1_SET) + (vx1_SWB - vx1_NWT)) + ((vx1_SWT - vx1_NWB) + (vx1_NET - vx1_SEB))); + axz = c1o2*(((vx1_SET - vx1_NEB) + (vx1_SWB - vx1_NWT)) + ((vx1_NWB - vx1_SWT) + (vx1_NET - vx1_SEB))); + ayz = c1o2*(((vx1_NET - vx1_NWB) + (vx1_SEB - vx1_SWT)) + ((vx1_NWT - vx1_NEB) + (vx1_SWB - vx1_SET))); + axyz= ((vx1_SWT - vx1_NEB) + (vx1_NET - vx1_SWB)) + ((vx1_NWB - vx1_SET) + (vx1_SEB - vx1_NWT)) ; + b0 = c1o8*(((vx2_NEB + vx2_NET) + (vx2_NWB + vx2_NWT)) + ((vx2_SEB + vx2_SET) + (vx2_SWB + vx2_SWT))); + bx = c1o4*(((vx2_NEB - vx2_SWT) + (vx2_NET - vx2_SWB)) + ((vx2_SET - vx2_NWB) + (vx2_SEB - vx2_NWT))); + by = c1o4*(((vx2_NEB - vx2_SWT) + (vx2_NET - vx2_SWB)) + ((vx2_NWB - vx2_SET) + (vx2_NWT - vx2_SEB))); + bz = c1o4*(((vx2_SWT - vx2_NEB) + (vx2_NET - vx2_SWB)) + ((vx2_SET - vx2_NWB) + (vx2_NWT - vx2_SEB))); + bxy = c1o2*(((vx2_NEB - vx2_NWT) + (vx2_SWB - vx2_SET)) + ((vx2_SWT - vx2_SEB) + (vx2_NET - vx2_NWB))); + bxz = c1o2*(((vx2_SWB - vx2_NEB) + (vx2_SET - vx2_NWT)) + ((vx2_NWB - vx2_SEB) + (vx2_NET - vx2_SWT))); + byz = c1o2*(((vx2_NWT - vx2_NEB) + (vx2_SWB - vx2_SET)) + ((vx2_SEB - vx2_SWT) + (vx2_NET - vx2_NWB))); + bxyz= ((vx2_SWT - vx2_NEB) + (vx2_NET - vx2_SWB)) + ((vx2_NWB - vx2_SET) + (vx2_SEB - vx2_NWT)) ; + c0 = c1o8*(((vx3_NEB + vx3_NET) + (vx3_NWB + vx3_NWT)) + ((vx3_SEB + vx3_SET) + (vx3_SWB + vx3_SWT))); + cx = c1o4*(((vx3_NEB - vx3_SWT) + (vx3_NET - vx3_SWB)) + ((vx3_SET - vx3_NWB) + (vx3_SEB - vx3_NWT))); + cy = c1o4*(((vx3_NEB - vx3_SWT) + (vx3_NET - vx3_SWB)) + ((vx3_NWB - vx3_SET) + (vx3_NWT - vx3_SEB))); + cz = c1o4*(((vx3_SWT - vx3_NEB) + (vx3_NET - vx3_SWB)) + ((vx3_SET - vx3_NWB) + (vx3_NWT - vx3_SEB))); + cxy = c1o2*(((vx3_NEB - vx3_SET) + (vx3_SWB - vx3_NWT)) + ((vx3_SWT - vx3_NWB) + (vx3_NET - vx3_SEB))); + cxz = c1o2*(((vx3_SWB - vx3_NEB) + (vx3_SET - vx3_NWT)) + ((vx3_NWB - vx3_SEB) + (vx3_NET - vx3_SWT))); + cyz = c1o2*(((vx3_SWB - vx3_NEB) + (vx3_NWT - vx3_SET)) + ((vx3_SEB - vx3_NWB) + (vx3_NET - vx3_SWT))); + cxyz= ((vx3_SWT - vx3_NEB) + (vx3_NET - vx3_SWB)) + ((vx3_NWB - vx3_SET) + (vx3_SEB - vx3_NWT)) ; + + //bxx = zero; + //cxx = zero; + //ayy = zero; + //cyy = zero; + //azz = zero; + //bzz = zero; + //axx = zero; + //byy = zero; + //czz = zero; + + bxx = c1o8*(((kxyFromfcNEQ_NET - kxyFromfcNEQ_SWB) + (kxyFromfcNEQ_SEB - kxyFromfcNEQ_NWT)) + ((kxyFromfcNEQ_SET - kxyFromfcNEQ_NWB) + (kxyFromfcNEQ_NEB - kxyFromfcNEQ_SWT))) - c1o2*axy; + cxx = c1o8*(((kxzFromfcNEQ_NET - kxzFromfcNEQ_SWB) + (kxzFromfcNEQ_SEB - kxzFromfcNEQ_NWT)) + ((kxzFromfcNEQ_SET - kxzFromfcNEQ_NWB) + (kxzFromfcNEQ_NEB - kxzFromfcNEQ_SWT))) - c1o2*axz; + + ayy = c1o8*(((kxyFromfcNEQ_NET - kxyFromfcNEQ_SWB) + (kxyFromfcNEQ_NEB - kxyFromfcNEQ_SWT)) - ((kxyFromfcNEQ_SEB - kxyFromfcNEQ_NWT) + (kxyFromfcNEQ_SET - kxyFromfcNEQ_NWB))) - c1o2*bxy; + cyy = c1o8*(((kyzFromfcNEQ_NET - kyzFromfcNEQ_SWB) + (kyzFromfcNEQ_NEB - kyzFromfcNEQ_SWT)) - ((kyzFromfcNEQ_SEB - kyzFromfcNEQ_NWT) + (kyzFromfcNEQ_SET - kyzFromfcNEQ_NWB))) - c1o2*byz; + + azz = c1o8*(((kxzFromfcNEQ_NET - kxzFromfcNEQ_SWB) - (kxzFromfcNEQ_SEB - kxzFromfcNEQ_NWT)) + ((kxzFromfcNEQ_SET - kxzFromfcNEQ_NWB) - (kxzFromfcNEQ_NEB - kxzFromfcNEQ_SWT))) - c1o2*cxz; + bzz = c1o8*(((kyzFromfcNEQ_NET - kyzFromfcNEQ_SWB) - (kyzFromfcNEQ_SEB - kyzFromfcNEQ_NWT)) + ((kyzFromfcNEQ_SET - kyzFromfcNEQ_NWB) - (kyzFromfcNEQ_NEB - kyzFromfcNEQ_SWT))) - c1o2*cyz; + + axx = (c1o16*(((kxxMyyFromfcNEQ_NET - kxxMyyFromfcNEQ_SWB) + (kxxMyyFromfcNEQ_SEB - kxxMyyFromfcNEQ_NWT)) + ((kxxMyyFromfcNEQ_SET - kxxMyyFromfcNEQ_NWB) + (kxxMyyFromfcNEQ_NEB - kxxMyyFromfcNEQ_SWT))) - c1o4*bxy) + + (c1o16*(((kxxMzzFromfcNEQ_NET - kxxMzzFromfcNEQ_SWB) + (kxxMzzFromfcNEQ_SEB - kxxMzzFromfcNEQ_NWT)) + ((kxxMzzFromfcNEQ_SET - kxxMzzFromfcNEQ_NWB) + (kxxMzzFromfcNEQ_NEB - kxxMzzFromfcNEQ_SWT))) - c1o4*cxz); + + byy = (-c1o16*(((kxxMyyFromfcNEQ_NET - kxxMyyFromfcNEQ_SWB) - (kxxMyyFromfcNEQ_SEB - kxxMyyFromfcNEQ_NWT)) + ((kxxMyyFromfcNEQ_NEB - kxxMyyFromfcNEQ_SWT) - (kxxMyyFromfcNEQ_SET - kxxMyyFromfcNEQ_NWB))) - c1o4*axy) + + (c1o16*(((kyyMzzFromfcNEQ_NET - kyyMzzFromfcNEQ_SWB) - (kyyMzzFromfcNEQ_SEB - kyyMzzFromfcNEQ_NWT)) + ((kyyMzzFromfcNEQ_NEB - kyyMzzFromfcNEQ_SWT) - (kyyMzzFromfcNEQ_SET - kyyMzzFromfcNEQ_NWB))) - c1o4*cyz); + + czz = (-c1o16*(((kxxMzzFromfcNEQ_NET - kxxMzzFromfcNEQ_SWB) - (kxxMzzFromfcNEQ_SEB - kxxMzzFromfcNEQ_NWT)) - ((kxxMzzFromfcNEQ_NEB - kxxMzzFromfcNEQ_SWT) - (kxxMzzFromfcNEQ_SET - kxxMzzFromfcNEQ_NWB))) - c1o4*axz) + + (c1o16*(((kyyMzzFromfcNEQ_NET - kyyMzzFromfcNEQ_SWB) - (kyyMzzFromfcNEQ_SEB - kyyMzzFromfcNEQ_NWT)) - ((kyyMzzFromfcNEQ_NEB - kyyMzzFromfcNEQ_SWT) - (kyyMzzFromfcNEQ_SET - kyyMzzFromfcNEQ_NWB))) - c1o4*byz); + + a0 -= c1o4*(axx + ayy + azz); + b0 -= c1o4*(bxx + byy + bzz); + c0 -= c1o4*(cxx + cyy + czz); + + + + + //////////// + //a0 = (-kxxMyyFromfcNEQ_NEB - kxxMyyFromfcNEQ_NET + kxxMyyFromfcNEQ_NWB + kxxMyyFromfcNEQ_NWT - // kxxMyyFromfcNEQ_SEB - kxxMyyFromfcNEQ_SET + kxxMyyFromfcNEQ_SWB + kxxMyyFromfcNEQ_SWT - // kxxMzzFromfcNEQ_NEB - kxxMzzFromfcNEQ_NET + kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_NWT - // kxxMzzFromfcNEQ_SEB - kxxMzzFromfcNEQ_SET + kxxMzzFromfcNEQ_SWB + kxxMzzFromfcNEQ_SWT - @@ -27642,101 +27642,101 @@ __global__ void scaleCF_Fix_comp_27( real* DC, // cxyz=-vx3_NEB + vx3_NET + vx3_NWB - vx3_NWT + vx3_SEB - vx3_SET - vx3_SWB + vx3_SWT; ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real kxyAverage = c0o1; - real kyzAverage = c0o1; - real kxzAverage = c0o1; - real kxxMyyAverage = c0o1; - real kxxMzzAverage = c0o1; - - //real kxyAverage =(kxyFromfcNEQ_SWB+ - // kxyFromfcNEQ_SWT+ - // kxyFromfcNEQ_SET+ - // kxyFromfcNEQ_SEB+ - // kxyFromfcNEQ_NWB+ - // kxyFromfcNEQ_NWT+ - // kxyFromfcNEQ_NET+ - // kxyFromfcNEQ_NEB)*c1o8-(ay+bx); - //real kyzAverage =(kyzFromfcNEQ_SWB+ - // kyzFromfcNEQ_SWT+ - // kyzFromfcNEQ_SET+ - // kyzFromfcNEQ_SEB+ - // kyzFromfcNEQ_NWB+ - // kyzFromfcNEQ_NWT+ - // kyzFromfcNEQ_NET+ - // kyzFromfcNEQ_NEB)*c1o8-(bz+cy); - //real kxzAverage =(kxzFromfcNEQ_SWB+ - // kxzFromfcNEQ_SWT+ - // kxzFromfcNEQ_SET+ - // kxzFromfcNEQ_SEB+ - // kxzFromfcNEQ_NWB+ - // kxzFromfcNEQ_NWT+ - // kxzFromfcNEQ_NET+ - // kxzFromfcNEQ_NEB)*c1o8-(az+cx); - //real kxxMyyAverage =(kxxMyyFromfcNEQ_SWB+ - // kxxMyyFromfcNEQ_SWT+ - // kxxMyyFromfcNEQ_SET+ - // kxxMyyFromfcNEQ_SEB+ - // kxxMyyFromfcNEQ_NWB+ - // kxxMyyFromfcNEQ_NWT+ - // kxxMyyFromfcNEQ_NET+ - // kxxMyyFromfcNEQ_NEB)*c1o8-(ax-by); - //real kxxMzzAverage =(kxxMzzFromfcNEQ_SWB+ - // kxxMzzFromfcNEQ_SWT+ - // kxxMzzFromfcNEQ_SET+ - // kxxMzzFromfcNEQ_SEB+ - // kxxMzzFromfcNEQ_NWB+ - // kxxMzzFromfcNEQ_NWT+ - // kxxMzzFromfcNEQ_NET+ - // kxxMzzFromfcNEQ_NEB)*c1o8-(ax-cz); - - - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //Press - //d0 = ( press_NEB + press_NET + press_NWB + press_NWT + press_SEB + press_SET + press_SWB + press_SWT) * c1o8; - //dx = ( press_NEB + press_NET - press_NWB - press_NWT + press_SEB + press_SET - press_SWB - press_SWT) * c1o4; - //dy = ( press_NEB + press_NET + press_NWB + press_NWT - press_SEB - press_SET - press_SWB - press_SWT) * c1o4; - //dz = (-press_NEB + press_NET - press_NWB + press_NWT - press_SEB + press_SET - press_SWB + press_SWT) * c1o4; - //dxy = ( press_NEB + press_NET - press_NWB - press_NWT - press_SEB - press_SET + press_SWB + press_SWT) * c1o2; - //dxz = (-press_NEB + press_NET + press_NWB - press_NWT - press_SEB + press_SET + press_SWB - press_SWT) * c1o2; - //dyz = (-press_NEB + press_NET - press_NWB + press_NWT + press_SEB - press_SET + press_SWB - press_SWT) * c1o2; - //dxyz = -press_NEB + press_NET + press_NWB - press_NWT + press_SEB - press_SET - press_SWB + press_SWT; - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho - d0 = ( ((drho_NEB + drho_SWT) + (drho_NWB + drho_SET)) + ((drho_SEB + drho_NWT) + (drho_SWB + drho_NET))) * c1o8; - dx = ( ((drho_NEB - drho_SWT) + (drho_SEB - drho_NWT)) + ((drho_SET - drho_NWB) + (drho_NET - drho_SWB))) * c1o4; - dy = ( ((drho_NEB - drho_SWT) + (drho_NWT - drho_SEB)) + ((drho_NWB - drho_SET) + (drho_NET - drho_SWB))) * c1o4; - dz = ( ((drho_SWT - drho_NEB) + (drho_NET - drho_SWB)) + ((drho_SET - drho_NWB) + (drho_NWT - drho_SEB))) * c1o4; - dxy = ( ((drho_NEB - drho_SET) + (drho_NET - drho_SEB)) + ((drho_SWT - drho_NWB) + (drho_SWB - drho_NWT))) * c1o2; - dxz = ( ((drho_SWB - drho_NEB) + (drho_NET - drho_SWT)) + ((drho_NWB - drho_SEB) + (drho_SET - drho_NWT))) * c1o2; - dyz = ( ((drho_NWT - drho_NEB) + (drho_NET - drho_NWB)) + ((drho_SEB - drho_SWT) + (drho_SWB - drho_SET))) * c1o2; - //d0 = ( drho_NEB + drho_NET + drho_NWB + drho_NWT + drho_SEB + drho_SET + drho_SWB + drho_SWT) * c1o8; - //dx = ( drho_NEB + drho_NET - drho_NWB - drho_NWT + drho_SEB + drho_SET - drho_SWB - drho_SWT) * c1o4; - //dy = ( drho_NEB + drho_NET + drho_NWB + drho_NWT - drho_SEB - drho_SET - drho_SWB - drho_SWT) * c1o4; - //dz = (-drho_NEB + drho_NET - drho_NWB + drho_NWT - drho_SEB + drho_SET - drho_SWB + drho_SWT) * c1o4; - //dxy = ( drho_NEB + drho_NET - drho_NWB - drho_NWT - drho_SEB - drho_SET + drho_SWB + drho_SWT) * c1o2; - //dxz = (-drho_NEB + drho_NET + drho_NWB - drho_NWT - drho_SEB + drho_SET + drho_SWB - drho_SWT) * c1o2; - //dyz = (-drho_NEB + drho_NET - drho_NWB + drho_NWT + drho_SEB - drho_SET + drho_SWB - drho_SWT) * c1o2; - dxyz = -drho_NEB + drho_NET + drho_NWB - drho_NWT + drho_SEB - drho_SET - drho_SWB + drho_SWT; - // d0 = zero; - //dx = zero; - //dy = zero; - //dz = zero; - //dxy = zero; - //dxz = zero; - //dyz = zero; - //dxyz = zero; + real kxyAverage = c0o1; + real kyzAverage = c0o1; + real kxzAverage = c0o1; + real kxxMyyAverage = c0o1; + real kxxMzzAverage = c0o1; + + //real kxyAverage =(kxyFromfcNEQ_SWB+ + // kxyFromfcNEQ_SWT+ + // kxyFromfcNEQ_SET+ + // kxyFromfcNEQ_SEB+ + // kxyFromfcNEQ_NWB+ + // kxyFromfcNEQ_NWT+ + // kxyFromfcNEQ_NET+ + // kxyFromfcNEQ_NEB)*c1o8-(ay+bx); + //real kyzAverage =(kyzFromfcNEQ_SWB+ + // kyzFromfcNEQ_SWT+ + // kyzFromfcNEQ_SET+ + // kyzFromfcNEQ_SEB+ + // kyzFromfcNEQ_NWB+ + // kyzFromfcNEQ_NWT+ + // kyzFromfcNEQ_NET+ + // kyzFromfcNEQ_NEB)*c1o8-(bz+cy); + //real kxzAverage =(kxzFromfcNEQ_SWB+ + // kxzFromfcNEQ_SWT+ + // kxzFromfcNEQ_SET+ + // kxzFromfcNEQ_SEB+ + // kxzFromfcNEQ_NWB+ + // kxzFromfcNEQ_NWT+ + // kxzFromfcNEQ_NET+ + // kxzFromfcNEQ_NEB)*c1o8-(az+cx); + //real kxxMyyAverage =(kxxMyyFromfcNEQ_SWB+ + // kxxMyyFromfcNEQ_SWT+ + // kxxMyyFromfcNEQ_SET+ + // kxxMyyFromfcNEQ_SEB+ + // kxxMyyFromfcNEQ_NWB+ + // kxxMyyFromfcNEQ_NWT+ + // kxxMyyFromfcNEQ_NET+ + // kxxMyyFromfcNEQ_NEB)*c1o8-(ax-by); + //real kxxMzzAverage =(kxxMzzFromfcNEQ_SWB+ + // kxxMzzFromfcNEQ_SWT+ + // kxxMzzFromfcNEQ_SET+ + // kxxMzzFromfcNEQ_SEB+ + // kxxMzzFromfcNEQ_NWB+ + // kxxMzzFromfcNEQ_NWT+ + // kxxMzzFromfcNEQ_NET+ + // kxxMzzFromfcNEQ_NEB)*c1o8-(ax-cz); + + + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //Press + //d0 = ( press_NEB + press_NET + press_NWB + press_NWT + press_SEB + press_SET + press_SWB + press_SWT) * c1o8; + //dx = ( press_NEB + press_NET - press_NWB - press_NWT + press_SEB + press_SET - press_SWB - press_SWT) * c1o4; + //dy = ( press_NEB + press_NET + press_NWB + press_NWT - press_SEB - press_SET - press_SWB - press_SWT) * c1o4; + //dz = (-press_NEB + press_NET - press_NWB + press_NWT - press_SEB + press_SET - press_SWB + press_SWT) * c1o4; + //dxy = ( press_NEB + press_NET - press_NWB - press_NWT - press_SEB - press_SET + press_SWB + press_SWT) * c1o2; + //dxz = (-press_NEB + press_NET + press_NWB - press_NWT - press_SEB + press_SET + press_SWB - press_SWT) * c1o2; + //dyz = (-press_NEB + press_NET - press_NWB + press_NWT + press_SEB - press_SET + press_SWB - press_SWT) * c1o2; + //dxyz = -press_NEB + press_NET + press_NWB - press_NWT + press_SEB - press_SET - press_SWB + press_SWT; + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho + d0 = ( ((drho_NEB + drho_SWT) + (drho_NWB + drho_SET)) + ((drho_SEB + drho_NWT) + (drho_SWB + drho_NET))) * c1o8; + dx = ( ((drho_NEB - drho_SWT) + (drho_SEB - drho_NWT)) + ((drho_SET - drho_NWB) + (drho_NET - drho_SWB))) * c1o4; + dy = ( ((drho_NEB - drho_SWT) + (drho_NWT - drho_SEB)) + ((drho_NWB - drho_SET) + (drho_NET - drho_SWB))) * c1o4; + dz = ( ((drho_SWT - drho_NEB) + (drho_NET - drho_SWB)) + ((drho_SET - drho_NWB) + (drho_NWT - drho_SEB))) * c1o4; + dxy = ( ((drho_NEB - drho_SET) + (drho_NET - drho_SEB)) + ((drho_SWT - drho_NWB) + (drho_SWB - drho_NWT))) * c1o2; + dxz = ( ((drho_SWB - drho_NEB) + (drho_NET - drho_SWT)) + ((drho_NWB - drho_SEB) + (drho_SET - drho_NWT))) * c1o2; + dyz = ( ((drho_NWT - drho_NEB) + (drho_NET - drho_NWB)) + ((drho_SEB - drho_SWT) + (drho_SWB - drho_SET))) * c1o2; + //d0 = ( drho_NEB + drho_NET + drho_NWB + drho_NWT + drho_SEB + drho_SET + drho_SWB + drho_SWT) * c1o8; + //dx = ( drho_NEB + drho_NET - drho_NWB - drho_NWT + drho_SEB + drho_SET - drho_SWB - drho_SWT) * c1o4; + //dy = ( drho_NEB + drho_NET + drho_NWB + drho_NWT - drho_SEB - drho_SET - drho_SWB - drho_SWT) * c1o4; + //dz = (-drho_NEB + drho_NET - drho_NWB + drho_NWT - drho_SEB + drho_SET - drho_SWB + drho_SWT) * c1o4; + //dxy = ( drho_NEB + drho_NET - drho_NWB - drho_NWT - drho_SEB - drho_SET + drho_SWB + drho_SWT) * c1o2; + //dxz = (-drho_NEB + drho_NET + drho_NWB - drho_NWT - drho_SEB + drho_SET + drho_SWB - drho_SWT) * c1o2; + //dyz = (-drho_NEB + drho_NET - drho_NWB + drho_NWT + drho_SEB - drho_SET + drho_SWB - drho_SWT) * c1o2; + dxyz = -drho_NEB + drho_NET + drho_NWB - drho_NWT + drho_SEB - drho_SET - drho_SWB + drho_SWT; + // d0 = zero; + //dx = zero; + //dy = zero; + //dz = zero; + //dxy = zero; + //dxz = zero; + //dyz = zero; + //dxyz = zero; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // // Bernd das Brot // - // X------X - // | | x---x - // | ---+-+-> | ----> off-vector - // | | x---x - // X------X - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // X------X + // | | x---x + // | ---+-+-> | ----> off-vector + // | | x---x + // X------X + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// a0 = a0 + xoff * ax + yoff * ay + zoff * az + xoff_sq * axx + yoff_sq * ayy + zoff_sq * azz + xoff*yoff*axy + xoff*zoff*axz + yoff*zoff*ayz; ax = ax + c2o1 * xoff * axx + yoff * axy + zoff * axz; ay = ay + c2o1 * yoff * ayy + xoff * axy + zoff * ayz; @@ -27749,3330 +27749,3330 @@ __global__ void scaleCF_Fix_comp_27( real* DC, cx = cx + c2o1 * xoff * cxx + yoff * cxy + zoff * cxz; cy = cy + c2o1 * yoff * cyy + xoff * cxy + zoff * cyz; cz = cz + c2o1 * zoff * czz + xoff * cxz + yoff * cyz; - d0 = d0 + xoff * dx + yoff * dy + zoff * dz + xoff*yoff*dxy + xoff*zoff*dxz + yoff*zoff*dyz; - dx = dx + yoff * dxy + zoff * dxz; - dy = dy + xoff * dxy + zoff * dyz; - dz = dz + xoff * dxz + yoff * dyz; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // FIX /////////////////////////////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //AAAAAAAAAAAAHHHHHHHHHHHH!!!!! Mieser Test!!! - //b0= bx= by= bz= bxx= byy= bzz= bxy= bxz= byz= c0= cx= cy= cz= cxx= cyy= czz= cxy= cxz= cyz= axyz= bxyz= cxyz=zero; - //a0=zero; - //ax=zero; - //ay=zero; - //az=zero; - //axx=zero; - //ayy=zero; - //azz=zero; - //axy=zero; - //axz=zero; - //ayz=zero; - //b0=zero; - //bx=zero; - //by=zero; - //bz=zero; - //bxx=zero; - //byy=zero; - //bzz=zero; - //bxy=zero; - //bxz=zero; - //byz=zero; - //c0=zero; - //cx=zero; - //cy=zero; - //cz=zero; - //cxx=zero; - //cyy=zero; - //czz=zero; - //cxy=zero; - //cxz=zero; - //cyz=zero; - //axyz=zero; - //bxyz=zero; - //cxyz=zero; - //ax= ay= az= axx= ayy= azz= axy= axz= ayz= bx= by= bz= bxx= byy= bzz= bxy= bxz= byz= cx= cy= cz= cxx= cyy= czz= cxy= cxz= cyz= axyz= bxyz= cxyz=zero; - //a0=zero; - //b0=zero; - //c0=c1o100; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real mfcbb = c0o1; - real mfabb = c0o1; - real mfbcb = c0o1; - real mfbab = c0o1; - real mfbbc = c0o1; - real mfbba = c0o1; - real mfccb = c0o1; - real mfaab = c0o1; - real mfcab = c0o1; - real mfacb = c0o1; - real mfcbc = c0o1; - real mfaba = c0o1; - real mfcba = c0o1; - real mfabc = c0o1; - real mfbcc = c0o1; - real mfbaa = c0o1; - real mfbca = c0o1; - real mfbac = c0o1; - real mfbbb = c0o1; - real mfccc = c0o1; - real mfaac = c0o1; - real mfcac = c0o1; - real mfacc = c0o1; - real mfcca = c0o1; - real mfaaa = c0o1; - real mfcaa = c0o1; - real mfaca = c0o1; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real m0, m1, m2, oMdrho; - real mxxPyyPzz, mxxMyy, mxxMzz, mxxyPyzz, mxxyMyzz, mxxzPyyz, mxxzMyyz, mxyyPxzz, mxyyMxzz; - //real qudricLimit = c1o100;//ganz schlechte Idee -> muss global sein - //real O3 = two - o; - //real residu, residutmp; - //residutmp = zero;// /*-*/ c2o9 * (1./o - c1o2) * eps_new * eps_new; - real NeqOn = c1o1;//zero;//one; //.... one = on ..... zero = off - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position SWB -0.25f, -0.25f, -0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = -c1o4; - y = -c1o4; - z = -c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //real mxoff = -xoff; - //real myoff = -yoff; - //real mzoff = -zoff; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho = c3o64*drho_NEB+c1o64*drho_NET+c9o64*drho_NWB+c3o64*drho_NWT+c9o64*drho_SEB+c3o64*drho_SET+c27o64*drho_SWB+c9o64*drho_SWT; - //press = press_SWT * (c9o64 + c3o16 * mxoff + c3o16 * myoff - c9o16 * mzoff) + - // press_NWT * (c3o64 + c1o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + - // press_SET * (c3o64 - c3o16 * mxoff + c1o16 * myoff - c3o16 * mzoff) + - // press_NET * (c1o64 - c1o16 * mxoff - c1o16 * myoff - c1o16 * mzoff) + - // press_NEB * (c3o64 - c3o16 * mxoff - c3o16 * myoff + c1o16 * mzoff) + - // press_NWB * (c9o64 + c3o16 * mxoff - c9o16 * myoff + c3o16 * mzoff) + - // press_SEB * (c9o64 - c9o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + - // press_SWB * (c27o64 + c9o16 * mxoff + c9o16 * myoff + c9o16 * mzoff); - //drho = drho_SWT * (c9o64 + c3o16 * xoff + c3o16 * yoff - c9o16 * zoff) + - // drho_NWT * (c3o64 + c1o16 * xoff - c3o16 * yoff - c3o16 * zoff) + - // drho_SET * (c3o64 - c3o16 * xoff + c1o16 * yoff - c3o16 * zoff) + - // drho_NET * (c1o64 - c1o16 * xoff - c1o16 * yoff - c1o16 * zoff) + - // drho_NEB * (c3o64 - c3o16 * xoff - c3o16 * yoff + c1o16 * zoff) + - // drho_NWB * (c9o64 + c3o16 * xoff - c9o16 * yoff + c3o16 * zoff) + - // drho_SEB * (c9o64 - c9o16 * xoff + c3o16 * yoff + c3o16 * zoff) + - // drho_SWB * (c27o64 + c9o16 * xoff + c9o16 * yoff + c9o16 * zoff); - - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; - vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); - vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); - vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); - //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); - //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); - //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //2.f - // linear combinations - mxxPyyPzz = mfaaa - c2o3*(ax + by + c2o1*axx*x + bxy*x + axy*y + c2o1*byy*y + axz*z + byz*z + bxyz*x*z + axyz*y*z + cz - cxz*x + cyz*y + cxyz*x*y + c2o1*czz*z )*eps_new / oP* (c1o1 + press); - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); - //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mfbbb = c0o1; - - //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); - //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); - //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); - //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyPyzz = c0o1; - - //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); - //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyMyzz = c0o1; - - //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); - //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); - //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzPyyz = c0o1; - - //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); - //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzMyyz = c0o1; - - //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); - //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); - //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyPxzz = c0o1; - - //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); - //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyMxzz = c0o1; - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //index 0 - k0zero= posFSWB[k]; - k0w = neighborFX[k0zero]; - k0s = neighborFY[k0zero]; - k0b = neighborFZ[k0zero]; - k0sw = neighborFY[k0w]; - k0bw = neighborFZ[k0w]; - k0bs = neighborFZ[k0s]; - k0bsw = neighborFZ[k0sw]; - ////////////////////////////////////////////////////////////////////////// - //index - kzero= k0zero; - kw = k0w; - ks = k0s; - kb = k0b; - ksw = k0sw; - kbw = k0bw; - kbs = k0bs; - kbsw = k0bsw; - //////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - feF[kzero] = mfcbb; - fwF[kw] = mfabb; - fnF[kzero] = mfbcb; - fsF[ks] = mfbab; - ftF[kzero] = mfbbc; - fbF[kb] = mfbba; - fneF[kzero] = mfccb; - fswF[ksw] = mfaab; - fseF[ks] = mfcab; - fnwF[kw] = mfacb; - fteF[kzero] = mfcbc; - fbwF[kbw] = mfaba; - fbeF[kb] = mfcba; - ftwF[kw] = mfabc; - ftnF[kzero] = mfbcc; - fbsF[kbs] = mfbaa; - fbnF[kb] = mfbca; - ftsF[ks] = mfbac; - fzeroF[kzero] = mfbbb; - ftneF[kzero] = mfccc; - ftseF[ks] = mfcac; - fbneF[kb] = mfcca; - fbseF[kbs] = mfcaa; - ftnwF[kw] = mfacc; - ftswF[ksw] = mfaac; - fbnwF[kbw] = mfaca; - fbswF[kbsw] = mfaaa; - //////////////////////////////////////////////////////////////////////////////////// - - //reset - mfcbb = c0o1; - mfabb = c0o1; - mfbcb = c0o1; - mfbab = c0o1; - mfbbc = c0o1; - mfbba = c0o1; - mfccb = c0o1; - mfaab = c0o1; - mfcab = c0o1; - mfacb = c0o1; - mfcbc = c0o1; - mfaba = c0o1; - mfcba = c0o1; - mfabc = c0o1; - mfbcc = c0o1; - mfbaa = c0o1; - mfbca = c0o1; - mfbac = c0o1; - mfbbb = c0o1; - mfccc = c0o1; - mfaac = c0o1; - mfcac = c0o1; - mfacc = c0o1; - mfcca = c0o1; - mfaaa = c0o1; - mfcaa = c0o1; - mfaca = c0o1; - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position SWT -0.25f, -0.25f, 0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = -c1o4; - y = -c1o4; - z = c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho = c1o64*drho_NEB+c3o64*drho_NET+c3o64*drho_NWB+c9o64*drho_NWT+c3o64*drho_SEB+c9o64*drho_SET+c9o64*drho_SWB+c27o64*drho_SWT; - //press = press_SWT * (c27o64 + c9o16 * mxoff + c9o16 * myoff - c9o16 * mzoff) + - // press_NWT * (c9o64 + c3o16 * mxoff - c9o16 * myoff - c3o16 * mzoff) + - // press_SET * (c9o64 - c9o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + - // press_NET * (c3o64 - c3o16 * mxoff - c3o16 * myoff - c1o16 * mzoff) + - // press_NEB * (c1o64 - c1o16 * mxoff - c1o16 * myoff + c1o16 * mzoff) + - // press_NWB * (c3o64 + c1o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + - // press_SEB * (c3o64 - c3o16 * mxoff + c1o16 * myoff + c3o16 * mzoff) + - // press_SWB * (c9o64 + c3o16 * mxoff + c3o16 * myoff + c9o16 * mzoff); - //drho = drho_SWT * (c27o64 + c9o16 * xoff + c9o16 * yoff - c9o16 * zoff) + - // drho_NWT * (c9o64 + c3o16 * xoff - c9o16 * yoff - c3o16 * zoff) + - // drho_SET * (c9o64 - c9o16 * xoff + c3o16 * yoff - c3o16 * zoff) + - // drho_NET * (c3o64 - c3o16 * xoff - c3o16 * yoff - c1o16 * zoff) + - // drho_NEB * (c1o64 - c1o16 * xoff - c1o16 * yoff + c1o16 * zoff) + - // drho_NWB * (c3o64 + c1o16 * xoff - c3o16 * yoff + c3o16 * zoff) + - // drho_SEB * (c3o64 - c3o16 * xoff + c1o16 * yoff + c3o16 * zoff) + - // drho_SWB * (c9o64 + c3o16 * xoff + c3o16 * yoff + c9o16 * zoff); - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; - vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); - vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); - vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); - //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); - //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); - //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //2.f - // linear combinations - mxxPyyPzz = mfaaa - c2o3*(ax + by + c2o1*axx*x + bxy*x + axy*y + c2o1*byy*y + axz*z + byz*z + bxyz*x*z + axyz*y*z + cz - cxz*x + cyz*y + cxyz*x*y + c2o1*czz*z)*eps_new / oP* (c1o1 + press); - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); - //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mfbbb = c0o1; - - //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); - //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); - //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); - //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyPyzz = c0o1; - - //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); - //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyMyzz = c0o1; - - //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); - //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); - //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzPyyz = c0o1; - - //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); - //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzMyyz = c0o1; - - //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); - //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); - //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyPxzz = c0o1; - - //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); - //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyMxzz = c0o1; - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - //index - kzero= kb; - kw = kbw; - ks = kbs; - kb = neighborFZ[kb]; - ksw = kbsw; - kbw = neighborFZ[kbw]; - kbs = neighborFZ[kbs]; - kbsw = neighborFZ[kbsw]; - //////////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - feF[kzero] = mfcbb; - fwF[kw] = mfabb; - fnF[kzero] = mfbcb; - fsF[ks] = mfbab; - ftF[kzero] = mfbbc; - fbF[kb] = mfbba; - fneF[kzero] = mfccb; - fswF[ksw] = mfaab; - fseF[ks] = mfcab; - fnwF[kw] = mfacb; - fteF[kzero] = mfcbc; - fbwF[kbw] = mfaba; - fbeF[kb] = mfcba; - ftwF[kw] = mfabc; - ftnF[kzero] = mfbcc; - fbsF[kbs] = mfbaa; - fbnF[kb] = mfbca; - ftsF[ks] = mfbac; - fzeroF[kzero] = mfbbb; - ftneF[kzero] = mfccc; - ftseF[ks] = mfcac; - fbneF[kb] = mfcca; - fbseF[kbs] = mfcaa; - ftnwF[kw] = mfacc; - ftswF[ksw] = mfaac; - fbnwF[kbw] = mfaca; - fbswF[kbsw] = mfaaa; - //////////////////////////////////////////////////////////////////////////////////// - - - //reset - mfcbb = c0o1; - mfabb = c0o1; - mfbcb = c0o1; - mfbab = c0o1; - mfbbc = c0o1; - mfbba = c0o1; - mfccb = c0o1; - mfaab = c0o1; - mfcab = c0o1; - mfacb = c0o1; - mfcbc = c0o1; - mfaba = c0o1; - mfcba = c0o1; - mfabc = c0o1; - mfbcc = c0o1; - mfbaa = c0o1; - mfbca = c0o1; - mfbac = c0o1; - mfbbb = c0o1; - mfccc = c0o1; - mfaac = c0o1; - mfcac = c0o1; - mfacc = c0o1; - mfcca = c0o1; - mfaaa = c0o1; - mfcaa = c0o1; - mfaca = c0o1; - - - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position SET 0.25f, -0.25f, 0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = c1o4; - y = -c1o4; - z = c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho =c3o64*drho_NEB+c9o64*drho_NET+c1o64*drho_NWB+c3o64*drho_NWT+c9o64*drho_SEB+c27o64*drho_SET+c3o64*drho_SWB+c9o64*drho_SWT; - //press = press_SET * (c27o64 - c9o16 * mxoff + c9o16 * myoff - c9o16 * mzoff) + - // press_NET * (c9o64 - c3o16 * mxoff - c9o16 * myoff - c3o16 * mzoff) + - // press_SWT * (c9o64 + c9o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + - // press_NWT * (c3o64 + c3o16 * mxoff - c3o16 * myoff - c1o16 * mzoff) + - // press_NWB * (c1o64 + c1o16 * mxoff - c1o16 * myoff + c1o16 * mzoff) + - // press_NEB * (c3o64 - c1o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + - // press_SWB * (c3o64 + c3o16 * mxoff + c1o16 * myoff + c3o16 * mzoff) + - // press_SEB * (c9o64 - c3o16 * mxoff + c3o16 * myoff + c9o16 * mzoff); - //drho = drho_SET * (c27o64 - c9o16 * xoff + c9o16 * yoff - c9o16 * zoff) + - // drho_NET * (c9o64 - c3o16 * xoff - c9o16 * yoff - c3o16 * zoff) + - // drho_SWT * (c9o64 + c9o16 * xoff + c3o16 * yoff - c3o16 * zoff) + - // drho_NWT * (c3o64 + c3o16 * xoff - c3o16 * yoff - c1o16 * zoff) + - // drho_NWB * (c1o64 + c1o16 * xoff - c1o16 * yoff + c1o16 * zoff) + - // drho_NEB * (c3o64 - c1o16 * xoff - c3o16 * yoff + c3o16 * zoff) + - // drho_SWB * (c3o64 + c3o16 * xoff + c1o16 * yoff + c3o16 * zoff) + - // drho_SEB * (c9o64 - c3o16 * xoff + c3o16 * yoff + c9o16 * zoff); - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; - vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); - vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); - vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); - //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); - //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); - //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //2.f - // linear combinations - mxxPyyPzz = mfaaa - c2o3*(ax + by + c2o1*axx*x + bxy*x + axy*y + c2o1*byy*y + axz*z + byz*z + bxyz*x*z + axyz*y*z + cz - cxz*x + cyz*y + cxyz*x*y + c2o1*czz*z)*eps_new / oP* (c1o1 + press); - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); - //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mfbbb = c0o1; - - //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); - //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); - //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); - //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyPyzz = c0o1; - - //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); - //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyMyzz = c0o1; - - //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); - //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); - //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzPyyz = c0o1; - - //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); - //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzMyyz = c0o1; - - //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); - //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); - //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyPxzz = c0o1; - - //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); - //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyMxzz = c0o1; - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //index - kzero= kw; - kw = neighborFX[kw]; - ks = ksw; - kb = kbw; - ksw = neighborFX[ksw]; - kbw = neighborFX[kbw]; - kbs = kbsw; - kbsw = neighborFX[kbsw]; - //////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - feF[kzero] = mfcbb; - fwF[kw] = mfabb; - fnF[kzero] = mfbcb; - fsF[ks] = mfbab; - ftF[kzero] = mfbbc; - fbF[kb] = mfbba; - fneF[kzero] = mfccb; - fswF[ksw] = mfaab; - fseF[ks] = mfcab; - fnwF[kw] = mfacb; - fteF[kzero] = mfcbc; - fbwF[kbw] = mfaba; - fbeF[kb] = mfcba; - ftwF[kw] = mfabc; - ftnF[kzero] = mfbcc; - fbsF[kbs] = mfbaa; - fbnF[kb] = mfbca; - ftsF[ks] = mfbac; - fzeroF[kzero] = mfbbb; - ftneF[kzero] = mfccc; - ftseF[ks] = mfcac; - fbneF[kb] = mfcca; - fbseF[kbs] = mfcaa; - ftnwF[kw] = mfacc; - ftswF[ksw] = mfaac; - fbnwF[kbw] = mfaca; - fbswF[kbsw] = mfaaa; - //////////////////////////////////////////////////////////////////////////////////// - - //reset - mfcbb = c0o1; - mfabb = c0o1; - mfbcb = c0o1; - mfbab = c0o1; - mfbbc = c0o1; - mfbba = c0o1; - mfccb = c0o1; - mfaab = c0o1; - mfcab = c0o1; - mfacb = c0o1; - mfcbc = c0o1; - mfaba = c0o1; - mfcba = c0o1; - mfabc = c0o1; - mfbcc = c0o1; - mfbaa = c0o1; - mfbca = c0o1; - mfbac = c0o1; - mfbbb = c0o1; - mfccc = c0o1; - mfaac = c0o1; - mfcac = c0o1; - mfacc = c0o1; - mfcca = c0o1; - mfaaa = c0o1; - mfcaa = c0o1; - mfaca = c0o1; - - - - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position SEB 0.25f, -0.25f, -0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = c1o4; - y = -c1o4; - z = -c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho =c9o64*drho_NEB+c3o64*drho_NET+c3o64*drho_NWB+c1o64*drho_NWT+c27o64*drho_SEB+c9o64*drho_SET+c9o64*drho_SWB+c3o64*drho_SWT; - //press = press_SET * (c9o64 - c3o16 * mxoff + c3o16 * myoff - c9o16 * mzoff) + - // press_NET * (c3o64 - c1o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + - // press_SWT * (c3o64 + c3o16 * mxoff + c1o16 * myoff - c3o16 * mzoff) + - // press_NWT * (c1o64 + c1o16 * mxoff - c1o16 * myoff - c1o16 * mzoff) + - // press_NWB * (c3o64 + c3o16 * mxoff - c3o16 * myoff + c1o16 * mzoff) + - // press_NEB * (c9o64 - c3o16 * mxoff - c9o16 * myoff + c3o16 * mzoff) + - // press_SWB * (c9o64 + c9o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + - // press_SEB * (c27o64 - c9o16 * mxoff + c9o16 * myoff + c9o16 * mzoff); - //drho = drho_SET * (c9o64 - c3o16 * xoff + c3o16 * yoff - c9o16 * zoff) + - // drho_NET * (c3o64 - c1o16 * xoff - c3o16 * yoff - c3o16 * zoff) + - // drho_SWT * (c3o64 + c3o16 * xoff + c1o16 * yoff - c3o16 * zoff) + - // drho_NWT * (c1o64 + c1o16 * xoff - c1o16 * yoff - c1o16 * zoff) + - // drho_NWB * (c3o64 + c3o16 * xoff - c3o16 * yoff + c1o16 * zoff) + - // drho_NEB * (c9o64 - c3o16 * xoff - c9o16 * yoff + c3o16 * zoff) + - // drho_SWB * (c9o64 + c9o16 * xoff + c3o16 * yoff + c3o16 * zoff) + - // drho_SEB * (c27o64 - c9o16 * xoff + c9o16 * yoff + c9o16 * zoff); - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; - vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); - vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); - vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); - //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); - //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); - //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //2.f - // linear combinations - mxxPyyPzz = mfaaa - c2o3*(ax + by + c2o1*axx*x + bxy*x + axy*y + c2o1*byy*y + axz*z + byz*z + bxyz*x*z + axyz*y*z + cz - cxz*x + cyz*y + cxyz*x*y + c2o1*czz*z)*eps_new / oP* (c1o1 + press); - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); - //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mfbbb = c0o1; - - //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); - //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); - //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); - //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyPyzz = c0o1; - - //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); - //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyMyzz = c0o1; - - //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); - //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); - //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzPyyz = c0o1; - - //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); - //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzMyyz = c0o1; - - //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); - //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); - //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyPxzz = c0o1; - - //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); - //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyMxzz = c0o1; - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //index - kb = kzero; - kbw = kw; - kbs = ks; - kbsw = ksw; - kzero= k0w; - kw = neighborFX[k0w]; - ks = k0sw; - ksw = neighborFX[k0sw]; - //////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - feF[kzero] = mfcbb; - fwF[kw] = mfabb; - fnF[kzero] = mfbcb; - fsF[ks] = mfbab; - ftF[kzero] = mfbbc; - fbF[kb] = mfbba; - fneF[kzero] = mfccb; - fswF[ksw] = mfaab; - fseF[ks] = mfcab; - fnwF[kw] = mfacb; - fteF[kzero] = mfcbc; - fbwF[kbw] = mfaba; - fbeF[kb] = mfcba; - ftwF[kw] = mfabc; - ftnF[kzero] = mfbcc; - fbsF[kbs] = mfbaa; - fbnF[kb] = mfbca; - ftsF[ks] = mfbac; - fzeroF[kzero] = mfbbb; - ftneF[kzero] = mfccc; - ftseF[ks] = mfcac; - fbneF[kb] = mfcca; - fbseF[kbs] = mfcaa; - ftnwF[kw] = mfacc; - ftswF[ksw] = mfaac; - fbnwF[kbw] = mfaca; - fbswF[kbsw] = mfaaa; - //////////////////////////////////////////////////////////////////////////////////// - - - //reset - mfcbb = c0o1; - mfabb = c0o1; - mfbcb = c0o1; - mfbab = c0o1; - mfbbc = c0o1; - mfbba = c0o1; - mfccb = c0o1; - mfaab = c0o1; - mfcab = c0o1; - mfacb = c0o1; - mfcbc = c0o1; - mfaba = c0o1; - mfcba = c0o1; - mfabc = c0o1; - mfbcc = c0o1; - mfbaa = c0o1; - mfbca = c0o1; - mfbac = c0o1; - mfbbb = c0o1; - mfccc = c0o1; - mfaac = c0o1; - mfcac = c0o1; - mfacc = c0o1; - mfcca = c0o1; - mfaaa = c0o1; - mfcaa = c0o1; - mfaca = c0o1; - - - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position NWB -0.25f, 0.25f, -0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = -c1o4; - y = c1o4; - z = -c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho = c9o64*drho_NEB+c3o64*drho_NET+c27o64*drho_NWB+c9o64*drho_NWT+c3o64*drho_SEB+c1o64*drho_SET+c9o64*drho_SWB+c3o64*drho_SWT; - //press = press_NWT * (c9o64 + c3o16 * mxoff - c3o16 * myoff - c9o16 * mzoff) + - // press_NET * (c3o64 - c3o16 * mxoff - c1o16 * myoff - c3o16 * mzoff) + - // press_SWT * (c3o64 + c1o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + - // press_SET * (c1o64 - c1o16 * mxoff + c1o16 * myoff - c1o16 * mzoff) + - // press_SEB * (c3o64 - c3o16 * mxoff + c3o16 * myoff + c1o16 * mzoff) + - // press_NEB * (c9o64 - c9o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + - // press_SWB * (c9o64 + c3o16 * mxoff + c9o16 * myoff + c3o16 * mzoff) + - // press_NWB * (c27o64 + c9o16 * mxoff - c9o16 * myoff + c9o16 * mzoff); - //drho = drho_NWT * (c9o64 + c3o16 * xoff - c3o16 * yoff - c9o16 * zoff) + - // drho_NET * (c3o64 - c3o16 * xoff - c1o16 * yoff - c3o16 * zoff) + - // drho_SWT * (c3o64 + c1o16 * xoff + c3o16 * yoff - c3o16 * zoff) + - // drho_SET * (c1o64 - c1o16 * xoff + c1o16 * yoff - c1o16 * zoff) + - // drho_SEB * (c3o64 - c3o16 * xoff + c3o16 * yoff + c1o16 * zoff) + - // drho_NEB * (c9o64 - c9o16 * xoff - c3o16 * yoff + c3o16 * zoff) + - // drho_SWB * (c9o64 + c3o16 * xoff + c9o16 * yoff + c3o16 * zoff) + - // drho_NWB * (c27o64 + c9o16 * xoff - c9o16 * yoff + c9o16 * zoff); - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; - vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); - vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); - vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); - //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); - //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); - //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //2.f - // linear combinations - mxxPyyPzz = mfaaa - c2o3*(ax + by + c2o1*axx*x + bxy*x + axy*y + c2o1*byy*y + axz*z + byz*z + bxyz*x*z + axyz*y*z + cz - cxz*x + cyz*y + cxyz*x*y + c2o1*czz*z)*eps_new / oP* (c1o1 + press); - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); - //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mfbbb = c0o1; - - //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); - //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); - //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); - //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyPyzz = c0o1; - - //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); - //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyMyzz = c0o1; - - //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); - //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); - //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzPyyz = c0o1; - - //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); - //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzMyyz = c0o1; - - //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); - //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); - //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyPxzz = c0o1; - - //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); - //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyMxzz = c0o1; - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //index 0 - k0zero= k0s; - k0w = k0sw; - k0s = neighborFY[k0s]; - k0b = k0bs; - k0sw = neighborFY[k0sw]; - k0bw = k0bsw; - k0bs = neighborFY[k0bs]; - k0bsw = neighborFY[k0bsw]; - ////////////////////////////////////////////////////////////////////////// - //index - kzero= k0zero; - kw = k0w; - ks = k0s; - kb = k0b; - ksw = k0sw; - kbw = k0bw; - kbs = k0bs; - kbsw = k0bsw; - //////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - feF[kzero] = mfcbb; - fwF[kw] = mfabb; - fnF[kzero] = mfbcb; - fsF[ks] = mfbab; - ftF[kzero] = mfbbc; - fbF[kb] = mfbba; - fneF[kzero] = mfccb; - fswF[ksw] = mfaab; - fseF[ks] = mfcab; - fnwF[kw] = mfacb; - fteF[kzero] = mfcbc; - fbwF[kbw] = mfaba; - fbeF[kb] = mfcba; - ftwF[kw] = mfabc; - ftnF[kzero] = mfbcc; - fbsF[kbs] = mfbaa; - fbnF[kb] = mfbca; - ftsF[ks] = mfbac; - fzeroF[kzero] = mfbbb; - ftneF[kzero] = mfccc; - ftseF[ks] = mfcac; - fbneF[kb] = mfcca; - fbseF[kbs] = mfcaa; - ftnwF[kw] = mfacc; - ftswF[ksw] = mfaac; - fbnwF[kbw] = mfaca; - fbswF[kbsw] = mfaaa; - //////////////////////////////////////////////////////////////////////////////////// - - - //reset - mfcbb = c0o1; - mfabb = c0o1; - mfbcb = c0o1; - mfbab = c0o1; - mfbbc = c0o1; - mfbba = c0o1; - mfccb = c0o1; - mfaab = c0o1; - mfcab = c0o1; - mfacb = c0o1; - mfcbc = c0o1; - mfaba = c0o1; - mfcba = c0o1; - mfabc = c0o1; - mfbcc = c0o1; - mfbaa = c0o1; - mfbca = c0o1; - mfbac = c0o1; - mfbbb = c0o1; - mfccc = c0o1; - mfaac = c0o1; - mfcac = c0o1; - mfacc = c0o1; - mfcca = c0o1; - mfaaa = c0o1; - mfcaa = c0o1; - mfaca = c0o1; - - - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position NWT -0.25f, 0.25f, 0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = -c1o4; - y = c1o4; - z = c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho = c3o64*drho_NEB+c9o64*drho_NET+c9o64*drho_NWB+c27o64*drho_NWT+c1o64*drho_SEB+c3o64*drho_SET+c3o64*drho_SWB+c9o64*drho_SWT; - //press = press_NWT * (c27o64 + c9o16 * mxoff - c9o16 * myoff - c9o16 * mzoff) + - // press_NET * (c9o64 - c9o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + - // press_SWT * (c9o64 + c3o16 * mxoff + c9o16 * myoff - c3o16 * mzoff) + - // press_SET * (c3o64 - c3o16 * mxoff + c3o16 * myoff - c1o16 * mzoff) + - // press_SEB * (c1o64 - c1o16 * mxoff + c1o16 * myoff + c1o16 * mzoff) + - // press_NEB * (c3o64 - c3o16 * mxoff - c1o16 * myoff + c3o16 * mzoff) + - // press_SWB * (c3o64 + c1o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + - // press_NWB * (c9o64 + c3o16 * mxoff - c3o16 * myoff + c9o16 * mzoff); - //drho = drho_NWT * (c27o64 + c9o16 * xoff - c9o16 * yoff - c9o16 * zoff) + - // drho_NET * (c9o64 - c9o16 * xoff - c3o16 * yoff - c3o16 * zoff) + - // drho_SWT * (c9o64 + c3o16 * xoff + c9o16 * yoff - c3o16 * zoff) + - // drho_SET * (c3o64 - c3o16 * xoff + c3o16 * yoff - c1o16 * zoff) + - // drho_SEB * (c1o64 - c1o16 * xoff + c1o16 * yoff + c1o16 * zoff) + - // drho_NEB * (c3o64 - c3o16 * xoff - c1o16 * yoff + c3o16 * zoff) + - // drho_SWB * (c3o64 + c1o16 * xoff + c3o16 * yoff + c3o16 * zoff) + - // drho_NWB * (c9o64 + c3o16 * xoff - c3o16 * yoff + c9o16 * zoff); - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; - vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); - vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); - vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); - //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); - //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); - //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //2.f - // linear combinations - mxxPyyPzz = mfaaa - c2o3*(ax + by + c2o1*axx*x + bxy*x + axy*y + c2o1*byy*y + axz*z + byz*z + bxyz*x*z + axyz*y*z + cz - cxz*x + cyz*y + cxyz*x*y + c2o1*czz*z)*eps_new / oP* (c1o1 + press); - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); - //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mfbbb = c0o1; - - //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); - //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); - //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); - //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyPyzz = c0o1; - - //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); - //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyMyzz = c0o1; - - //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); - //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); - //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzPyyz = c0o1; - - //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); - //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzMyyz = c0o1; - - //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); - //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); - //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyPxzz = c0o1; - - //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); - //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyMxzz = c0o1; - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //index - kzero= kb; - kw = kbw; - ks = kbs; - kb = neighborFZ[kb]; - ksw = kbsw; - kbw = neighborFZ[kbw]; - kbs = neighborFZ[kbs]; - kbsw = neighborFZ[kbsw]; - //////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - feF[kzero] = mfcbb; - fwF[kw] = mfabb; - fnF[kzero] = mfbcb; - fsF[ks] = mfbab; - ftF[kzero] = mfbbc; - fbF[kb] = mfbba; - fneF[kzero] = mfccb; - fswF[ksw] = mfaab; - fseF[ks] = mfcab; - fnwF[kw] = mfacb; - fteF[kzero] = mfcbc; - fbwF[kbw] = mfaba; - fbeF[kb] = mfcba; - ftwF[kw] = mfabc; - ftnF[kzero] = mfbcc; - fbsF[kbs] = mfbaa; - fbnF[kb] = mfbca; - ftsF[ks] = mfbac; - fzeroF[kzero] = mfbbb; - ftneF[kzero] = mfccc; - ftseF[ks] = mfcac; - fbneF[kb] = mfcca; - fbseF[kbs] = mfcaa; - ftnwF[kw] = mfacc; - ftswF[ksw] = mfaac; - fbnwF[kbw] = mfaca; - fbswF[kbsw] = mfaaa; - //////////////////////////////////////////////////////////////////////////////////// - - - //reset - mfcbb = c0o1; - mfabb = c0o1; - mfbcb = c0o1; - mfbab = c0o1; - mfbbc = c0o1; - mfbba = c0o1; - mfccb = c0o1; - mfaab = c0o1; - mfcab = c0o1; - mfacb = c0o1; - mfcbc = c0o1; - mfaba = c0o1; - mfcba = c0o1; - mfabc = c0o1; - mfbcc = c0o1; - mfbaa = c0o1; - mfbca = c0o1; - mfbac = c0o1; - mfbbb = c0o1; - mfccc = c0o1; - mfaac = c0o1; - mfcac = c0o1; - mfacc = c0o1; - mfcca = c0o1; - mfaaa = c0o1; - mfcaa = c0o1; - mfaca = c0o1; - - - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position NET 0.25f, 0.25f, 0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = c1o4; - y = c1o4; - z = c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho = c9o64*drho_NEB+c27o64*drho_NET+c3o64*drho_NWB+c9o64*drho_NWT+c3o64*drho_SEB+c9o64*drho_SET+c1o64*drho_SWB+c3o64*drho_SWT; - //press = press_NET * (c27o64 - c9o16 * mxoff - c9o16 * myoff - c9o16 * mzoff) + - // press_NWT * (c9o64 + c9o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + - // press_SET * (c9o64 - c3o16 * mxoff + c9o16 * myoff - c3o16 * mzoff) + - // press_SWT * (c3o64 + c3o16 * mxoff + c3o16 * myoff - c1o16 * mzoff) + - // press_SWB * (c1o64 + c1o16 * mxoff + c1o16 * myoff + c1o16 * mzoff) + - // press_NWB * (c3o64 + c3o16 * mxoff - c1o16 * myoff + c3o16 * mzoff) + - // press_SEB * (c3o64 - c1o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + - // press_NEB * (c9o64 - c3o16 * mxoff - c3o16 * myoff + c9o16 * mzoff); - //drho = drho_NET * (c27o64 - c9o16 * xoff - c9o16 * yoff - c9o16 * zoff) + - // drho_NWT * (c9o64 + c9o16 * xoff - c3o16 * yoff - c3o16 * zoff) + - // drho_SET * (c9o64 - c3o16 * xoff + c9o16 * yoff - c3o16 * zoff) + - // drho_SWT * (c3o64 + c3o16 * xoff + c3o16 * yoff - c1o16 * zoff) + - // drho_SWB * (c1o64 + c1o16 * xoff + c1o16 * yoff + c1o16 * zoff) + - // drho_NWB * (c3o64 + c3o16 * xoff - c1o16 * yoff + c3o16 * zoff) + - // drho_SEB * (c3o64 - c1o16 * xoff + c3o16 * yoff + c3o16 * zoff) + - // drho_NEB * (c9o64 - c3o16 * xoff - c3o16 * yoff + c9o16 * zoff); - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; - vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); - vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); - vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); - //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); - //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); - //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //2.f - // linear combinations - mxxPyyPzz = mfaaa - c2o3*(ax + by + c2o1*axx*x + bxy*x + axy*y + c2o1*byy*y + axz*z + byz*z + bxyz*x*z + axyz*y*z + cz - cxz*x + cyz*y + cxyz*x*y + c2o1*czz*z)*eps_new / oP* (c1o1 + press); - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); - //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mfbbb = c0o1; - - //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); - //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); - //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); - //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyPyzz = c0o1; - - //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); - //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyMyzz = c0o1; - - //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); - //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); - //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzPyyz = c0o1; - - //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); - //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzMyyz = c0o1; - - //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); - //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); - //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyPxzz = c0o1; - - //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); - //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyMxzz = c0o1; - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //index - kzero= kw; - kw = neighborFX[kw]; - ks = ksw; - kb = kbw; - ksw = neighborFX[ksw]; - kbw = neighborFX[kbw]; - kbs = kbsw; - kbsw = neighborFX[kbsw]; - //////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - feF[kzero] = mfcbb; - fwF[kw] = mfabb; - fnF[kzero] = mfbcb; - fsF[ks] = mfbab; - ftF[kzero] = mfbbc; - fbF[kb] = mfbba; - fneF[kzero] = mfccb; - fswF[ksw] = mfaab; - fseF[ks] = mfcab; - fnwF[kw] = mfacb; - fteF[kzero] = mfcbc; - fbwF[kbw] = mfaba; - fbeF[kb] = mfcba; - ftwF[kw] = mfabc; - ftnF[kzero] = mfbcc; - fbsF[kbs] = mfbaa; - fbnF[kb] = mfbca; - ftsF[ks] = mfbac; - fzeroF[kzero] = mfbbb; - ftneF[kzero] = mfccc; - ftseF[ks] = mfcac; - fbneF[kb] = mfcca; - fbseF[kbs] = mfcaa; - ftnwF[kw] = mfacc; - ftswF[ksw] = mfaac; - fbnwF[kbw] = mfaca; - fbswF[kbsw] = mfaaa; - //////////////////////////////////////////////////////////////////////////////////// - - - //reset - mfcbb = c0o1; - mfabb = c0o1; - mfbcb = c0o1; - mfbab = c0o1; - mfbbc = c0o1; - mfbba = c0o1; - mfccb = c0o1; - mfaab = c0o1; - mfcab = c0o1; - mfacb = c0o1; - mfcbc = c0o1; - mfaba = c0o1; - mfcba = c0o1; - mfabc = c0o1; - mfbcc = c0o1; - mfbaa = c0o1; - mfbca = c0o1; - mfbac = c0o1; - mfbbb = c0o1; - mfccc = c0o1; - mfaac = c0o1; - mfcac = c0o1; - mfacc = c0o1; - mfcca = c0o1; - mfaaa = c0o1; - mfcaa = c0o1; - mfaca = c0o1; - - - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position NEB 0.25f, 0.25f, -0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = c1o4; - y = c1o4; - z = -c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho = c27o64*drho_NEB+c9o64*drho_NET+c9o64*drho_NWB+c3o64*drho_NWT+c9o64*drho_SEB+c3o64*drho_SET+c3o64*drho_SWB+c1o64*drho_SWT; - //press = press_NET * (c9o64 - c3o16 * mxoff - c3o16 * myoff - c9o16 * mzoff) + - // press_NWT * (c3o64 + c3o16 * mxoff - c1o16 * myoff - c3o16 * mzoff) + - // press_SET * (c3o64 - c1o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + - // press_SWT * (c1o64 + c1o16 * mxoff + c1o16 * myoff - c1o16 * mzoff) + - // press_SWB * (c3o64 + c3o16 * mxoff + c3o16 * myoff + c1o16 * mzoff) + - // press_NWB * (c9o64 + c9o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + - // press_SEB * (c9o64 - c3o16 * mxoff + c9o16 * myoff + c3o16 * mzoff) + - // press_NEB * (c27o64 - c9o16 * mxoff - c9o16 * myoff + c9o16 * mzoff); - //drho = drho_NET * (c9o64 - c3o16 * xoff - c3o16 * yoff - c9o16 * zoff) + - // drho_NWT * (c3o64 + c3o16 * xoff - c1o16 * yoff - c3o16 * zoff) + - // drho_SET * (c3o64 - c1o16 * xoff + c3o16 * yoff - c3o16 * zoff) + - // drho_SWT * (c1o64 + c1o16 * xoff + c1o16 * yoff - c1o16 * zoff) + - // drho_SWB * (c3o64 + c3o16 * xoff + c3o16 * yoff + c1o16 * zoff) + - // drho_NWB * (c9o64 + c9o16 * xoff - c3o16 * yoff + c3o16 * zoff) + - // drho_SEB * (c9o64 - c3o16 * xoff + c9o16 * yoff + c3o16 * zoff) + - // drho_NEB * (c27o64 - c9o16 * xoff - c9o16 * yoff + c9o16 * zoff); - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; - vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); - vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); - vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); - //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); - //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); - //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //2.f - // linear combinations - mxxPyyPzz = mfaaa - c2o3*(ax + by + c2o1*axx*x + bxy*x + axy*y + c2o1*byy*y + axz*z + byz*z + bxyz*x*z + axyz*y*z + cz - cxz*x + cyz*y + cxyz*x*y + c2o1*czz*z)*eps_new / oP* (c1o1 + press); - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); - //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mfbbb = c0o1; - - //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); - //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); - //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); - //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyPyzz = c0o1; - - //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); - //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyMyzz = c0o1; - - //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); - //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); - //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzPyyz = c0o1; - - //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); - //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzMyyz = c0o1; - - //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); - //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); - //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyPxzz = c0o1; - - //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); - //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyMxzz = c0o1; - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //index - kb = kzero; - kbw = kw; - kbs = ks; - kbsw = ksw; - kzero= k0w; - kw = neighborFX[k0w]; - ks = k0sw; - ksw = neighborFX[k0sw]; - //////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - feF[kzero] = mfcbb; - fwF[kw] = mfabb; - fnF[kzero] = mfbcb; - fsF[ks] = mfbab; - ftF[kzero] = mfbbc; - fbF[kb] = mfbba; - fneF[kzero] = mfccb; - fswF[ksw] = mfaab; - fseF[ks] = mfcab; - fnwF[kw] = mfacb; - fteF[kzero] = mfcbc; - fbwF[kbw] = mfaba; - fbeF[kb] = mfcba; - ftwF[kw] = mfabc; - ftnF[kzero] = mfbcc; - fbsF[kbs] = mfbaa; - fbnF[kb] = mfbca; - ftsF[ks] = mfbac; - fzeroF[kzero] = mfbbb; - ftneF[kzero] = mfccc; - ftseF[ks] = mfcac; - fbneF[kb] = mfcca; - fbseF[kbs] = mfcaa; - ftnwF[kw] = mfacc; - ftswF[ksw] = mfaac; - fbnwF[kbw] = mfaca; - fbswF[kbsw] = mfaaa; - //////////////////////////////////////////////////////////////////////////////////// - } -} -////////////////////////////////////////////////////////////////////////// + d0 = d0 + xoff * dx + yoff * dy + zoff * dz + xoff*yoff*dxy + xoff*zoff*dxz + yoff*zoff*dyz; + dx = dx + yoff * dxy + zoff * dxz; + dy = dy + xoff * dxy + zoff * dyz; + dz = dz + xoff * dxz + yoff * dyz; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // FIX /////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //AAAAAAAAAAAAHHHHHHHHHHHH!!!!! Mieser Test!!! + //b0= bx= by= bz= bxx= byy= bzz= bxy= bxz= byz= c0= cx= cy= cz= cxx= cyy= czz= cxy= cxz= cyz= axyz= bxyz= cxyz=zero; + //a0=zero; + //ax=zero; + //ay=zero; + //az=zero; + //axx=zero; + //ayy=zero; + //azz=zero; + //axy=zero; + //axz=zero; + //ayz=zero; + //b0=zero; + //bx=zero; + //by=zero; + //bz=zero; + //bxx=zero; + //byy=zero; + //bzz=zero; + //bxy=zero; + //bxz=zero; + //byz=zero; + //c0=zero; + //cx=zero; + //cy=zero; + //cz=zero; + //cxx=zero; + //cyy=zero; + //czz=zero; + //cxy=zero; + //cxz=zero; + //cyz=zero; + //axyz=zero; + //bxyz=zero; + //cxyz=zero; + //ax= ay= az= axx= ayy= azz= axy= axz= ayz= bx= by= bz= bxx= byy= bzz= bxy= bxz= byz= cx= cy= cz= cxx= cyy= czz= cxy= cxz= cyz= axyz= bxyz= cxyz=zero; + //a0=zero; + //b0=zero; + //c0=c1o100; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + real mfcbb = c0o1; + real mfabb = c0o1; + real mfbcb = c0o1; + real mfbab = c0o1; + real mfbbc = c0o1; + real mfbba = c0o1; + real mfccb = c0o1; + real mfaab = c0o1; + real mfcab = c0o1; + real mfacb = c0o1; + real mfcbc = c0o1; + real mfaba = c0o1; + real mfcba = c0o1; + real mfabc = c0o1; + real mfbcc = c0o1; + real mfbaa = c0o1; + real mfbca = c0o1; + real mfbac = c0o1; + real mfbbb = c0o1; + real mfccc = c0o1; + real mfaac = c0o1; + real mfcac = c0o1; + real mfacc = c0o1; + real mfcca = c0o1; + real mfaaa = c0o1; + real mfcaa = c0o1; + real mfaca = c0o1; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + real m0, m1, m2, oMdrho; + real mxxPyyPzz, mxxMyy, mxxMzz, mxxyPyzz, mxxyMyzz, mxxzPyyz, mxxzMyyz, mxyyPxzz, mxyyMxzz; + //real qudricLimit = c1o100;//ganz schlechte Idee -> muss global sein + //real O3 = two - o; + //real residu, residutmp; + //residutmp = zero;// /*-*/ c2o9 * (1./o - c1o2) * eps_new * eps_new; + real NeqOn = c1o1;//zero;//one; //.... one = on ..... zero = off + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position SWB -0.25f, -0.25f, -0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = -c1o4; + y = -c1o4; + z = -c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //real mxoff = -xoff; + //real myoff = -yoff; + //real mzoff = -zoff; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho = c3o64*drho_NEB+c1o64*drho_NET+c9o64*drho_NWB+c3o64*drho_NWT+c9o64*drho_SEB+c3o64*drho_SET+c27o64*drho_SWB+c9o64*drho_SWT; + //press = press_SWT * (c9o64 + c3o16 * mxoff + c3o16 * myoff - c9o16 * mzoff) + + // press_NWT * (c3o64 + c1o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + + // press_SET * (c3o64 - c3o16 * mxoff + c1o16 * myoff - c3o16 * mzoff) + + // press_NET * (c1o64 - c1o16 * mxoff - c1o16 * myoff - c1o16 * mzoff) + + // press_NEB * (c3o64 - c3o16 * mxoff - c3o16 * myoff + c1o16 * mzoff) + + // press_NWB * (c9o64 + c3o16 * mxoff - c9o16 * myoff + c3o16 * mzoff) + + // press_SEB * (c9o64 - c9o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + + // press_SWB * (c27o64 + c9o16 * mxoff + c9o16 * myoff + c9o16 * mzoff); + //drho = drho_SWT * (c9o64 + c3o16 * xoff + c3o16 * yoff - c9o16 * zoff) + + // drho_NWT * (c3o64 + c1o16 * xoff - c3o16 * yoff - c3o16 * zoff) + + // drho_SET * (c3o64 - c3o16 * xoff + c1o16 * yoff - c3o16 * zoff) + + // drho_NET * (c1o64 - c1o16 * xoff - c1o16 * yoff - c1o16 * zoff) + + // drho_NEB * (c3o64 - c3o16 * xoff - c3o16 * yoff + c1o16 * zoff) + + // drho_NWB * (c9o64 + c3o16 * xoff - c9o16 * yoff + c3o16 * zoff) + + // drho_SEB * (c9o64 - c9o16 * xoff + c3o16 * yoff + c3o16 * zoff) + + // drho_SWB * (c27o64 + c9o16 * xoff + c9o16 * yoff + c9o16 * zoff); + + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; + vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); + vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); + vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); + //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); + //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); + //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1; + //oMdrho = one - mfaaa; + + //2.f + // linear combinations + mxxPyyPzz = mfaaa - c2o3*(ax + by + c2o1*axx*x + bxy*x + axy*y + c2o1*byy*y + axz*z + byz*z + bxyz*x*z + axyz*y*z + cz - cxz*x + cyz*y + cxyz*x*y + c2o1*czz*z )*eps_new / oP* (c1o1 + press); + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); + //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mfbbb = c0o1; + + //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); + //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); + //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); + //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyPyzz = c0o1; + + //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); + //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); + //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyMyzz = c0o1; + + //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); + //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); + //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzPyyz = c0o1; + + //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); + //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); + //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzMyyz = c0o1; + + //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); + //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; + //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); + //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyPxzz = c0o1; + + //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); + //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); + //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyMxzz = c0o1; + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////// + //index 0 + k0zero= posFSWB[k]; + k0w = neighborFX[k0zero]; + k0s = neighborFY[k0zero]; + k0b = neighborFZ[k0zero]; + k0sw = neighborFY[k0w]; + k0bw = neighborFZ[k0w]; + k0bs = neighborFZ[k0s]; + k0bsw = neighborFZ[k0sw]; + ////////////////////////////////////////////////////////////////////////// + //index + kzero= k0zero; + kw = k0w; + ks = k0s; + kb = k0b; + ksw = k0sw; + kbw = k0bw; + kbs = k0bs; + kbsw = k0bsw; + //////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + feF[kzero] = mfcbb; + fwF[kw] = mfabb; + fnF[kzero] = mfbcb; + fsF[ks] = mfbab; + ftF[kzero] = mfbbc; + fbF[kb] = mfbba; + fneF[kzero] = mfccb; + fswF[ksw] = mfaab; + fseF[ks] = mfcab; + fnwF[kw] = mfacb; + fteF[kzero] = mfcbc; + fbwF[kbw] = mfaba; + fbeF[kb] = mfcba; + ftwF[kw] = mfabc; + ftnF[kzero] = mfbcc; + fbsF[kbs] = mfbaa; + fbnF[kb] = mfbca; + ftsF[ks] = mfbac; + fzeroF[kzero] = mfbbb; + ftneF[kzero] = mfccc; + ftseF[ks] = mfcac; + fbneF[kb] = mfcca; + fbseF[kbs] = mfcaa; + ftnwF[kw] = mfacc; + ftswF[ksw] = mfaac; + fbnwF[kbw] = mfaca; + fbswF[kbsw] = mfaaa; + //////////////////////////////////////////////////////////////////////////////////// + + //reset + mfcbb = c0o1; + mfabb = c0o1; + mfbcb = c0o1; + mfbab = c0o1; + mfbbc = c0o1; + mfbba = c0o1; + mfccb = c0o1; + mfaab = c0o1; + mfcab = c0o1; + mfacb = c0o1; + mfcbc = c0o1; + mfaba = c0o1; + mfcba = c0o1; + mfabc = c0o1; + mfbcc = c0o1; + mfbaa = c0o1; + mfbca = c0o1; + mfbac = c0o1; + mfbbb = c0o1; + mfccc = c0o1; + mfaac = c0o1; + mfcac = c0o1; + mfacc = c0o1; + mfcca = c0o1; + mfaaa = c0o1; + mfcaa = c0o1; + mfaca = c0o1; + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position SWT -0.25f, -0.25f, 0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = -c1o4; + y = -c1o4; + z = c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho = c1o64*drho_NEB+c3o64*drho_NET+c3o64*drho_NWB+c9o64*drho_NWT+c3o64*drho_SEB+c9o64*drho_SET+c9o64*drho_SWB+c27o64*drho_SWT; + //press = press_SWT * (c27o64 + c9o16 * mxoff + c9o16 * myoff - c9o16 * mzoff) + + // press_NWT * (c9o64 + c3o16 * mxoff - c9o16 * myoff - c3o16 * mzoff) + + // press_SET * (c9o64 - c9o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + + // press_NET * (c3o64 - c3o16 * mxoff - c3o16 * myoff - c1o16 * mzoff) + + // press_NEB * (c1o64 - c1o16 * mxoff - c1o16 * myoff + c1o16 * mzoff) + + // press_NWB * (c3o64 + c1o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + + // press_SEB * (c3o64 - c3o16 * mxoff + c1o16 * myoff + c3o16 * mzoff) + + // press_SWB * (c9o64 + c3o16 * mxoff + c3o16 * myoff + c9o16 * mzoff); + //drho = drho_SWT * (c27o64 + c9o16 * xoff + c9o16 * yoff - c9o16 * zoff) + + // drho_NWT * (c9o64 + c3o16 * xoff - c9o16 * yoff - c3o16 * zoff) + + // drho_SET * (c9o64 - c9o16 * xoff + c3o16 * yoff - c3o16 * zoff) + + // drho_NET * (c3o64 - c3o16 * xoff - c3o16 * yoff - c1o16 * zoff) + + // drho_NEB * (c1o64 - c1o16 * xoff - c1o16 * yoff + c1o16 * zoff) + + // drho_NWB * (c3o64 + c1o16 * xoff - c3o16 * yoff + c3o16 * zoff) + + // drho_SEB * (c3o64 - c3o16 * xoff + c1o16 * yoff + c3o16 * zoff) + + // drho_SWB * (c9o64 + c3o16 * xoff + c3o16 * yoff + c9o16 * zoff); + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; + vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); + vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); + vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); + //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); + //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); + //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1; + //oMdrho = one - mfaaa; + + //2.f + // linear combinations + mxxPyyPzz = mfaaa - c2o3*(ax + by + c2o1*axx*x + bxy*x + axy*y + c2o1*byy*y + axz*z + byz*z + bxyz*x*z + axyz*y*z + cz - cxz*x + cyz*y + cxyz*x*y + c2o1*czz*z)*eps_new / oP* (c1o1 + press); + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); + //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mfbbb = c0o1; + + //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); + //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); + //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); + //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyPyzz = c0o1; + + //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); + //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); + //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyMyzz = c0o1; + + //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); + //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); + //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzPyyz = c0o1; + + //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); + //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); + //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzMyyz = c0o1; + + //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); + //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; + //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); + //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyPxzz = c0o1; + + //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); + //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); + //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyMxzz = c0o1; + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + //index + kzero= kb; + kw = kbw; + ks = kbs; + kb = neighborFZ[kb]; + ksw = kbsw; + kbw = neighborFZ[kbw]; + kbs = neighborFZ[kbs]; + kbsw = neighborFZ[kbsw]; + //////////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + feF[kzero] = mfcbb; + fwF[kw] = mfabb; + fnF[kzero] = mfbcb; + fsF[ks] = mfbab; + ftF[kzero] = mfbbc; + fbF[kb] = mfbba; + fneF[kzero] = mfccb; + fswF[ksw] = mfaab; + fseF[ks] = mfcab; + fnwF[kw] = mfacb; + fteF[kzero] = mfcbc; + fbwF[kbw] = mfaba; + fbeF[kb] = mfcba; + ftwF[kw] = mfabc; + ftnF[kzero] = mfbcc; + fbsF[kbs] = mfbaa; + fbnF[kb] = mfbca; + ftsF[ks] = mfbac; + fzeroF[kzero] = mfbbb; + ftneF[kzero] = mfccc; + ftseF[ks] = mfcac; + fbneF[kb] = mfcca; + fbseF[kbs] = mfcaa; + ftnwF[kw] = mfacc; + ftswF[ksw] = mfaac; + fbnwF[kbw] = mfaca; + fbswF[kbsw] = mfaaa; + //////////////////////////////////////////////////////////////////////////////////// + + + //reset + mfcbb = c0o1; + mfabb = c0o1; + mfbcb = c0o1; + mfbab = c0o1; + mfbbc = c0o1; + mfbba = c0o1; + mfccb = c0o1; + mfaab = c0o1; + mfcab = c0o1; + mfacb = c0o1; + mfcbc = c0o1; + mfaba = c0o1; + mfcba = c0o1; + mfabc = c0o1; + mfbcc = c0o1; + mfbaa = c0o1; + mfbca = c0o1; + mfbac = c0o1; + mfbbb = c0o1; + mfccc = c0o1; + mfaac = c0o1; + mfcac = c0o1; + mfacc = c0o1; + mfcca = c0o1; + mfaaa = c0o1; + mfcaa = c0o1; + mfaca = c0o1; + + + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position SET 0.25f, -0.25f, 0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = c1o4; + y = -c1o4; + z = c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho =c3o64*drho_NEB+c9o64*drho_NET+c1o64*drho_NWB+c3o64*drho_NWT+c9o64*drho_SEB+c27o64*drho_SET+c3o64*drho_SWB+c9o64*drho_SWT; + //press = press_SET * (c27o64 - c9o16 * mxoff + c9o16 * myoff - c9o16 * mzoff) + + // press_NET * (c9o64 - c3o16 * mxoff - c9o16 * myoff - c3o16 * mzoff) + + // press_SWT * (c9o64 + c9o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + + // press_NWT * (c3o64 + c3o16 * mxoff - c3o16 * myoff - c1o16 * mzoff) + + // press_NWB * (c1o64 + c1o16 * mxoff - c1o16 * myoff + c1o16 * mzoff) + + // press_NEB * (c3o64 - c1o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + + // press_SWB * (c3o64 + c3o16 * mxoff + c1o16 * myoff + c3o16 * mzoff) + + // press_SEB * (c9o64 - c3o16 * mxoff + c3o16 * myoff + c9o16 * mzoff); + //drho = drho_SET * (c27o64 - c9o16 * xoff + c9o16 * yoff - c9o16 * zoff) + + // drho_NET * (c9o64 - c3o16 * xoff - c9o16 * yoff - c3o16 * zoff) + + // drho_SWT * (c9o64 + c9o16 * xoff + c3o16 * yoff - c3o16 * zoff) + + // drho_NWT * (c3o64 + c3o16 * xoff - c3o16 * yoff - c1o16 * zoff) + + // drho_NWB * (c1o64 + c1o16 * xoff - c1o16 * yoff + c1o16 * zoff) + + // drho_NEB * (c3o64 - c1o16 * xoff - c3o16 * yoff + c3o16 * zoff) + + // drho_SWB * (c3o64 + c3o16 * xoff + c1o16 * yoff + c3o16 * zoff) + + // drho_SEB * (c9o64 - c3o16 * xoff + c3o16 * yoff + c9o16 * zoff); + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; + vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); + vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); + vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); + //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); + //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); + //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1; + //oMdrho = one - mfaaa; + + //2.f + // linear combinations + mxxPyyPzz = mfaaa - c2o3*(ax + by + c2o1*axx*x + bxy*x + axy*y + c2o1*byy*y + axz*z + byz*z + bxyz*x*z + axyz*y*z + cz - cxz*x + cyz*y + cxyz*x*y + c2o1*czz*z)*eps_new / oP* (c1o1 + press); + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); + //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mfbbb = c0o1; + + //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); + //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); + //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); + //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyPyzz = c0o1; + + //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); + //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); + //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyMyzz = c0o1; + + //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); + //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); + //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzPyyz = c0o1; + + //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); + //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); + //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzMyyz = c0o1; + + //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); + //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; + //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); + //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyPxzz = c0o1; + + //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); + //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); + //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyMxzz = c0o1; + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////// + //index + kzero= kw; + kw = neighborFX[kw]; + ks = ksw; + kb = kbw; + ksw = neighborFX[ksw]; + kbw = neighborFX[kbw]; + kbs = kbsw; + kbsw = neighborFX[kbsw]; + //////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + feF[kzero] = mfcbb; + fwF[kw] = mfabb; + fnF[kzero] = mfbcb; + fsF[ks] = mfbab; + ftF[kzero] = mfbbc; + fbF[kb] = mfbba; + fneF[kzero] = mfccb; + fswF[ksw] = mfaab; + fseF[ks] = mfcab; + fnwF[kw] = mfacb; + fteF[kzero] = mfcbc; + fbwF[kbw] = mfaba; + fbeF[kb] = mfcba; + ftwF[kw] = mfabc; + ftnF[kzero] = mfbcc; + fbsF[kbs] = mfbaa; + fbnF[kb] = mfbca; + ftsF[ks] = mfbac; + fzeroF[kzero] = mfbbb; + ftneF[kzero] = mfccc; + ftseF[ks] = mfcac; + fbneF[kb] = mfcca; + fbseF[kbs] = mfcaa; + ftnwF[kw] = mfacc; + ftswF[ksw] = mfaac; + fbnwF[kbw] = mfaca; + fbswF[kbsw] = mfaaa; + //////////////////////////////////////////////////////////////////////////////////// + + //reset + mfcbb = c0o1; + mfabb = c0o1; + mfbcb = c0o1; + mfbab = c0o1; + mfbbc = c0o1; + mfbba = c0o1; + mfccb = c0o1; + mfaab = c0o1; + mfcab = c0o1; + mfacb = c0o1; + mfcbc = c0o1; + mfaba = c0o1; + mfcba = c0o1; + mfabc = c0o1; + mfbcc = c0o1; + mfbaa = c0o1; + mfbca = c0o1; + mfbac = c0o1; + mfbbb = c0o1; + mfccc = c0o1; + mfaac = c0o1; + mfcac = c0o1; + mfacc = c0o1; + mfcca = c0o1; + mfaaa = c0o1; + mfcaa = c0o1; + mfaca = c0o1; + + + + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position SEB 0.25f, -0.25f, -0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = c1o4; + y = -c1o4; + z = -c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho =c9o64*drho_NEB+c3o64*drho_NET+c3o64*drho_NWB+c1o64*drho_NWT+c27o64*drho_SEB+c9o64*drho_SET+c9o64*drho_SWB+c3o64*drho_SWT; + //press = press_SET * (c9o64 - c3o16 * mxoff + c3o16 * myoff - c9o16 * mzoff) + + // press_NET * (c3o64 - c1o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + + // press_SWT * (c3o64 + c3o16 * mxoff + c1o16 * myoff - c3o16 * mzoff) + + // press_NWT * (c1o64 + c1o16 * mxoff - c1o16 * myoff - c1o16 * mzoff) + + // press_NWB * (c3o64 + c3o16 * mxoff - c3o16 * myoff + c1o16 * mzoff) + + // press_NEB * (c9o64 - c3o16 * mxoff - c9o16 * myoff + c3o16 * mzoff) + + // press_SWB * (c9o64 + c9o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + + // press_SEB * (c27o64 - c9o16 * mxoff + c9o16 * myoff + c9o16 * mzoff); + //drho = drho_SET * (c9o64 - c3o16 * xoff + c3o16 * yoff - c9o16 * zoff) + + // drho_NET * (c3o64 - c1o16 * xoff - c3o16 * yoff - c3o16 * zoff) + + // drho_SWT * (c3o64 + c3o16 * xoff + c1o16 * yoff - c3o16 * zoff) + + // drho_NWT * (c1o64 + c1o16 * xoff - c1o16 * yoff - c1o16 * zoff) + + // drho_NWB * (c3o64 + c3o16 * xoff - c3o16 * yoff + c1o16 * zoff) + + // drho_NEB * (c9o64 - c3o16 * xoff - c9o16 * yoff + c3o16 * zoff) + + // drho_SWB * (c9o64 + c9o16 * xoff + c3o16 * yoff + c3o16 * zoff) + + // drho_SEB * (c27o64 - c9o16 * xoff + c9o16 * yoff + c9o16 * zoff); + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; + vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); + vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); + vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); + //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); + //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); + //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1; + //oMdrho = one - mfaaa; + + //2.f + // linear combinations + mxxPyyPzz = mfaaa - c2o3*(ax + by + c2o1*axx*x + bxy*x + axy*y + c2o1*byy*y + axz*z + byz*z + bxyz*x*z + axyz*y*z + cz - cxz*x + cyz*y + cxyz*x*y + c2o1*czz*z)*eps_new / oP* (c1o1 + press); + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); + //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mfbbb = c0o1; + + //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); + //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); + //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); + //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyPyzz = c0o1; + + //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); + //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); + //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyMyzz = c0o1; + + //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); + //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); + //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzPyyz = c0o1; + + //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); + //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); + //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzMyyz = c0o1; + + //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); + //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; + //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); + //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyPxzz = c0o1; + + //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); + //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); + //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyMxzz = c0o1; + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////// + //index + kb = kzero; + kbw = kw; + kbs = ks; + kbsw = ksw; + kzero= k0w; + kw = neighborFX[k0w]; + ks = k0sw; + ksw = neighborFX[k0sw]; + //////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + feF[kzero] = mfcbb; + fwF[kw] = mfabb; + fnF[kzero] = mfbcb; + fsF[ks] = mfbab; + ftF[kzero] = mfbbc; + fbF[kb] = mfbba; + fneF[kzero] = mfccb; + fswF[ksw] = mfaab; + fseF[ks] = mfcab; + fnwF[kw] = mfacb; + fteF[kzero] = mfcbc; + fbwF[kbw] = mfaba; + fbeF[kb] = mfcba; + ftwF[kw] = mfabc; + ftnF[kzero] = mfbcc; + fbsF[kbs] = mfbaa; + fbnF[kb] = mfbca; + ftsF[ks] = mfbac; + fzeroF[kzero] = mfbbb; + ftneF[kzero] = mfccc; + ftseF[ks] = mfcac; + fbneF[kb] = mfcca; + fbseF[kbs] = mfcaa; + ftnwF[kw] = mfacc; + ftswF[ksw] = mfaac; + fbnwF[kbw] = mfaca; + fbswF[kbsw] = mfaaa; + //////////////////////////////////////////////////////////////////////////////////// + + + //reset + mfcbb = c0o1; + mfabb = c0o1; + mfbcb = c0o1; + mfbab = c0o1; + mfbbc = c0o1; + mfbba = c0o1; + mfccb = c0o1; + mfaab = c0o1; + mfcab = c0o1; + mfacb = c0o1; + mfcbc = c0o1; + mfaba = c0o1; + mfcba = c0o1; + mfabc = c0o1; + mfbcc = c0o1; + mfbaa = c0o1; + mfbca = c0o1; + mfbac = c0o1; + mfbbb = c0o1; + mfccc = c0o1; + mfaac = c0o1; + mfcac = c0o1; + mfacc = c0o1; + mfcca = c0o1; + mfaaa = c0o1; + mfcaa = c0o1; + mfaca = c0o1; + + + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position NWB -0.25f, 0.25f, -0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = -c1o4; + y = c1o4; + z = -c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho = c9o64*drho_NEB+c3o64*drho_NET+c27o64*drho_NWB+c9o64*drho_NWT+c3o64*drho_SEB+c1o64*drho_SET+c9o64*drho_SWB+c3o64*drho_SWT; + //press = press_NWT * (c9o64 + c3o16 * mxoff - c3o16 * myoff - c9o16 * mzoff) + + // press_NET * (c3o64 - c3o16 * mxoff - c1o16 * myoff - c3o16 * mzoff) + + // press_SWT * (c3o64 + c1o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + + // press_SET * (c1o64 - c1o16 * mxoff + c1o16 * myoff - c1o16 * mzoff) + + // press_SEB * (c3o64 - c3o16 * mxoff + c3o16 * myoff + c1o16 * mzoff) + + // press_NEB * (c9o64 - c9o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + + // press_SWB * (c9o64 + c3o16 * mxoff + c9o16 * myoff + c3o16 * mzoff) + + // press_NWB * (c27o64 + c9o16 * mxoff - c9o16 * myoff + c9o16 * mzoff); + //drho = drho_NWT * (c9o64 + c3o16 * xoff - c3o16 * yoff - c9o16 * zoff) + + // drho_NET * (c3o64 - c3o16 * xoff - c1o16 * yoff - c3o16 * zoff) + + // drho_SWT * (c3o64 + c1o16 * xoff + c3o16 * yoff - c3o16 * zoff) + + // drho_SET * (c1o64 - c1o16 * xoff + c1o16 * yoff - c1o16 * zoff) + + // drho_SEB * (c3o64 - c3o16 * xoff + c3o16 * yoff + c1o16 * zoff) + + // drho_NEB * (c9o64 - c9o16 * xoff - c3o16 * yoff + c3o16 * zoff) + + // drho_SWB * (c9o64 + c3o16 * xoff + c9o16 * yoff + c3o16 * zoff) + + // drho_NWB * (c27o64 + c9o16 * xoff - c9o16 * yoff + c9o16 * zoff); + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; + vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); + vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); + vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); + //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); + //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); + //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1; + //oMdrho = one - mfaaa; + + //2.f + // linear combinations + mxxPyyPzz = mfaaa - c2o3*(ax + by + c2o1*axx*x + bxy*x + axy*y + c2o1*byy*y + axz*z + byz*z + bxyz*x*z + axyz*y*z + cz - cxz*x + cyz*y + cxyz*x*y + c2o1*czz*z)*eps_new / oP* (c1o1 + press); + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); + //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mfbbb = c0o1; + + //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); + //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); + //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); + //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyPyzz = c0o1; + + //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); + //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); + //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyMyzz = c0o1; + + //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); + //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); + //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzPyyz = c0o1; + + //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); + //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); + //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzMyyz = c0o1; + + //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); + //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; + //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); + //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyPxzz = c0o1; + + //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); + //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); + //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyMxzz = c0o1; + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////// + //index 0 + k0zero= k0s; + k0w = k0sw; + k0s = neighborFY[k0s]; + k0b = k0bs; + k0sw = neighborFY[k0sw]; + k0bw = k0bsw; + k0bs = neighborFY[k0bs]; + k0bsw = neighborFY[k0bsw]; + ////////////////////////////////////////////////////////////////////////// + //index + kzero= k0zero; + kw = k0w; + ks = k0s; + kb = k0b; + ksw = k0sw; + kbw = k0bw; + kbs = k0bs; + kbsw = k0bsw; + //////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + feF[kzero] = mfcbb; + fwF[kw] = mfabb; + fnF[kzero] = mfbcb; + fsF[ks] = mfbab; + ftF[kzero] = mfbbc; + fbF[kb] = mfbba; + fneF[kzero] = mfccb; + fswF[ksw] = mfaab; + fseF[ks] = mfcab; + fnwF[kw] = mfacb; + fteF[kzero] = mfcbc; + fbwF[kbw] = mfaba; + fbeF[kb] = mfcba; + ftwF[kw] = mfabc; + ftnF[kzero] = mfbcc; + fbsF[kbs] = mfbaa; + fbnF[kb] = mfbca; + ftsF[ks] = mfbac; + fzeroF[kzero] = mfbbb; + ftneF[kzero] = mfccc; + ftseF[ks] = mfcac; + fbneF[kb] = mfcca; + fbseF[kbs] = mfcaa; + ftnwF[kw] = mfacc; + ftswF[ksw] = mfaac; + fbnwF[kbw] = mfaca; + fbswF[kbsw] = mfaaa; + //////////////////////////////////////////////////////////////////////////////////// + + + //reset + mfcbb = c0o1; + mfabb = c0o1; + mfbcb = c0o1; + mfbab = c0o1; + mfbbc = c0o1; + mfbba = c0o1; + mfccb = c0o1; + mfaab = c0o1; + mfcab = c0o1; + mfacb = c0o1; + mfcbc = c0o1; + mfaba = c0o1; + mfcba = c0o1; + mfabc = c0o1; + mfbcc = c0o1; + mfbaa = c0o1; + mfbca = c0o1; + mfbac = c0o1; + mfbbb = c0o1; + mfccc = c0o1; + mfaac = c0o1; + mfcac = c0o1; + mfacc = c0o1; + mfcca = c0o1; + mfaaa = c0o1; + mfcaa = c0o1; + mfaca = c0o1; + + + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position NWT -0.25f, 0.25f, 0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = -c1o4; + y = c1o4; + z = c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho = c3o64*drho_NEB+c9o64*drho_NET+c9o64*drho_NWB+c27o64*drho_NWT+c1o64*drho_SEB+c3o64*drho_SET+c3o64*drho_SWB+c9o64*drho_SWT; + //press = press_NWT * (c27o64 + c9o16 * mxoff - c9o16 * myoff - c9o16 * mzoff) + + // press_NET * (c9o64 - c9o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + + // press_SWT * (c9o64 + c3o16 * mxoff + c9o16 * myoff - c3o16 * mzoff) + + // press_SET * (c3o64 - c3o16 * mxoff + c3o16 * myoff - c1o16 * mzoff) + + // press_SEB * (c1o64 - c1o16 * mxoff + c1o16 * myoff + c1o16 * mzoff) + + // press_NEB * (c3o64 - c3o16 * mxoff - c1o16 * myoff + c3o16 * mzoff) + + // press_SWB * (c3o64 + c1o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + + // press_NWB * (c9o64 + c3o16 * mxoff - c3o16 * myoff + c9o16 * mzoff); + //drho = drho_NWT * (c27o64 + c9o16 * xoff - c9o16 * yoff - c9o16 * zoff) + + // drho_NET * (c9o64 - c9o16 * xoff - c3o16 * yoff - c3o16 * zoff) + + // drho_SWT * (c9o64 + c3o16 * xoff + c9o16 * yoff - c3o16 * zoff) + + // drho_SET * (c3o64 - c3o16 * xoff + c3o16 * yoff - c1o16 * zoff) + + // drho_SEB * (c1o64 - c1o16 * xoff + c1o16 * yoff + c1o16 * zoff) + + // drho_NEB * (c3o64 - c3o16 * xoff - c1o16 * yoff + c3o16 * zoff) + + // drho_SWB * (c3o64 + c1o16 * xoff + c3o16 * yoff + c3o16 * zoff) + + // drho_NWB * (c9o64 + c3o16 * xoff - c3o16 * yoff + c9o16 * zoff); + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; + vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); + vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); + vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); + //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); + //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); + //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1; + //oMdrho = one - mfaaa; + + //2.f + // linear combinations + mxxPyyPzz = mfaaa - c2o3*(ax + by + c2o1*axx*x + bxy*x + axy*y + c2o1*byy*y + axz*z + byz*z + bxyz*x*z + axyz*y*z + cz - cxz*x + cyz*y + cxyz*x*y + c2o1*czz*z)*eps_new / oP* (c1o1 + press); + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); + //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mfbbb = c0o1; + + //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); + //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); + //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); + //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyPyzz = c0o1; + + //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); + //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); + //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyMyzz = c0o1; + + //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); + //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); + //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzPyyz = c0o1; + + //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); + //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); + //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzMyyz = c0o1; + + //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); + //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; + //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); + //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyPxzz = c0o1; + + //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); + //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); + //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyMxzz = c0o1; + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////// + //index + kzero= kb; + kw = kbw; + ks = kbs; + kb = neighborFZ[kb]; + ksw = kbsw; + kbw = neighborFZ[kbw]; + kbs = neighborFZ[kbs]; + kbsw = neighborFZ[kbsw]; + //////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + feF[kzero] = mfcbb; + fwF[kw] = mfabb; + fnF[kzero] = mfbcb; + fsF[ks] = mfbab; + ftF[kzero] = mfbbc; + fbF[kb] = mfbba; + fneF[kzero] = mfccb; + fswF[ksw] = mfaab; + fseF[ks] = mfcab; + fnwF[kw] = mfacb; + fteF[kzero] = mfcbc; + fbwF[kbw] = mfaba; + fbeF[kb] = mfcba; + ftwF[kw] = mfabc; + ftnF[kzero] = mfbcc; + fbsF[kbs] = mfbaa; + fbnF[kb] = mfbca; + ftsF[ks] = mfbac; + fzeroF[kzero] = mfbbb; + ftneF[kzero] = mfccc; + ftseF[ks] = mfcac; + fbneF[kb] = mfcca; + fbseF[kbs] = mfcaa; + ftnwF[kw] = mfacc; + ftswF[ksw] = mfaac; + fbnwF[kbw] = mfaca; + fbswF[kbsw] = mfaaa; + //////////////////////////////////////////////////////////////////////////////////// + + + //reset + mfcbb = c0o1; + mfabb = c0o1; + mfbcb = c0o1; + mfbab = c0o1; + mfbbc = c0o1; + mfbba = c0o1; + mfccb = c0o1; + mfaab = c0o1; + mfcab = c0o1; + mfacb = c0o1; + mfcbc = c0o1; + mfaba = c0o1; + mfcba = c0o1; + mfabc = c0o1; + mfbcc = c0o1; + mfbaa = c0o1; + mfbca = c0o1; + mfbac = c0o1; + mfbbb = c0o1; + mfccc = c0o1; + mfaac = c0o1; + mfcac = c0o1; + mfacc = c0o1; + mfcca = c0o1; + mfaaa = c0o1; + mfcaa = c0o1; + mfaca = c0o1; + + + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position NET 0.25f, 0.25f, 0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = c1o4; + y = c1o4; + z = c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho = c9o64*drho_NEB+c27o64*drho_NET+c3o64*drho_NWB+c9o64*drho_NWT+c3o64*drho_SEB+c9o64*drho_SET+c1o64*drho_SWB+c3o64*drho_SWT; + //press = press_NET * (c27o64 - c9o16 * mxoff - c9o16 * myoff - c9o16 * mzoff) + + // press_NWT * (c9o64 + c9o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + + // press_SET * (c9o64 - c3o16 * mxoff + c9o16 * myoff - c3o16 * mzoff) + + // press_SWT * (c3o64 + c3o16 * mxoff + c3o16 * myoff - c1o16 * mzoff) + + // press_SWB * (c1o64 + c1o16 * mxoff + c1o16 * myoff + c1o16 * mzoff) + + // press_NWB * (c3o64 + c3o16 * mxoff - c1o16 * myoff + c3o16 * mzoff) + + // press_SEB * (c3o64 - c1o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + + // press_NEB * (c9o64 - c3o16 * mxoff - c3o16 * myoff + c9o16 * mzoff); + //drho = drho_NET * (c27o64 - c9o16 * xoff - c9o16 * yoff - c9o16 * zoff) + + // drho_NWT * (c9o64 + c9o16 * xoff - c3o16 * yoff - c3o16 * zoff) + + // drho_SET * (c9o64 - c3o16 * xoff + c9o16 * yoff - c3o16 * zoff) + + // drho_SWT * (c3o64 + c3o16 * xoff + c3o16 * yoff - c1o16 * zoff) + + // drho_SWB * (c1o64 + c1o16 * xoff + c1o16 * yoff + c1o16 * zoff) + + // drho_NWB * (c3o64 + c3o16 * xoff - c1o16 * yoff + c3o16 * zoff) + + // drho_SEB * (c3o64 - c1o16 * xoff + c3o16 * yoff + c3o16 * zoff) + + // drho_NEB * (c9o64 - c3o16 * xoff - c3o16 * yoff + c9o16 * zoff); + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; + vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); + vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); + vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); + //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); + //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); + //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1; + //oMdrho = one - mfaaa; + + //2.f + // linear combinations + mxxPyyPzz = mfaaa - c2o3*(ax + by + c2o1*axx*x + bxy*x + axy*y + c2o1*byy*y + axz*z + byz*z + bxyz*x*z + axyz*y*z + cz - cxz*x + cyz*y + cxyz*x*y + c2o1*czz*z)*eps_new / oP* (c1o1 + press); + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); + //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mfbbb = c0o1; + + //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); + //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); + //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); + //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyPyzz = c0o1; + + //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); + //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); + //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyMyzz = c0o1; + + //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); + //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); + //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzPyyz = c0o1; + + //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); + //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); + //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzMyyz = c0o1; + + //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); + //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; + //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); + //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyPxzz = c0o1; + + //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); + //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); + //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyMxzz = c0o1; + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////// + //index + kzero= kw; + kw = neighborFX[kw]; + ks = ksw; + kb = kbw; + ksw = neighborFX[ksw]; + kbw = neighborFX[kbw]; + kbs = kbsw; + kbsw = neighborFX[kbsw]; + //////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + feF[kzero] = mfcbb; + fwF[kw] = mfabb; + fnF[kzero] = mfbcb; + fsF[ks] = mfbab; + ftF[kzero] = mfbbc; + fbF[kb] = mfbba; + fneF[kzero] = mfccb; + fswF[ksw] = mfaab; + fseF[ks] = mfcab; + fnwF[kw] = mfacb; + fteF[kzero] = mfcbc; + fbwF[kbw] = mfaba; + fbeF[kb] = mfcba; + ftwF[kw] = mfabc; + ftnF[kzero] = mfbcc; + fbsF[kbs] = mfbaa; + fbnF[kb] = mfbca; + ftsF[ks] = mfbac; + fzeroF[kzero] = mfbbb; + ftneF[kzero] = mfccc; + ftseF[ks] = mfcac; + fbneF[kb] = mfcca; + fbseF[kbs] = mfcaa; + ftnwF[kw] = mfacc; + ftswF[ksw] = mfaac; + fbnwF[kbw] = mfaca; + fbswF[kbsw] = mfaaa; + //////////////////////////////////////////////////////////////////////////////////// + + + //reset + mfcbb = c0o1; + mfabb = c0o1; + mfbcb = c0o1; + mfbab = c0o1; + mfbbc = c0o1; + mfbba = c0o1; + mfccb = c0o1; + mfaab = c0o1; + mfcab = c0o1; + mfacb = c0o1; + mfcbc = c0o1; + mfaba = c0o1; + mfcba = c0o1; + mfabc = c0o1; + mfbcc = c0o1; + mfbaa = c0o1; + mfbca = c0o1; + mfbac = c0o1; + mfbbb = c0o1; + mfccc = c0o1; + mfaac = c0o1; + mfcac = c0o1; + mfacc = c0o1; + mfcca = c0o1; + mfaaa = c0o1; + mfcaa = c0o1; + mfaca = c0o1; + + + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position NEB 0.25f, 0.25f, -0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = c1o4; + y = c1o4; + z = -c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho = c27o64*drho_NEB+c9o64*drho_NET+c9o64*drho_NWB+c3o64*drho_NWT+c9o64*drho_SEB+c3o64*drho_SET+c3o64*drho_SWB+c1o64*drho_SWT; + //press = press_NET * (c9o64 - c3o16 * mxoff - c3o16 * myoff - c9o16 * mzoff) + + // press_NWT * (c3o64 + c3o16 * mxoff - c1o16 * myoff - c3o16 * mzoff) + + // press_SET * (c3o64 - c1o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + + // press_SWT * (c1o64 + c1o16 * mxoff + c1o16 * myoff - c1o16 * mzoff) + + // press_SWB * (c3o64 + c3o16 * mxoff + c3o16 * myoff + c1o16 * mzoff) + + // press_NWB * (c9o64 + c9o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + + // press_SEB * (c9o64 - c3o16 * mxoff + c9o16 * myoff + c3o16 * mzoff) + + // press_NEB * (c27o64 - c9o16 * mxoff - c9o16 * myoff + c9o16 * mzoff); + //drho = drho_NET * (c9o64 - c3o16 * xoff - c3o16 * yoff - c9o16 * zoff) + + // drho_NWT * (c3o64 + c3o16 * xoff - c1o16 * yoff - c3o16 * zoff) + + // drho_SET * (c3o64 - c1o16 * xoff + c3o16 * yoff - c3o16 * zoff) + + // drho_SWT * (c1o64 + c1o16 * xoff + c1o16 * yoff - c1o16 * zoff) + + // drho_SWB * (c3o64 + c3o16 * xoff + c3o16 * yoff + c1o16 * zoff) + + // drho_NWB * (c9o64 + c9o16 * xoff - c3o16 * yoff + c3o16 * zoff) + + // drho_SEB * (c9o64 - c3o16 * xoff + c9o16 * yoff + c3o16 * zoff) + + // drho_NEB * (c27o64 - c9o16 * xoff - c9o16 * yoff + c9o16 * zoff); + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; + vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); + vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); + vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); + //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); + //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); + //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1; + //oMdrho = one - mfaaa; + + //2.f + // linear combinations + mxxPyyPzz = mfaaa - c2o3*(ax + by + c2o1*axx*x + bxy*x + axy*y + c2o1*byy*y + axz*z + byz*z + bxyz*x*z + axyz*y*z + cz - cxz*x + cyz*y + cxyz*x*y + c2o1*czz*z)*eps_new / oP* (c1o1 + press); + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); + //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mfbbb = c0o1; + + //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); + //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); + //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); + //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyPyzz = c0o1; + + //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); + //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); + //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyMyzz = c0o1; + + //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); + //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); + //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzPyyz = c0o1; + + //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); + //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); + //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzMyyz = c0o1; + + //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); + //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; + //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); + //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyPxzz = c0o1; + + //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); + //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); + //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyMxzz = c0o1; + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////// + //index + kb = kzero; + kbw = kw; + kbs = ks; + kbsw = ksw; + kzero= k0w; + kw = neighborFX[k0w]; + ks = k0sw; + ksw = neighborFX[k0sw]; + //////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + feF[kzero] = mfcbb; + fwF[kw] = mfabb; + fnF[kzero] = mfbcb; + fsF[ks] = mfbab; + ftF[kzero] = mfbbc; + fbF[kb] = mfbba; + fneF[kzero] = mfccb; + fswF[ksw] = mfaab; + fseF[ks] = mfcab; + fnwF[kw] = mfacb; + fteF[kzero] = mfcbc; + fbwF[kbw] = mfaba; + fbeF[kb] = mfcba; + ftwF[kw] = mfabc; + ftnF[kzero] = mfbcc; + fbsF[kbs] = mfbaa; + fbnF[kb] = mfbca; + ftsF[ks] = mfbac; + fzeroF[kzero] = mfbbb; + ftneF[kzero] = mfccc; + ftseF[ks] = mfcac; + fbneF[kb] = mfcca; + fbseF[kbs] = mfcaa; + ftnwF[kw] = mfacc; + ftswF[ksw] = mfaac; + fbnwF[kbw] = mfaca; + fbswF[kbsw] = mfaaa; + //////////////////////////////////////////////////////////////////////////////////// + } +} +////////////////////////////////////////////////////////////////////////// @@ -31129,27 +31129,27 @@ __global__ void scaleCF_Fix_comp_27( real* DC, ////////////////////////////////////////////////////////////////////////// __global__ void scaleCF_NSPress_27( real* DC, - real* DF, - unsigned int* neighborCX, - unsigned int* neighborCY, - unsigned int* neighborCZ, - unsigned int* neighborFX, - unsigned int* neighborFY, - unsigned int* neighborFZ, - unsigned long long numberOfLBnodesCoarse, - unsigned long long numberOfLBnodesFine, - bool isEvenTimestep, - unsigned int* posCSWB, - unsigned int* posFSWB, - unsigned int kCF, - real omCoarse, - real omFine, - real nu, - unsigned int nxC, - unsigned int nyC, - unsigned int nxF, - unsigned int nyF, - ICellNeigh offCF) + real* DF, + unsigned int* neighborCX, + unsigned int* neighborCY, + unsigned int* neighborCZ, + unsigned int* neighborFX, + unsigned int* neighborFY, + unsigned int* neighborFZ, + unsigned long long numberOfLBnodesCoarse, + unsigned long long numberOfLBnodesFine, + bool isEvenTimestep, + unsigned int* posCSWB, + unsigned int* posFSWB, + unsigned int kCF, + real omCoarse, + real omFine, + real nu, + unsigned int nxC, + unsigned int nyC, + unsigned int nxF, + unsigned int nyF, + ICellNeigh offCF) { real *feF, *fwF, *fnF, *fsF, *ftF, *fbF, *fneF, *fswF, *fseF, *fnwF, *fteF, *fbwF, *fbeF, *ftwF, *ftnF, *fbsF, *fbnF, *ftsF, *fzeroF, *ftneF, *ftswF, *ftseF, *ftnwF, *fbneF, *fbswF, *fbseF, *fbnwF; @@ -31353,13 +31353,13 @@ __global__ void scaleCF_NSPress_27( real* DC, //vx1_SWB = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_SWB = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_SWB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_SWB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_SWB = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_SWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_SWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_SWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_SWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_SWB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; - press_SWB= (f_E+f_W+f_N+f_S+f_T+f_B+c2o1*(f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS)+c3o1*(f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW)- - drho_SWB-(vx1_SWB*vx1_SWB+vx2_SWB*vx2_SWB+vx3_SWB*vx3_SWB)* (c1o1+drho_SWB)) * c1o2+drho_SWB; + press_SWB= (f_E+f_W+f_N+f_S+f_T+f_B+c2o1*(f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS)+c3o1*(f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW)- + drho_SWB-(vx1_SWB*vx1_SWB+vx2_SWB*vx2_SWB+vx3_SWB*vx3_SWB)* (c1o1+drho_SWB)) * c1o2+drho_SWB; kxyFromfcNEQ_SWB = -c3o1*omegaS*(f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE-(vx1_SWB*vx2_SWB)); kyzFromfcNEQ_SWB = -c3o1*omegaS*(f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW-(vx2_SWB*vx3_SWB)); @@ -31410,10 +31410,10 @@ __global__ void scaleCF_NSPress_27( real* DC, //vx1_SWT = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_SWT = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_SWT = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_SWT = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_SWT = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_SWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_SWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_SWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_SWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_SWT = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; press_SWT= (f_E+f_W+f_N+f_S+f_T+f_B+c2o1*(f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS)+c3o1*(f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW)- drho_SWT-(vx1_SWT*vx1_SWT+vx2_SWT*vx2_SWT+vx3_SWT*vx3_SWT)* (c1o1+drho_SWT)) * c1o2+drho_SWT; @@ -31467,10 +31467,10 @@ __global__ void scaleCF_NSPress_27( real* DC, //vx1_SET = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_SET = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_SET = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_SET = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_SET = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_SET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_SET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_SET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_SET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_SET = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; press_SET= (f_E+f_W+f_N+f_S+f_T+f_B+c2o1*(f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS)+c3o1*(f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW)- drho_SET-(vx1_SET*vx1_SET+vx2_SET*vx2_SET+vx3_SET*vx3_SET)* (c1o1+drho_SET)) * c1o2+drho_SET; @@ -31524,10 +31524,10 @@ __global__ void scaleCF_NSPress_27( real* DC, //vx1_SEB = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_SEB = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_SEB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_SEB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_SEB = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_SEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_SEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_SEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_SEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_SEB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; press_SEB= (f_E+f_W+f_N+f_S+f_T+f_B+c2o1*(f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS)+c3o1*(f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW)- drho_SEB-(vx1_SEB*vx1_SEB+vx2_SEB*vx2_SEB+vx3_SEB*vx3_SEB)* (c1o1+drho_SEB)) * c1o2+drho_SEB; @@ -31591,10 +31591,10 @@ __global__ void scaleCF_NSPress_27( real* DC, //vx1_NWB = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_NWB = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_NWB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_NWB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_NWB = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_NWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_NWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_NWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_NWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_NWB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; press_NWB= (f_E+f_W+f_N+f_S+f_T+f_B+2.f*(f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS)+3.f*(f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW)- drho_NWB-(vx1_NWB*vx1_NWB+vx2_NWB*vx2_NWB+vx3_NWB*vx3_NWB)* (1.+drho_NWB)) * 0.5f+drho_NWB; @@ -31648,10 +31648,10 @@ __global__ void scaleCF_NSPress_27( real* DC, //vx1_NWT = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_NWT = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_NWT = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_NWT = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_NWT = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_NWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_NWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_NWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_NWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_NWT = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; press_NWT= (f_E+f_W+f_N+f_S+f_T+f_B+c2o1*(f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS)+c3o1*(f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW)- drho_NWT-(vx1_NWT*vx1_NWT+vx2_NWT*vx2_NWT+vx3_NWT*vx3_NWT)* (c1o1+drho_NWT)) * c1o2+drho_NWT; @@ -31705,10 +31705,10 @@ __global__ void scaleCF_NSPress_27( real* DC, //vx1_NET = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_NET = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_NET = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_NET = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_NET = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_NET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_NET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_NET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_NET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_NET = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; press_NET= (f_E+f_W+f_N+f_S+f_T+f_B+c2o1*(f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS)+c3o1*(f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW)- drho_NET-(vx1_NET*vx1_NET+vx2_NET*vx2_NET+vx3_NET*vx3_NET)* (c1o1+drho_NET)) * c1o2+drho_NET; @@ -31762,10 +31762,10 @@ __global__ void scaleCF_NSPress_27( real* DC, //vx1_NEB = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_NEB = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_NEB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_NEB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_NEB = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_NEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_NEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_NEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_NEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_NEB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; press_NEB= (f_E+f_W+f_N+f_S+f_T+f_B+c2o1*(f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS)+c3o1*(f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW)- drho_NEB-(vx1_NEB*vx1_NEB+vx2_NEB*vx2_NEB+vx3_NEB*vx3_NEB)* (c1o1+drho_NEB)) * c1o2+drho_NEB; @@ -31911,3129 +31911,3129 @@ __global__ void scaleCF_NSPress_27( real* DC, cy = cy + c2o1 * yoff * cyy + xoff * cxy + zoff * cyz; cz = cz + c2o1 * zoff * czz + xoff * cxz + yoff * cyz; - real dx, dy, dz; - real pressCenter=(press_SWT+press_NWT+press_SET+press_NET+press_NEB+press_NWB+press_SEB+press_SWB)*c1o8; - - - // if(xoff!=zero || yoff!=zero || zoff!=zero) - { - - dx=c2o1*nu*(axx+ayy+azz); - dy=c2o1*nu*(bxx+byy+bzz); - dz=c2o1*nu*(cxx+cyy+czz); - pressCenter = pressCenter + xoff * dx + yoff * dy + zoff * dz; - } - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // FIX /////////////////////////////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //AAAAAAAAAAAAHHHHHHHHHHHH!!!!! Mieser Test!!! - //ax= ay= az= axx= ayy= azz= axy= axz= ayz= bx= by= bz= bxx= byy= bzz= bxy= bxz= byz= cx= cy= cz= cxx= cyy= czz= cxy= cxz= cyz= axyz= bxyz= cxyz=zero; - //a0=zero; - //b0=zero; - //c0=c1o100; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real mfcbb = c0o1; - real mfabb = c0o1; - real mfbcb = c0o1; - real mfbab = c0o1; - real mfbbc = c0o1; - real mfbba = c0o1; - real mfccb = c0o1; - real mfaab = c0o1; - real mfcab = c0o1; - real mfacb = c0o1; - real mfcbc = c0o1; - real mfaba = c0o1; - real mfcba = c0o1; - real mfabc = c0o1; - real mfbcc = c0o1; - real mfbaa = c0o1; - real mfbca = c0o1; - real mfbac = c0o1; - real mfbbb = c0o1; - real mfccc = c0o1; - real mfaac = c0o1; - real mfcac = c0o1; - real mfacc = c0o1; - real mfcca = c0o1; - real mfaaa = c0o1; - real mfcaa = c0o1; - real mfaca = c0o1; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real m0, m1, m2, vvx, vvy, vvz, vx2, vy2, vz2, oMdrho; - real mxxPyyPzz, mxxMyy, mxxMzz, mxxyPyzz, mxxyMyzz, mxxzPyyz, mxxzMyyz, mxyyPxzz, mxyyMxzz; - real qudricLimit = c1o100;//ganz schlechte Idee -> muss global sein - real O3 = c2o1 - o; - real residu, residutmp; - residutmp = c0o1;// /*-*/ c2o9 * (1./o - c1o2) * eps_new * eps_new; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position SWB -0.25f, -0.25f, -0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = -c1o4; - y = -c1o4; - z = -c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //press = press_SWT * (c9o64 + c3o16 * xoff + c3o16 * yoff - c9o16 * zoff) + - // press_NWT * (c3o64 + c1o16 * xoff - c3o16 * yoff - c3o16 * zoff) + - // press_SET * (c3o64 - c3o16 * xoff + c1o16 * yoff - c3o16 * zoff) + - // press_NET * (c1o64 - c1o16 * xoff - c1o16 * yoff - c1o16 * zoff) + - // press_NEB * (c3o64 - c3o16 * xoff - c3o16 * yoff + c1o16 * zoff) + - // press_NWB * (c9o64 + c3o16 * xoff - c9o16 * yoff + c3o16 * zoff) + - // press_SEB * (c9o64 - c9o16 * xoff + c3o16 * yoff + c3o16 * zoff) + - // press_SWB * (c27o64 + c9o16 * xoff + c9o16 * yoff + c9o16 * zoff); - //if(xoff!=zero || yoff!=zero || zoff!=zero) - {press=pressCenter+c1o4*(-dx-dy-dz);} - - //drho = drho_SWT * (c9o64 + c3o16 * xoff + c3o16 * yoff - c9o16 * zoff) + - // drho_NWT * (c3o64 + c1o16 * xoff - c3o16 * yoff - c3o16 * zoff) + - // drho_SET * (c3o64 - c3o16 * xoff + c1o16 * yoff - c3o16 * zoff) + - // drho_NET * (c1o64 - c1o16 * xoff - c1o16 * yoff - c1o16 * zoff) + - // drho_NEB * (c3o64 - c3o16 * xoff - c3o16 * yoff + c1o16 * zoff) + - // drho_NWB * (c9o64 + c3o16 * xoff - c9o16 * yoff + c3o16 * zoff) + - // drho_SEB * (c9o64 - c9o16 * xoff + c3o16 * yoff + c3o16 * zoff) + - // drho_SWB * (c27o64 + c9o16 * xoff + c9o16 * yoff + c9o16 * zoff); - vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); - vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); - vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - mfaaa = press + (c2o1*axx*x+axy*y+axz*z+axyz*y*z+ax + c2o1*byy*y+bxy*x+byz*z+bxyz*x*z+by + c2o1*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/c3o1; // 1/3 = 2/3*(1/op-1/2) - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1 - mfaaa; - - //2.f - // linear combinations - mxxPyyPzz = mfaaa; - mxxMyy = -c2o3*(ax - by + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - mxxMzz = -c2o3*(ax - cz + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o; - - mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - mfbab = -c1o3 * (az + cx + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - mfbba = -c1o3 * (ay + bx + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz); - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz); - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz); - - //3.f - // linear combinations - residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); - mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - - residu = residutmp * (axy + c2o1*bxx + c2o1*bzz + cyz + cxyz*x + axyz*z); - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); - mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - - residu = residutmp * (axy + c2o1*bxx - c2o1*bzz - cyz - cxyz*x + axyz*z); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); - mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - - residu = residutmp * (axz + byz + c2o1*cxx + c2o1*cyy + bxyz*x + axyz*y); - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); - mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - - residu = residutmp * (axz - byz + c2o1*cxx - c2o1*cyy - bxyz*x + axyz*y); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); - mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - - residu = residutmp * (c2o1*ayy + c2o1*azz + bxy + cxz + cxyz*y + bxyz*z); - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); - mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - - residu = residutmp * (c2o1*ayy - c2o1*azz + bxy - cxz - cxyz*y + bxyz*z); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); - mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //index 0 - k0zero= posFSWB[k]; - k0w = neighborFX[k0zero]; - k0s = neighborFY[k0zero]; - k0b = neighborFZ[k0zero]; - k0sw = neighborFY[k0w]; - k0bw = neighborFZ[k0w]; - k0bs = neighborFZ[k0s]; - k0bsw = neighborFZ[k0sw]; - ////////////////////////////////////////////////////////////////////////// - //index - kzero= k0zero; - kw = k0w; - ks = k0s; - kb = k0b; - ksw = k0sw; - kbw = k0bw; - kbs = k0bs; - kbsw = k0bsw; - //////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - feF[kzero] = mfcbb; - fwF[kw] = mfabb; - fnF[kzero] = mfbcb; - fsF[ks] = mfbab; - ftF[kzero] = mfbbc; - fbF[kb] = mfbba; - fneF[kzero] = mfccb; - fswF[ksw] = mfaab; - fseF[ks] = mfcab; - fnwF[kw] = mfacb; - fteF[kzero] = mfcbc; - fbwF[kbw] = mfaba; - fbeF[kb] = mfcba; - ftwF[kw] = mfabc; - ftnF[kzero] = mfbcc; - fbsF[kbs] = mfbaa; - fbnF[kb] = mfbca; - ftsF[ks] = mfbac; - fzeroF[kzero] = mfbbb; - ftneF[kzero] = mfccc; - ftseF[ks] = mfcac; - fbneF[kb] = mfcca; - fbseF[kbs] = mfcaa; - ftnwF[kw] = mfacc; - ftswF[ksw] = mfaac; - fbnwF[kbw] = mfaca; - fbswF[kbsw] = mfaaa; - //////////////////////////////////////////////////////////////////////////////////// - - //reset - mfcbb = c0o1; - mfabb = c0o1; - mfbcb = c0o1; - mfbab = c0o1; - mfbbc = c0o1; - mfbba = c0o1; - mfccb = c0o1; - mfaab = c0o1; - mfcab = c0o1; - mfacb = c0o1; - mfcbc = c0o1; - mfaba = c0o1; - mfcba = c0o1; - mfabc = c0o1; - mfbcc = c0o1; - mfbaa = c0o1; - mfbca = c0o1; - mfbac = c0o1; - mfbbb = c0o1; - mfccc = c0o1; - mfaac = c0o1; - mfcac = c0o1; - mfacc = c0o1; - mfcca = c0o1; - mfaaa = c0o1; - mfcaa = c0o1; - mfaca = c0o1; - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position SWT -0.25f, -0.25f, 0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = -c1o4; - y = -c1o4; - z = c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho = c1o64*drho_NEB+c3o64*drho_NET+c3o64*drho_NWB+c9o64*drho_NWT+c3o64*drho_SEB+c9o64*drho_SET+c9o64*drho_SWB+c27o64*drho_SWT; - //press = press_SWT * (c27o64 + c9o16 * xoff + c9o16 * yoff - c9o16 * zoff) + - // press_NWT * (c9o64 + c3o16 * xoff - c9o16 * yoff - c3o16 * zoff) + - // press_SET * (c9o64 - c9o16 * xoff + c3o16 * yoff - c3o16 * zoff) + - // press_NET * (c3o64 - c3o16 * xoff - c3o16 * yoff - c1o16 * zoff) + - // press_NEB * (c1o64 - c1o16 * xoff - c1o16 * yoff + c1o16 * zoff) + - // press_NWB * (c3o64 + c1o16 * xoff - c3o16 * yoff + c3o16 * zoff) + - // press_SEB * (c3o64 - c3o16 * xoff + c1o16 * yoff + c3o16 * zoff) + - // press_SWB * (c9o64 + c3o16 * xoff + c3o16 * yoff + c9o16 * zoff); - //if(xoff!=zero || yoff!=zero || zoff!=zero) - {press=pressCenter+c1o4*(-dx-dy+dz);} - //drho = drho_SWT * (c27o64 + c9o16 * xoff + c9o16 * yoff - c9o16 * zoff) + - // drho_NWT * (c9o64 + c3o16 * xoff - c9o16 * yoff - c3o16 * zoff) + - // drho_SET * (c9o64 - c9o16 * xoff + c3o16 * yoff - c3o16 * zoff) + - // drho_NET * (c3o64 - c3o16 * xoff - c3o16 * yoff - c1o16 * zoff) + - // drho_NEB * (c1o64 - c1o16 * xoff - c1o16 * yoff + c1o16 * zoff) + - // drho_NWB * (c3o64 + c1o16 * xoff - c3o16 * yoff + c3o16 * zoff) + - // drho_SEB * (c3o64 - c3o16 * xoff + c1o16 * yoff + c3o16 * zoff) + - // drho_SWB * (c9o64 + c3o16 * xoff + c3o16 * yoff + c9o16 * zoff); - vvx = a0 + c1o4*(-ax - ay + az) + c1o16*(axx + axy - axz + ayy - ayz + azz) + c1o64*( axyz); - vvy = b0 + c1o4*(-bx - by + bz) + c1o16*(bxx + bxy - bxz + byy - byz + bzz) + c1o64*( bxyz); - vvz = c0 + c1o4*(-cx - cy + cz) + c1o16*(cxx + cxy - cxz + cyy - cyz + czz) + c1o64*( cxyz); - - //mfaaa = drho; - mfaaa = press + (c2o1*axx*x+axy*y+axz*z+axyz*y*z+ax + c2o1*byy*y+bxy*x+byz*z+bxyz*x*z+by + c2o1*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/c3o1; // 1/3 = 2/3*(1/op-1/2) - - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1 - mfaaa; - - //two - // linear combinations - mxxPyyPzz = mfaaa; - mxxMyy = -c2o3*(ax - by + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - mxxMzz = -c2o3*(ax - cz + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o; - - mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - mfbab = -c1o3 * (az + cx + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - mfbba = -c1o3 * (ay + bx + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz); - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz); - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz); - - //three - // linear combinations - residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); - mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - - residu = residutmp * (axy + c2o1*bxx + c2o1*bzz + cyz + cxyz*x + axyz*z); - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); - mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - - residu = residutmp * (axy + c2o1*bxx - c2o1*bzz - cyz - cxyz*x + axyz*z); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); - mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - - residu = residutmp * (axz + byz + c2o1*cxx + c2o1*cyy + bxyz*x + axyz*y); - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); - mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - - residu = residutmp * (axz - byz + c2o1*cxx - c2o1*cyy - bxyz*x + axyz*y); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); - mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - - residu = residutmp * (c2o1*ayy + c2o1*azz + bxy + cxz + cxyz*y + bxyz*z); - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); - mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - - residu = residutmp * (c2o1*ayy - c2o1*azz + bxy - cxz - cxyz*y + bxyz*z); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); - mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - //index - kzero= kb; - kw = kbw; - ks = kbs; - kb = neighborFZ[kb]; - ksw = kbsw; - kbw = neighborFZ[kbw]; - kbs = neighborFZ[kbs]; - kbsw = neighborFZ[kbsw]; - //////////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - feF[kzero] = mfcbb; - fwF[kw] = mfabb; - fnF[kzero] = mfbcb; - fsF[ks] = mfbab; - ftF[kzero] = mfbbc; - fbF[kb] = mfbba; - fneF[kzero] = mfccb; - fswF[ksw] = mfaab; - fseF[ks] = mfcab; - fnwF[kw] = mfacb; - fteF[kzero] = mfcbc; - fbwF[kbw] = mfaba; - fbeF[kb] = mfcba; - ftwF[kw] = mfabc; - ftnF[kzero] = mfbcc; - fbsF[kbs] = mfbaa; - fbnF[kb] = mfbca; - ftsF[ks] = mfbac; - fzeroF[kzero] = mfbbb; - ftneF[kzero] = mfccc; - ftseF[ks] = mfcac; - fbneF[kb] = mfcca; - fbseF[kbs] = mfcaa; - ftnwF[kw] = mfacc; - ftswF[ksw] = mfaac; - fbnwF[kbw] = mfaca; - fbswF[kbsw] = mfaaa; - //////////////////////////////////////////////////////////////////////////////////// - - - //reset - mfcbb = c0o1; - mfabb = c0o1; - mfbcb = c0o1; - mfbab = c0o1; - mfbbc = c0o1; - mfbba = c0o1; - mfccb = c0o1; - mfaab = c0o1; - mfcab = c0o1; - mfacb = c0o1; - mfcbc = c0o1; - mfaba = c0o1; - mfcba = c0o1; - mfabc = c0o1; - mfbcc = c0o1; - mfbaa = c0o1; - mfbca = c0o1; - mfbac = c0o1; - mfbbb = c0o1; - mfccc = c0o1; - mfaac = c0o1; - mfcac = c0o1; - mfacc = c0o1; - mfcca = c0o1; - mfaaa = c0o1; - mfcaa = c0o1; - mfaca = c0o1; - - - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position SET 0.25f, -0.25f, 0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = c1o4; - y = -c1o4; - z = c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho =c3o64*drho_NEB+c9o64*drho_NET+c1o64*drho_NWB+c3o64*drho_NWT+c9o64*drho_SEB+c27o64*drho_SET+c3o64*drho_SWB+c9o64*drho_SWT; - //press = press_SET * (c27o64 - c9o16 * xoff + c9o16 * yoff - c9o16 * zoff) + - // press_NET * (c9o64 - c3o16 * xoff - c9o16 * yoff - c3o16 * zoff) + - // press_SWT * (c9o64 + c9o16 * xoff + c3o16 * yoff - c3o16 * zoff) + - // press_NWT * (c3o64 + c3o16 * xoff - c3o16 * yoff - c1o16 * zoff) + - // press_NWB * (c1o64 + c1o16 * xoff - c1o16 * yoff + c1o16 * zoff) + - // press_NEB * (c3o64 - c1o16 * xoff - c3o16 * yoff + c3o16 * zoff) + - // press_SWB * (c3o64 + c3o16 * xoff + c1o16 * yoff + c3o16 * zoff) + - // press_SEB * (c9o64 - c3o16 * xoff + c3o16 * yoff + c9o16 * zoff); - //if(xoff!=zero || yoff!=zero || zoff!=zero) - {press=pressCenter+c1o4*( dx-dy-dz);} - //drho = drho_SET * (c27o64 - c9o16 * xoff + c9o16 * yoff - c9o16 * zoff) + - // drho_NET * (c9o64 - c3o16 * xoff - c9o16 * yoff - c3o16 * zoff) + - // drho_SWT * (c9o64 + c9o16 * xoff + c3o16 * yoff - c3o16 * zoff) + - // drho_NWT * (c3o64 + c3o16 * xoff - c3o16 * yoff - c1o16 * zoff) + - // drho_NWB * (c1o64 + c1o16 * xoff - c1o16 * yoff + c1o16 * zoff) + - // drho_NEB * (c3o64 - c1o16 * xoff - c3o16 * yoff + c3o16 * zoff) + - // drho_SWB * (c3o64 + c3o16 * xoff + c1o16 * yoff + c3o16 * zoff) + - // drho_SEB * (c9o64 - c3o16 * xoff + c3o16 * yoff + c9o16 * zoff); - vvx = a0 + c1o4*( ax - ay + az) + c1o16*(axx - axy + axz + ayy - ayz + azz) + c1o64*(-axyz); - vvy = b0 + c1o4*( bx - by + bz) + c1o16*(bxx - bxy + bxz + byy - byz + bzz) + c1o64*(-bxyz); - vvz = c0 + c1o4*( cx - cy + cz) + c1o16*(cxx - cxy + cxz + cyy - cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - mfaaa = press + (c2o1*axx*x+axy*y+axz*z+axyz*y*z+ax + c2o1*byy*y+bxy*x+byz*z+bxyz*x*z+by + c2o1*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/c3o1; // 1/3 = 2/3*(1/op-1/2) - - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1 - mfaaa; - - //two - // linear combinations - mxxPyyPzz = mfaaa; - mxxMyy = -c2o3*(ax - by + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - mxxMzz = -c2o3*(ax - cz + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o; - - mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - mfbab = -c1o3 * (az + cx + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - mfbba = -c1o3 * (ay + bx + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz); - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz); - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz); - - //three - // linear combinations - residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); - mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - - residu = residutmp * (axy + c2o1*bxx + c2o1*bzz + cyz + cxyz*x + axyz*z); - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); - mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - - residu = residutmp * (axy + c2o1*bxx - c2o1*bzz - cyz - cxyz*x + axyz*z); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); - mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - - residu = residutmp * (axz + byz + c2o1*cxx + c2o1*cyy + bxyz*x + axyz*y); - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); - mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - - residu = residutmp * (axz - byz + c2o1*cxx - c2o1*cyy - bxyz*x + axyz*y); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); - mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - - residu = residutmp * (c2o1*ayy + c2o1*azz + bxy + cxz + cxyz*y + bxyz*z); - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); - mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - - residu = residutmp * (c2o1*ayy - c2o1*azz + bxy - cxz - cxyz*y + bxyz*z); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); - mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //index - kzero= kw; - kw = neighborFX[kw]; - ks = ksw; - kb = kbw; - ksw = neighborFX[ksw]; - kbw = neighborFX[kbw]; - kbs = kbsw; - kbsw = neighborFX[kbsw]; - //////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - feF[kzero] = mfcbb; - fwF[kw] = mfabb; - fnF[kzero] = mfbcb; - fsF[ks] = mfbab; - ftF[kzero] = mfbbc; - fbF[kb] = mfbba; - fneF[kzero] = mfccb; - fswF[ksw] = mfaab; - fseF[ks] = mfcab; - fnwF[kw] = mfacb; - fteF[kzero] = mfcbc; - fbwF[kbw] = mfaba; - fbeF[kb] = mfcba; - ftwF[kw] = mfabc; - ftnF[kzero] = mfbcc; - fbsF[kbs] = mfbaa; - fbnF[kb] = mfbca; - ftsF[ks] = mfbac; - fzeroF[kzero] = mfbbb; - ftneF[kzero] = mfccc; - ftseF[ks] = mfcac; - fbneF[kb] = mfcca; - fbseF[kbs] = mfcaa; - ftnwF[kw] = mfacc; - ftswF[ksw] = mfaac; - fbnwF[kbw] = mfaca; - fbswF[kbsw] = mfaaa; - //////////////////////////////////////////////////////////////////////////////////// - - //reset - mfcbb = c0o1; - mfabb = c0o1; - mfbcb = c0o1; - mfbab = c0o1; - mfbbc = c0o1; - mfbba = c0o1; - mfccb = c0o1; - mfaab = c0o1; - mfcab = c0o1; - mfacb = c0o1; - mfcbc = c0o1; - mfaba = c0o1; - mfcba = c0o1; - mfabc = c0o1; - mfbcc = c0o1; - mfbaa = c0o1; - mfbca = c0o1; - mfbac = c0o1; - mfbbb = c0o1; - mfccc = c0o1; - mfaac = c0o1; - mfcac = c0o1; - mfacc = c0o1; - mfcca = c0o1; - mfaaa = c0o1; - mfcaa = c0o1; - mfaca = c0o1; - - - - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position SEB 0.25f, -0.25f, -0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = c1o4; - y = -c1o4; - z = -c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho =c9o64*drho_NEB+c3o64*drho_NET+c3o64*drho_NWB+c1o64*drho_NWT+c27o64*drho_SEB+c9o64*drho_SET+c9o64*drho_SWB+c3o64*drho_SWT; - //press = press_SET * (c9o64 - c3o16 * xoff + c3o16 * yoff - c9o16 * zoff) + - // press_NET * (c3o64 - c1o16 * xoff - c3o16 * yoff - c3o16 * zoff) + - // press_SWT * (c3o64 + c3o16 * xoff + c1o16 * yoff - c3o16 * zoff) + - // press_NWT * (c1o64 + c1o16 * xoff - c1o16 * yoff - c1o16 * zoff) + - // press_NWB * (c3o64 + c3o16 * xoff - c3o16 * yoff + c1o16 * zoff) + - // press_NEB * (c9o64 - c3o16 * xoff - c9o16 * yoff + c3o16 * zoff) + - // press_SWB * (c9o64 + c9o16 * xoff + c3o16 * yoff + c3o16 * zoff) + - // press_SEB * (c27o64 - c9o16 * xoff + c9o16 * yoff + c9o16 * zoff); - //if(xoff!=zero || yoff!=zero || zoff!=zero) - {press=pressCenter+c1o4*( dx-dy-dz);} - //drho = drho_SET * (c9o64 - c3o16 * xoff + c3o16 * yoff - c9o16 * zoff) + - // drho_NET * (c3o64 - c1o16 * xoff - c3o16 * yoff - c3o16 * zoff) + - // drho_SWT * (c3o64 + c3o16 * xoff + c1o16 * yoff - c3o16 * zoff) + - // drho_NWT * (c1o64 + c1o16 * xoff - c1o16 * yoff - c1o16 * zoff) + - // drho_NWB * (c3o64 + c3o16 * xoff - c3o16 * yoff + c1o16 * zoff) + - // drho_NEB * (c9o64 - c3o16 * xoff - c9o16 * yoff + c3o16 * zoff) + - // drho_SWB * (c9o64 + c9o16 * xoff + c3o16 * yoff + c3o16 * zoff) + - // drho_SEB * (c27o64 - c9o16 * xoff + c9o16 * yoff + c9o16 * zoff); - vvx = a0 + c1o4*( ax - ay - az) + c1o16*(axx - axy - axz + ayy + ayz + azz) + c1o64*( axyz); - vvy = b0 + c1o4*( bx - by - bz) + c1o16*(bxx - bxy - bxz + byy + byz + bzz) + c1o64*( bxyz); - vvz = c0 + c1o4*( cx - cy - cz) + c1o16*(cxx - cxy - cxz + cyy + cyz + czz) + c1o64*( cxyz); - - //mfaaa = drho; - mfaaa = press + (c2o1*axx*x+axy*y+axz*z+axyz*y*z+ax + c2o1*byy*y+bxy*x+byz*z+bxyz*x*z+by + c2o1*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/c3o1; // 1/3 = 2/3*(1/op-1/2) - - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1 - mfaaa; - - //two - // linear combinations - mxxPyyPzz = mfaaa; - mxxMyy = -c2o3*(ax - by + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - mxxMzz = -c2o3*(ax - cz + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o; - - mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - mfbab = -c1o3 * (az + cx + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - mfbba = -c1o3 * (ay + bx + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz); - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz); - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz); - - //three - // linear combinations - residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); - mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - - residu = residutmp * (axy + c2o1*bxx + c2o1*bzz + cyz + cxyz*x + axyz*z); - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); - mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - - residu = residutmp * (axy + c2o1*bxx - c2o1*bzz - cyz - cxyz*x + axyz*z); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); - mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - - residu = residutmp * (axz + byz + c2o1*cxx + c2o1*cyy + bxyz*x + axyz*y); - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); - mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - - residu = residutmp * (axz - byz + c2o1*cxx - c2o1*cyy - bxyz*x + axyz*y); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); - mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - - residu = residutmp * (c2o1*ayy + c2o1*azz + bxy + cxz + cxyz*y + bxyz*z); - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); - mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - - residu = residutmp * (c2o1*ayy - c2o1*azz + bxy - cxz - cxyz*y + bxyz*z); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); - mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //index - kb = kzero; - kbw = kw; - kbs = ks; - kbsw = ksw; - kzero= k0w; - kw = neighborFX[k0w]; - ks = k0sw; - ksw = neighborFX[k0sw]; - //////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - feF[kzero] = mfcbb; - fwF[kw] = mfabb; - fnF[kzero] = mfbcb; - fsF[ks] = mfbab; - ftF[kzero] = mfbbc; - fbF[kb] = mfbba; - fneF[kzero] = mfccb; - fswF[ksw] = mfaab; - fseF[ks] = mfcab; - fnwF[kw] = mfacb; - fteF[kzero] = mfcbc; - fbwF[kbw] = mfaba; - fbeF[kb] = mfcba; - ftwF[kw] = mfabc; - ftnF[kzero] = mfbcc; - fbsF[kbs] = mfbaa; - fbnF[kb] = mfbca; - ftsF[ks] = mfbac; - fzeroF[kzero] = mfbbb; - ftneF[kzero] = mfccc; - ftseF[ks] = mfcac; - fbneF[kb] = mfcca; - fbseF[kbs] = mfcaa; - ftnwF[kw] = mfacc; - ftswF[ksw] = mfaac; - fbnwF[kbw] = mfaca; - fbswF[kbsw] = mfaaa; - //////////////////////////////////////////////////////////////////////////////////// - - - //reset - mfcbb = c0o1; - mfabb = c0o1; - mfbcb = c0o1; - mfbab = c0o1; - mfbbc = c0o1; - mfbba = c0o1; - mfccb = c0o1; - mfaab = c0o1; - mfcab = c0o1; - mfacb = c0o1; - mfcbc = c0o1; - mfaba = c0o1; - mfcba = c0o1; - mfabc = c0o1; - mfbcc = c0o1; - mfbaa = c0o1; - mfbca = c0o1; - mfbac = c0o1; - mfbbb = c0o1; - mfccc = c0o1; - mfaac = c0o1; - mfcac = c0o1; - mfacc = c0o1; - mfcca = c0o1; - mfaaa = c0o1; - mfcaa = c0o1; - mfaca = c0o1; - - - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position NWB -0.25f, 0.25f, -0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = -c1o4; - y = c1o4; - z = -c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho = c9o64*drho_NEB+c3o64*drho_NET+c27o64*drho_NWB+c9o64*drho_NWT+c3o64*drho_SEB+c1o64*drho_SET+c9o64*drho_SWB+c3o64*drho_SWT; - //press = press_NWT * (c9o64 + c3o16 * xoff - c3o16 * yoff - c9o16 * zoff) + - // press_NET * (c3o64 - c3o16 * xoff - c1o16 * yoff - c3o16 * zoff) + - // press_SWT * (c3o64 + c1o16 * xoff + c3o16 * yoff - c3o16 * zoff) + - // press_SET * (c1o64 - c1o16 * xoff + c1o16 * yoff - c1o16 * zoff) + - // press_SEB * (c3o64 - c3o16 * xoff + c3o16 * yoff + c1o16 * zoff) + - // press_NEB * (c9o64 - c9o16 * xoff - c3o16 * yoff + c3o16 * zoff) + - // press_SWB * (c9o64 + c3o16 * xoff + c9o16 * yoff + c3o16 * zoff) + - // press_NWB * (c27o64 + c9o16 * xoff - c9o16 * yoff + c9o16 * zoff); - //if(xoff!=zero || yoff!=zero || zoff!=zero) - {press=pressCenter+c1o4*(-dx+dy-dz);} - //drho = drho_NWT * (c9o64 + c3o16 * xoff - c3o16 * yoff - c9o16 * zoff) + - // drho_NET * (c3o64 - c3o16 * xoff - c1o16 * yoff - c3o16 * zoff) + - // drho_SWT * (c3o64 + c1o16 * xoff + c3o16 * yoff - c3o16 * zoff) + - // drho_SET * (c1o64 - c1o16 * xoff + c1o16 * yoff - c1o16 * zoff) + - // drho_SEB * (c3o64 - c3o16 * xoff + c3o16 * yoff + c1o16 * zoff) + - // drho_NEB * (c9o64 - c9o16 * xoff - c3o16 * yoff + c3o16 * zoff) + - // drho_SWB * (c9o64 + c3o16 * xoff + c9o16 * yoff + c3o16 * zoff) + - // drho_NWB * (c27o64 + c9o16 * xoff - c9o16 * yoff + c9o16 * zoff); - vvx = a0 + c1o4*(-ax + ay - az) + c1o16*(axx - axy + axz + ayy - ayz + azz) + c1o64*( axyz); - vvy = b0 + c1o4*(-bx + by - bz) + c1o16*(bxx - bxy + bxz + byy - byz + bzz) + c1o64*( bxyz); - vvz = c0 + c1o4*(-cx + cy - cz) + c1o16*(cxx - cxy + cxz + cyy - cyz + czz) + c1o64*( cxyz); - - //mfaaa = drho; - mfaaa = press + (c2o1*axx*x+axy*y+axz*z+axyz*y*z+ax + c2o1*byy*y+bxy*x+byz*z+bxyz*x*z+by + c2o1*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/c3o1; // 1/3 = 2/3*(1/op-1/2) - - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1 - mfaaa; - - //two - // linear combinations - mxxPyyPzz = mfaaa; - mxxMyy = -c2o3*(ax - by + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - mxxMzz = -c2o3*(ax - cz + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o; - - mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - mfbab = -c1o3 * (az + cx + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - mfbba = -c1o3 * (ay + bx + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz); - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz); - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz); - - //three - // linear combinations - residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); - mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - - residu = residutmp * (axy + c2o1*bxx + c2o1*bzz + cyz + cxyz*x + axyz*z); - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); - mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - - residu = residutmp * (axy + c2o1*bxx - c2o1*bzz - cyz - cxyz*x + axyz*z); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); - mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - - residu = residutmp * (axz + byz + c2o1*cxx + c2o1*cyy + bxyz*x + axyz*y); - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); - mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - - residu = residutmp * (axz - byz + c2o1*cxx - c2o1*cyy - bxyz*x + axyz*y); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); - mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - - residu = residutmp * (c2o1*ayy + c2o1*azz + bxy + cxz + cxyz*y + bxyz*z); - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); - mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - - residu = residutmp * (c2o1*ayy - c2o1*azz + bxy - cxz - cxyz*y + bxyz*z); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); - mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //index 0 - k0zero= k0s; - k0w = k0sw; - k0s = neighborFY[k0s]; - k0b = k0bs; - k0sw = neighborFY[k0sw]; - k0bw = k0bsw; - k0bs = neighborFY[k0bs]; - k0bsw = neighborFY[k0bsw]; - ////////////////////////////////////////////////////////////////////////// - //index - kzero= k0zero; - kw = k0w; - ks = k0s; - kb = k0b; - ksw = k0sw; - kbw = k0bw; - kbs = k0bs; - kbsw = k0bsw; - //////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - feF[kzero] = mfcbb; - fwF[kw] = mfabb; - fnF[kzero] = mfbcb; - fsF[ks] = mfbab; - ftF[kzero] = mfbbc; - fbF[kb] = mfbba; - fneF[kzero] = mfccb; - fswF[ksw] = mfaab; - fseF[ks] = mfcab; - fnwF[kw] = mfacb; - fteF[kzero] = mfcbc; - fbwF[kbw] = mfaba; - fbeF[kb] = mfcba; - ftwF[kw] = mfabc; - ftnF[kzero] = mfbcc; - fbsF[kbs] = mfbaa; - fbnF[kb] = mfbca; - ftsF[ks] = mfbac; - fzeroF[kzero] = mfbbb; - ftneF[kzero] = mfccc; - ftseF[ks] = mfcac; - fbneF[kb] = mfcca; - fbseF[kbs] = mfcaa; - ftnwF[kw] = mfacc; - ftswF[ksw] = mfaac; - fbnwF[kbw] = mfaca; - fbswF[kbsw] = mfaaa; - //////////////////////////////////////////////////////////////////////////////////// - - - //reset - mfcbb = c0o1; - mfabb = c0o1; - mfbcb = c0o1; - mfbab = c0o1; - mfbbc = c0o1; - mfbba = c0o1; - mfccb = c0o1; - mfaab = c0o1; - mfcab = c0o1; - mfacb = c0o1; - mfcbc = c0o1; - mfaba = c0o1; - mfcba = c0o1; - mfabc = c0o1; - mfbcc = c0o1; - mfbaa = c0o1; - mfbca = c0o1; - mfbac = c0o1; - mfbbb = c0o1; - mfccc = c0o1; - mfaac = c0o1; - mfcac = c0o1; - mfacc = c0o1; - mfcca = c0o1; - mfaaa = c0o1; - mfcaa = c0o1; - mfaca = c0o1; - - - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position NWT -0.25f, 0.25f, 0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = -c1o4; - y = c1o4; - z = c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho = c3o64*drho_NEB+c9o64*drho_NET+c9o64*drho_NWB+c27o64*drho_NWT+c1o64*drho_SEB+c3o64*drho_SET+c3o64*drho_SWB+c9o64*drho_SWT; - //press = press_NWT * (c27o64 + c9o16 * xoff - c9o16 * yoff - c9o16 * zoff) + - // press_NET * (c9o64 - c9o16 * xoff - c3o16 * yoff - c3o16 * zoff) + - // press_SWT * (c9o64 + c3o16 * xoff + c9o16 * yoff - c3o16 * zoff) + - // press_SET * (c3o64 - c3o16 * xoff + c3o16 * yoff - c1o16 * zoff) + - // press_SEB * (c1o64 - c1o16 * xoff + c1o16 * yoff + c1o16 * zoff) + - // press_NEB * (c3o64 - c3o16 * xoff - c1o16 * yoff + c3o16 * zoff) + - // press_SWB * (c3o64 + c1o16 * xoff + c3o16 * yoff + c3o16 * zoff) + - // press_NWB * (c9o64 + c3o16 * xoff - c3o16 * yoff + c9o16 * zoff); - //if(xoff!=zero || yoff!=zero || zoff!=zero) - {press=pressCenter+c1o4*(-dx+dy+dz);} - //drho = drho_NWT * (c27o64 + c9o16 * xoff - c9o16 * yoff - c9o16 * zoff) + - // drho_NET * (c9o64 - c9o16 * xoff - c3o16 * yoff - c3o16 * zoff) + - // drho_SWT * (c9o64 + c3o16 * xoff + c9o16 * yoff - c3o16 * zoff) + - // drho_SET * (c3o64 - c3o16 * xoff + c3o16 * yoff - c1o16 * zoff) + - // drho_SEB * (c1o64 - c1o16 * xoff + c1o16 * yoff + c1o16 * zoff) + - // drho_NEB * (c3o64 - c3o16 * xoff - c1o16 * yoff + c3o16 * zoff) + - // drho_SWB * (c3o64 + c1o16 * xoff + c3o16 * yoff + c3o16 * zoff) + - // drho_NWB * (c9o64 + c3o16 * xoff - c3o16 * yoff + c9o16 * zoff); - vvx = a0 + c1o4*(-ax + ay + az) + c1o16*(axx - axy - axz + ayy + ayz + azz) + c1o64*(-axyz); - vvy = b0 + c1o4*(-bx + by + bz) + c1o16*(bxx - bxy - bxz + byy + byz + bzz) + c1o64*(-bxyz); - vvz = c0 + c1o4*(-cx + cy + cz) + c1o16*(cxx - cxy - cxz + cyy + cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - mfaaa = press + (c2o1*axx*x+axy*y+axz*z+axyz*y*z+ax + c2o1*byy*y+bxy*x+byz*z+bxyz*x*z+by + c2o1*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/c3o1; // 1/3 = 2/3*(1/op-1/2) - - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1 - mfaaa; - - //two - // linear combinations - mxxPyyPzz = mfaaa; - mxxMyy = -c2o3*(ax - by + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - mxxMzz = -c2o3*(ax - cz + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o; - - mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - mfbab = -c1o3 * (az + cx + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - mfbba = -c1o3 * (ay + bx + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz); - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz); - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz); - - //three - // linear combinations - residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); - mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - - residu = residutmp * (axy + c2o1*bxx + c2o1*bzz + cyz + cxyz*x + axyz*z); - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); - mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - - residu = residutmp * (axy + c2o1*bxx - c2o1*bzz - cyz - cxyz*x + axyz*z); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); - mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - - residu = residutmp * (axz + byz + c2o1*cxx + c2o1*cyy + bxyz*x + axyz*y); - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); - mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - - residu = residutmp * (axz - byz + c2o1*cxx - c2o1*cyy - bxyz*x + axyz*y); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); - mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - - residu = residutmp * (c2o1*ayy + c2o1*azz + bxy + cxz + cxyz*y + bxyz*z); - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); - mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - - residu = residutmp * (c2o1*ayy - c2o1*azz + bxy - cxz - cxyz*y + bxyz*z); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); - mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //index - kzero= kb; - kw = kbw; - ks = kbs; - kb = neighborFZ[kb]; - ksw = kbsw; - kbw = neighborFZ[kbw]; - kbs = neighborFZ[kbs]; - kbsw = neighborFZ[kbsw]; - //////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - feF[kzero] = mfcbb; - fwF[kw] = mfabb; - fnF[kzero] = mfbcb; - fsF[ks] = mfbab; - ftF[kzero] = mfbbc; - fbF[kb] = mfbba; - fneF[kzero] = mfccb; - fswF[ksw] = mfaab; - fseF[ks] = mfcab; - fnwF[kw] = mfacb; - fteF[kzero] = mfcbc; - fbwF[kbw] = mfaba; - fbeF[kb] = mfcba; - ftwF[kw] = mfabc; - ftnF[kzero] = mfbcc; - fbsF[kbs] = mfbaa; - fbnF[kb] = mfbca; - ftsF[ks] = mfbac; - fzeroF[kzero] = mfbbb; - ftneF[kzero] = mfccc; - ftseF[ks] = mfcac; - fbneF[kb] = mfcca; - fbseF[kbs] = mfcaa; - ftnwF[kw] = mfacc; - ftswF[ksw] = mfaac; - fbnwF[kbw] = mfaca; - fbswF[kbsw] = mfaaa; - //////////////////////////////////////////////////////////////////////////////////// - - - //reset - mfcbb = c0o1; - mfabb = c0o1; - mfbcb = c0o1; - mfbab = c0o1; - mfbbc = c0o1; - mfbba = c0o1; - mfccb = c0o1; - mfaab = c0o1; - mfcab = c0o1; - mfacb = c0o1; - mfcbc = c0o1; - mfaba = c0o1; - mfcba = c0o1; - mfabc = c0o1; - mfbcc = c0o1; - mfbaa = c0o1; - mfbca = c0o1; - mfbac = c0o1; - mfbbb = c0o1; - mfccc = c0o1; - mfaac = c0o1; - mfcac = c0o1; - mfacc = c0o1; - mfcca = c0o1; - mfaaa = c0o1; - mfcaa = c0o1; - mfaca = c0o1; - - - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position NET 0.25f, 0.25f, 0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = c1o4; - y = c1o4; - z = c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho = c9o64*drho_NEB+c27o64*drho_NET+c3o64*drho_NWB+c9o64*drho_NWT+c3o64*drho_SEB+c9o64*drho_SET+c1o64*drho_SWB+c3o64*drho_SWT; - //press = press_NET * (c27o64 - c9o16 * xoff - c9o16 * yoff - c9o16 * zoff) + - // press_NWT * (c9o64 + c9o16 * xoff - c3o16 * yoff - c3o16 * zoff) + - // press_SET * (c9o64 - c3o16 * xoff + c9o16 * yoff - c3o16 * zoff) + - // press_SWT * (c3o64 + c3o16 * xoff + c3o16 * yoff - c1o16 * zoff) + - // press_SWB * (c1o64 + c1o16 * xoff + c1o16 * yoff + c1o16 * zoff) + - // press_NWB * (c3o64 + c3o16 * xoff - c1o16 * yoff + c3o16 * zoff) + - // press_SEB * (c3o64 - c1o16 * xoff + c3o16 * yoff + c3o16 * zoff) + - // press_NEB * (c9o64 - c3o16 * xoff - c3o16 * yoff + c9o16 * zoff); - //if(xoff!=zero || yoff!=zero || zoff!=zero) - {press=pressCenter+c1o4*( dx+dy+dz);} - //drho = drho_NET * (c27o64 - c9o16 * xoff - c9o16 * yoff - c9o16 * zoff) + - // drho_NWT * (c9o64 + c9o16 * xoff - c3o16 * yoff - c3o16 * zoff) + - // drho_SET * (c9o64 - c3o16 * xoff + c9o16 * yoff - c3o16 * zoff) + - // drho_SWT * (c3o64 + c3o16 * xoff + c3o16 * yoff - c1o16 * zoff) + - // drho_SWB * (c1o64 + c1o16 * xoff + c1o16 * yoff + c1o16 * zoff) + - // drho_NWB * (c3o64 + c3o16 * xoff - c1o16 * yoff + c3o16 * zoff) + - // drho_SEB * (c3o64 - c1o16 * xoff + c3o16 * yoff + c3o16 * zoff) + - // drho_NEB * (c9o64 - c3o16 * xoff - c3o16 * yoff + c9o16 * zoff); - vvx = a0 + c1o4*( ax + ay + az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*( axyz); - vvy = b0 + c1o4*( bx + by + bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*( bxyz); - vvz = c0 + c1o4*( cx + cy + cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*( cxyz); - - //mfaaa = drho; - mfaaa = press + (c2o1*axx*x+axy*y+axz*z+axyz*y*z+ax + c2o1*byy*y+bxy*x+byz*z+bxyz*x*z+by + c2o1*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/c3o1; // 1/3 = 2/3*(1/op-1/2) - - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1 - mfaaa; - - //two - // linear combinations - mxxPyyPzz = mfaaa; - mxxMyy = -c2o3*(ax - by + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - mxxMzz = -c2o3*(ax - cz + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o; - - mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - mfbab = -c1o3 * (az + cx + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - mfbba = -c1o3 * (ay + bx + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz); - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz); - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz); - - //three - // linear combinations - residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); - mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - - residu = residutmp * (axy + c2o1*bxx + c2o1*bzz + cyz + cxyz*x + axyz*z); - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); - mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - - residu = residutmp * (axy + c2o1*bxx - c2o1*bzz - cyz - cxyz*x + axyz*z); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); - mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - - residu = residutmp * (axz + byz + c2o1*cxx + c2o1*cyy + bxyz*x + axyz*y); - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); - mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - - residu = residutmp * (axz - byz + c2o1*cxx - c2o1*cyy - bxyz*x + axyz*y); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); - mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - - residu = residutmp * (c2o1*ayy + c2o1*azz + bxy + cxz + cxyz*y + bxyz*z); - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); - mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - - residu = residutmp * (c2o1*ayy - c2o1*azz + bxy - cxz - cxyz*y + bxyz*z); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); - mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //index - kzero= kw; - kw = neighborFX[kw]; - ks = ksw; - kb = kbw; - ksw = neighborFX[ksw]; - kbw = neighborFX[kbw]; - kbs = kbsw; - kbsw = neighborFX[kbsw]; - //////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - feF[kzero] = mfcbb; - fwF[kw] = mfabb; - fnF[kzero] = mfbcb; - fsF[ks] = mfbab; - ftF[kzero] = mfbbc; - fbF[kb] = mfbba; - fneF[kzero] = mfccb; - fswF[ksw] = mfaab; - fseF[ks] = mfcab; - fnwF[kw] = mfacb; - fteF[kzero] = mfcbc; - fbwF[kbw] = mfaba; - fbeF[kb] = mfcba; - ftwF[kw] = mfabc; - ftnF[kzero] = mfbcc; - fbsF[kbs] = mfbaa; - fbnF[kb] = mfbca; - ftsF[ks] = mfbac; - fzeroF[kzero] = mfbbb; - ftneF[kzero] = mfccc; - ftseF[ks] = mfcac; - fbneF[kb] = mfcca; - fbseF[kbs] = mfcaa; - ftnwF[kw] = mfacc; - ftswF[ksw] = mfaac; - fbnwF[kbw] = mfaca; - fbswF[kbsw] = mfaaa; - //////////////////////////////////////////////////////////////////////////////////// - - - //reset - mfcbb = c0o1; - mfabb = c0o1; - mfbcb = c0o1; - mfbab = c0o1; - mfbbc = c0o1; - mfbba = c0o1; - mfccb = c0o1; - mfaab = c0o1; - mfcab = c0o1; - mfacb = c0o1; - mfcbc = c0o1; - mfaba = c0o1; - mfcba = c0o1; - mfabc = c0o1; - mfbcc = c0o1; - mfbaa = c0o1; - mfbca = c0o1; - mfbac = c0o1; - mfbbb = c0o1; - mfccc = c0o1; - mfaac = c0o1; - mfcac = c0o1; - mfacc = c0o1; - mfcca = c0o1; - mfaaa = c0o1; - mfcaa = c0o1; - mfaca = c0o1; - - - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position NEB 0.25f, 0.25f, -0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = c1o4; - y = c1o4; - z = -c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho = c27o64*drho_NEB+c9o64*drho_NET+c9o64*drho_NWB+c3o64*drho_NWT+c9o64*drho_SEB+c3o64*drho_SET+c3o64*drho_SWB+c1o64*drho_SWT; - //press = press_NET * (c9o64 - c3o16 * xoff - c3o16 * yoff - c9o16 * zoff) + - // press_NWT * (c3o64 + c3o16 * xoff - c1o16 * yoff - c3o16 * zoff) + - // press_SET * (c3o64 - c1o16 * xoff + c3o16 * yoff - c3o16 * zoff) + - // press_SWT * (c1o64 + c1o16 * xoff + c1o16 * yoff - c1o16 * zoff) + - // press_SWB * (c3o64 + c3o16 * xoff + c3o16 * yoff + c1o16 * zoff) + - // press_NWB * (c9o64 + c9o16 * xoff - c3o16 * yoff + c3o16 * zoff) + - // press_SEB * (c9o64 - c3o16 * xoff + c9o16 * yoff + c3o16 * zoff) + - // press_NEB * (c27o64 - c9o16 * xoff - c9o16 * yoff + c9o16 * zoff); - //if(xoff!=zero || yoff!=zero || zoff!=zero) - {press=pressCenter+c1o4*( dx+dy-dz);} - //drho = drho_NET * (c9o64 - c3o16 * xoff - c3o16 * yoff - c9o16 * zoff) + - // drho_NWT * (c3o64 + c3o16 * xoff - c1o16 * yoff - c3o16 * zoff) + - // drho_SET * (c3o64 - c1o16 * xoff + c3o16 * yoff - c3o16 * zoff) + - // drho_SWT * (c1o64 + c1o16 * xoff + c1o16 * yoff - c1o16 * zoff) + - // drho_SWB * (c3o64 + c3o16 * xoff + c3o16 * yoff + c1o16 * zoff) + - // drho_NWB * (c9o64 + c9o16 * xoff - c3o16 * yoff + c3o16 * zoff) + - // drho_SEB * (c9o64 - c3o16 * xoff + c9o16 * yoff + c3o16 * zoff) + - // drho_NEB * (c27o64 - c9o16 * xoff - c9o16 * yoff + c9o16 * zoff); - vvx = a0 + c1o4*( ax + ay - az) + c1o16*(axx + axy - axz + ayy - ayz + azz) + c1o64*(-axyz); - vvy = b0 + c1o4*( bx + by - bz) + c1o16*(bxx + bxy - bxz + byy - byz + bzz) + c1o64*(-bxyz); - vvz = c0 + c1o4*( cx + cy - cz) + c1o16*(cxx + cxy - cxz + cyy - cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - mfaaa = press + (c2o1*axx*x+axy*y+axz*z+axyz*y*z+ax + c2o1*byy*y+bxy*x+byz*z+bxyz*x*z+by + c2o1*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/c3o1; // 1/3 = 2/3*(1/op-1/2) - - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1 - mfaaa; - - //two - // linear combinations - mxxPyyPzz = mfaaa; - mxxMyy = -c2o3*(ax - by + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - mxxMzz = -c2o3*(ax - cz + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o; - - mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - mfbab = -c1o3 * (az + cx + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - mfbba = -c1o3 * (ay + bx + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz); - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz); - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz); - - //three - // linear combinations - residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); - mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - - residu = residutmp * (axy + c2o1*bxx + c2o1*bzz + cyz + cxyz*x + axyz*z); - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); - mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - - residu = residutmp * (axy + c2o1*bxx - c2o1*bzz - cyz - cxyz*x + axyz*z); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); - mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - - residu = residutmp * (axz + byz + c2o1*cxx + c2o1*cyy + bxyz*x + axyz*y); - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); - mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - - residu = residutmp * (axz - byz + c2o1*cxx - c2o1*cyy - bxyz*x + axyz*y); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); - mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - - residu = residutmp * (c2o1*ayy + c2o1*azz + bxy + cxz + cxyz*y + bxyz*z); - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); - mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - - residu = residutmp * (c2o1*ayy - c2o1*azz + bxy - cxz - cxyz*y + bxyz*z); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); - mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //index - kb = kzero; - kbw = kw; - kbs = ks; - kbsw = ksw; - kzero= k0w; - kw = neighborFX[k0w]; - ks = k0sw; - ksw = neighborFX[k0sw]; - //////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - feF[kzero] = mfcbb; - fwF[kw] = mfabb; - fnF[kzero] = mfbcb; - fsF[ks] = mfbab; - ftF[kzero] = mfbbc; - fbF[kb] = mfbba; - fneF[kzero] = mfccb; - fswF[ksw] = mfaab; - fseF[ks] = mfcab; - fnwF[kw] = mfacb; - fteF[kzero] = mfcbc; - fbwF[kbw] = mfaba; - fbeF[kb] = mfcba; - ftwF[kw] = mfabc; - ftnF[kzero] = mfbcc; - fbsF[kbs] = mfbaa; - fbnF[kb] = mfbca; - ftsF[ks] = mfbac; - fzeroF[kzero] = mfbbb; - ftneF[kzero] = mfccc; - ftseF[ks] = mfcac; - fbneF[kb] = mfcca; - fbseF[kbs] = mfcaa; - ftnwF[kw] = mfacc; - ftswF[ksw] = mfaac; - fbnwF[kbw] = mfaca; - fbswF[kbsw] = mfaaa; - //////////////////////////////////////////////////////////////////////////////////// - } -} -////////////////////////////////////////////////////////////////////////// + real dx, dy, dz; + real pressCenter=(press_SWT+press_NWT+press_SET+press_NET+press_NEB+press_NWB+press_SEB+press_SWB)*c1o8; + + + // if(xoff!=zero || yoff!=zero || zoff!=zero) + { + + dx=c2o1*nu*(axx+ayy+azz); + dy=c2o1*nu*(bxx+byy+bzz); + dz=c2o1*nu*(cxx+cyy+czz); + pressCenter = pressCenter + xoff * dx + yoff * dy + zoff * dz; + } + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // FIX /////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //AAAAAAAAAAAAHHHHHHHHHHHH!!!!! Mieser Test!!! + //ax= ay= az= axx= ayy= azz= axy= axz= ayz= bx= by= bz= bxx= byy= bzz= bxy= bxz= byz= cx= cy= cz= cxx= cyy= czz= cxy= cxz= cyz= axyz= bxyz= cxyz=zero; + //a0=zero; + //b0=zero; + //c0=c1o100; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + real mfcbb = c0o1; + real mfabb = c0o1; + real mfbcb = c0o1; + real mfbab = c0o1; + real mfbbc = c0o1; + real mfbba = c0o1; + real mfccb = c0o1; + real mfaab = c0o1; + real mfcab = c0o1; + real mfacb = c0o1; + real mfcbc = c0o1; + real mfaba = c0o1; + real mfcba = c0o1; + real mfabc = c0o1; + real mfbcc = c0o1; + real mfbaa = c0o1; + real mfbca = c0o1; + real mfbac = c0o1; + real mfbbb = c0o1; + real mfccc = c0o1; + real mfaac = c0o1; + real mfcac = c0o1; + real mfacc = c0o1; + real mfcca = c0o1; + real mfaaa = c0o1; + real mfcaa = c0o1; + real mfaca = c0o1; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + real m0, m1, m2, vvx, vvy, vvz, vx2, vy2, vz2, oMdrho; + real mxxPyyPzz, mxxMyy, mxxMzz, mxxyPyzz, mxxyMyzz, mxxzPyyz, mxxzMyyz, mxyyPxzz, mxyyMxzz; + real qudricLimit = c1o100;//ganz schlechte Idee -> muss global sein + real O3 = c2o1 - o; + real residu, residutmp; + residutmp = c0o1;// /*-*/ c2o9 * (1./o - c1o2) * eps_new * eps_new; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position SWB -0.25f, -0.25f, -0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = -c1o4; + y = -c1o4; + z = -c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //press = press_SWT * (c9o64 + c3o16 * xoff + c3o16 * yoff - c9o16 * zoff) + + // press_NWT * (c3o64 + c1o16 * xoff - c3o16 * yoff - c3o16 * zoff) + + // press_SET * (c3o64 - c3o16 * xoff + c1o16 * yoff - c3o16 * zoff) + + // press_NET * (c1o64 - c1o16 * xoff - c1o16 * yoff - c1o16 * zoff) + + // press_NEB * (c3o64 - c3o16 * xoff - c3o16 * yoff + c1o16 * zoff) + + // press_NWB * (c9o64 + c3o16 * xoff - c9o16 * yoff + c3o16 * zoff) + + // press_SEB * (c9o64 - c9o16 * xoff + c3o16 * yoff + c3o16 * zoff) + + // press_SWB * (c27o64 + c9o16 * xoff + c9o16 * yoff + c9o16 * zoff); + //if(xoff!=zero || yoff!=zero || zoff!=zero) + {press=pressCenter+c1o4*(-dx-dy-dz);} + + //drho = drho_SWT * (c9o64 + c3o16 * xoff + c3o16 * yoff - c9o16 * zoff) + + // drho_NWT * (c3o64 + c1o16 * xoff - c3o16 * yoff - c3o16 * zoff) + + // drho_SET * (c3o64 - c3o16 * xoff + c1o16 * yoff - c3o16 * zoff) + + // drho_NET * (c1o64 - c1o16 * xoff - c1o16 * yoff - c1o16 * zoff) + + // drho_NEB * (c3o64 - c3o16 * xoff - c3o16 * yoff + c1o16 * zoff) + + // drho_NWB * (c9o64 + c3o16 * xoff - c9o16 * yoff + c3o16 * zoff) + + // drho_SEB * (c9o64 - c9o16 * xoff + c3o16 * yoff + c3o16 * zoff) + + // drho_SWB * (c27o64 + c9o16 * xoff + c9o16 * yoff + c9o16 * zoff); + vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); + vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); + vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + mfaaa = press + (c2o1*axx*x+axy*y+axz*z+axyz*y*z+ax + c2o1*byy*y+bxy*x+byz*z+bxyz*x*z+by + c2o1*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/c3o1; // 1/3 = 2/3*(1/op-1/2) + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1 - mfaaa; + + //2.f + // linear combinations + mxxPyyPzz = mfaaa; + mxxMyy = -c2o3*(ax - by + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + mxxMzz = -c2o3*(ax - cz + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o; + + mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + mfbab = -c1o3 * (az + cx + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + mfbba = -c1o3 * (ay + bx + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz); + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz); + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz); + + //3.f + // linear combinations + residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); + mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + + residu = residutmp * (axy + c2o1*bxx + c2o1*bzz + cyz + cxyz*x + axyz*z); + //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); + mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + + residu = residutmp * (axy + c2o1*bxx - c2o1*bzz - cyz - cxyz*x + axyz*z); + //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); + mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + + residu = residutmp * (axz + byz + c2o1*cxx + c2o1*cyy + bxyz*x + axyz*y); + //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); + mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + + residu = residutmp * (axz - byz + c2o1*cxx - c2o1*cyy - bxyz*x + axyz*y); + //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); + mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + + residu = residutmp * (c2o1*ayy + c2o1*azz + bxy + cxz + cxyz*y + bxyz*z); + //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); + mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + + residu = residutmp * (c2o1*ayy - c2o1*azz + bxy - cxz - cxyz*y + bxyz*z); + //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); + mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////// + //index 0 + k0zero= posFSWB[k]; + k0w = neighborFX[k0zero]; + k0s = neighborFY[k0zero]; + k0b = neighborFZ[k0zero]; + k0sw = neighborFY[k0w]; + k0bw = neighborFZ[k0w]; + k0bs = neighborFZ[k0s]; + k0bsw = neighborFZ[k0sw]; + ////////////////////////////////////////////////////////////////////////// + //index + kzero= k0zero; + kw = k0w; + ks = k0s; + kb = k0b; + ksw = k0sw; + kbw = k0bw; + kbs = k0bs; + kbsw = k0bsw; + //////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + feF[kzero] = mfcbb; + fwF[kw] = mfabb; + fnF[kzero] = mfbcb; + fsF[ks] = mfbab; + ftF[kzero] = mfbbc; + fbF[kb] = mfbba; + fneF[kzero] = mfccb; + fswF[ksw] = mfaab; + fseF[ks] = mfcab; + fnwF[kw] = mfacb; + fteF[kzero] = mfcbc; + fbwF[kbw] = mfaba; + fbeF[kb] = mfcba; + ftwF[kw] = mfabc; + ftnF[kzero] = mfbcc; + fbsF[kbs] = mfbaa; + fbnF[kb] = mfbca; + ftsF[ks] = mfbac; + fzeroF[kzero] = mfbbb; + ftneF[kzero] = mfccc; + ftseF[ks] = mfcac; + fbneF[kb] = mfcca; + fbseF[kbs] = mfcaa; + ftnwF[kw] = mfacc; + ftswF[ksw] = mfaac; + fbnwF[kbw] = mfaca; + fbswF[kbsw] = mfaaa; + //////////////////////////////////////////////////////////////////////////////////// + + //reset + mfcbb = c0o1; + mfabb = c0o1; + mfbcb = c0o1; + mfbab = c0o1; + mfbbc = c0o1; + mfbba = c0o1; + mfccb = c0o1; + mfaab = c0o1; + mfcab = c0o1; + mfacb = c0o1; + mfcbc = c0o1; + mfaba = c0o1; + mfcba = c0o1; + mfabc = c0o1; + mfbcc = c0o1; + mfbaa = c0o1; + mfbca = c0o1; + mfbac = c0o1; + mfbbb = c0o1; + mfccc = c0o1; + mfaac = c0o1; + mfcac = c0o1; + mfacc = c0o1; + mfcca = c0o1; + mfaaa = c0o1; + mfcaa = c0o1; + mfaca = c0o1; + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position SWT -0.25f, -0.25f, 0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = -c1o4; + y = -c1o4; + z = c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho = c1o64*drho_NEB+c3o64*drho_NET+c3o64*drho_NWB+c9o64*drho_NWT+c3o64*drho_SEB+c9o64*drho_SET+c9o64*drho_SWB+c27o64*drho_SWT; + //press = press_SWT * (c27o64 + c9o16 * xoff + c9o16 * yoff - c9o16 * zoff) + + // press_NWT * (c9o64 + c3o16 * xoff - c9o16 * yoff - c3o16 * zoff) + + // press_SET * (c9o64 - c9o16 * xoff + c3o16 * yoff - c3o16 * zoff) + + // press_NET * (c3o64 - c3o16 * xoff - c3o16 * yoff - c1o16 * zoff) + + // press_NEB * (c1o64 - c1o16 * xoff - c1o16 * yoff + c1o16 * zoff) + + // press_NWB * (c3o64 + c1o16 * xoff - c3o16 * yoff + c3o16 * zoff) + + // press_SEB * (c3o64 - c3o16 * xoff + c1o16 * yoff + c3o16 * zoff) + + // press_SWB * (c9o64 + c3o16 * xoff + c3o16 * yoff + c9o16 * zoff); + //if(xoff!=zero || yoff!=zero || zoff!=zero) + {press=pressCenter+c1o4*(-dx-dy+dz);} + //drho = drho_SWT * (c27o64 + c9o16 * xoff + c9o16 * yoff - c9o16 * zoff) + + // drho_NWT * (c9o64 + c3o16 * xoff - c9o16 * yoff - c3o16 * zoff) + + // drho_SET * (c9o64 - c9o16 * xoff + c3o16 * yoff - c3o16 * zoff) + + // drho_NET * (c3o64 - c3o16 * xoff - c3o16 * yoff - c1o16 * zoff) + + // drho_NEB * (c1o64 - c1o16 * xoff - c1o16 * yoff + c1o16 * zoff) + + // drho_NWB * (c3o64 + c1o16 * xoff - c3o16 * yoff + c3o16 * zoff) + + // drho_SEB * (c3o64 - c3o16 * xoff + c1o16 * yoff + c3o16 * zoff) + + // drho_SWB * (c9o64 + c3o16 * xoff + c3o16 * yoff + c9o16 * zoff); + vvx = a0 + c1o4*(-ax - ay + az) + c1o16*(axx + axy - axz + ayy - ayz + azz) + c1o64*( axyz); + vvy = b0 + c1o4*(-bx - by + bz) + c1o16*(bxx + bxy - bxz + byy - byz + bzz) + c1o64*( bxyz); + vvz = c0 + c1o4*(-cx - cy + cz) + c1o16*(cxx + cxy - cxz + cyy - cyz + czz) + c1o64*( cxyz); + + //mfaaa = drho; + mfaaa = press + (c2o1*axx*x+axy*y+axz*z+axyz*y*z+ax + c2o1*byy*y+bxy*x+byz*z+bxyz*x*z+by + c2o1*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/c3o1; // 1/3 = 2/3*(1/op-1/2) + + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1 - mfaaa; + + //two + // linear combinations + mxxPyyPzz = mfaaa; + mxxMyy = -c2o3*(ax - by + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + mxxMzz = -c2o3*(ax - cz + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o; + + mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + mfbab = -c1o3 * (az + cx + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + mfbba = -c1o3 * (ay + bx + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz); + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz); + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz); + + //three + // linear combinations + residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); + mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + + residu = residutmp * (axy + c2o1*bxx + c2o1*bzz + cyz + cxyz*x + axyz*z); + //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); + mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + + residu = residutmp * (axy + c2o1*bxx - c2o1*bzz - cyz - cxyz*x + axyz*z); + //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); + mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + + residu = residutmp * (axz + byz + c2o1*cxx + c2o1*cyy + bxyz*x + axyz*y); + //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); + mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + + residu = residutmp * (axz - byz + c2o1*cxx - c2o1*cyy - bxyz*x + axyz*y); + //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); + mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + + residu = residutmp * (c2o1*ayy + c2o1*azz + bxy + cxz + cxyz*y + bxyz*z); + //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); + mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + + residu = residutmp * (c2o1*ayy - c2o1*azz + bxy - cxz - cxyz*y + bxyz*z); + //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); + mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + //index + kzero= kb; + kw = kbw; + ks = kbs; + kb = neighborFZ[kb]; + ksw = kbsw; + kbw = neighborFZ[kbw]; + kbs = neighborFZ[kbs]; + kbsw = neighborFZ[kbsw]; + //////////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + feF[kzero] = mfcbb; + fwF[kw] = mfabb; + fnF[kzero] = mfbcb; + fsF[ks] = mfbab; + ftF[kzero] = mfbbc; + fbF[kb] = mfbba; + fneF[kzero] = mfccb; + fswF[ksw] = mfaab; + fseF[ks] = mfcab; + fnwF[kw] = mfacb; + fteF[kzero] = mfcbc; + fbwF[kbw] = mfaba; + fbeF[kb] = mfcba; + ftwF[kw] = mfabc; + ftnF[kzero] = mfbcc; + fbsF[kbs] = mfbaa; + fbnF[kb] = mfbca; + ftsF[ks] = mfbac; + fzeroF[kzero] = mfbbb; + ftneF[kzero] = mfccc; + ftseF[ks] = mfcac; + fbneF[kb] = mfcca; + fbseF[kbs] = mfcaa; + ftnwF[kw] = mfacc; + ftswF[ksw] = mfaac; + fbnwF[kbw] = mfaca; + fbswF[kbsw] = mfaaa; + //////////////////////////////////////////////////////////////////////////////////// + + + //reset + mfcbb = c0o1; + mfabb = c0o1; + mfbcb = c0o1; + mfbab = c0o1; + mfbbc = c0o1; + mfbba = c0o1; + mfccb = c0o1; + mfaab = c0o1; + mfcab = c0o1; + mfacb = c0o1; + mfcbc = c0o1; + mfaba = c0o1; + mfcba = c0o1; + mfabc = c0o1; + mfbcc = c0o1; + mfbaa = c0o1; + mfbca = c0o1; + mfbac = c0o1; + mfbbb = c0o1; + mfccc = c0o1; + mfaac = c0o1; + mfcac = c0o1; + mfacc = c0o1; + mfcca = c0o1; + mfaaa = c0o1; + mfcaa = c0o1; + mfaca = c0o1; + + + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position SET 0.25f, -0.25f, 0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = c1o4; + y = -c1o4; + z = c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho =c3o64*drho_NEB+c9o64*drho_NET+c1o64*drho_NWB+c3o64*drho_NWT+c9o64*drho_SEB+c27o64*drho_SET+c3o64*drho_SWB+c9o64*drho_SWT; + //press = press_SET * (c27o64 - c9o16 * xoff + c9o16 * yoff - c9o16 * zoff) + + // press_NET * (c9o64 - c3o16 * xoff - c9o16 * yoff - c3o16 * zoff) + + // press_SWT * (c9o64 + c9o16 * xoff + c3o16 * yoff - c3o16 * zoff) + + // press_NWT * (c3o64 + c3o16 * xoff - c3o16 * yoff - c1o16 * zoff) + + // press_NWB * (c1o64 + c1o16 * xoff - c1o16 * yoff + c1o16 * zoff) + + // press_NEB * (c3o64 - c1o16 * xoff - c3o16 * yoff + c3o16 * zoff) + + // press_SWB * (c3o64 + c3o16 * xoff + c1o16 * yoff + c3o16 * zoff) + + // press_SEB * (c9o64 - c3o16 * xoff + c3o16 * yoff + c9o16 * zoff); + //if(xoff!=zero || yoff!=zero || zoff!=zero) + {press=pressCenter+c1o4*( dx-dy-dz);} + //drho = drho_SET * (c27o64 - c9o16 * xoff + c9o16 * yoff - c9o16 * zoff) + + // drho_NET * (c9o64 - c3o16 * xoff - c9o16 * yoff - c3o16 * zoff) + + // drho_SWT * (c9o64 + c9o16 * xoff + c3o16 * yoff - c3o16 * zoff) + + // drho_NWT * (c3o64 + c3o16 * xoff - c3o16 * yoff - c1o16 * zoff) + + // drho_NWB * (c1o64 + c1o16 * xoff - c1o16 * yoff + c1o16 * zoff) + + // drho_NEB * (c3o64 - c1o16 * xoff - c3o16 * yoff + c3o16 * zoff) + + // drho_SWB * (c3o64 + c3o16 * xoff + c1o16 * yoff + c3o16 * zoff) + + // drho_SEB * (c9o64 - c3o16 * xoff + c3o16 * yoff + c9o16 * zoff); + vvx = a0 + c1o4*( ax - ay + az) + c1o16*(axx - axy + axz + ayy - ayz + azz) + c1o64*(-axyz); + vvy = b0 + c1o4*( bx - by + bz) + c1o16*(bxx - bxy + bxz + byy - byz + bzz) + c1o64*(-bxyz); + vvz = c0 + c1o4*( cx - cy + cz) + c1o16*(cxx - cxy + cxz + cyy - cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + mfaaa = press + (c2o1*axx*x+axy*y+axz*z+axyz*y*z+ax + c2o1*byy*y+bxy*x+byz*z+bxyz*x*z+by + c2o1*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/c3o1; // 1/3 = 2/3*(1/op-1/2) + + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1 - mfaaa; + + //two + // linear combinations + mxxPyyPzz = mfaaa; + mxxMyy = -c2o3*(ax - by + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + mxxMzz = -c2o3*(ax - cz + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o; + + mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + mfbab = -c1o3 * (az + cx + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + mfbba = -c1o3 * (ay + bx + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz); + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz); + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz); + + //three + // linear combinations + residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); + mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + + residu = residutmp * (axy + c2o1*bxx + c2o1*bzz + cyz + cxyz*x + axyz*z); + //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); + mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + + residu = residutmp * (axy + c2o1*bxx - c2o1*bzz - cyz - cxyz*x + axyz*z); + //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); + mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + + residu = residutmp * (axz + byz + c2o1*cxx + c2o1*cyy + bxyz*x + axyz*y); + //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); + mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + + residu = residutmp * (axz - byz + c2o1*cxx - c2o1*cyy - bxyz*x + axyz*y); + //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); + mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + + residu = residutmp * (c2o1*ayy + c2o1*azz + bxy + cxz + cxyz*y + bxyz*z); + //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); + mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + + residu = residutmp * (c2o1*ayy - c2o1*azz + bxy - cxz - cxyz*y + bxyz*z); + //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); + mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////// + //index + kzero= kw; + kw = neighborFX[kw]; + ks = ksw; + kb = kbw; + ksw = neighborFX[ksw]; + kbw = neighborFX[kbw]; + kbs = kbsw; + kbsw = neighborFX[kbsw]; + //////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + feF[kzero] = mfcbb; + fwF[kw] = mfabb; + fnF[kzero] = mfbcb; + fsF[ks] = mfbab; + ftF[kzero] = mfbbc; + fbF[kb] = mfbba; + fneF[kzero] = mfccb; + fswF[ksw] = mfaab; + fseF[ks] = mfcab; + fnwF[kw] = mfacb; + fteF[kzero] = mfcbc; + fbwF[kbw] = mfaba; + fbeF[kb] = mfcba; + ftwF[kw] = mfabc; + ftnF[kzero] = mfbcc; + fbsF[kbs] = mfbaa; + fbnF[kb] = mfbca; + ftsF[ks] = mfbac; + fzeroF[kzero] = mfbbb; + ftneF[kzero] = mfccc; + ftseF[ks] = mfcac; + fbneF[kb] = mfcca; + fbseF[kbs] = mfcaa; + ftnwF[kw] = mfacc; + ftswF[ksw] = mfaac; + fbnwF[kbw] = mfaca; + fbswF[kbsw] = mfaaa; + //////////////////////////////////////////////////////////////////////////////////// + + //reset + mfcbb = c0o1; + mfabb = c0o1; + mfbcb = c0o1; + mfbab = c0o1; + mfbbc = c0o1; + mfbba = c0o1; + mfccb = c0o1; + mfaab = c0o1; + mfcab = c0o1; + mfacb = c0o1; + mfcbc = c0o1; + mfaba = c0o1; + mfcba = c0o1; + mfabc = c0o1; + mfbcc = c0o1; + mfbaa = c0o1; + mfbca = c0o1; + mfbac = c0o1; + mfbbb = c0o1; + mfccc = c0o1; + mfaac = c0o1; + mfcac = c0o1; + mfacc = c0o1; + mfcca = c0o1; + mfaaa = c0o1; + mfcaa = c0o1; + mfaca = c0o1; + + + + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position SEB 0.25f, -0.25f, -0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = c1o4; + y = -c1o4; + z = -c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho =c9o64*drho_NEB+c3o64*drho_NET+c3o64*drho_NWB+c1o64*drho_NWT+c27o64*drho_SEB+c9o64*drho_SET+c9o64*drho_SWB+c3o64*drho_SWT; + //press = press_SET * (c9o64 - c3o16 * xoff + c3o16 * yoff - c9o16 * zoff) + + // press_NET * (c3o64 - c1o16 * xoff - c3o16 * yoff - c3o16 * zoff) + + // press_SWT * (c3o64 + c3o16 * xoff + c1o16 * yoff - c3o16 * zoff) + + // press_NWT * (c1o64 + c1o16 * xoff - c1o16 * yoff - c1o16 * zoff) + + // press_NWB * (c3o64 + c3o16 * xoff - c3o16 * yoff + c1o16 * zoff) + + // press_NEB * (c9o64 - c3o16 * xoff - c9o16 * yoff + c3o16 * zoff) + + // press_SWB * (c9o64 + c9o16 * xoff + c3o16 * yoff + c3o16 * zoff) + + // press_SEB * (c27o64 - c9o16 * xoff + c9o16 * yoff + c9o16 * zoff); + //if(xoff!=zero || yoff!=zero || zoff!=zero) + {press=pressCenter+c1o4*( dx-dy-dz);} + //drho = drho_SET * (c9o64 - c3o16 * xoff + c3o16 * yoff - c9o16 * zoff) + + // drho_NET * (c3o64 - c1o16 * xoff - c3o16 * yoff - c3o16 * zoff) + + // drho_SWT * (c3o64 + c3o16 * xoff + c1o16 * yoff - c3o16 * zoff) + + // drho_NWT * (c1o64 + c1o16 * xoff - c1o16 * yoff - c1o16 * zoff) + + // drho_NWB * (c3o64 + c3o16 * xoff - c3o16 * yoff + c1o16 * zoff) + + // drho_NEB * (c9o64 - c3o16 * xoff - c9o16 * yoff + c3o16 * zoff) + + // drho_SWB * (c9o64 + c9o16 * xoff + c3o16 * yoff + c3o16 * zoff) + + // drho_SEB * (c27o64 - c9o16 * xoff + c9o16 * yoff + c9o16 * zoff); + vvx = a0 + c1o4*( ax - ay - az) + c1o16*(axx - axy - axz + ayy + ayz + azz) + c1o64*( axyz); + vvy = b0 + c1o4*( bx - by - bz) + c1o16*(bxx - bxy - bxz + byy + byz + bzz) + c1o64*( bxyz); + vvz = c0 + c1o4*( cx - cy - cz) + c1o16*(cxx - cxy - cxz + cyy + cyz + czz) + c1o64*( cxyz); + + //mfaaa = drho; + mfaaa = press + (c2o1*axx*x+axy*y+axz*z+axyz*y*z+ax + c2o1*byy*y+bxy*x+byz*z+bxyz*x*z+by + c2o1*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/c3o1; // 1/3 = 2/3*(1/op-1/2) + + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1 - mfaaa; + + //two + // linear combinations + mxxPyyPzz = mfaaa; + mxxMyy = -c2o3*(ax - by + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + mxxMzz = -c2o3*(ax - cz + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o; + + mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + mfbab = -c1o3 * (az + cx + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + mfbba = -c1o3 * (ay + bx + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz); + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz); + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz); + + //three + // linear combinations + residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); + mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + + residu = residutmp * (axy + c2o1*bxx + c2o1*bzz + cyz + cxyz*x + axyz*z); + //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); + mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + + residu = residutmp * (axy + c2o1*bxx - c2o1*bzz - cyz - cxyz*x + axyz*z); + //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); + mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + + residu = residutmp * (axz + byz + c2o1*cxx + c2o1*cyy + bxyz*x + axyz*y); + //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); + mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + + residu = residutmp * (axz - byz + c2o1*cxx - c2o1*cyy - bxyz*x + axyz*y); + //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); + mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + + residu = residutmp * (c2o1*ayy + c2o1*azz + bxy + cxz + cxyz*y + bxyz*z); + //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); + mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + + residu = residutmp * (c2o1*ayy - c2o1*azz + bxy - cxz - cxyz*y + bxyz*z); + //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); + mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////// + //index + kb = kzero; + kbw = kw; + kbs = ks; + kbsw = ksw; + kzero= k0w; + kw = neighborFX[k0w]; + ks = k0sw; + ksw = neighborFX[k0sw]; + //////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + feF[kzero] = mfcbb; + fwF[kw] = mfabb; + fnF[kzero] = mfbcb; + fsF[ks] = mfbab; + ftF[kzero] = mfbbc; + fbF[kb] = mfbba; + fneF[kzero] = mfccb; + fswF[ksw] = mfaab; + fseF[ks] = mfcab; + fnwF[kw] = mfacb; + fteF[kzero] = mfcbc; + fbwF[kbw] = mfaba; + fbeF[kb] = mfcba; + ftwF[kw] = mfabc; + ftnF[kzero] = mfbcc; + fbsF[kbs] = mfbaa; + fbnF[kb] = mfbca; + ftsF[ks] = mfbac; + fzeroF[kzero] = mfbbb; + ftneF[kzero] = mfccc; + ftseF[ks] = mfcac; + fbneF[kb] = mfcca; + fbseF[kbs] = mfcaa; + ftnwF[kw] = mfacc; + ftswF[ksw] = mfaac; + fbnwF[kbw] = mfaca; + fbswF[kbsw] = mfaaa; + //////////////////////////////////////////////////////////////////////////////////// + + + //reset + mfcbb = c0o1; + mfabb = c0o1; + mfbcb = c0o1; + mfbab = c0o1; + mfbbc = c0o1; + mfbba = c0o1; + mfccb = c0o1; + mfaab = c0o1; + mfcab = c0o1; + mfacb = c0o1; + mfcbc = c0o1; + mfaba = c0o1; + mfcba = c0o1; + mfabc = c0o1; + mfbcc = c0o1; + mfbaa = c0o1; + mfbca = c0o1; + mfbac = c0o1; + mfbbb = c0o1; + mfccc = c0o1; + mfaac = c0o1; + mfcac = c0o1; + mfacc = c0o1; + mfcca = c0o1; + mfaaa = c0o1; + mfcaa = c0o1; + mfaca = c0o1; + + + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position NWB -0.25f, 0.25f, -0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = -c1o4; + y = c1o4; + z = -c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho = c9o64*drho_NEB+c3o64*drho_NET+c27o64*drho_NWB+c9o64*drho_NWT+c3o64*drho_SEB+c1o64*drho_SET+c9o64*drho_SWB+c3o64*drho_SWT; + //press = press_NWT * (c9o64 + c3o16 * xoff - c3o16 * yoff - c9o16 * zoff) + + // press_NET * (c3o64 - c3o16 * xoff - c1o16 * yoff - c3o16 * zoff) + + // press_SWT * (c3o64 + c1o16 * xoff + c3o16 * yoff - c3o16 * zoff) + + // press_SET * (c1o64 - c1o16 * xoff + c1o16 * yoff - c1o16 * zoff) + + // press_SEB * (c3o64 - c3o16 * xoff + c3o16 * yoff + c1o16 * zoff) + + // press_NEB * (c9o64 - c9o16 * xoff - c3o16 * yoff + c3o16 * zoff) + + // press_SWB * (c9o64 + c3o16 * xoff + c9o16 * yoff + c3o16 * zoff) + + // press_NWB * (c27o64 + c9o16 * xoff - c9o16 * yoff + c9o16 * zoff); + //if(xoff!=zero || yoff!=zero || zoff!=zero) + {press=pressCenter+c1o4*(-dx+dy-dz);} + //drho = drho_NWT * (c9o64 + c3o16 * xoff - c3o16 * yoff - c9o16 * zoff) + + // drho_NET * (c3o64 - c3o16 * xoff - c1o16 * yoff - c3o16 * zoff) + + // drho_SWT * (c3o64 + c1o16 * xoff + c3o16 * yoff - c3o16 * zoff) + + // drho_SET * (c1o64 - c1o16 * xoff + c1o16 * yoff - c1o16 * zoff) + + // drho_SEB * (c3o64 - c3o16 * xoff + c3o16 * yoff + c1o16 * zoff) + + // drho_NEB * (c9o64 - c9o16 * xoff - c3o16 * yoff + c3o16 * zoff) + + // drho_SWB * (c9o64 + c3o16 * xoff + c9o16 * yoff + c3o16 * zoff) + + // drho_NWB * (c27o64 + c9o16 * xoff - c9o16 * yoff + c9o16 * zoff); + vvx = a0 + c1o4*(-ax + ay - az) + c1o16*(axx - axy + axz + ayy - ayz + azz) + c1o64*( axyz); + vvy = b0 + c1o4*(-bx + by - bz) + c1o16*(bxx - bxy + bxz + byy - byz + bzz) + c1o64*( bxyz); + vvz = c0 + c1o4*(-cx + cy - cz) + c1o16*(cxx - cxy + cxz + cyy - cyz + czz) + c1o64*( cxyz); + + //mfaaa = drho; + mfaaa = press + (c2o1*axx*x+axy*y+axz*z+axyz*y*z+ax + c2o1*byy*y+bxy*x+byz*z+bxyz*x*z+by + c2o1*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/c3o1; // 1/3 = 2/3*(1/op-1/2) + + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1 - mfaaa; + + //two + // linear combinations + mxxPyyPzz = mfaaa; + mxxMyy = -c2o3*(ax - by + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + mxxMzz = -c2o3*(ax - cz + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o; + + mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + mfbab = -c1o3 * (az + cx + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + mfbba = -c1o3 * (ay + bx + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz); + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz); + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz); + + //three + // linear combinations + residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); + mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + + residu = residutmp * (axy + c2o1*bxx + c2o1*bzz + cyz + cxyz*x + axyz*z); + //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); + mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + + residu = residutmp * (axy + c2o1*bxx - c2o1*bzz - cyz - cxyz*x + axyz*z); + //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); + mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + + residu = residutmp * (axz + byz + c2o1*cxx + c2o1*cyy + bxyz*x + axyz*y); + //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); + mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + + residu = residutmp * (axz - byz + c2o1*cxx - c2o1*cyy - bxyz*x + axyz*y); + //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); + mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + + residu = residutmp * (c2o1*ayy + c2o1*azz + bxy + cxz + cxyz*y + bxyz*z); + //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); + mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + + residu = residutmp * (c2o1*ayy - c2o1*azz + bxy - cxz - cxyz*y + bxyz*z); + //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); + mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////// + //index 0 + k0zero= k0s; + k0w = k0sw; + k0s = neighborFY[k0s]; + k0b = k0bs; + k0sw = neighborFY[k0sw]; + k0bw = k0bsw; + k0bs = neighborFY[k0bs]; + k0bsw = neighborFY[k0bsw]; + ////////////////////////////////////////////////////////////////////////// + //index + kzero= k0zero; + kw = k0w; + ks = k0s; + kb = k0b; + ksw = k0sw; + kbw = k0bw; + kbs = k0bs; + kbsw = k0bsw; + //////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + feF[kzero] = mfcbb; + fwF[kw] = mfabb; + fnF[kzero] = mfbcb; + fsF[ks] = mfbab; + ftF[kzero] = mfbbc; + fbF[kb] = mfbba; + fneF[kzero] = mfccb; + fswF[ksw] = mfaab; + fseF[ks] = mfcab; + fnwF[kw] = mfacb; + fteF[kzero] = mfcbc; + fbwF[kbw] = mfaba; + fbeF[kb] = mfcba; + ftwF[kw] = mfabc; + ftnF[kzero] = mfbcc; + fbsF[kbs] = mfbaa; + fbnF[kb] = mfbca; + ftsF[ks] = mfbac; + fzeroF[kzero] = mfbbb; + ftneF[kzero] = mfccc; + ftseF[ks] = mfcac; + fbneF[kb] = mfcca; + fbseF[kbs] = mfcaa; + ftnwF[kw] = mfacc; + ftswF[ksw] = mfaac; + fbnwF[kbw] = mfaca; + fbswF[kbsw] = mfaaa; + //////////////////////////////////////////////////////////////////////////////////// + + + //reset + mfcbb = c0o1; + mfabb = c0o1; + mfbcb = c0o1; + mfbab = c0o1; + mfbbc = c0o1; + mfbba = c0o1; + mfccb = c0o1; + mfaab = c0o1; + mfcab = c0o1; + mfacb = c0o1; + mfcbc = c0o1; + mfaba = c0o1; + mfcba = c0o1; + mfabc = c0o1; + mfbcc = c0o1; + mfbaa = c0o1; + mfbca = c0o1; + mfbac = c0o1; + mfbbb = c0o1; + mfccc = c0o1; + mfaac = c0o1; + mfcac = c0o1; + mfacc = c0o1; + mfcca = c0o1; + mfaaa = c0o1; + mfcaa = c0o1; + mfaca = c0o1; + + + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position NWT -0.25f, 0.25f, 0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = -c1o4; + y = c1o4; + z = c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho = c3o64*drho_NEB+c9o64*drho_NET+c9o64*drho_NWB+c27o64*drho_NWT+c1o64*drho_SEB+c3o64*drho_SET+c3o64*drho_SWB+c9o64*drho_SWT; + //press = press_NWT * (c27o64 + c9o16 * xoff - c9o16 * yoff - c9o16 * zoff) + + // press_NET * (c9o64 - c9o16 * xoff - c3o16 * yoff - c3o16 * zoff) + + // press_SWT * (c9o64 + c3o16 * xoff + c9o16 * yoff - c3o16 * zoff) + + // press_SET * (c3o64 - c3o16 * xoff + c3o16 * yoff - c1o16 * zoff) + + // press_SEB * (c1o64 - c1o16 * xoff + c1o16 * yoff + c1o16 * zoff) + + // press_NEB * (c3o64 - c3o16 * xoff - c1o16 * yoff + c3o16 * zoff) + + // press_SWB * (c3o64 + c1o16 * xoff + c3o16 * yoff + c3o16 * zoff) + + // press_NWB * (c9o64 + c3o16 * xoff - c3o16 * yoff + c9o16 * zoff); + //if(xoff!=zero || yoff!=zero || zoff!=zero) + {press=pressCenter+c1o4*(-dx+dy+dz);} + //drho = drho_NWT * (c27o64 + c9o16 * xoff - c9o16 * yoff - c9o16 * zoff) + + // drho_NET * (c9o64 - c9o16 * xoff - c3o16 * yoff - c3o16 * zoff) + + // drho_SWT * (c9o64 + c3o16 * xoff + c9o16 * yoff - c3o16 * zoff) + + // drho_SET * (c3o64 - c3o16 * xoff + c3o16 * yoff - c1o16 * zoff) + + // drho_SEB * (c1o64 - c1o16 * xoff + c1o16 * yoff + c1o16 * zoff) + + // drho_NEB * (c3o64 - c3o16 * xoff - c1o16 * yoff + c3o16 * zoff) + + // drho_SWB * (c3o64 + c1o16 * xoff + c3o16 * yoff + c3o16 * zoff) + + // drho_NWB * (c9o64 + c3o16 * xoff - c3o16 * yoff + c9o16 * zoff); + vvx = a0 + c1o4*(-ax + ay + az) + c1o16*(axx - axy - axz + ayy + ayz + azz) + c1o64*(-axyz); + vvy = b0 + c1o4*(-bx + by + bz) + c1o16*(bxx - bxy - bxz + byy + byz + bzz) + c1o64*(-bxyz); + vvz = c0 + c1o4*(-cx + cy + cz) + c1o16*(cxx - cxy - cxz + cyy + cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + mfaaa = press + (c2o1*axx*x+axy*y+axz*z+axyz*y*z+ax + c2o1*byy*y+bxy*x+byz*z+bxyz*x*z+by + c2o1*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/c3o1; // 1/3 = 2/3*(1/op-1/2) + + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1 - mfaaa; + + //two + // linear combinations + mxxPyyPzz = mfaaa; + mxxMyy = -c2o3*(ax - by + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + mxxMzz = -c2o3*(ax - cz + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o; + + mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + mfbab = -c1o3 * (az + cx + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + mfbba = -c1o3 * (ay + bx + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz); + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz); + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz); + + //three + // linear combinations + residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); + mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + + residu = residutmp * (axy + c2o1*bxx + c2o1*bzz + cyz + cxyz*x + axyz*z); + //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); + mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + + residu = residutmp * (axy + c2o1*bxx - c2o1*bzz - cyz - cxyz*x + axyz*z); + //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); + mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + + residu = residutmp * (axz + byz + c2o1*cxx + c2o1*cyy + bxyz*x + axyz*y); + //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); + mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + + residu = residutmp * (axz - byz + c2o1*cxx - c2o1*cyy - bxyz*x + axyz*y); + //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); + mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + + residu = residutmp * (c2o1*ayy + c2o1*azz + bxy + cxz + cxyz*y + bxyz*z); + //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); + mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + + residu = residutmp * (c2o1*ayy - c2o1*azz + bxy - cxz - cxyz*y + bxyz*z); + //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); + mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////// + //index + kzero= kb; + kw = kbw; + ks = kbs; + kb = neighborFZ[kb]; + ksw = kbsw; + kbw = neighborFZ[kbw]; + kbs = neighborFZ[kbs]; + kbsw = neighborFZ[kbsw]; + //////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + feF[kzero] = mfcbb; + fwF[kw] = mfabb; + fnF[kzero] = mfbcb; + fsF[ks] = mfbab; + ftF[kzero] = mfbbc; + fbF[kb] = mfbba; + fneF[kzero] = mfccb; + fswF[ksw] = mfaab; + fseF[ks] = mfcab; + fnwF[kw] = mfacb; + fteF[kzero] = mfcbc; + fbwF[kbw] = mfaba; + fbeF[kb] = mfcba; + ftwF[kw] = mfabc; + ftnF[kzero] = mfbcc; + fbsF[kbs] = mfbaa; + fbnF[kb] = mfbca; + ftsF[ks] = mfbac; + fzeroF[kzero] = mfbbb; + ftneF[kzero] = mfccc; + ftseF[ks] = mfcac; + fbneF[kb] = mfcca; + fbseF[kbs] = mfcaa; + ftnwF[kw] = mfacc; + ftswF[ksw] = mfaac; + fbnwF[kbw] = mfaca; + fbswF[kbsw] = mfaaa; + //////////////////////////////////////////////////////////////////////////////////// + + + //reset + mfcbb = c0o1; + mfabb = c0o1; + mfbcb = c0o1; + mfbab = c0o1; + mfbbc = c0o1; + mfbba = c0o1; + mfccb = c0o1; + mfaab = c0o1; + mfcab = c0o1; + mfacb = c0o1; + mfcbc = c0o1; + mfaba = c0o1; + mfcba = c0o1; + mfabc = c0o1; + mfbcc = c0o1; + mfbaa = c0o1; + mfbca = c0o1; + mfbac = c0o1; + mfbbb = c0o1; + mfccc = c0o1; + mfaac = c0o1; + mfcac = c0o1; + mfacc = c0o1; + mfcca = c0o1; + mfaaa = c0o1; + mfcaa = c0o1; + mfaca = c0o1; + + + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position NET 0.25f, 0.25f, 0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = c1o4; + y = c1o4; + z = c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho = c9o64*drho_NEB+c27o64*drho_NET+c3o64*drho_NWB+c9o64*drho_NWT+c3o64*drho_SEB+c9o64*drho_SET+c1o64*drho_SWB+c3o64*drho_SWT; + //press = press_NET * (c27o64 - c9o16 * xoff - c9o16 * yoff - c9o16 * zoff) + + // press_NWT * (c9o64 + c9o16 * xoff - c3o16 * yoff - c3o16 * zoff) + + // press_SET * (c9o64 - c3o16 * xoff + c9o16 * yoff - c3o16 * zoff) + + // press_SWT * (c3o64 + c3o16 * xoff + c3o16 * yoff - c1o16 * zoff) + + // press_SWB * (c1o64 + c1o16 * xoff + c1o16 * yoff + c1o16 * zoff) + + // press_NWB * (c3o64 + c3o16 * xoff - c1o16 * yoff + c3o16 * zoff) + + // press_SEB * (c3o64 - c1o16 * xoff + c3o16 * yoff + c3o16 * zoff) + + // press_NEB * (c9o64 - c3o16 * xoff - c3o16 * yoff + c9o16 * zoff); + //if(xoff!=zero || yoff!=zero || zoff!=zero) + {press=pressCenter+c1o4*( dx+dy+dz);} + //drho = drho_NET * (c27o64 - c9o16 * xoff - c9o16 * yoff - c9o16 * zoff) + + // drho_NWT * (c9o64 + c9o16 * xoff - c3o16 * yoff - c3o16 * zoff) + + // drho_SET * (c9o64 - c3o16 * xoff + c9o16 * yoff - c3o16 * zoff) + + // drho_SWT * (c3o64 + c3o16 * xoff + c3o16 * yoff - c1o16 * zoff) + + // drho_SWB * (c1o64 + c1o16 * xoff + c1o16 * yoff + c1o16 * zoff) + + // drho_NWB * (c3o64 + c3o16 * xoff - c1o16 * yoff + c3o16 * zoff) + + // drho_SEB * (c3o64 - c1o16 * xoff + c3o16 * yoff + c3o16 * zoff) + + // drho_NEB * (c9o64 - c3o16 * xoff - c3o16 * yoff + c9o16 * zoff); + vvx = a0 + c1o4*( ax + ay + az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*( axyz); + vvy = b0 + c1o4*( bx + by + bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*( bxyz); + vvz = c0 + c1o4*( cx + cy + cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*( cxyz); + + //mfaaa = drho; + mfaaa = press + (c2o1*axx*x+axy*y+axz*z+axyz*y*z+ax + c2o1*byy*y+bxy*x+byz*z+bxyz*x*z+by + c2o1*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/c3o1; // 1/3 = 2/3*(1/op-1/2) + + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1 - mfaaa; + + //two + // linear combinations + mxxPyyPzz = mfaaa; + mxxMyy = -c2o3*(ax - by + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + mxxMzz = -c2o3*(ax - cz + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o; + + mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + mfbab = -c1o3 * (az + cx + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + mfbba = -c1o3 * (ay + bx + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz); + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz); + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz); + + //three + // linear combinations + residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); + mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + + residu = residutmp * (axy + c2o1*bxx + c2o1*bzz + cyz + cxyz*x + axyz*z); + //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); + mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + + residu = residutmp * (axy + c2o1*bxx - c2o1*bzz - cyz - cxyz*x + axyz*z); + //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); + mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + + residu = residutmp * (axz + byz + c2o1*cxx + c2o1*cyy + bxyz*x + axyz*y); + //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); + mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + + residu = residutmp * (axz - byz + c2o1*cxx - c2o1*cyy - bxyz*x + axyz*y); + //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); + mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + + residu = residutmp * (c2o1*ayy + c2o1*azz + bxy + cxz + cxyz*y + bxyz*z); + //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); + mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + + residu = residutmp * (c2o1*ayy - c2o1*azz + bxy - cxz - cxyz*y + bxyz*z); + //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); + mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////// + //index + kzero= kw; + kw = neighborFX[kw]; + ks = ksw; + kb = kbw; + ksw = neighborFX[ksw]; + kbw = neighborFX[kbw]; + kbs = kbsw; + kbsw = neighborFX[kbsw]; + //////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + feF[kzero] = mfcbb; + fwF[kw] = mfabb; + fnF[kzero] = mfbcb; + fsF[ks] = mfbab; + ftF[kzero] = mfbbc; + fbF[kb] = mfbba; + fneF[kzero] = mfccb; + fswF[ksw] = mfaab; + fseF[ks] = mfcab; + fnwF[kw] = mfacb; + fteF[kzero] = mfcbc; + fbwF[kbw] = mfaba; + fbeF[kb] = mfcba; + ftwF[kw] = mfabc; + ftnF[kzero] = mfbcc; + fbsF[kbs] = mfbaa; + fbnF[kb] = mfbca; + ftsF[ks] = mfbac; + fzeroF[kzero] = mfbbb; + ftneF[kzero] = mfccc; + ftseF[ks] = mfcac; + fbneF[kb] = mfcca; + fbseF[kbs] = mfcaa; + ftnwF[kw] = mfacc; + ftswF[ksw] = mfaac; + fbnwF[kbw] = mfaca; + fbswF[kbsw] = mfaaa; + //////////////////////////////////////////////////////////////////////////////////// + + + //reset + mfcbb = c0o1; + mfabb = c0o1; + mfbcb = c0o1; + mfbab = c0o1; + mfbbc = c0o1; + mfbba = c0o1; + mfccb = c0o1; + mfaab = c0o1; + mfcab = c0o1; + mfacb = c0o1; + mfcbc = c0o1; + mfaba = c0o1; + mfcba = c0o1; + mfabc = c0o1; + mfbcc = c0o1; + mfbaa = c0o1; + mfbca = c0o1; + mfbac = c0o1; + mfbbb = c0o1; + mfccc = c0o1; + mfaac = c0o1; + mfcac = c0o1; + mfacc = c0o1; + mfcca = c0o1; + mfaaa = c0o1; + mfcaa = c0o1; + mfaca = c0o1; + + + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position NEB 0.25f, 0.25f, -0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = c1o4; + y = c1o4; + z = -c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho = c27o64*drho_NEB+c9o64*drho_NET+c9o64*drho_NWB+c3o64*drho_NWT+c9o64*drho_SEB+c3o64*drho_SET+c3o64*drho_SWB+c1o64*drho_SWT; + //press = press_NET * (c9o64 - c3o16 * xoff - c3o16 * yoff - c9o16 * zoff) + + // press_NWT * (c3o64 + c3o16 * xoff - c1o16 * yoff - c3o16 * zoff) + + // press_SET * (c3o64 - c1o16 * xoff + c3o16 * yoff - c3o16 * zoff) + + // press_SWT * (c1o64 + c1o16 * xoff + c1o16 * yoff - c1o16 * zoff) + + // press_SWB * (c3o64 + c3o16 * xoff + c3o16 * yoff + c1o16 * zoff) + + // press_NWB * (c9o64 + c9o16 * xoff - c3o16 * yoff + c3o16 * zoff) + + // press_SEB * (c9o64 - c3o16 * xoff + c9o16 * yoff + c3o16 * zoff) + + // press_NEB * (c27o64 - c9o16 * xoff - c9o16 * yoff + c9o16 * zoff); + //if(xoff!=zero || yoff!=zero || zoff!=zero) + {press=pressCenter+c1o4*( dx+dy-dz);} + //drho = drho_NET * (c9o64 - c3o16 * xoff - c3o16 * yoff - c9o16 * zoff) + + // drho_NWT * (c3o64 + c3o16 * xoff - c1o16 * yoff - c3o16 * zoff) + + // drho_SET * (c3o64 - c1o16 * xoff + c3o16 * yoff - c3o16 * zoff) + + // drho_SWT * (c1o64 + c1o16 * xoff + c1o16 * yoff - c1o16 * zoff) + + // drho_SWB * (c3o64 + c3o16 * xoff + c3o16 * yoff + c1o16 * zoff) + + // drho_NWB * (c9o64 + c9o16 * xoff - c3o16 * yoff + c3o16 * zoff) + + // drho_SEB * (c9o64 - c3o16 * xoff + c9o16 * yoff + c3o16 * zoff) + + // drho_NEB * (c27o64 - c9o16 * xoff - c9o16 * yoff + c9o16 * zoff); + vvx = a0 + c1o4*( ax + ay - az) + c1o16*(axx + axy - axz + ayy - ayz + azz) + c1o64*(-axyz); + vvy = b0 + c1o4*( bx + by - bz) + c1o16*(bxx + bxy - bxz + byy - byz + bzz) + c1o64*(-bxyz); + vvz = c0 + c1o4*( cx + cy - cz) + c1o16*(cxx + cxy - cxz + cyy - cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + mfaaa = press + (c2o1*axx*x+axy*y+axz*z+axyz*y*z+ax + c2o1*byy*y+bxy*x+byz*z+bxyz*x*z+by + c2o1*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/c3o1; // 1/3 = 2/3*(1/op-1/2) + + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1 - mfaaa; + + //two + // linear combinations + mxxPyyPzz = mfaaa; + mxxMyy = -c2o3*(ax - by + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + mxxMzz = -c2o3*(ax - cz + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o; + + mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + mfbab = -c1o3 * (az + cx + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + mfbba = -c1o3 * (ay + bx + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz); + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz); + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz); + + //three + // linear combinations + residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); + mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + + residu = residutmp * (axy + c2o1*bxx + c2o1*bzz + cyz + cxyz*x + axyz*z); + //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); + mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + + residu = residutmp * (axy + c2o1*bxx - c2o1*bzz - cyz - cxyz*x + axyz*z); + //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); + mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + + residu = residutmp * (axz + byz + c2o1*cxx + c2o1*cyy + bxyz*x + axyz*y); + //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); + mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + + residu = residutmp * (axz - byz + c2o1*cxx - c2o1*cyy - bxyz*x + axyz*y); + //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); + mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + + residu = residutmp * (c2o1*ayy + c2o1*azz + bxy + cxz + cxyz*y + bxyz*z); + //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); + mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + + residu = residutmp * (c2o1*ayy - c2o1*azz + bxy - cxz - cxyz*y + bxyz*z); + //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); + mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////// + //index + kb = kzero; + kbw = kw; + kbs = ks; + kbsw = ksw; + kzero= k0w; + kw = neighborFX[k0w]; + ks = k0sw; + ksw = neighborFX[k0sw]; + //////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + feF[kzero] = mfcbb; + fwF[kw] = mfabb; + fnF[kzero] = mfbcb; + fsF[ks] = mfbab; + ftF[kzero] = mfbbc; + fbF[kb] = mfbba; + fneF[kzero] = mfccb; + fswF[ksw] = mfaab; + fseF[ks] = mfcab; + fnwF[kw] = mfacb; + fteF[kzero] = mfcbc; + fbwF[kbw] = mfaba; + fbeF[kb] = mfcba; + ftwF[kw] = mfabc; + ftnF[kzero] = mfbcc; + fbsF[kbs] = mfbaa; + fbnF[kb] = mfbca; + ftsF[ks] = mfbac; + fzeroF[kzero] = mfbbb; + ftneF[kzero] = mfccc; + ftseF[ks] = mfcac; + fbneF[kb] = mfcca; + fbseF[kbs] = mfcaa; + ftnwF[kw] = mfacc; + ftswF[ksw] = mfaac; + fbnwF[kbw] = mfaca; + fbswF[kbsw] = mfaaa; + //////////////////////////////////////////////////////////////////////////////////// + } +} +////////////////////////////////////////////////////////////////////////// @@ -35298,13 +35298,13 @@ __global__ void scaleCF_Fix_27( real* DC, //vx1_SWB = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_SWB = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_SWB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_SWB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_SWB = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_SWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_SWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_SWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_SWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_SWB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; - //press_SWB= (f_E+f_W+f_N+f_S+f_T+f_B+two*(f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS)+three*(f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW)- - // drho_SWB-(vx1_SWB*vx1_SWB+vx2_SWB*vx2_SWB+vx3_SWB*vx3_SWB)* (one+drho_SWB)) * c1o2+drho_SWB; + //press_SWB= (f_E+f_W+f_N+f_S+f_T+f_B+two*(f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS)+three*(f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW)- + // drho_SWB-(vx1_SWB*vx1_SWB+vx2_SWB*vx2_SWB+vx3_SWB*vx3_SWB)* (one+drho_SWB)) * c1o2+drho_SWB; kxyFromfcNEQ_SWB = -c3o1*omegaS*(f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE-(vx1_SWB*vx2_SWB)); kyzFromfcNEQ_SWB = -c3o1*omegaS*(f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW-(vx2_SWB*vx3_SWB)); @@ -35355,10 +35355,10 @@ __global__ void scaleCF_Fix_27( real* DC, //vx1_SWT = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_SWT = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_SWT = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_SWT = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_SWT = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_SWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_SWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_SWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_SWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_SWT = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; //press_SWT= (f_E+f_W+f_N+f_S+f_T+f_B+two*(f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS)+three*(f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW)- // drho_SWT-(vx1_SWT*vx1_SWT+vx2_SWT*vx2_SWT+vx3_SWT*vx3_SWT)* (one+drho_SWT)) * c1o2+drho_SWT; @@ -35412,10 +35412,10 @@ __global__ void scaleCF_Fix_27( real* DC, //vx1_SET = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_SET = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_SET = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_SET = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_SET = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_SET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_SET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_SET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_SET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_SET = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; //press_SET= (f_E+f_W+f_N+f_S+f_T+f_B+two*(f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS)+three*(f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW)- // drho_SET-(vx1_SET*vx1_SET+vx2_SET*vx2_SET+vx3_SET*vx3_SET)* (one+drho_SET)) * c1o2+drho_SET; @@ -35469,10 +35469,10 @@ __global__ void scaleCF_Fix_27( real* DC, //vx1_SEB = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_SEB = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_SEB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_SEB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_SEB = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_SEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_SEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_SEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_SEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_SEB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; //press_SEB= (f_E+f_W+f_N+f_S+f_T+f_B+two*(f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS)+three*(f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW)- // drho_SEB-(vx1_SEB*vx1_SEB+vx2_SEB*vx2_SEB+vx3_SEB*vx3_SEB)* (one+drho_SEB)) * c1o2+drho_SEB; @@ -35536,10 +35536,10 @@ __global__ void scaleCF_Fix_27( real* DC, //vx1_NWB = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_NWB = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_NWB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_NWB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_NWB = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_NWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_NWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_NWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_NWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_NWB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; //press_NWB= (f_E+f_W+f_N+f_S+f_T+f_B+2.f*(f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS)+3.f*(f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW)- // drho_NWB-(vx1_NWB*vx1_NWB+vx2_NWB*vx2_NWB+vx3_NWB*vx3_NWB)* (1.+drho_NWB)) * 0.5f+drho_NWB; @@ -35593,10 +35593,10 @@ __global__ void scaleCF_Fix_27( real* DC, //vx1_NWT = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_NWT = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_NWT = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_NWT = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_NWT = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_NWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_NWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_NWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_NWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_NWT = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; //press_NWT= (f_E+f_W+f_N+f_S+f_T+f_B+two*(f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS)+three*(f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW)- // drho_NWT-(vx1_NWT*vx1_NWT+vx2_NWT*vx2_NWT+vx3_NWT*vx3_NWT)* (one+drho_NWT)) * c1o2+drho_NWT; @@ -35650,22 +35650,3604 @@ __global__ void scaleCF_Fix_27( real* DC, //vx1_NET = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_NET = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_NET = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_NET = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_NET = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_NET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_NET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_NET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_NET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_NET = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; //press_NET= (f_E+f_W+f_N+f_S+f_T+f_B+two*(f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS)+three*(f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW)- // drho_NET-(vx1_NET*vx1_NET+vx2_NET*vx2_NET+vx3_NET*vx3_NET)* (one+drho_NET)) * c1o2+drho_NET; - kxyFromfcNEQ_NET = -c3o1*omegaS*(f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE-(vx1_NET*vx2_NET)); - kyzFromfcNEQ_NET = -c3o1*omegaS*(f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW-(vx2_NET*vx3_NET)); - kxzFromfcNEQ_NET = -c3o1*omegaS*(f_BW+f_BSW+f_BNW-f_TW-f_TSW-f_TNW-f_BE-f_BSE-f_BNE+f_TE+f_TSE+f_TNE-(vx1_NET*vx3_NET)); - kxxMyyFromfcNEQ_NET = -c3o2*omegaS*(f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE-(vx1_NET*vx1_NET-vx2_NET*vx2_NET)); - kxxMzzFromfcNEQ_NET = -c3o2*omegaS*(f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE-(vx1_NET*vx1_NET-vx3_NET*vx3_NET)); + kxyFromfcNEQ_NET = -c3o1*omegaS*(f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE-(vx1_NET*vx2_NET)); + kyzFromfcNEQ_NET = -c3o1*omegaS*(f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW-(vx2_NET*vx3_NET)); + kxzFromfcNEQ_NET = -c3o1*omegaS*(f_BW+f_BSW+f_BNW-f_TW-f_TSW-f_TNW-f_BE-f_BSE-f_BNE+f_TE+f_TSE+f_TNE-(vx1_NET*vx3_NET)); + kxxMyyFromfcNEQ_NET = -c3o2*omegaS*(f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE-(vx1_NET*vx1_NET-vx2_NET*vx2_NET)); + kxxMzzFromfcNEQ_NET = -c3o2*omegaS*(f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE-(vx1_NET*vx1_NET-vx3_NET*vx3_NET)); + + ////////////////////////////////////////////////////////////////////////// + //NEB// + ////////////////////////////////////////////////////////////////////////// + //index + kb = kzero; + kbw = kw; + kbs = ks; + kbsw = ksw; + kzero= k0w; + kw = neighborCX[k0w]; + ks = k0sw; + ksw = neighborCX[k0sw]; + //////////////////////////////////////////////////////////////////////////////// + f_E = feC[kzero]; + f_W = fwC[kw]; + f_N = fnC[kzero]; + f_S = fsC[ks]; + f_T = ftC[kzero]; + f_B = fbC[kb]; + f_NE = fneC[kzero]; + f_SW = fswC[ksw]; + f_SE = fseC[ks]; + f_NW = fnwC[kw]; + f_TE = fteC[kzero]; + f_BW = fbwC[kbw]; + f_BE = fbeC[kb]; + f_TW = ftwC[kw]; + f_TN = ftnC[kzero]; + f_BS = fbsC[kbs]; + f_BN = fbnC[kb]; + f_TS = ftsC[ks]; + f_ZERO = fzeroC[kzero]; + f_TNE = ftneC[kzero]; + f_TSW = ftswC[ksw]; + f_TSE = ftseC[ks]; + f_TNW = ftnwC[kw]; + f_BNE = fbneC[kb]; + f_BSW = fbswC[kbsw]; + f_BSE = fbseC[kbs]; + f_BNW = fbnwC[kbw]; + + //vx1_NEB = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; + //vx2_NEB = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; + //vx3_NEB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + vx1_NEB = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); + vx2_NEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_NEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + drho_NEB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; + //press_NEB= (f_E+f_W+f_N+f_S+f_T+f_B+two*(f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS)+three*(f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW)- + // drho_NEB-(vx1_NEB*vx1_NEB+vx2_NEB*vx2_NEB+vx3_NEB*vx3_NEB)* (one+drho_NEB)) * c1o2+drho_NEB; + + kxyFromfcNEQ_NEB = -c3o1*omegaS*(f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE-(vx1_NEB*vx2_NEB)); + kyzFromfcNEQ_NEB = -c3o1*omegaS*(f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW-(vx2_NEB*vx3_NEB)); + kxzFromfcNEQ_NEB = -c3o1*omegaS*(f_BW+f_BSW+f_BNW-f_TW-f_TSW-f_TNW-f_BE-f_BSE-f_BNE+f_TE+f_TSE+f_TNE-(vx1_NEB*vx3_NEB)); + kxxMyyFromfcNEQ_NEB = -c3o2*omegaS*(f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE-(vx1_NEB*vx1_NEB-vx2_NEB*vx2_NEB)); + kxxMzzFromfcNEQ_NEB = -c3o2*omegaS*(f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE-(vx1_NEB*vx1_NEB-vx3_NEB*vx3_NEB)); + + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // kxyFromfcNEQ_SWB = zero; + //kyzFromfcNEQ_SWB = zero; + //kxzFromfcNEQ_SWB = zero; + //kxxMyyFromfcNEQ_SWB = zero; + //kxxMzzFromfcNEQ_SWB = zero; + //kxyFromfcNEQ_SWT = zero; + //kyzFromfcNEQ_SWT = zero; + //kxzFromfcNEQ_SWT = zero; + //kxxMyyFromfcNEQ_SWT = zero; + //kxxMzzFromfcNEQ_SWT = zero; + //kxyFromfcNEQ_SET = zero; + //kyzFromfcNEQ_SET = zero; + //kxzFromfcNEQ_SET = zero; + //kxxMyyFromfcNEQ_SET = zero; + //kxxMzzFromfcNEQ_SET = zero; + //kxyFromfcNEQ_SEB = zero; + //kyzFromfcNEQ_SEB = zero; + //kxzFromfcNEQ_SEB = zero; + //kxxMyyFromfcNEQ_SEB = zero; + //kxxMzzFromfcNEQ_SEB = zero; + //kxyFromfcNEQ_NWB = zero; + //kyzFromfcNEQ_NWB = zero; + //kxzFromfcNEQ_NWB = zero; + //kxxMyyFromfcNEQ_NWB = zero; + //kxxMzzFromfcNEQ_NWB = zero; + //kxyFromfcNEQ_NWT = zero; + //kyzFromfcNEQ_NWT = zero; + //kxzFromfcNEQ_NWT = zero; + //kxxMyyFromfcNEQ_NWT = zero; + //kxxMzzFromfcNEQ_NWT = zero; + //kxyFromfcNEQ_NET = zero; + //kyzFromfcNEQ_NET = zero; + //kxzFromfcNEQ_NET = zero; + //kxxMyyFromfcNEQ_NET = zero; + //kxxMzzFromfcNEQ_NET = zero; + //kxyFromfcNEQ_NEB = zero; + //kyzFromfcNEQ_NEB = zero; + //kxzFromfcNEQ_NEB = zero; + //kxxMyyFromfcNEQ_NEB = zero; + //kxxMzzFromfcNEQ_NEB = zero; + ////////////////////////////////////////////////////////////////////////// + //3 + ////////////////////////////////////////////////////////////////////////// + a0 = (-kxxMyyFromfcNEQ_NEB - kxxMyyFromfcNEQ_NET + kxxMyyFromfcNEQ_NWB + kxxMyyFromfcNEQ_NWT - + kxxMyyFromfcNEQ_SEB - kxxMyyFromfcNEQ_SET + kxxMyyFromfcNEQ_SWB + kxxMyyFromfcNEQ_SWT - + kxxMzzFromfcNEQ_NEB - kxxMzzFromfcNEQ_NET + kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_NWT - + kxxMzzFromfcNEQ_SEB - kxxMzzFromfcNEQ_SET + kxxMzzFromfcNEQ_SWB + kxxMzzFromfcNEQ_SWT - + c2o1*kxyFromfcNEQ_NEB - c2o1*kxyFromfcNEQ_NET - c2o1*kxyFromfcNEQ_NWB - c2o1*kxyFromfcNEQ_NWT + + c2o1*kxyFromfcNEQ_SEB + c2o1*kxyFromfcNEQ_SET + c2o1*kxyFromfcNEQ_SWB + c2o1*kxyFromfcNEQ_SWT + + c2o1*kxzFromfcNEQ_NEB - c2o1*kxzFromfcNEQ_NET + c2o1*kxzFromfcNEQ_NWB - c2o1*kxzFromfcNEQ_NWT + + c2o1*kxzFromfcNEQ_SEB - c2o1*kxzFromfcNEQ_SET + c2o1*kxzFromfcNEQ_SWB - c2o1*kxzFromfcNEQ_SWT + + c8o1*vx1_NEB + c8o1*vx1_NET + c8o1*vx1_NWB + c8o1*vx1_NWT + c8o1*vx1_SEB + + c8o1*vx1_SET + c8o1*vx1_SWB + c8o1*vx1_SWT + c2o1*vx2_NEB + c2o1*vx2_NET - + c2o1*vx2_NWB - c2o1*vx2_NWT - c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB + + c2o1*vx2_SWT - c2o1*vx3_NEB + c2o1*vx3_NET + c2o1*vx3_NWB - c2o1*vx3_NWT - + c2o1*vx3_SEB + c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)/c64o1; + b0 = (c2o1*kxxMyyFromfcNEQ_NEB + c2o1*kxxMyyFromfcNEQ_NET + c2o1*kxxMyyFromfcNEQ_NWB + c2o1*kxxMyyFromfcNEQ_NWT - + c2o1*kxxMyyFromfcNEQ_SEB - c2o1*kxxMyyFromfcNEQ_SET - c2o1*kxxMyyFromfcNEQ_SWB - c2o1*kxxMyyFromfcNEQ_SWT - + kxxMzzFromfcNEQ_NEB - kxxMzzFromfcNEQ_NET - kxxMzzFromfcNEQ_NWB - kxxMzzFromfcNEQ_NWT + + kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_SET + kxxMzzFromfcNEQ_SWB + kxxMzzFromfcNEQ_SWT - + c2o1*kxyFromfcNEQ_NEB - c2o1*kxyFromfcNEQ_NET + c2o1*kxyFromfcNEQ_NWB + c2o1*kxyFromfcNEQ_NWT - + c2o1*kxyFromfcNEQ_SEB - c2o1*kxyFromfcNEQ_SET + c2o1*kxyFromfcNEQ_SWB + c2o1*kxyFromfcNEQ_SWT + + c2o1*kyzFromfcNEQ_NEB - c2o1*kyzFromfcNEQ_NET + c2o1*kyzFromfcNEQ_NWB - c2o1*kyzFromfcNEQ_NWT + + c2o1*kyzFromfcNEQ_SEB - c2o1*kyzFromfcNEQ_SET + c2o1*kyzFromfcNEQ_SWB - c2o1*kyzFromfcNEQ_SWT + + c2o1*vx1_NEB + c2o1*vx1_NET - c2o1*vx1_NWB - c2o1*vx1_NWT - + c2o1*vx1_SEB - c2o1*vx1_SET + c2o1*vx1_SWB + c2o1*vx1_SWT + + c8o1*vx2_NEB + c8o1*vx2_NET + c8o1*vx2_NWB + c8o1*vx2_NWT + + c8o1*vx2_SEB + c8o1*vx2_SET + c8o1*vx2_SWB + c8o1*vx2_SWT - + c2o1*vx3_NEB + c2o1*vx3_NET - c2o1*vx3_NWB + c2o1*vx3_NWT + + c2o1*vx3_SEB - c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)/c64o1; + + //b0 = ((eight*vx2_NEB + eight*vx2_SWT) + (eight*vx2_NET + eight*vx2_SWB) + (eight*vx2_NWB + eight*vx2_SET) + (eight*vx2_NWT + eight*vx2_SEB))/sixtyfour; + + c0 = (kxxMyyFromfcNEQ_NEB - kxxMyyFromfcNEQ_NET + kxxMyyFromfcNEQ_NWB - kxxMyyFromfcNEQ_NWT + + kxxMyyFromfcNEQ_SEB - kxxMyyFromfcNEQ_SET + kxxMyyFromfcNEQ_SWB - kxxMyyFromfcNEQ_SWT - + c2o1*kxxMzzFromfcNEQ_NEB + c2o1*kxxMzzFromfcNEQ_NET - c2o1*kxxMzzFromfcNEQ_NWB + c2o1*kxxMzzFromfcNEQ_NWT - + c2o1*kxxMzzFromfcNEQ_SEB + c2o1*kxxMzzFromfcNEQ_SET - c2o1*kxxMzzFromfcNEQ_SWB + c2o1*kxxMzzFromfcNEQ_SWT - + c2o1*kxzFromfcNEQ_NEB - c2o1*kxzFromfcNEQ_NET + c2o1*kxzFromfcNEQ_NWB + c2o1*kxzFromfcNEQ_NWT - + c2o1*kxzFromfcNEQ_SEB - c2o1*kxzFromfcNEQ_SET + c2o1*kxzFromfcNEQ_SWB + c2o1*kxzFromfcNEQ_SWT - + c2o1*kyzFromfcNEQ_NEB - c2o1*kyzFromfcNEQ_NET - c2o1*kyzFromfcNEQ_NWB - c2o1*kyzFromfcNEQ_NWT + + c2o1*kyzFromfcNEQ_SEB + c2o1*kyzFromfcNEQ_SET + c2o1*kyzFromfcNEQ_SWB + c2o1*kyzFromfcNEQ_SWT - + c2o1*vx1_NEB + c2o1*vx1_NET + c2o1*vx1_NWB - c2o1*vx1_NWT - + c2o1*vx1_SEB + c2o1*vx1_SET + c2o1*vx1_SWB - c2o1*vx1_SWT - + c2o1*vx2_NEB + c2o1*vx2_NET - c2o1*vx2_NWB + c2o1*vx2_NWT + + c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB - c2o1*vx2_SWT + + c8o1*vx3_NEB + c8o1*vx3_NET + c8o1*vx3_NWB + c8o1*vx3_NWT + + c8o1*vx3_SEB + c8o1*vx3_SET + c8o1*vx3_SWB + c8o1*vx3_SWT)/c64o1; + ax = (vx1_NEB + vx1_NET - vx1_NWB - vx1_NWT + vx1_SEB + vx1_SET - vx1_SWB - vx1_SWT)/c4o1; + bx = (vx2_NEB + vx2_NET - vx2_NWB - vx2_NWT + vx2_SEB + vx2_SET - vx2_SWB - vx2_SWT)/c4o1; + //bx = ((vx2_NEB - vx2_SWT) + (vx2_NET - vx2_SWB) + (vx2_SET - vx2_NWB) + (vx2_SEB - vx2_NWT))/four; + cx = (vx3_NEB + vx3_NET - vx3_NWB - vx3_NWT + vx3_SEB + vx3_SET - vx3_SWB - vx3_SWT)/c4o1; + axx= (kxxMyyFromfcNEQ_NEB + kxxMyyFromfcNEQ_NET - kxxMyyFromfcNEQ_NWB - kxxMyyFromfcNEQ_NWT + + kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_SET - kxxMyyFromfcNEQ_SWB - kxxMyyFromfcNEQ_SWT + + kxxMzzFromfcNEQ_NEB + kxxMzzFromfcNEQ_NET - kxxMzzFromfcNEQ_NWB - kxxMzzFromfcNEQ_NWT + + kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_SET - kxxMzzFromfcNEQ_SWB - kxxMzzFromfcNEQ_SWT + + c2o1*vx2_NEB + c2o1*vx2_NET - c2o1*vx2_NWB - c2o1*vx2_NWT - + c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB + c2o1*vx2_SWT - + c2o1*vx3_NEB + c2o1*vx3_NET + c2o1*vx3_NWB - c2o1*vx3_NWT - + c2o1*vx3_SEB + c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)/c16o1; + bxx= (kxyFromfcNEQ_NEB + kxyFromfcNEQ_NET - kxyFromfcNEQ_NWB - kxyFromfcNEQ_NWT + + kxyFromfcNEQ_SEB + kxyFromfcNEQ_SET - kxyFromfcNEQ_SWB - kxyFromfcNEQ_SWT - + c2o1*vx1_NEB - c2o1*vx1_NET + c2o1*vx1_NWB + c2o1*vx1_NWT + + c2o1*vx1_SEB + c2o1*vx1_SET - c2o1*vx1_SWB - c2o1*vx1_SWT)/c8o1; + cxx= (kxzFromfcNEQ_NEB + kxzFromfcNEQ_NET - kxzFromfcNEQ_NWB - kxzFromfcNEQ_NWT + + kxzFromfcNEQ_SEB + kxzFromfcNEQ_SET - kxzFromfcNEQ_SWB - kxzFromfcNEQ_SWT + + c2o1*vx1_NEB - c2o1*vx1_NET - c2o1*vx1_NWB + c2o1*vx1_NWT + + c2o1*vx1_SEB - c2o1*vx1_SET - c2o1*vx1_SWB + c2o1*vx1_SWT)/c8o1; + ay = (vx1_NEB + vx1_NET + vx1_NWB + vx1_NWT - vx1_SEB - vx1_SET - vx1_SWB - vx1_SWT)/c4o1; + by = (vx2_NEB + vx2_NET + vx2_NWB + vx2_NWT - vx2_SEB - vx2_SET - vx2_SWB - vx2_SWT)/c4o1; + cy = (vx3_NEB + vx3_NET + vx3_NWB + vx3_NWT - vx3_SEB - vx3_SET - vx3_SWB - vx3_SWT)/c4o1; + ayy= (kxyFromfcNEQ_NEB + kxyFromfcNEQ_NET + kxyFromfcNEQ_NWB + kxyFromfcNEQ_NWT - + kxyFromfcNEQ_SEB - kxyFromfcNEQ_SET - kxyFromfcNEQ_SWB - kxyFromfcNEQ_SWT - + c2o1*vx2_NEB - c2o1*vx2_NET + c2o1*vx2_NWB + c2o1*vx2_NWT + + c2o1*vx2_SEB + c2o1*vx2_SET - c2o1*vx2_SWB - c2o1*vx2_SWT)/c8o1; + byy= (-c2o1*kxxMyyFromfcNEQ_NEB - c2o1*kxxMyyFromfcNEQ_NET - c2o1*kxxMyyFromfcNEQ_NWB - c2o1*kxxMyyFromfcNEQ_NWT + + c2o1*kxxMyyFromfcNEQ_SEB + c2o1*kxxMyyFromfcNEQ_SET + c2o1*kxxMyyFromfcNEQ_SWB + c2o1*kxxMyyFromfcNEQ_SWT + + kxxMzzFromfcNEQ_NEB + kxxMzzFromfcNEQ_NET + kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_NWT - + kxxMzzFromfcNEQ_SEB - kxxMzzFromfcNEQ_SET - kxxMzzFromfcNEQ_SWB - kxxMzzFromfcNEQ_SWT + + c2o1*vx1_NEB + c2o1*vx1_NET - c2o1*vx1_NWB - c2o1*vx1_NWT - + c2o1*vx1_SEB - c2o1*vx1_SET + c2o1*vx1_SWB + c2o1*vx1_SWT - + c2o1*vx3_NEB + c2o1*vx3_NET - c2o1*vx3_NWB + c2o1*vx3_NWT + + c2o1*vx3_SEB - c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)/c16o1; + cyy= (kyzFromfcNEQ_NEB + kyzFromfcNEQ_NET + kyzFromfcNEQ_NWB + kyzFromfcNEQ_NWT - + kyzFromfcNEQ_SEB - kyzFromfcNEQ_SET - kyzFromfcNEQ_SWB - kyzFromfcNEQ_SWT + + c2o1*vx2_NEB - c2o1*vx2_NET + c2o1*vx2_NWB - c2o1*vx2_NWT - + c2o1*vx2_SEB + c2o1*vx2_SET - c2o1*vx2_SWB + c2o1*vx2_SWT)/c8o1; + az = (-vx1_NEB + vx1_NET - vx1_NWB + vx1_NWT - vx1_SEB + vx1_SET - vx1_SWB + vx1_SWT)/c4o1; + //bz = (-vx2_NEB + vx2_NET - vx2_NWB + vx2_NWT - vx2_SEB + vx2_SET - vx2_SWB + vx2_SWT)/four; + bz = ((vx2_SWT - vx2_NEB) + (vx2_NET - vx2_SWB) + (vx2_SET - vx2_NWB) + (vx2_NWT - vx2_SEB))/c4o1; + cz = (-vx3_NEB + vx3_NET - vx3_NWB + vx3_NWT - vx3_SEB + vx3_SET - vx3_SWB + vx3_SWT)/c4o1; + azz= (-kxzFromfcNEQ_NEB + kxzFromfcNEQ_NET - kxzFromfcNEQ_NWB + kxzFromfcNEQ_NWT - + kxzFromfcNEQ_SEB + kxzFromfcNEQ_SET - kxzFromfcNEQ_SWB + kxzFromfcNEQ_SWT + + c2o1*vx3_NEB - c2o1*vx3_NET - c2o1*vx3_NWB + c2o1*vx3_NWT + + c2o1*vx3_SEB - c2o1*vx3_SET - c2o1*vx3_SWB + c2o1*vx3_SWT)/c8o1; + bzz= (-kyzFromfcNEQ_NEB + kyzFromfcNEQ_NET - kyzFromfcNEQ_NWB + kyzFromfcNEQ_NWT - + kyzFromfcNEQ_SEB + kyzFromfcNEQ_SET - kyzFromfcNEQ_SWB + kyzFromfcNEQ_SWT + + c2o1*vx3_NEB - c2o1*vx3_NET + c2o1*vx3_NWB - c2o1*vx3_NWT - + c2o1*vx3_SEB + c2o1*vx3_SET - c2o1*vx3_SWB + c2o1*vx3_SWT)/c8o1; + czz= (-kxxMyyFromfcNEQ_NEB + kxxMyyFromfcNEQ_NET - kxxMyyFromfcNEQ_NWB + kxxMyyFromfcNEQ_NWT - + kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_SET - kxxMyyFromfcNEQ_SWB + kxxMyyFromfcNEQ_SWT + + c2o1*kxxMzzFromfcNEQ_NEB - c2o1*kxxMzzFromfcNEQ_NET + c2o1*kxxMzzFromfcNEQ_NWB - c2o1*kxxMzzFromfcNEQ_NWT + + c2o1*kxxMzzFromfcNEQ_SEB - c2o1*kxxMzzFromfcNEQ_SET + c2o1*kxxMzzFromfcNEQ_SWB - c2o1*kxxMzzFromfcNEQ_SWT - + c2o1*vx1_NEB + c2o1*vx1_NET + c2o1*vx1_NWB - c2o1*vx1_NWT - + c2o1*vx1_SEB + c2o1*vx1_SET + c2o1*vx1_SWB - c2o1*vx1_SWT - + c2o1*vx2_NEB + c2o1*vx2_NET - c2o1*vx2_NWB + c2o1*vx2_NWT + + c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB - c2o1*vx2_SWT)/c16o1; + axy= (vx1_NEB + vx1_NET - vx1_NWB - vx1_NWT - vx1_SEB - vx1_SET + vx1_SWB + vx1_SWT)/c2o1; + bxy= (vx2_NEB + vx2_NET - vx2_NWB - vx2_NWT - vx2_SEB - vx2_SET + vx2_SWB + vx2_SWT)/c2o1; + cxy= (vx3_NEB + vx3_NET - vx3_NWB - vx3_NWT - vx3_SEB - vx3_SET + vx3_SWB + vx3_SWT)/c2o1; + axz= (-vx1_NEB + vx1_NET + vx1_NWB - vx1_NWT - vx1_SEB + vx1_SET + vx1_SWB - vx1_SWT)/c2o1; + bxz= (-vx2_NEB + vx2_NET + vx2_NWB - vx2_NWT - vx2_SEB + vx2_SET + vx2_SWB - vx2_SWT)/c2o1; + cxz= (-vx3_NEB + vx3_NET + vx3_NWB - vx3_NWT - vx3_SEB + vx3_SET + vx3_SWB - vx3_SWT)/c2o1; + ayz= (-vx1_NEB + vx1_NET - vx1_NWB + vx1_NWT + vx1_SEB - vx1_SET + vx1_SWB - vx1_SWT)/c2o1; + byz= (-vx2_NEB + vx2_NET - vx2_NWB + vx2_NWT + vx2_SEB - vx2_SET + vx2_SWB - vx2_SWT)/c2o1; + cyz= (-vx3_NEB + vx3_NET - vx3_NWB + vx3_NWT + vx3_SEB - vx3_SET + vx3_SWB - vx3_SWT)/c2o1; + axyz=-vx1_NEB + vx1_NET + vx1_NWB - vx1_NWT + vx1_SEB - vx1_SET - vx1_SWB + vx1_SWT; + bxyz=-vx2_NEB + vx2_NET + vx2_NWB - vx2_NWT + vx2_SEB - vx2_SET - vx2_SWB + vx2_SWT; + cxyz=-vx3_NEB + vx3_NET + vx3_NWB - vx3_NWT + vx3_SEB - vx3_SET - vx3_SWB + vx3_SWT; + + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + real kxyAverage =(kxyFromfcNEQ_SWB+ + kxyFromfcNEQ_SWT+ + kxyFromfcNEQ_SET+ + kxyFromfcNEQ_SEB+ + kxyFromfcNEQ_NWB+ + kxyFromfcNEQ_NWT+ + kxyFromfcNEQ_NET+ + kxyFromfcNEQ_NEB)*c1o8-(ay+bx); + real kyzAverage =(kyzFromfcNEQ_SWB+ + kyzFromfcNEQ_SWT+ + kyzFromfcNEQ_SET+ + kyzFromfcNEQ_SEB+ + kyzFromfcNEQ_NWB+ + kyzFromfcNEQ_NWT+ + kyzFromfcNEQ_NET+ + kyzFromfcNEQ_NEB)*c1o8-(bz+cy); + real kxzAverage =(kxzFromfcNEQ_SWB+ + kxzFromfcNEQ_SWT+ + kxzFromfcNEQ_SET+ + kxzFromfcNEQ_SEB+ + kxzFromfcNEQ_NWB+ + kxzFromfcNEQ_NWT+ + kxzFromfcNEQ_NET+ + kxzFromfcNEQ_NEB)*c1o8-(az+cx); + real kxxMyyAverage =(kxxMyyFromfcNEQ_SWB+ + kxxMyyFromfcNEQ_SWT+ + kxxMyyFromfcNEQ_SET+ + kxxMyyFromfcNEQ_SEB+ + kxxMyyFromfcNEQ_NWB+ + kxxMyyFromfcNEQ_NWT+ + kxxMyyFromfcNEQ_NET+ + kxxMyyFromfcNEQ_NEB)*c1o8-(ax-by); + real kxxMzzAverage =(kxxMzzFromfcNEQ_SWB+ + kxxMzzFromfcNEQ_SWT+ + kxxMzzFromfcNEQ_SET+ + kxxMzzFromfcNEQ_SEB+ + kxxMzzFromfcNEQ_NWB+ + kxxMzzFromfcNEQ_NWT+ + kxxMzzFromfcNEQ_NET+ + kxxMzzFromfcNEQ_NEB)*c1o8-(ax-cz); + + + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //Press + //d0 = ( press_NEB + press_NET + press_NWB + press_NWT + press_SEB + press_SET + press_SWB + press_SWT) * c1o8; + //dx = ( press_NEB + press_NET - press_NWB - press_NWT + press_SEB + press_SET - press_SWB - press_SWT) * c1o4; + //dy = ( press_NEB + press_NET + press_NWB + press_NWT - press_SEB - press_SET - press_SWB - press_SWT) * c1o4; + //dz = (-press_NEB + press_NET - press_NWB + press_NWT - press_SEB + press_SET - press_SWB + press_SWT) * c1o4; + //dxy = ( press_NEB + press_NET - press_NWB - press_NWT - press_SEB - press_SET + press_SWB + press_SWT) * c1o2; + //dxz = (-press_NEB + press_NET + press_NWB - press_NWT - press_SEB + press_SET + press_SWB - press_SWT) * c1o2; + //dyz = (-press_NEB + press_NET - press_NWB + press_NWT + press_SEB - press_SET + press_SWB - press_SWT) * c1o2; + //dxyz = -press_NEB + press_NET + press_NWB - press_NWT + press_SEB - press_SET - press_SWB + press_SWT; + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho + d0 = ( drho_NEB + drho_NET + drho_NWB + drho_NWT + drho_SEB + drho_SET + drho_SWB + drho_SWT) * c1o8; + dx = ( drho_NEB + drho_NET - drho_NWB - drho_NWT + drho_SEB + drho_SET - drho_SWB - drho_SWT) * c1o4; + dy = ( drho_NEB + drho_NET + drho_NWB + drho_NWT - drho_SEB - drho_SET - drho_SWB - drho_SWT) * c1o4; + dz = (-drho_NEB + drho_NET - drho_NWB + drho_NWT - drho_SEB + drho_SET - drho_SWB + drho_SWT) * c1o4; + dxy = ( drho_NEB + drho_NET - drho_NWB - drho_NWT - drho_SEB - drho_SET + drho_SWB + drho_SWT) * c1o2; + dxz = (-drho_NEB + drho_NET + drho_NWB - drho_NWT - drho_SEB + drho_SET + drho_SWB - drho_SWT) * c1o2; + dyz = (-drho_NEB + drho_NET - drho_NWB + drho_NWT + drho_SEB - drho_SET + drho_SWB - drho_SWT) * c1o2; + dxyz = -drho_NEB + drho_NET + drho_NWB - drho_NWT + drho_SEB - drho_SET - drho_SWB + drho_SWT; + // d0 = zero; + //dx = zero; + //dy = zero; + //dz = zero; + //dxy = zero; + //dxz = zero; + //dyz = zero; + //dxyz = zero; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + // Bernd das Brot + // + // X------X + // | | x---x + // | ---+-+-> | ----> off-vector + // | | x---x + // X------X + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + a0 = a0 + xoff * ax + yoff * ay + zoff * az + xoff_sq * axx + yoff_sq * ayy + zoff_sq * azz + xoff*yoff*axy + xoff*zoff*axz + yoff*zoff*ayz; + ax = ax + c2o1 * xoff * axx + yoff * axy + zoff * axz; + ay = ay + c2o1 * yoff * ayy + xoff * axy + zoff * ayz; + az = az + c2o1 * zoff * azz + xoff * axz + yoff * ayz; + b0 = b0 + xoff * bx + yoff * by + zoff * bz + xoff_sq * bxx + yoff_sq * byy + zoff_sq * bzz + xoff*yoff*bxy + xoff*zoff*bxz + yoff*zoff*byz; + bx = bx + c2o1 * xoff * bxx + yoff * bxy + zoff * bxz; + by = by + c2o1 * yoff * byy + xoff * bxy + zoff * byz; + bz = bz + c2o1 * zoff * bzz + xoff * bxz + yoff * byz; + c0 = c0 + xoff * cx + yoff * cy + zoff * cz + xoff_sq * cxx + yoff_sq * cyy + zoff_sq * czz + xoff*yoff*cxy + xoff*zoff*cxz + yoff*zoff*cyz; + cx = cx + c2o1 * xoff * cxx + yoff * cxy + zoff * cxz; + cy = cy + c2o1 * yoff * cyy + xoff * cxy + zoff * cyz; + cz = cz + c2o1 * zoff * czz + xoff * cxz + yoff * cyz; + d0 = d0 + xoff * dx + yoff * dy + zoff * dz + xoff*yoff*dxy + xoff*zoff*dxz + yoff*zoff*dyz; + dx = dx + yoff * dxy + zoff * dxz; + dy = dy + xoff * dxy + zoff * dyz; + dz = dz + xoff * dxz + yoff * dyz; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // FIX /////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //AAAAAAAAAAAAHHHHHHHHHHHH!!!!! Mieser Test!!! + //b0= bx= by= bz= bxx= byy= bzz= bxy= bxz= byz= c0= cx= cy= cz= cxx= cyy= czz= cxy= cxz= cyz= axyz= bxyz= cxyz=zero; + //a0=zero; + //ax=zero; + //ay=zero; + //az=zero; + //axx=zero; + //ayy=zero; + //azz=zero; + //axy=zero; + //axz=zero; + //ayz=zero; + //b0=zero; + //bx=zero; + //by=zero; + //bz=zero; + //bxx=zero; + //byy=zero; + //bzz=zero; + //bxy=zero; + //bxz=zero; + //byz=zero; + //c0=zero; + //cx=zero; + //cy=zero; + //cz=zero; + //cxx=zero; + //cyy=zero; + //czz=zero; + //cxy=zero; + //cxz=zero; + //cyz=zero; + //axyz=zero; + //bxyz=zero; + //cxyz=zero; + //ax= ay= az= axx= ayy= azz= axy= axz= ayz= bx= by= bz= bxx= byy= bzz= bxy= bxz= byz= cx= cy= cz= cxx= cyy= czz= cxy= cxz= cyz= axyz= bxyz= cxyz=zero; + //a0=zero; + //b0=zero; + //c0=c1o100; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + real mfcbb = c0o1; + real mfabb = c0o1; + real mfbcb = c0o1; + real mfbab = c0o1; + real mfbbc = c0o1; + real mfbba = c0o1; + real mfccb = c0o1; + real mfaab = c0o1; + real mfcab = c0o1; + real mfacb = c0o1; + real mfcbc = c0o1; + real mfaba = c0o1; + real mfcba = c0o1; + real mfabc = c0o1; + real mfbcc = c0o1; + real mfbaa = c0o1; + real mfbca = c0o1; + real mfbac = c0o1; + real mfbbb = c0o1; + real mfccc = c0o1; + real mfaac = c0o1; + real mfcac = c0o1; + real mfacc = c0o1; + real mfcca = c0o1; + real mfaaa = c0o1; + real mfcaa = c0o1; + real mfaca = c0o1; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + real m0, m1, m2, vvx, vvy, vvz, vx2, vy2, vz2, oMdrho; + real mxxPyyPzz, mxxMyy, mxxMzz, mxxyPyzz, mxxyMyzz, mxxzPyyz, mxxzMyyz, mxyyPxzz, mxyyMxzz; + //real qudricLimit = c1o100;//ganz schlechte Idee -> muss global sein + //real O3 = two - o; + //real residu, residutmp; + //residutmp = zero;// /*-*/ c2o9 * (1./o - c1o2) * eps_new * eps_new; + real NeqOn = c1o1;//zero;//one; //.... one = on ..... zero = off + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position SWB -0.25f, -0.25f, -0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = -c1o4; + y = -c1o4; + z = -c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //real mxoff = -xoff; + //real myoff = -yoff; + //real mzoff = -zoff; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho = c3o64*drho_NEB+c1o64*drho_NET+c9o64*drho_NWB+c3o64*drho_NWT+c9o64*drho_SEB+c3o64*drho_SET+c27o64*drho_SWB+c9o64*drho_SWT; + //press = press_SWT * (c9o64 + c3o16 * mxoff + c3o16 * myoff - c9o16 * mzoff) + + // press_NWT * (c3o64 + c1o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + + // press_SET * (c3o64 - c3o16 * mxoff + c1o16 * myoff - c3o16 * mzoff) + + // press_NET * (c1o64 - c1o16 * mxoff - c1o16 * myoff - c1o16 * mzoff) + + // press_NEB * (c3o64 - c3o16 * mxoff - c3o16 * myoff + c1o16 * mzoff) + + // press_NWB * (c9o64 + c3o16 * mxoff - c9o16 * myoff + c3o16 * mzoff) + + // press_SEB * (c9o64 - c9o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + + // press_SWB * (c27o64 + c9o16 * mxoff + c9o16 * myoff + c9o16 * mzoff); + //drho = drho_SWT * (c9o64 + c3o16 * xoff + c3o16 * yoff - c9o16 * zoff) + + // drho_NWT * (c3o64 + c1o16 * xoff - c3o16 * yoff - c3o16 * zoff) + + // drho_SET * (c3o64 - c3o16 * xoff + c1o16 * yoff - c3o16 * zoff) + + // drho_NET * (c1o64 - c1o16 * xoff - c1o16 * yoff - c1o16 * zoff) + + // drho_NEB * (c3o64 - c3o16 * xoff - c3o16 * yoff + c1o16 * zoff) + + // drho_NWB * (c9o64 + c3o16 * xoff - c9o16 * yoff + c3o16 * zoff) + + // drho_SEB * (c9o64 - c9o16 * xoff + c3o16 * yoff + c3o16 * zoff) + + // drho_SWB * (c27o64 + c9o16 * xoff + c9o16 * yoff + c9o16 * zoff); + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; + vvx = a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz; + vvy = b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz; + vvz = c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz; + //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); + //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); + //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1 - mfaaa; + + //2.f + // linear combinations + mxxPyyPzz = mfaaa; + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o; + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); + //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mfbbb = c0o1; + + //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); + //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); + //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); + //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyPyzz = c0o1; + + //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); + //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); + //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyMyzz = c0o1; + + //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); + //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); + //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzPyyz = c0o1; + + //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); + //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); + //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzMyyz = c0o1; + + //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); + //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; + //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); + //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyPxzz = c0o1; + + //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); + //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); + //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyMxzz = c0o1; + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////// + //index 0 + k0zero= posFSWB[k]; + k0w = neighborFX[k0zero]; + k0s = neighborFY[k0zero]; + k0b = neighborFZ[k0zero]; + k0sw = neighborFY[k0w]; + k0bw = neighborFZ[k0w]; + k0bs = neighborFZ[k0s]; + k0bsw = neighborFZ[k0sw]; + ////////////////////////////////////////////////////////////////////////// + //index + kzero= k0zero; + kw = k0w; + ks = k0s; + kb = k0b; + ksw = k0sw; + kbw = k0bw; + kbs = k0bs; + kbsw = k0bsw; + //////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + feF[kzero] = mfcbb; + fwF[kw] = mfabb; + fnF[kzero] = mfbcb; + fsF[ks] = mfbab; + ftF[kzero] = mfbbc; + fbF[kb] = mfbba; + fneF[kzero] = mfccb; + fswF[ksw] = mfaab; + fseF[ks] = mfcab; + fnwF[kw] = mfacb; + fteF[kzero] = mfcbc; + fbwF[kbw] = mfaba; + fbeF[kb] = mfcba; + ftwF[kw] = mfabc; + ftnF[kzero] = mfbcc; + fbsF[kbs] = mfbaa; + fbnF[kb] = mfbca; + ftsF[ks] = mfbac; + fzeroF[kzero] = mfbbb; + ftneF[kzero] = mfccc; + ftseF[ks] = mfcac; + fbneF[kb] = mfcca; + fbseF[kbs] = mfcaa; + ftnwF[kw] = mfacc; + ftswF[ksw] = mfaac; + fbnwF[kbw] = mfaca; + fbswF[kbsw] = mfaaa; + //////////////////////////////////////////////////////////////////////////////////// + + //reset + mfcbb = c0o1; + mfabb = c0o1; + mfbcb = c0o1; + mfbab = c0o1; + mfbbc = c0o1; + mfbba = c0o1; + mfccb = c0o1; + mfaab = c0o1; + mfcab = c0o1; + mfacb = c0o1; + mfcbc = c0o1; + mfaba = c0o1; + mfcba = c0o1; + mfabc = c0o1; + mfbcc = c0o1; + mfbaa = c0o1; + mfbca = c0o1; + mfbac = c0o1; + mfbbb = c0o1; + mfccc = c0o1; + mfaac = c0o1; + mfcac = c0o1; + mfacc = c0o1; + mfcca = c0o1; + mfaaa = c0o1; + mfcaa = c0o1; + mfaca = c0o1; + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position SWT -0.25f, -0.25f, 0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = -c1o4; + y = -c1o4; + z = c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho = c1o64*drho_NEB+c3o64*drho_NET+c3o64*drho_NWB+c9o64*drho_NWT+c3o64*drho_SEB+c9o64*drho_SET+c9o64*drho_SWB+c27o64*drho_SWT; + //press = press_SWT * (c27o64 + c9o16 * mxoff + c9o16 * myoff - c9o16 * mzoff) + + // press_NWT * (c9o64 + c3o16 * mxoff - c9o16 * myoff - c3o16 * mzoff) + + // press_SET * (c9o64 - c9o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + + // press_NET * (c3o64 - c3o16 * mxoff - c3o16 * myoff - c1o16 * mzoff) + + // press_NEB * (c1o64 - c1o16 * mxoff - c1o16 * myoff + c1o16 * mzoff) + + // press_NWB * (c3o64 + c1o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + + // press_SEB * (c3o64 - c3o16 * mxoff + c1o16 * myoff + c3o16 * mzoff) + + // press_SWB * (c9o64 + c3o16 * mxoff + c3o16 * myoff + c9o16 * mzoff); + //drho = drho_SWT * (c27o64 + c9o16 * xoff + c9o16 * yoff - c9o16 * zoff) + + // drho_NWT * (c9o64 + c3o16 * xoff - c9o16 * yoff - c3o16 * zoff) + + // drho_SET * (c9o64 - c9o16 * xoff + c3o16 * yoff - c3o16 * zoff) + + // drho_NET * (c3o64 - c3o16 * xoff - c3o16 * yoff - c1o16 * zoff) + + // drho_NEB * (c1o64 - c1o16 * xoff - c1o16 * yoff + c1o16 * zoff) + + // drho_NWB * (c3o64 + c1o16 * xoff - c3o16 * yoff + c3o16 * zoff) + + // drho_SEB * (c3o64 - c3o16 * xoff + c1o16 * yoff + c3o16 * zoff) + + // drho_SWB * (c9o64 + c3o16 * xoff + c3o16 * yoff + c9o16 * zoff); + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; + vvx = a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz; + vvy = b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz; + vvz = c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz; + //vvx = a0 + c1o4*(-ax - ay + az) + c1o16*(axx + axy - axz + ayy - ayz + azz) + c1o64*( axyz); + //vvy = b0 + c1o4*(-bx - by + bz) + c1o16*(bxx + bxy - bxz + byy - byz + bzz) + c1o64*( bxyz); + //vvz = c0 + c1o4*(-cx - cy + cz) + c1o16*(cxx + cxy - cxz + cyy - cyz + czz) + c1o64*( cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1 - mfaaa; + + //two + // linear combinations + mxxPyyPzz = mfaaa; + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o; + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); + //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mfbbb = c0o1; + + //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); + //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); + //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); + //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyPyzz = c0o1; + + //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); + //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); + //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyMyzz = c0o1; + + //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); + //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); + //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzPyyz = c0o1; + + //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); + //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); + //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzMyyz = c0o1; + + //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); + //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; + //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); + //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyPxzz = c0o1; + + //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); + //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); + //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyMxzz = c0o1; + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + //index + kzero= kb; + kw = kbw; + ks = kbs; + kb = neighborFZ[kb]; + ksw = kbsw; + kbw = neighborFZ[kbw]; + kbs = neighborFZ[kbs]; + kbsw = neighborFZ[kbsw]; + //////////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + feF[kzero] = mfcbb; + fwF[kw] = mfabb; + fnF[kzero] = mfbcb; + fsF[ks] = mfbab; + ftF[kzero] = mfbbc; + fbF[kb] = mfbba; + fneF[kzero] = mfccb; + fswF[ksw] = mfaab; + fseF[ks] = mfcab; + fnwF[kw] = mfacb; + fteF[kzero] = mfcbc; + fbwF[kbw] = mfaba; + fbeF[kb] = mfcba; + ftwF[kw] = mfabc; + ftnF[kzero] = mfbcc; + fbsF[kbs] = mfbaa; + fbnF[kb] = mfbca; + ftsF[ks] = mfbac; + fzeroF[kzero] = mfbbb; + ftneF[kzero] = mfccc; + ftseF[ks] = mfcac; + fbneF[kb] = mfcca; + fbseF[kbs] = mfcaa; + ftnwF[kw] = mfacc; + ftswF[ksw] = mfaac; + fbnwF[kbw] = mfaca; + fbswF[kbsw] = mfaaa; + //////////////////////////////////////////////////////////////////////////////////// + + + //reset + mfcbb = c0o1; + mfabb = c0o1; + mfbcb = c0o1; + mfbab = c0o1; + mfbbc = c0o1; + mfbba = c0o1; + mfccb = c0o1; + mfaab = c0o1; + mfcab = c0o1; + mfacb = c0o1; + mfcbc = c0o1; + mfaba = c0o1; + mfcba = c0o1; + mfabc = c0o1; + mfbcc = c0o1; + mfbaa = c0o1; + mfbca = c0o1; + mfbac = c0o1; + mfbbb = c0o1; + mfccc = c0o1; + mfaac = c0o1; + mfcac = c0o1; + mfacc = c0o1; + mfcca = c0o1; + mfaaa = c0o1; + mfcaa = c0o1; + mfaca = c0o1; + + + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position SET 0.25f, -0.25f, 0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = c1o4; + y = -c1o4; + z = c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho =c3o64*drho_NEB+c9o64*drho_NET+c1o64*drho_NWB+c3o64*drho_NWT+c9o64*drho_SEB+c27o64*drho_SET+c3o64*drho_SWB+c9o64*drho_SWT; + //press = press_SET * (c27o64 - c9o16 * mxoff + c9o16 * myoff - c9o16 * mzoff) + + // press_NET * (c9o64 - c3o16 * mxoff - c9o16 * myoff - c3o16 * mzoff) + + // press_SWT * (c9o64 + c9o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + + // press_NWT * (c3o64 + c3o16 * mxoff - c3o16 * myoff - c1o16 * mzoff) + + // press_NWB * (c1o64 + c1o16 * mxoff - c1o16 * myoff + c1o16 * mzoff) + + // press_NEB * (c3o64 - c1o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + + // press_SWB * (c3o64 + c3o16 * mxoff + c1o16 * myoff + c3o16 * mzoff) + + // press_SEB * (c9o64 - c3o16 * mxoff + c3o16 * myoff + c9o16 * mzoff); + //drho = drho_SET * (c27o64 - c9o16 * xoff + c9o16 * yoff - c9o16 * zoff) + + // drho_NET * (c9o64 - c3o16 * xoff - c9o16 * yoff - c3o16 * zoff) + + // drho_SWT * (c9o64 + c9o16 * xoff + c3o16 * yoff - c3o16 * zoff) + + // drho_NWT * (c3o64 + c3o16 * xoff - c3o16 * yoff - c1o16 * zoff) + + // drho_NWB * (c1o64 + c1o16 * xoff - c1o16 * yoff + c1o16 * zoff) + + // drho_NEB * (c3o64 - c1o16 * xoff - c3o16 * yoff + c3o16 * zoff) + + // drho_SWB * (c3o64 + c3o16 * xoff + c1o16 * yoff + c3o16 * zoff) + + // drho_SEB * (c9o64 - c3o16 * xoff + c3o16 * yoff + c9o16 * zoff); + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; + vvx = a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz; + vvy = b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz; + vvz = c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz; + //vvx = a0 + c1o4*( ax - ay + az) + c1o16*(axx - axy + axz + ayy - ayz + azz) + c1o64*(-axyz); + //vvy = b0 + c1o4*( bx - by + bz) + c1o16*(bxx - bxy + bxz + byy - byz + bzz) + c1o64*(-bxyz); + //vvz = c0 + c1o4*( cx - cy + cz) + c1o16*(cxx - cxy + cxz + cyy - cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1 - mfaaa; + + //two + // linear combinations + mxxPyyPzz = mfaaa; + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o; + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); + //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mfbbb = c0o1; + + //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); + //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); + //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); + //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyPyzz = c0o1; + + //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); + //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); + //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyMyzz = c0o1; + + //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); + //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); + //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzPyyz = c0o1; + + //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); + //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); + //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzMyyz = c0o1; + + //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); + //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; + //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); + //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyPxzz = c0o1; + + //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); + //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); + //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyMxzz = c0o1; + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////// + //index + kzero= kw; + kw = neighborFX[kw]; + ks = ksw; + kb = kbw; + ksw = neighborFX[ksw]; + kbw = neighborFX[kbw]; + kbs = kbsw; + kbsw = neighborFX[kbsw]; + //////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + feF[kzero] = mfcbb; + fwF[kw] = mfabb; + fnF[kzero] = mfbcb; + fsF[ks] = mfbab; + ftF[kzero] = mfbbc; + fbF[kb] = mfbba; + fneF[kzero] = mfccb; + fswF[ksw] = mfaab; + fseF[ks] = mfcab; + fnwF[kw] = mfacb; + fteF[kzero] = mfcbc; + fbwF[kbw] = mfaba; + fbeF[kb] = mfcba; + ftwF[kw] = mfabc; + ftnF[kzero] = mfbcc; + fbsF[kbs] = mfbaa; + fbnF[kb] = mfbca; + ftsF[ks] = mfbac; + fzeroF[kzero] = mfbbb; + ftneF[kzero] = mfccc; + ftseF[ks] = mfcac; + fbneF[kb] = mfcca; + fbseF[kbs] = mfcaa; + ftnwF[kw] = mfacc; + ftswF[ksw] = mfaac; + fbnwF[kbw] = mfaca; + fbswF[kbsw] = mfaaa; + //////////////////////////////////////////////////////////////////////////////////// + + //reset + mfcbb = c0o1; + mfabb = c0o1; + mfbcb = c0o1; + mfbab = c0o1; + mfbbc = c0o1; + mfbba = c0o1; + mfccb = c0o1; + mfaab = c0o1; + mfcab = c0o1; + mfacb = c0o1; + mfcbc = c0o1; + mfaba = c0o1; + mfcba = c0o1; + mfabc = c0o1; + mfbcc = c0o1; + mfbaa = c0o1; + mfbca = c0o1; + mfbac = c0o1; + mfbbb = c0o1; + mfccc = c0o1; + mfaac = c0o1; + mfcac = c0o1; + mfacc = c0o1; + mfcca = c0o1; + mfaaa = c0o1; + mfcaa = c0o1; + mfaca = c0o1; + + + + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position SEB 0.25f, -0.25f, -0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = c1o4; + y = -c1o4; + z = -c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho =c9o64*drho_NEB+c3o64*drho_NET+c3o64*drho_NWB+c1o64*drho_NWT+c27o64*drho_SEB+c9o64*drho_SET+c9o64*drho_SWB+c3o64*drho_SWT; + //press = press_SET * (c9o64 - c3o16 * mxoff + c3o16 * myoff - c9o16 * mzoff) + + // press_NET * (c3o64 - c1o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + + // press_SWT * (c3o64 + c3o16 * mxoff + c1o16 * myoff - c3o16 * mzoff) + + // press_NWT * (c1o64 + c1o16 * mxoff - c1o16 * myoff - c1o16 * mzoff) + + // press_NWB * (c3o64 + c3o16 * mxoff - c3o16 * myoff + c1o16 * mzoff) + + // press_NEB * (c9o64 - c3o16 * mxoff - c9o16 * myoff + c3o16 * mzoff) + + // press_SWB * (c9o64 + c9o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + + // press_SEB * (c27o64 - c9o16 * mxoff + c9o16 * myoff + c9o16 * mzoff); + //drho = drho_SET * (c9o64 - c3o16 * xoff + c3o16 * yoff - c9o16 * zoff) + + // drho_NET * (c3o64 - c1o16 * xoff - c3o16 * yoff - c3o16 * zoff) + + // drho_SWT * (c3o64 + c3o16 * xoff + c1o16 * yoff - c3o16 * zoff) + + // drho_NWT * (c1o64 + c1o16 * xoff - c1o16 * yoff - c1o16 * zoff) + + // drho_NWB * (c3o64 + c3o16 * xoff - c3o16 * yoff + c1o16 * zoff) + + // drho_NEB * (c9o64 - c3o16 * xoff - c9o16 * yoff + c3o16 * zoff) + + // drho_SWB * (c9o64 + c9o16 * xoff + c3o16 * yoff + c3o16 * zoff) + + // drho_SEB * (c27o64 - c9o16 * xoff + c9o16 * yoff + c9o16 * zoff); + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; + vvx = a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz; + vvy = b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz; + vvz = c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz; + //vvx = a0 + c1o4*( ax - ay - az) + c1o16*(axx - axy - axz + ayy + ayz + azz) + c1o64*( axyz); + //vvy = b0 + c1o4*( bx - by - bz) + c1o16*(bxx - bxy - bxz + byy + byz + bzz) + c1o64*( bxyz); + //vvz = c0 + c1o4*( cx - cy - cz) + c1o16*(cxx - cxy - cxz + cyy + cyz + czz) + c1o64*( cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1 - mfaaa; + + //two + // linear combinations + mxxPyyPzz = mfaaa; + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o; + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); + //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mfbbb = c0o1; + + //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); + //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); + //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); + //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyPyzz = c0o1; + + //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); + //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); + //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyMyzz = c0o1; + + //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); + //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); + //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzPyyz = c0o1; + + //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); + //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); + //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzMyyz = c0o1; + + //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); + //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; + //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); + //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyPxzz = c0o1; + + //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); + //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); + //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyMxzz = c0o1; + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////// + //index + kb = kzero; + kbw = kw; + kbs = ks; + kbsw = ksw; + kzero= k0w; + kw = neighborFX[k0w]; + ks = k0sw; + ksw = neighborFX[k0sw]; + //////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + feF[kzero] = mfcbb; + fwF[kw] = mfabb; + fnF[kzero] = mfbcb; + fsF[ks] = mfbab; + ftF[kzero] = mfbbc; + fbF[kb] = mfbba; + fneF[kzero] = mfccb; + fswF[ksw] = mfaab; + fseF[ks] = mfcab; + fnwF[kw] = mfacb; + fteF[kzero] = mfcbc; + fbwF[kbw] = mfaba; + fbeF[kb] = mfcba; + ftwF[kw] = mfabc; + ftnF[kzero] = mfbcc; + fbsF[kbs] = mfbaa; + fbnF[kb] = mfbca; + ftsF[ks] = mfbac; + fzeroF[kzero] = mfbbb; + ftneF[kzero] = mfccc; + ftseF[ks] = mfcac; + fbneF[kb] = mfcca; + fbseF[kbs] = mfcaa; + ftnwF[kw] = mfacc; + ftswF[ksw] = mfaac; + fbnwF[kbw] = mfaca; + fbswF[kbsw] = mfaaa; + //////////////////////////////////////////////////////////////////////////////////// + + + //reset + mfcbb = c0o1; + mfabb = c0o1; + mfbcb = c0o1; + mfbab = c0o1; + mfbbc = c0o1; + mfbba = c0o1; + mfccb = c0o1; + mfaab = c0o1; + mfcab = c0o1; + mfacb = c0o1; + mfcbc = c0o1; + mfaba = c0o1; + mfcba = c0o1; + mfabc = c0o1; + mfbcc = c0o1; + mfbaa = c0o1; + mfbca = c0o1; + mfbac = c0o1; + mfbbb = c0o1; + mfccc = c0o1; + mfaac = c0o1; + mfcac = c0o1; + mfacc = c0o1; + mfcca = c0o1; + mfaaa = c0o1; + mfcaa = c0o1; + mfaca = c0o1; + + + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position NWB -0.25f, 0.25f, -0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = -c1o4; + y = c1o4; + z = -c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho = c9o64*drho_NEB+c3o64*drho_NET+c27o64*drho_NWB+c9o64*drho_NWT+c3o64*drho_SEB+c1o64*drho_SET+c9o64*drho_SWB+c3o64*drho_SWT; + //press = press_NWT * (c9o64 + c3o16 * mxoff - c3o16 * myoff - c9o16 * mzoff) + + // press_NET * (c3o64 - c3o16 * mxoff - c1o16 * myoff - c3o16 * mzoff) + + // press_SWT * (c3o64 + c1o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + + // press_SET * (c1o64 - c1o16 * mxoff + c1o16 * myoff - c1o16 * mzoff) + + // press_SEB * (c3o64 - c3o16 * mxoff + c3o16 * myoff + c1o16 * mzoff) + + // press_NEB * (c9o64 - c9o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + + // press_SWB * (c9o64 + c3o16 * mxoff + c9o16 * myoff + c3o16 * mzoff) + + // press_NWB * (c27o64 + c9o16 * mxoff - c9o16 * myoff + c9o16 * mzoff); + //drho = drho_NWT * (c9o64 + c3o16 * xoff - c3o16 * yoff - c9o16 * zoff) + + // drho_NET * (c3o64 - c3o16 * xoff - c1o16 * yoff - c3o16 * zoff) + + // drho_SWT * (c3o64 + c1o16 * xoff + c3o16 * yoff - c3o16 * zoff) + + // drho_SET * (c1o64 - c1o16 * xoff + c1o16 * yoff - c1o16 * zoff) + + // drho_SEB * (c3o64 - c3o16 * xoff + c3o16 * yoff + c1o16 * zoff) + + // drho_NEB * (c9o64 - c9o16 * xoff - c3o16 * yoff + c3o16 * zoff) + + // drho_SWB * (c9o64 + c3o16 * xoff + c9o16 * yoff + c3o16 * zoff) + + // drho_NWB * (c27o64 + c9o16 * xoff - c9o16 * yoff + c9o16 * zoff); + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; + vvx = a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz; + vvy = b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz; + vvz = c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz; + //vvx = a0 + c1o4*(-ax + ay - az) + c1o16*(axx - axy + axz + ayy - ayz + azz) + c1o64*( axyz); + //vvy = b0 + c1o4*(-bx + by - bz) + c1o16*(bxx - bxy + bxz + byy - byz + bzz) + c1o64*( bxyz); + //vvz = c0 + c1o4*(-cx + cy - cz) + c1o16*(cxx - cxy + cxz + cyy - cyz + czz) + c1o64*( cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1 - mfaaa; + + //two + // linear combinations + mxxPyyPzz = mfaaa; + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o; + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); + //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mfbbb = c0o1; + + //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); + //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); + //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); + //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyPyzz = c0o1; + + //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); + //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); + //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyMyzz = c0o1; + + //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); + //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); + //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzPyyz = c0o1; + + //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); + //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); + //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzMyyz = c0o1; + + //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); + //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; + //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); + //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyPxzz = c0o1; + + //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); + //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); + //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyMxzz = c0o1; + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////// + //index 0 + k0zero= k0s; + k0w = k0sw; + k0s = neighborFY[k0s]; + k0b = k0bs; + k0sw = neighborFY[k0sw]; + k0bw = k0bsw; + k0bs = neighborFY[k0bs]; + k0bsw = neighborFY[k0bsw]; + ////////////////////////////////////////////////////////////////////////// + //index + kzero= k0zero; + kw = k0w; + ks = k0s; + kb = k0b; + ksw = k0sw; + kbw = k0bw; + kbs = k0bs; + kbsw = k0bsw; + //////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + feF[kzero] = mfcbb; + fwF[kw] = mfabb; + fnF[kzero] = mfbcb; + fsF[ks] = mfbab; + ftF[kzero] = mfbbc; + fbF[kb] = mfbba; + fneF[kzero] = mfccb; + fswF[ksw] = mfaab; + fseF[ks] = mfcab; + fnwF[kw] = mfacb; + fteF[kzero] = mfcbc; + fbwF[kbw] = mfaba; + fbeF[kb] = mfcba; + ftwF[kw] = mfabc; + ftnF[kzero] = mfbcc; + fbsF[kbs] = mfbaa; + fbnF[kb] = mfbca; + ftsF[ks] = mfbac; + fzeroF[kzero] = mfbbb; + ftneF[kzero] = mfccc; + ftseF[ks] = mfcac; + fbneF[kb] = mfcca; + fbseF[kbs] = mfcaa; + ftnwF[kw] = mfacc; + ftswF[ksw] = mfaac; + fbnwF[kbw] = mfaca; + fbswF[kbsw] = mfaaa; + //////////////////////////////////////////////////////////////////////////////////// + + + //reset + mfcbb = c0o1; + mfabb = c0o1; + mfbcb = c0o1; + mfbab = c0o1; + mfbbc = c0o1; + mfbba = c0o1; + mfccb = c0o1; + mfaab = c0o1; + mfcab = c0o1; + mfacb = c0o1; + mfcbc = c0o1; + mfaba = c0o1; + mfcba = c0o1; + mfabc = c0o1; + mfbcc = c0o1; + mfbaa = c0o1; + mfbca = c0o1; + mfbac = c0o1; + mfbbb = c0o1; + mfccc = c0o1; + mfaac = c0o1; + mfcac = c0o1; + mfacc = c0o1; + mfcca = c0o1; + mfaaa = c0o1; + mfcaa = c0o1; + mfaca = c0o1; + + + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position NWT -0.25f, 0.25f, 0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = -c1o4; + y = c1o4; + z = c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho = c3o64*drho_NEB+c9o64*drho_NET+c9o64*drho_NWB+c27o64*drho_NWT+c1o64*drho_SEB+c3o64*drho_SET+c3o64*drho_SWB+c9o64*drho_SWT; + //press = press_NWT * (c27o64 + c9o16 * mxoff - c9o16 * myoff - c9o16 * mzoff) + + // press_NET * (c9o64 - c9o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + + // press_SWT * (c9o64 + c3o16 * mxoff + c9o16 * myoff - c3o16 * mzoff) + + // press_SET * (c3o64 - c3o16 * mxoff + c3o16 * myoff - c1o16 * mzoff) + + // press_SEB * (c1o64 - c1o16 * mxoff + c1o16 * myoff + c1o16 * mzoff) + + // press_NEB * (c3o64 - c3o16 * mxoff - c1o16 * myoff + c3o16 * mzoff) + + // press_SWB * (c3o64 + c1o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + + // press_NWB * (c9o64 + c3o16 * mxoff - c3o16 * myoff + c9o16 * mzoff); + //drho = drho_NWT * (c27o64 + c9o16 * xoff - c9o16 * yoff - c9o16 * zoff) + + // drho_NET * (c9o64 - c9o16 * xoff - c3o16 * yoff - c3o16 * zoff) + + // drho_SWT * (c9o64 + c3o16 * xoff + c9o16 * yoff - c3o16 * zoff) + + // drho_SET * (c3o64 - c3o16 * xoff + c3o16 * yoff - c1o16 * zoff) + + // drho_SEB * (c1o64 - c1o16 * xoff + c1o16 * yoff + c1o16 * zoff) + + // drho_NEB * (c3o64 - c3o16 * xoff - c1o16 * yoff + c3o16 * zoff) + + // drho_SWB * (c3o64 + c1o16 * xoff + c3o16 * yoff + c3o16 * zoff) + + // drho_NWB * (c9o64 + c3o16 * xoff - c3o16 * yoff + c9o16 * zoff); + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; + vvx = a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz; + vvy = b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz; + vvz = c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz; + //vvx = a0 + c1o4*(-ax + ay + az) + c1o16*(axx - axy - axz + ayy + ayz + azz) + c1o64*(-axyz); + //vvy = b0 + c1o4*(-bx + by + bz) + c1o16*(bxx - bxy - bxz + byy + byz + bzz) + c1o64*(-bxyz); + //vvz = c0 + c1o4*(-cx + cy + cz) + c1o16*(cxx - cxy - cxz + cyy + cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1 - mfaaa; + + //two + // linear combinations + mxxPyyPzz = mfaaa; + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o; + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); + //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mfbbb = c0o1; + + //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); + //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); + //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); + //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyPyzz = c0o1; + + //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); + //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); + //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyMyzz = c0o1; + + //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); + //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); + //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzPyyz = c0o1; + + //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); + //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); + //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzMyyz = c0o1; + + //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); + //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; + //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); + //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyPxzz = c0o1; + + //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); + //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); + //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyMxzz = c0o1; + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////// + //index + kzero= kb; + kw = kbw; + ks = kbs; + kb = neighborFZ[kb]; + ksw = kbsw; + kbw = neighborFZ[kbw]; + kbs = neighborFZ[kbs]; + kbsw = neighborFZ[kbsw]; + //////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + feF[kzero] = mfcbb; + fwF[kw] = mfabb; + fnF[kzero] = mfbcb; + fsF[ks] = mfbab; + ftF[kzero] = mfbbc; + fbF[kb] = mfbba; + fneF[kzero] = mfccb; + fswF[ksw] = mfaab; + fseF[ks] = mfcab; + fnwF[kw] = mfacb; + fteF[kzero] = mfcbc; + fbwF[kbw] = mfaba; + fbeF[kb] = mfcba; + ftwF[kw] = mfabc; + ftnF[kzero] = mfbcc; + fbsF[kbs] = mfbaa; + fbnF[kb] = mfbca; + ftsF[ks] = mfbac; + fzeroF[kzero] = mfbbb; + ftneF[kzero] = mfccc; + ftseF[ks] = mfcac; + fbneF[kb] = mfcca; + fbseF[kbs] = mfcaa; + ftnwF[kw] = mfacc; + ftswF[ksw] = mfaac; + fbnwF[kbw] = mfaca; + fbswF[kbsw] = mfaaa; + //////////////////////////////////////////////////////////////////////////////////// + + + //reset + mfcbb = c0o1; + mfabb = c0o1; + mfbcb = c0o1; + mfbab = c0o1; + mfbbc = c0o1; + mfbba = c0o1; + mfccb = c0o1; + mfaab = c0o1; + mfcab = c0o1; + mfacb = c0o1; + mfcbc = c0o1; + mfaba = c0o1; + mfcba = c0o1; + mfabc = c0o1; + mfbcc = c0o1; + mfbaa = c0o1; + mfbca = c0o1; + mfbac = c0o1; + mfbbb = c0o1; + mfccc = c0o1; + mfaac = c0o1; + mfcac = c0o1; + mfacc = c0o1; + mfcca = c0o1; + mfaaa = c0o1; + mfcaa = c0o1; + mfaca = c0o1; + + + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position NET 0.25f, 0.25f, 0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = c1o4; + y = c1o4; + z = c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho = c9o64*drho_NEB+c27o64*drho_NET+c3o64*drho_NWB+c9o64*drho_NWT+c3o64*drho_SEB+c9o64*drho_SET+c1o64*drho_SWB+c3o64*drho_SWT; + //press = press_NET * (c27o64 - c9o16 * mxoff - c9o16 * myoff - c9o16 * mzoff) + + // press_NWT * (c9o64 + c9o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + + // press_SET * (c9o64 - c3o16 * mxoff + c9o16 * myoff - c3o16 * mzoff) + + // press_SWT * (c3o64 + c3o16 * mxoff + c3o16 * myoff - c1o16 * mzoff) + + // press_SWB * (c1o64 + c1o16 * mxoff + c1o16 * myoff + c1o16 * mzoff) + + // press_NWB * (c3o64 + c3o16 * mxoff - c1o16 * myoff + c3o16 * mzoff) + + // press_SEB * (c3o64 - c1o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + + // press_NEB * (c9o64 - c3o16 * mxoff - c3o16 * myoff + c9o16 * mzoff); + //drho = drho_NET * (c27o64 - c9o16 * xoff - c9o16 * yoff - c9o16 * zoff) + + // drho_NWT * (c9o64 + c9o16 * xoff - c3o16 * yoff - c3o16 * zoff) + + // drho_SET * (c9o64 - c3o16 * xoff + c9o16 * yoff - c3o16 * zoff) + + // drho_SWT * (c3o64 + c3o16 * xoff + c3o16 * yoff - c1o16 * zoff) + + // drho_SWB * (c1o64 + c1o16 * xoff + c1o16 * yoff + c1o16 * zoff) + + // drho_NWB * (c3o64 + c3o16 * xoff - c1o16 * yoff + c3o16 * zoff) + + // drho_SEB * (c3o64 - c1o16 * xoff + c3o16 * yoff + c3o16 * zoff) + + // drho_NEB * (c9o64 - c3o16 * xoff - c3o16 * yoff + c9o16 * zoff); + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; + vvx = a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz; + vvy = b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz; + vvz = c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz; + //vvx = a0 + c1o4*( ax + ay + az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*( axyz); + //vvy = b0 + c1o4*( bx + by + bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*( bxyz); + //vvz = c0 + c1o4*( cx + cy + cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*( cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1 - mfaaa; + + //two + // linear combinations + mxxPyyPzz = mfaaa; + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o; + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); + //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mfbbb = c0o1; + + //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); + //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); + //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); + //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyPyzz = c0o1; + + //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); + //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); + //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyMyzz = c0o1; + + //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); + //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); + //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzPyyz = c0o1; + + //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); + //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); + //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzMyyz = c0o1; + + //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); + //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; + //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); + //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyPxzz = c0o1; + + //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); + //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); + //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyMxzz = c0o1; + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////// - //NEB// + //index + kzero= kw; + kw = neighborFX[kw]; + ks = ksw; + kb = kbw; + ksw = neighborFX[ksw]; + kbw = neighborFX[kbw]; + kbs = kbsw; + kbsw = neighborFX[kbsw]; + //////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + feF[kzero] = mfcbb; + fwF[kw] = mfabb; + fnF[kzero] = mfbcb; + fsF[ks] = mfbab; + ftF[kzero] = mfbbc; + fbF[kb] = mfbba; + fneF[kzero] = mfccb; + fswF[ksw] = mfaab; + fseF[ks] = mfcab; + fnwF[kw] = mfacb; + fteF[kzero] = mfcbc; + fbwF[kbw] = mfaba; + fbeF[kb] = mfcba; + ftwF[kw] = mfabc; + ftnF[kzero] = mfbcc; + fbsF[kbs] = mfbaa; + fbnF[kb] = mfbca; + ftsF[ks] = mfbac; + fzeroF[kzero] = mfbbb; + ftneF[kzero] = mfccc; + ftseF[ks] = mfcac; + fbneF[kb] = mfcca; + fbseF[kbs] = mfcaa; + ftnwF[kw] = mfacc; + ftswF[ksw] = mfaac; + fbnwF[kbw] = mfaca; + fbswF[kbsw] = mfaaa; + //////////////////////////////////////////////////////////////////////////////////// + + + //reset + mfcbb = c0o1; + mfabb = c0o1; + mfbcb = c0o1; + mfbab = c0o1; + mfbbc = c0o1; + mfbba = c0o1; + mfccb = c0o1; + mfaab = c0o1; + mfcab = c0o1; + mfacb = c0o1; + mfcbc = c0o1; + mfaba = c0o1; + mfcba = c0o1; + mfabc = c0o1; + mfbcc = c0o1; + mfbaa = c0o1; + mfbca = c0o1; + mfbac = c0o1; + mfbbb = c0o1; + mfccc = c0o1; + mfaac = c0o1; + mfcac = c0o1; + mfacc = c0o1; + mfcca = c0o1; + mfaaa = c0o1; + mfcaa = c0o1; + mfaca = c0o1; + + + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position NEB 0.25f, 0.25f, -0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = c1o4; + y = c1o4; + z = -c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho = c27o64*drho_NEB+c9o64*drho_NET+c9o64*drho_NWB+c3o64*drho_NWT+c9o64*drho_SEB+c3o64*drho_SET+c3o64*drho_SWB+c1o64*drho_SWT; + //press = press_NET * (c9o64 - c3o16 * mxoff - c3o16 * myoff - c9o16 * mzoff) + + // press_NWT * (c3o64 + c3o16 * mxoff - c1o16 * myoff - c3o16 * mzoff) + + // press_SET * (c3o64 - c1o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + + // press_SWT * (c1o64 + c1o16 * mxoff + c1o16 * myoff - c1o16 * mzoff) + + // press_SWB * (c3o64 + c3o16 * mxoff + c3o16 * myoff + c1o16 * mzoff) + + // press_NWB * (c9o64 + c9o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + + // press_SEB * (c9o64 - c3o16 * mxoff + c9o16 * myoff + c3o16 * mzoff) + + // press_NEB * (c27o64 - c9o16 * mxoff - c9o16 * myoff + c9o16 * mzoff); + //drho = drho_NET * (c9o64 - c3o16 * xoff - c3o16 * yoff - c9o16 * zoff) + + // drho_NWT * (c3o64 + c3o16 * xoff - c1o16 * yoff - c3o16 * zoff) + + // drho_SET * (c3o64 - c1o16 * xoff + c3o16 * yoff - c3o16 * zoff) + + // drho_SWT * (c1o64 + c1o16 * xoff + c1o16 * yoff - c1o16 * zoff) + + // drho_SWB * (c3o64 + c3o16 * xoff + c3o16 * yoff + c1o16 * zoff) + + // drho_NWB * (c9o64 + c9o16 * xoff - c3o16 * yoff + c3o16 * zoff) + + // drho_SEB * (c9o64 - c3o16 * xoff + c9o16 * yoff + c3o16 * zoff) + + // drho_NEB * (c27o64 - c9o16 * xoff - c9o16 * yoff + c9o16 * zoff); + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; + vvx = a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz; + vvy = b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz; + vvz = c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz; + //vvx = a0 + c1o4*( ax + ay - az) + c1o16*(axx + axy - axz + ayy - ayz + azz) + c1o64*(-axyz); + //vvy = b0 + c1o4*( bx + by - bz) + c1o16*(bxx + bxy - bxz + byy - byz + bzz) + c1o64*(-bxyz); + //vvz = c0 + c1o4*( cx + cy - cz) + c1o16*(cxx + cxy - cxz + cyy - cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1 - mfaaa; + + //two + // linear combinations + mxxPyyPzz = mfaaa; + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o; + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); + //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mfbbb = c0o1; + + //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); + //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); + //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); + //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyPyzz = c0o1; + + //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); + //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); + //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyMyzz = c0o1; + + //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); + //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); + //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzPyyz = c0o1; + + //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); + //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); + //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzMyyz = c0o1; + + //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); + //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; + //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); + //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyPxzz = c0o1; + + //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); + //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); + //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyMxzz = c0o1; + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// //index kb = kzero; @@ -35673,3622 +39255,40 @@ __global__ void scaleCF_Fix_27( real* DC, kbs = ks; kbsw = ksw; kzero= k0w; - kw = neighborCX[k0w]; + kw = neighborFX[k0w]; ks = k0sw; - ksw = neighborCX[k0sw]; + ksw = neighborFX[k0sw]; //////////////////////////////////////////////////////////////////////////////// - f_E = feC[kzero]; - f_W = fwC[kw]; - f_N = fnC[kzero]; - f_S = fsC[ks]; - f_T = ftC[kzero]; - f_B = fbC[kb]; - f_NE = fneC[kzero]; - f_SW = fswC[ksw]; - f_SE = fseC[ks]; - f_NW = fnwC[kw]; - f_TE = fteC[kzero]; - f_BW = fbwC[kbw]; - f_BE = fbeC[kb]; - f_TW = ftwC[kw]; - f_TN = ftnC[kzero]; - f_BS = fbsC[kbs]; - f_BN = fbnC[kb]; - f_TS = ftsC[ks]; - f_ZERO = fzeroC[kzero]; - f_TNE = ftneC[kzero]; - f_TSW = ftswC[ksw]; - f_TSE = ftseC[ks]; - f_TNW = ftnwC[kw]; - f_BNE = fbneC[kb]; - f_BSW = fbswC[kbsw]; - f_BSE = fbseC[kbs]; - f_BNW = fbnwC[kbw]; - - //vx1_NEB = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; - //vx2_NEB = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_NEB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; - vx1_NEB = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_NEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_NEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); - drho_NEB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; - //press_NEB= (f_E+f_W+f_N+f_S+f_T+f_B+two*(f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS)+three*(f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW)- - // drho_NEB-(vx1_NEB*vx1_NEB+vx2_NEB*vx2_NEB+vx3_NEB*vx3_NEB)* (one+drho_NEB)) * c1o2+drho_NEB; - - kxyFromfcNEQ_NEB = -c3o1*omegaS*(f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE-(vx1_NEB*vx2_NEB)); - kyzFromfcNEQ_NEB = -c3o1*omegaS*(f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW-(vx2_NEB*vx3_NEB)); - kxzFromfcNEQ_NEB = -c3o1*omegaS*(f_BW+f_BSW+f_BNW-f_TW-f_TSW-f_TNW-f_BE-f_BSE-f_BNE+f_TE+f_TSE+f_TNE-(vx1_NEB*vx3_NEB)); - kxxMyyFromfcNEQ_NEB = -c3o2*omegaS*(f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE-(vx1_NEB*vx1_NEB-vx2_NEB*vx2_NEB)); - kxxMzzFromfcNEQ_NEB = -c3o2*omegaS*(f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE-(vx1_NEB*vx1_NEB-vx3_NEB*vx3_NEB)); - - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // kxyFromfcNEQ_SWB = zero; - //kyzFromfcNEQ_SWB = zero; - //kxzFromfcNEQ_SWB = zero; - //kxxMyyFromfcNEQ_SWB = zero; - //kxxMzzFromfcNEQ_SWB = zero; - //kxyFromfcNEQ_SWT = zero; - //kyzFromfcNEQ_SWT = zero; - //kxzFromfcNEQ_SWT = zero; - //kxxMyyFromfcNEQ_SWT = zero; - //kxxMzzFromfcNEQ_SWT = zero; - //kxyFromfcNEQ_SET = zero; - //kyzFromfcNEQ_SET = zero; - //kxzFromfcNEQ_SET = zero; - //kxxMyyFromfcNEQ_SET = zero; - //kxxMzzFromfcNEQ_SET = zero; - //kxyFromfcNEQ_SEB = zero; - //kyzFromfcNEQ_SEB = zero; - //kxzFromfcNEQ_SEB = zero; - //kxxMyyFromfcNEQ_SEB = zero; - //kxxMzzFromfcNEQ_SEB = zero; - //kxyFromfcNEQ_NWB = zero; - //kyzFromfcNEQ_NWB = zero; - //kxzFromfcNEQ_NWB = zero; - //kxxMyyFromfcNEQ_NWB = zero; - //kxxMzzFromfcNEQ_NWB = zero; - //kxyFromfcNEQ_NWT = zero; - //kyzFromfcNEQ_NWT = zero; - //kxzFromfcNEQ_NWT = zero; - //kxxMyyFromfcNEQ_NWT = zero; - //kxxMzzFromfcNEQ_NWT = zero; - //kxyFromfcNEQ_NET = zero; - //kyzFromfcNEQ_NET = zero; - //kxzFromfcNEQ_NET = zero; - //kxxMyyFromfcNEQ_NET = zero; - //kxxMzzFromfcNEQ_NET = zero; - //kxyFromfcNEQ_NEB = zero; - //kyzFromfcNEQ_NEB = zero; - //kxzFromfcNEQ_NEB = zero; - //kxxMyyFromfcNEQ_NEB = zero; - //kxxMzzFromfcNEQ_NEB = zero; - ////////////////////////////////////////////////////////////////////////// - //3 - ////////////////////////////////////////////////////////////////////////// - a0 = (-kxxMyyFromfcNEQ_NEB - kxxMyyFromfcNEQ_NET + kxxMyyFromfcNEQ_NWB + kxxMyyFromfcNEQ_NWT - - kxxMyyFromfcNEQ_SEB - kxxMyyFromfcNEQ_SET + kxxMyyFromfcNEQ_SWB + kxxMyyFromfcNEQ_SWT - - kxxMzzFromfcNEQ_NEB - kxxMzzFromfcNEQ_NET + kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_NWT - - kxxMzzFromfcNEQ_SEB - kxxMzzFromfcNEQ_SET + kxxMzzFromfcNEQ_SWB + kxxMzzFromfcNEQ_SWT - - c2o1*kxyFromfcNEQ_NEB - c2o1*kxyFromfcNEQ_NET - c2o1*kxyFromfcNEQ_NWB - c2o1*kxyFromfcNEQ_NWT + - c2o1*kxyFromfcNEQ_SEB + c2o1*kxyFromfcNEQ_SET + c2o1*kxyFromfcNEQ_SWB + c2o1*kxyFromfcNEQ_SWT + - c2o1*kxzFromfcNEQ_NEB - c2o1*kxzFromfcNEQ_NET + c2o1*kxzFromfcNEQ_NWB - c2o1*kxzFromfcNEQ_NWT + - c2o1*kxzFromfcNEQ_SEB - c2o1*kxzFromfcNEQ_SET + c2o1*kxzFromfcNEQ_SWB - c2o1*kxzFromfcNEQ_SWT + - c8o1*vx1_NEB + c8o1*vx1_NET + c8o1*vx1_NWB + c8o1*vx1_NWT + c8o1*vx1_SEB + - c8o1*vx1_SET + c8o1*vx1_SWB + c8o1*vx1_SWT + c2o1*vx2_NEB + c2o1*vx2_NET - - c2o1*vx2_NWB - c2o1*vx2_NWT - c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB + - c2o1*vx2_SWT - c2o1*vx3_NEB + c2o1*vx3_NET + c2o1*vx3_NWB - c2o1*vx3_NWT - - c2o1*vx3_SEB + c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)/c64o1; - b0 = (c2o1*kxxMyyFromfcNEQ_NEB + c2o1*kxxMyyFromfcNEQ_NET + c2o1*kxxMyyFromfcNEQ_NWB + c2o1*kxxMyyFromfcNEQ_NWT - - c2o1*kxxMyyFromfcNEQ_SEB - c2o1*kxxMyyFromfcNEQ_SET - c2o1*kxxMyyFromfcNEQ_SWB - c2o1*kxxMyyFromfcNEQ_SWT - - kxxMzzFromfcNEQ_NEB - kxxMzzFromfcNEQ_NET - kxxMzzFromfcNEQ_NWB - kxxMzzFromfcNEQ_NWT + - kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_SET + kxxMzzFromfcNEQ_SWB + kxxMzzFromfcNEQ_SWT - - c2o1*kxyFromfcNEQ_NEB - c2o1*kxyFromfcNEQ_NET + c2o1*kxyFromfcNEQ_NWB + c2o1*kxyFromfcNEQ_NWT - - c2o1*kxyFromfcNEQ_SEB - c2o1*kxyFromfcNEQ_SET + c2o1*kxyFromfcNEQ_SWB + c2o1*kxyFromfcNEQ_SWT + - c2o1*kyzFromfcNEQ_NEB - c2o1*kyzFromfcNEQ_NET + c2o1*kyzFromfcNEQ_NWB - c2o1*kyzFromfcNEQ_NWT + - c2o1*kyzFromfcNEQ_SEB - c2o1*kyzFromfcNEQ_SET + c2o1*kyzFromfcNEQ_SWB - c2o1*kyzFromfcNEQ_SWT + - c2o1*vx1_NEB + c2o1*vx1_NET - c2o1*vx1_NWB - c2o1*vx1_NWT - - c2o1*vx1_SEB - c2o1*vx1_SET + c2o1*vx1_SWB + c2o1*vx1_SWT + - c8o1*vx2_NEB + c8o1*vx2_NET + c8o1*vx2_NWB + c8o1*vx2_NWT + - c8o1*vx2_SEB + c8o1*vx2_SET + c8o1*vx2_SWB + c8o1*vx2_SWT - - c2o1*vx3_NEB + c2o1*vx3_NET - c2o1*vx3_NWB + c2o1*vx3_NWT + - c2o1*vx3_SEB - c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)/c64o1; - - //b0 = ((eight*vx2_NEB + eight*vx2_SWT) + (eight*vx2_NET + eight*vx2_SWB) + (eight*vx2_NWB + eight*vx2_SET) + (eight*vx2_NWT + eight*vx2_SEB))/sixtyfour; - - c0 = (kxxMyyFromfcNEQ_NEB - kxxMyyFromfcNEQ_NET + kxxMyyFromfcNEQ_NWB - kxxMyyFromfcNEQ_NWT + - kxxMyyFromfcNEQ_SEB - kxxMyyFromfcNEQ_SET + kxxMyyFromfcNEQ_SWB - kxxMyyFromfcNEQ_SWT - - c2o1*kxxMzzFromfcNEQ_NEB + c2o1*kxxMzzFromfcNEQ_NET - c2o1*kxxMzzFromfcNEQ_NWB + c2o1*kxxMzzFromfcNEQ_NWT - - c2o1*kxxMzzFromfcNEQ_SEB + c2o1*kxxMzzFromfcNEQ_SET - c2o1*kxxMzzFromfcNEQ_SWB + c2o1*kxxMzzFromfcNEQ_SWT - - c2o1*kxzFromfcNEQ_NEB - c2o1*kxzFromfcNEQ_NET + c2o1*kxzFromfcNEQ_NWB + c2o1*kxzFromfcNEQ_NWT - - c2o1*kxzFromfcNEQ_SEB - c2o1*kxzFromfcNEQ_SET + c2o1*kxzFromfcNEQ_SWB + c2o1*kxzFromfcNEQ_SWT - - c2o1*kyzFromfcNEQ_NEB - c2o1*kyzFromfcNEQ_NET - c2o1*kyzFromfcNEQ_NWB - c2o1*kyzFromfcNEQ_NWT + - c2o1*kyzFromfcNEQ_SEB + c2o1*kyzFromfcNEQ_SET + c2o1*kyzFromfcNEQ_SWB + c2o1*kyzFromfcNEQ_SWT - - c2o1*vx1_NEB + c2o1*vx1_NET + c2o1*vx1_NWB - c2o1*vx1_NWT - - c2o1*vx1_SEB + c2o1*vx1_SET + c2o1*vx1_SWB - c2o1*vx1_SWT - - c2o1*vx2_NEB + c2o1*vx2_NET - c2o1*vx2_NWB + c2o1*vx2_NWT + - c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB - c2o1*vx2_SWT + - c8o1*vx3_NEB + c8o1*vx3_NET + c8o1*vx3_NWB + c8o1*vx3_NWT + - c8o1*vx3_SEB + c8o1*vx3_SET + c8o1*vx3_SWB + c8o1*vx3_SWT)/c64o1; - ax = (vx1_NEB + vx1_NET - vx1_NWB - vx1_NWT + vx1_SEB + vx1_SET - vx1_SWB - vx1_SWT)/c4o1; - bx = (vx2_NEB + vx2_NET - vx2_NWB - vx2_NWT + vx2_SEB + vx2_SET - vx2_SWB - vx2_SWT)/c4o1; - //bx = ((vx2_NEB - vx2_SWT) + (vx2_NET - vx2_SWB) + (vx2_SET - vx2_NWB) + (vx2_SEB - vx2_NWT))/four; - cx = (vx3_NEB + vx3_NET - vx3_NWB - vx3_NWT + vx3_SEB + vx3_SET - vx3_SWB - vx3_SWT)/c4o1; - axx= (kxxMyyFromfcNEQ_NEB + kxxMyyFromfcNEQ_NET - kxxMyyFromfcNEQ_NWB - kxxMyyFromfcNEQ_NWT + - kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_SET - kxxMyyFromfcNEQ_SWB - kxxMyyFromfcNEQ_SWT + - kxxMzzFromfcNEQ_NEB + kxxMzzFromfcNEQ_NET - kxxMzzFromfcNEQ_NWB - kxxMzzFromfcNEQ_NWT + - kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_SET - kxxMzzFromfcNEQ_SWB - kxxMzzFromfcNEQ_SWT + - c2o1*vx2_NEB + c2o1*vx2_NET - c2o1*vx2_NWB - c2o1*vx2_NWT - - c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB + c2o1*vx2_SWT - - c2o1*vx3_NEB + c2o1*vx3_NET + c2o1*vx3_NWB - c2o1*vx3_NWT - - c2o1*vx3_SEB + c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)/c16o1; - bxx= (kxyFromfcNEQ_NEB + kxyFromfcNEQ_NET - kxyFromfcNEQ_NWB - kxyFromfcNEQ_NWT + - kxyFromfcNEQ_SEB + kxyFromfcNEQ_SET - kxyFromfcNEQ_SWB - kxyFromfcNEQ_SWT - - c2o1*vx1_NEB - c2o1*vx1_NET + c2o1*vx1_NWB + c2o1*vx1_NWT + - c2o1*vx1_SEB + c2o1*vx1_SET - c2o1*vx1_SWB - c2o1*vx1_SWT)/c8o1; - cxx= (kxzFromfcNEQ_NEB + kxzFromfcNEQ_NET - kxzFromfcNEQ_NWB - kxzFromfcNEQ_NWT + - kxzFromfcNEQ_SEB + kxzFromfcNEQ_SET - kxzFromfcNEQ_SWB - kxzFromfcNEQ_SWT + - c2o1*vx1_NEB - c2o1*vx1_NET - c2o1*vx1_NWB + c2o1*vx1_NWT + - c2o1*vx1_SEB - c2o1*vx1_SET - c2o1*vx1_SWB + c2o1*vx1_SWT)/c8o1; - ay = (vx1_NEB + vx1_NET + vx1_NWB + vx1_NWT - vx1_SEB - vx1_SET - vx1_SWB - vx1_SWT)/c4o1; - by = (vx2_NEB + vx2_NET + vx2_NWB + vx2_NWT - vx2_SEB - vx2_SET - vx2_SWB - vx2_SWT)/c4o1; - cy = (vx3_NEB + vx3_NET + vx3_NWB + vx3_NWT - vx3_SEB - vx3_SET - vx3_SWB - vx3_SWT)/c4o1; - ayy= (kxyFromfcNEQ_NEB + kxyFromfcNEQ_NET + kxyFromfcNEQ_NWB + kxyFromfcNEQ_NWT - - kxyFromfcNEQ_SEB - kxyFromfcNEQ_SET - kxyFromfcNEQ_SWB - kxyFromfcNEQ_SWT - - c2o1*vx2_NEB - c2o1*vx2_NET + c2o1*vx2_NWB + c2o1*vx2_NWT + - c2o1*vx2_SEB + c2o1*vx2_SET - c2o1*vx2_SWB - c2o1*vx2_SWT)/c8o1; - byy= (-c2o1*kxxMyyFromfcNEQ_NEB - c2o1*kxxMyyFromfcNEQ_NET - c2o1*kxxMyyFromfcNEQ_NWB - c2o1*kxxMyyFromfcNEQ_NWT + - c2o1*kxxMyyFromfcNEQ_SEB + c2o1*kxxMyyFromfcNEQ_SET + c2o1*kxxMyyFromfcNEQ_SWB + c2o1*kxxMyyFromfcNEQ_SWT + - kxxMzzFromfcNEQ_NEB + kxxMzzFromfcNEQ_NET + kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_NWT - - kxxMzzFromfcNEQ_SEB - kxxMzzFromfcNEQ_SET - kxxMzzFromfcNEQ_SWB - kxxMzzFromfcNEQ_SWT + - c2o1*vx1_NEB + c2o1*vx1_NET - c2o1*vx1_NWB - c2o1*vx1_NWT - - c2o1*vx1_SEB - c2o1*vx1_SET + c2o1*vx1_SWB + c2o1*vx1_SWT - - c2o1*vx3_NEB + c2o1*vx3_NET - c2o1*vx3_NWB + c2o1*vx3_NWT + - c2o1*vx3_SEB - c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)/c16o1; - cyy= (kyzFromfcNEQ_NEB + kyzFromfcNEQ_NET + kyzFromfcNEQ_NWB + kyzFromfcNEQ_NWT - - kyzFromfcNEQ_SEB - kyzFromfcNEQ_SET - kyzFromfcNEQ_SWB - kyzFromfcNEQ_SWT + - c2o1*vx2_NEB - c2o1*vx2_NET + c2o1*vx2_NWB - c2o1*vx2_NWT - - c2o1*vx2_SEB + c2o1*vx2_SET - c2o1*vx2_SWB + c2o1*vx2_SWT)/c8o1; - az = (-vx1_NEB + vx1_NET - vx1_NWB + vx1_NWT - vx1_SEB + vx1_SET - vx1_SWB + vx1_SWT)/c4o1; - //bz = (-vx2_NEB + vx2_NET - vx2_NWB + vx2_NWT - vx2_SEB + vx2_SET - vx2_SWB + vx2_SWT)/four; - bz = ((vx2_SWT - vx2_NEB) + (vx2_NET - vx2_SWB) + (vx2_SET - vx2_NWB) + (vx2_NWT - vx2_SEB))/c4o1; - cz = (-vx3_NEB + vx3_NET - vx3_NWB + vx3_NWT - vx3_SEB + vx3_SET - vx3_SWB + vx3_SWT)/c4o1; - azz= (-kxzFromfcNEQ_NEB + kxzFromfcNEQ_NET - kxzFromfcNEQ_NWB + kxzFromfcNEQ_NWT - - kxzFromfcNEQ_SEB + kxzFromfcNEQ_SET - kxzFromfcNEQ_SWB + kxzFromfcNEQ_SWT + - c2o1*vx3_NEB - c2o1*vx3_NET - c2o1*vx3_NWB + c2o1*vx3_NWT + - c2o1*vx3_SEB - c2o1*vx3_SET - c2o1*vx3_SWB + c2o1*vx3_SWT)/c8o1; - bzz= (-kyzFromfcNEQ_NEB + kyzFromfcNEQ_NET - kyzFromfcNEQ_NWB + kyzFromfcNEQ_NWT - - kyzFromfcNEQ_SEB + kyzFromfcNEQ_SET - kyzFromfcNEQ_SWB + kyzFromfcNEQ_SWT + - c2o1*vx3_NEB - c2o1*vx3_NET + c2o1*vx3_NWB - c2o1*vx3_NWT - - c2o1*vx3_SEB + c2o1*vx3_SET - c2o1*vx3_SWB + c2o1*vx3_SWT)/c8o1; - czz= (-kxxMyyFromfcNEQ_NEB + kxxMyyFromfcNEQ_NET - kxxMyyFromfcNEQ_NWB + kxxMyyFromfcNEQ_NWT - - kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_SET - kxxMyyFromfcNEQ_SWB + kxxMyyFromfcNEQ_SWT + - c2o1*kxxMzzFromfcNEQ_NEB - c2o1*kxxMzzFromfcNEQ_NET + c2o1*kxxMzzFromfcNEQ_NWB - c2o1*kxxMzzFromfcNEQ_NWT + - c2o1*kxxMzzFromfcNEQ_SEB - c2o1*kxxMzzFromfcNEQ_SET + c2o1*kxxMzzFromfcNEQ_SWB - c2o1*kxxMzzFromfcNEQ_SWT - - c2o1*vx1_NEB + c2o1*vx1_NET + c2o1*vx1_NWB - c2o1*vx1_NWT - - c2o1*vx1_SEB + c2o1*vx1_SET + c2o1*vx1_SWB - c2o1*vx1_SWT - - c2o1*vx2_NEB + c2o1*vx2_NET - c2o1*vx2_NWB + c2o1*vx2_NWT + - c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB - c2o1*vx2_SWT)/c16o1; - axy= (vx1_NEB + vx1_NET - vx1_NWB - vx1_NWT - vx1_SEB - vx1_SET + vx1_SWB + vx1_SWT)/c2o1; - bxy= (vx2_NEB + vx2_NET - vx2_NWB - vx2_NWT - vx2_SEB - vx2_SET + vx2_SWB + vx2_SWT)/c2o1; - cxy= (vx3_NEB + vx3_NET - vx3_NWB - vx3_NWT - vx3_SEB - vx3_SET + vx3_SWB + vx3_SWT)/c2o1; - axz= (-vx1_NEB + vx1_NET + vx1_NWB - vx1_NWT - vx1_SEB + vx1_SET + vx1_SWB - vx1_SWT)/c2o1; - bxz= (-vx2_NEB + vx2_NET + vx2_NWB - vx2_NWT - vx2_SEB + vx2_SET + vx2_SWB - vx2_SWT)/c2o1; - cxz= (-vx3_NEB + vx3_NET + vx3_NWB - vx3_NWT - vx3_SEB + vx3_SET + vx3_SWB - vx3_SWT)/c2o1; - ayz= (-vx1_NEB + vx1_NET - vx1_NWB + vx1_NWT + vx1_SEB - vx1_SET + vx1_SWB - vx1_SWT)/c2o1; - byz= (-vx2_NEB + vx2_NET - vx2_NWB + vx2_NWT + vx2_SEB - vx2_SET + vx2_SWB - vx2_SWT)/c2o1; - cyz= (-vx3_NEB + vx3_NET - vx3_NWB + vx3_NWT + vx3_SEB - vx3_SET + vx3_SWB - vx3_SWT)/c2o1; - axyz=-vx1_NEB + vx1_NET + vx1_NWB - vx1_NWT + vx1_SEB - vx1_SET - vx1_SWB + vx1_SWT; - bxyz=-vx2_NEB + vx2_NET + vx2_NWB - vx2_NWT + vx2_SEB - vx2_SET - vx2_SWB + vx2_SWT; - cxyz=-vx3_NEB + vx3_NET + vx3_NWB - vx3_NWT + vx3_SEB - vx3_SET - vx3_SWB + vx3_SWT; - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real kxyAverage =(kxyFromfcNEQ_SWB+ - kxyFromfcNEQ_SWT+ - kxyFromfcNEQ_SET+ - kxyFromfcNEQ_SEB+ - kxyFromfcNEQ_NWB+ - kxyFromfcNEQ_NWT+ - kxyFromfcNEQ_NET+ - kxyFromfcNEQ_NEB)*c1o8-(ay+bx); - real kyzAverage =(kyzFromfcNEQ_SWB+ - kyzFromfcNEQ_SWT+ - kyzFromfcNEQ_SET+ - kyzFromfcNEQ_SEB+ - kyzFromfcNEQ_NWB+ - kyzFromfcNEQ_NWT+ - kyzFromfcNEQ_NET+ - kyzFromfcNEQ_NEB)*c1o8-(bz+cy); - real kxzAverage =(kxzFromfcNEQ_SWB+ - kxzFromfcNEQ_SWT+ - kxzFromfcNEQ_SET+ - kxzFromfcNEQ_SEB+ - kxzFromfcNEQ_NWB+ - kxzFromfcNEQ_NWT+ - kxzFromfcNEQ_NET+ - kxzFromfcNEQ_NEB)*c1o8-(az+cx); - real kxxMyyAverage =(kxxMyyFromfcNEQ_SWB+ - kxxMyyFromfcNEQ_SWT+ - kxxMyyFromfcNEQ_SET+ - kxxMyyFromfcNEQ_SEB+ - kxxMyyFromfcNEQ_NWB+ - kxxMyyFromfcNEQ_NWT+ - kxxMyyFromfcNEQ_NET+ - kxxMyyFromfcNEQ_NEB)*c1o8-(ax-by); - real kxxMzzAverage =(kxxMzzFromfcNEQ_SWB+ - kxxMzzFromfcNEQ_SWT+ - kxxMzzFromfcNEQ_SET+ - kxxMzzFromfcNEQ_SEB+ - kxxMzzFromfcNEQ_NWB+ - kxxMzzFromfcNEQ_NWT+ - kxxMzzFromfcNEQ_NET+ - kxxMzzFromfcNEQ_NEB)*c1o8-(ax-cz); - - - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //Press - //d0 = ( press_NEB + press_NET + press_NWB + press_NWT + press_SEB + press_SET + press_SWB + press_SWT) * c1o8; - //dx = ( press_NEB + press_NET - press_NWB - press_NWT + press_SEB + press_SET - press_SWB - press_SWT) * c1o4; - //dy = ( press_NEB + press_NET + press_NWB + press_NWT - press_SEB - press_SET - press_SWB - press_SWT) * c1o4; - //dz = (-press_NEB + press_NET - press_NWB + press_NWT - press_SEB + press_SET - press_SWB + press_SWT) * c1o4; - //dxy = ( press_NEB + press_NET - press_NWB - press_NWT - press_SEB - press_SET + press_SWB + press_SWT) * c1o2; - //dxz = (-press_NEB + press_NET + press_NWB - press_NWT - press_SEB + press_SET + press_SWB - press_SWT) * c1o2; - //dyz = (-press_NEB + press_NET - press_NWB + press_NWT + press_SEB - press_SET + press_SWB - press_SWT) * c1o2; - //dxyz = -press_NEB + press_NET + press_NWB - press_NWT + press_SEB - press_SET - press_SWB + press_SWT; - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho - d0 = ( drho_NEB + drho_NET + drho_NWB + drho_NWT + drho_SEB + drho_SET + drho_SWB + drho_SWT) * c1o8; - dx = ( drho_NEB + drho_NET - drho_NWB - drho_NWT + drho_SEB + drho_SET - drho_SWB - drho_SWT) * c1o4; - dy = ( drho_NEB + drho_NET + drho_NWB + drho_NWT - drho_SEB - drho_SET - drho_SWB - drho_SWT) * c1o4; - dz = (-drho_NEB + drho_NET - drho_NWB + drho_NWT - drho_SEB + drho_SET - drho_SWB + drho_SWT) * c1o4; - dxy = ( drho_NEB + drho_NET - drho_NWB - drho_NWT - drho_SEB - drho_SET + drho_SWB + drho_SWT) * c1o2; - dxz = (-drho_NEB + drho_NET + drho_NWB - drho_NWT - drho_SEB + drho_SET + drho_SWB - drho_SWT) * c1o2; - dyz = (-drho_NEB + drho_NET - drho_NWB + drho_NWT + drho_SEB - drho_SET + drho_SWB - drho_SWT) * c1o2; - dxyz = -drho_NEB + drho_NET + drho_NWB - drho_NWT + drho_SEB - drho_SET - drho_SWB + drho_SWT; - // d0 = zero; - //dx = zero; - //dy = zero; - //dz = zero; - //dxy = zero; - //dxz = zero; - //dyz = zero; - //dxyz = zero; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - // Bernd das Brot - // - // X------X - // | | x---x - // | ---+-+-> | ----> off-vector - // | | x---x - // X------X - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - a0 = a0 + xoff * ax + yoff * ay + zoff * az + xoff_sq * axx + yoff_sq * ayy + zoff_sq * azz + xoff*yoff*axy + xoff*zoff*axz + yoff*zoff*ayz; - ax = ax + c2o1 * xoff * axx + yoff * axy + zoff * axz; - ay = ay + c2o1 * yoff * ayy + xoff * axy + zoff * ayz; - az = az + c2o1 * zoff * azz + xoff * axz + yoff * ayz; - b0 = b0 + xoff * bx + yoff * by + zoff * bz + xoff_sq * bxx + yoff_sq * byy + zoff_sq * bzz + xoff*yoff*bxy + xoff*zoff*bxz + yoff*zoff*byz; - bx = bx + c2o1 * xoff * bxx + yoff * bxy + zoff * bxz; - by = by + c2o1 * yoff * byy + xoff * bxy + zoff * byz; - bz = bz + c2o1 * zoff * bzz + xoff * bxz + yoff * byz; - c0 = c0 + xoff * cx + yoff * cy + zoff * cz + xoff_sq * cxx + yoff_sq * cyy + zoff_sq * czz + xoff*yoff*cxy + xoff*zoff*cxz + yoff*zoff*cyz; - cx = cx + c2o1 * xoff * cxx + yoff * cxy + zoff * cxz; - cy = cy + c2o1 * yoff * cyy + xoff * cxy + zoff * cyz; - cz = cz + c2o1 * zoff * czz + xoff * cxz + yoff * cyz; - d0 = d0 + xoff * dx + yoff * dy + zoff * dz + xoff*yoff*dxy + xoff*zoff*dxz + yoff*zoff*dyz; - dx = dx + yoff * dxy + zoff * dxz; - dy = dy + xoff * dxy + zoff * dyz; - dz = dz + xoff * dxz + yoff * dyz; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // FIX /////////////////////////////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //AAAAAAAAAAAAHHHHHHHHHHHH!!!!! Mieser Test!!! - //b0= bx= by= bz= bxx= byy= bzz= bxy= bxz= byz= c0= cx= cy= cz= cxx= cyy= czz= cxy= cxz= cyz= axyz= bxyz= cxyz=zero; - //a0=zero; - //ax=zero; - //ay=zero; - //az=zero; - //axx=zero; - //ayy=zero; - //azz=zero; - //axy=zero; - //axz=zero; - //ayz=zero; - //b0=zero; - //bx=zero; - //by=zero; - //bz=zero; - //bxx=zero; - //byy=zero; - //bzz=zero; - //bxy=zero; - //bxz=zero; - //byz=zero; - //c0=zero; - //cx=zero; - //cy=zero; - //cz=zero; - //cxx=zero; - //cyy=zero; - //czz=zero; - //cxy=zero; - //cxz=zero; - //cyz=zero; - //axyz=zero; - //bxyz=zero; - //cxyz=zero; - //ax= ay= az= axx= ayy= azz= axy= axz= ayz= bx= by= bz= bxx= byy= bzz= bxy= bxz= byz= cx= cy= cz= cxx= cyy= czz= cxy= cxz= cyz= axyz= bxyz= cxyz=zero; - //a0=zero; - //b0=zero; - //c0=c1o100; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real mfcbb = c0o1; - real mfabb = c0o1; - real mfbcb = c0o1; - real mfbab = c0o1; - real mfbbc = c0o1; - real mfbba = c0o1; - real mfccb = c0o1; - real mfaab = c0o1; - real mfcab = c0o1; - real mfacb = c0o1; - real mfcbc = c0o1; - real mfaba = c0o1; - real mfcba = c0o1; - real mfabc = c0o1; - real mfbcc = c0o1; - real mfbaa = c0o1; - real mfbca = c0o1; - real mfbac = c0o1; - real mfbbb = c0o1; - real mfccc = c0o1; - real mfaac = c0o1; - real mfcac = c0o1; - real mfacc = c0o1; - real mfcca = c0o1; - real mfaaa = c0o1; - real mfcaa = c0o1; - real mfaca = c0o1; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real m0, m1, m2, vvx, vvy, vvz, vx2, vy2, vz2, oMdrho; - real mxxPyyPzz, mxxMyy, mxxMzz, mxxyPyzz, mxxyMyzz, mxxzPyyz, mxxzMyyz, mxyyPxzz, mxyyMxzz; - //real qudricLimit = c1o100;//ganz schlechte Idee -> muss global sein - //real O3 = two - o; - //real residu, residutmp; - //residutmp = zero;// /*-*/ c2o9 * (1./o - c1o2) * eps_new * eps_new; - real NeqOn = c1o1;//zero;//one; //.... one = on ..... zero = off - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position SWB -0.25f, -0.25f, -0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = -c1o4; - y = -c1o4; - z = -c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //real mxoff = -xoff; - //real myoff = -yoff; - //real mzoff = -zoff; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho = c3o64*drho_NEB+c1o64*drho_NET+c9o64*drho_NWB+c3o64*drho_NWT+c9o64*drho_SEB+c3o64*drho_SET+c27o64*drho_SWB+c9o64*drho_SWT; - //press = press_SWT * (c9o64 + c3o16 * mxoff + c3o16 * myoff - c9o16 * mzoff) + - // press_NWT * (c3o64 + c1o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + - // press_SET * (c3o64 - c3o16 * mxoff + c1o16 * myoff - c3o16 * mzoff) + - // press_NET * (c1o64 - c1o16 * mxoff - c1o16 * myoff - c1o16 * mzoff) + - // press_NEB * (c3o64 - c3o16 * mxoff - c3o16 * myoff + c1o16 * mzoff) + - // press_NWB * (c9o64 + c3o16 * mxoff - c9o16 * myoff + c3o16 * mzoff) + - // press_SEB * (c9o64 - c9o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + - // press_SWB * (c27o64 + c9o16 * mxoff + c9o16 * myoff + c9o16 * mzoff); - //drho = drho_SWT * (c9o64 + c3o16 * xoff + c3o16 * yoff - c9o16 * zoff) + - // drho_NWT * (c3o64 + c1o16 * xoff - c3o16 * yoff - c3o16 * zoff) + - // drho_SET * (c3o64 - c3o16 * xoff + c1o16 * yoff - c3o16 * zoff) + - // drho_NET * (c1o64 - c1o16 * xoff - c1o16 * yoff - c1o16 * zoff) + - // drho_NEB * (c3o64 - c3o16 * xoff - c3o16 * yoff + c1o16 * zoff) + - // drho_NWB * (c9o64 + c3o16 * xoff - c9o16 * yoff + c3o16 * zoff) + - // drho_SEB * (c9o64 - c9o16 * xoff + c3o16 * yoff + c3o16 * zoff) + - // drho_SWB * (c27o64 + c9o16 * xoff + c9o16 * yoff + c9o16 * zoff); - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; - vvx = a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz; - vvy = b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz; - vvz = c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz; - //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); - //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); - //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1 - mfaaa; - - //2.f - // linear combinations - mxxPyyPzz = mfaaa; - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o; - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); - //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mfbbb = c0o1; - - //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); - //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); - //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); - //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyPyzz = c0o1; - - //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); - //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyMyzz = c0o1; - - //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); - //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); - //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzPyyz = c0o1; - - //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); - //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzMyyz = c0o1; - - //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); - //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); - //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyPxzz = c0o1; - - //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); - //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyMxzz = c0o1; - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //index 0 - k0zero= posFSWB[k]; - k0w = neighborFX[k0zero]; - k0s = neighborFY[k0zero]; - k0b = neighborFZ[k0zero]; - k0sw = neighborFY[k0w]; - k0bw = neighborFZ[k0w]; - k0bs = neighborFZ[k0s]; - k0bsw = neighborFZ[k0sw]; - ////////////////////////////////////////////////////////////////////////// - //index - kzero= k0zero; - kw = k0w; - ks = k0s; - kb = k0b; - ksw = k0sw; - kbw = k0bw; - kbs = k0bs; - kbsw = k0bsw; - //////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - feF[kzero] = mfcbb; - fwF[kw] = mfabb; - fnF[kzero] = mfbcb; - fsF[ks] = mfbab; - ftF[kzero] = mfbbc; - fbF[kb] = mfbba; - fneF[kzero] = mfccb; - fswF[ksw] = mfaab; - fseF[ks] = mfcab; - fnwF[kw] = mfacb; - fteF[kzero] = mfcbc; - fbwF[kbw] = mfaba; - fbeF[kb] = mfcba; - ftwF[kw] = mfabc; - ftnF[kzero] = mfbcc; - fbsF[kbs] = mfbaa; - fbnF[kb] = mfbca; - ftsF[ks] = mfbac; - fzeroF[kzero] = mfbbb; - ftneF[kzero] = mfccc; - ftseF[ks] = mfcac; - fbneF[kb] = mfcca; - fbseF[kbs] = mfcaa; - ftnwF[kw] = mfacc; - ftswF[ksw] = mfaac; - fbnwF[kbw] = mfaca; - fbswF[kbsw] = mfaaa; - //////////////////////////////////////////////////////////////////////////////////// - - //reset - mfcbb = c0o1; - mfabb = c0o1; - mfbcb = c0o1; - mfbab = c0o1; - mfbbc = c0o1; - mfbba = c0o1; - mfccb = c0o1; - mfaab = c0o1; - mfcab = c0o1; - mfacb = c0o1; - mfcbc = c0o1; - mfaba = c0o1; - mfcba = c0o1; - mfabc = c0o1; - mfbcc = c0o1; - mfbaa = c0o1; - mfbca = c0o1; - mfbac = c0o1; - mfbbb = c0o1; - mfccc = c0o1; - mfaac = c0o1; - mfcac = c0o1; - mfacc = c0o1; - mfcca = c0o1; - mfaaa = c0o1; - mfcaa = c0o1; - mfaca = c0o1; - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position SWT -0.25f, -0.25f, 0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = -c1o4; - y = -c1o4; - z = c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho = c1o64*drho_NEB+c3o64*drho_NET+c3o64*drho_NWB+c9o64*drho_NWT+c3o64*drho_SEB+c9o64*drho_SET+c9o64*drho_SWB+c27o64*drho_SWT; - //press = press_SWT * (c27o64 + c9o16 * mxoff + c9o16 * myoff - c9o16 * mzoff) + - // press_NWT * (c9o64 + c3o16 * mxoff - c9o16 * myoff - c3o16 * mzoff) + - // press_SET * (c9o64 - c9o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + - // press_NET * (c3o64 - c3o16 * mxoff - c3o16 * myoff - c1o16 * mzoff) + - // press_NEB * (c1o64 - c1o16 * mxoff - c1o16 * myoff + c1o16 * mzoff) + - // press_NWB * (c3o64 + c1o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + - // press_SEB * (c3o64 - c3o16 * mxoff + c1o16 * myoff + c3o16 * mzoff) + - // press_SWB * (c9o64 + c3o16 * mxoff + c3o16 * myoff + c9o16 * mzoff); - //drho = drho_SWT * (c27o64 + c9o16 * xoff + c9o16 * yoff - c9o16 * zoff) + - // drho_NWT * (c9o64 + c3o16 * xoff - c9o16 * yoff - c3o16 * zoff) + - // drho_SET * (c9o64 - c9o16 * xoff + c3o16 * yoff - c3o16 * zoff) + - // drho_NET * (c3o64 - c3o16 * xoff - c3o16 * yoff - c1o16 * zoff) + - // drho_NEB * (c1o64 - c1o16 * xoff - c1o16 * yoff + c1o16 * zoff) + - // drho_NWB * (c3o64 + c1o16 * xoff - c3o16 * yoff + c3o16 * zoff) + - // drho_SEB * (c3o64 - c3o16 * xoff + c1o16 * yoff + c3o16 * zoff) + - // drho_SWB * (c9o64 + c3o16 * xoff + c3o16 * yoff + c9o16 * zoff); - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; - vvx = a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz; - vvy = b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz; - vvz = c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz; - //vvx = a0 + c1o4*(-ax - ay + az) + c1o16*(axx + axy - axz + ayy - ayz + azz) + c1o64*( axyz); - //vvy = b0 + c1o4*(-bx - by + bz) + c1o16*(bxx + bxy - bxz + byy - byz + bzz) + c1o64*( bxyz); - //vvz = c0 + c1o4*(-cx - cy + cz) + c1o16*(cxx + cxy - cxz + cyy - cyz + czz) + c1o64*( cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1 - mfaaa; - - //two - // linear combinations - mxxPyyPzz = mfaaa; - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o; - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); - //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mfbbb = c0o1; - - //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); - //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); - //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); - //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyPyzz = c0o1; - - //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); - //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyMyzz = c0o1; - - //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); - //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); - //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzPyyz = c0o1; - - //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); - //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzMyyz = c0o1; - - //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); - //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); - //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyPxzz = c0o1; - - //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); - //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyMxzz = c0o1; - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - //index - kzero= kb; - kw = kbw; - ks = kbs; - kb = neighborFZ[kb]; - ksw = kbsw; - kbw = neighborFZ[kbw]; - kbs = neighborFZ[kbs]; - kbsw = neighborFZ[kbsw]; - //////////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - feF[kzero] = mfcbb; - fwF[kw] = mfabb; - fnF[kzero] = mfbcb; - fsF[ks] = mfbab; - ftF[kzero] = mfbbc; - fbF[kb] = mfbba; - fneF[kzero] = mfccb; - fswF[ksw] = mfaab; - fseF[ks] = mfcab; - fnwF[kw] = mfacb; - fteF[kzero] = mfcbc; - fbwF[kbw] = mfaba; - fbeF[kb] = mfcba; - ftwF[kw] = mfabc; - ftnF[kzero] = mfbcc; - fbsF[kbs] = mfbaa; - fbnF[kb] = mfbca; - ftsF[ks] = mfbac; - fzeroF[kzero] = mfbbb; - ftneF[kzero] = mfccc; - ftseF[ks] = mfcac; - fbneF[kb] = mfcca; - fbseF[kbs] = mfcaa; - ftnwF[kw] = mfacc; - ftswF[ksw] = mfaac; - fbnwF[kbw] = mfaca; - fbswF[kbsw] = mfaaa; - //////////////////////////////////////////////////////////////////////////////////// - - - //reset - mfcbb = c0o1; - mfabb = c0o1; - mfbcb = c0o1; - mfbab = c0o1; - mfbbc = c0o1; - mfbba = c0o1; - mfccb = c0o1; - mfaab = c0o1; - mfcab = c0o1; - mfacb = c0o1; - mfcbc = c0o1; - mfaba = c0o1; - mfcba = c0o1; - mfabc = c0o1; - mfbcc = c0o1; - mfbaa = c0o1; - mfbca = c0o1; - mfbac = c0o1; - mfbbb = c0o1; - mfccc = c0o1; - mfaac = c0o1; - mfcac = c0o1; - mfacc = c0o1; - mfcca = c0o1; - mfaaa = c0o1; - mfcaa = c0o1; - mfaca = c0o1; - - - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position SET 0.25f, -0.25f, 0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = c1o4; - y = -c1o4; - z = c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho =c3o64*drho_NEB+c9o64*drho_NET+c1o64*drho_NWB+c3o64*drho_NWT+c9o64*drho_SEB+c27o64*drho_SET+c3o64*drho_SWB+c9o64*drho_SWT; - //press = press_SET * (c27o64 - c9o16 * mxoff + c9o16 * myoff - c9o16 * mzoff) + - // press_NET * (c9o64 - c3o16 * mxoff - c9o16 * myoff - c3o16 * mzoff) + - // press_SWT * (c9o64 + c9o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + - // press_NWT * (c3o64 + c3o16 * mxoff - c3o16 * myoff - c1o16 * mzoff) + - // press_NWB * (c1o64 + c1o16 * mxoff - c1o16 * myoff + c1o16 * mzoff) + - // press_NEB * (c3o64 - c1o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + - // press_SWB * (c3o64 + c3o16 * mxoff + c1o16 * myoff + c3o16 * mzoff) + - // press_SEB * (c9o64 - c3o16 * mxoff + c3o16 * myoff + c9o16 * mzoff); - //drho = drho_SET * (c27o64 - c9o16 * xoff + c9o16 * yoff - c9o16 * zoff) + - // drho_NET * (c9o64 - c3o16 * xoff - c9o16 * yoff - c3o16 * zoff) + - // drho_SWT * (c9o64 + c9o16 * xoff + c3o16 * yoff - c3o16 * zoff) + - // drho_NWT * (c3o64 + c3o16 * xoff - c3o16 * yoff - c1o16 * zoff) + - // drho_NWB * (c1o64 + c1o16 * xoff - c1o16 * yoff + c1o16 * zoff) + - // drho_NEB * (c3o64 - c1o16 * xoff - c3o16 * yoff + c3o16 * zoff) + - // drho_SWB * (c3o64 + c3o16 * xoff + c1o16 * yoff + c3o16 * zoff) + - // drho_SEB * (c9o64 - c3o16 * xoff + c3o16 * yoff + c9o16 * zoff); - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; - vvx = a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz; - vvy = b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz; - vvz = c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz; - //vvx = a0 + c1o4*( ax - ay + az) + c1o16*(axx - axy + axz + ayy - ayz + azz) + c1o64*(-axyz); - //vvy = b0 + c1o4*( bx - by + bz) + c1o16*(bxx - bxy + bxz + byy - byz + bzz) + c1o64*(-bxyz); - //vvz = c0 + c1o4*( cx - cy + cz) + c1o16*(cxx - cxy + cxz + cyy - cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1 - mfaaa; - - //two - // linear combinations - mxxPyyPzz = mfaaa; - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o; - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); - //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mfbbb = c0o1; - - //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); - //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); - //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); - //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyPyzz = c0o1; - - //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); - //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyMyzz = c0o1; - - //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); - //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); - //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzPyyz = c0o1; - - //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); - //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzMyyz = c0o1; - - //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); - //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); - //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyPxzz = c0o1; - - //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); - //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyMxzz = c0o1; - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //index - kzero= kw; - kw = neighborFX[kw]; - ks = ksw; - kb = kbw; - ksw = neighborFX[ksw]; - kbw = neighborFX[kbw]; - kbs = kbsw; - kbsw = neighborFX[kbsw]; - //////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - feF[kzero] = mfcbb; - fwF[kw] = mfabb; - fnF[kzero] = mfbcb; - fsF[ks] = mfbab; - ftF[kzero] = mfbbc; - fbF[kb] = mfbba; - fneF[kzero] = mfccb; - fswF[ksw] = mfaab; - fseF[ks] = mfcab; - fnwF[kw] = mfacb; - fteF[kzero] = mfcbc; - fbwF[kbw] = mfaba; - fbeF[kb] = mfcba; - ftwF[kw] = mfabc; - ftnF[kzero] = mfbcc; - fbsF[kbs] = mfbaa; - fbnF[kb] = mfbca; - ftsF[ks] = mfbac; - fzeroF[kzero] = mfbbb; - ftneF[kzero] = mfccc; - ftseF[ks] = mfcac; - fbneF[kb] = mfcca; - fbseF[kbs] = mfcaa; - ftnwF[kw] = mfacc; - ftswF[ksw] = mfaac; - fbnwF[kbw] = mfaca; - fbswF[kbsw] = mfaaa; - //////////////////////////////////////////////////////////////////////////////////// - - //reset - mfcbb = c0o1; - mfabb = c0o1; - mfbcb = c0o1; - mfbab = c0o1; - mfbbc = c0o1; - mfbba = c0o1; - mfccb = c0o1; - mfaab = c0o1; - mfcab = c0o1; - mfacb = c0o1; - mfcbc = c0o1; - mfaba = c0o1; - mfcba = c0o1; - mfabc = c0o1; - mfbcc = c0o1; - mfbaa = c0o1; - mfbca = c0o1; - mfbac = c0o1; - mfbbb = c0o1; - mfccc = c0o1; - mfaac = c0o1; - mfcac = c0o1; - mfacc = c0o1; - mfcca = c0o1; - mfaaa = c0o1; - mfcaa = c0o1; - mfaca = c0o1; - - - - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position SEB 0.25f, -0.25f, -0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = c1o4; - y = -c1o4; - z = -c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho =c9o64*drho_NEB+c3o64*drho_NET+c3o64*drho_NWB+c1o64*drho_NWT+c27o64*drho_SEB+c9o64*drho_SET+c9o64*drho_SWB+c3o64*drho_SWT; - //press = press_SET * (c9o64 - c3o16 * mxoff + c3o16 * myoff - c9o16 * mzoff) + - // press_NET * (c3o64 - c1o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + - // press_SWT * (c3o64 + c3o16 * mxoff + c1o16 * myoff - c3o16 * mzoff) + - // press_NWT * (c1o64 + c1o16 * mxoff - c1o16 * myoff - c1o16 * mzoff) + - // press_NWB * (c3o64 + c3o16 * mxoff - c3o16 * myoff + c1o16 * mzoff) + - // press_NEB * (c9o64 - c3o16 * mxoff - c9o16 * myoff + c3o16 * mzoff) + - // press_SWB * (c9o64 + c9o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + - // press_SEB * (c27o64 - c9o16 * mxoff + c9o16 * myoff + c9o16 * mzoff); - //drho = drho_SET * (c9o64 - c3o16 * xoff + c3o16 * yoff - c9o16 * zoff) + - // drho_NET * (c3o64 - c1o16 * xoff - c3o16 * yoff - c3o16 * zoff) + - // drho_SWT * (c3o64 + c3o16 * xoff + c1o16 * yoff - c3o16 * zoff) + - // drho_NWT * (c1o64 + c1o16 * xoff - c1o16 * yoff - c1o16 * zoff) + - // drho_NWB * (c3o64 + c3o16 * xoff - c3o16 * yoff + c1o16 * zoff) + - // drho_NEB * (c9o64 - c3o16 * xoff - c9o16 * yoff + c3o16 * zoff) + - // drho_SWB * (c9o64 + c9o16 * xoff + c3o16 * yoff + c3o16 * zoff) + - // drho_SEB * (c27o64 - c9o16 * xoff + c9o16 * yoff + c9o16 * zoff); - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; - vvx = a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz; - vvy = b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz; - vvz = c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz; - //vvx = a0 + c1o4*( ax - ay - az) + c1o16*(axx - axy - axz + ayy + ayz + azz) + c1o64*( axyz); - //vvy = b0 + c1o4*( bx - by - bz) + c1o16*(bxx - bxy - bxz + byy + byz + bzz) + c1o64*( bxyz); - //vvz = c0 + c1o4*( cx - cy - cz) + c1o16*(cxx - cxy - cxz + cyy + cyz + czz) + c1o64*( cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1 - mfaaa; - - //two - // linear combinations - mxxPyyPzz = mfaaa; - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o; - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); - //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mfbbb = c0o1; - - //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); - //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); - //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); - //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyPyzz = c0o1; - - //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); - //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyMyzz = c0o1; - - //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); - //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); - //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzPyyz = c0o1; - - //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); - //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzMyyz = c0o1; - - //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); - //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); - //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyPxzz = c0o1; - - //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); - //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyMxzz = c0o1; - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //index - kb = kzero; - kbw = kw; - kbs = ks; - kbsw = ksw; - kzero= k0w; - kw = neighborFX[k0w]; - ks = k0sw; - ksw = neighborFX[k0sw]; - //////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - feF[kzero] = mfcbb; - fwF[kw] = mfabb; - fnF[kzero] = mfbcb; - fsF[ks] = mfbab; - ftF[kzero] = mfbbc; - fbF[kb] = mfbba; - fneF[kzero] = mfccb; - fswF[ksw] = mfaab; - fseF[ks] = mfcab; - fnwF[kw] = mfacb; - fteF[kzero] = mfcbc; - fbwF[kbw] = mfaba; - fbeF[kb] = mfcba; - ftwF[kw] = mfabc; - ftnF[kzero] = mfbcc; - fbsF[kbs] = mfbaa; - fbnF[kb] = mfbca; - ftsF[ks] = mfbac; - fzeroF[kzero] = mfbbb; - ftneF[kzero] = mfccc; - ftseF[ks] = mfcac; - fbneF[kb] = mfcca; - fbseF[kbs] = mfcaa; - ftnwF[kw] = mfacc; - ftswF[ksw] = mfaac; - fbnwF[kbw] = mfaca; - fbswF[kbsw] = mfaaa; - //////////////////////////////////////////////////////////////////////////////////// - - - //reset - mfcbb = c0o1; - mfabb = c0o1; - mfbcb = c0o1; - mfbab = c0o1; - mfbbc = c0o1; - mfbba = c0o1; - mfccb = c0o1; - mfaab = c0o1; - mfcab = c0o1; - mfacb = c0o1; - mfcbc = c0o1; - mfaba = c0o1; - mfcba = c0o1; - mfabc = c0o1; - mfbcc = c0o1; - mfbaa = c0o1; - mfbca = c0o1; - mfbac = c0o1; - mfbbb = c0o1; - mfccc = c0o1; - mfaac = c0o1; - mfcac = c0o1; - mfacc = c0o1; - mfcca = c0o1; - mfaaa = c0o1; - mfcaa = c0o1; - mfaca = c0o1; - - - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position NWB -0.25f, 0.25f, -0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = -c1o4; - y = c1o4; - z = -c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho = c9o64*drho_NEB+c3o64*drho_NET+c27o64*drho_NWB+c9o64*drho_NWT+c3o64*drho_SEB+c1o64*drho_SET+c9o64*drho_SWB+c3o64*drho_SWT; - //press = press_NWT * (c9o64 + c3o16 * mxoff - c3o16 * myoff - c9o16 * mzoff) + - // press_NET * (c3o64 - c3o16 * mxoff - c1o16 * myoff - c3o16 * mzoff) + - // press_SWT * (c3o64 + c1o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + - // press_SET * (c1o64 - c1o16 * mxoff + c1o16 * myoff - c1o16 * mzoff) + - // press_SEB * (c3o64 - c3o16 * mxoff + c3o16 * myoff + c1o16 * mzoff) + - // press_NEB * (c9o64 - c9o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + - // press_SWB * (c9o64 + c3o16 * mxoff + c9o16 * myoff + c3o16 * mzoff) + - // press_NWB * (c27o64 + c9o16 * mxoff - c9o16 * myoff + c9o16 * mzoff); - //drho = drho_NWT * (c9o64 + c3o16 * xoff - c3o16 * yoff - c9o16 * zoff) + - // drho_NET * (c3o64 - c3o16 * xoff - c1o16 * yoff - c3o16 * zoff) + - // drho_SWT * (c3o64 + c1o16 * xoff + c3o16 * yoff - c3o16 * zoff) + - // drho_SET * (c1o64 - c1o16 * xoff + c1o16 * yoff - c1o16 * zoff) + - // drho_SEB * (c3o64 - c3o16 * xoff + c3o16 * yoff + c1o16 * zoff) + - // drho_NEB * (c9o64 - c9o16 * xoff - c3o16 * yoff + c3o16 * zoff) + - // drho_SWB * (c9o64 + c3o16 * xoff + c9o16 * yoff + c3o16 * zoff) + - // drho_NWB * (c27o64 + c9o16 * xoff - c9o16 * yoff + c9o16 * zoff); - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; - vvx = a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz; - vvy = b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz; - vvz = c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz; - //vvx = a0 + c1o4*(-ax + ay - az) + c1o16*(axx - axy + axz + ayy - ayz + azz) + c1o64*( axyz); - //vvy = b0 + c1o4*(-bx + by - bz) + c1o16*(bxx - bxy + bxz + byy - byz + bzz) + c1o64*( bxyz); - //vvz = c0 + c1o4*(-cx + cy - cz) + c1o16*(cxx - cxy + cxz + cyy - cyz + czz) + c1o64*( cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1 - mfaaa; - - //two - // linear combinations - mxxPyyPzz = mfaaa; - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o; - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); - //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mfbbb = c0o1; - - //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); - //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); - //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); - //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyPyzz = c0o1; - - //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); - //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyMyzz = c0o1; - - //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); - //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); - //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzPyyz = c0o1; - - //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); - //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzMyyz = c0o1; - - //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); - //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); - //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyPxzz = c0o1; - - //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); - //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyMxzz = c0o1; - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //index 0 - k0zero= k0s; - k0w = k0sw; - k0s = neighborFY[k0s]; - k0b = k0bs; - k0sw = neighborFY[k0sw]; - k0bw = k0bsw; - k0bs = neighborFY[k0bs]; - k0bsw = neighborFY[k0bsw]; - ////////////////////////////////////////////////////////////////////////// - //index - kzero= k0zero; - kw = k0w; - ks = k0s; - kb = k0b; - ksw = k0sw; - kbw = k0bw; - kbs = k0bs; - kbsw = k0bsw; - //////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - feF[kzero] = mfcbb; - fwF[kw] = mfabb; - fnF[kzero] = mfbcb; - fsF[ks] = mfbab; - ftF[kzero] = mfbbc; - fbF[kb] = mfbba; - fneF[kzero] = mfccb; - fswF[ksw] = mfaab; - fseF[ks] = mfcab; - fnwF[kw] = mfacb; - fteF[kzero] = mfcbc; - fbwF[kbw] = mfaba; - fbeF[kb] = mfcba; - ftwF[kw] = mfabc; - ftnF[kzero] = mfbcc; - fbsF[kbs] = mfbaa; - fbnF[kb] = mfbca; - ftsF[ks] = mfbac; - fzeroF[kzero] = mfbbb; - ftneF[kzero] = mfccc; - ftseF[ks] = mfcac; - fbneF[kb] = mfcca; - fbseF[kbs] = mfcaa; - ftnwF[kw] = mfacc; - ftswF[ksw] = mfaac; - fbnwF[kbw] = mfaca; - fbswF[kbsw] = mfaaa; - //////////////////////////////////////////////////////////////////////////////////// - - - //reset - mfcbb = c0o1; - mfabb = c0o1; - mfbcb = c0o1; - mfbab = c0o1; - mfbbc = c0o1; - mfbba = c0o1; - mfccb = c0o1; - mfaab = c0o1; - mfcab = c0o1; - mfacb = c0o1; - mfcbc = c0o1; - mfaba = c0o1; - mfcba = c0o1; - mfabc = c0o1; - mfbcc = c0o1; - mfbaa = c0o1; - mfbca = c0o1; - mfbac = c0o1; - mfbbb = c0o1; - mfccc = c0o1; - mfaac = c0o1; - mfcac = c0o1; - mfacc = c0o1; - mfcca = c0o1; - mfaaa = c0o1; - mfcaa = c0o1; - mfaca = c0o1; - - - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position NWT -0.25f, 0.25f, 0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = -c1o4; - y = c1o4; - z = c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho = c3o64*drho_NEB+c9o64*drho_NET+c9o64*drho_NWB+c27o64*drho_NWT+c1o64*drho_SEB+c3o64*drho_SET+c3o64*drho_SWB+c9o64*drho_SWT; - //press = press_NWT * (c27o64 + c9o16 * mxoff - c9o16 * myoff - c9o16 * mzoff) + - // press_NET * (c9o64 - c9o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + - // press_SWT * (c9o64 + c3o16 * mxoff + c9o16 * myoff - c3o16 * mzoff) + - // press_SET * (c3o64 - c3o16 * mxoff + c3o16 * myoff - c1o16 * mzoff) + - // press_SEB * (c1o64 - c1o16 * mxoff + c1o16 * myoff + c1o16 * mzoff) + - // press_NEB * (c3o64 - c3o16 * mxoff - c1o16 * myoff + c3o16 * mzoff) + - // press_SWB * (c3o64 + c1o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + - // press_NWB * (c9o64 + c3o16 * mxoff - c3o16 * myoff + c9o16 * mzoff); - //drho = drho_NWT * (c27o64 + c9o16 * xoff - c9o16 * yoff - c9o16 * zoff) + - // drho_NET * (c9o64 - c9o16 * xoff - c3o16 * yoff - c3o16 * zoff) + - // drho_SWT * (c9o64 + c3o16 * xoff + c9o16 * yoff - c3o16 * zoff) + - // drho_SET * (c3o64 - c3o16 * xoff + c3o16 * yoff - c1o16 * zoff) + - // drho_SEB * (c1o64 - c1o16 * xoff + c1o16 * yoff + c1o16 * zoff) + - // drho_NEB * (c3o64 - c3o16 * xoff - c1o16 * yoff + c3o16 * zoff) + - // drho_SWB * (c3o64 + c1o16 * xoff + c3o16 * yoff + c3o16 * zoff) + - // drho_NWB * (c9o64 + c3o16 * xoff - c3o16 * yoff + c9o16 * zoff); - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; - vvx = a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz; - vvy = b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz; - vvz = c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz; - //vvx = a0 + c1o4*(-ax + ay + az) + c1o16*(axx - axy - axz + ayy + ayz + azz) + c1o64*(-axyz); - //vvy = b0 + c1o4*(-bx + by + bz) + c1o16*(bxx - bxy - bxz + byy + byz + bzz) + c1o64*(-bxyz); - //vvz = c0 + c1o4*(-cx + cy + cz) + c1o16*(cxx - cxy - cxz + cyy + cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1 - mfaaa; - - //two - // linear combinations - mxxPyyPzz = mfaaa; - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o; - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); - //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mfbbb = c0o1; - - //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); - //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); - //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); - //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyPyzz = c0o1; - - //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); - //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyMyzz = c0o1; - - //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); - //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); - //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzPyyz = c0o1; - - //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); - //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzMyyz = c0o1; - - //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); - //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); - //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyPxzz = c0o1; - - //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); - //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyMxzz = c0o1; - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //index - kzero= kb; - kw = kbw; - ks = kbs; - kb = neighborFZ[kb]; - ksw = kbsw; - kbw = neighborFZ[kbw]; - kbs = neighborFZ[kbs]; - kbsw = neighborFZ[kbsw]; - //////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - feF[kzero] = mfcbb; - fwF[kw] = mfabb; - fnF[kzero] = mfbcb; - fsF[ks] = mfbab; - ftF[kzero] = mfbbc; - fbF[kb] = mfbba; - fneF[kzero] = mfccb; - fswF[ksw] = mfaab; - fseF[ks] = mfcab; - fnwF[kw] = mfacb; - fteF[kzero] = mfcbc; - fbwF[kbw] = mfaba; - fbeF[kb] = mfcba; - ftwF[kw] = mfabc; - ftnF[kzero] = mfbcc; - fbsF[kbs] = mfbaa; - fbnF[kb] = mfbca; - ftsF[ks] = mfbac; - fzeroF[kzero] = mfbbb; - ftneF[kzero] = mfccc; - ftseF[ks] = mfcac; - fbneF[kb] = mfcca; - fbseF[kbs] = mfcaa; - ftnwF[kw] = mfacc; - ftswF[ksw] = mfaac; - fbnwF[kbw] = mfaca; - fbswF[kbsw] = mfaaa; - //////////////////////////////////////////////////////////////////////////////////// - - - //reset - mfcbb = c0o1; - mfabb = c0o1; - mfbcb = c0o1; - mfbab = c0o1; - mfbbc = c0o1; - mfbba = c0o1; - mfccb = c0o1; - mfaab = c0o1; - mfcab = c0o1; - mfacb = c0o1; - mfcbc = c0o1; - mfaba = c0o1; - mfcba = c0o1; - mfabc = c0o1; - mfbcc = c0o1; - mfbaa = c0o1; - mfbca = c0o1; - mfbac = c0o1; - mfbbb = c0o1; - mfccc = c0o1; - mfaac = c0o1; - mfcac = c0o1; - mfacc = c0o1; - mfcca = c0o1; - mfaaa = c0o1; - mfcaa = c0o1; - mfaca = c0o1; - - - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position NET 0.25f, 0.25f, 0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = c1o4; - y = c1o4; - z = c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho = c9o64*drho_NEB+c27o64*drho_NET+c3o64*drho_NWB+c9o64*drho_NWT+c3o64*drho_SEB+c9o64*drho_SET+c1o64*drho_SWB+c3o64*drho_SWT; - //press = press_NET * (c27o64 - c9o16 * mxoff - c9o16 * myoff - c9o16 * mzoff) + - // press_NWT * (c9o64 + c9o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + - // press_SET * (c9o64 - c3o16 * mxoff + c9o16 * myoff - c3o16 * mzoff) + - // press_SWT * (c3o64 + c3o16 * mxoff + c3o16 * myoff - c1o16 * mzoff) + - // press_SWB * (c1o64 + c1o16 * mxoff + c1o16 * myoff + c1o16 * mzoff) + - // press_NWB * (c3o64 + c3o16 * mxoff - c1o16 * myoff + c3o16 * mzoff) + - // press_SEB * (c3o64 - c1o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + - // press_NEB * (c9o64 - c3o16 * mxoff - c3o16 * myoff + c9o16 * mzoff); - //drho = drho_NET * (c27o64 - c9o16 * xoff - c9o16 * yoff - c9o16 * zoff) + - // drho_NWT * (c9o64 + c9o16 * xoff - c3o16 * yoff - c3o16 * zoff) + - // drho_SET * (c9o64 - c3o16 * xoff + c9o16 * yoff - c3o16 * zoff) + - // drho_SWT * (c3o64 + c3o16 * xoff + c3o16 * yoff - c1o16 * zoff) + - // drho_SWB * (c1o64 + c1o16 * xoff + c1o16 * yoff + c1o16 * zoff) + - // drho_NWB * (c3o64 + c3o16 * xoff - c1o16 * yoff + c3o16 * zoff) + - // drho_SEB * (c3o64 - c1o16 * xoff + c3o16 * yoff + c3o16 * zoff) + - // drho_NEB * (c9o64 - c3o16 * xoff - c3o16 * yoff + c9o16 * zoff); - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; - vvx = a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz; - vvy = b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz; - vvz = c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz; - //vvx = a0 + c1o4*( ax + ay + az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*( axyz); - //vvy = b0 + c1o4*( bx + by + bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*( bxyz); - //vvz = c0 + c1o4*( cx + cy + cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*( cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1 - mfaaa; - - //two - // linear combinations - mxxPyyPzz = mfaaa; - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o; - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); - //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mfbbb = c0o1; - - //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); - //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); - //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); - //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyPyzz = c0o1; - - //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); - //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyMyzz = c0o1; - - //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); - //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); - //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzPyyz = c0o1; - - //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); - //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzMyyz = c0o1; - - //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); - //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); - //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyPxzz = c0o1; - - //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); - //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyMxzz = c0o1; - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //index - kzero= kw; - kw = neighborFX[kw]; - ks = ksw; - kb = kbw; - ksw = neighborFX[ksw]; - kbw = neighborFX[kbw]; - kbs = kbsw; - kbsw = neighborFX[kbsw]; - //////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - feF[kzero] = mfcbb; - fwF[kw] = mfabb; - fnF[kzero] = mfbcb; - fsF[ks] = mfbab; - ftF[kzero] = mfbbc; - fbF[kb] = mfbba; - fneF[kzero] = mfccb; - fswF[ksw] = mfaab; - fseF[ks] = mfcab; - fnwF[kw] = mfacb; - fteF[kzero] = mfcbc; - fbwF[kbw] = mfaba; - fbeF[kb] = mfcba; - ftwF[kw] = mfabc; - ftnF[kzero] = mfbcc; - fbsF[kbs] = mfbaa; - fbnF[kb] = mfbca; - ftsF[ks] = mfbac; - fzeroF[kzero] = mfbbb; - ftneF[kzero] = mfccc; - ftseF[ks] = mfcac; - fbneF[kb] = mfcca; - fbseF[kbs] = mfcaa; - ftnwF[kw] = mfacc; - ftswF[ksw] = mfaac; - fbnwF[kbw] = mfaca; - fbswF[kbsw] = mfaaa; - //////////////////////////////////////////////////////////////////////////////////// - - - //reset - mfcbb = c0o1; - mfabb = c0o1; - mfbcb = c0o1; - mfbab = c0o1; - mfbbc = c0o1; - mfbba = c0o1; - mfccb = c0o1; - mfaab = c0o1; - mfcab = c0o1; - mfacb = c0o1; - mfcbc = c0o1; - mfaba = c0o1; - mfcba = c0o1; - mfabc = c0o1; - mfbcc = c0o1; - mfbaa = c0o1; - mfbca = c0o1; - mfbac = c0o1; - mfbbb = c0o1; - mfccc = c0o1; - mfaac = c0o1; - mfcac = c0o1; - mfacc = c0o1; - mfcca = c0o1; - mfaaa = c0o1; - mfcaa = c0o1; - mfaca = c0o1; - - - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position NEB 0.25f, 0.25f, -0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = c1o4; - y = c1o4; - z = -c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho = c27o64*drho_NEB+c9o64*drho_NET+c9o64*drho_NWB+c3o64*drho_NWT+c9o64*drho_SEB+c3o64*drho_SET+c3o64*drho_SWB+c1o64*drho_SWT; - //press = press_NET * (c9o64 - c3o16 * mxoff - c3o16 * myoff - c9o16 * mzoff) + - // press_NWT * (c3o64 + c3o16 * mxoff - c1o16 * myoff - c3o16 * mzoff) + - // press_SET * (c3o64 - c1o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + - // press_SWT * (c1o64 + c1o16 * mxoff + c1o16 * myoff - c1o16 * mzoff) + - // press_SWB * (c3o64 + c3o16 * mxoff + c3o16 * myoff + c1o16 * mzoff) + - // press_NWB * (c9o64 + c9o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + - // press_SEB * (c9o64 - c3o16 * mxoff + c9o16 * myoff + c3o16 * mzoff) + - // press_NEB * (c27o64 - c9o16 * mxoff - c9o16 * myoff + c9o16 * mzoff); - //drho = drho_NET * (c9o64 - c3o16 * xoff - c3o16 * yoff - c9o16 * zoff) + - // drho_NWT * (c3o64 + c3o16 * xoff - c1o16 * yoff - c3o16 * zoff) + - // drho_SET * (c3o64 - c1o16 * xoff + c3o16 * yoff - c3o16 * zoff) + - // drho_SWT * (c1o64 + c1o16 * xoff + c1o16 * yoff - c1o16 * zoff) + - // drho_SWB * (c3o64 + c3o16 * xoff + c3o16 * yoff + c1o16 * zoff) + - // drho_NWB * (c9o64 + c9o16 * xoff - c3o16 * yoff + c3o16 * zoff) + - // drho_SEB * (c9o64 - c3o16 * xoff + c9o16 * yoff + c3o16 * zoff) + - // drho_NEB * (c27o64 - c9o16 * xoff - c9o16 * yoff + c9o16 * zoff); - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; - vvx = a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz; - vvy = b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz; - vvz = c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz; - //vvx = a0 + c1o4*( ax + ay - az) + c1o16*(axx + axy - axz + ayy - ayz + azz) + c1o64*(-axyz); - //vvy = b0 + c1o4*( bx + by - bz) + c1o16*(bxx + bxy - bxz + byy - byz + bzz) + c1o64*(-bxyz); - //vvz = c0 + c1o4*( cx + cy - cz) + c1o16*(cxx + cxy - cxz + cyy - cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1 - mfaaa; - - //two - // linear combinations - mxxPyyPzz = mfaaa; - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o; - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); - //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mfbbb = c0o1; - - //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); - //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); - //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); - //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyPyzz = c0o1; - - //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); - //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyMyzz = c0o1; - - //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); - //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); - //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzPyyz = c0o1; - - //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); - //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzMyyz = c0o1; - - //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); - //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); - //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyPxzz = c0o1; - - //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); - //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyMxzz = c0o1; - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //index - kb = kzero; - kbw = kw; - kbs = ks; - kbsw = ksw; - kzero= k0w; - kw = neighborFX[k0w]; - ks = k0sw; - ksw = neighborFX[k0sw]; - //////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - feF[kzero] = mfcbb; - fwF[kw] = mfabb; - fnF[kzero] = mfbcb; - fsF[ks] = mfbab; - ftF[kzero] = mfbbc; - fbF[kb] = mfbba; - fneF[kzero] = mfccb; - fswF[ksw] = mfaab; - fseF[ks] = mfcab; - fnwF[kw] = mfacb; - fteF[kzero] = mfcbc; - fbwF[kbw] = mfaba; - fbeF[kb] = mfcba; - ftwF[kw] = mfabc; - ftnF[kzero] = mfbcc; - fbsF[kbs] = mfbaa; - fbnF[kb] = mfbca; - ftsF[ks] = mfbac; - fzeroF[kzero] = mfbbb; - ftneF[kzero] = mfccc; - ftseF[ks] = mfcac; - fbneF[kb] = mfcca; - fbseF[kbs] = mfcaa; - ftnwF[kw] = mfacc; - ftswF[ksw] = mfaac; - fbnwF[kbw] = mfaca; - fbswF[kbsw] = mfaaa; - //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + feF[kzero] = mfcbb; + fwF[kw] = mfabb; + fnF[kzero] = mfbcb; + fsF[ks] = mfbab; + ftF[kzero] = mfbbc; + fbF[kb] = mfbba; + fneF[kzero] = mfccb; + fswF[ksw] = mfaab; + fseF[ks] = mfcab; + fnwF[kw] = mfacb; + fteF[kzero] = mfcbc; + fbwF[kbw] = mfaba; + fbeF[kb] = mfcba; + ftwF[kw] = mfabc; + ftnF[kzero] = mfbcc; + fbsF[kbs] = mfbaa; + fbnF[kb] = mfbca; + ftsF[ks] = mfbac; + fzeroF[kzero] = mfbbb; + ftneF[kzero] = mfccc; + ftseF[ks] = mfcac; + fbneF[kb] = mfcca; + fbseF[kbs] = mfcaa; + ftnwF[kw] = mfacc; + ftswF[ksw] = mfaac; + fbnwF[kbw] = mfaca; + fbswF[kbsw] = mfaaa; + //////////////////////////////////////////////////////////////////////////////////// } } ////////////////////////////////////////////////////////////////////////// @@ -39555,13 +39555,13 @@ __global__ void scaleCFpress27( real* DC, //vx1_SWB = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_SWB = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_SWB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_SWB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_SWB = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_SWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_SWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_SWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_SWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_SWB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; - press_SWB= (f_E+f_W+f_N+f_S+f_T+f_B+c2o1*(f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS)+c3o1*(f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW)- - drho_SWB-(vx1_SWB*vx1_SWB+vx2_SWB*vx2_SWB+vx3_SWB*vx3_SWB)* (c1o1+drho_SWB)) * c1o2+drho_SWB; + press_SWB= (f_E+f_W+f_N+f_S+f_T+f_B+c2o1*(f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS)+c3o1*(f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW)- + drho_SWB-(vx1_SWB*vx1_SWB+vx2_SWB*vx2_SWB+vx3_SWB*vx3_SWB)* (c1o1+drho_SWB)) * c1o2+drho_SWB; kxyFromfcNEQ_SWB = -c3o1*omegaS*(f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE-(vx1_SWB*vx2_SWB)); kyzFromfcNEQ_SWB = -c3o1*omegaS*(f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW-(vx2_SWB*vx3_SWB)); @@ -39612,10 +39612,10 @@ __global__ void scaleCFpress27( real* DC, //vx1_SWT = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_SWT = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_SWT = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_SWT = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_SWT = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_SWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_SWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_SWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_SWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_SWT = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; press_SWT= (f_E+f_W+f_N+f_S+f_T+f_B+c2o1*(f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS)+c3o1*(f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW)- drho_SWT-(vx1_SWT*vx1_SWT+vx2_SWT*vx2_SWT+vx3_SWT*vx3_SWT)* (c1o1+drho_SWT)) * c1o2+drho_SWT; @@ -39669,10 +39669,10 @@ __global__ void scaleCFpress27( real* DC, //vx1_SET = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_SET = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_SET = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_SET = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_SET = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_SET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_SET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_SET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_SET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_SET = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; press_SET= (f_E+f_W+f_N+f_S+f_T+f_B+c2o1*(f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS)+c3o1*(f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW)- drho_SET-(vx1_SET*vx1_SET+vx2_SET*vx2_SET+vx3_SET*vx3_SET)* (c1o1+drho_SET)) * c1o2+drho_SET; @@ -39726,10 +39726,10 @@ __global__ void scaleCFpress27( real* DC, //vx1_SEB = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_SEB = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_SEB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_SEB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_SEB = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_SEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_SEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_SEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_SEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_SEB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; press_SEB= (f_E+f_W+f_N+f_S+f_T+f_B+c2o1*(f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS)+c3o1*(f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW)- drho_SEB-(vx1_SEB*vx1_SEB+vx2_SEB*vx2_SEB+vx3_SEB*vx3_SEB)* (c1o1+drho_SEB)) * c1o2+drho_SEB; @@ -39793,10 +39793,10 @@ __global__ void scaleCFpress27( real* DC, //vx1_NWB = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_NWB = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_NWB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_NWB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_NWB = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_NWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_NWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_NWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_NWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_NWB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; press_NWB= (f_E+f_W+f_N+f_S+f_T+f_B+2.f*(f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS)+3.f*(f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW)- drho_NWB-(vx1_NWB*vx1_NWB+vx2_NWB*vx2_NWB+vx3_NWB*vx3_NWB)* (1.+drho_NWB)) * 0.5f+drho_NWB; @@ -39850,10 +39850,10 @@ __global__ void scaleCFpress27( real* DC, //vx1_NWT = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_NWT = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_NWT = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_NWT = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_NWT = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_NWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_NWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_NWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_NWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_NWT = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; press_NWT= (f_E+f_W+f_N+f_S+f_T+f_B+c2o1*(f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS)+c3o1*(f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW)- drho_NWT-(vx1_NWT*vx1_NWT+vx2_NWT*vx2_NWT+vx3_NWT*vx3_NWT)* (c1o1+drho_NWT)) * c1o2+drho_NWT; @@ -39907,10 +39907,10 @@ __global__ void scaleCFpress27( real* DC, //vx1_NET = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_NET = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_NET = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_NET = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_NET = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_NET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_NET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_NET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_NET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_NET = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; press_NET= (f_E+f_W+f_N+f_S+f_T+f_B+c2o1*(f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS)+c3o1*(f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW)- drho_NET-(vx1_NET*vx1_NET+vx2_NET*vx2_NET+vx3_NET*vx3_NET)* (c1o1+drho_NET)) * c1o2+drho_NET; @@ -39964,10 +39964,10 @@ __global__ void scaleCFpress27( real* DC, //vx1_NEB = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_NEB = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_NEB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_NEB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_NEB = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_NEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_NEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_NEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_NEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_NEB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; press_NEB= (f_E+f_W+f_N+f_S+f_T+f_B+c2o1*(f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS)+c3o1*(f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW)- drho_NEB-(vx1_NEB*vx1_NEB+vx2_NEB*vx2_NEB+vx3_NEB*vx3_NEB)* (c1o1+drho_NEB)) * c1o2+drho_NEB; @@ -41229,10 +41229,10 @@ __global__ void scaleCFLast27( real* DC, //vx1_SWB = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_SWB = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_SWB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_SWB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_SWB = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_SWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_SWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_SWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_SWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_SWB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; kxyFromfcNEQ_SWB = -c3o1*omegaS*(f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE-(vx1_SWB*vx2_SWB)); @@ -41284,10 +41284,10 @@ __global__ void scaleCFLast27( real* DC, //vx1_SWT = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_SWT = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_SWT = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_SWT = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_SWT = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_SWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_SWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_SWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_SWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_SWT = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; kxyFromfcNEQ_SWT = -c3o1*omegaS*(f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE-(vx1_SWT*vx2_SWT)); @@ -41339,10 +41339,10 @@ __global__ void scaleCFLast27( real* DC, //vx1_SET = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_SET = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_SET = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_SET = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_SET = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_SET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_SET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_SET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_SET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_SET = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; kxyFromfcNEQ_SET = -c3o1*omegaS*(f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE-(vx1_SET*vx2_SET)); @@ -41394,10 +41394,10 @@ __global__ void scaleCFLast27( real* DC, //vx1_SEB = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_SEB = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_SEB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_SEB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_SEB = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_SEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_SEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_SEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_SEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_SEB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; kxyFromfcNEQ_SEB = -c3o1*omegaS*(f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE-(vx1_SEB*vx2_SEB)); @@ -41459,10 +41459,10 @@ __global__ void scaleCFLast27( real* DC, //vx1_NWB = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_NWB = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_NWB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_NWB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_NWB = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_NWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_NWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_NWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_NWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_NWB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; kxyFromfcNEQ_NWB = -c3o1*omegaS*(f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE-(vx1_NWB*vx2_NWB)); @@ -41514,10 +41514,10 @@ __global__ void scaleCFLast27( real* DC, //vx1_NWT = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_NWT = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_NWT = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_NWT = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_NWT = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_NWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_NWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_NWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_NWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_NWT = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; kxyFromfcNEQ_NWT = -c3o1*omegaS*(f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE-(vx1_NWT*vx2_NWT)); @@ -41569,10 +41569,10 @@ __global__ void scaleCFLast27( real* DC, //vx1_NET = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_NET = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_NET = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_NET = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_NET = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_NET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_NET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_NET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_NET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_NET = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; kxyFromfcNEQ_NET = -c3o1*omegaS*(f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE-(vx1_NET*vx2_NET)); @@ -41624,10 +41624,10 @@ __global__ void scaleCFLast27( real* DC, //vx1_NEB = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_NEB = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_NEB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_NEB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_NEB = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_NEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_NEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_NEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_NEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_NEB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; kxyFromfcNEQ_NEB = -c3o1*omegaS*(f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE-(vx1_NEB*vx2_NEB)); @@ -42170,7 +42170,7 @@ __global__ void scaleCFLast27( real* DC, c2o1*vx2_NEB + c2o1*vx2_NET - c2o1*vx2_NWB + c2o1*vx2_NWT + c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB - c2o1*vx2_SWT + c8o1*vx3_NEB + c8o1*vx3_NET + c8o1*vx3_NWB + c8o1*vx3_NWT + - c8o1*vx3_SEB + c8o1*vx3_SET + c8o1*vx3_SWB + c8o1*vx3_SWT)*c1o64; + c8o1*vx3_SEB + c8o1*vx3_SET + c8o1*vx3_SWB + c8o1*vx3_SWT)*c1o64; ax = (vx1_NEB + vx1_NET - vx1_NWB - vx1_NWT + vx1_SEB + vx1_SET - vx1_SWB - vx1_SWT)/c4o1; bx = (vx2_NEB + vx2_NET - vx2_NWB - vx2_NWT + vx2_SEB + vx2_SET - vx2_SWB - vx2_SWT)/c4o1; cx = (vx3_NEB + vx3_NET - vx3_NWB - vx3_NWT + vx3_SEB + vx3_SET - vx3_SWB - vx3_SWT)/c4o1; @@ -42181,7 +42181,7 @@ __global__ void scaleCFLast27( real* DC, c2o1*vx2_NEB + c2o1*vx2_NET - c2o1*vx2_NWB - c2o1*vx2_NWT - c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB + c2o1*vx2_SWT - c2o1*vx3_NEB + c2o1*vx3_NET + c2o1*vx3_NWB - c2o1*vx3_NWT - - c2o1*vx3_SEB + c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)*c1o16; + c2o1*vx3_SEB + c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)*c1o16; bxx= (kxyFromfcNEQ_NEB + kxyFromfcNEQ_NET - kxyFromfcNEQ_NWB - kxyFromfcNEQ_NWT + kxyFromfcNEQ_SEB + kxyFromfcNEQ_SET - kxyFromfcNEQ_SWB - kxyFromfcNEQ_SWT - c2o1*vx1_NEB - c2o1*vx1_NET + c2o1*vx1_NWB + c2o1*vx1_NWT + @@ -42196,7 +42196,7 @@ __global__ void scaleCFLast27( real* DC, ayy= (kxyFromfcNEQ_NEB + kxyFromfcNEQ_NET + kxyFromfcNEQ_NWB + kxyFromfcNEQ_NWT - kxyFromfcNEQ_SEB - kxyFromfcNEQ_SET - kxyFromfcNEQ_SWB - kxyFromfcNEQ_SWT - c2o1*vx2_NEB - c2o1*vx2_NET + c2o1*vx2_NWB + c2o1*vx2_NWT + - c2o1*vx2_SEB + c2o1*vx2_SET - c2o1*vx2_SWB - c2o1*vx2_SWT)*c1o8; + c2o1*vx2_SEB + c2o1*vx2_SET - c2o1*vx2_SWB - c2o1*vx2_SWT)*c1o8; byy= (-c2o1*kxxMyyFromfcNEQ_NEB - c2o1*kxxMyyFromfcNEQ_NET - c2o1*kxxMyyFromfcNEQ_NWB - c2o1*kxxMyyFromfcNEQ_NWT + c2o1*kxxMyyFromfcNEQ_SEB + c2o1*kxxMyyFromfcNEQ_SET + c2o1*kxxMyyFromfcNEQ_SWB + c2o1*kxxMyyFromfcNEQ_SWT + kxxMzzFromfcNEQ_NEB + kxxMzzFromfcNEQ_NET + kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_NWT - @@ -42204,22 +42204,22 @@ __global__ void scaleCFLast27( real* DC, c2o1*vx1_NEB + c2o1*vx1_NET - c2o1*vx1_NWB - c2o1*vx1_NWT - c2o1*vx1_SEB - c2o1*vx1_SET + c2o1*vx1_SWB + c2o1*vx1_SWT - c2o1*vx3_NEB + c2o1*vx3_NET - c2o1*vx3_NWB + c2o1*vx3_NWT + - c2o1*vx3_SEB - c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)*c1o16; + c2o1*vx3_SEB - c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)*c1o16; cyy= (kyzFromfcNEQ_NEB + kyzFromfcNEQ_NET + kyzFromfcNEQ_NWB + kyzFromfcNEQ_NWT - kyzFromfcNEQ_SEB - kyzFromfcNEQ_SET - kyzFromfcNEQ_SWB - kyzFromfcNEQ_SWT + c2o1*vx2_NEB - c2o1*vx2_NET + c2o1*vx2_NWB - c2o1*vx2_NWT - - c2o1*vx2_SEB + c2o1*vx2_SET - c2o1*vx2_SWB + c2o1*vx2_SWT)*c1o8; + c2o1*vx2_SEB + c2o1*vx2_SET - c2o1*vx2_SWB + c2o1*vx2_SWT)*c1o8; az = (-vx1_NEB + vx1_NET - vx1_NWB + vx1_NWT - vx1_SEB + vx1_SET - vx1_SWB + vx1_SWT)/c4o1; bz = (-vx2_NEB + vx2_NET - vx2_NWB + vx2_NWT - vx2_SEB + vx2_SET - vx2_SWB + vx2_SWT)/c4o1; cz = (-vx3_NEB + vx3_NET - vx3_NWB + vx3_NWT - vx3_SEB + vx3_SET - vx3_SWB + vx3_SWT)/c4o1; azz= (-kxzFromfcNEQ_NEB + kxzFromfcNEQ_NET - kxzFromfcNEQ_NWB + kxzFromfcNEQ_NWT - kxzFromfcNEQ_SEB + kxzFromfcNEQ_SET - kxzFromfcNEQ_SWB + kxzFromfcNEQ_SWT + c2o1*vx3_NEB - c2o1*vx3_NET - c2o1*vx3_NWB + c2o1*vx3_NWT + - c2o1*vx3_SEB - c2o1*vx3_SET - c2o1*vx3_SWB + c2o1*vx3_SWT)*c1o8; + c2o1*vx3_SEB - c2o1*vx3_SET - c2o1*vx3_SWB + c2o1*vx3_SWT)*c1o8; bzz= (-kyzFromfcNEQ_NEB + kyzFromfcNEQ_NET - kyzFromfcNEQ_NWB + kyzFromfcNEQ_NWT - kyzFromfcNEQ_SEB + kyzFromfcNEQ_SET - kyzFromfcNEQ_SWB + kyzFromfcNEQ_SWT + c2o1*vx3_NEB - c2o1*vx3_NET + c2o1*vx3_NWB - c2o1*vx3_NWT - - c2o1*vx3_SEB + c2o1*vx3_SET - c2o1*vx3_SWB + c2o1*vx3_SWT)*c1o8; + c2o1*vx3_SEB + c2o1*vx3_SET - c2o1*vx3_SWB + c2o1*vx3_SWT)*c1o8; czz= (-kxxMyyFromfcNEQ_NEB + kxxMyyFromfcNEQ_NET - kxxMyyFromfcNEQ_NWB + kxxMyyFromfcNEQ_NWT - kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_SET - kxxMyyFromfcNEQ_SWB + kxxMyyFromfcNEQ_SWT + c2o1*kxxMzzFromfcNEQ_NEB - c2o1*kxxMzzFromfcNEQ_NET + c2o1*kxxMzzFromfcNEQ_NWB - c2o1*kxxMzzFromfcNEQ_NWT + @@ -42227,7 +42227,7 @@ __global__ void scaleCFLast27( real* DC, c2o1*vx1_NEB + c2o1*vx1_NET + c2o1*vx1_NWB - c2o1*vx1_NWT - c2o1*vx1_SEB + c2o1*vx1_SET + c2o1*vx1_SWB - c2o1*vx1_SWT - c2o1*vx2_NEB + c2o1*vx2_NET - c2o1*vx2_NWB + c2o1*vx2_NWT + - c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB - c2o1*vx2_SWT)*c1o16; + c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB - c2o1*vx2_SWT)*c1o16; axy= (vx1_NEB + vx1_NET - vx1_NWB - vx1_NWT - vx1_SEB - vx1_SET + vx1_SWB + vx1_SWT)/c2o1; bxy= (vx2_NEB + vx2_NET - vx2_NWB - vx2_NWT - vx2_SEB - vx2_SET + vx2_SWB + vx2_SWT)/c2o1; cxy= (vx3_NEB + vx3_NET - vx3_NWB - vx3_NWT - vx3_SEB - vx3_SET + vx3_SWB + vx3_SWT)/c2o1; @@ -42286,12 +42286,12 @@ __global__ void scaleCFLast27( real* DC, x_E = c1o4*eps_new*((c2o1*(-c4o1*axx + bxy + cxz))/(c27o1*o)); x_N = c1o4*eps_new*((c2o1*(c2o1*axx - c2o1*bxy + cxz))/(c27o1*o)); x_T = c1o4*eps_new*((c2o1*(c2o1*axx + bxy - c2o1*cxz))/(c27o1*o)); - x_NE = c1o4*eps_new*(-((c2o1*axx + c3o1*axy + c6o1*bxx + bxy - c2o1*cxz))/(c54o1*o)); - x_SE = c1o4*eps_new*(-((c2o1*axx - c3o1*axy - c6o1*bxx + bxy - c2o1*cxz))/(c54o1*o)); - x_TE = c1o4*eps_new*(-((c2o1*axx + c3o1*axz - c2o1*bxy + c6o1*cxx + cxz))/(c54o1*o)); - x_BE = c1o4*eps_new*(-((c2o1*axx - c3o1*axz - c2o1*bxy - c6o1*cxx + cxz))/(c54o1*o)); - x_TN = c1o4*eps_new*(-((-c4o1*axx + bxy + c3o1*bxz + c3o1*cxy + cxz))/(c54o1*o)); - x_BN = c1o4*eps_new*(-((-c4o1*axx + bxy - c3o1*bxz - c3o1*cxy + cxz))/(c54o1*o)); + x_NE = c1o4*eps_new*(-((c2o1*axx + c3o1*axy + c6o1*bxx + bxy - c2o1*cxz))/(c54o1*o)); + x_SE = c1o4*eps_new*(-((c2o1*axx - c3o1*axy - c6o1*bxx + bxy - c2o1*cxz))/(c54o1*o)); + x_TE = c1o4*eps_new*(-((c2o1*axx + c3o1*axz - c2o1*bxy + c6o1*cxx + cxz))/(c54o1*o)); + x_BE = c1o4*eps_new*(-((c2o1*axx - c3o1*axz - c2o1*bxy - c6o1*cxx + cxz))/(c54o1*o)); + x_TN = c1o4*eps_new*(-((-c4o1*axx + bxy + c3o1*bxz + c3o1*cxy + cxz))/(c54o1*o)); + x_BN = c1o4*eps_new*(-((-c4o1*axx + bxy - c3o1*bxz - c3o1*cxy + cxz))/(c54o1*o)); x_ZERO = c0o1; x_TNE = c1o4*eps_new*(-((axy + axz + c2o1*bxx + bxz + c2o1*cxx + cxy))/(c72o1*o)); x_TSW = c1o4*eps_new*(((-axy + axz - c2o1*bxx + bxz + c2o1*cxx + cxy))/(c72o1*o)); @@ -42486,13 +42486,13 @@ __global__ void scaleCFLast27( real* DC, //drho = c3o64*drho_NEB+c1o64*drho_NET+c9o64*drho_NWB+c3o64*drho_NWT+c9o64*drho_SEB+c3o64*drho_SET+c27o64*drho_SWB+c9o64*drho_SWT; drho = drho_SWT * (c9o64 + c3o16 * xoff + c3o16 * yoff - c9o16 * zoff) + - drho_NWT * (c3o64 + c1o16 * xoff - c3o16 * yoff - c3o16 * zoff) + - drho_SET * (c3o64 - c3o16 * xoff + c1o16 * yoff - c3o16 * zoff) + - drho_NET * (c1o64 - c1o16 * xoff - c1o16 * yoff - c1o16 * zoff) + - drho_NEB * (c3o64 - c3o16 * xoff - c3o16 * yoff + c1o16 * zoff) + - drho_NWB * (c9o64 + c3o16 * xoff - c9o16 * yoff + c3o16 * zoff) + - drho_SEB * (c9o64 - c9o16 * xoff + c3o16 * yoff + c3o16 * zoff) + - drho_SWB * (c27o64 + c9o16 * xoff + c9o16 * yoff + c9o16 * zoff); + drho_NWT * (c3o64 + c1o16 * xoff - c3o16 * yoff - c3o16 * zoff) + + drho_SET * (c3o64 - c3o16 * xoff + c1o16 * yoff - c3o16 * zoff) + + drho_NET * (c1o64 - c1o16 * xoff - c1o16 * yoff - c1o16 * zoff) + + drho_NEB * (c3o64 - c3o16 * xoff - c3o16 * yoff + c1o16 * zoff) + + drho_NWB * (c9o64 + c3o16 * xoff - c9o16 * yoff + c3o16 * zoff) + + drho_SEB * (c9o64 - c9o16 * xoff + c3o16 * yoff + c3o16 * zoff) + + drho_SWB * (c27o64 + c9o16 * xoff + c9o16 * yoff + c9o16 * zoff); vx1 = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); vx2 = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); vx3 = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); @@ -42584,13 +42584,13 @@ __global__ void scaleCFLast27( real* DC, //drho = c1o64*drho_NEB+c3o64*drho_NET+c3o64*drho_NWB+c9o64*drho_NWT+c3o64*drho_SEB+c9o64*drho_SET+c9o64*drho_SWB+c27o64*drho_SWT; drho = drho_SWT * (c27o64 + c9o16 * xoff + c9o16 * yoff - c9o16 * zoff) + - drho_NWT * (c9o64 + c3o16 * xoff - c9o16 * yoff - c3o16 * zoff) + - drho_SET * (c9o64 - c9o16 * xoff + c3o16 * yoff - c3o16 * zoff) + - drho_NET * (c3o64 - c3o16 * xoff - c3o16 * yoff - c1o16 * zoff) + - drho_NEB * (c1o64 - c1o16 * xoff - c1o16 * yoff + c1o16 * zoff) + - drho_NWB * (c3o64 + c1o16 * xoff - c3o16 * yoff + c3o16 * zoff) + - drho_SEB * (c3o64 - c3o16 * xoff + c1o16 * yoff + c3o16 * zoff) + - drho_SWB * (c9o64 + c3o16 * xoff + c3o16 * yoff + c9o16 * zoff); + drho_NWT * (c9o64 + c3o16 * xoff - c9o16 * yoff - c3o16 * zoff) + + drho_SET * (c9o64 - c9o16 * xoff + c3o16 * yoff - c3o16 * zoff) + + drho_NET * (c3o64 - c3o16 * xoff - c3o16 * yoff - c1o16 * zoff) + + drho_NEB * (c1o64 - c1o16 * xoff - c1o16 * yoff + c1o16 * zoff) + + drho_NWB * (c3o64 + c1o16 * xoff - c3o16 * yoff + c3o16 * zoff) + + drho_SEB * (c3o64 - c3o16 * xoff + c1o16 * yoff + c3o16 * zoff) + + drho_SWB * (c9o64 + c3o16 * xoff + c3o16 * yoff + c9o16 * zoff); vx1 = a0 + c1o4*(-ax - ay + az) + c1o16*(axx + axy - axz + ayy - ayz + azz) + c1o64*( axyz); vx2 = b0 + c1o4*(-bx - by + bz) + c1o16*(bxx + bxy - bxz + byy - byz + bzz) + c1o64*( bxyz); vx3 = c0 + c1o4*(-cx - cy + cz) + c1o16*(cxx + cxy - cxz + cyy - cyz + czz) + c1o64*( cxyz); @@ -42671,13 +42671,13 @@ __global__ void scaleCFLast27( real* DC, //drho =c3o64*drho_NEB+c9o64*drho_NET+c1o64*drho_NWB+c3o64*drho_NWT+c9o64*drho_SEB+c27o64*drho_SET+c3o64*drho_SWB+c9o64*drho_SWT; drho = drho_SET * (c27o64 - c9o16 * xoff + c9o16 * yoff - c9o16 * zoff) + - drho_NET * (c9o64 - c3o16 * xoff - c9o16 * yoff - c3o16 * zoff) + - drho_SWT * (c9o64 + c9o16 * xoff + c3o16 * yoff - c3o16 * zoff) + - drho_NWT * (c3o64 + c3o16 * xoff - c3o16 * yoff - c1o16 * zoff) + - drho_NWB * (c1o64 + c1o16 * xoff - c1o16 * yoff + c1o16 * zoff) + - drho_NEB * (c3o64 - c1o16 * xoff - c3o16 * yoff + c3o16 * zoff) + - drho_SWB * (c3o64 + c3o16 * xoff + c1o16 * yoff + c3o16 * zoff) + - drho_SEB * (c9o64 - c3o16 * xoff + c3o16 * yoff + c9o16 * zoff); + drho_NET * (c9o64 - c3o16 * xoff - c9o16 * yoff - c3o16 * zoff) + + drho_SWT * (c9o64 + c9o16 * xoff + c3o16 * yoff - c3o16 * zoff) + + drho_NWT * (c3o64 + c3o16 * xoff - c3o16 * yoff - c1o16 * zoff) + + drho_NWB * (c1o64 + c1o16 * xoff - c1o16 * yoff + c1o16 * zoff) + + drho_NEB * (c3o64 - c1o16 * xoff - c3o16 * yoff + c3o16 * zoff) + + drho_SWB * (c3o64 + c3o16 * xoff + c1o16 * yoff + c3o16 * zoff) + + drho_SEB * (c9o64 - c3o16 * xoff + c3o16 * yoff + c9o16 * zoff); vx1 = a0 + c1o4*( ax - ay + az) + c1o16*(axx - axy + axz + ayy - ayz + azz) + c1o64*(-axyz); vx2 = b0 + c1o4*( bx - by + bz) + c1o16*(bxx - bxy + bxz + byy - byz + bzz) + c1o64*(-bxyz); vx3 = c0 + c1o4*( cx - cy + cz) + c1o16*(cxx - cxy + cxz + cyy - cyz + czz) + c1o64*(-cxyz); @@ -42758,13 +42758,13 @@ __global__ void scaleCFLast27( real* DC, //drho =c9o64*drho_NEB+c3o64*drho_NET+c3o64*drho_NWB+c1o64*drho_NWT+c27o64*drho_SEB+c9o64*drho_SET+c9o64*drho_SWB+c3o64*drho_SWT; drho = drho_SET * (c9o64 - c3o16 * xoff + c3o16 * yoff - c9o16 * zoff) + - drho_NET * (c3o64 - c1o16 * xoff - c3o16 * yoff - c3o16 * zoff) + - drho_SWT * (c3o64 + c3o16 * xoff + c1o16 * yoff - c3o16 * zoff) + - drho_NWT * (c1o64 + c1o16 * xoff - c1o16 * yoff - c1o16 * zoff) + - drho_NWB * (c3o64 + c3o16 * xoff - c3o16 * yoff + c1o16 * zoff) + - drho_NEB * (c9o64 - c3o16 * xoff - c9o16 * yoff + c3o16 * zoff) + - drho_SWB * (c9o64 + c9o16 * xoff + c3o16 * yoff + c3o16 * zoff) + - drho_SEB * (c27o64 - c9o16 * xoff + c9o16 * yoff + c9o16 * zoff); + drho_NET * (c3o64 - c1o16 * xoff - c3o16 * yoff - c3o16 * zoff) + + drho_SWT * (c3o64 + c3o16 * xoff + c1o16 * yoff - c3o16 * zoff) + + drho_NWT * (c1o64 + c1o16 * xoff - c1o16 * yoff - c1o16 * zoff) + + drho_NWB * (c3o64 + c3o16 * xoff - c3o16 * yoff + c1o16 * zoff) + + drho_NEB * (c9o64 - c3o16 * xoff - c9o16 * yoff + c3o16 * zoff) + + drho_SWB * (c9o64 + c9o16 * xoff + c3o16 * yoff + c3o16 * zoff) + + drho_SEB * (c27o64 - c9o16 * xoff + c9o16 * yoff + c9o16 * zoff); vx1 = a0 + c1o4*( ax - ay - az) + c1o16*(axx - axy - axz + ayy + ayz + azz) + c1o64*( axyz); vx2 = b0 + c1o4*( bx - by - bz) + c1o16*(bxx - bxy - bxz + byy + byz + bzz) + c1o64*( bxyz); vx3 = c0 + c1o4*( cx - cy - cz) + c1o16*(cxx - cxy - cxz + cyy + cyz + czz) + c1o64*( cxyz); @@ -42846,13 +42846,13 @@ __global__ void scaleCFLast27( real* DC, //drho = c9o64*drho_NEB+c3o64*drho_NET+c27o64*drho_NWB+c9o64*drho_NWT+c3o64*drho_SEB+c1o64*drho_SET+c9o64*drho_SWB+c3o64*drho_SWT; drho = drho_NWT * (c9o64 + c3o16 * xoff - c3o16 * yoff - c9o16 * zoff) + - drho_NET * (c3o64 - c3o16 * xoff - c1o16 * yoff - c3o16 * zoff) + - drho_SWT * (c3o64 + c1o16 * xoff + c3o16 * yoff - c3o16 * zoff) + - drho_SET * (c1o64 - c1o16 * xoff + c1o16 * yoff - c1o16 * zoff) + - drho_SEB * (c3o64 - c3o16 * xoff + c3o16 * yoff + c1o16 * zoff) + - drho_NEB * (c9o64 - c9o16 * xoff - c3o16 * yoff + c3o16 * zoff) + - drho_SWB * (c9o64 + c3o16 * xoff + c9o16 * yoff + c3o16 * zoff) + - drho_NWB * (c27o64 + c9o16 * xoff - c9o16 * yoff + c9o16 * zoff); + drho_NET * (c3o64 - c3o16 * xoff - c1o16 * yoff - c3o16 * zoff) + + drho_SWT * (c3o64 + c1o16 * xoff + c3o16 * yoff - c3o16 * zoff) + + drho_SET * (c1o64 - c1o16 * xoff + c1o16 * yoff - c1o16 * zoff) + + drho_SEB * (c3o64 - c3o16 * xoff + c3o16 * yoff + c1o16 * zoff) + + drho_NEB * (c9o64 - c9o16 * xoff - c3o16 * yoff + c3o16 * zoff) + + drho_SWB * (c9o64 + c3o16 * xoff + c9o16 * yoff + c3o16 * zoff) + + drho_NWB * (c27o64 + c9o16 * xoff - c9o16 * yoff + c9o16 * zoff); vx1 = a0 + c1o4*(-ax + ay - az) + c1o16*(axx - axy + axz + ayy - ayz + azz) + c1o64*( axyz); vx2 = b0 + c1o4*(-bx + by - bz) + c1o16*(bxx - bxy + bxz + byy - byz + bzz) + c1o64*( bxyz); vx3 = c0 + c1o4*(-cx + cy - cz) + c1o16*(cxx - cxy + cxz + cyy - cyz + czz) + c1o64*( cxyz); @@ -42944,13 +42944,13 @@ __global__ void scaleCFLast27( real* DC, //drho = c3o64*drho_NEB+c9o64*drho_NET+c9o64*drho_NWB+c27o64*drho_NWT+c1o64*drho_SEB+c3o64*drho_SET+c3o64*drho_SWB+c9o64*drho_SWT; drho = drho_NWT * (c27o64 + c9o16 * xoff - c9o16 * yoff - c9o16 * zoff) + - drho_NET * (c9o64 - c9o16 * xoff - c3o16 * yoff - c3o16 * zoff) + - drho_SWT * (c9o64 + c3o16 * xoff + c9o16 * yoff - c3o16 * zoff) + - drho_SET * (c3o64 - c3o16 * xoff + c3o16 * yoff - c1o16 * zoff) + - drho_SEB * (c1o64 - c1o16 * xoff + c1o16 * yoff + c1o16 * zoff) + - drho_NEB * (c3o64 - c3o16 * xoff - c1o16 * yoff + c3o16 * zoff) + - drho_SWB * (c3o64 + c1o16 * xoff + c3o16 * yoff + c3o16 * zoff) + - drho_NWB * (c9o64 + c3o16 * xoff - c3o16 * yoff + c9o16 * zoff); + drho_NET * (c9o64 - c9o16 * xoff - c3o16 * yoff - c3o16 * zoff) + + drho_SWT * (c9o64 + c3o16 * xoff + c9o16 * yoff - c3o16 * zoff) + + drho_SET * (c3o64 - c3o16 * xoff + c3o16 * yoff - c1o16 * zoff) + + drho_SEB * (c1o64 - c1o16 * xoff + c1o16 * yoff + c1o16 * zoff) + + drho_NEB * (c3o64 - c3o16 * xoff - c1o16 * yoff + c3o16 * zoff) + + drho_SWB * (c3o64 + c1o16 * xoff + c3o16 * yoff + c3o16 * zoff) + + drho_NWB * (c9o64 + c3o16 * xoff - c3o16 * yoff + c9o16 * zoff); vx1 = a0 + c1o4*(-ax + ay + az) + c1o16*(axx - axy - axz + ayy + ayz + azz) + c1o64*(-axyz); vx2 = b0 + c1o4*(-bx + by + bz) + c1o16*(bxx - bxy - bxz + byy + byz + bzz) + c1o64*(-bxyz); vx3 = c0 + c1o4*(-cx + cy + cz) + c1o16*(cxx - cxy - cxz + cyy + cyz + czz) + c1o64*(-cxyz); @@ -43031,13 +43031,13 @@ __global__ void scaleCFLast27( real* DC, //drho = c9o64*drho_NEB+c27o64*drho_NET+c3o64*drho_NWB+c9o64*drho_NWT+c3o64*drho_SEB+c9o64*drho_SET+c1o64*drho_SWB+c3o64*drho_SWT; drho = drho_NET * (c27o64 - c9o16 * xoff - c9o16 * yoff - c9o16 * zoff) + - drho_NWT * (c9o64 + c9o16 * xoff - c3o16 * yoff - c3o16 * zoff) + - drho_SET * (c9o64 - c3o16 * xoff + c9o16 * yoff - c3o16 * zoff) + - drho_SWT * (c3o64 + c3o16 * xoff + c3o16 * yoff - c1o16 * zoff) + - drho_SWB * (c1o64 + c1o16 * xoff + c1o16 * yoff + c1o16 * zoff) + - drho_NWB * (c3o64 + c3o16 * xoff - c1o16 * yoff + c3o16 * zoff) + - drho_SEB * (c3o64 - c1o16 * xoff + c3o16 * yoff + c3o16 * zoff) + - drho_NEB * (c9o64 - c3o16 * xoff - c3o16 * yoff + c9o16 * zoff); + drho_NWT * (c9o64 + c9o16 * xoff - c3o16 * yoff - c3o16 * zoff) + + drho_SET * (c9o64 - c3o16 * xoff + c9o16 * yoff - c3o16 * zoff) + + drho_SWT * (c3o64 + c3o16 * xoff + c3o16 * yoff - c1o16 * zoff) + + drho_SWB * (c1o64 + c1o16 * xoff + c1o16 * yoff + c1o16 * zoff) + + drho_NWB * (c3o64 + c3o16 * xoff - c1o16 * yoff + c3o16 * zoff) + + drho_SEB * (c3o64 - c1o16 * xoff + c3o16 * yoff + c3o16 * zoff) + + drho_NEB * (c9o64 - c3o16 * xoff - c3o16 * yoff + c9o16 * zoff); vx1 = a0 + c1o4 *( ax + ay + az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*( axyz); vx2 = b0 + c1o4 *( bx + by + bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*( bxyz); vx3 = c0 + c1o4 *( cx + cy + cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*( cxyz); @@ -43119,13 +43119,13 @@ __global__ void scaleCFLast27( real* DC, //drho = c27o64*drho_NEB+c9o64*drho_NET+c9o64*drho_NWB+c3o64*drho_NWT+c9o64*drho_SEB+c3o64*drho_SET+c3o64*drho_SWB+c1o64*drho_SWT; drho = drho_NET * (0.140625 - 0.1875 * xoff - 0.1875 * yoff - 0.5625 * zoff) + - drho_NWT * (0.046875 + 0.1875 * xoff - 0.0625 * yoff - 0.1875 * zoff) + - drho_SET * (0.046875 - 0.0625 * xoff + 0.1875 * yoff - 0.1875 * zoff) + - drho_SWT * (0.015625 + 0.0625 * xoff + 0.0625 * yoff - 0.0625 * zoff) + - drho_SWB * (0.046875 + 0.1875 * xoff + 0.1875 * yoff + 0.0625 * zoff) + - drho_NWB * (0.140625 + 0.5625 * xoff - 0.1875 * yoff + 0.1875 * zoff) + - drho_SEB * (0.140625 - 0.1875 * xoff + 0.5625 * yoff + 0.1875 * zoff) + - drho_NEB * (0.421875 - 0.5625 * xoff - 0.5625 * yoff + 0.5625 * zoff); + drho_NWT * (0.046875 + 0.1875 * xoff - 0.0625 * yoff - 0.1875 * zoff) + + drho_SET * (0.046875 - 0.0625 * xoff + 0.1875 * yoff - 0.1875 * zoff) + + drho_SWT * (0.015625 + 0.0625 * xoff + 0.0625 * yoff - 0.0625 * zoff) + + drho_SWB * (0.046875 + 0.1875 * xoff + 0.1875 * yoff + 0.0625 * zoff) + + drho_NWB * (0.140625 + 0.5625 * xoff - 0.1875 * yoff + 0.1875 * zoff) + + drho_SEB * (0.140625 - 0.1875 * xoff + 0.5625 * yoff + 0.1875 * zoff) + + drho_NEB * (0.421875 - 0.5625 * xoff - 0.5625 * yoff + 0.5625 * zoff); vx1 = a0 + c1o4*( ax + ay - az) + c1o16*(axx + axy - axz + ayy - ayz + azz) + c1o64*(-axyz); vx2 = b0 + c1o4*( bx + by - bz) + c1o16*(bxx + bxy - bxz + byy - byz + bzz) + c1o64*(-bxyz); vx3 = c0 + c1o4*( cx + cy - cz) + c1o16*(cxx + cxy - cxz + cyy - cyz + czz) + c1o64*(-cxyz); @@ -44009,7 +44009,7 @@ __global__ void scaleCFThSMG7( real* DC, //besser - a0=(-c2o1*axx - c2o1*ayy - c2o1*azz + Conc_C_NEB + Conc_C_NET + Conc_C_NWB + Conc_C_NWT + Conc_C_SEB + Conc_C_SET + Conc_C_SWB + Conc_C_SWT)*c1o8; + a0=(-c2o1*axx - c2o1*ayy - c2o1*azz + Conc_C_NEB + Conc_C_NET + Conc_C_NWB + Conc_C_NWT + Conc_C_SEB + Conc_C_SET + Conc_C_SWB + Conc_C_SWT)*c1o8; ax=(Conc_C_NEB + Conc_C_NET - Conc_C_NWB - Conc_C_NWT + Conc_C_SEB + Conc_C_SET - Conc_C_SWB - Conc_C_SWT)*c1o4; ay=(Conc_C_NEB + Conc_C_NET + Conc_C_NWB + Conc_C_NWT - Conc_C_SEB - Conc_C_SET - Conc_C_SWB - Conc_C_SWT)*c1o4; az=(-Conc_C_NEB + Conc_C_NET - Conc_C_NWB + Conc_C_NWT - Conc_C_SEB + Conc_C_SET - Conc_C_SWB + Conc_C_SWT)*c1o4; @@ -45297,21 +45297,21 @@ __global__ void scaleCFThS7( real* DC, vx2=fnF[kzero]+fneF[kzero]+fnwF[kw]+ftnF[kzero]+fbnF[kb]-fsF[ks]-fseF[ks]-fswF[ksw]-ftsF[ks]-fbsF[kbs]+ftneF[kzero]-ftswF[ksw]-ftseF[ks]+ftnwF[kw]+fbneF[kb]-fbswF[kbsw]-fbseF[kbs]+fbnwF[kbw]; vx3=ftF[kzero]+fteF[kzero]+ftwF[kw]+ftnF[kzero]+ftsF[ks]-fbF[kb]-fbeF[kb]-fbwF[kbw]-fbnF[kb]-fbsF[kbs]+ftneF[kzero]+ftswF[ksw]+ftseF[ks]+ftnwF[kw]-fbneF[kb]-fbswF[kbsw]-fbseF[kbs]-fbnwF[kbw]; - Conc_F_SET = c27o64 * Conc_C_SET + c9o64 * (Conc_C_SEB+Conc_C_SWT+Conc_C_NET) + c3o64 * (Conc_C_SWB+Conc_C_NEB+Conc_C_NWT) + c1o64 * Conc_C_NWB - c3o32 * (Diff_Conc_XX + Diff_Conc_YY + Diff_Conc_ZZ); + Conc_F_SET = c27o64 * Conc_C_SET + c9o64 * (Conc_C_SEB+Conc_C_SWT+Conc_C_NET) + c3o64 * (Conc_C_SWB+Conc_C_NEB+Conc_C_NWT) + c1o64 * Conc_C_NWB - c3o32 * (Diff_Conc_XX + Diff_Conc_YY + Diff_Conc_ZZ); - real Diff_Conc_X_FSET = c1o16 * (c9o1 * Conc_C_SET - c9o1 * Conc_C_SWT + c3o1 * Conc_C_SEB - c3o1 * Conc_C_SWB + c3o1 * Conc_C_NET - c3o1 * Conc_C_NWT + c1o1 * Conc_C_NEB - c1o1 * Conc_C_NWB) + c1o4 * Diff_Conc_XX; - real Diff_Conc_Y_FSET = c1o16 * (c9o1 * Conc_C_NET - c9o1 * Conc_C_SET + c3o1 * Conc_C_NEB - c3o1 * Conc_C_SEB + c3o1 * Conc_C_NWT - c3o1 * Conc_C_SWT + c1o1 * Conc_C_NWB - c1o1 * Conc_C_SWB) - c1o4 * Diff_Conc_YY; - real Diff_Conc_Z_FSET = c1o16 * (c9o1 * Conc_C_SET - c9o1 * Conc_C_SEB + c3o1 * Conc_C_SWT - c3o1 * Conc_C_SWB + c3o1 * Conc_C_NET - c3o1 * Conc_C_NEB + c1o1 * Conc_C_NWT - c1o1 * Conc_C_NWB) + c1o4 * Diff_Conc_ZZ; + real Diff_Conc_X_FSET = c1o16 * (c9o1 * Conc_C_SET - c9o1 * Conc_C_SWT + c3o1 * Conc_C_SEB - c3o1 * Conc_C_SWB + c3o1 * Conc_C_NET - c3o1 * Conc_C_NWT + c1o1 * Conc_C_NEB - c1o1 * Conc_C_NWB) + c1o4 * Diff_Conc_XX; + real Diff_Conc_Y_FSET = c1o16 * (c9o1 * Conc_C_NET - c9o1 * Conc_C_SET + c3o1 * Conc_C_NEB - c3o1 * Conc_C_SEB + c3o1 * Conc_C_NWT - c3o1 * Conc_C_SWT + c1o1 * Conc_C_NWB - c1o1 * Conc_C_SWB) - c1o4 * Diff_Conc_YY; + real Diff_Conc_Z_FSET = c1o16 * (c9o1 * Conc_C_SET - c9o1 * Conc_C_SEB + c3o1 * Conc_C_SWT - c3o1 * Conc_C_SWB + c3o1 * Conc_C_NET - c3o1 * Conc_C_NEB + c1o1 * Conc_C_NWT - c1o1 * Conc_C_NWB) + c1o4 * Diff_Conc_ZZ; - Mx = Conc_F_SET*vx1-(c1o1+ae)/(c3o1*omegaD_F)*c1o2/*two*/*Diff_Conc_X_FSET; - My = Conc_F_SET*vx2-(c1o1+ae)/(c3o1*omegaD_F)*c1o2/*two*/*Diff_Conc_Y_FSET; - Mz = Conc_F_SET*vx3-(c1o1+ae)/(c3o1*omegaD_F)*c1o2/*two*/*Diff_Conc_Z_FSET; - Mxx= Conc_F_SET*((c1o1+ae)/c3o1+(vx1*vx1)); - Myy= Conc_F_SET*((c1o1+ae)/c3o1+(vx2*vx2)); - Mzz= Conc_F_SET*((c1o1+ae)/c3o1+(vx3*vx3)); - M0 = Conc_F_SET; + Mx = Conc_F_SET*vx1-(c1o1+ae)/(c3o1*omegaD_F)*c1o2/*two*/*Diff_Conc_X_FSET; + My = Conc_F_SET*vx2-(c1o1+ae)/(c3o1*omegaD_F)*c1o2/*two*/*Diff_Conc_Y_FSET; + Mz = Conc_F_SET*vx3-(c1o1+ae)/(c3o1*omegaD_F)*c1o2/*two*/*Diff_Conc_Z_FSET; + Mxx= Conc_F_SET*((c1o1+ae)/c3o1+(vx1*vx1)); + Myy= Conc_F_SET*((c1o1+ae)/c3o1+(vx2*vx2)); + Mzz= Conc_F_SET*((c1o1+ae)/c3o1+(vx3*vx3)); + M0 = Conc_F_SET; - (D7F.f[0])[kzero] = M0-Mzz-Mxx-Myy; + (D7F.f[0])[kzero] = M0-Mzz-Mxx-Myy; (D7F.f[1])[kzero] = c1o2*Mx +c1o2*Mxx; (D7F.f[2])[kw ] = c1o2*Mxx-c1o2*Mx; (D7F.f[3])[kzero] = c1o2*My +c1o2*Myy; @@ -45607,7 +45607,7 @@ __global__ void scaleCFThS27( real* DC, unsigned int kCF, real nu, real diffusivity_fine, - ICellNeigh offCF) + ICellNeigh offCF) { real *feF, *fwF, *fnF, *fsF, *ftF, *fbF, *fneF, *fswF, *fseF, *fnwF, *fteF, *fbwF, *fbeF, *ftwF, *ftnF, *fbsF, *fbnF, *ftsF, /**fzeroF,*/ *ftneF, *ftswF, *ftseF, *ftnwF, *fbneF, *fbswF, *fbseF, *fbnwF; @@ -46571,34 +46571,34 @@ __global__ void scaleCFThS27( real* DC, real Diff_Conc_YY = ((Diff_Conc_Y_CNEB + Diff_Conc_Y_CNWB + Diff_Conc_Y_CNET + Diff_Conc_Y_CNWT) - (Diff_Conc_Y_CSEB + Diff_Conc_Y_CSWB + Diff_Conc_Y_CSET + Diff_Conc_Y_CSWT)) * c1o4; real Diff_Conc_ZZ = ((Diff_Conc_Z_CSET + Diff_Conc_Z_CSWT + Diff_Conc_Z_CNET + Diff_Conc_Z_CNWT) - (Diff_Conc_Z_CSEB + Diff_Conc_Z_CSWB + Diff_Conc_Z_CNEB + Diff_Conc_Z_CNWB)) * c1o4; - real dx = c1o4 * (Conc_C_NEB + Conc_C_NET - Conc_C_NWB - Conc_C_NWT + Conc_C_SEB + Conc_C_SET - Conc_C_SWB - Conc_C_SWT); - real dy = c1o4 * (Conc_C_NEB + Conc_C_NET + Conc_C_NWB + Conc_C_NWT - Conc_C_SEB - Conc_C_SET - Conc_C_SWB - Conc_C_SWT); - real dz = c1o4 * (-Conc_C_NEB + Conc_C_NET - Conc_C_NWB + Conc_C_NWT - Conc_C_SEB + Conc_C_SET - Conc_C_SWB + Conc_C_SWT); - real dxx = Diff_Conc_XX * c1o2; - real dyy = Diff_Conc_YY * c1o2; - real dzz = Diff_Conc_ZZ * c1o2; - real dxy = c1o2 * (Conc_C_NEB + Conc_C_NET - Conc_C_NWB - Conc_C_NWT - Conc_C_SEB - Conc_C_SET + Conc_C_SWB + Conc_C_SWT); - real dyz = c1o2 * (-Conc_C_NEB + Conc_C_NET - Conc_C_NWB + Conc_C_NWT + Conc_C_SEB - Conc_C_SET + Conc_C_SWB - Conc_C_SWT); - real dxz = c1o2 * (-Conc_C_NEB + Conc_C_NET + Conc_C_NWB - Conc_C_NWT - Conc_C_SEB + Conc_C_SET + Conc_C_SWB - Conc_C_SWT); - real dxyz = -Conc_C_NEB + Conc_C_NET + Conc_C_NWB - Conc_C_NWT + Conc_C_SEB - Conc_C_SET - Conc_C_SWB + Conc_C_SWT; - real d0 = c1o8 * (-c2o1 * dxx - c2o1 * dyy - c2o1 * dzz + Conc_C_NEB + Conc_C_NET + Conc_C_NWB + Conc_C_NWT + Conc_C_SEB + Conc_C_SET + Conc_C_SWB + Conc_C_SWT); + real dx = c1o4 * (Conc_C_NEB + Conc_C_NET - Conc_C_NWB - Conc_C_NWT + Conc_C_SEB + Conc_C_SET - Conc_C_SWB - Conc_C_SWT); + real dy = c1o4 * (Conc_C_NEB + Conc_C_NET + Conc_C_NWB + Conc_C_NWT - Conc_C_SEB - Conc_C_SET - Conc_C_SWB - Conc_C_SWT); + real dz = c1o4 * (-Conc_C_NEB + Conc_C_NET - Conc_C_NWB + Conc_C_NWT - Conc_C_SEB + Conc_C_SET - Conc_C_SWB + Conc_C_SWT); + real dxx = Diff_Conc_XX * c1o2; + real dyy = Diff_Conc_YY * c1o2; + real dzz = Diff_Conc_ZZ * c1o2; + real dxy = c1o2 * (Conc_C_NEB + Conc_C_NET - Conc_C_NWB - Conc_C_NWT - Conc_C_SEB - Conc_C_SET + Conc_C_SWB + Conc_C_SWT); + real dyz = c1o2 * (-Conc_C_NEB + Conc_C_NET - Conc_C_NWB + Conc_C_NWT + Conc_C_SEB - Conc_C_SET + Conc_C_SWB - Conc_C_SWT); + real dxz = c1o2 * (-Conc_C_NEB + Conc_C_NET + Conc_C_NWB - Conc_C_NWT - Conc_C_SEB + Conc_C_SET + Conc_C_SWB - Conc_C_SWT); + real dxyz = -Conc_C_NEB + Conc_C_NET + Conc_C_NWB - Conc_C_NWT + Conc_C_SEB - Conc_C_SET - Conc_C_SWB + Conc_C_SWT; + real d0 = c1o8 * (-c2o1 * dxx - c2o1 * dyy - c2o1 * dzz + Conc_C_NEB + Conc_C_NET + Conc_C_NWB + Conc_C_NWT + Conc_C_SEB + Conc_C_SET + Conc_C_SWB + Conc_C_SWT); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // // Bernd das Brot // - // X------X - // | | x---x - // | ---+-+-> | ----> off-vector - // | | x---x - // X------X - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // X------X + // | | x---x + // | ---+-+-> | ----> off-vector + // | | x---x + // X------X + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// d0 = d0 + xoff * dx + yoff * dy + zoff * dz + xoff_sq * dxx + yoff_sq * dyy + zoff_sq * dzz + xoff*yoff*dxy + xoff*zoff*dxz + yoff*zoff*dyz; dx = dx + c2o1 * xoff * dxx + yoff * dxy + zoff * dxz; dy = dy + c2o1 * yoff * dyy + xoff * dxy + zoff * dyz; dz = dz + c2o1 * zoff * dzz + xoff * dxz + yoff * dyz; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -46723,7 +46723,7 @@ __global__ void scaleCFThS27( real* DC, Diff_Conc_Y = dy + y * dyy + x * dxy + z * dyz + x * z * dxyz; Diff_Conc_Z = dz + z * dzz + x * dxz + y * dyz + x * y * dxyz; - Mx = Conc_F*vx1-(c1o1)/(c3o1*omegaD_F)*c1o2/*two*/*Diff_Conc_X; + Mx = Conc_F*vx1-(c1o1)/(c3o1*omegaD_F)*c1o2/*two*/*Diff_Conc_X; My = Conc_F*vx2-(c1o1)/(c3o1*omegaD_F)*c1o2/*two*/*Diff_Conc_Y; Mz = Conc_F*vx3-(c1o1)/(c3o1*omegaD_F)*c1o2/*two*/*Diff_Conc_Z; //Mxx= Conc_F_SWT*((one+ae)/three+(vx1*vx1)); @@ -46801,7 +46801,7 @@ __global__ void scaleCFThS27( real* DC, Diff_Conc_Y = dy + y * dyy + x * dxy + z * dyz + x * z * dxyz; Diff_Conc_Z = dz + z * dzz + x * dxz + y * dyz + x * y * dxyz; - Mx = Conc_F*vx1-(c1o1)/(c3o1*omegaD_F)*c1o2/*two*/*Diff_Conc_X; + Mx = Conc_F*vx1-(c1o1)/(c3o1*omegaD_F)*c1o2/*two*/*Diff_Conc_X; My = Conc_F*vx2-(c1o1)/(c3o1*omegaD_F)*c1o2/*two*/*Diff_Conc_Y; Mz = Conc_F*vx3-(c1o1)/(c3o1*omegaD_F)*c1o2/*two*/*Diff_Conc_Z; //Mxx= Conc_F_SET*((one+ae)/three+(vx1*vx1)); @@ -46879,7 +46879,7 @@ __global__ void scaleCFThS27( real* DC, Diff_Conc_Y = dy + y * dyy + x * dxy + z * dyz + x * z * dxyz; Diff_Conc_Z = dz + z * dzz + x * dxz + y * dyz + x * y * dxyz; - Mx = Conc_F*vx1-(c1o1)/(c3o1*omegaD_F)*c1o2/*two*/*Diff_Conc_X; + Mx = Conc_F*vx1-(c1o1)/(c3o1*omegaD_F)*c1o2/*two*/*Diff_Conc_X; My = Conc_F*vx2-(c1o1)/(c3o1*omegaD_F)*c1o2/*two*/*Diff_Conc_Y; Mz = Conc_F*vx3-(c1o1)/(c3o1*omegaD_F)*c1o2/*two*/*Diff_Conc_Z; //Mxx= Conc_F_SEB*((one+ae)/three+(vx1*vx1)); @@ -47287,18 +47287,18 @@ __global__ void scaleCFEff27(real* DC, unsigned int* neighborFX, unsigned int* neighborFY, unsigned int* neighborFZ, - unsigned long long numberOfLBnodesCoarse, - unsigned long long numberOfLBnodesFine, - bool isEvenTimestep, + unsigned long long numberOfLBnodesCoarse, + unsigned long long numberOfLBnodesFine, + bool isEvenTimestep, unsigned int* posCSWB, unsigned int* posFSWB, unsigned int kCF, - real omCoarse, - real omFine, - real nu, - unsigned int nxC, - unsigned int nyC, - unsigned int nxF, + real omCoarse, + real omFine, + real nu, + unsigned int nxC, + unsigned int nyC, + unsigned int nxF, unsigned int nyF, ICellNeigh offCF) { @@ -47504,10 +47504,10 @@ __global__ void scaleCFEff27(real* DC, //vx1_SWB = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_SWB = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_SWB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_SWB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_SWB = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_SWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_SWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_SWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_SWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_SWB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; kxyFromfcNEQ_SWB = -c3o1*omegaS*(f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE-(vx1_SWB*vx2_SWB)); @@ -47559,10 +47559,10 @@ __global__ void scaleCFEff27(real* DC, //vx1_SWT = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_SWT = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_SWT = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_SWT = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_SWT = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_SWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_SWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_SWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_SWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_SWT = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; kxyFromfcNEQ_SWT = -c3o1*omegaS*(f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE-(vx1_SWT*vx2_SWT)); @@ -47614,10 +47614,10 @@ __global__ void scaleCFEff27(real* DC, //vx1_SET = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_SET = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_SET = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_SET = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_SET = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_SET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_SET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_SET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_SET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_SET = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; kxyFromfcNEQ_SET = -c3o1*omegaS*(f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE-(vx1_SET*vx2_SET)); @@ -47669,10 +47669,10 @@ __global__ void scaleCFEff27(real* DC, //vx1_SEB = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_SEB = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_SEB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_SEB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_SEB = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_SEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_SEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_SEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_SEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_SEB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; kxyFromfcNEQ_SEB = -c3o1*omegaS*(f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE-(vx1_SEB*vx2_SEB)); @@ -47734,10 +47734,10 @@ __global__ void scaleCFEff27(real* DC, //vx1_NWB = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_NWB = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_NWB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_NWB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_NWB = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_NWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_NWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_NWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_NWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_NWB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; kxyFromfcNEQ_NWB = -c3o1*omegaS*(f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE-(vx1_NWB*vx2_NWB)); @@ -47789,10 +47789,10 @@ __global__ void scaleCFEff27(real* DC, //vx1_NWT = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_NWT = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_NWT = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_NWT = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_NWT = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_NWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_NWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_NWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_NWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_NWT = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; kxyFromfcNEQ_NWT = -c3o1*omegaS*(f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE-(vx1_NWT*vx2_NWT)); @@ -47844,10 +47844,10 @@ __global__ void scaleCFEff27(real* DC, //vx1_NET = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_NET = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_NET = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_NET = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_NET = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_NET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_NET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_NET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_NET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_NET = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; kxyFromfcNEQ_NET = -c3o1*omegaS*(f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE-(vx1_NET*vx2_NET)); @@ -47899,10 +47899,10 @@ __global__ void scaleCFEff27(real* DC, //vx1_NEB = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_NEB = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_NEB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_NEB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_NEB = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_NEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_NEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_NEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_NEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_NEB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; kxyFromfcNEQ_NEB = -c3o1*omegaS*(f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE-(vx1_NEB*vx2_NEB)); @@ -50293,13 +50293,13 @@ __global__ void scaleCF27(real* DC, z = -c1o4; drho = (drho_NEB*(c1o1 + c2o1*x + c2o1*y + c4o1*x*y - c2o1*z - c4o1*x*z - c4o1*y*z - c8o1*x*y*z) + - drho_SET*(c1o1 + c2o1*x - c2o1*y - c4o1*x*y + c2o1*z + c4o1*x*z - c4o1*y*z - c8o1*x*y*z) + - drho_NWT*(c1o1 - c2o1*x + c2o1*y - c4o1*x*y + c2o1*z - c4o1*x*z + c4o1*y*z - c8o1*x*y*z) + - drho_SWB*(c1o1 - c2o1*x - c2o1*y + c4o1*x*y - c2o1*z + c4o1*x*z + c4o1*y*z - c8o1*x*y*z) + - drho_SWT*(c1o1 - c2o1*x - c2o1*y + c4o1*x*y + c2o1*z - c4o1*x*z - c4o1*y*z + c8o1*x*y*z) + - drho_NWB*(c1o1 - c2o1*x + c2o1*y - c4o1*x*y - c2o1*z + c4o1*x*z - c4o1*y*z + c8o1*x*y*z) + - drho_SEB*(c1o1 + c2o1*x - c2o1*y - c4o1*x*y - c2o1*z - c4o1*x*z + c4o1*y*z + c8o1*x*y*z) + - drho_NET*(c1o1 + c2o1*x + c2o1*y + c4o1*x*y + c2o1*z + c4o1*x*z + c4o1*y*z + c8o1*x*y*z))/c8o1; + drho_SET*(c1o1 + c2o1*x - c2o1*y - c4o1*x*y + c2o1*z + c4o1*x*z - c4o1*y*z - c8o1*x*y*z) + + drho_NWT*(c1o1 - c2o1*x + c2o1*y - c4o1*x*y + c2o1*z - c4o1*x*z + c4o1*y*z - c8o1*x*y*z) + + drho_SWB*(c1o1 - c2o1*x - c2o1*y + c4o1*x*y - c2o1*z + c4o1*x*z + c4o1*y*z - c8o1*x*y*z) + + drho_SWT*(c1o1 - c2o1*x - c2o1*y + c4o1*x*y + c2o1*z - c4o1*x*z - c4o1*y*z + c8o1*x*y*z) + + drho_NWB*(c1o1 - c2o1*x + c2o1*y - c4o1*x*y - c2o1*z + c4o1*x*z - c4o1*y*z + c8o1*x*y*z) + + drho_SEB*(c1o1 + c2o1*x - c2o1*y - c4o1*x*y - c2o1*z - c4o1*x*z + c4o1*y*z + c8o1*x*y*z) + + drho_NET*(c1o1 + c2o1*x + c2o1*y + c4o1*x*y + c2o1*z + c4o1*x*z + c4o1*y*z + c8o1*x*y*z))/c8o1; vx1 = a0 + ax*x + ay*y + az*z + axx*x*x + ayy*y*y + azz*z*z + axy*x*y + axz*x*z + ayz*y*z; vx2 = b0 + bx*x + by*y + bz*z + bxx*x*x + byy*y*y + bzz*z*z + bxy*x*y + bxz*x*z + byz*y*z; vx3 = c0 + cx*x + cy*y + cz*z + cxx*x*x + cyy*y*y + czz*z*z + cxy*x*y + cxz*x*z + cyz*y*z; diff --git a/src/gpu/core/GPU/GridScaling/ScaleCF_F3_27.cu b/src/gpu/core/GPU/GridScaling/ScaleCF_F3_27.cu index 5301e3c212c35f92c7fc23697f9b6badbbef4a69..536ff7ffe15a2cc4e1c34753c245450471d46b6e 100644 --- a/src/gpu/core/GPU/GridScaling/ScaleCF_F3_27.cu +++ b/src/gpu/core/GPU/GridScaling/ScaleCF_F3_27.cu @@ -15,138 +15,138 @@ using namespace vf::lbm::dir; ////////////////////////////////////////////////////////////////////////// __global__ void scaleCF_comp_D3Q27F3_2018(real* DC, - real* DF, - real* G6, - unsigned int* neighborCX, - unsigned int* neighborCY, - unsigned int* neighborCZ, - unsigned int* neighborFX, - unsigned int* neighborFY, - unsigned int* neighborFZ, - unsigned long long numberOfLBnodesCoarse, - unsigned long long numberOfLBnodesFine, - bool isEvenTimestep, - unsigned int* posCSWB, - unsigned int* posFSWB, - unsigned int kCF, - real omCoarse, - real omFine, - real nu, - unsigned int nxC, - unsigned int nyC, - unsigned int nxF, - unsigned int nyF, - ICellNeigh offCF) + real* DF, + real* G6, + unsigned int* neighborCX, + unsigned int* neighborCY, + unsigned int* neighborCZ, + unsigned int* neighborFX, + unsigned int* neighborFY, + unsigned int* neighborFZ, + unsigned long long numberOfLBnodesCoarse, + unsigned long long numberOfLBnodesFine, + bool isEvenTimestep, + unsigned int* posCSWB, + unsigned int* posFSWB, + unsigned int kCF, + real omCoarse, + real omFine, + real nu, + unsigned int nxC, + unsigned int nyC, + unsigned int nxF, + unsigned int nyF, + ICellNeigh offCF) { - real - *fP00dest, *fM00dest, *f0P0dest, *f0M0dest, *f00Pdest, *f00Mdest, *fPP0dest, *fMM0dest, *fPM0dest, - *fMP0dest, *fP0Pdest, *fM0Mdest, *fP0Mdest, *fM0Pdest, *f0PPdest, *f0MMdest, *f0PMdest, *f0MPdest, - *f000dest, *fMMMdest, *fMMPdest, *fMPPdest, *fMPMdest, *fPPMdest, *fPPPdest, *fPMPdest, *fPMMdest; - - - fP00dest = &DF[dP00 * numberOfLBnodesFine]; - fM00dest = &DF[dM00 * numberOfLBnodesFine]; - f0P0dest = &DF[d0P0 * numberOfLBnodesFine]; - f0M0dest = &DF[d0M0 * numberOfLBnodesFine]; - f00Pdest = &DF[d00P * numberOfLBnodesFine]; - f00Mdest = &DF[d00M * numberOfLBnodesFine]; - fPP0dest = &DF[dPP0 * numberOfLBnodesFine]; - fMM0dest = &DF[dMM0 * numberOfLBnodesFine]; - fPM0dest = &DF[dPM0 * numberOfLBnodesFine]; - fMP0dest = &DF[dMP0 * numberOfLBnodesFine]; - fP0Pdest = &DF[dP0P * numberOfLBnodesFine]; - fM0Mdest = &DF[dM0M * numberOfLBnodesFine]; - fP0Mdest = &DF[dP0M * numberOfLBnodesFine]; - fM0Pdest = &DF[dM0P * numberOfLBnodesFine]; - f0PPdest = &DF[d0PP * numberOfLBnodesFine]; - f0MMdest = &DF[d0MM * numberOfLBnodesFine]; - f0PMdest = &DF[d0PM * numberOfLBnodesFine]; - f0MPdest = &DF[d0MP * numberOfLBnodesFine]; - f000dest = &DF[d000 * numberOfLBnodesFine]; - fMMMdest = &DF[dMMM * numberOfLBnodesFine]; - fMMPdest = &DF[dMMP * numberOfLBnodesFine]; - fMPPdest = &DF[dMPP * numberOfLBnodesFine]; - fMPMdest = &DF[dMPM * numberOfLBnodesFine]; - fPPMdest = &DF[dPPM * numberOfLBnodesFine]; - fPPPdest = &DF[dPPP * numberOfLBnodesFine]; - fPMPdest = &DF[dPMP * numberOfLBnodesFine]; - fPMMdest = &DF[dPMM * numberOfLBnodesFine]; - - real - *fP00source, *fM00source, *f0P0source, *f0M0source, *f00Psource, *f00Msource, *fPP0source, *fMM0source, *fPM0source, - *fMP0source, *fP0Psource, *fM0Msource, *fP0Msource, *fM0Psource, *f0PPsource, *f0MMsource, *f0PMsource, *f0MPsource, - *f000source, *fMMMsource, *fMMPsource, *fMPPsource, *fMPMsource, *fPPMsource, *fPPPsource, *fPMPsource, *fPMMsource; - - if (isEvenTimestep == true) - { - fP00source = &DC[dP00 * numberOfLBnodesCoarse]; - fM00source = &DC[dM00 * numberOfLBnodesCoarse]; - f0P0source = &DC[d0P0 * numberOfLBnodesCoarse]; - f0M0source = &DC[d0M0 * numberOfLBnodesCoarse]; - f00Psource = &DC[d00P * numberOfLBnodesCoarse]; - f00Msource = &DC[d00M * numberOfLBnodesCoarse]; - fPP0source = &DC[dPP0 * numberOfLBnodesCoarse]; - fMM0source = &DC[dMM0 * numberOfLBnodesCoarse]; - fPM0source = &DC[dPM0 * numberOfLBnodesCoarse]; - fMP0source = &DC[dMP0 * numberOfLBnodesCoarse]; - fP0Psource = &DC[dP0P * numberOfLBnodesCoarse]; - fM0Msource = &DC[dM0M * numberOfLBnodesCoarse]; - fP0Msource = &DC[dP0M * numberOfLBnodesCoarse]; - fM0Psource = &DC[dM0P * numberOfLBnodesCoarse]; - f0PPsource = &DC[d0PP * numberOfLBnodesCoarse]; - f0MMsource = &DC[d0MM * numberOfLBnodesCoarse]; - f0PMsource = &DC[d0PM * numberOfLBnodesCoarse]; - f0MPsource = &DC[d0MP * numberOfLBnodesCoarse]; - f000source = &DC[d000 * numberOfLBnodesCoarse]; - fMMMsource = &DC[dMMM * numberOfLBnodesCoarse]; - fMMPsource = &DC[dMMP * numberOfLBnodesCoarse]; - fMPPsource = &DC[dMPP * numberOfLBnodesCoarse]; - fMPMsource = &DC[dMPM * numberOfLBnodesCoarse]; - fPPMsource = &DC[dPPM * numberOfLBnodesCoarse]; - fPPPsource = &DC[dPPP * numberOfLBnodesCoarse]; - fPMPsource = &DC[dPMP * numberOfLBnodesCoarse]; - fPMMsource = &DC[dPMM * numberOfLBnodesCoarse]; - } - else - { - fP00source = &DC[dM00 * numberOfLBnodesCoarse]; - fM00source = &DC[dP00 * numberOfLBnodesCoarse]; - f0P0source = &DC[d0M0 * numberOfLBnodesCoarse]; - f0M0source = &DC[d0P0 * numberOfLBnodesCoarse]; - f00Psource = &DC[d00M * numberOfLBnodesCoarse]; - f00Msource = &DC[d00P * numberOfLBnodesCoarse]; - fPP0source = &DC[dMM0 * numberOfLBnodesCoarse]; - fMM0source = &DC[dPP0 * numberOfLBnodesCoarse]; - fPM0source = &DC[dMP0 * numberOfLBnodesCoarse]; - fMP0source = &DC[dPM0 * numberOfLBnodesCoarse]; - fP0Psource = &DC[dM0M * numberOfLBnodesCoarse]; - fM0Msource = &DC[dP0P * numberOfLBnodesCoarse]; - fP0Msource = &DC[dM0P * numberOfLBnodesCoarse]; - fM0Psource = &DC[dP0M * numberOfLBnodesCoarse]; - f0PPsource = &DC[d0MM * numberOfLBnodesCoarse]; - f0MMsource = &DC[d0PP * numberOfLBnodesCoarse]; - f0PMsource = &DC[d0MP * numberOfLBnodesCoarse]; - f0MPsource = &DC[d0PM * numberOfLBnodesCoarse]; - f000source = &DC[d000 * numberOfLBnodesCoarse]; - fMMMsource = &DC[dPPP * numberOfLBnodesCoarse]; - fMMPsource = &DC[dPPM * numberOfLBnodesCoarse]; - fMPPsource = &DC[dPMM * numberOfLBnodesCoarse]; - fMPMsource = &DC[dPMP * numberOfLBnodesCoarse]; - fPPMsource = &DC[dMMP * numberOfLBnodesCoarse]; - fPPPsource = &DC[dMMM * numberOfLBnodesCoarse]; - fPMPsource = &DC[dMPM * numberOfLBnodesCoarse]; - fPMMsource = &DC[dMPP * numberOfLBnodesCoarse]; - } - - Distributions6 G; - G.g[dP00] = &G6[dP00 * numberOfLBnodesFine]; - G.g[dM00] = &G6[dM00 * numberOfLBnodesFine]; - G.g[d0P0] = &G6[d0P0 * numberOfLBnodesFine]; - G.g[d0M0] = &G6[d0M0 * numberOfLBnodesFine]; - G.g[d00P] = &G6[d00P * numberOfLBnodesFine]; - G.g[d00M] = &G6[d00M * numberOfLBnodesFine]; - - //////////////////////////////////////////////////////////////////////////////// + real + *fP00dest, *fM00dest, *f0P0dest, *f0M0dest, *f00Pdest, *f00Mdest, *fPP0dest, *fMM0dest, *fPM0dest, + *fMP0dest, *fP0Pdest, *fM0Mdest, *fP0Mdest, *fM0Pdest, *f0PPdest, *f0MMdest, *f0PMdest, *f0MPdest, + *f000dest, *fMMMdest, *fMMPdest, *fMPPdest, *fMPMdest, *fPPMdest, *fPPPdest, *fPMPdest, *fPMMdest; + + + fP00dest = &DF[dP00 * numberOfLBnodesFine]; + fM00dest = &DF[dM00 * numberOfLBnodesFine]; + f0P0dest = &DF[d0P0 * numberOfLBnodesFine]; + f0M0dest = &DF[d0M0 * numberOfLBnodesFine]; + f00Pdest = &DF[d00P * numberOfLBnodesFine]; + f00Mdest = &DF[d00M * numberOfLBnodesFine]; + fPP0dest = &DF[dPP0 * numberOfLBnodesFine]; + fMM0dest = &DF[dMM0 * numberOfLBnodesFine]; + fPM0dest = &DF[dPM0 * numberOfLBnodesFine]; + fMP0dest = &DF[dMP0 * numberOfLBnodesFine]; + fP0Pdest = &DF[dP0P * numberOfLBnodesFine]; + fM0Mdest = &DF[dM0M * numberOfLBnodesFine]; + fP0Mdest = &DF[dP0M * numberOfLBnodesFine]; + fM0Pdest = &DF[dM0P * numberOfLBnodesFine]; + f0PPdest = &DF[d0PP * numberOfLBnodesFine]; + f0MMdest = &DF[d0MM * numberOfLBnodesFine]; + f0PMdest = &DF[d0PM * numberOfLBnodesFine]; + f0MPdest = &DF[d0MP * numberOfLBnodesFine]; + f000dest = &DF[d000 * numberOfLBnodesFine]; + fMMMdest = &DF[dMMM * numberOfLBnodesFine]; + fMMPdest = &DF[dMMP * numberOfLBnodesFine]; + fMPPdest = &DF[dMPP * numberOfLBnodesFine]; + fMPMdest = &DF[dMPM * numberOfLBnodesFine]; + fPPMdest = &DF[dPPM * numberOfLBnodesFine]; + fPPPdest = &DF[dPPP * numberOfLBnodesFine]; + fPMPdest = &DF[dPMP * numberOfLBnodesFine]; + fPMMdest = &DF[dPMM * numberOfLBnodesFine]; + + real + *fP00source, *fM00source, *f0P0source, *f0M0source, *f00Psource, *f00Msource, *fPP0source, *fMM0source, *fPM0source, + *fMP0source, *fP0Psource, *fM0Msource, *fP0Msource, *fM0Psource, *f0PPsource, *f0MMsource, *f0PMsource, *f0MPsource, + *f000source, *fMMMsource, *fMMPsource, *fMPPsource, *fMPMsource, *fPPMsource, *fPPPsource, *fPMPsource, *fPMMsource; + + if (isEvenTimestep == true) + { + fP00source = &DC[dP00 * numberOfLBnodesCoarse]; + fM00source = &DC[dM00 * numberOfLBnodesCoarse]; + f0P0source = &DC[d0P0 * numberOfLBnodesCoarse]; + f0M0source = &DC[d0M0 * numberOfLBnodesCoarse]; + f00Psource = &DC[d00P * numberOfLBnodesCoarse]; + f00Msource = &DC[d00M * numberOfLBnodesCoarse]; + fPP0source = &DC[dPP0 * numberOfLBnodesCoarse]; + fMM0source = &DC[dMM0 * numberOfLBnodesCoarse]; + fPM0source = &DC[dPM0 * numberOfLBnodesCoarse]; + fMP0source = &DC[dMP0 * numberOfLBnodesCoarse]; + fP0Psource = &DC[dP0P * numberOfLBnodesCoarse]; + fM0Msource = &DC[dM0M * numberOfLBnodesCoarse]; + fP0Msource = &DC[dP0M * numberOfLBnodesCoarse]; + fM0Psource = &DC[dM0P * numberOfLBnodesCoarse]; + f0PPsource = &DC[d0PP * numberOfLBnodesCoarse]; + f0MMsource = &DC[d0MM * numberOfLBnodesCoarse]; + f0PMsource = &DC[d0PM * numberOfLBnodesCoarse]; + f0MPsource = &DC[d0MP * numberOfLBnodesCoarse]; + f000source = &DC[d000 * numberOfLBnodesCoarse]; + fMMMsource = &DC[dMMM * numberOfLBnodesCoarse]; + fMMPsource = &DC[dMMP * numberOfLBnodesCoarse]; + fMPPsource = &DC[dMPP * numberOfLBnodesCoarse]; + fMPMsource = &DC[dMPM * numberOfLBnodesCoarse]; + fPPMsource = &DC[dPPM * numberOfLBnodesCoarse]; + fPPPsource = &DC[dPPP * numberOfLBnodesCoarse]; + fPMPsource = &DC[dPMP * numberOfLBnodesCoarse]; + fPMMsource = &DC[dPMM * numberOfLBnodesCoarse]; + } + else + { + fP00source = &DC[dM00 * numberOfLBnodesCoarse]; + fM00source = &DC[dP00 * numberOfLBnodesCoarse]; + f0P0source = &DC[d0M0 * numberOfLBnodesCoarse]; + f0M0source = &DC[d0P0 * numberOfLBnodesCoarse]; + f00Psource = &DC[d00M * numberOfLBnodesCoarse]; + f00Msource = &DC[d00P * numberOfLBnodesCoarse]; + fPP0source = &DC[dMM0 * numberOfLBnodesCoarse]; + fMM0source = &DC[dPP0 * numberOfLBnodesCoarse]; + fPM0source = &DC[dMP0 * numberOfLBnodesCoarse]; + fMP0source = &DC[dPM0 * numberOfLBnodesCoarse]; + fP0Psource = &DC[dM0M * numberOfLBnodesCoarse]; + fM0Msource = &DC[dP0P * numberOfLBnodesCoarse]; + fP0Msource = &DC[dM0P * numberOfLBnodesCoarse]; + fM0Psource = &DC[dP0M * numberOfLBnodesCoarse]; + f0PPsource = &DC[d0MM * numberOfLBnodesCoarse]; + f0MMsource = &DC[d0PP * numberOfLBnodesCoarse]; + f0PMsource = &DC[d0MP * numberOfLBnodesCoarse]; + f0MPsource = &DC[d0PM * numberOfLBnodesCoarse]; + f000source = &DC[d000 * numberOfLBnodesCoarse]; + fMMMsource = &DC[dPPP * numberOfLBnodesCoarse]; + fMMPsource = &DC[dPPM * numberOfLBnodesCoarse]; + fMPPsource = &DC[dPMM * numberOfLBnodesCoarse]; + fMPMsource = &DC[dPMP * numberOfLBnodesCoarse]; + fPPMsource = &DC[dMMP * numberOfLBnodesCoarse]; + fPPPsource = &DC[dMMM * numberOfLBnodesCoarse]; + fPMPsource = &DC[dMPM * numberOfLBnodesCoarse]; + fPMMsource = &DC[dMPP * numberOfLBnodesCoarse]; + } + + Distributions6 G; + G.g[dP00] = &G6[dP00 * numberOfLBnodesFine]; + G.g[dM00] = &G6[dM00 * numberOfLBnodesFine]; + G.g[d0P0] = &G6[d0P0 * numberOfLBnodesFine]; + G.g[d0M0] = &G6[d0M0 * numberOfLBnodesFine]; + G.g[d00P] = &G6[d00P * numberOfLBnodesFine]; + G.g[d00M] = &G6[d00M * numberOfLBnodesFine]; + + //////////////////////////////////////////////////////////////////////////////// const unsigned ix = threadIdx.x; // Globaler x-Index const unsigned iy = blockIdx.x; // Globaler y-Index const unsigned iz = blockIdx.y; // Globaler z-Index @@ -227,47 +227,47 @@ __global__ void scaleCF_comp_D3Q27F3_2018(real* DC, unsigned int k0MM = k0MMbase; unsigned int kMMM = kMMMbase; //////////////////////////////////////////////////////////////////////////////// - fP00 = fP00source[k000]; - fM00 = fM00source[kM00]; - f0P0 = f0P0source[k000]; - f0M0 = f0M0source[k0M0]; - f00P = f00Psource[k000]; - f00M = f00Msource[k00M]; - fPP0 = fPP0source[k000]; - fMM0 = fMM0source[kMM0]; - fPM0 = fPM0source[k0M0]; - fMP0 = fMP0source[kM00]; - fP0P = fP0Psource[k000]; - fM0M = fM0Msource[kM0M]; - fP0M = fP0Msource[k00M]; - fM0P = fM0Psource[kM00]; - f0PP = f0PPsource[k000]; - f0MM = f0MMsource[k0MM]; - f0PM = f0PMsource[k00M]; - f0MP = f0MPsource[k0M0]; - f000 = f000source[k000]; - fMMM = fMMMsource[kMMM]; - fMMP = fMMPsource[kMM0]; - fMPP = fMPPsource[kM00]; - fMPM = fMPMsource[kM0M]; - fPPM = fPPMsource[k00M]; - fPPP = fPPPsource[k000]; - fPMP = fPMPsource[k0M0]; - fPMM = fPMMsource[k0MM]; + fP00 = fP00source[k000]; + fM00 = fM00source[kM00]; + f0P0 = f0P0source[k000]; + f0M0 = f0M0source[k0M0]; + f00P = f00Psource[k000]; + f00M = f00Msource[k00M]; + fPP0 = fPP0source[k000]; + fMM0 = fMM0source[kMM0]; + fPM0 = fPM0source[k0M0]; + fMP0 = fMP0source[kM00]; + fP0P = fP0Psource[k000]; + fM0M = fM0Msource[kM0M]; + fP0M = fP0Msource[k00M]; + fM0P = fM0Psource[kM00]; + f0PP = f0PPsource[k000]; + f0MM = f0MMsource[k0MM]; + f0PM = f0PMsource[k00M]; + f0MP = f0MPsource[k0M0]; + f000 = f000source[k000]; + fMMM = fMMMsource[kMMM]; + fMMP = fMMPsource[kMM0]; + fMPP = fMPPsource[kM00]; + fMPM = fMPMsource[kM0M]; + fPPM = fPPMsource[k00M]; + fPPP = fPPPsource[k000]; + fPMP = fPMPsource[k0M0]; + fPMM = fPMMsource[k0MM]; drhoMMM = fP00+fM00+f0P0+f0M0+f00P+f00M+fPP0+fMM0+fPM0+fMP0+fP0P+fM0M+fP0M+fM0P+f0PP+f0MM+f0PM+f0MP+f000+fPPP+fMMP+fPMP+fMPP+fPPM+fMMM+fPMM+fMPM; vx1MMM = (((fPPP-fMMM)+(fPMP-fMPM)+(fPPM-fMMP)+(fPMM-fMPP)) + (((fPP0-fMM0)+(fP0P-fM0M))+((fPM0-fMP0)+(fP0M-fM0P))) + (fP00-fM00))/(c1o1 + drhoMMM); - vx2MMM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoMMM); - vx3MMM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoMMM); + vx2MMM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoMMM); + vx3MMM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoMMM); - kxyFromfcNEQMMM = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoMMM) - ((vx1MMM*vx2MMM))); - kyzFromfcNEQMMM = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoMMM) - ((vx2MMM*vx3MMM))); - kxzFromfcNEQMMM = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoMMM) - ((vx1MMM*vx3MMM))); - kxxMyyFromfcNEQMMM = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoMMM) - ((vx1MMM*vx1MMM - vx2MMM*vx2MMM))); - kxxMzzFromfcNEQMMM = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoMMM) - ((vx1MMM*vx1MMM - vx3MMM*vx3MMM))); - kyyMzzFromfcNEQMMM = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoMMM) - ((vx2MMM*vx2MMM - vx3MMM*vx3MMM))); + kxyFromfcNEQMMM = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoMMM) - ((vx1MMM*vx2MMM))); + kyzFromfcNEQMMM = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoMMM) - ((vx2MMM*vx3MMM))); + kxzFromfcNEQMMM = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoMMM) - ((vx1MMM*vx3MMM))); + kxxMyyFromfcNEQMMM = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoMMM) - ((vx1MMM*vx1MMM - vx2MMM*vx2MMM))); + kxxMzzFromfcNEQMMM = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoMMM) - ((vx1MMM*vx1MMM - vx3MMM*vx3MMM))); + kyyMzzFromfcNEQMMM = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoMMM) - ((vx2MMM*vx2MMM - vx3MMM*vx3MMM))); - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// //SWT// ////////////////////////////////////////////////////////////////////////// //index @@ -280,45 +280,45 @@ __global__ void scaleCF_comp_D3Q27F3_2018(real* DC, k0MM = neighborCZ[k0MM]; kMMM = neighborCZ[kMMM]; //////////////////////////////////////////////////////////////////////////////// - fP00 = fP00source[k000]; - fM00 = fM00source[kM00]; - f0P0 = f0P0source[k000]; - f0M0 = f0M0source[k0M0]; - f00P = f00Psource[k000]; - f00M = f00Msource[k00M]; - fPP0 = fPP0source[k000]; - fMM0 = fMM0source[kMM0]; - fPM0 = fPM0source[k0M0]; - fMP0 = fMP0source[kM00]; - fP0P = fP0Psource[k000]; - fM0M = fM0Msource[kM0M]; - fP0M = fP0Msource[k00M]; - fM0P = fM0Psource[kM00]; - f0PP = f0PPsource[k000]; - f0MM = f0MMsource[k0MM]; - f0PM = f0PMsource[k00M]; - f0MP = f0MPsource[k0M0]; - f000 = f000source[k000]; - fMMM = fMMMsource[kMMM]; - fMMP = fMMPsource[kMM0]; - fMPP = fMPPsource[kM00]; - fMPM = fMPMsource[kM0M]; - fPPM = fPPMsource[k00M]; - fPPP = fPPPsource[k000]; - fPMP = fPMPsource[k0M0]; - fPMM = fPMMsource[k0MM]; + fP00 = fP00source[k000]; + fM00 = fM00source[kM00]; + f0P0 = f0P0source[k000]; + f0M0 = f0M0source[k0M0]; + f00P = f00Psource[k000]; + f00M = f00Msource[k00M]; + fPP0 = fPP0source[k000]; + fMM0 = fMM0source[kMM0]; + fPM0 = fPM0source[k0M0]; + fMP0 = fMP0source[kM00]; + fP0P = fP0Psource[k000]; + fM0M = fM0Msource[kM0M]; + fP0M = fP0Msource[k00M]; + fM0P = fM0Psource[kM00]; + f0PP = f0PPsource[k000]; + f0MM = f0MMsource[k0MM]; + f0PM = f0PMsource[k00M]; + f0MP = f0MPsource[k0M0]; + f000 = f000source[k000]; + fMMM = fMMMsource[kMMM]; + fMMP = fMMPsource[kMM0]; + fMPP = fMPPsource[kM00]; + fMPM = fMPMsource[kM0M]; + fPPM = fPPMsource[k00M]; + fPPP = fPPPsource[k000]; + fPMP = fPMPsource[k0M0]; + fPMM = fPMMsource[k0MM]; drhoMMP = fP00+fM00+f0P0+f0M0+f00P+f00M+fPP0+fMM0+fPM0+fMP0+fP0P+fM0M+fP0M+fM0P+f0PP+f0MM+f0PM+f0MP+f000+fPPP+fMMP+fPMP+fMPP+fPPM+fMMM+fPMM+fMPM; vx1MMP = (((fPPP-fMMM)+(fPMP-fMPM)+(fPPM-fMMP)+(fPMM-fMPP)) + (((fPP0-fMM0)+(fP0P-fM0M))+((fPM0-fMP0)+(fP0M-fM0P))) + (fP00-fM00))/(c1o1 + drhoMMP); - vx2MMP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoMMP); - vx3MMP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoMMP); + vx2MMP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoMMP); + vx3MMP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoMMP); - kxyFromfcNEQMMP = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoMMP) - ((vx1MMP*vx2MMP))); - kyzFromfcNEQMMP = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoMMP) - ((vx2MMP*vx3MMP))); - kxzFromfcNEQMMP = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoMMP) - ((vx1MMP*vx3MMP))); - kxxMyyFromfcNEQMMP = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoMMP) - ((vx1MMP*vx1MMP - vx2MMP*vx2MMP))); - kxxMzzFromfcNEQMMP = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoMMP) - ((vx1MMP*vx1MMP - vx3MMP*vx3MMP))); - kyyMzzFromfcNEQMMP = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoMMP) - ((vx2MMP*vx2MMP - vx3MMP*vx3MMP))); + kxyFromfcNEQMMP = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoMMP) - ((vx1MMP*vx2MMP))); + kyzFromfcNEQMMP = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoMMP) - ((vx2MMP*vx3MMP))); + kxzFromfcNEQMMP = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoMMP) - ((vx1MMP*vx3MMP))); + kxxMyyFromfcNEQMMP = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoMMP) - ((vx1MMP*vx1MMP - vx2MMP*vx2MMP))); + kxxMzzFromfcNEQMMP = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoMMP) - ((vx1MMP*vx1MMP - vx3MMP*vx3MMP))); + kyyMzzFromfcNEQMMP = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoMMP) - ((vx2MMP*vx2MMP - vx3MMP*vx3MMP))); ////////////////////////////////////////////////////////////////////////// //SET// @@ -333,47 +333,47 @@ __global__ void scaleCF_comp_D3Q27F3_2018(real* DC, k0MM = kMMM; kMMM = neighborCX[kMMM]; //////////////////////////////////////////////////////////////////////////////// - fP00 = fP00source[k000]; - fM00 = fM00source[kM00]; - f0P0 = f0P0source[k000]; - f0M0 = f0M0source[k0M0]; - f00P = f00Psource[k000]; - f00M = f00Msource[k00M]; - fPP0 = fPP0source[k000]; - fMM0 = fMM0source[kMM0]; - fPM0 = fPM0source[k0M0]; - fMP0 = fMP0source[kM00]; - fP0P = fP0Psource[k000]; - fM0M = fM0Msource[kM0M]; - fP0M = fP0Msource[k00M]; - fM0P = fM0Psource[kM00]; - f0PP = f0PPsource[k000]; - f0MM = f0MMsource[k0MM]; - f0PM = f0PMsource[k00M]; - f0MP = f0MPsource[k0M0]; - f000 = f000source[k000]; - fMMM = fMMMsource[kMMM]; - fMMP = fMMPsource[kMM0]; - fMPP = fMPPsource[kM00]; - fMPM = fMPMsource[kM0M]; - fPPM = fPPMsource[k00M]; - fPPP = fPPPsource[k000]; - fPMP = fPMPsource[k0M0]; - fPMM = fPMMsource[k0MM]; + fP00 = fP00source[k000]; + fM00 = fM00source[kM00]; + f0P0 = f0P0source[k000]; + f0M0 = f0M0source[k0M0]; + f00P = f00Psource[k000]; + f00M = f00Msource[k00M]; + fPP0 = fPP0source[k000]; + fMM0 = fMM0source[kMM0]; + fPM0 = fPM0source[k0M0]; + fMP0 = fMP0source[kM00]; + fP0P = fP0Psource[k000]; + fM0M = fM0Msource[kM0M]; + fP0M = fP0Msource[k00M]; + fM0P = fM0Psource[kM00]; + f0PP = f0PPsource[k000]; + f0MM = f0MMsource[k0MM]; + f0PM = f0PMsource[k00M]; + f0MP = f0MPsource[k0M0]; + f000 = f000source[k000]; + fMMM = fMMMsource[kMMM]; + fMMP = fMMPsource[kMM0]; + fMPP = fMPPsource[kM00]; + fMPM = fMPMsource[kM0M]; + fPPM = fPPMsource[k00M]; + fPPP = fPPPsource[k000]; + fPMP = fPMPsource[k0M0]; + fPMM = fPMMsource[k0MM]; drhoPMP = fP00+fM00+f0P0+f0M0+f00P+f00M+fPP0+fMM0+fPM0+fMP0+fP0P+fM0M+fP0M+fM0P+f0PP+f0MM+f0PM+f0MP+f000+fPPP+fMMP+fPMP+fMPP+fPPM+fMMM+fPMM+fMPM; vx1PMP = (((fPPP-fMMM)+(fPMP-fMPM)+(fPPM-fMMP)+(fPMM-fMPP)) + (((fPP0-fMM0)+(fP0P-fM0M))+((fPM0-fMP0)+(fP0M-fM0P))) + (fP00-fM00))/(c1o1 + drhoPMP); - vx2PMP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoPMP); - vx3PMP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoPMP); - - kxyFromfcNEQPMP = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoPMP) - ((vx1PMP*vx2PMP))); - kyzFromfcNEQPMP = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoPMP) - ((vx2PMP*vx3PMP))); - kxzFromfcNEQPMP = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoPMP) - ((vx1PMP*vx3PMP))); - kxxMyyFromfcNEQPMP = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoPMP) - ((vx1PMP*vx1PMP - vx2PMP*vx2PMP))); - kxxMzzFromfcNEQPMP = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoPMP) - ((vx1PMP*vx1PMP - vx3PMP*vx3PMP))); - kyyMzzFromfcNEQPMP = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoPMP) - ((vx2PMP*vx2PMP - vx3PMP*vx3PMP))); - - ////////////////////////////////////////////////////////////////////////// + vx2PMP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoPMP); + vx3PMP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoPMP); + + kxyFromfcNEQPMP = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoPMP) - ((vx1PMP*vx2PMP))); + kyzFromfcNEQPMP = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoPMP) - ((vx2PMP*vx3PMP))); + kxzFromfcNEQPMP = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoPMP) - ((vx1PMP*vx3PMP))); + kxxMyyFromfcNEQPMP = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoPMP) - ((vx1PMP*vx1PMP - vx2PMP*vx2PMP))); + kxxMzzFromfcNEQPMP = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoPMP) - ((vx1PMP*vx1PMP - vx3PMP*vx3PMP))); + kyyMzzFromfcNEQPMP = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoPMP) - ((vx2PMP*vx2PMP - vx3PMP*vx3PMP))); + + ////////////////////////////////////////////////////////////////////////// //SEB// ////////////////////////////////////////////////////////////////////////// //index @@ -386,45 +386,45 @@ __global__ void scaleCF_comp_D3Q27F3_2018(real* DC, k0M0 = kMM0base; kMM0 = neighborCX[kMM0base]; //////////////////////////////////////////////////////////////////////////////// - fP00 = fP00source[k000]; - fM00 = fM00source[kM00]; - f0P0 = f0P0source[k000]; - f0M0 = f0M0source[k0M0]; - f00P = f00Psource[k000]; - f00M = f00Msource[k00M]; - fPP0 = fPP0source[k000]; - fMM0 = fMM0source[kMM0]; - fPM0 = fPM0source[k0M0]; - fMP0 = fMP0source[kM00]; - fP0P = fP0Psource[k000]; - fM0M = fM0Msource[kM0M]; - fP0M = fP0Msource[k00M]; - fM0P = fM0Psource[kM00]; - f0PP = f0PPsource[k000]; - f0MM = f0MMsource[k0MM]; - f0PM = f0PMsource[k00M]; - f0MP = f0MPsource[k0M0]; - f000 = f000source[k000]; - fMMM = fMMMsource[kMMM]; - fMMP = fMMPsource[kMM0]; - fMPP = fMPPsource[kM00]; - fMPM = fMPMsource[kM0M]; - fPPM = fPPMsource[k00M]; - fPPP = fPPPsource[k000]; - fPMP = fPMPsource[k0M0]; - fPMM = fPMMsource[k0MM]; + fP00 = fP00source[k000]; + fM00 = fM00source[kM00]; + f0P0 = f0P0source[k000]; + f0M0 = f0M0source[k0M0]; + f00P = f00Psource[k000]; + f00M = f00Msource[k00M]; + fPP0 = fPP0source[k000]; + fMM0 = fMM0source[kMM0]; + fPM0 = fPM0source[k0M0]; + fMP0 = fMP0source[kM00]; + fP0P = fP0Psource[k000]; + fM0M = fM0Msource[kM0M]; + fP0M = fP0Msource[k00M]; + fM0P = fM0Psource[kM00]; + f0PP = f0PPsource[k000]; + f0MM = f0MMsource[k0MM]; + f0PM = f0PMsource[k00M]; + f0MP = f0MPsource[k0M0]; + f000 = f000source[k000]; + fMMM = fMMMsource[kMMM]; + fMMP = fMMPsource[kMM0]; + fMPP = fMPPsource[kM00]; + fMPM = fMPMsource[kM0M]; + fPPM = fPPMsource[k00M]; + fPPP = fPPPsource[k000]; + fPMP = fPMPsource[k0M0]; + fPMM = fPMMsource[k0MM]; drhoPMM = fP00+fM00+f0P0+f0M0+f00P+f00M+fPP0+fMM0+fPM0+fMP0+fP0P+fM0M+fP0M+fM0P+f0PP+f0MM+f0PM+f0MP+f000+fPPP+fMMP+fPMP+fMPP+fPPM+fMMM+fPMM+fMPM; vx1PMM = (((fPPP-fMMM)+(fPMP-fMPM)+(fPPM-fMMP)+(fPMM-fMPP)) + (((fPP0-fMM0)+(fP0P-fM0M))+((fPM0-fMP0)+(fP0M-fM0P))) + (fP00-fM00))/(c1o1 + drhoPMM); - vx2PMM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoPMM); - vx3PMM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoPMM); + vx2PMM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoPMM); + vx3PMM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoPMM); - kxyFromfcNEQPMM = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoPMM) - ((vx1PMM*vx2PMM))); - kyzFromfcNEQPMM = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoPMM) - ((vx2PMM*vx3PMM))); - kxzFromfcNEQPMM = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoPMM) - ((vx1PMM*vx3PMM))); - kxxMyyFromfcNEQPMM = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoPMM) - ((vx1PMM*vx1PMM - vx2PMM*vx2PMM))); - kxxMzzFromfcNEQPMM = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoPMM) - ((vx1PMM*vx1PMM - vx3PMM*vx3PMM))); - kyyMzzFromfcNEQPMM = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoPMM) - ((vx2PMM*vx2PMM - vx3PMM*vx3PMM))); + kxyFromfcNEQPMM = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoPMM) - ((vx1PMM*vx2PMM))); + kyzFromfcNEQPMM = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoPMM) - ((vx2PMM*vx3PMM))); + kxzFromfcNEQPMM = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoPMM) - ((vx1PMM*vx3PMM))); + kxxMyyFromfcNEQPMM = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoPMM) - ((vx1PMM*vx1PMM - vx2PMM*vx2PMM))); + kxxMzzFromfcNEQPMM = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoPMM) - ((vx1PMM*vx1PMM - vx3PMM*vx3PMM))); + kyyMzzFromfcNEQPMM = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoPMM) - ((vx2PMM*vx2PMM - vx3PMM*vx3PMM))); ////////////////////////////////////////////////////////////////////////// //NWB// @@ -449,45 +449,45 @@ __global__ void scaleCF_comp_D3Q27F3_2018(real* DC, k0MM = k0MMbase; kMMM = kMMMbase; //////////////////////////////////////////////////////////////////////////////// - fP00 = fP00source[k000]; - fM00 = fM00source[kM00]; - f0P0 = f0P0source[k000]; - f0M0 = f0M0source[k0M0]; - f00P = f00Psource[k000]; - f00M = f00Msource[k00M]; - fPP0 = fPP0source[k000]; - fMM0 = fMM0source[kMM0]; - fPM0 = fPM0source[k0M0]; - fMP0 = fMP0source[kM00]; - fP0P = fP0Psource[k000]; - fM0M = fM0Msource[kM0M]; - fP0M = fP0Msource[k00M]; - fM0P = fM0Psource[kM00]; - f0PP = f0PPsource[k000]; - f0MM = f0MMsource[k0MM]; - f0PM = f0PMsource[k00M]; - f0MP = f0MPsource[k0M0]; - f000 = f000source[k000]; - fMMM = fMMMsource[kMMM]; - fMMP = fMMPsource[kMM0]; - fMPP = fMPPsource[kM00]; - fMPM = fMPMsource[kM0M]; - fPPM = fPPMsource[k00M]; - fPPP = fPPPsource[k000]; - fPMP = fPMPsource[k0M0]; - fPMM = fPMMsource[k0MM]; + fP00 = fP00source[k000]; + fM00 = fM00source[kM00]; + f0P0 = f0P0source[k000]; + f0M0 = f0M0source[k0M0]; + f00P = f00Psource[k000]; + f00M = f00Msource[k00M]; + fPP0 = fPP0source[k000]; + fMM0 = fMM0source[kMM0]; + fPM0 = fPM0source[k0M0]; + fMP0 = fMP0source[kM00]; + fP0P = fP0Psource[k000]; + fM0M = fM0Msource[kM0M]; + fP0M = fP0Msource[k00M]; + fM0P = fM0Psource[kM00]; + f0PP = f0PPsource[k000]; + f0MM = f0MMsource[k0MM]; + f0PM = f0PMsource[k00M]; + f0MP = f0MPsource[k0M0]; + f000 = f000source[k000]; + fMMM = fMMMsource[kMMM]; + fMMP = fMMPsource[kMM0]; + fMPP = fMPPsource[kM00]; + fMPM = fMPMsource[kM0M]; + fPPM = fPPMsource[k00M]; + fPPP = fPPPsource[k000]; + fPMP = fPMPsource[k0M0]; + fPMM = fPMMsource[k0MM]; drhoMPM = fP00+fM00+f0P0+f0M0+f00P+f00M+fPP0+fMM0+fPM0+fMP0+fP0P+fM0M+fP0M+fM0P+f0PP+f0MM+f0PM+f0MP+f000+fPPP+fMMP+fPMP+fMPP+fPPM+fMMM+fPMM+fMPM; vx1MPM = (((fPPP-fMMM)+(fPMP-fMPM)+(fPPM-fMMP)+(fPMM-fMPP)) + (((fPP0-fMM0)+(fP0P-fM0M))+((fPM0-fMP0)+(fP0M-fM0P))) + (fP00-fM00))/(c1o1 + drhoMPM); - vx2MPM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoMPM); - vx3MPM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoMPM); + vx2MPM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoMPM); + vx3MPM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoMPM); - kxyFromfcNEQMPM = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoMPM) - ((vx1MPM*vx2MPM))); - kyzFromfcNEQMPM = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoMPM) - ((vx2MPM*vx3MPM))); - kxzFromfcNEQMPM = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoMPM) - ((vx1MPM*vx3MPM))); - kxxMyyFromfcNEQMPM = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoMPM) - ((vx1MPM*vx1MPM - vx2MPM*vx2MPM))); - kxxMzzFromfcNEQMPM = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoMPM) - ((vx1MPM*vx1MPM - vx3MPM*vx3MPM))); - kyyMzzFromfcNEQMPM = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoMPM) - ((vx2MPM*vx2MPM - vx3MPM*vx3MPM))); + kxyFromfcNEQMPM = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoMPM) - ((vx1MPM*vx2MPM))); + kyzFromfcNEQMPM = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoMPM) - ((vx2MPM*vx3MPM))); + kxzFromfcNEQMPM = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoMPM) - ((vx1MPM*vx3MPM))); + kxxMyyFromfcNEQMPM = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoMPM) - ((vx1MPM*vx1MPM - vx2MPM*vx2MPM))); + kxxMzzFromfcNEQMPM = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoMPM) - ((vx1MPM*vx1MPM - vx3MPM*vx3MPM))); + kyyMzzFromfcNEQMPM = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoMPM) - ((vx2MPM*vx2MPM - vx3MPM*vx3MPM))); ////////////////////////////////////////////////////////////////////////// //NWT// @@ -502,45 +502,45 @@ __global__ void scaleCF_comp_D3Q27F3_2018(real* DC, k0MM = neighborCZ[k0MM]; kMMM = neighborCZ[kMMM]; //////////////////////////////////////////////////////////////////////////////// - fP00 = fP00source[k000]; - fM00 = fM00source[kM00]; - f0P0 = f0P0source[k000]; - f0M0 = f0M0source[k0M0]; - f00P = f00Psource[k000]; - f00M = f00Msource[k00M]; - fPP0 = fPP0source[k000]; - fMM0 = fMM0source[kMM0]; - fPM0 = fPM0source[k0M0]; - fMP0 = fMP0source[kM00]; - fP0P = fP0Psource[k000]; - fM0M = fM0Msource[kM0M]; - fP0M = fP0Msource[k00M]; - fM0P = fM0Psource[kM00]; - f0PP = f0PPsource[k000]; - f0MM = f0MMsource[k0MM]; - f0PM = f0PMsource[k00M]; - f0MP = f0MPsource[k0M0]; - f000 = f000source[k000]; - fMMM = fMMMsource[kMMM]; - fMMP = fMMPsource[kMM0]; - fMPP = fMPPsource[kM00]; - fMPM = fMPMsource[kM0M]; - fPPM = fPPMsource[k00M]; - fPPP = fPPPsource[k000]; - fPMP = fPMPsource[k0M0]; - fPMM = fPMMsource[k0MM]; + fP00 = fP00source[k000]; + fM00 = fM00source[kM00]; + f0P0 = f0P0source[k000]; + f0M0 = f0M0source[k0M0]; + f00P = f00Psource[k000]; + f00M = f00Msource[k00M]; + fPP0 = fPP0source[k000]; + fMM0 = fMM0source[kMM0]; + fPM0 = fPM0source[k0M0]; + fMP0 = fMP0source[kM00]; + fP0P = fP0Psource[k000]; + fM0M = fM0Msource[kM0M]; + fP0M = fP0Msource[k00M]; + fM0P = fM0Psource[kM00]; + f0PP = f0PPsource[k000]; + f0MM = f0MMsource[k0MM]; + f0PM = f0PMsource[k00M]; + f0MP = f0MPsource[k0M0]; + f000 = f000source[k000]; + fMMM = fMMMsource[kMMM]; + fMMP = fMMPsource[kMM0]; + fMPP = fMPPsource[kM00]; + fMPM = fMPMsource[kM0M]; + fPPM = fPPMsource[k00M]; + fPPP = fPPPsource[k000]; + fPMP = fPMPsource[k0M0]; + fPMM = fPMMsource[k0MM]; drhoMPP = fP00+fM00+f0P0+f0M0+f00P+f00M+fPP0+fMM0+fPM0+fMP0+fP0P+fM0M+fP0M+fM0P+f0PP+f0MM+f0PM+f0MP+f000+fPPP+fMMP+fPMP+fMPP+fPPM+fMMM+fPMM+fMPM; vx1MPP = (((fPPP-fMMM)+(fPMP-fMPM)+(fPPM-fMMP)+(fPMM-fMPP)) + (((fPP0-fMM0)+(fP0P-fM0M))+((fPM0-fMP0)+(fP0M-fM0P))) + (fP00-fM00))/(c1o1 + drhoMPP); - vx2MPP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoMPP); - vx3MPP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoMPP); + vx2MPP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoMPP); + vx3MPP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoMPP); - kxyFromfcNEQMPP = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoMPP) - ((vx1MPP*vx2MPP))); - kyzFromfcNEQMPP = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoMPP) - ((vx2MPP*vx3MPP))); - kxzFromfcNEQMPP = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoMPP) - ((vx1MPP*vx3MPP))); - kxxMyyFromfcNEQMPP = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoMPP) - ((vx1MPP*vx1MPP - vx2MPP*vx2MPP))); - kxxMzzFromfcNEQMPP = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoMPP) - ((vx1MPP*vx1MPP - vx3MPP*vx3MPP))); - kyyMzzFromfcNEQMPP = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoMPP) - ((vx2MPP*vx2MPP - vx3MPP*vx3MPP))); + kxyFromfcNEQMPP = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoMPP) - ((vx1MPP*vx2MPP))); + kyzFromfcNEQMPP = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoMPP) - ((vx2MPP*vx3MPP))); + kxzFromfcNEQMPP = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoMPP) - ((vx1MPP*vx3MPP))); + kxxMyyFromfcNEQMPP = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoMPP) - ((vx1MPP*vx1MPP - vx2MPP*vx2MPP))); + kxxMzzFromfcNEQMPP = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoMPP) - ((vx1MPP*vx1MPP - vx3MPP*vx3MPP))); + kyyMzzFromfcNEQMPP = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoMPP) - ((vx2MPP*vx2MPP - vx3MPP*vx3MPP))); ////////////////////////////////////////////////////////////////////////// //NET// @@ -555,45 +555,45 @@ __global__ void scaleCF_comp_D3Q27F3_2018(real* DC, k0MM = kMMM; kMMM = neighborCX[kMMM]; //////////////////////////////////////////////////////////////////////////////// - fP00 = fP00source[k000]; - fM00 = fM00source[kM00]; - f0P0 = f0P0source[k000]; - f0M0 = f0M0source[k0M0]; - f00P = f00Psource[k000]; - f00M = f00Msource[k00M]; - fPP0 = fPP0source[k000]; - fMM0 = fMM0source[kMM0]; - fPM0 = fPM0source[k0M0]; - fMP0 = fMP0source[kM00]; - fP0P = fP0Psource[k000]; - fM0M = fM0Msource[kM0M]; - fP0M = fP0Msource[k00M]; - fM0P = fM0Psource[kM00]; - f0PP = f0PPsource[k000]; - f0MM = f0MMsource[k0MM]; - f0PM = f0PMsource[k00M]; - f0MP = f0MPsource[k0M0]; - f000 = f000source[k000]; - fMMM = fMMMsource[kMMM]; - fMMP = fMMPsource[kMM0]; - fMPP = fMPPsource[kM00]; - fMPM = fMPMsource[kM0M]; - fPPM = fPPMsource[k00M]; - fPPP = fPPPsource[k000]; - fPMP = fPMPsource[k0M0]; - fPMM = fPMMsource[k0MM]; + fP00 = fP00source[k000]; + fM00 = fM00source[kM00]; + f0P0 = f0P0source[k000]; + f0M0 = f0M0source[k0M0]; + f00P = f00Psource[k000]; + f00M = f00Msource[k00M]; + fPP0 = fPP0source[k000]; + fMM0 = fMM0source[kMM0]; + fPM0 = fPM0source[k0M0]; + fMP0 = fMP0source[kM00]; + fP0P = fP0Psource[k000]; + fM0M = fM0Msource[kM0M]; + fP0M = fP0Msource[k00M]; + fM0P = fM0Psource[kM00]; + f0PP = f0PPsource[k000]; + f0MM = f0MMsource[k0MM]; + f0PM = f0PMsource[k00M]; + f0MP = f0MPsource[k0M0]; + f000 = f000source[k000]; + fMMM = fMMMsource[kMMM]; + fMMP = fMMPsource[kMM0]; + fMPP = fMPPsource[kM00]; + fMPM = fMPMsource[kM0M]; + fPPM = fPPMsource[k00M]; + fPPP = fPPPsource[k000]; + fPMP = fPMPsource[k0M0]; + fPMM = fPMMsource[k0MM]; drhoPPP = fP00+fM00+f0P0+f0M0+f00P+f00M+fPP0+fMM0+fPM0+fMP0+fP0P+fM0M+fP0M+fM0P+f0PP+f0MM+f0PM+f0MP+f000+fPPP+fMMP+fPMP+fMPP+fPPM+fMMM+fPMM+fMPM; vx1PPP = (((fPPP-fMMM)+(fPMP-fMPM)+(fPPM-fMMP)+(fPMM-fMPP)) + (((fPP0-fMM0)+(fP0P-fM0M))+((fPM0-fMP0)+(fP0M-fM0P))) + (fP00-fM00))/(c1o1 + drhoPPP); - vx2PPP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoPPP); - vx3PPP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoPPP); + vx2PPP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoPPP); + vx3PPP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoPPP); - kxyFromfcNEQPPP = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoPPP) - ((vx1PPP*vx2PPP))); - kyzFromfcNEQPPP = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoPPP) - ((vx2PPP*vx3PPP))); - kxzFromfcNEQPPP = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoPPP) - ((vx1PPP*vx3PPP))); - kxxMyyFromfcNEQPPP = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoPPP) - ((vx1PPP*vx1PPP - vx2PPP*vx2PPP))); - kxxMzzFromfcNEQPPP = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoPPP) - ((vx1PPP*vx1PPP - vx3PPP*vx3PPP))); - kyyMzzFromfcNEQPPP = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoPPP) - ((vx2PPP*vx2PPP - vx3PPP*vx3PPP))); + kxyFromfcNEQPPP = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoPPP) - ((vx1PPP*vx2PPP))); + kyzFromfcNEQPPP = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoPPP) - ((vx2PPP*vx3PPP))); + kxzFromfcNEQPPP = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoPPP) - ((vx1PPP*vx3PPP))); + kxxMyyFromfcNEQPPP = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoPPP) - ((vx1PPP*vx1PPP - vx2PPP*vx2PPP))); + kxxMzzFromfcNEQPPP = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoPPP) - ((vx1PPP*vx1PPP - vx3PPP*vx3PPP))); + kyyMzzFromfcNEQPPP = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoPPP) - ((vx2PPP*vx2PPP - vx3PPP*vx3PPP))); ////////////////////////////////////////////////////////////////////////// //NEB// @@ -608,142 +608,142 @@ __global__ void scaleCF_comp_D3Q27F3_2018(real* DC, k0M0 = kMM0base; kMM0 = neighborCX[kMM0base]; //////////////////////////////////////////////////////////////////////////////// - fP00 = fP00source[k000]; - fM00 = fM00source[kM00]; - f0P0 = f0P0source[k000]; - f0M0 = f0M0source[k0M0]; - f00P = f00Psource[k000]; - f00M = f00Msource[k00M]; - fPP0 = fPP0source[k000]; - fMM0 = fMM0source[kMM0]; - fPM0 = fPM0source[k0M0]; - fMP0 = fMP0source[kM00]; - fP0P = fP0Psource[k000]; - fM0M = fM0Msource[kM0M]; - fP0M = fP0Msource[k00M]; - fM0P = fM0Psource[kM00]; - f0PP = f0PPsource[k000]; - f0MM = f0MMsource[k0MM]; - f0PM = f0PMsource[k00M]; - f0MP = f0MPsource[k0M0]; - f000 = f000source[k000]; - fMMM = fMMMsource[kMMM]; - fMMP = fMMPsource[kMM0]; - fMPP = fMPPsource[kM00]; - fMPM = fMPMsource[kM0M]; - fPPM = fPPMsource[k00M]; - fPPP = fPPPsource[k000]; - fPMP = fPMPsource[k0M0]; - fPMM = fPMMsource[k0MM]; + fP00 = fP00source[k000]; + fM00 = fM00source[kM00]; + f0P0 = f0P0source[k000]; + f0M0 = f0M0source[k0M0]; + f00P = f00Psource[k000]; + f00M = f00Msource[k00M]; + fPP0 = fPP0source[k000]; + fMM0 = fMM0source[kMM0]; + fPM0 = fPM0source[k0M0]; + fMP0 = fMP0source[kM00]; + fP0P = fP0Psource[k000]; + fM0M = fM0Msource[kM0M]; + fP0M = fP0Msource[k00M]; + fM0P = fM0Psource[kM00]; + f0PP = f0PPsource[k000]; + f0MM = f0MMsource[k0MM]; + f0PM = f0PMsource[k00M]; + f0MP = f0MPsource[k0M0]; + f000 = f000source[k000]; + fMMM = fMMMsource[kMMM]; + fMMP = fMMPsource[kMM0]; + fMPP = fMPPsource[kM00]; + fMPM = fMPMsource[kM0M]; + fPPM = fPPMsource[k00M]; + fPPP = fPPPsource[k000]; + fPMP = fPMPsource[k0M0]; + fPMM = fPMMsource[k0MM]; drhoPPM = fP00+fM00+f0P0+f0M0+f00P+f00M+fPP0+fMM0+fPM0+fMP0+fP0P+fM0M+fP0M+fM0P+f0PP+f0MM+f0PM+f0MP+f000+fPPP+fMMP+fPMP+fMPP+fPPM+fMMM+fPMM+fMPM; vx1PPM = (((fPPP-fMMM)+(fPMP-fMPM)+(fPPM-fMMP)+(fPMM-fMPP)) + (((fPP0-fMM0)+(fP0P-fM0M))+((fPM0-fMP0)+(fP0M-fM0P))) + (fP00-fM00))/(c1o1 + drhoPPM); - vx2PPM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoPPM); - vx3PPM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoPPM); + vx2PPM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoPPM); + vx3PPM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoPPM); - kxyFromfcNEQPPM = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoPPM) - ((vx1PPM*vx2PPM))); - kyzFromfcNEQPPM = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoPPM) - ((vx2PPM*vx3PPM))); - kxzFromfcNEQPPM = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoPPM) - ((vx1PPM*vx3PPM))); - kxxMyyFromfcNEQPPM = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoPPM) - ((vx1PPM*vx1PPM - vx2PPM*vx2PPM))); - kxxMzzFromfcNEQPPM = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoPPM) - ((vx1PPM*vx1PPM - vx3PPM*vx3PPM))); - kyyMzzFromfcNEQPPM = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoPPM) - ((vx2PPM*vx2PPM - vx3PPM*vx3PPM))); + kxyFromfcNEQPPM = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoPPM) - ((vx1PPM*vx2PPM))); + kyzFromfcNEQPPM = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoPPM) - ((vx2PPM*vx3PPM))); + kxzFromfcNEQPPM = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoPPM) - ((vx1PPM*vx3PPM))); + kxxMyyFromfcNEQPPM = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoPPM) - ((vx1PPM*vx1PPM - vx2PPM*vx2PPM))); + kxxMzzFromfcNEQPPM = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoPPM) - ((vx1PPM*vx1PPM - vx3PPM*vx3PPM))); + kyyMzzFromfcNEQPPM = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoPPM) - ((vx2PPM*vx2PPM - vx3PPM*vx3PPM))); ////////////////////////////////////////////////////////////////////////// //3 ////////////////////////////////////////////////////////////////////////// - a0 = c1o8*(((vx1PPM + vx1PPP) + (vx1MPM + vx1MPP)) + ((vx1PMM + vx1PMP) + (vx1MMM + vx1MMP))); - ax = c1o4*(((vx1PPM - vx1MMP) + (vx1PPP - vx1MMM)) + ((vx1PMP - vx1MPM) + (vx1PMM - vx1MPP))); - ay = c1o4*(((vx1PPM - vx1MMP) + (vx1PPP - vx1MMM)) + ((vx1MPM - vx1PMP) + (vx1MPP - vx1PMM))); - az = c1o4*(((vx1MMP - vx1PPM) + (vx1PPP - vx1MMM)) + ((vx1PMP - vx1MPM) + (vx1MPP - vx1PMM))); - axy = c1o2*(((vx1PPM - vx1PMP) + (vx1MMM - vx1MPP)) + ((vx1MMP - vx1MPM) + (vx1PPP - vx1PMM))); - axz = c1o2*(((vx1PMP - vx1PPM) + (vx1MMM - vx1MPP)) + ((vx1MPM - vx1MMP) + (vx1PPP - vx1PMM))); - ayz = c1o2*(((vx1PPP - vx1MPM) + (vx1PMM - vx1MMP)) + ((vx1MPP - vx1PPM) + (vx1MMM - vx1PMP))); - axyz= ((vx1MMP - vx1PPM) + (vx1PPP - vx1MMM)) + ((vx1MPM - vx1PMP) + (vx1PMM - vx1MPP)) ; - b0 = c1o8*(((vx2PPM + vx2PPP) + (vx2MPM + vx2MPP)) + ((vx2PMM + vx2PMP) + (vx2MMM + vx2MMP))); - bx = c1o4*(((vx2PPM - vx2MMP) + (vx2PPP - vx2MMM)) + ((vx2PMP - vx2MPM) + (vx2PMM - vx2MPP))); - by = c1o4*(((vx2PPM - vx2MMP) + (vx2PPP - vx2MMM)) + ((vx2MPM - vx2PMP) + (vx2MPP - vx2PMM))); - bz = c1o4*(((vx2MMP - vx2PPM) + (vx2PPP - vx2MMM)) + ((vx2PMP - vx2MPM) + (vx2MPP - vx2PMM))); - bxy = c1o2*(((vx2PPM - vx2MPP) + (vx2MMM - vx2PMP)) + ((vx2MMP - vx2PMM) + (vx2PPP - vx2MPM))); - bxz = c1o2*(((vx2MMM - vx2PPM) + (vx2PMP - vx2MPP)) + ((vx2MPM - vx2PMM) + (vx2PPP - vx2MMP))); - byz = c1o2*(((vx2MPP - vx2PPM) + (vx2MMM - vx2PMP)) + ((vx2PMM - vx2MMP) + (vx2PPP - vx2MPM))); - bxyz= ((vx2MMP - vx2PPM) + (vx2PPP - vx2MMM)) + ((vx2MPM - vx2PMP) + (vx2PMM - vx2MPP)) ; - c0 = c1o8*(((vx3PPM + vx3PPP) + (vx3MPM + vx3MPP)) + ((vx3PMM + vx3PMP) + (vx3MMM + vx3MMP))); - cx = c1o4*(((vx3PPM - vx3MMP) + (vx3PPP - vx3MMM)) + ((vx3PMP - vx3MPM) + (vx3PMM - vx3MPP))); - cy = c1o4*(((vx3PPM - vx3MMP) + (vx3PPP - vx3MMM)) + ((vx3MPM - vx3PMP) + (vx3MPP - vx3PMM))); - cz = c1o4*(((vx3MMP - vx3PPM) + (vx3PPP - vx3MMM)) + ((vx3PMP - vx3MPM) + (vx3MPP - vx3PMM))); - cxy = c1o2*(((vx3PPM - vx3PMP) + (vx3MMM - vx3MPP)) + ((vx3MMP - vx3MPM) + (vx3PPP - vx3PMM))); - cxz = c1o2*(((vx3MMM - vx3PPM) + (vx3PMP - vx3MPP)) + ((vx3MPM - vx3PMM) + (vx3PPP - vx3MMP))); - cyz = c1o2*(((vx3MMM - vx3PPM) + (vx3MPP - vx3PMP)) + ((vx3PMM - vx3MPM) + (vx3PPP - vx3MMP))); - cxyz= ((vx3MMP - vx3PPM) + (vx3PPP - vx3MMM)) + ((vx3MPM - vx3PMP) + (vx3PMM - vx3MPP)) ; - - //bxx = zero; - //cxx = zero; - //ayy = zero; - //cyy = zero; - //azz = zero; - //bzz = zero; - //axx = zero; - //byy = zero; - //czz = zero; - - bxx = c1o8*(((kxyFromfcNEQPPP - kxyFromfcNEQMMM) + (kxyFromfcNEQPMM - kxyFromfcNEQMPP)) + ((kxyFromfcNEQPMP - kxyFromfcNEQMPM) + (kxyFromfcNEQPPM - kxyFromfcNEQMMP))) - c1o2*axy; - cxx = c1o8*(((kxzFromfcNEQPPP - kxzFromfcNEQMMM) + (kxzFromfcNEQPMM - kxzFromfcNEQMPP)) + ((kxzFromfcNEQPMP - kxzFromfcNEQMPM) + (kxzFromfcNEQPPM - kxzFromfcNEQMMP))) - c1o2*axz; - - ayy = c1o8*(((kxyFromfcNEQPPP - kxyFromfcNEQMMM) + (kxyFromfcNEQPPM - kxyFromfcNEQMMP)) - ((kxyFromfcNEQPMM - kxyFromfcNEQMPP) + (kxyFromfcNEQPMP - kxyFromfcNEQMPM))) - c1o2*bxy; - cyy = c1o8*(((kyzFromfcNEQPPP - kyzFromfcNEQMMM) + (kyzFromfcNEQPPM - kyzFromfcNEQMMP)) - ((kyzFromfcNEQPMM - kyzFromfcNEQMPP) + (kyzFromfcNEQPMP - kyzFromfcNEQMPM))) - c1o2*byz; - - azz = c1o8*(((kxzFromfcNEQPPP - kxzFromfcNEQMMM) - (kxzFromfcNEQPMM - kxzFromfcNEQMPP)) + ((kxzFromfcNEQPMP - kxzFromfcNEQMPM) - (kxzFromfcNEQPPM - kxzFromfcNEQMMP))) - c1o2*cxz; - bzz = c1o8*(((kyzFromfcNEQPPP - kyzFromfcNEQMMM) - (kyzFromfcNEQPMM - kyzFromfcNEQMPP)) + ((kyzFromfcNEQPMP - kyzFromfcNEQMPM) - (kyzFromfcNEQPPM - kyzFromfcNEQMMP))) - c1o2*cyz; - - axx = (c1o16*(((kxxMyyFromfcNEQPPP - kxxMyyFromfcNEQMMM) + (kxxMyyFromfcNEQPMM - kxxMyyFromfcNEQMPP)) + ((kxxMyyFromfcNEQPMP - kxxMyyFromfcNEQMPM) + (kxxMyyFromfcNEQPPM - kxxMyyFromfcNEQMMP))) - c1o4*bxy) - + (c1o16*(((kxxMzzFromfcNEQPPP - kxxMzzFromfcNEQMMM) + (kxxMzzFromfcNEQPMM - kxxMzzFromfcNEQMPP)) + ((kxxMzzFromfcNEQPMP - kxxMzzFromfcNEQMPM) + (kxxMzzFromfcNEQPPM - kxxMzzFromfcNEQMMP))) - c1o4*cxz); - - byy = (-c1o16*(((kxxMyyFromfcNEQPPP - kxxMyyFromfcNEQMMM) - (kxxMyyFromfcNEQPMM - kxxMyyFromfcNEQMPP)) + ((kxxMyyFromfcNEQPPM - kxxMyyFromfcNEQMMP) - (kxxMyyFromfcNEQPMP - kxxMyyFromfcNEQMPM))) - c1o4*axy) - + (c1o16*(((kyyMzzFromfcNEQPPP - kyyMzzFromfcNEQMMM) - (kyyMzzFromfcNEQPMM - kyyMzzFromfcNEQMPP)) + ((kyyMzzFromfcNEQPPM - kyyMzzFromfcNEQMMP) - (kyyMzzFromfcNEQPMP - kyyMzzFromfcNEQMPM))) - c1o4*cyz); - - czz = (-c1o16*(((kxxMzzFromfcNEQPPP - kxxMzzFromfcNEQMMM) - (kxxMzzFromfcNEQPMM - kxxMzzFromfcNEQMPP)) - ((kxxMzzFromfcNEQPPM - kxxMzzFromfcNEQMMP) - (kxxMzzFromfcNEQPMP - kxxMzzFromfcNEQMPM))) - c1o4*axz) - + (c1o16*(((kyyMzzFromfcNEQPPP - kyyMzzFromfcNEQMMM) - (kyyMzzFromfcNEQPMM - kyyMzzFromfcNEQMPP)) - ((kyyMzzFromfcNEQPPM - kyyMzzFromfcNEQMMP) - (kyyMzzFromfcNEQPMP - kyyMzzFromfcNEQMPM))) - c1o4*byz); - - a0 -= c1o4*(axx + ayy + azz); - b0 -= c1o4*(bxx + byy + bzz); - c0 -= c1o4*(cxx + cyy + czz); + a0 = c1o8*(((vx1PPM + vx1PPP) + (vx1MPM + vx1MPP)) + ((vx1PMM + vx1PMP) + (vx1MMM + vx1MMP))); + ax = c1o4*(((vx1PPM - vx1MMP) + (vx1PPP - vx1MMM)) + ((vx1PMP - vx1MPM) + (vx1PMM - vx1MPP))); + ay = c1o4*(((vx1PPM - vx1MMP) + (vx1PPP - vx1MMM)) + ((vx1MPM - vx1PMP) + (vx1MPP - vx1PMM))); + az = c1o4*(((vx1MMP - vx1PPM) + (vx1PPP - vx1MMM)) + ((vx1PMP - vx1MPM) + (vx1MPP - vx1PMM))); + axy = c1o2*(((vx1PPM - vx1PMP) + (vx1MMM - vx1MPP)) + ((vx1MMP - vx1MPM) + (vx1PPP - vx1PMM))); + axz = c1o2*(((vx1PMP - vx1PPM) + (vx1MMM - vx1MPP)) + ((vx1MPM - vx1MMP) + (vx1PPP - vx1PMM))); + ayz = c1o2*(((vx1PPP - vx1MPM) + (vx1PMM - vx1MMP)) + ((vx1MPP - vx1PPM) + (vx1MMM - vx1PMP))); + axyz= ((vx1MMP - vx1PPM) + (vx1PPP - vx1MMM)) + ((vx1MPM - vx1PMP) + (vx1PMM - vx1MPP)) ; + b0 = c1o8*(((vx2PPM + vx2PPP) + (vx2MPM + vx2MPP)) + ((vx2PMM + vx2PMP) + (vx2MMM + vx2MMP))); + bx = c1o4*(((vx2PPM - vx2MMP) + (vx2PPP - vx2MMM)) + ((vx2PMP - vx2MPM) + (vx2PMM - vx2MPP))); + by = c1o4*(((vx2PPM - vx2MMP) + (vx2PPP - vx2MMM)) + ((vx2MPM - vx2PMP) + (vx2MPP - vx2PMM))); + bz = c1o4*(((vx2MMP - vx2PPM) + (vx2PPP - vx2MMM)) + ((vx2PMP - vx2MPM) + (vx2MPP - vx2PMM))); + bxy = c1o2*(((vx2PPM - vx2MPP) + (vx2MMM - vx2PMP)) + ((vx2MMP - vx2PMM) + (vx2PPP - vx2MPM))); + bxz = c1o2*(((vx2MMM - vx2PPM) + (vx2PMP - vx2MPP)) + ((vx2MPM - vx2PMM) + (vx2PPP - vx2MMP))); + byz = c1o2*(((vx2MPP - vx2PPM) + (vx2MMM - vx2PMP)) + ((vx2PMM - vx2MMP) + (vx2PPP - vx2MPM))); + bxyz= ((vx2MMP - vx2PPM) + (vx2PPP - vx2MMM)) + ((vx2MPM - vx2PMP) + (vx2PMM - vx2MPP)) ; + c0 = c1o8*(((vx3PPM + vx3PPP) + (vx3MPM + vx3MPP)) + ((vx3PMM + vx3PMP) + (vx3MMM + vx3MMP))); + cx = c1o4*(((vx3PPM - vx3MMP) + (vx3PPP - vx3MMM)) + ((vx3PMP - vx3MPM) + (vx3PMM - vx3MPP))); + cy = c1o4*(((vx3PPM - vx3MMP) + (vx3PPP - vx3MMM)) + ((vx3MPM - vx3PMP) + (vx3MPP - vx3PMM))); + cz = c1o4*(((vx3MMP - vx3PPM) + (vx3PPP - vx3MMM)) + ((vx3PMP - vx3MPM) + (vx3MPP - vx3PMM))); + cxy = c1o2*(((vx3PPM - vx3PMP) + (vx3MMM - vx3MPP)) + ((vx3MMP - vx3MPM) + (vx3PPP - vx3PMM))); + cxz = c1o2*(((vx3MMM - vx3PPM) + (vx3PMP - vx3MPP)) + ((vx3MPM - vx3PMM) + (vx3PPP - vx3MMP))); + cyz = c1o2*(((vx3MMM - vx3PPM) + (vx3MPP - vx3PMP)) + ((vx3PMM - vx3MPM) + (vx3PPP - vx3MMP))); + cxyz= ((vx3MMP - vx3PPM) + (vx3PPP - vx3MMM)) + ((vx3MPM - vx3PMP) + (vx3PMM - vx3MPP)) ; + + //bxx = zero; + //cxx = zero; + //ayy = zero; + //cyy = zero; + //azz = zero; + //bzz = zero; + //axx = zero; + //byy = zero; + //czz = zero; + + bxx = c1o8*(((kxyFromfcNEQPPP - kxyFromfcNEQMMM) + (kxyFromfcNEQPMM - kxyFromfcNEQMPP)) + ((kxyFromfcNEQPMP - kxyFromfcNEQMPM) + (kxyFromfcNEQPPM - kxyFromfcNEQMMP))) - c1o2*axy; + cxx = c1o8*(((kxzFromfcNEQPPP - kxzFromfcNEQMMM) + (kxzFromfcNEQPMM - kxzFromfcNEQMPP)) + ((kxzFromfcNEQPMP - kxzFromfcNEQMPM) + (kxzFromfcNEQPPM - kxzFromfcNEQMMP))) - c1o2*axz; + + ayy = c1o8*(((kxyFromfcNEQPPP - kxyFromfcNEQMMM) + (kxyFromfcNEQPPM - kxyFromfcNEQMMP)) - ((kxyFromfcNEQPMM - kxyFromfcNEQMPP) + (kxyFromfcNEQPMP - kxyFromfcNEQMPM))) - c1o2*bxy; + cyy = c1o8*(((kyzFromfcNEQPPP - kyzFromfcNEQMMM) + (kyzFromfcNEQPPM - kyzFromfcNEQMMP)) - ((kyzFromfcNEQPMM - kyzFromfcNEQMPP) + (kyzFromfcNEQPMP - kyzFromfcNEQMPM))) - c1o2*byz; + + azz = c1o8*(((kxzFromfcNEQPPP - kxzFromfcNEQMMM) - (kxzFromfcNEQPMM - kxzFromfcNEQMPP)) + ((kxzFromfcNEQPMP - kxzFromfcNEQMPM) - (kxzFromfcNEQPPM - kxzFromfcNEQMMP))) - c1o2*cxz; + bzz = c1o8*(((kyzFromfcNEQPPP - kyzFromfcNEQMMM) - (kyzFromfcNEQPMM - kyzFromfcNEQMPP)) + ((kyzFromfcNEQPMP - kyzFromfcNEQMPM) - (kyzFromfcNEQPPM - kyzFromfcNEQMMP))) - c1o2*cyz; + + axx = (c1o16*(((kxxMyyFromfcNEQPPP - kxxMyyFromfcNEQMMM) + (kxxMyyFromfcNEQPMM - kxxMyyFromfcNEQMPP)) + ((kxxMyyFromfcNEQPMP - kxxMyyFromfcNEQMPM) + (kxxMyyFromfcNEQPPM - kxxMyyFromfcNEQMMP))) - c1o4*bxy) + + (c1o16*(((kxxMzzFromfcNEQPPP - kxxMzzFromfcNEQMMM) + (kxxMzzFromfcNEQPMM - kxxMzzFromfcNEQMPP)) + ((kxxMzzFromfcNEQPMP - kxxMzzFromfcNEQMPM) + (kxxMzzFromfcNEQPPM - kxxMzzFromfcNEQMMP))) - c1o4*cxz); + + byy = (-c1o16*(((kxxMyyFromfcNEQPPP - kxxMyyFromfcNEQMMM) - (kxxMyyFromfcNEQPMM - kxxMyyFromfcNEQMPP)) + ((kxxMyyFromfcNEQPPM - kxxMyyFromfcNEQMMP) - (kxxMyyFromfcNEQPMP - kxxMyyFromfcNEQMPM))) - c1o4*axy) + + (c1o16*(((kyyMzzFromfcNEQPPP - kyyMzzFromfcNEQMMM) - (kyyMzzFromfcNEQPMM - kyyMzzFromfcNEQMPP)) + ((kyyMzzFromfcNEQPPM - kyyMzzFromfcNEQMMP) - (kyyMzzFromfcNEQPMP - kyyMzzFromfcNEQMPM))) - c1o4*cyz); + + czz = (-c1o16*(((kxxMzzFromfcNEQPPP - kxxMzzFromfcNEQMMM) - (kxxMzzFromfcNEQPMM - kxxMzzFromfcNEQMPP)) - ((kxxMzzFromfcNEQPPM - kxxMzzFromfcNEQMMP) - (kxxMzzFromfcNEQPMP - kxxMzzFromfcNEQMPM))) - c1o4*axz) + + (c1o16*(((kyyMzzFromfcNEQPPP - kyyMzzFromfcNEQMMM) - (kyyMzzFromfcNEQPMM - kyyMzzFromfcNEQMPP)) - ((kyyMzzFromfcNEQPPM - kyyMzzFromfcNEQMMP) - (kyyMzzFromfcNEQPMP - kyyMzzFromfcNEQMPM))) - c1o4*byz); + + a0 -= c1o4*(axx + ayy + azz); + b0 -= c1o4*(bxx + byy + bzz); + c0 -= c1o4*(cxx + cyy + czz); + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + real kxyAverage = c0; + real kyzAverage = c0; + real kxzAverage = c0; + real kxxMyyAverage = c0; + real kxxMzzAverage = c0; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //Press + //d0 = ( pressPPM + pressPPP + pressMPM + pressMPP + pressPMM + pressPMP + pressMMM + pressMMP) * c1o8; + //dx = ( pressPPM + pressPPP - pressMPM - pressMPP + pressPMM + pressPMP - pressMMM - pressMMP) * c1o4; + //dy = ( pressPPM + pressPPP + pressMPM + pressMPP - pressPMM - pressPMP - pressMMM - pressMMP) * c1o4; + //dz = (-pressPPM + pressPPP - pressMPM + pressMPP - pressPMM + pressPMP - pressMMM + pressMMP) * c1o4; + //dxy = ( pressPPM + pressPPP - pressMPM - pressMPP - pressPMM - pressPMP + pressMMM + pressMMP) * c1o2; + //dxz = (-pressPPM + pressPPP + pressMPM - pressMPP - pressPMM + pressPMP + pressMMM - pressMMP) * c1o2; + //dyz = (-pressPPM + pressPPP - pressMPM + pressMPP + pressPMM - pressPMP + pressMMM - pressMMP) * c1o2; + //dxyz = -pressPPM + pressPPP + pressMPM - pressMPP + pressPMM - pressPMP - pressMMM + pressMMP; ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real kxyAverage = c0; - real kyzAverage = c0; - real kxzAverage = c0; - real kxxMyyAverage = c0; - real kxxMzzAverage = c0; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //Press - //d0 = ( pressPPM + pressPPP + pressMPM + pressMPP + pressPMM + pressPMP + pressMMM + pressMMP) * c1o8; - //dx = ( pressPPM + pressPPP - pressMPM - pressMPP + pressPMM + pressPMP - pressMMM - pressMMP) * c1o4; - //dy = ( pressPPM + pressPPP + pressMPM + pressMPP - pressPMM - pressPMP - pressMMM - pressMMP) * c1o4; - //dz = (-pressPPM + pressPPP - pressMPM + pressMPP - pressPMM + pressPMP - pressMMM + pressMMP) * c1o4; - //dxy = ( pressPPM + pressPPP - pressMPM - pressMPP - pressPMM - pressPMP + pressMMM + pressMMP) * c1o2; - //dxz = (-pressPPM + pressPPP + pressMPM - pressMPP - pressPMM + pressPMP + pressMMM - pressMMP) * c1o2; - //dyz = (-pressPPM + pressPPP - pressMPM + pressMPP + pressPMM - pressPMP + pressMMM - pressMMP) * c1o2; - //dxyz = -pressPPM + pressPPP + pressMPM - pressMPP + pressPMM - pressPMP - pressMMM + pressMMP; - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho - d0 = ( ((drhoPPM + drhoMMP) + (drhoMPM + drhoPMP)) + ((drhoPMM + drhoMPP) + (drhoMMM + drhoPPP))) * c1o8; - dx = ( ((drhoPPM - drhoMMP) + (drhoPMM - drhoMPP)) + ((drhoPMP - drhoMPM) + (drhoPPP - drhoMMM))) * c1o4; - dy = ( ((drhoPPM - drhoMMP) + (drhoMPP - drhoPMM)) + ((drhoMPM - drhoPMP) + (drhoPPP - drhoMMM))) * c1o4; - dz = ( ((drhoMMP - drhoPPM) + (drhoPPP - drhoMMM)) + ((drhoPMP - drhoMPM) + (drhoMPP - drhoPMM))) * c1o4; - dxy = ( ((drhoPPM - drhoPMP) + (drhoPPP - drhoPMM)) + ((drhoMMP - drhoMPM) + (drhoMMM - drhoMPP))) * c1o2; - dxz = ( ((drhoMMM - drhoPPM) + (drhoPPP - drhoMMP)) + ((drhoMPM - drhoPMM) + (drhoPMP - drhoMPP))) * c1o2; - dyz = ( ((drhoMPP - drhoPPM) + (drhoPPP - drhoMPM)) + ((drhoPMM - drhoMMP) + (drhoMMM - drhoPMP))) * c1o2; + //drho + d0 = ( ((drhoPPM + drhoMMP) + (drhoMPM + drhoPMP)) + ((drhoPMM + drhoMPP) + (drhoMMM + drhoPPP))) * c1o8; + dx = ( ((drhoPPM - drhoMMP) + (drhoPMM - drhoMPP)) + ((drhoPMP - drhoMPM) + (drhoPPP - drhoMMM))) * c1o4; + dy = ( ((drhoPPM - drhoMMP) + (drhoMPP - drhoPMM)) + ((drhoMPM - drhoPMP) + (drhoPPP - drhoMMM))) * c1o4; + dz = ( ((drhoMMP - drhoPPM) + (drhoPPP - drhoMMM)) + ((drhoPMP - drhoMPM) + (drhoMPP - drhoPMM))) * c1o4; + dxy = ( ((drhoPPM - drhoPMP) + (drhoPPP - drhoPMM)) + ((drhoMMP - drhoMPM) + (drhoMMM - drhoMPP))) * c1o2; + dxz = ( ((drhoMMM - drhoPPM) + (drhoPPP - drhoMMP)) + ((drhoMPM - drhoPMM) + (drhoPMP - drhoMPP))) * c1o2; + dyz = ( ((drhoMPP - drhoPPM) + (drhoPPP - drhoMPM)) + ((drhoPMM - drhoMMP) + (drhoMMM - drhoPMP))) * c1o2; dxyz = -drhoPPM + drhoPPP + drhoMPM - drhoMPP + drhoPMM - drhoPMP - drhoMMM + drhoMMP; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // // Bernd das Brot // - // X------X - // | | x---x - // | ---+-+-> | ----> off-vector - // | | x---x - // X------X - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // X------X + // | | x---x + // | ---+-+-> | ----> off-vector + // | | x---x + // X------X + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// a0 = a0 + xoff * ax + yoff * ay + zoff * az + xoff_sq * axx + yoff_sq * ayy + zoff_sq * azz + xoff*yoff*axy + xoff*zoff*axz + yoff*zoff*ayz; ax = ax + c2o1 * xoff * axx + yoff * axy + zoff * axz; ay = ay + c2o1 * yoff * ayy + xoff * axy + zoff * ayz; @@ -756,3552 +756,3552 @@ __global__ void scaleCF_comp_D3Q27F3_2018(real* DC, cx = cx + c2o1 * xoff * cxx + yoff * cxy + zoff * cxz; cy = cy + c2o1 * yoff * cyy + xoff * cxy + zoff * cyz; cz = cz + c2o1 * zoff * czz + xoff * cxz + yoff * cyz; - d0 = d0 + xoff * dx + yoff * dy + zoff * dz + xoff*yoff*dxy + xoff*zoff*dxz + yoff*zoff*dyz; - dx = dx + yoff * dxy + zoff * dxz; - dy = dy + xoff * dxy + zoff * dyz; - dz = dz + xoff * dxz + yoff * dyz; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real mfcbb = c0; - real mfabb = c0; - real mfbcb = c0; - real mfbab = c0; - real mfbbc = c0; - real mfbba = c0; - real mfccb = c0; - real mfaab = c0; - real mfcab = c0; - real mfacb = c0; - real mfcbc = c0; - real mfaba = c0; - real mfcba = c0; - real mfabc = c0; - real mfbcc = c0; - real mfbaa = c0; - real mfbca = c0; - real mfbac = c0; - real mfbbb = c0; - real mfccc = c0; - real mfaac = c0; - real mfcac = c0; - real mfacc = c0; - real mfcca = c0; - real mfaaa = c0; - real mfcaa = c0; - real mfaca = c0; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real mgcbb = c0; - real mgabb = c0; - real mgbcb = c0; - real mgbab = c0; - real mgbbc = c0; - real mgbba = c0; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real m0, m1, m2, oMdrho; - real mxxPyyPzz, mxxMyy, mxxMzz, mxxyPyzz, mxxyMyzz, mxxzPyyz, mxxzMyyz, mxyyPxzz, mxyyMxzz; - //real qudricLimit = c1o100;//ganz schlechte Idee -> muss global sein - //real O3 = two - o; - //real residu, residutmp; - //residutmp = zero;// /*-*/ c2o9 * (1./o - c1o2) * eps_new * eps_new; - real NeqOn = c1o1;//zero;//one; //.... one = on ..... zero = off - real dxux; - real dyuy; - real dzuz; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position SWB -0.25f, -0.25f, -0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = -c1o4; - y = -c1o4; - z = -c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //real mxoff = -xoff; - //real myoff = -yoff; - //real mzoff = -zoff; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho = c3o64*drho_NEB+c1o64*drho_NET+c9o64*drho_NWB+c3o64*drho_NWT+c9o64*drho_SEB+c3o64*drho_SET+c27o64*drho_SWB+c9o64*drho_SWT; - //press = press_SWT * (c9o64 + c3o16 * mxoff + c3o16 * myoff - c9o16 * mzoff) + - // press_NWT * (c3o64 + c1o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + - // press_SET * (c3o64 - c3o16 * mxoff + c1o16 * myoff - c3o16 * mzoff) + - // press_NET * (c1o64 - c1o16 * mxoff - c1o16 * myoff - c1o16 * mzoff) + - // press_NEB * (c3o64 - c3o16 * mxoff - c3o16 * myoff + c1o16 * mzoff) + - // press_NWB * (c9o64 + c3o16 * mxoff - c9o16 * myoff + c3o16 * mzoff) + - // press_SEB * (c9o64 - c9o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + - // press_SWB * (c27o64 + c9o16 * mxoff + c9o16 * myoff + c9o16 * mzoff); - //drho = drho_SWT * (c9o64 + c3o16 * xoff + c3o16 * yoff - c9o16 * zoff) + - // drho_NWT * (c3o64 + c1o16 * xoff - c3o16 * yoff - c3o16 * zoff) + - // drho_SET * (c3o64 - c3o16 * xoff + c1o16 * yoff - c3o16 * zoff) + - // drho_NET * (c1o64 - c1o16 * xoff - c1o16 * yoff - c1o16 * zoff) + - // drho_NEB * (c3o64 - c3o16 * xoff - c3o16 * yoff + c1o16 * zoff) + - // drho_NWB * (c9o64 + c3o16 * xoff - c9o16 * yoff + c3o16 * zoff) + - // drho_SEB * (c9o64 - c9o16 * xoff + c3o16 * yoff + c3o16 * zoff) + - // drho_SWB * (c27o64 + c9o16 * xoff + c9o16 * yoff + c9o16 * zoff); - - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; - vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); - vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); - vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); - //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); - //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); - //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //2.f - // linear combinations - mxxPyyPzz = mfaaa - c2o3*(ax + by + c2o1*axx*x + bxy*x + axy*y + c2o1*byy*y + axz*z + byz*z + bxyz*x*z + axyz*y*z + cz - cxz*x + cyz*y + cxyz*x*y + c2o1*czz*z )*eps_new / oP* (c1o1 + press); - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); - //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mfbbb = c0; - - //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); - //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); - //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); - //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyPyzz = c0; - - //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); - //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyMyzz = c0; - - //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); - //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); - //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzPyyz = c0; - - //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); - //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzMyyz = c0; - - //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); - //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); - //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyPxzz = c0; - - //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); - //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyMxzz = c0; - - //////////////////////////////////////////////////////////////////////////////////// - // D3Q27F - dxux = (ax + c2o1*axx*x + axy*y + axz*z + axyz*y*z); - dyuy = (by + bxy*x + c2o1*byy*y + byz*z + bxyz*x*z); - dzuz = (cz - cxz*x + cyz*y + c2o1*czz*z + cxyz*x*y); - mgcbb = (vvx * axx + dxux * dxux) * (eps_new * eps_new) * (c1o1 + press); - mgabb = -(vvx * axx + dxux * dxux) * (eps_new * eps_new) * (c1o1 + press); - mgbcb = (vvy * byy + dyuy * dyuy) * (eps_new * eps_new) * (c1o1 + press); - mgbab = -(vvy * byy + dyuy * dyuy) * (eps_new * eps_new) * (c1o1 + press); - mgbbc = (vvz * czz + dzuz * dzuz) * (eps_new * eps_new) * (c1o1 + press); - mgbba = -(vvz * czz + dzuz * dzuz) * (eps_new * eps_new) * (c1o1 + press); - //mgcbb = zero; - //mgabb = zero; - //mgbcb = zero; - //mgbab = zero; - //mgbbc = zero; - //mgbba = zero; - //////////////////////////////////////////////////////////////////////////////////// - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //index 0 - k000base = posFSWB[k]; - kM00base = neighborFX[k000base]; - k0M0base = neighborFY[k000base]; - k00Mbase = neighborFZ[k000base]; - kMM0base = neighborFY[kM00base]; - kM0Mbase = neighborFZ[kM00base]; - k0MMbase = neighborFZ[k0M0base]; - kMMMbase = neighborFZ[kMM0base]; - ////////////////////////////////////////////////////////////////////////// - //index - k000 = k000base; - kM00 = kM00base; - k0M0 = k0M0base; - k00M = k00Mbase; - kMM0 = kMM0base; - kM0M = kM0Mbase; - k0MM = k0MMbase; - kMMM = kMMMbase; - //////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - (G.g[dP00])[k000] = mgcbb; - (G.g[dM00])[kM00] = mgabb; - (G.g[d0P0])[k000] = mgbcb; - (G.g[d0M0])[k0M0] = mgbab; - (G.g[d00P])[k000] = mgbbc; - (G.g[d00M])[k00M] = mgbba; - //////////////////////////////////////////////////////////////////////////////////// - fP00dest[k000] = mfcbb; - fM00dest[kM00] = mfabb; - f0P0dest[k000] = mfbcb; - f0M0dest[k0M0] = mfbab; - f00Pdest[k000] = mfbbc; - f00Mdest[k00M] = mfbba; - fPP0dest[k000] = mfccb; - fMM0dest[kMM0] = mfaab; - fPM0dest[k0M0] = mfcab; - fMP0dest[kM00] = mfacb; - fP0Pdest[k000] = mfcbc; - fM0Mdest[kM0M] = mfaba; - fP0Mdest[k00M] = mfcba; - fM0Pdest[kM00] = mfabc; - f0PPdest[k000] = mfbcc; - f0MMdest[k0MM] = mfbaa; - f0PMdest[k00M] = mfbca; - f0MPdest[k0M0] = mfbac; - f000dest[k000] = mfbbb; - fMMMdest[kMMM] = mfaaa; - fMMPdest[kMM0] = mfaac; - fMPPdest[kM00] = mfacc; - fMPMdest[kM0M] = mfaca; - fPPMdest[k00M] = mfcca; - fPPPdest[k000] = mfccc; - fPMPdest[k0M0] = mfcac; - fPMMdest[k0MM] = mfcaa; - //////////////////////////////////////////////////////////////////////////////////// - - //reset - mfcbb = c0; - mfabb = c0; - mfbcb = c0; - mfbab = c0; - mfbbc = c0; - mfbba = c0; - mfccb = c0; - mfaab = c0; - mfcab = c0; - mfacb = c0; - mfcbc = c0; - mfaba = c0; - mfcba = c0; - mfabc = c0; - mfbcc = c0; - mfbaa = c0; - mfbca = c0; - mfbac = c0; - mfbbb = c0; - mfccc = c0; - mfaac = c0; - mfcac = c0; - mfacc = c0; - mfcca = c0; - mfaaa = c0; - mfcaa = c0; - mfaca = c0; - ///////////// - mgcbb = c0; - mgabb = c0; - mgbcb = c0; - mgbab = c0; - mgbbc = c0; - mgbba = c0; - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position SWT -0.25f, -0.25f, 0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = -c1o4; - y = -c1o4; - z = c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho = c1o64*drho_NEB+c3o64*drho_NET+c3o64*drho_NWB+c9o64*drho_NWT+c3o64*drho_SEB+c9o64*drho_SET+c9o64*drho_SWB+c27o64*drho_SWT; - //press = press_SWT * (c27o64 + c9o16 * mxoff + c9o16 * myoff - c9o16 * mzoff) + - // press_NWT * (c9o64 + c3o16 * mxoff - c9o16 * myoff - c3o16 * mzoff) + - // press_SET * (c9o64 - c9o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + - // press_NET * (c3o64 - c3o16 * mxoff - c3o16 * myoff - c1o16 * mzoff) + - // press_NEB * (c1o64 - c1o16 * mxoff - c1o16 * myoff + c1o16 * mzoff) + - // press_NWB * (c3o64 + c1o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + - // press_SEB * (c3o64 - c3o16 * mxoff + c1o16 * myoff + c3o16 * mzoff) + - // press_SWB * (c9o64 + c3o16 * mxoff + c3o16 * myoff + c9o16 * mzoff); - //drho = drho_SWT * (c27o64 + c9o16 * xoff + c9o16 * yoff - c9o16 * zoff) + - // drho_NWT * (c9o64 + c3o16 * xoff - c9o16 * yoff - c3o16 * zoff) + - // drho_SET * (c9o64 - c9o16 * xoff + c3o16 * yoff - c3o16 * zoff) + - // drho_NET * (c3o64 - c3o16 * xoff - c3o16 * yoff - c1o16 * zoff) + - // drho_NEB * (c1o64 - c1o16 * xoff - c1o16 * yoff + c1o16 * zoff) + - // drho_NWB * (c3o64 + c1o16 * xoff - c3o16 * yoff + c3o16 * zoff) + - // drho_SEB * (c3o64 - c3o16 * xoff + c1o16 * yoff + c3o16 * zoff) + - // drho_SWB * (c9o64 + c3o16 * xoff + c3o16 * yoff + c9o16 * zoff); - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; - vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); - vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); - vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); - //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); - //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); - //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //2.f - // linear combinations - mxxPyyPzz = mfaaa - c2o3*(ax + by + c2o1*axx*x + bxy*x + axy*y + c2o1*byy*y + axz*z + byz*z + bxyz*x*z + axyz*y*z + cz - cxz*x + cyz*y + cxyz*x*y + c2o1*czz*z)*eps_new / oP* (c1o1 + press); - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); - //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mfbbb = c0; - - //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); - //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); - //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); - //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyPyzz = c0; - - //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); - //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyMyzz = c0; - - //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); - //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); - //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzPyyz = c0; - - //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); - //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzMyyz = c0; - - //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); - //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); - //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyPxzz = c0; - - //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); - //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyMxzz = c0; - - //////////////////////////////////////////////////////////////////////////////////// - // D3Q27F - dxux = (ax + c2o1*axx*x + axy*y + axz*z + axyz*y*z); - dyuy = (by + bxy*x + c2o1*byy*y + byz*z + bxyz*x*z); - dzuz = (cz - cxz*x + cyz*y + c2o1*czz*z + cxyz*x*y); - mgcbb = (vvx * axx + dxux * dxux) * (eps_new * eps_new) * (c1o1 + press); - mgabb = -(vvx * axx + dxux * dxux) * (eps_new * eps_new) * (c1o1 + press); - mgbcb = (vvy * byy + dyuy * dyuy) * (eps_new * eps_new) * (c1o1 + press); - mgbab = -(vvy * byy + dyuy * dyuy) * (eps_new * eps_new) * (c1o1 + press); - mgbbc = (vvz * czz + dzuz * dzuz) * (eps_new * eps_new) * (c1o1 + press); - mgbba = -(vvz * czz + dzuz * dzuz) * (eps_new * eps_new) * (c1o1 + press); - //mgcbb = zero; - //mgabb = zero; - //mgbcb = zero; - //mgbab = zero; - //mgbbc = zero; - //mgbba = zero; - //////////////////////////////////////////////////////////////////////////////////// - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - //index - k000 = k00M; - kM00 = kM0M; - k0M0 = k0MM; - k00M = neighborFZ[k00M]; - kMM0 = kMMM; - kM0M = neighborFZ[kM0M]; - k0MM = neighborFZ[k0MM]; - kMMM = neighborFZ[kMMM]; - //////////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - (G.g[dP00])[k000] = mgcbb; - (G.g[dM00])[kM00] = mgabb; - (G.g[d0P0])[k000] = mgbcb; - (G.g[d0M0])[k0M0] = mgbab; - (G.g[d00P])[k000] = mgbbc; - (G.g[d00M])[k00M] = mgbba; - //////////////////////////////////////////////////////////////////////////////////// - fP00dest[k000] = mfcbb; - fM00dest[kM00] = mfabb; - f0P0dest[k000] = mfbcb; - f0M0dest[k0M0] = mfbab; - f00Pdest[k000] = mfbbc; - f00Mdest[k00M] = mfbba; - fPP0dest[k000] = mfccb; - fMM0dest[kMM0] = mfaab; - fPM0dest[k0M0] = mfcab; - fMP0dest[kM00] = mfacb; - fP0Pdest[k000] = mfcbc; - fM0Mdest[kM0M] = mfaba; - fP0Mdest[k00M] = mfcba; - fM0Pdest[kM00] = mfabc; - f0PPdest[k000] = mfbcc; - f0MMdest[k0MM] = mfbaa; - f0PMdest[k00M] = mfbca; - f0MPdest[k0M0] = mfbac; - f000dest[k000] = mfbbb; - fMMMdest[kMMM] = mfaaa; - fMMPdest[kMM0] = mfaac; - fMPPdest[kM00] = mfacc; - fMPMdest[kM0M] = mfaca; - fPPMdest[k00M] = mfcca; - fPPPdest[k000] = mfccc; - fPMPdest[k0M0] = mfcac; - fPMMdest[k0MM] = mfcaa; - //////////////////////////////////////////////////////////////////////////////////// - - - //reset - mfcbb = c0; - mfabb = c0; - mfbcb = c0; - mfbab = c0; - mfbbc = c0; - mfbba = c0; - mfccb = c0; - mfaab = c0; - mfcab = c0; - mfacb = c0; - mfcbc = c0; - mfaba = c0; - mfcba = c0; - mfabc = c0; - mfbcc = c0; - mfbaa = c0; - mfbca = c0; - mfbac = c0; - mfbbb = c0; - mfccc = c0; - mfaac = c0; - mfcac = c0; - mfacc = c0; - mfcca = c0; - mfaaa = c0; - mfcaa = c0; - mfaca = c0; - ///////////// - mgcbb = c0; - mgabb = c0; - mgbcb = c0; - mgbab = c0; - mgbbc = c0; - mgbba = c0; - - - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position SET 0.25f, -0.25f, 0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = c1o4; - y = -c1o4; - z = c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho =c3o64*drho_NEB+c9o64*drho_NET+c1o64*drho_NWB+c3o64*drho_NWT+c9o64*drho_SEB+c27o64*drho_SET+c3o64*drho_SWB+c9o64*drho_SWT; - //press = press_SET * (c27o64 - c9o16 * mxoff + c9o16 * myoff - c9o16 * mzoff) + - // press_NET * (c9o64 - c3o16 * mxoff - c9o16 * myoff - c3o16 * mzoff) + - // press_SWT * (c9o64 + c9o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + - // press_NWT * (c3o64 + c3o16 * mxoff - c3o16 * myoff - c1o16 * mzoff) + - // press_NWB * (c1o64 + c1o16 * mxoff - c1o16 * myoff + c1o16 * mzoff) + - // press_NEB * (c3o64 - c1o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + - // press_SWB * (c3o64 + c3o16 * mxoff + c1o16 * myoff + c3o16 * mzoff) + - // press_SEB * (c9o64 - c3o16 * mxoff + c3o16 * myoff + c9o16 * mzoff); - //drho = drho_SET * (c27o64 - c9o16 * xoff + c9o16 * yoff - c9o16 * zoff) + - // drho_NET * (c9o64 - c3o16 * xoff - c9o16 * yoff - c3o16 * zoff) + - // drho_SWT * (c9o64 + c9o16 * xoff + c3o16 * yoff - c3o16 * zoff) + - // drho_NWT * (c3o64 + c3o16 * xoff - c3o16 * yoff - c1o16 * zoff) + - // drho_NWB * (c1o64 + c1o16 * xoff - c1o16 * yoff + c1o16 * zoff) + - // drho_NEB * (c3o64 - c1o16 * xoff - c3o16 * yoff + c3o16 * zoff) + - // drho_SWB * (c3o64 + c3o16 * xoff + c1o16 * yoff + c3o16 * zoff) + - // drho_SEB * (c9o64 - c3o16 * xoff + c3o16 * yoff + c9o16 * zoff); - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; - vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); - vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); - vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); - //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); - //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); - //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //2.f - // linear combinations - mxxPyyPzz = mfaaa - c2o3*(ax + by + c2o1*axx*x + bxy*x + axy*y + c2o1*byy*y + axz*z + byz*z + bxyz*x*z + axyz*y*z + cz - cxz*x + cyz*y + cxyz*x*y + c2o1*czz*z)*eps_new / oP* (c1o1 + press); - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); - //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mfbbb = c0; - - //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); - //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); - //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); - //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyPyzz = c0; - - //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); - //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyMyzz = c0; - - //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); - //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); - //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzPyyz = c0; - - //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); - //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzMyyz = c0; - - //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); - //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); - //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyPxzz = c0; - - //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); - //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyMxzz = c0; - - //////////////////////////////////////////////////////////////////////////////////// - // D3Q27F - dxux = (ax + c2o1*axx*x + axy*y + axz*z + axyz*y*z); - dyuy = (by + bxy*x + c2o1*byy*y + byz*z + bxyz*x*z); - dzuz = (cz - cxz*x + cyz*y + c2o1*czz*z + cxyz*x*y); - mgcbb = (vvx * axx + dxux * dxux) * (eps_new * eps_new) * (c1o1 + press); - mgabb = -(vvx * axx + dxux * dxux) * (eps_new * eps_new) * (c1o1 + press); - mgbcb = (vvy * byy + dyuy * dyuy) * (eps_new * eps_new) * (c1o1 + press); - mgbab = -(vvy * byy + dyuy * dyuy) * (eps_new * eps_new) * (c1o1 + press); - mgbbc = (vvz * czz + dzuz * dzuz) * (eps_new * eps_new) * (c1o1 + press); - mgbba = -(vvz * czz + dzuz * dzuz) * (eps_new * eps_new) * (c1o1 + press); - //mgcbb = zero; - //mgabb = zero; - //mgbcb = zero; - //mgbab = zero; - //mgbbc = zero; - //mgbba = zero; - //////////////////////////////////////////////////////////////////////////////////// - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //index - k000 = kM00; - kM00 = neighborFX[kM00]; - k0M0 = kMM0; - k00M = kM0M; - kMM0 = neighborFX[kMM0]; - kM0M = neighborFX[kM0M]; - k0MM = kMMM; - kMMM = neighborFX[kMMM]; - //////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - (G.g[dP00])[k000] = mgcbb; - (G.g[dM00])[kM00] = mgabb; - (G.g[d0P0])[k000] = mgbcb; - (G.g[d0M0])[k0M0] = mgbab; - (G.g[d00P])[k000] = mgbbc; - (G.g[d00M])[k00M] = mgbba; - //////////////////////////////////////////////////////////////////////////////////// - fP00dest[k000] = mfcbb; - fM00dest[kM00] = mfabb; - f0P0dest[k000] = mfbcb; - f0M0dest[k0M0] = mfbab; - f00Pdest[k000] = mfbbc; - f00Mdest[k00M] = mfbba; - fPP0dest[k000] = mfccb; - fMM0dest[kMM0] = mfaab; - fPM0dest[k0M0] = mfcab; - fMP0dest[kM00] = mfacb; - fP0Pdest[k000] = mfcbc; - fM0Mdest[kM0M] = mfaba; - fP0Mdest[k00M] = mfcba; - fM0Pdest[kM00] = mfabc; - f0PPdest[k000] = mfbcc; - f0MMdest[k0MM] = mfbaa; - f0PMdest[k00M] = mfbca; - f0MPdest[k0M0] = mfbac; - f000dest[k000] = mfbbb; - fMMMdest[kMMM] = mfaaa; - fMMPdest[kMM0] = mfaac; - fMPPdest[kM00] = mfacc; - fMPMdest[kM0M] = mfaca; - fPPMdest[k00M] = mfcca; - fPPPdest[k000] = mfccc; - fPMPdest[k0M0] = mfcac; - fPMMdest[k0MM] = mfcaa; - //////////////////////////////////////////////////////////////////////////////////// - - //reset - mfcbb = c0; - mfabb = c0; - mfbcb = c0; - mfbab = c0; - mfbbc = c0; - mfbba = c0; - mfccb = c0; - mfaab = c0; - mfcab = c0; - mfacb = c0; - mfcbc = c0; - mfaba = c0; - mfcba = c0; - mfabc = c0; - mfbcc = c0; - mfbaa = c0; - mfbca = c0; - mfbac = c0; - mfbbb = c0; - mfccc = c0; - mfaac = c0; - mfcac = c0; - mfacc = c0; - mfcca = c0; - mfaaa = c0; - mfcaa = c0; - mfaca = c0; - ///////////// - mgcbb = c0; - mgabb = c0; - mgbcb = c0; - mgbab = c0; - mgbbc = c0; - mgbba = c0; - - - - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position SEB 0.25f, -0.25f, -0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = c1o4; - y = -c1o4; - z = -c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho =c9o64*drho_NEB+c3o64*drho_NET+c3o64*drho_NWB+c1o64*drho_NWT+c27o64*drho_SEB+c9o64*drho_SET+c9o64*drho_SWB+c3o64*drho_SWT; - //press = press_SET * (c9o64 - c3o16 * mxoff + c3o16 * myoff - c9o16 * mzoff) + - // press_NET * (c3o64 - c1o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + - // press_SWT * (c3o64 + c3o16 * mxoff + c1o16 * myoff - c3o16 * mzoff) + - // press_NWT * (c1o64 + c1o16 * mxoff - c1o16 * myoff - c1o16 * mzoff) + - // press_NWB * (c3o64 + c3o16 * mxoff - c3o16 * myoff + c1o16 * mzoff) + - // press_NEB * (c9o64 - c3o16 * mxoff - c9o16 * myoff + c3o16 * mzoff) + - // press_SWB * (c9o64 + c9o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + - // press_SEB * (c27o64 - c9o16 * mxoff + c9o16 * myoff + c9o16 * mzoff); - //drho = drho_SET * (c9o64 - c3o16 * xoff + c3o16 * yoff - c9o16 * zoff) + - // drho_NET * (c3o64 - c1o16 * xoff - c3o16 * yoff - c3o16 * zoff) + - // drho_SWT * (c3o64 + c3o16 * xoff + c1o16 * yoff - c3o16 * zoff) + - // drho_NWT * (c1o64 + c1o16 * xoff - c1o16 * yoff - c1o16 * zoff) + - // drho_NWB * (c3o64 + c3o16 * xoff - c3o16 * yoff + c1o16 * zoff) + - // drho_NEB * (c9o64 - c3o16 * xoff - c9o16 * yoff + c3o16 * zoff) + - // drho_SWB * (c9o64 + c9o16 * xoff + c3o16 * yoff + c3o16 * zoff) + - // drho_SEB * (c27o64 - c9o16 * xoff + c9o16 * yoff + c9o16 * zoff); - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; - vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); - vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); - vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); - //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); - //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); - //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //2.f - // linear combinations - mxxPyyPzz = mfaaa - c2o3*(ax + by + c2o1*axx*x + bxy*x + axy*y + c2o1*byy*y + axz*z + byz*z + bxyz*x*z + axyz*y*z + cz - cxz*x + cyz*y + cxyz*x*y + c2o1*czz*z)*eps_new / oP* (c1o1 + press); - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); - //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mfbbb = c0; - - //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); - //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); - //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); - //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyPyzz = c0; - - //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); - //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyMyzz = c0; - - //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); - //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); - //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzPyyz = c0; - - //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); - //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzMyyz = c0; - - //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); - //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); - //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyPxzz = c0; - - //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); - //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyMxzz = c0; - - //////////////////////////////////////////////////////////////////////////////////// - // D3Q27F - dxux = (ax + c2o1*axx*x + axy*y + axz*z + axyz*y*z); - dyuy = (by + bxy*x + c2o1*byy*y + byz*z + bxyz*x*z); - dzuz = (cz - cxz*x + cyz*y + c2o1*czz*z + cxyz*x*y); - mgcbb = (vvx * axx + dxux * dxux) * (eps_new * eps_new) * (c1o1 + press); - mgabb = -(vvx * axx + dxux * dxux) * (eps_new * eps_new) * (c1o1 + press); - mgbcb = (vvy * byy + dyuy * dyuy) * (eps_new * eps_new) * (c1o1 + press); - mgbab = -(vvy * byy + dyuy * dyuy) * (eps_new * eps_new) * (c1o1 + press); - mgbbc = (vvz * czz + dzuz * dzuz) * (eps_new * eps_new) * (c1o1 + press); - mgbba = -(vvz * czz + dzuz * dzuz) * (eps_new * eps_new) * (c1o1 + press); - //mgcbb = zero; - //mgabb = zero; - //mgbcb = zero; - //mgbab = zero; - //mgbbc = zero; - //mgbba = zero; - //////////////////////////////////////////////////////////////////////////////////// - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //index - k00M = k000; - kM0M = kM00; - k0MM = k0M0; - kMMM = kMM0; - k000 = kM00base; - kM00 = neighborFX[kM00base]; - k0M0 = kMM0base; - kMM0 = neighborFX[kMM0base]; - //////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - (G.g[dP00])[k000] = mgcbb; - (G.g[dM00])[kM00] = mgabb; - (G.g[d0P0])[k000] = mgbcb; - (G.g[d0M0])[k0M0] = mgbab; - (G.g[d00P])[k000] = mgbbc; - (G.g[d00M])[k00M] = mgbba; - //////////////////////////////////////////////////////////////////////////////////// - fP00dest[k000] = mfcbb; - fM00dest[kM00] = mfabb; - f0P0dest[k000] = mfbcb; - f0M0dest[k0M0] = mfbab; - f00Pdest[k000] = mfbbc; - f00Mdest[k00M] = mfbba; - fPP0dest[k000] = mfccb; - fMM0dest[kMM0] = mfaab; - fPM0dest[k0M0] = mfcab; - fMP0dest[kM00] = mfacb; - fP0Pdest[k000] = mfcbc; - fM0Mdest[kM0M] = mfaba; - fP0Mdest[k00M] = mfcba; - fM0Pdest[kM00] = mfabc; - f0PPdest[k000] = mfbcc; - f0MMdest[k0MM] = mfbaa; - f0PMdest[k00M] = mfbca; - f0MPdest[k0M0] = mfbac; - f000dest[k000] = mfbbb; - fMMMdest[kMMM] = mfaaa; - fMMPdest[kMM0] = mfaac; - fMPPdest[kM00] = mfacc; - fMPMdest[kM0M] = mfaca; - fPPMdest[k00M] = mfcca; - fPPPdest[k000] = mfccc; - fPMPdest[k0M0] = mfcac; - fPMMdest[k0MM] = mfcaa; - //////////////////////////////////////////////////////////////////////////////////// - - - //reset - mfcbb = c0; - mfabb = c0; - mfbcb = c0; - mfbab = c0; - mfbbc = c0; - mfbba = c0; - mfccb = c0; - mfaab = c0; - mfcab = c0; - mfacb = c0; - mfcbc = c0; - mfaba = c0; - mfcba = c0; - mfabc = c0; - mfbcc = c0; - mfbaa = c0; - mfbca = c0; - mfbac = c0; - mfbbb = c0; - mfccc = c0; - mfaac = c0; - mfcac = c0; - mfacc = c0; - mfcca = c0; - mfaaa = c0; - mfcaa = c0; - mfaca = c0; - ///////////// - mgcbb = c0; - mgabb = c0; - mgbcb = c0; - mgbab = c0; - mgbbc = c0; - mgbba = c0; - - - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position NWB -0.25f, 0.25f, -0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = -c1o4; - y = c1o4; - z = -c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho = c9o64*drho_NEB+c3o64*drho_NET+c27o64*drho_NWB+c9o64*drho_NWT+c3o64*drho_SEB+c1o64*drho_SET+c9o64*drho_SWB+c3o64*drho_SWT; - //press = press_NWT * (c9o64 + c3o16 * mxoff - c3o16 * myoff - c9o16 * mzoff) + - // press_NET * (c3o64 - c3o16 * mxoff - c1o16 * myoff - c3o16 * mzoff) + - // press_SWT * (c3o64 + c1o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + - // press_SET * (c1o64 - c1o16 * mxoff + c1o16 * myoff - c1o16 * mzoff) + - // press_SEB * (c3o64 - c3o16 * mxoff + c3o16 * myoff + c1o16 * mzoff) + - // press_NEB * (c9o64 - c9o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + - // press_SWB * (c9o64 + c3o16 * mxoff + c9o16 * myoff + c3o16 * mzoff) + - // press_NWB * (c27o64 + c9o16 * mxoff - c9o16 * myoff + c9o16 * mzoff); - //drho = drho_NWT * (c9o64 + c3o16 * xoff - c3o16 * yoff - c9o16 * zoff) + - // drho_NET * (c3o64 - c3o16 * xoff - c1o16 * yoff - c3o16 * zoff) + - // drho_SWT * (c3o64 + c1o16 * xoff + c3o16 * yoff - c3o16 * zoff) + - // drho_SET * (c1o64 - c1o16 * xoff + c1o16 * yoff - c1o16 * zoff) + - // drho_SEB * (c3o64 - c3o16 * xoff + c3o16 * yoff + c1o16 * zoff) + - // drho_NEB * (c9o64 - c9o16 * xoff - c3o16 * yoff + c3o16 * zoff) + - // drho_SWB * (c9o64 + c3o16 * xoff + c9o16 * yoff + c3o16 * zoff) + - // drho_NWB * (c27o64 + c9o16 * xoff - c9o16 * yoff + c9o16 * zoff); - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; - vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); - vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); - vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); - //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); - //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); - //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //2.f - // linear combinations - mxxPyyPzz = mfaaa - c2o3*(ax + by + c2o1*axx*x + bxy*x + axy*y + c2o1*byy*y + axz*z + byz*z + bxyz*x*z + axyz*y*z + cz - cxz*x + cyz*y + cxyz*x*y + c2o1*czz*z)*eps_new / oP* (c1o1 + press); - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); - //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mfbbb = c0; - - //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); - //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); - //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); - //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyPyzz = c0; - - //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); - //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyMyzz = c0; - - //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); - //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); - //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzPyyz = c0; - - //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); - //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzMyyz = c0; - - //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); - //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); - //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyPxzz = c0; - - //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); - //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyMxzz = c0; - - //////////////////////////////////////////////////////////////////////////////////// - // D3Q27F - dxux = (ax + c2o1*axx*x + axy*y + axz*z + axyz*y*z); - dyuy = (by + bxy*x + c2o1*byy*y + byz*z + bxyz*x*z); - dzuz = (cz - cxz*x + cyz*y + c2o1*czz*z + cxyz*x*y); - mgcbb = (vvx * axx + dxux * dxux) * (eps_new * eps_new) * (c1o1 + press); - mgabb = -(vvx * axx + dxux * dxux) * (eps_new * eps_new) * (c1o1 + press); - mgbcb = (vvy * byy + dyuy * dyuy) * (eps_new * eps_new) * (c1o1 + press); - mgbab = -(vvy * byy + dyuy * dyuy) * (eps_new * eps_new) * (c1o1 + press); - mgbbc = (vvz * czz + dzuz * dzuz) * (eps_new * eps_new) * (c1o1 + press); - mgbba = -(vvz * czz + dzuz * dzuz) * (eps_new * eps_new) * (c1o1 + press); - //mgcbb = zero; - //mgabb = zero; - //mgbcb = zero; - //mgbab = zero; - //mgbbc = zero; - //mgbba = zero; - //////////////////////////////////////////////////////////////////////////////////// - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //index 0 - k000base = k0M0base; - kM00base = kMM0base; - k0M0base = neighborFY[k0M0base]; - k00Mbase = k0MMbase; - kMM0base = neighborFY[kMM0base]; - kM0Mbase = kMMMbase; - k0MMbase = neighborFY[k0MMbase]; - kMMMbase = neighborFY[kMMMbase]; - ////////////////////////////////////////////////////////////////////////// - //index - k000 = k000base; - kM00 = kM00base; - k0M0 = k0M0base; - k00M = k00Mbase; - kMM0 = kMM0base; - kM0M = kM0Mbase; - k0MM = k0MMbase; - kMMM = kMMMbase; - //////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - (G.g[dP00])[k000] = mgcbb; - (G.g[dM00])[kM00] = mgabb; - (G.g[d0P0])[k000] = mgbcb; - (G.g[d0M0])[k0M0] = mgbab; - (G.g[d00P])[k000] = mgbbc; - (G.g[d00M])[k00M] = mgbba; - //////////////////////////////////////////////////////////////////////////////////// - fP00dest[k000] = mfcbb; - fM00dest[kM00] = mfabb; - f0P0dest[k000] = mfbcb; - f0M0dest[k0M0] = mfbab; - f00Pdest[k000] = mfbbc; - f00Mdest[k00M] = mfbba; - fPP0dest[k000] = mfccb; - fMM0dest[kMM0] = mfaab; - fPM0dest[k0M0] = mfcab; - fMP0dest[kM00] = mfacb; - fP0Pdest[k000] = mfcbc; - fM0Mdest[kM0M] = mfaba; - fP0Mdest[k00M] = mfcba; - fM0Pdest[kM00] = mfabc; - f0PPdest[k000] = mfbcc; - f0MMdest[k0MM] = mfbaa; - f0PMdest[k00M] = mfbca; - f0MPdest[k0M0] = mfbac; - f000dest[k000] = mfbbb; - fMMMdest[kMMM] = mfaaa; - fMMPdest[kMM0] = mfaac; - fMPPdest[kM00] = mfacc; - fMPMdest[kM0M] = mfaca; - fPPMdest[k00M] = mfcca; - fPPPdest[k000] = mfccc; - fPMPdest[k0M0] = mfcac; - fPMMdest[k0MM] = mfcaa; - //////////////////////////////////////////////////////////////////////////////////// - - - //reset - mfcbb = c0; - mfabb = c0; - mfbcb = c0; - mfbab = c0; - mfbbc = c0; - mfbba = c0; - mfccb = c0; - mfaab = c0; - mfcab = c0; - mfacb = c0; - mfcbc = c0; - mfaba = c0; - mfcba = c0; - mfabc = c0; - mfbcc = c0; - mfbaa = c0; - mfbca = c0; - mfbac = c0; - mfbbb = c0; - mfccc = c0; - mfaac = c0; - mfcac = c0; - mfacc = c0; - mfcca = c0; - mfaaa = c0; - mfcaa = c0; - mfaca = c0; - ///////////// - mgcbb = c0; - mgabb = c0; - mgbcb = c0; - mgbab = c0; - mgbbc = c0; - mgbba = c0; - - - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position NWT -0.25f, 0.25f, 0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = -c1o4; - y = c1o4; - z = c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho = c3o64*drho_NEB+c9o64*drho_NET+c9o64*drho_NWB+c27o64*drho_NWT+c1o64*drho_SEB+c3o64*drho_SET+c3o64*drho_SWB+c9o64*drho_SWT; - //press = press_NWT * (c27o64 + c9o16 * mxoff - c9o16 * myoff - c9o16 * mzoff) + - // press_NET * (c9o64 - c9o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + - // press_SWT * (c9o64 + c3o16 * mxoff + c9o16 * myoff - c3o16 * mzoff) + - // press_SET * (c3o64 - c3o16 * mxoff + c3o16 * myoff - c1o16 * mzoff) + - // press_SEB * (c1o64 - c1o16 * mxoff + c1o16 * myoff + c1o16 * mzoff) + - // press_NEB * (c3o64 - c3o16 * mxoff - c1o16 * myoff + c3o16 * mzoff) + - // press_SWB * (c3o64 + c1o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + - // press_NWB * (c9o64 + c3o16 * mxoff - c3o16 * myoff + c9o16 * mzoff); - //drho = drho_NWT * (c27o64 + c9o16 * xoff - c9o16 * yoff - c9o16 * zoff) + - // drho_NET * (c9o64 - c9o16 * xoff - c3o16 * yoff - c3o16 * zoff) + - // drho_SWT * (c9o64 + c3o16 * xoff + c9o16 * yoff - c3o16 * zoff) + - // drho_SET * (c3o64 - c3o16 * xoff + c3o16 * yoff - c1o16 * zoff) + - // drho_SEB * (c1o64 - c1o16 * xoff + c1o16 * yoff + c1o16 * zoff) + - // drho_NEB * (c3o64 - c3o16 * xoff - c1o16 * yoff + c3o16 * zoff) + - // drho_SWB * (c3o64 + c1o16 * xoff + c3o16 * yoff + c3o16 * zoff) + - // drho_NWB * (c9o64 + c3o16 * xoff - c3o16 * yoff + c9o16 * zoff); - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; - vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); - vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); - vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); - //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); - //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); - //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //2.f - // linear combinations - mxxPyyPzz = mfaaa - c2o3*(ax + by + c2o1*axx*x + bxy*x + axy*y + c2o1*byy*y + axz*z + byz*z + bxyz*x*z + axyz*y*z + cz - cxz*x + cyz*y + cxyz*x*y + c2o1*czz*z)*eps_new / oP* (c1o1 + press); - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); - //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mfbbb = c0; - - //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); - //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); - //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); - //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyPyzz = c0; - - //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); - //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyMyzz = c0; - - //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); - //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); - //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzPyyz = c0; - - //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); - //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzMyyz = c0; - - //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); - //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); - //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyPxzz = c0; - - //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); - //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyMxzz = c0; - - //////////////////////////////////////////////////////////////////////////////////// - // D3Q27F - dxux = (ax + c2o1*axx*x + axy*y + axz*z + axyz*y*z); - dyuy = (by + bxy*x + c2o1*byy*y + byz*z + bxyz*x*z); - dzuz = (cz - cxz*x + cyz*y + c2o1*czz*z + cxyz*x*y); - mgcbb = (vvx * axx + dxux * dxux) * (eps_new * eps_new) * (c1o1 + press); - mgabb = -(vvx * axx + dxux * dxux) * (eps_new * eps_new) * (c1o1 + press); - mgbcb = (vvy * byy + dyuy * dyuy) * (eps_new * eps_new) * (c1o1 + press); - mgbab = -(vvy * byy + dyuy * dyuy) * (eps_new * eps_new) * (c1o1 + press); - mgbbc = (vvz * czz + dzuz * dzuz) * (eps_new * eps_new) * (c1o1 + press); - mgbba = -(vvz * czz + dzuz * dzuz) * (eps_new * eps_new) * (c1o1 + press); - //mgcbb = zero; - //mgabb = zero; - //mgbcb = zero; - //mgbab = zero; - //mgbbc = zero; - //mgbba = zero; - //////////////////////////////////////////////////////////////////////////////////// - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //index - k000 = k00M; - kM00 = kM0M; - k0M0 = k0MM; - k00M = neighborFZ[k00M]; - kMM0 = kMMM; - kM0M = neighborFZ[kM0M]; - k0MM = neighborFZ[k0MM]; - kMMM = neighborFZ[kMMM]; - //////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - (G.g[dP00])[k000] = mgcbb; - (G.g[dM00])[kM00] = mgabb; - (G.g[d0P0])[k000] = mgbcb; - (G.g[d0M0])[k0M0] = mgbab; - (G.g[d00P])[k000] = mgbbc; - (G.g[d00M])[k00M] = mgbba; - //////////////////////////////////////////////////////////////////////////////////// - fP00dest[k000] = mfcbb; - fM00dest[kM00] = mfabb; - f0P0dest[k000] = mfbcb; - f0M0dest[k0M0] = mfbab; - f00Pdest[k000] = mfbbc; - f00Mdest[k00M] = mfbba; - fPP0dest[k000] = mfccb; - fMM0dest[kMM0] = mfaab; - fPM0dest[k0M0] = mfcab; - fMP0dest[kM00] = mfacb; - fP0Pdest[k000] = mfcbc; - fM0Mdest[kM0M] = mfaba; - fP0Mdest[k00M] = mfcba; - fM0Pdest[kM00] = mfabc; - f0PPdest[k000] = mfbcc; - f0MMdest[k0MM] = mfbaa; - f0PMdest[k00M] = mfbca; - f0MPdest[k0M0] = mfbac; - f000dest[k000] = mfbbb; - fMMMdest[kMMM] = mfaaa; - fMMPdest[kMM0] = mfaac; - fMPPdest[kM00] = mfacc; - fMPMdest[kM0M] = mfaca; - fPPMdest[k00M] = mfcca; - fPPPdest[k000] = mfccc; - fPMPdest[k0M0] = mfcac; - fPMMdest[k0MM] = mfcaa; - //////////////////////////////////////////////////////////////////////////////////// - - - //reset - mfcbb = c0; - mfabb = c0; - mfbcb = c0; - mfbab = c0; - mfbbc = c0; - mfbba = c0; - mfccb = c0; - mfaab = c0; - mfcab = c0; - mfacb = c0; - mfcbc = c0; - mfaba = c0; - mfcba = c0; - mfabc = c0; - mfbcc = c0; - mfbaa = c0; - mfbca = c0; - mfbac = c0; - mfbbb = c0; - mfccc = c0; - mfaac = c0; - mfcac = c0; - mfacc = c0; - mfcca = c0; - mfaaa = c0; - mfcaa = c0; - mfaca = c0; - ///////////// - mgcbb = c0; - mgabb = c0; - mgbcb = c0; - mgbab = c0; - mgbbc = c0; - mgbba = c0; - - - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position NET 0.25f, 0.25f, 0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = c1o4; - y = c1o4; - z = c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho = c9o64*drho_NEB+c27o64*drho_NET+c3o64*drho_NWB+c9o64*drho_NWT+c3o64*drho_SEB+c9o64*drho_SET+c1o64*drho_SWB+c3o64*drho_SWT; - //press = press_NET * (c27o64 - c9o16 * mxoff - c9o16 * myoff - c9o16 * mzoff) + - // press_NWT * (c9o64 + c9o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + - // press_SET * (c9o64 - c3o16 * mxoff + c9o16 * myoff - c3o16 * mzoff) + - // press_SWT * (c3o64 + c3o16 * mxoff + c3o16 * myoff - c1o16 * mzoff) + - // press_SWB * (c1o64 + c1o16 * mxoff + c1o16 * myoff + c1o16 * mzoff) + - // press_NWB * (c3o64 + c3o16 * mxoff - c1o16 * myoff + c3o16 * mzoff) + - // press_SEB * (c3o64 - c1o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + - // press_NEB * (c9o64 - c3o16 * mxoff - c3o16 * myoff + c9o16 * mzoff); - //drho = drho_NET * (c27o64 - c9o16 * xoff - c9o16 * yoff - c9o16 * zoff) + - // drho_NWT * (c9o64 + c9o16 * xoff - c3o16 * yoff - c3o16 * zoff) + - // drho_SET * (c9o64 - c3o16 * xoff + c9o16 * yoff - c3o16 * zoff) + - // drho_SWT * (c3o64 + c3o16 * xoff + c3o16 * yoff - c1o16 * zoff) + - // drho_SWB * (c1o64 + c1o16 * xoff + c1o16 * yoff + c1o16 * zoff) + - // drho_NWB * (c3o64 + c3o16 * xoff - c1o16 * yoff + c3o16 * zoff) + - // drho_SEB * (c3o64 - c1o16 * xoff + c3o16 * yoff + c3o16 * zoff) + - // drho_NEB * (c9o64 - c3o16 * xoff - c3o16 * yoff + c9o16 * zoff); - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; - vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); - vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); - vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); - //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); - //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); - //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //2.f - // linear combinations - mxxPyyPzz = mfaaa - c2o3*(ax + by + c2o1*axx*x + bxy*x + axy*y + c2o1*byy*y + axz*z + byz*z + bxyz*x*z + axyz*y*z + cz - cxz*x + cyz*y + cxyz*x*y + c2o1*czz*z)*eps_new / oP* (c1o1 + press); - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); - //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mfbbb = c0; - - //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); - //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); - //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); - //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyPyzz = c0; - - //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); - //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyMyzz = c0; - - //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); - //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); - //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzPyyz = c0; - - //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); - //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzMyyz = c0; - - //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); - //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); - //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyPxzz = c0; - - //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); - //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyMxzz = c0; - - //////////////////////////////////////////////////////////////////////////////////// - // D3Q27F - dxux = (ax + c2o1*axx*x + axy*y + axz*z + axyz*y*z); - dyuy = (by + bxy*x + c2o1*byy*y + byz*z + bxyz*x*z); - dzuz = (cz - cxz*x + cyz*y + c2o1*czz*z + cxyz*x*y); - mgcbb = (vvx * axx + dxux * dxux) * (eps_new * eps_new) * (c1o1 + press); - mgabb = -(vvx * axx + dxux * dxux) * (eps_new * eps_new) * (c1o1 + press); - mgbcb = (vvy * byy + dyuy * dyuy) * (eps_new * eps_new) * (c1o1 + press); - mgbab = -(vvy * byy + dyuy * dyuy) * (eps_new * eps_new) * (c1o1 + press); - mgbbc = (vvz * czz + dzuz * dzuz) * (eps_new * eps_new) * (c1o1 + press); - mgbba = -(vvz * czz + dzuz * dzuz) * (eps_new * eps_new) * (c1o1 + press); - //mgcbb = zero; - //mgabb = zero; - //mgbcb = zero; - //mgbab = zero; - //mgbbc = zero; - //mgbba = zero; - //////////////////////////////////////////////////////////////////////////////////// - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //index - k000 = kM00; - kM00 = neighborFX[kM00]; - k0M0 = kMM0; - k00M = kM0M; - kMM0 = neighborFX[kMM0]; - kM0M = neighborFX[kM0M]; - k0MM = kMMM; - kMMM = neighborFX[kMMM]; - //////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - (G.g[dP00])[k000] = mgcbb; - (G.g[dM00])[kM00] = mgabb; - (G.g[d0P0])[k000] = mgbcb; - (G.g[d0M0])[k0M0] = mgbab; - (G.g[d00P])[k000] = mgbbc; - (G.g[d00M])[k00M] = mgbba; - //////////////////////////////////////////////////////////////////////////////////// - fP00dest[k000] = mfcbb; - fM00dest[kM00] = mfabb; - f0P0dest[k000] = mfbcb; - f0M0dest[k0M0] = mfbab; - f00Pdest[k000] = mfbbc; - f00Mdest[k00M] = mfbba; - fPP0dest[k000] = mfccb; - fMM0dest[kMM0] = mfaab; - fPM0dest[k0M0] = mfcab; - fMP0dest[kM00] = mfacb; - fP0Pdest[k000] = mfcbc; - fM0Mdest[kM0M] = mfaba; - fP0Mdest[k00M] = mfcba; - fM0Pdest[kM00] = mfabc; - f0PPdest[k000] = mfbcc; - f0MMdest[k0MM] = mfbaa; - f0PMdest[k00M] = mfbca; - f0MPdest[k0M0] = mfbac; - f000dest[k000] = mfbbb; - fMMMdest[kMMM] = mfaaa; - fMMPdest[kMM0] = mfaac; - fMPPdest[kM00] = mfacc; - fMPMdest[kM0M] = mfaca; - fPPMdest[k00M] = mfcca; - fPPPdest[k000] = mfccc; - fPMPdest[k0M0] = mfcac; - fPMMdest[k0MM] = mfcaa; - //////////////////////////////////////////////////////////////////////////////////// - - - //reset - mfcbb = c0; - mfabb = c0; - mfbcb = c0; - mfbab = c0; - mfbbc = c0; - mfbba = c0; - mfccb = c0; - mfaab = c0; - mfcab = c0; - mfacb = c0; - mfcbc = c0; - mfaba = c0; - mfcba = c0; - mfabc = c0; - mfbcc = c0; - mfbaa = c0; - mfbca = c0; - mfbac = c0; - mfbbb = c0; - mfccc = c0; - mfaac = c0; - mfcac = c0; - mfacc = c0; - mfcca = c0; - mfaaa = c0; - mfcaa = c0; - mfaca = c0; - ///////////// - mgcbb = c0; - mgabb = c0; - mgbcb = c0; - mgbab = c0; - mgbbc = c0; - mgbba = c0; - - - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position NEB 0.25f, 0.25f, -0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = c1o4; - y = c1o4; - z = -c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho = c27o64*drho_NEB+c9o64*drho_NET+c9o64*drho_NWB+c3o64*drho_NWT+c9o64*drho_SEB+c3o64*drho_SET+c3o64*drho_SWB+c1o64*drho_SWT; - //press = press_NET * (c9o64 - c3o16 * mxoff - c3o16 * myoff - c9o16 * mzoff) + - // press_NWT * (c3o64 + c3o16 * mxoff - c1o16 * myoff - c3o16 * mzoff) + - // press_SET * (c3o64 - c1o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + - // press_SWT * (c1o64 + c1o16 * mxoff + c1o16 * myoff - c1o16 * mzoff) + - // press_SWB * (c3o64 + c3o16 * mxoff + c3o16 * myoff + c1o16 * mzoff) + - // press_NWB * (c9o64 + c9o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + - // press_SEB * (c9o64 - c3o16 * mxoff + c9o16 * myoff + c3o16 * mzoff) + - // press_NEB * (c27o64 - c9o16 * mxoff - c9o16 * myoff + c9o16 * mzoff); - //drho = drho_NET * (c9o64 - c3o16 * xoff - c3o16 * yoff - c9o16 * zoff) + - // drho_NWT * (c3o64 + c3o16 * xoff - c1o16 * yoff - c3o16 * zoff) + - // drho_SET * (c3o64 - c1o16 * xoff + c3o16 * yoff - c3o16 * zoff) + - // drho_SWT * (c1o64 + c1o16 * xoff + c1o16 * yoff - c1o16 * zoff) + - // drho_SWB * (c3o64 + c3o16 * xoff + c3o16 * yoff + c1o16 * zoff) + - // drho_NWB * (c9o64 + c9o16 * xoff - c3o16 * yoff + c3o16 * zoff) + - // drho_SEB * (c9o64 - c3o16 * xoff + c9o16 * yoff + c3o16 * zoff) + - // drho_NEB * (c27o64 - c9o16 * xoff - c9o16 * yoff + c9o16 * zoff); - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; - vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); - vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); - vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); - //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); - //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); - //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //2.f - // linear combinations - mxxPyyPzz = mfaaa - c2o3*(ax + by + c2o1*axx*x + bxy*x + axy*y + c2o1*byy*y + axz*z + byz*z + bxyz*x*z + axyz*y*z + cz - cxz*x + cyz*y + cxyz*x*y + c2o1*czz*z)*eps_new / oP* (c1o1 + press); - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); - //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mfbbb = c0; - - //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); - //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); - //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); - //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyPyzz = c0; - - //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); - //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyMyzz = c0; - - //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); - //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); - //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzPyyz = c0; - - //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); - //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzMyyz = c0; - - //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); - //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); - //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyPxzz = c0; - - //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); - //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyMxzz = c0; - - //////////////////////////////////////////////////////////////////////////////////// - // D3Q27F - dxux = (ax + c2o1*axx*x + axy*y + axz*z + axyz*y*z); - dyuy = (by + bxy*x + c2o1*byy*y + byz*z + bxyz*x*z); - dzuz = (cz - cxz*x + cyz*y + c2o1*czz*z + cxyz*x*y); - mgcbb = (vvx * axx + dxux * dxux) * (eps_new * eps_new) * (c1o1 + press); - mgabb = -(vvx * axx + dxux * dxux) * (eps_new * eps_new) * (c1o1 + press); - mgbcb = (vvy * byy + dyuy * dyuy) * (eps_new * eps_new) * (c1o1 + press); - mgbab = -(vvy * byy + dyuy * dyuy) * (eps_new * eps_new) * (c1o1 + press); - mgbbc = (vvz * czz + dzuz * dzuz) * (eps_new * eps_new) * (c1o1 + press); - mgbba = -(vvz * czz + dzuz * dzuz) * (eps_new * eps_new) * (c1o1 + press); - //mgcbb = zero; - //mgabb = zero; - //mgbcb = zero; - //mgbab = zero; - //mgbbc = zero; - //mgbba = zero; - //////////////////////////////////////////////////////////////////////////////////// - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //index - k00M = k000; - kM0M = kM00; - k0MM = k0M0; - kMMM = kMM0; - k000 = kM00base; - kM00 = neighborFX[kM00base]; - k0M0 = kMM0base; - kMM0 = neighborFX[kMM0base]; - //////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - (G.g[dP00])[k000] = mgcbb; - (G.g[dM00])[kM00] = mgabb; - (G.g[d0P0])[k000] = mgbcb; - (G.g[d0M0])[k0M0] = mgbab; - (G.g[d00P])[k000] = mgbbc; - (G.g[d00M])[k00M] = mgbba; - //////////////////////////////////////////////////////////////////////////////////// - fP00dest[k000] = mfcbb; - fM00dest[kM00] = mfabb; - f0P0dest[k000] = mfbcb; - f0M0dest[k0M0] = mfbab; - f00Pdest[k000] = mfbbc; - f00Mdest[k00M] = mfbba; - fPP0dest[k000] = mfccb; - fMM0dest[kMM0] = mfaab; - fPM0dest[k0M0] = mfcab; - fMP0dest[kM00] = mfacb; - fP0Pdest[k000] = mfcbc; - fM0Mdest[kM0M] = mfaba; - fP0Mdest[k00M] = mfcba; - fM0Pdest[kM00] = mfabc; - f0PPdest[k000] = mfbcc; - f0MMdest[k0MM] = mfbaa; - f0PMdest[k00M] = mfbca; - f0MPdest[k0M0] = mfbac; - f000dest[k000] = mfbbb; - fMMMdest[kMMM] = mfaaa; - fMMPdest[kMM0] = mfaac; - fMPPdest[kM00] = mfacc; - fMPMdest[kM0M] = mfaca; - fPPMdest[k00M] = mfcca; - fPPPdest[k000] = mfccc; - fPMPdest[k0M0] = mfcac; - fPMMdest[k0MM] = mfcaa; - //////////////////////////////////////////////////////////////////////////////////// + d0 = d0 + xoff * dx + yoff * dy + zoff * dz + xoff*yoff*dxy + xoff*zoff*dxz + yoff*zoff*dyz; + dx = dx + yoff * dxy + zoff * dxz; + dy = dy + xoff * dxy + zoff * dyz; + dz = dz + xoff * dxz + yoff * dyz; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + real mfcbb = c0; + real mfabb = c0; + real mfbcb = c0; + real mfbab = c0; + real mfbbc = c0; + real mfbba = c0; + real mfccb = c0; + real mfaab = c0; + real mfcab = c0; + real mfacb = c0; + real mfcbc = c0; + real mfaba = c0; + real mfcba = c0; + real mfabc = c0; + real mfbcc = c0; + real mfbaa = c0; + real mfbca = c0; + real mfbac = c0; + real mfbbb = c0; + real mfccc = c0; + real mfaac = c0; + real mfcac = c0; + real mfacc = c0; + real mfcca = c0; + real mfaaa = c0; + real mfcaa = c0; + real mfaca = c0; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + real mgcbb = c0; + real mgabb = c0; + real mgbcb = c0; + real mgbab = c0; + real mgbbc = c0; + real mgbba = c0; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + real m0, m1, m2, oMdrho; + real mxxPyyPzz, mxxMyy, mxxMzz, mxxyPyzz, mxxyMyzz, mxxzPyyz, mxxzMyyz, mxyyPxzz, mxyyMxzz; + //real qudricLimit = c1o100;//ganz schlechte Idee -> muss global sein + //real O3 = two - o; + //real residu, residutmp; + //residutmp = zero;// /*-*/ c2o9 * (1./o - c1o2) * eps_new * eps_new; + real NeqOn = c1o1;//zero;//one; //.... one = on ..... zero = off + real dxux; + real dyuy; + real dzuz; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position SWB -0.25f, -0.25f, -0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = -c1o4; + y = -c1o4; + z = -c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //real mxoff = -xoff; + //real myoff = -yoff; + //real mzoff = -zoff; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho = c3o64*drho_NEB+c1o64*drho_NET+c9o64*drho_NWB+c3o64*drho_NWT+c9o64*drho_SEB+c3o64*drho_SET+c27o64*drho_SWB+c9o64*drho_SWT; + //press = press_SWT * (c9o64 + c3o16 * mxoff + c3o16 * myoff - c9o16 * mzoff) + + // press_NWT * (c3o64 + c1o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + + // press_SET * (c3o64 - c3o16 * mxoff + c1o16 * myoff - c3o16 * mzoff) + + // press_NET * (c1o64 - c1o16 * mxoff - c1o16 * myoff - c1o16 * mzoff) + + // press_NEB * (c3o64 - c3o16 * mxoff - c3o16 * myoff + c1o16 * mzoff) + + // press_NWB * (c9o64 + c3o16 * mxoff - c9o16 * myoff + c3o16 * mzoff) + + // press_SEB * (c9o64 - c9o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + + // press_SWB * (c27o64 + c9o16 * mxoff + c9o16 * myoff + c9o16 * mzoff); + //drho = drho_SWT * (c9o64 + c3o16 * xoff + c3o16 * yoff - c9o16 * zoff) + + // drho_NWT * (c3o64 + c1o16 * xoff - c3o16 * yoff - c3o16 * zoff) + + // drho_SET * (c3o64 - c3o16 * xoff + c1o16 * yoff - c3o16 * zoff) + + // drho_NET * (c1o64 - c1o16 * xoff - c1o16 * yoff - c1o16 * zoff) + + // drho_NEB * (c3o64 - c3o16 * xoff - c3o16 * yoff + c1o16 * zoff) + + // drho_NWB * (c9o64 + c3o16 * xoff - c9o16 * yoff + c3o16 * zoff) + + // drho_SEB * (c9o64 - c9o16 * xoff + c3o16 * yoff + c3o16 * zoff) + + // drho_SWB * (c27o64 + c9o16 * xoff + c9o16 * yoff + c9o16 * zoff); + + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; + vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); + vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); + vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); + //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); + //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); + //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1; + //oMdrho = one - mfaaa; + + //2.f + // linear combinations + mxxPyyPzz = mfaaa - c2o3*(ax + by + c2o1*axx*x + bxy*x + axy*y + c2o1*byy*y + axz*z + byz*z + bxyz*x*z + axyz*y*z + cz - cxz*x + cyz*y + cxyz*x*y + c2o1*czz*z )*eps_new / oP* (c1o1 + press); + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); + //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mfbbb = c0; + + //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); + //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); + //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); + //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyPyzz = c0; + + //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); + //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); + //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyMyzz = c0; + + //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); + //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); + //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzPyyz = c0; + + //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); + //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); + //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzMyyz = c0; + + //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); + //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; + //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); + //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyPxzz = c0; + + //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); + //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); + //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyMxzz = c0; + + //////////////////////////////////////////////////////////////////////////////////// + // D3Q27F + dxux = (ax + c2o1*axx*x + axy*y + axz*z + axyz*y*z); + dyuy = (by + bxy*x + c2o1*byy*y + byz*z + bxyz*x*z); + dzuz = (cz - cxz*x + cyz*y + c2o1*czz*z + cxyz*x*y); + mgcbb = (vvx * axx + dxux * dxux) * (eps_new * eps_new) * (c1o1 + press); + mgabb = -(vvx * axx + dxux * dxux) * (eps_new * eps_new) * (c1o1 + press); + mgbcb = (vvy * byy + dyuy * dyuy) * (eps_new * eps_new) * (c1o1 + press); + mgbab = -(vvy * byy + dyuy * dyuy) * (eps_new * eps_new) * (c1o1 + press); + mgbbc = (vvz * czz + dzuz * dzuz) * (eps_new * eps_new) * (c1o1 + press); + mgbba = -(vvz * czz + dzuz * dzuz) * (eps_new * eps_new) * (c1o1 + press); + //mgcbb = zero; + //mgabb = zero; + //mgbcb = zero; + //mgbab = zero; + //mgbbc = zero; + //mgbba = zero; + //////////////////////////////////////////////////////////////////////////////////// + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////// + //index 0 + k000base = posFSWB[k]; + kM00base = neighborFX[k000base]; + k0M0base = neighborFY[k000base]; + k00Mbase = neighborFZ[k000base]; + kMM0base = neighborFY[kM00base]; + kM0Mbase = neighborFZ[kM00base]; + k0MMbase = neighborFZ[k0M0base]; + kMMMbase = neighborFZ[kMM0base]; + ////////////////////////////////////////////////////////////////////////// + //index + k000 = k000base; + kM00 = kM00base; + k0M0 = k0M0base; + k00M = k00Mbase; + kMM0 = kMM0base; + kM0M = kM0Mbase; + k0MM = k0MMbase; + kMMM = kMMMbase; + //////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + (G.g[dP00])[k000] = mgcbb; + (G.g[dM00])[kM00] = mgabb; + (G.g[d0P0])[k000] = mgbcb; + (G.g[d0M0])[k0M0] = mgbab; + (G.g[d00P])[k000] = mgbbc; + (G.g[d00M])[k00M] = mgbba; + //////////////////////////////////////////////////////////////////////////////////// + fP00dest[k000] = mfcbb; + fM00dest[kM00] = mfabb; + f0P0dest[k000] = mfbcb; + f0M0dest[k0M0] = mfbab; + f00Pdest[k000] = mfbbc; + f00Mdest[k00M] = mfbba; + fPP0dest[k000] = mfccb; + fMM0dest[kMM0] = mfaab; + fPM0dest[k0M0] = mfcab; + fMP0dest[kM00] = mfacb; + fP0Pdest[k000] = mfcbc; + fM0Mdest[kM0M] = mfaba; + fP0Mdest[k00M] = mfcba; + fM0Pdest[kM00] = mfabc; + f0PPdest[k000] = mfbcc; + f0MMdest[k0MM] = mfbaa; + f0PMdest[k00M] = mfbca; + f0MPdest[k0M0] = mfbac; + f000dest[k000] = mfbbb; + fMMMdest[kMMM] = mfaaa; + fMMPdest[kMM0] = mfaac; + fMPPdest[kM00] = mfacc; + fMPMdest[kM0M] = mfaca; + fPPMdest[k00M] = mfcca; + fPPPdest[k000] = mfccc; + fPMPdest[k0M0] = mfcac; + fPMMdest[k0MM] = mfcaa; + //////////////////////////////////////////////////////////////////////////////////// + + //reset + mfcbb = c0; + mfabb = c0; + mfbcb = c0; + mfbab = c0; + mfbbc = c0; + mfbba = c0; + mfccb = c0; + mfaab = c0; + mfcab = c0; + mfacb = c0; + mfcbc = c0; + mfaba = c0; + mfcba = c0; + mfabc = c0; + mfbcc = c0; + mfbaa = c0; + mfbca = c0; + mfbac = c0; + mfbbb = c0; + mfccc = c0; + mfaac = c0; + mfcac = c0; + mfacc = c0; + mfcca = c0; + mfaaa = c0; + mfcaa = c0; + mfaca = c0; + ///////////// + mgcbb = c0; + mgabb = c0; + mgbcb = c0; + mgbab = c0; + mgbbc = c0; + mgbba = c0; + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position SWT -0.25f, -0.25f, 0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = -c1o4; + y = -c1o4; + z = c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho = c1o64*drho_NEB+c3o64*drho_NET+c3o64*drho_NWB+c9o64*drho_NWT+c3o64*drho_SEB+c9o64*drho_SET+c9o64*drho_SWB+c27o64*drho_SWT; + //press = press_SWT * (c27o64 + c9o16 * mxoff + c9o16 * myoff - c9o16 * mzoff) + + // press_NWT * (c9o64 + c3o16 * mxoff - c9o16 * myoff - c3o16 * mzoff) + + // press_SET * (c9o64 - c9o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + + // press_NET * (c3o64 - c3o16 * mxoff - c3o16 * myoff - c1o16 * mzoff) + + // press_NEB * (c1o64 - c1o16 * mxoff - c1o16 * myoff + c1o16 * mzoff) + + // press_NWB * (c3o64 + c1o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + + // press_SEB * (c3o64 - c3o16 * mxoff + c1o16 * myoff + c3o16 * mzoff) + + // press_SWB * (c9o64 + c3o16 * mxoff + c3o16 * myoff + c9o16 * mzoff); + //drho = drho_SWT * (c27o64 + c9o16 * xoff + c9o16 * yoff - c9o16 * zoff) + + // drho_NWT * (c9o64 + c3o16 * xoff - c9o16 * yoff - c3o16 * zoff) + + // drho_SET * (c9o64 - c9o16 * xoff + c3o16 * yoff - c3o16 * zoff) + + // drho_NET * (c3o64 - c3o16 * xoff - c3o16 * yoff - c1o16 * zoff) + + // drho_NEB * (c1o64 - c1o16 * xoff - c1o16 * yoff + c1o16 * zoff) + + // drho_NWB * (c3o64 + c1o16 * xoff - c3o16 * yoff + c3o16 * zoff) + + // drho_SEB * (c3o64 - c3o16 * xoff + c1o16 * yoff + c3o16 * zoff) + + // drho_SWB * (c9o64 + c3o16 * xoff + c3o16 * yoff + c9o16 * zoff); + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; + vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); + vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); + vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); + //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); + //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); + //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1; + //oMdrho = one - mfaaa; + + //2.f + // linear combinations + mxxPyyPzz = mfaaa - c2o3*(ax + by + c2o1*axx*x + bxy*x + axy*y + c2o1*byy*y + axz*z + byz*z + bxyz*x*z + axyz*y*z + cz - cxz*x + cyz*y + cxyz*x*y + c2o1*czz*z)*eps_new / oP* (c1o1 + press); + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); + //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mfbbb = c0; + + //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); + //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); + //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); + //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyPyzz = c0; + + //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); + //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); + //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyMyzz = c0; + + //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); + //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); + //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzPyyz = c0; + + //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); + //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); + //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzMyyz = c0; + + //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); + //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; + //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); + //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyPxzz = c0; + + //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); + //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); + //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyMxzz = c0; + + //////////////////////////////////////////////////////////////////////////////////// + // D3Q27F + dxux = (ax + c2o1*axx*x + axy*y + axz*z + axyz*y*z); + dyuy = (by + bxy*x + c2o1*byy*y + byz*z + bxyz*x*z); + dzuz = (cz - cxz*x + cyz*y + c2o1*czz*z + cxyz*x*y); + mgcbb = (vvx * axx + dxux * dxux) * (eps_new * eps_new) * (c1o1 + press); + mgabb = -(vvx * axx + dxux * dxux) * (eps_new * eps_new) * (c1o1 + press); + mgbcb = (vvy * byy + dyuy * dyuy) * (eps_new * eps_new) * (c1o1 + press); + mgbab = -(vvy * byy + dyuy * dyuy) * (eps_new * eps_new) * (c1o1 + press); + mgbbc = (vvz * czz + dzuz * dzuz) * (eps_new * eps_new) * (c1o1 + press); + mgbba = -(vvz * czz + dzuz * dzuz) * (eps_new * eps_new) * (c1o1 + press); + //mgcbb = zero; + //mgabb = zero; + //mgbcb = zero; + //mgbab = zero; + //mgbbc = zero; + //mgbba = zero; + //////////////////////////////////////////////////////////////////////////////////// + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + //index + k000 = k00M; + kM00 = kM0M; + k0M0 = k0MM; + k00M = neighborFZ[k00M]; + kMM0 = kMMM; + kM0M = neighborFZ[kM0M]; + k0MM = neighborFZ[k0MM]; + kMMM = neighborFZ[kMMM]; + //////////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + (G.g[dP00])[k000] = mgcbb; + (G.g[dM00])[kM00] = mgabb; + (G.g[d0P0])[k000] = mgbcb; + (G.g[d0M0])[k0M0] = mgbab; + (G.g[d00P])[k000] = mgbbc; + (G.g[d00M])[k00M] = mgbba; + //////////////////////////////////////////////////////////////////////////////////// + fP00dest[k000] = mfcbb; + fM00dest[kM00] = mfabb; + f0P0dest[k000] = mfbcb; + f0M0dest[k0M0] = mfbab; + f00Pdest[k000] = mfbbc; + f00Mdest[k00M] = mfbba; + fPP0dest[k000] = mfccb; + fMM0dest[kMM0] = mfaab; + fPM0dest[k0M0] = mfcab; + fMP0dest[kM00] = mfacb; + fP0Pdest[k000] = mfcbc; + fM0Mdest[kM0M] = mfaba; + fP0Mdest[k00M] = mfcba; + fM0Pdest[kM00] = mfabc; + f0PPdest[k000] = mfbcc; + f0MMdest[k0MM] = mfbaa; + f0PMdest[k00M] = mfbca; + f0MPdest[k0M0] = mfbac; + f000dest[k000] = mfbbb; + fMMMdest[kMMM] = mfaaa; + fMMPdest[kMM0] = mfaac; + fMPPdest[kM00] = mfacc; + fMPMdest[kM0M] = mfaca; + fPPMdest[k00M] = mfcca; + fPPPdest[k000] = mfccc; + fPMPdest[k0M0] = mfcac; + fPMMdest[k0MM] = mfcaa; + //////////////////////////////////////////////////////////////////////////////////// + + + //reset + mfcbb = c0; + mfabb = c0; + mfbcb = c0; + mfbab = c0; + mfbbc = c0; + mfbba = c0; + mfccb = c0; + mfaab = c0; + mfcab = c0; + mfacb = c0; + mfcbc = c0; + mfaba = c0; + mfcba = c0; + mfabc = c0; + mfbcc = c0; + mfbaa = c0; + mfbca = c0; + mfbac = c0; + mfbbb = c0; + mfccc = c0; + mfaac = c0; + mfcac = c0; + mfacc = c0; + mfcca = c0; + mfaaa = c0; + mfcaa = c0; + mfaca = c0; + ///////////// + mgcbb = c0; + mgabb = c0; + mgbcb = c0; + mgbab = c0; + mgbbc = c0; + mgbba = c0; + + + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position SET 0.25f, -0.25f, 0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = c1o4; + y = -c1o4; + z = c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho =c3o64*drho_NEB+c9o64*drho_NET+c1o64*drho_NWB+c3o64*drho_NWT+c9o64*drho_SEB+c27o64*drho_SET+c3o64*drho_SWB+c9o64*drho_SWT; + //press = press_SET * (c27o64 - c9o16 * mxoff + c9o16 * myoff - c9o16 * mzoff) + + // press_NET * (c9o64 - c3o16 * mxoff - c9o16 * myoff - c3o16 * mzoff) + + // press_SWT * (c9o64 + c9o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + + // press_NWT * (c3o64 + c3o16 * mxoff - c3o16 * myoff - c1o16 * mzoff) + + // press_NWB * (c1o64 + c1o16 * mxoff - c1o16 * myoff + c1o16 * mzoff) + + // press_NEB * (c3o64 - c1o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + + // press_SWB * (c3o64 + c3o16 * mxoff + c1o16 * myoff + c3o16 * mzoff) + + // press_SEB * (c9o64 - c3o16 * mxoff + c3o16 * myoff + c9o16 * mzoff); + //drho = drho_SET * (c27o64 - c9o16 * xoff + c9o16 * yoff - c9o16 * zoff) + + // drho_NET * (c9o64 - c3o16 * xoff - c9o16 * yoff - c3o16 * zoff) + + // drho_SWT * (c9o64 + c9o16 * xoff + c3o16 * yoff - c3o16 * zoff) + + // drho_NWT * (c3o64 + c3o16 * xoff - c3o16 * yoff - c1o16 * zoff) + + // drho_NWB * (c1o64 + c1o16 * xoff - c1o16 * yoff + c1o16 * zoff) + + // drho_NEB * (c3o64 - c1o16 * xoff - c3o16 * yoff + c3o16 * zoff) + + // drho_SWB * (c3o64 + c3o16 * xoff + c1o16 * yoff + c3o16 * zoff) + + // drho_SEB * (c9o64 - c3o16 * xoff + c3o16 * yoff + c9o16 * zoff); + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; + vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); + vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); + vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); + //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); + //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); + //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1; + //oMdrho = one - mfaaa; + + //2.f + // linear combinations + mxxPyyPzz = mfaaa - c2o3*(ax + by + c2o1*axx*x + bxy*x + axy*y + c2o1*byy*y + axz*z + byz*z + bxyz*x*z + axyz*y*z + cz - cxz*x + cyz*y + cxyz*x*y + c2o1*czz*z)*eps_new / oP* (c1o1 + press); + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); + //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mfbbb = c0; + + //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); + //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); + //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); + //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyPyzz = c0; + + //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); + //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); + //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyMyzz = c0; + + //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); + //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); + //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzPyyz = c0; + + //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); + //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); + //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzMyyz = c0; + + //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); + //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; + //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); + //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyPxzz = c0; + + //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); + //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); + //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyMxzz = c0; + + //////////////////////////////////////////////////////////////////////////////////// + // D3Q27F + dxux = (ax + c2o1*axx*x + axy*y + axz*z + axyz*y*z); + dyuy = (by + bxy*x + c2o1*byy*y + byz*z + bxyz*x*z); + dzuz = (cz - cxz*x + cyz*y + c2o1*czz*z + cxyz*x*y); + mgcbb = (vvx * axx + dxux * dxux) * (eps_new * eps_new) * (c1o1 + press); + mgabb = -(vvx * axx + dxux * dxux) * (eps_new * eps_new) * (c1o1 + press); + mgbcb = (vvy * byy + dyuy * dyuy) * (eps_new * eps_new) * (c1o1 + press); + mgbab = -(vvy * byy + dyuy * dyuy) * (eps_new * eps_new) * (c1o1 + press); + mgbbc = (vvz * czz + dzuz * dzuz) * (eps_new * eps_new) * (c1o1 + press); + mgbba = -(vvz * czz + dzuz * dzuz) * (eps_new * eps_new) * (c1o1 + press); + //mgcbb = zero; + //mgabb = zero; + //mgbcb = zero; + //mgbab = zero; + //mgbbc = zero; + //mgbba = zero; + //////////////////////////////////////////////////////////////////////////////////// + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////// + //index + k000 = kM00; + kM00 = neighborFX[kM00]; + k0M0 = kMM0; + k00M = kM0M; + kMM0 = neighborFX[kMM0]; + kM0M = neighborFX[kM0M]; + k0MM = kMMM; + kMMM = neighborFX[kMMM]; + //////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + (G.g[dP00])[k000] = mgcbb; + (G.g[dM00])[kM00] = mgabb; + (G.g[d0P0])[k000] = mgbcb; + (G.g[d0M0])[k0M0] = mgbab; + (G.g[d00P])[k000] = mgbbc; + (G.g[d00M])[k00M] = mgbba; + //////////////////////////////////////////////////////////////////////////////////// + fP00dest[k000] = mfcbb; + fM00dest[kM00] = mfabb; + f0P0dest[k000] = mfbcb; + f0M0dest[k0M0] = mfbab; + f00Pdest[k000] = mfbbc; + f00Mdest[k00M] = mfbba; + fPP0dest[k000] = mfccb; + fMM0dest[kMM0] = mfaab; + fPM0dest[k0M0] = mfcab; + fMP0dest[kM00] = mfacb; + fP0Pdest[k000] = mfcbc; + fM0Mdest[kM0M] = mfaba; + fP0Mdest[k00M] = mfcba; + fM0Pdest[kM00] = mfabc; + f0PPdest[k000] = mfbcc; + f0MMdest[k0MM] = mfbaa; + f0PMdest[k00M] = mfbca; + f0MPdest[k0M0] = mfbac; + f000dest[k000] = mfbbb; + fMMMdest[kMMM] = mfaaa; + fMMPdest[kMM0] = mfaac; + fMPPdest[kM00] = mfacc; + fMPMdest[kM0M] = mfaca; + fPPMdest[k00M] = mfcca; + fPPPdest[k000] = mfccc; + fPMPdest[k0M0] = mfcac; + fPMMdest[k0MM] = mfcaa; + //////////////////////////////////////////////////////////////////////////////////// + + //reset + mfcbb = c0; + mfabb = c0; + mfbcb = c0; + mfbab = c0; + mfbbc = c0; + mfbba = c0; + mfccb = c0; + mfaab = c0; + mfcab = c0; + mfacb = c0; + mfcbc = c0; + mfaba = c0; + mfcba = c0; + mfabc = c0; + mfbcc = c0; + mfbaa = c0; + mfbca = c0; + mfbac = c0; + mfbbb = c0; + mfccc = c0; + mfaac = c0; + mfcac = c0; + mfacc = c0; + mfcca = c0; + mfaaa = c0; + mfcaa = c0; + mfaca = c0; + ///////////// + mgcbb = c0; + mgabb = c0; + mgbcb = c0; + mgbab = c0; + mgbbc = c0; + mgbba = c0; + + + + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position SEB 0.25f, -0.25f, -0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = c1o4; + y = -c1o4; + z = -c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho =c9o64*drho_NEB+c3o64*drho_NET+c3o64*drho_NWB+c1o64*drho_NWT+c27o64*drho_SEB+c9o64*drho_SET+c9o64*drho_SWB+c3o64*drho_SWT; + //press = press_SET * (c9o64 - c3o16 * mxoff + c3o16 * myoff - c9o16 * mzoff) + + // press_NET * (c3o64 - c1o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + + // press_SWT * (c3o64 + c3o16 * mxoff + c1o16 * myoff - c3o16 * mzoff) + + // press_NWT * (c1o64 + c1o16 * mxoff - c1o16 * myoff - c1o16 * mzoff) + + // press_NWB * (c3o64 + c3o16 * mxoff - c3o16 * myoff + c1o16 * mzoff) + + // press_NEB * (c9o64 - c3o16 * mxoff - c9o16 * myoff + c3o16 * mzoff) + + // press_SWB * (c9o64 + c9o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + + // press_SEB * (c27o64 - c9o16 * mxoff + c9o16 * myoff + c9o16 * mzoff); + //drho = drho_SET * (c9o64 - c3o16 * xoff + c3o16 * yoff - c9o16 * zoff) + + // drho_NET * (c3o64 - c1o16 * xoff - c3o16 * yoff - c3o16 * zoff) + + // drho_SWT * (c3o64 + c3o16 * xoff + c1o16 * yoff - c3o16 * zoff) + + // drho_NWT * (c1o64 + c1o16 * xoff - c1o16 * yoff - c1o16 * zoff) + + // drho_NWB * (c3o64 + c3o16 * xoff - c3o16 * yoff + c1o16 * zoff) + + // drho_NEB * (c9o64 - c3o16 * xoff - c9o16 * yoff + c3o16 * zoff) + + // drho_SWB * (c9o64 + c9o16 * xoff + c3o16 * yoff + c3o16 * zoff) + + // drho_SEB * (c27o64 - c9o16 * xoff + c9o16 * yoff + c9o16 * zoff); + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; + vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); + vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); + vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); + //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); + //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); + //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1; + //oMdrho = one - mfaaa; + + //2.f + // linear combinations + mxxPyyPzz = mfaaa - c2o3*(ax + by + c2o1*axx*x + bxy*x + axy*y + c2o1*byy*y + axz*z + byz*z + bxyz*x*z + axyz*y*z + cz - cxz*x + cyz*y + cxyz*x*y + c2o1*czz*z)*eps_new / oP* (c1o1 + press); + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); + //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mfbbb = c0; + + //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); + //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); + //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); + //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyPyzz = c0; + + //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); + //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); + //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyMyzz = c0; + + //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); + //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); + //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzPyyz = c0; + + //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); + //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); + //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzMyyz = c0; + + //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); + //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; + //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); + //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyPxzz = c0; + + //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); + //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); + //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyMxzz = c0; + + //////////////////////////////////////////////////////////////////////////////////// + // D3Q27F + dxux = (ax + c2o1*axx*x + axy*y + axz*z + axyz*y*z); + dyuy = (by + bxy*x + c2o1*byy*y + byz*z + bxyz*x*z); + dzuz = (cz - cxz*x + cyz*y + c2o1*czz*z + cxyz*x*y); + mgcbb = (vvx * axx + dxux * dxux) * (eps_new * eps_new) * (c1o1 + press); + mgabb = -(vvx * axx + dxux * dxux) * (eps_new * eps_new) * (c1o1 + press); + mgbcb = (vvy * byy + dyuy * dyuy) * (eps_new * eps_new) * (c1o1 + press); + mgbab = -(vvy * byy + dyuy * dyuy) * (eps_new * eps_new) * (c1o1 + press); + mgbbc = (vvz * czz + dzuz * dzuz) * (eps_new * eps_new) * (c1o1 + press); + mgbba = -(vvz * czz + dzuz * dzuz) * (eps_new * eps_new) * (c1o1 + press); + //mgcbb = zero; + //mgabb = zero; + //mgbcb = zero; + //mgbab = zero; + //mgbbc = zero; + //mgbba = zero; + //////////////////////////////////////////////////////////////////////////////////// + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////// + //index + k00M = k000; + kM0M = kM00; + k0MM = k0M0; + kMMM = kMM0; + k000 = kM00base; + kM00 = neighborFX[kM00base]; + k0M0 = kMM0base; + kMM0 = neighborFX[kMM0base]; + //////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + (G.g[dP00])[k000] = mgcbb; + (G.g[dM00])[kM00] = mgabb; + (G.g[d0P0])[k000] = mgbcb; + (G.g[d0M0])[k0M0] = mgbab; + (G.g[d00P])[k000] = mgbbc; + (G.g[d00M])[k00M] = mgbba; + //////////////////////////////////////////////////////////////////////////////////// + fP00dest[k000] = mfcbb; + fM00dest[kM00] = mfabb; + f0P0dest[k000] = mfbcb; + f0M0dest[k0M0] = mfbab; + f00Pdest[k000] = mfbbc; + f00Mdest[k00M] = mfbba; + fPP0dest[k000] = mfccb; + fMM0dest[kMM0] = mfaab; + fPM0dest[k0M0] = mfcab; + fMP0dest[kM00] = mfacb; + fP0Pdest[k000] = mfcbc; + fM0Mdest[kM0M] = mfaba; + fP0Mdest[k00M] = mfcba; + fM0Pdest[kM00] = mfabc; + f0PPdest[k000] = mfbcc; + f0MMdest[k0MM] = mfbaa; + f0PMdest[k00M] = mfbca; + f0MPdest[k0M0] = mfbac; + f000dest[k000] = mfbbb; + fMMMdest[kMMM] = mfaaa; + fMMPdest[kMM0] = mfaac; + fMPPdest[kM00] = mfacc; + fMPMdest[kM0M] = mfaca; + fPPMdest[k00M] = mfcca; + fPPPdest[k000] = mfccc; + fPMPdest[k0M0] = mfcac; + fPMMdest[k0MM] = mfcaa; + //////////////////////////////////////////////////////////////////////////////////// + + + //reset + mfcbb = c0; + mfabb = c0; + mfbcb = c0; + mfbab = c0; + mfbbc = c0; + mfbba = c0; + mfccb = c0; + mfaab = c0; + mfcab = c0; + mfacb = c0; + mfcbc = c0; + mfaba = c0; + mfcba = c0; + mfabc = c0; + mfbcc = c0; + mfbaa = c0; + mfbca = c0; + mfbac = c0; + mfbbb = c0; + mfccc = c0; + mfaac = c0; + mfcac = c0; + mfacc = c0; + mfcca = c0; + mfaaa = c0; + mfcaa = c0; + mfaca = c0; + ///////////// + mgcbb = c0; + mgabb = c0; + mgbcb = c0; + mgbab = c0; + mgbbc = c0; + mgbba = c0; + + + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position NWB -0.25f, 0.25f, -0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = -c1o4; + y = c1o4; + z = -c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho = c9o64*drho_NEB+c3o64*drho_NET+c27o64*drho_NWB+c9o64*drho_NWT+c3o64*drho_SEB+c1o64*drho_SET+c9o64*drho_SWB+c3o64*drho_SWT; + //press = press_NWT * (c9o64 + c3o16 * mxoff - c3o16 * myoff - c9o16 * mzoff) + + // press_NET * (c3o64 - c3o16 * mxoff - c1o16 * myoff - c3o16 * mzoff) + + // press_SWT * (c3o64 + c1o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + + // press_SET * (c1o64 - c1o16 * mxoff + c1o16 * myoff - c1o16 * mzoff) + + // press_SEB * (c3o64 - c3o16 * mxoff + c3o16 * myoff + c1o16 * mzoff) + + // press_NEB * (c9o64 - c9o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + + // press_SWB * (c9o64 + c3o16 * mxoff + c9o16 * myoff + c3o16 * mzoff) + + // press_NWB * (c27o64 + c9o16 * mxoff - c9o16 * myoff + c9o16 * mzoff); + //drho = drho_NWT * (c9o64 + c3o16 * xoff - c3o16 * yoff - c9o16 * zoff) + + // drho_NET * (c3o64 - c3o16 * xoff - c1o16 * yoff - c3o16 * zoff) + + // drho_SWT * (c3o64 + c1o16 * xoff + c3o16 * yoff - c3o16 * zoff) + + // drho_SET * (c1o64 - c1o16 * xoff + c1o16 * yoff - c1o16 * zoff) + + // drho_SEB * (c3o64 - c3o16 * xoff + c3o16 * yoff + c1o16 * zoff) + + // drho_NEB * (c9o64 - c9o16 * xoff - c3o16 * yoff + c3o16 * zoff) + + // drho_SWB * (c9o64 + c3o16 * xoff + c9o16 * yoff + c3o16 * zoff) + + // drho_NWB * (c27o64 + c9o16 * xoff - c9o16 * yoff + c9o16 * zoff); + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; + vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); + vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); + vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); + //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); + //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); + //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1; + //oMdrho = one - mfaaa; + + //2.f + // linear combinations + mxxPyyPzz = mfaaa - c2o3*(ax + by + c2o1*axx*x + bxy*x + axy*y + c2o1*byy*y + axz*z + byz*z + bxyz*x*z + axyz*y*z + cz - cxz*x + cyz*y + cxyz*x*y + c2o1*czz*z)*eps_new / oP* (c1o1 + press); + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); + //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mfbbb = c0; + + //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); + //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); + //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); + //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyPyzz = c0; + + //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); + //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); + //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyMyzz = c0; + + //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); + //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); + //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzPyyz = c0; + + //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); + //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); + //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzMyyz = c0; + + //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); + //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; + //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); + //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyPxzz = c0; + + //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); + //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); + //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyMxzz = c0; + + //////////////////////////////////////////////////////////////////////////////////// + // D3Q27F + dxux = (ax + c2o1*axx*x + axy*y + axz*z + axyz*y*z); + dyuy = (by + bxy*x + c2o1*byy*y + byz*z + bxyz*x*z); + dzuz = (cz - cxz*x + cyz*y + c2o1*czz*z + cxyz*x*y); + mgcbb = (vvx * axx + dxux * dxux) * (eps_new * eps_new) * (c1o1 + press); + mgabb = -(vvx * axx + dxux * dxux) * (eps_new * eps_new) * (c1o1 + press); + mgbcb = (vvy * byy + dyuy * dyuy) * (eps_new * eps_new) * (c1o1 + press); + mgbab = -(vvy * byy + dyuy * dyuy) * (eps_new * eps_new) * (c1o1 + press); + mgbbc = (vvz * czz + dzuz * dzuz) * (eps_new * eps_new) * (c1o1 + press); + mgbba = -(vvz * czz + dzuz * dzuz) * (eps_new * eps_new) * (c1o1 + press); + //mgcbb = zero; + //mgabb = zero; + //mgbcb = zero; + //mgbab = zero; + //mgbbc = zero; + //mgbba = zero; + //////////////////////////////////////////////////////////////////////////////////// + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////// + //index 0 + k000base = k0M0base; + kM00base = kMM0base; + k0M0base = neighborFY[k0M0base]; + k00Mbase = k0MMbase; + kMM0base = neighborFY[kMM0base]; + kM0Mbase = kMMMbase; + k0MMbase = neighborFY[k0MMbase]; + kMMMbase = neighborFY[kMMMbase]; + ////////////////////////////////////////////////////////////////////////// + //index + k000 = k000base; + kM00 = kM00base; + k0M0 = k0M0base; + k00M = k00Mbase; + kMM0 = kMM0base; + kM0M = kM0Mbase; + k0MM = k0MMbase; + kMMM = kMMMbase; + //////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + (G.g[dP00])[k000] = mgcbb; + (G.g[dM00])[kM00] = mgabb; + (G.g[d0P0])[k000] = mgbcb; + (G.g[d0M0])[k0M0] = mgbab; + (G.g[d00P])[k000] = mgbbc; + (G.g[d00M])[k00M] = mgbba; + //////////////////////////////////////////////////////////////////////////////////// + fP00dest[k000] = mfcbb; + fM00dest[kM00] = mfabb; + f0P0dest[k000] = mfbcb; + f0M0dest[k0M0] = mfbab; + f00Pdest[k000] = mfbbc; + f00Mdest[k00M] = mfbba; + fPP0dest[k000] = mfccb; + fMM0dest[kMM0] = mfaab; + fPM0dest[k0M0] = mfcab; + fMP0dest[kM00] = mfacb; + fP0Pdest[k000] = mfcbc; + fM0Mdest[kM0M] = mfaba; + fP0Mdest[k00M] = mfcba; + fM0Pdest[kM00] = mfabc; + f0PPdest[k000] = mfbcc; + f0MMdest[k0MM] = mfbaa; + f0PMdest[k00M] = mfbca; + f0MPdest[k0M0] = mfbac; + f000dest[k000] = mfbbb; + fMMMdest[kMMM] = mfaaa; + fMMPdest[kMM0] = mfaac; + fMPPdest[kM00] = mfacc; + fMPMdest[kM0M] = mfaca; + fPPMdest[k00M] = mfcca; + fPPPdest[k000] = mfccc; + fPMPdest[k0M0] = mfcac; + fPMMdest[k0MM] = mfcaa; + //////////////////////////////////////////////////////////////////////////////////// + + + //reset + mfcbb = c0; + mfabb = c0; + mfbcb = c0; + mfbab = c0; + mfbbc = c0; + mfbba = c0; + mfccb = c0; + mfaab = c0; + mfcab = c0; + mfacb = c0; + mfcbc = c0; + mfaba = c0; + mfcba = c0; + mfabc = c0; + mfbcc = c0; + mfbaa = c0; + mfbca = c0; + mfbac = c0; + mfbbb = c0; + mfccc = c0; + mfaac = c0; + mfcac = c0; + mfacc = c0; + mfcca = c0; + mfaaa = c0; + mfcaa = c0; + mfaca = c0; + ///////////// + mgcbb = c0; + mgabb = c0; + mgbcb = c0; + mgbab = c0; + mgbbc = c0; + mgbba = c0; + + + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position NWT -0.25f, 0.25f, 0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = -c1o4; + y = c1o4; + z = c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho = c3o64*drho_NEB+c9o64*drho_NET+c9o64*drho_NWB+c27o64*drho_NWT+c1o64*drho_SEB+c3o64*drho_SET+c3o64*drho_SWB+c9o64*drho_SWT; + //press = press_NWT * (c27o64 + c9o16 * mxoff - c9o16 * myoff - c9o16 * mzoff) + + // press_NET * (c9o64 - c9o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + + // press_SWT * (c9o64 + c3o16 * mxoff + c9o16 * myoff - c3o16 * mzoff) + + // press_SET * (c3o64 - c3o16 * mxoff + c3o16 * myoff - c1o16 * mzoff) + + // press_SEB * (c1o64 - c1o16 * mxoff + c1o16 * myoff + c1o16 * mzoff) + + // press_NEB * (c3o64 - c3o16 * mxoff - c1o16 * myoff + c3o16 * mzoff) + + // press_SWB * (c3o64 + c1o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + + // press_NWB * (c9o64 + c3o16 * mxoff - c3o16 * myoff + c9o16 * mzoff); + //drho = drho_NWT * (c27o64 + c9o16 * xoff - c9o16 * yoff - c9o16 * zoff) + + // drho_NET * (c9o64 - c9o16 * xoff - c3o16 * yoff - c3o16 * zoff) + + // drho_SWT * (c9o64 + c3o16 * xoff + c9o16 * yoff - c3o16 * zoff) + + // drho_SET * (c3o64 - c3o16 * xoff + c3o16 * yoff - c1o16 * zoff) + + // drho_SEB * (c1o64 - c1o16 * xoff + c1o16 * yoff + c1o16 * zoff) + + // drho_NEB * (c3o64 - c3o16 * xoff - c1o16 * yoff + c3o16 * zoff) + + // drho_SWB * (c3o64 + c1o16 * xoff + c3o16 * yoff + c3o16 * zoff) + + // drho_NWB * (c9o64 + c3o16 * xoff - c3o16 * yoff + c9o16 * zoff); + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; + vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); + vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); + vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); + //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); + //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); + //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1; + //oMdrho = one - mfaaa; + + //2.f + // linear combinations + mxxPyyPzz = mfaaa - c2o3*(ax + by + c2o1*axx*x + bxy*x + axy*y + c2o1*byy*y + axz*z + byz*z + bxyz*x*z + axyz*y*z + cz - cxz*x + cyz*y + cxyz*x*y + c2o1*czz*z)*eps_new / oP* (c1o1 + press); + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); + //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mfbbb = c0; + + //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); + //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); + //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); + //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyPyzz = c0; + + //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); + //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); + //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyMyzz = c0; + + //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); + //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); + //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzPyyz = c0; + + //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); + //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); + //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzMyyz = c0; + + //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); + //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; + //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); + //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyPxzz = c0; + + //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); + //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); + //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyMxzz = c0; + + //////////////////////////////////////////////////////////////////////////////////// + // D3Q27F + dxux = (ax + c2o1*axx*x + axy*y + axz*z + axyz*y*z); + dyuy = (by + bxy*x + c2o1*byy*y + byz*z + bxyz*x*z); + dzuz = (cz - cxz*x + cyz*y + c2o1*czz*z + cxyz*x*y); + mgcbb = (vvx * axx + dxux * dxux) * (eps_new * eps_new) * (c1o1 + press); + mgabb = -(vvx * axx + dxux * dxux) * (eps_new * eps_new) * (c1o1 + press); + mgbcb = (vvy * byy + dyuy * dyuy) * (eps_new * eps_new) * (c1o1 + press); + mgbab = -(vvy * byy + dyuy * dyuy) * (eps_new * eps_new) * (c1o1 + press); + mgbbc = (vvz * czz + dzuz * dzuz) * (eps_new * eps_new) * (c1o1 + press); + mgbba = -(vvz * czz + dzuz * dzuz) * (eps_new * eps_new) * (c1o1 + press); + //mgcbb = zero; + //mgabb = zero; + //mgbcb = zero; + //mgbab = zero; + //mgbbc = zero; + //mgbba = zero; + //////////////////////////////////////////////////////////////////////////////////// + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////// + //index + k000 = k00M; + kM00 = kM0M; + k0M0 = k0MM; + k00M = neighborFZ[k00M]; + kMM0 = kMMM; + kM0M = neighborFZ[kM0M]; + k0MM = neighborFZ[k0MM]; + kMMM = neighborFZ[kMMM]; + //////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + (G.g[dP00])[k000] = mgcbb; + (G.g[dM00])[kM00] = mgabb; + (G.g[d0P0])[k000] = mgbcb; + (G.g[d0M0])[k0M0] = mgbab; + (G.g[d00P])[k000] = mgbbc; + (G.g[d00M])[k00M] = mgbba; + //////////////////////////////////////////////////////////////////////////////////// + fP00dest[k000] = mfcbb; + fM00dest[kM00] = mfabb; + f0P0dest[k000] = mfbcb; + f0M0dest[k0M0] = mfbab; + f00Pdest[k000] = mfbbc; + f00Mdest[k00M] = mfbba; + fPP0dest[k000] = mfccb; + fMM0dest[kMM0] = mfaab; + fPM0dest[k0M0] = mfcab; + fMP0dest[kM00] = mfacb; + fP0Pdest[k000] = mfcbc; + fM0Mdest[kM0M] = mfaba; + fP0Mdest[k00M] = mfcba; + fM0Pdest[kM00] = mfabc; + f0PPdest[k000] = mfbcc; + f0MMdest[k0MM] = mfbaa; + f0PMdest[k00M] = mfbca; + f0MPdest[k0M0] = mfbac; + f000dest[k000] = mfbbb; + fMMMdest[kMMM] = mfaaa; + fMMPdest[kMM0] = mfaac; + fMPPdest[kM00] = mfacc; + fMPMdest[kM0M] = mfaca; + fPPMdest[k00M] = mfcca; + fPPPdest[k000] = mfccc; + fPMPdest[k0M0] = mfcac; + fPMMdest[k0MM] = mfcaa; + //////////////////////////////////////////////////////////////////////////////////// + + + //reset + mfcbb = c0; + mfabb = c0; + mfbcb = c0; + mfbab = c0; + mfbbc = c0; + mfbba = c0; + mfccb = c0; + mfaab = c0; + mfcab = c0; + mfacb = c0; + mfcbc = c0; + mfaba = c0; + mfcba = c0; + mfabc = c0; + mfbcc = c0; + mfbaa = c0; + mfbca = c0; + mfbac = c0; + mfbbb = c0; + mfccc = c0; + mfaac = c0; + mfcac = c0; + mfacc = c0; + mfcca = c0; + mfaaa = c0; + mfcaa = c0; + mfaca = c0; + ///////////// + mgcbb = c0; + mgabb = c0; + mgbcb = c0; + mgbab = c0; + mgbbc = c0; + mgbba = c0; + + + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position NET 0.25f, 0.25f, 0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = c1o4; + y = c1o4; + z = c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho = c9o64*drho_NEB+c27o64*drho_NET+c3o64*drho_NWB+c9o64*drho_NWT+c3o64*drho_SEB+c9o64*drho_SET+c1o64*drho_SWB+c3o64*drho_SWT; + //press = press_NET * (c27o64 - c9o16 * mxoff - c9o16 * myoff - c9o16 * mzoff) + + // press_NWT * (c9o64 + c9o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + + // press_SET * (c9o64 - c3o16 * mxoff + c9o16 * myoff - c3o16 * mzoff) + + // press_SWT * (c3o64 + c3o16 * mxoff + c3o16 * myoff - c1o16 * mzoff) + + // press_SWB * (c1o64 + c1o16 * mxoff + c1o16 * myoff + c1o16 * mzoff) + + // press_NWB * (c3o64 + c3o16 * mxoff - c1o16 * myoff + c3o16 * mzoff) + + // press_SEB * (c3o64 - c1o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + + // press_NEB * (c9o64 - c3o16 * mxoff - c3o16 * myoff + c9o16 * mzoff); + //drho = drho_NET * (c27o64 - c9o16 * xoff - c9o16 * yoff - c9o16 * zoff) + + // drho_NWT * (c9o64 + c9o16 * xoff - c3o16 * yoff - c3o16 * zoff) + + // drho_SET * (c9o64 - c3o16 * xoff + c9o16 * yoff - c3o16 * zoff) + + // drho_SWT * (c3o64 + c3o16 * xoff + c3o16 * yoff - c1o16 * zoff) + + // drho_SWB * (c1o64 + c1o16 * xoff + c1o16 * yoff + c1o16 * zoff) + + // drho_NWB * (c3o64 + c3o16 * xoff - c1o16 * yoff + c3o16 * zoff) + + // drho_SEB * (c3o64 - c1o16 * xoff + c3o16 * yoff + c3o16 * zoff) + + // drho_NEB * (c9o64 - c3o16 * xoff - c3o16 * yoff + c9o16 * zoff); + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; + vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); + vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); + vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); + //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); + //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); + //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1; + //oMdrho = one - mfaaa; + + //2.f + // linear combinations + mxxPyyPzz = mfaaa - c2o3*(ax + by + c2o1*axx*x + bxy*x + axy*y + c2o1*byy*y + axz*z + byz*z + bxyz*x*z + axyz*y*z + cz - cxz*x + cyz*y + cxyz*x*y + c2o1*czz*z)*eps_new / oP* (c1o1 + press); + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); + //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mfbbb = c0; + + //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); + //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); + //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); + //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyPyzz = c0; + + //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); + //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); + //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyMyzz = c0; + + //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); + //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); + //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzPyyz = c0; + + //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); + //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); + //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzMyyz = c0; + + //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); + //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; + //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); + //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyPxzz = c0; + + //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); + //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); + //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyMxzz = c0; + + //////////////////////////////////////////////////////////////////////////////////// + // D3Q27F + dxux = (ax + c2o1*axx*x + axy*y + axz*z + axyz*y*z); + dyuy = (by + bxy*x + c2o1*byy*y + byz*z + bxyz*x*z); + dzuz = (cz - cxz*x + cyz*y + c2o1*czz*z + cxyz*x*y); + mgcbb = (vvx * axx + dxux * dxux) * (eps_new * eps_new) * (c1o1 + press); + mgabb = -(vvx * axx + dxux * dxux) * (eps_new * eps_new) * (c1o1 + press); + mgbcb = (vvy * byy + dyuy * dyuy) * (eps_new * eps_new) * (c1o1 + press); + mgbab = -(vvy * byy + dyuy * dyuy) * (eps_new * eps_new) * (c1o1 + press); + mgbbc = (vvz * czz + dzuz * dzuz) * (eps_new * eps_new) * (c1o1 + press); + mgbba = -(vvz * czz + dzuz * dzuz) * (eps_new * eps_new) * (c1o1 + press); + //mgcbb = zero; + //mgabb = zero; + //mgbcb = zero; + //mgbab = zero; + //mgbbc = zero; + //mgbba = zero; + //////////////////////////////////////////////////////////////////////////////////// + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////// + //index + k000 = kM00; + kM00 = neighborFX[kM00]; + k0M0 = kMM0; + k00M = kM0M; + kMM0 = neighborFX[kMM0]; + kM0M = neighborFX[kM0M]; + k0MM = kMMM; + kMMM = neighborFX[kMMM]; + //////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + (G.g[dP00])[k000] = mgcbb; + (G.g[dM00])[kM00] = mgabb; + (G.g[d0P0])[k000] = mgbcb; + (G.g[d0M0])[k0M0] = mgbab; + (G.g[d00P])[k000] = mgbbc; + (G.g[d00M])[k00M] = mgbba; + //////////////////////////////////////////////////////////////////////////////////// + fP00dest[k000] = mfcbb; + fM00dest[kM00] = mfabb; + f0P0dest[k000] = mfbcb; + f0M0dest[k0M0] = mfbab; + f00Pdest[k000] = mfbbc; + f00Mdest[k00M] = mfbba; + fPP0dest[k000] = mfccb; + fMM0dest[kMM0] = mfaab; + fPM0dest[k0M0] = mfcab; + fMP0dest[kM00] = mfacb; + fP0Pdest[k000] = mfcbc; + fM0Mdest[kM0M] = mfaba; + fP0Mdest[k00M] = mfcba; + fM0Pdest[kM00] = mfabc; + f0PPdest[k000] = mfbcc; + f0MMdest[k0MM] = mfbaa; + f0PMdest[k00M] = mfbca; + f0MPdest[k0M0] = mfbac; + f000dest[k000] = mfbbb; + fMMMdest[kMMM] = mfaaa; + fMMPdest[kMM0] = mfaac; + fMPPdest[kM00] = mfacc; + fMPMdest[kM0M] = mfaca; + fPPMdest[k00M] = mfcca; + fPPPdest[k000] = mfccc; + fPMPdest[k0M0] = mfcac; + fPMMdest[k0MM] = mfcaa; + //////////////////////////////////////////////////////////////////////////////////// + + + //reset + mfcbb = c0; + mfabb = c0; + mfbcb = c0; + mfbab = c0; + mfbbc = c0; + mfbba = c0; + mfccb = c0; + mfaab = c0; + mfcab = c0; + mfacb = c0; + mfcbc = c0; + mfaba = c0; + mfcba = c0; + mfabc = c0; + mfbcc = c0; + mfbaa = c0; + mfbca = c0; + mfbac = c0; + mfbbb = c0; + mfccc = c0; + mfaac = c0; + mfcac = c0; + mfacc = c0; + mfcca = c0; + mfaaa = c0; + mfcaa = c0; + mfaca = c0; + ///////////// + mgcbb = c0; + mgabb = c0; + mgbcb = c0; + mgbab = c0; + mgbbc = c0; + mgbba = c0; + + + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position NEB 0.25f, 0.25f, -0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = c1o4; + y = c1o4; + z = -c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho = c27o64*drho_NEB+c9o64*drho_NET+c9o64*drho_NWB+c3o64*drho_NWT+c9o64*drho_SEB+c3o64*drho_SET+c3o64*drho_SWB+c1o64*drho_SWT; + //press = press_NET * (c9o64 - c3o16 * mxoff - c3o16 * myoff - c9o16 * mzoff) + + // press_NWT * (c3o64 + c3o16 * mxoff - c1o16 * myoff - c3o16 * mzoff) + + // press_SET * (c3o64 - c1o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + + // press_SWT * (c1o64 + c1o16 * mxoff + c1o16 * myoff - c1o16 * mzoff) + + // press_SWB * (c3o64 + c3o16 * mxoff + c3o16 * myoff + c1o16 * mzoff) + + // press_NWB * (c9o64 + c9o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + + // press_SEB * (c9o64 - c3o16 * mxoff + c9o16 * myoff + c3o16 * mzoff) + + // press_NEB * (c27o64 - c9o16 * mxoff - c9o16 * myoff + c9o16 * mzoff); + //drho = drho_NET * (c9o64 - c3o16 * xoff - c3o16 * yoff - c9o16 * zoff) + + // drho_NWT * (c3o64 + c3o16 * xoff - c1o16 * yoff - c3o16 * zoff) + + // drho_SET * (c3o64 - c1o16 * xoff + c3o16 * yoff - c3o16 * zoff) + + // drho_SWT * (c1o64 + c1o16 * xoff + c1o16 * yoff - c1o16 * zoff) + + // drho_SWB * (c3o64 + c3o16 * xoff + c3o16 * yoff + c1o16 * zoff) + + // drho_NWB * (c9o64 + c9o16 * xoff - c3o16 * yoff + c3o16 * zoff) + + // drho_SEB * (c9o64 - c3o16 * xoff + c9o16 * yoff + c3o16 * zoff) + + // drho_NEB * (c27o64 - c9o16 * xoff - c9o16 * yoff + c9o16 * zoff); + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; + vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); + vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); + vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); + //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); + //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); + //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1; + //oMdrho = one - mfaaa; + + //2.f + // linear combinations + mxxPyyPzz = mfaaa - c2o3*(ax + by + c2o1*axx*x + bxy*x + axy*y + c2o1*byy*y + axz*z + byz*z + bxyz*x*z + axyz*y*z + cz - cxz*x + cyz*y + cxyz*x*y + c2o1*czz*z)*eps_new / oP* (c1o1 + press); + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); + //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mfbbb = c0; + + //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); + //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); + //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); + //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyPyzz = c0; + + //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); + //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); + //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyMyzz = c0; + + //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); + //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); + //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzPyyz = c0; + + //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); + //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); + //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzMyyz = c0; + + //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); + //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; + //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); + //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyPxzz = c0; + + //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); + //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); + //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyMxzz = c0; + + //////////////////////////////////////////////////////////////////////////////////// + // D3Q27F + dxux = (ax + c2o1*axx*x + axy*y + axz*z + axyz*y*z); + dyuy = (by + bxy*x + c2o1*byy*y + byz*z + bxyz*x*z); + dzuz = (cz - cxz*x + cyz*y + c2o1*czz*z + cxyz*x*y); + mgcbb = (vvx * axx + dxux * dxux) * (eps_new * eps_new) * (c1o1 + press); + mgabb = -(vvx * axx + dxux * dxux) * (eps_new * eps_new) * (c1o1 + press); + mgbcb = (vvy * byy + dyuy * dyuy) * (eps_new * eps_new) * (c1o1 + press); + mgbab = -(vvy * byy + dyuy * dyuy) * (eps_new * eps_new) * (c1o1 + press); + mgbbc = (vvz * czz + dzuz * dzuz) * (eps_new * eps_new) * (c1o1 + press); + mgbba = -(vvz * czz + dzuz * dzuz) * (eps_new * eps_new) * (c1o1 + press); + //mgcbb = zero; + //mgabb = zero; + //mgbcb = zero; + //mgbab = zero; + //mgbbc = zero; + //mgbba = zero; + //////////////////////////////////////////////////////////////////////////////////// + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////// + //index + k00M = k000; + kM0M = kM00; + k0MM = k0M0; + kMMM = kMM0; + k000 = kM00base; + kM00 = neighborFX[kM00base]; + k0M0 = kMM0base; + kMM0 = neighborFX[kMM0base]; + //////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + (G.g[dP00])[k000] = mgcbb; + (G.g[dM00])[kM00] = mgabb; + (G.g[d0P0])[k000] = mgbcb; + (G.g[d0M0])[k0M0] = mgbab; + (G.g[d00P])[k000] = mgbbc; + (G.g[d00M])[k00M] = mgbba; + //////////////////////////////////////////////////////////////////////////////////// + fP00dest[k000] = mfcbb; + fM00dest[kM00] = mfabb; + f0P0dest[k000] = mfbcb; + f0M0dest[k0M0] = mfbab; + f00Pdest[k000] = mfbbc; + f00Mdest[k00M] = mfbba; + fPP0dest[k000] = mfccb; + fMM0dest[kMM0] = mfaab; + fPM0dest[k0M0] = mfcab; + fMP0dest[kM00] = mfacb; + fP0Pdest[k000] = mfcbc; + fM0Mdest[kM0M] = mfaba; + fP0Mdest[k00M] = mfcba; + fM0Pdest[kM00] = mfabc; + f0PPdest[k000] = mfbcc; + f0MMdest[k0MM] = mfbaa; + f0PMdest[k00M] = mfbca; + f0MPdest[k0M0] = mfbac; + f000dest[k000] = mfbbb; + fMMMdest[kMMM] = mfaaa; + fMMPdest[kMM0] = mfaac; + fMPPdest[kM00] = mfacc; + fMPMdest[kM0M] = mfaca; + fPPMdest[k00M] = mfcca; + fPPPdest[k000] = mfccc; + fPMPdest[k0M0] = mfcac; + fPMMdest[k0MM] = mfcaa; + //////////////////////////////////////////////////////////////////////////////////// } } ////////////////////////////////////////////////////////////////////////// @@ -4362,138 +4362,138 @@ __global__ void scaleCF_comp_D3Q27F3_2018(real* DC, ////////////////////////////////////////////////////////////////////////// __global__ void scaleCF_comp_D3Q27F3( real* DC, - real* DF, - real* G6, - unsigned int* neighborCX, - unsigned int* neighborCY, - unsigned int* neighborCZ, - unsigned int* neighborFX, - unsigned int* neighborFY, - unsigned int* neighborFZ, - unsigned long long numberOfLBnodesCoarse, - unsigned long long numberOfLBnodesFine, - bool isEvenTimestep, - unsigned int* posCSWB, - unsigned int* posFSWB, - unsigned int kCF, - real omCoarse, - real omFine, - real nu, - unsigned int nxC, - unsigned int nyC, - unsigned int nxF, - unsigned int nyF, - ICellNeigh offCF) + real* DF, + real* G6, + unsigned int* neighborCX, + unsigned int* neighborCY, + unsigned int* neighborCZ, + unsigned int* neighborFX, + unsigned int* neighborFY, + unsigned int* neighborFZ, + unsigned long long numberOfLBnodesCoarse, + unsigned long long numberOfLBnodesFine, + bool isEvenTimestep, + unsigned int* posCSWB, + unsigned int* posFSWB, + unsigned int kCF, + real omCoarse, + real omFine, + real nu, + unsigned int nxC, + unsigned int nyC, + unsigned int nxF, + unsigned int nyF, + ICellNeigh offCF) { - real - *fP00dest, *fM00dest, *f0P0dest, *f0M0dest, *f00Pdest, *f00Mdest, *fPP0dest, *fMM0dest, *fPM0dest, - *fMP0dest, *fP0Pdest, *fM0Mdest, *fP0Mdest, *fM0Pdest, *f0PPdest, *f0MMdest, *f0PMdest, *f0MPdest, - *f000dest, *fMMMdest, *fMMPdest, *fMPPdest, *fMPMdest, *fPPMdest, *fPPPdest, *fPMPdest, *fPMMdest; - - - fP00dest = &DF[dP00 * numberOfLBnodesFine]; - fM00dest = &DF[dM00 * numberOfLBnodesFine]; - f0P0dest = &DF[d0P0 * numberOfLBnodesFine]; - f0M0dest = &DF[d0M0 * numberOfLBnodesFine]; - f00Pdest = &DF[d00P * numberOfLBnodesFine]; - f00Mdest = &DF[d00M * numberOfLBnodesFine]; - fPP0dest = &DF[dPP0 * numberOfLBnodesFine]; - fMM0dest = &DF[dMM0 * numberOfLBnodesFine]; - fPM0dest = &DF[dPM0 * numberOfLBnodesFine]; - fMP0dest = &DF[dMP0 * numberOfLBnodesFine]; - fP0Pdest = &DF[dP0P * numberOfLBnodesFine]; - fM0Mdest = &DF[dM0M * numberOfLBnodesFine]; - fP0Mdest = &DF[dP0M * numberOfLBnodesFine]; - fM0Pdest = &DF[dM0P * numberOfLBnodesFine]; - f0PPdest = &DF[d0PP * numberOfLBnodesFine]; - f0MMdest = &DF[d0MM * numberOfLBnodesFine]; - f0PMdest = &DF[d0PM * numberOfLBnodesFine]; - f0MPdest = &DF[d0MP * numberOfLBnodesFine]; - f000dest = &DF[d000 * numberOfLBnodesFine]; - fMMMdest = &DF[dMMM * numberOfLBnodesFine]; - fMMPdest = &DF[dMMP * numberOfLBnodesFine]; - fMPPdest = &DF[dMPP * numberOfLBnodesFine]; - fMPMdest = &DF[dMPM * numberOfLBnodesFine]; - fPPMdest = &DF[dPPM * numberOfLBnodesFine]; - fPPPdest = &DF[dPPP * numberOfLBnodesFine]; - fPMPdest = &DF[dPMP * numberOfLBnodesFine]; - fPMMdest = &DF[dPMM * numberOfLBnodesFine]; - - real - *fP00source, *fM00source, *f0P0source, *f0M0source, *f00Psource, *f00Msource, *fPP0source, *fMM0source, *fPM0source, - *fMP0source, *fP0Psource, *fM0Msource, *fP0Msource, *fM0Psource, *f0PPsource, *f0MMsource, *f0PMsource, *f0MPsource, - *f000source, *fMMMsource, *fMMPsource, *fMPPsource, *fMPMsource, *fPPMsource, *fPPPsource, *fPMPsource, *fPMMsource; - - if (isEvenTimestep == true) - { - fP00source = &DC[dP00 * numberOfLBnodesCoarse]; - fM00source = &DC[dM00 * numberOfLBnodesCoarse]; - f0P0source = &DC[d0P0 * numberOfLBnodesCoarse]; - f0M0source = &DC[d0M0 * numberOfLBnodesCoarse]; - f00Psource = &DC[d00P * numberOfLBnodesCoarse]; - f00Msource = &DC[d00M * numberOfLBnodesCoarse]; - fPP0source = &DC[dPP0 * numberOfLBnodesCoarse]; - fMM0source = &DC[dMM0 * numberOfLBnodesCoarse]; - fPM0source = &DC[dPM0 * numberOfLBnodesCoarse]; - fMP0source = &DC[dMP0 * numberOfLBnodesCoarse]; - fP0Psource = &DC[dP0P * numberOfLBnodesCoarse]; - fM0Msource = &DC[dM0M * numberOfLBnodesCoarse]; - fP0Msource = &DC[dP0M * numberOfLBnodesCoarse]; - fM0Psource = &DC[dM0P * numberOfLBnodesCoarse]; - f0PPsource = &DC[d0PP * numberOfLBnodesCoarse]; - f0MMsource = &DC[d0MM * numberOfLBnodesCoarse]; - f0PMsource = &DC[d0PM * numberOfLBnodesCoarse]; - f0MPsource = &DC[d0MP * numberOfLBnodesCoarse]; - f000source = &DC[d000 * numberOfLBnodesCoarse]; - fMMMsource = &DC[dMMM * numberOfLBnodesCoarse]; - fMMPsource = &DC[dMMP * numberOfLBnodesCoarse]; - fMPPsource = &DC[dMPP * numberOfLBnodesCoarse]; - fMPMsource = &DC[dMPM * numberOfLBnodesCoarse]; - fPPMsource = &DC[dPPM * numberOfLBnodesCoarse]; - fPPPsource = &DC[dPPP * numberOfLBnodesCoarse]; - fPMPsource = &DC[dPMP * numberOfLBnodesCoarse]; - fPMMsource = &DC[dPMM * numberOfLBnodesCoarse]; - } - else - { - fP00source = &DC[dM00 * numberOfLBnodesCoarse]; - fM00source = &DC[dP00 * numberOfLBnodesCoarse]; - f0P0source = &DC[d0M0 * numberOfLBnodesCoarse]; - f0M0source = &DC[d0P0 * numberOfLBnodesCoarse]; - f00Psource = &DC[d00M * numberOfLBnodesCoarse]; - f00Msource = &DC[d00P * numberOfLBnodesCoarse]; - fPP0source = &DC[dMM0 * numberOfLBnodesCoarse]; - fMM0source = &DC[dPP0 * numberOfLBnodesCoarse]; - fPM0source = &DC[dMP0 * numberOfLBnodesCoarse]; - fMP0source = &DC[dPM0 * numberOfLBnodesCoarse]; - fP0Psource = &DC[dM0M * numberOfLBnodesCoarse]; - fM0Msource = &DC[dP0P * numberOfLBnodesCoarse]; - fP0Msource = &DC[dM0P * numberOfLBnodesCoarse]; - fM0Psource = &DC[dP0M * numberOfLBnodesCoarse]; - f0PPsource = &DC[d0MM * numberOfLBnodesCoarse]; - f0MMsource = &DC[d0PP * numberOfLBnodesCoarse]; - f0PMsource = &DC[d0MP * numberOfLBnodesCoarse]; - f0MPsource = &DC[d0PM * numberOfLBnodesCoarse]; - f000source = &DC[d000 * numberOfLBnodesCoarse]; - fMMMsource = &DC[dPPP * numberOfLBnodesCoarse]; - fMMPsource = &DC[dPPM * numberOfLBnodesCoarse]; - fMPPsource = &DC[dPMM * numberOfLBnodesCoarse]; - fMPMsource = &DC[dPMP * numberOfLBnodesCoarse]; - fPPMsource = &DC[dMMP * numberOfLBnodesCoarse]; - fPPPsource = &DC[dMMM * numberOfLBnodesCoarse]; - fPMPsource = &DC[dMPM * numberOfLBnodesCoarse]; - fPMMsource = &DC[dMPP * numberOfLBnodesCoarse]; - } - - Distributions6 G; - G.g[dP00] = &G6[dP00 * numberOfLBnodesFine]; - G.g[dM00] = &G6[dM00 * numberOfLBnodesFine]; - G.g[d0P0] = &G6[d0P0 * numberOfLBnodesFine]; - G.g[d0M0] = &G6[d0M0 * numberOfLBnodesFine]; - G.g[d00P] = &G6[d00P * numberOfLBnodesFine]; - G.g[d00M] = &G6[d00M * numberOfLBnodesFine]; - - //////////////////////////////////////////////////////////////////////////////// + real + *fP00dest, *fM00dest, *f0P0dest, *f0M0dest, *f00Pdest, *f00Mdest, *fPP0dest, *fMM0dest, *fPM0dest, + *fMP0dest, *fP0Pdest, *fM0Mdest, *fP0Mdest, *fM0Pdest, *f0PPdest, *f0MMdest, *f0PMdest, *f0MPdest, + *f000dest, *fMMMdest, *fMMPdest, *fMPPdest, *fMPMdest, *fPPMdest, *fPPPdest, *fPMPdest, *fPMMdest; + + + fP00dest = &DF[dP00 * numberOfLBnodesFine]; + fM00dest = &DF[dM00 * numberOfLBnodesFine]; + f0P0dest = &DF[d0P0 * numberOfLBnodesFine]; + f0M0dest = &DF[d0M0 * numberOfLBnodesFine]; + f00Pdest = &DF[d00P * numberOfLBnodesFine]; + f00Mdest = &DF[d00M * numberOfLBnodesFine]; + fPP0dest = &DF[dPP0 * numberOfLBnodesFine]; + fMM0dest = &DF[dMM0 * numberOfLBnodesFine]; + fPM0dest = &DF[dPM0 * numberOfLBnodesFine]; + fMP0dest = &DF[dMP0 * numberOfLBnodesFine]; + fP0Pdest = &DF[dP0P * numberOfLBnodesFine]; + fM0Mdest = &DF[dM0M * numberOfLBnodesFine]; + fP0Mdest = &DF[dP0M * numberOfLBnodesFine]; + fM0Pdest = &DF[dM0P * numberOfLBnodesFine]; + f0PPdest = &DF[d0PP * numberOfLBnodesFine]; + f0MMdest = &DF[d0MM * numberOfLBnodesFine]; + f0PMdest = &DF[d0PM * numberOfLBnodesFine]; + f0MPdest = &DF[d0MP * numberOfLBnodesFine]; + f000dest = &DF[d000 * numberOfLBnodesFine]; + fMMMdest = &DF[dMMM * numberOfLBnodesFine]; + fMMPdest = &DF[dMMP * numberOfLBnodesFine]; + fMPPdest = &DF[dMPP * numberOfLBnodesFine]; + fMPMdest = &DF[dMPM * numberOfLBnodesFine]; + fPPMdest = &DF[dPPM * numberOfLBnodesFine]; + fPPPdest = &DF[dPPP * numberOfLBnodesFine]; + fPMPdest = &DF[dPMP * numberOfLBnodesFine]; + fPMMdest = &DF[dPMM * numberOfLBnodesFine]; + + real + *fP00source, *fM00source, *f0P0source, *f0M0source, *f00Psource, *f00Msource, *fPP0source, *fMM0source, *fPM0source, + *fMP0source, *fP0Psource, *fM0Msource, *fP0Msource, *fM0Psource, *f0PPsource, *f0MMsource, *f0PMsource, *f0MPsource, + *f000source, *fMMMsource, *fMMPsource, *fMPPsource, *fMPMsource, *fPPMsource, *fPPPsource, *fPMPsource, *fPMMsource; + + if (isEvenTimestep == true) + { + fP00source = &DC[dP00 * numberOfLBnodesCoarse]; + fM00source = &DC[dM00 * numberOfLBnodesCoarse]; + f0P0source = &DC[d0P0 * numberOfLBnodesCoarse]; + f0M0source = &DC[d0M0 * numberOfLBnodesCoarse]; + f00Psource = &DC[d00P * numberOfLBnodesCoarse]; + f00Msource = &DC[d00M * numberOfLBnodesCoarse]; + fPP0source = &DC[dPP0 * numberOfLBnodesCoarse]; + fMM0source = &DC[dMM0 * numberOfLBnodesCoarse]; + fPM0source = &DC[dPM0 * numberOfLBnodesCoarse]; + fMP0source = &DC[dMP0 * numberOfLBnodesCoarse]; + fP0Psource = &DC[dP0P * numberOfLBnodesCoarse]; + fM0Msource = &DC[dM0M * numberOfLBnodesCoarse]; + fP0Msource = &DC[dP0M * numberOfLBnodesCoarse]; + fM0Psource = &DC[dM0P * numberOfLBnodesCoarse]; + f0PPsource = &DC[d0PP * numberOfLBnodesCoarse]; + f0MMsource = &DC[d0MM * numberOfLBnodesCoarse]; + f0PMsource = &DC[d0PM * numberOfLBnodesCoarse]; + f0MPsource = &DC[d0MP * numberOfLBnodesCoarse]; + f000source = &DC[d000 * numberOfLBnodesCoarse]; + fMMMsource = &DC[dMMM * numberOfLBnodesCoarse]; + fMMPsource = &DC[dMMP * numberOfLBnodesCoarse]; + fMPPsource = &DC[dMPP * numberOfLBnodesCoarse]; + fMPMsource = &DC[dMPM * numberOfLBnodesCoarse]; + fPPMsource = &DC[dPPM * numberOfLBnodesCoarse]; + fPPPsource = &DC[dPPP * numberOfLBnodesCoarse]; + fPMPsource = &DC[dPMP * numberOfLBnodesCoarse]; + fPMMsource = &DC[dPMM * numberOfLBnodesCoarse]; + } + else + { + fP00source = &DC[dM00 * numberOfLBnodesCoarse]; + fM00source = &DC[dP00 * numberOfLBnodesCoarse]; + f0P0source = &DC[d0M0 * numberOfLBnodesCoarse]; + f0M0source = &DC[d0P0 * numberOfLBnodesCoarse]; + f00Psource = &DC[d00M * numberOfLBnodesCoarse]; + f00Msource = &DC[d00P * numberOfLBnodesCoarse]; + fPP0source = &DC[dMM0 * numberOfLBnodesCoarse]; + fMM0source = &DC[dPP0 * numberOfLBnodesCoarse]; + fPM0source = &DC[dMP0 * numberOfLBnodesCoarse]; + fMP0source = &DC[dPM0 * numberOfLBnodesCoarse]; + fP0Psource = &DC[dM0M * numberOfLBnodesCoarse]; + fM0Msource = &DC[dP0P * numberOfLBnodesCoarse]; + fP0Msource = &DC[dM0P * numberOfLBnodesCoarse]; + fM0Psource = &DC[dP0M * numberOfLBnodesCoarse]; + f0PPsource = &DC[d0MM * numberOfLBnodesCoarse]; + f0MMsource = &DC[d0PP * numberOfLBnodesCoarse]; + f0PMsource = &DC[d0MP * numberOfLBnodesCoarse]; + f0MPsource = &DC[d0PM * numberOfLBnodesCoarse]; + f000source = &DC[d000 * numberOfLBnodesCoarse]; + fMMMsource = &DC[dPPP * numberOfLBnodesCoarse]; + fMMPsource = &DC[dPPM * numberOfLBnodesCoarse]; + fMPPsource = &DC[dPMM * numberOfLBnodesCoarse]; + fMPMsource = &DC[dPMP * numberOfLBnodesCoarse]; + fPPMsource = &DC[dMMP * numberOfLBnodesCoarse]; + fPPPsource = &DC[dMMM * numberOfLBnodesCoarse]; + fPMPsource = &DC[dMPM * numberOfLBnodesCoarse]; + fPMMsource = &DC[dMPP * numberOfLBnodesCoarse]; + } + + Distributions6 G; + G.g[dP00] = &G6[dP00 * numberOfLBnodesFine]; + G.g[dM00] = &G6[dM00 * numberOfLBnodesFine]; + G.g[d0P0] = &G6[d0P0 * numberOfLBnodesFine]; + G.g[d0M0] = &G6[d0M0 * numberOfLBnodesFine]; + G.g[d00P] = &G6[d00P * numberOfLBnodesFine]; + G.g[d00M] = &G6[d00M * numberOfLBnodesFine]; + + //////////////////////////////////////////////////////////////////////////////// const unsigned ix = threadIdx.x; // Globaler x-Index const unsigned iy = blockIdx.x; // Globaler y-Index const unsigned iz = blockIdx.y; // Globaler z-Index @@ -4574,47 +4574,47 @@ __global__ void scaleCF_comp_D3Q27F3( real* DC, unsigned int k0MM = k0MMbase; unsigned int kMMM = kMMMbase; //////////////////////////////////////////////////////////////////////////////// - fP00 = fP00source[k000]; - fM00 = fM00source[kM00]; - f0P0 = f0P0source[k000]; - f0M0 = f0M0source[k0M0]; - f00P = f00Psource[k000]; - f00M = f00Msource[k00M]; - fPP0 = fPP0source[k000]; - fMM0 = fMM0source[kMM0]; - fPM0 = fPM0source[k0M0]; - fMP0 = fMP0source[kM00]; - fP0P = fP0Psource[k000]; - fM0M = fM0Msource[kM0M]; - fP0M = fP0Msource[k00M]; - fM0P = fM0Psource[kM00]; - f0PP = f0PPsource[k000]; - f0MM = f0MMsource[k0MM]; - f0PM = f0PMsource[k00M]; - f0MP = f0MPsource[k0M0]; - f000 = f000source[k000]; - fMMM = fMMMsource[kMMM]; - fMMP = fMMPsource[kMM0]; - fMPP = fMPPsource[kM00]; - fMPM = fMPMsource[kM0M]; - fPPM = fPPMsource[k00M]; - fPPP = fPPPsource[k000]; - fPMP = fPMPsource[k0M0]; - fPMM = fPMMsource[k0MM]; + fP00 = fP00source[k000]; + fM00 = fM00source[kM00]; + f0P0 = f0P0source[k000]; + f0M0 = f0M0source[k0M0]; + f00P = f00Psource[k000]; + f00M = f00Msource[k00M]; + fPP0 = fPP0source[k000]; + fMM0 = fMM0source[kMM0]; + fPM0 = fPM0source[k0M0]; + fMP0 = fMP0source[kM00]; + fP0P = fP0Psource[k000]; + fM0M = fM0Msource[kM0M]; + fP0M = fP0Msource[k00M]; + fM0P = fM0Psource[kM00]; + f0PP = f0PPsource[k000]; + f0MM = f0MMsource[k0MM]; + f0PM = f0PMsource[k00M]; + f0MP = f0MPsource[k0M0]; + f000 = f000source[k000]; + fMMM = fMMMsource[kMMM]; + fMMP = fMMPsource[kMM0]; + fMPP = fMPPsource[kM00]; + fMPM = fMPMsource[kM0M]; + fPPM = fPPMsource[k00M]; + fPPP = fPPPsource[k000]; + fPMP = fPMPsource[k0M0]; + fPMM = fPMMsource[k0MM]; drhoMMM = fP00+fM00+f0P0+f0M0+f00P+f00M+fPP0+fMM0+fPM0+fMP0+fP0P+fM0M+fP0M+fM0P+f0PP+f0MM+f0PM+f0MP+f000+fPPP+fMMP+fPMP+fMPP+fPPM+fMMM+fPMM+fMPM; vx1MMM = (((fPPP-fMMM)+(fPMP-fMPM)+(fPPM-fMMP)+(fPMM-fMPP)) + (((fPP0-fMM0)+(fP0P-fM0M))+((fPM0-fMP0)+(fP0M-fM0P))) + (fP00-fM00))/(c1o1 + drhoMMM); - vx2MMM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoMMM); - vx3MMM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoMMM); + vx2MMM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoMMM); + vx3MMM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoMMM); - kxyFromfcNEQMMM = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoMMM) - ((vx1MMM*vx2MMM))); - kyzFromfcNEQMMM = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoMMM) - ((vx2MMM*vx3MMM))); - kxzFromfcNEQMMM = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoMMM) - ((vx1MMM*vx3MMM))); - kxxMyyFromfcNEQMMM = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoMMM) - ((vx1MMM*vx1MMM - vx2MMM*vx2MMM))); - kxxMzzFromfcNEQMMM = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoMMM) - ((vx1MMM*vx1MMM - vx3MMM*vx3MMM))); - kyyMzzFromfcNEQMMM = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoMMM) - ((vx2MMM*vx2MMM - vx3MMM*vx3MMM))); + kxyFromfcNEQMMM = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoMMM) - ((vx1MMM*vx2MMM))); + kyzFromfcNEQMMM = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoMMM) - ((vx2MMM*vx3MMM))); + kxzFromfcNEQMMM = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoMMM) - ((vx1MMM*vx3MMM))); + kxxMyyFromfcNEQMMM = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoMMM) - ((vx1MMM*vx1MMM - vx2MMM*vx2MMM))); + kxxMzzFromfcNEQMMM = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoMMM) - ((vx1MMM*vx1MMM - vx3MMM*vx3MMM))); + kyyMzzFromfcNEQMMM = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoMMM) - ((vx2MMM*vx2MMM - vx3MMM*vx3MMM))); - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// //SWT// ////////////////////////////////////////////////////////////////////////// //index @@ -4627,45 +4627,45 @@ __global__ void scaleCF_comp_D3Q27F3( real* DC, k0MM = neighborCZ[k0MM]; kMMM = neighborCZ[kMMM]; //////////////////////////////////////////////////////////////////////////////// - fP00 = fP00source[k000]; - fM00 = fM00source[kM00]; - f0P0 = f0P0source[k000]; - f0M0 = f0M0source[k0M0]; - f00P = f00Psource[k000]; - f00M = f00Msource[k00M]; - fPP0 = fPP0source[k000]; - fMM0 = fMM0source[kMM0]; - fPM0 = fPM0source[k0M0]; - fMP0 = fMP0source[kM00]; - fP0P = fP0Psource[k000]; - fM0M = fM0Msource[kM0M]; - fP0M = fP0Msource[k00M]; - fM0P = fM0Psource[kM00]; - f0PP = f0PPsource[k000]; - f0MM = f0MMsource[k0MM]; - f0PM = f0PMsource[k00M]; - f0MP = f0MPsource[k0M0]; - f000 = f000source[k000]; - fMMM = fMMMsource[kMMM]; - fMMP = fMMPsource[kMM0]; - fMPP = fMPPsource[kM00]; - fMPM = fMPMsource[kM0M]; - fPPM = fPPMsource[k00M]; - fPPP = fPPPsource[k000]; - fPMP = fPMPsource[k0M0]; - fPMM = fPMMsource[k0MM]; + fP00 = fP00source[k000]; + fM00 = fM00source[kM00]; + f0P0 = f0P0source[k000]; + f0M0 = f0M0source[k0M0]; + f00P = f00Psource[k000]; + f00M = f00Msource[k00M]; + fPP0 = fPP0source[k000]; + fMM0 = fMM0source[kMM0]; + fPM0 = fPM0source[k0M0]; + fMP0 = fMP0source[kM00]; + fP0P = fP0Psource[k000]; + fM0M = fM0Msource[kM0M]; + fP0M = fP0Msource[k00M]; + fM0P = fM0Psource[kM00]; + f0PP = f0PPsource[k000]; + f0MM = f0MMsource[k0MM]; + f0PM = f0PMsource[k00M]; + f0MP = f0MPsource[k0M0]; + f000 = f000source[k000]; + fMMM = fMMMsource[kMMM]; + fMMP = fMMPsource[kMM0]; + fMPP = fMPPsource[kM00]; + fMPM = fMPMsource[kM0M]; + fPPM = fPPMsource[k00M]; + fPPP = fPPPsource[k000]; + fPMP = fPMPsource[k0M0]; + fPMM = fPMMsource[k0MM]; drhoMMP = fP00+fM00+f0P0+f0M0+f00P+f00M+fPP0+fMM0+fPM0+fMP0+fP0P+fM0M+fP0M+fM0P+f0PP+f0MM+f0PM+f0MP+f000+fPPP+fMMP+fPMP+fMPP+fPPM+fMMM+fPMM+fMPM; vx1MMP = (((fPPP-fMMM)+(fPMP-fMPM)+(fPPM-fMMP)+(fPMM-fMPP)) + (((fPP0-fMM0)+(fP0P-fM0M))+((fPM0-fMP0)+(fP0M-fM0P))) + (fP00-fM00))/(c1o1 + drhoMMP); - vx2MMP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoMMP); - vx3MMP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoMMP); + vx2MMP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoMMP); + vx3MMP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoMMP); - kxyFromfcNEQMMP = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoMMP) - ((vx1MMP*vx2MMP))); - kyzFromfcNEQMMP = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoMMP) - ((vx2MMP*vx3MMP))); - kxzFromfcNEQMMP = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoMMP) - ((vx1MMP*vx3MMP))); - kxxMyyFromfcNEQMMP = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoMMP) - ((vx1MMP*vx1MMP - vx2MMP*vx2MMP))); - kxxMzzFromfcNEQMMP = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoMMP) - ((vx1MMP*vx1MMP - vx3MMP*vx3MMP))); - kyyMzzFromfcNEQMMP = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoMMP) - ((vx2MMP*vx2MMP - vx3MMP*vx3MMP))); + kxyFromfcNEQMMP = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoMMP) - ((vx1MMP*vx2MMP))); + kyzFromfcNEQMMP = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoMMP) - ((vx2MMP*vx3MMP))); + kxzFromfcNEQMMP = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoMMP) - ((vx1MMP*vx3MMP))); + kxxMyyFromfcNEQMMP = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoMMP) - ((vx1MMP*vx1MMP - vx2MMP*vx2MMP))); + kxxMzzFromfcNEQMMP = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoMMP) - ((vx1MMP*vx1MMP - vx3MMP*vx3MMP))); + kyyMzzFromfcNEQMMP = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoMMP) - ((vx2MMP*vx2MMP - vx3MMP*vx3MMP))); ////////////////////////////////////////////////////////////////////////// //SET// @@ -4680,47 +4680,47 @@ __global__ void scaleCF_comp_D3Q27F3( real* DC, k0MM = kMMM; kMMM = neighborCX[kMMM]; //////////////////////////////////////////////////////////////////////////////// - fP00 = fP00source[k000]; - fM00 = fM00source[kM00]; - f0P0 = f0P0source[k000]; - f0M0 = f0M0source[k0M0]; - f00P = f00Psource[k000]; - f00M = f00Msource[k00M]; - fPP0 = fPP0source[k000]; - fMM0 = fMM0source[kMM0]; - fPM0 = fPM0source[k0M0]; - fMP0 = fMP0source[kM00]; - fP0P = fP0Psource[k000]; - fM0M = fM0Msource[kM0M]; - fP0M = fP0Msource[k00M]; - fM0P = fM0Psource[kM00]; - f0PP = f0PPsource[k000]; - f0MM = f0MMsource[k0MM]; - f0PM = f0PMsource[k00M]; - f0MP = f0MPsource[k0M0]; - f000 = f000source[k000]; - fMMM = fMMMsource[kMMM]; - fMMP = fMMPsource[kMM0]; - fMPP = fMPPsource[kM00]; - fMPM = fMPMsource[kM0M]; - fPPM = fPPMsource[k00M]; - fPPP = fPPPsource[k000]; - fPMP = fPMPsource[k0M0]; - fPMM = fPMMsource[k0MM]; + fP00 = fP00source[k000]; + fM00 = fM00source[kM00]; + f0P0 = f0P0source[k000]; + f0M0 = f0M0source[k0M0]; + f00P = f00Psource[k000]; + f00M = f00Msource[k00M]; + fPP0 = fPP0source[k000]; + fMM0 = fMM0source[kMM0]; + fPM0 = fPM0source[k0M0]; + fMP0 = fMP0source[kM00]; + fP0P = fP0Psource[k000]; + fM0M = fM0Msource[kM0M]; + fP0M = fP0Msource[k00M]; + fM0P = fM0Psource[kM00]; + f0PP = f0PPsource[k000]; + f0MM = f0MMsource[k0MM]; + f0PM = f0PMsource[k00M]; + f0MP = f0MPsource[k0M0]; + f000 = f000source[k000]; + fMMM = fMMMsource[kMMM]; + fMMP = fMMPsource[kMM0]; + fMPP = fMPPsource[kM00]; + fMPM = fMPMsource[kM0M]; + fPPM = fPPMsource[k00M]; + fPPP = fPPPsource[k000]; + fPMP = fPMPsource[k0M0]; + fPMM = fPMMsource[k0MM]; drhoPMP = fP00+fM00+f0P0+f0M0+f00P+f00M+fPP0+fMM0+fPM0+fMP0+fP0P+fM0M+fP0M+fM0P+f0PP+f0MM+f0PM+f0MP+f000+fPPP+fMMP+fPMP+fMPP+fPPM+fMMM+fPMM+fMPM; vx1PMP = (((fPPP-fMMM)+(fPMP-fMPM)+(fPPM-fMMP)+(fPMM-fMPP)) + (((fPP0-fMM0)+(fP0P-fM0M))+((fPM0-fMP0)+(fP0M-fM0P))) + (fP00-fM00))/(c1o1 + drhoPMP); - vx2PMP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoPMP); - vx3PMP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoPMP); - - kxyFromfcNEQPMP = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoPMP) - ((vx1PMP*vx2PMP))); - kyzFromfcNEQPMP = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoPMP) - ((vx2PMP*vx3PMP))); - kxzFromfcNEQPMP = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoPMP) - ((vx1PMP*vx3PMP))); - kxxMyyFromfcNEQPMP = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoPMP) - ((vx1PMP*vx1PMP - vx2PMP*vx2PMP))); - kxxMzzFromfcNEQPMP = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoPMP) - ((vx1PMP*vx1PMP - vx3PMP*vx3PMP))); - kyyMzzFromfcNEQPMP = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoPMP) - ((vx2PMP*vx2PMP - vx3PMP*vx3PMP))); - - ////////////////////////////////////////////////////////////////////////// + vx2PMP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoPMP); + vx3PMP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoPMP); + + kxyFromfcNEQPMP = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoPMP) - ((vx1PMP*vx2PMP))); + kyzFromfcNEQPMP = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoPMP) - ((vx2PMP*vx3PMP))); + kxzFromfcNEQPMP = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoPMP) - ((vx1PMP*vx3PMP))); + kxxMyyFromfcNEQPMP = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoPMP) - ((vx1PMP*vx1PMP - vx2PMP*vx2PMP))); + kxxMzzFromfcNEQPMP = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoPMP) - ((vx1PMP*vx1PMP - vx3PMP*vx3PMP))); + kyyMzzFromfcNEQPMP = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoPMP) - ((vx2PMP*vx2PMP - vx3PMP*vx3PMP))); + + ////////////////////////////////////////////////////////////////////////// //SEB// ////////////////////////////////////////////////////////////////////////// //index @@ -4733,45 +4733,45 @@ __global__ void scaleCF_comp_D3Q27F3( real* DC, k0M0 = kMM0base; kMM0 = neighborCX[kMM0base]; //////////////////////////////////////////////////////////////////////////////// - fP00 = fP00source[k000]; - fM00 = fM00source[kM00]; - f0P0 = f0P0source[k000]; - f0M0 = f0M0source[k0M0]; - f00P = f00Psource[k000]; - f00M = f00Msource[k00M]; - fPP0 = fPP0source[k000]; - fMM0 = fMM0source[kMM0]; - fPM0 = fPM0source[k0M0]; - fMP0 = fMP0source[kM00]; - fP0P = fP0Psource[k000]; - fM0M = fM0Msource[kM0M]; - fP0M = fP0Msource[k00M]; - fM0P = fM0Psource[kM00]; - f0PP = f0PPsource[k000]; - f0MM = f0MMsource[k0MM]; - f0PM = f0PMsource[k00M]; - f0MP = f0MPsource[k0M0]; - f000 = f000source[k000]; - fMMM = fMMMsource[kMMM]; - fMMP = fMMPsource[kMM0]; - fMPP = fMPPsource[kM00]; - fMPM = fMPMsource[kM0M]; - fPPM = fPPMsource[k00M]; - fPPP = fPPPsource[k000]; - fPMP = fPMPsource[k0M0]; - fPMM = fPMMsource[k0MM]; + fP00 = fP00source[k000]; + fM00 = fM00source[kM00]; + f0P0 = f0P0source[k000]; + f0M0 = f0M0source[k0M0]; + f00P = f00Psource[k000]; + f00M = f00Msource[k00M]; + fPP0 = fPP0source[k000]; + fMM0 = fMM0source[kMM0]; + fPM0 = fPM0source[k0M0]; + fMP0 = fMP0source[kM00]; + fP0P = fP0Psource[k000]; + fM0M = fM0Msource[kM0M]; + fP0M = fP0Msource[k00M]; + fM0P = fM0Psource[kM00]; + f0PP = f0PPsource[k000]; + f0MM = f0MMsource[k0MM]; + f0PM = f0PMsource[k00M]; + f0MP = f0MPsource[k0M0]; + f000 = f000source[k000]; + fMMM = fMMMsource[kMMM]; + fMMP = fMMPsource[kMM0]; + fMPP = fMPPsource[kM00]; + fMPM = fMPMsource[kM0M]; + fPPM = fPPMsource[k00M]; + fPPP = fPPPsource[k000]; + fPMP = fPMPsource[k0M0]; + fPMM = fPMMsource[k0MM]; drhoPMM = fP00+fM00+f0P0+f0M0+f00P+f00M+fPP0+fMM0+fPM0+fMP0+fP0P+fM0M+fP0M+fM0P+f0PP+f0MM+f0PM+f0MP+f000+fPPP+fMMP+fPMP+fMPP+fPPM+fMMM+fPMM+fMPM; vx1PMM = (((fPPP-fMMM)+(fPMP-fMPM)+(fPPM-fMMP)+(fPMM-fMPP)) + (((fPP0-fMM0)+(fP0P-fM0M))+((fPM0-fMP0)+(fP0M-fM0P))) + (fP00-fM00))/(c1o1 + drhoPMM); - vx2PMM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoPMM); - vx3PMM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoPMM); + vx2PMM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoPMM); + vx3PMM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoPMM); - kxyFromfcNEQPMM = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoPMM) - ((vx1PMM*vx2PMM))); - kyzFromfcNEQPMM = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoPMM) - ((vx2PMM*vx3PMM))); - kxzFromfcNEQPMM = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoPMM) - ((vx1PMM*vx3PMM))); - kxxMyyFromfcNEQPMM = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoPMM) - ((vx1PMM*vx1PMM - vx2PMM*vx2PMM))); - kxxMzzFromfcNEQPMM = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoPMM) - ((vx1PMM*vx1PMM - vx3PMM*vx3PMM))); - kyyMzzFromfcNEQPMM = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoPMM) - ((vx2PMM*vx2PMM - vx3PMM*vx3PMM))); + kxyFromfcNEQPMM = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoPMM) - ((vx1PMM*vx2PMM))); + kyzFromfcNEQPMM = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoPMM) - ((vx2PMM*vx3PMM))); + kxzFromfcNEQPMM = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoPMM) - ((vx1PMM*vx3PMM))); + kxxMyyFromfcNEQPMM = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoPMM) - ((vx1PMM*vx1PMM - vx2PMM*vx2PMM))); + kxxMzzFromfcNEQPMM = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoPMM) - ((vx1PMM*vx1PMM - vx3PMM*vx3PMM))); + kyyMzzFromfcNEQPMM = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoPMM) - ((vx2PMM*vx2PMM - vx3PMM*vx3PMM))); ////////////////////////////////////////////////////////////////////////// //NWB// @@ -4796,45 +4796,45 @@ __global__ void scaleCF_comp_D3Q27F3( real* DC, k0MM = k0MMbase; kMMM = kMMMbase; //////////////////////////////////////////////////////////////////////////////// - fP00 = fP00source[k000]; - fM00 = fM00source[kM00]; - f0P0 = f0P0source[k000]; - f0M0 = f0M0source[k0M0]; - f00P = f00Psource[k000]; - f00M = f00Msource[k00M]; - fPP0 = fPP0source[k000]; - fMM0 = fMM0source[kMM0]; - fPM0 = fPM0source[k0M0]; - fMP0 = fMP0source[kM00]; - fP0P = fP0Psource[k000]; - fM0M = fM0Msource[kM0M]; - fP0M = fP0Msource[k00M]; - fM0P = fM0Psource[kM00]; - f0PP = f0PPsource[k000]; - f0MM = f0MMsource[k0MM]; - f0PM = f0PMsource[k00M]; - f0MP = f0MPsource[k0M0]; - f000 = f000source[k000]; - fMMM = fMMMsource[kMMM]; - fMMP = fMMPsource[kMM0]; - fMPP = fMPPsource[kM00]; - fMPM = fMPMsource[kM0M]; - fPPM = fPPMsource[k00M]; - fPPP = fPPPsource[k000]; - fPMP = fPMPsource[k0M0]; - fPMM = fPMMsource[k0MM]; + fP00 = fP00source[k000]; + fM00 = fM00source[kM00]; + f0P0 = f0P0source[k000]; + f0M0 = f0M0source[k0M0]; + f00P = f00Psource[k000]; + f00M = f00Msource[k00M]; + fPP0 = fPP0source[k000]; + fMM0 = fMM0source[kMM0]; + fPM0 = fPM0source[k0M0]; + fMP0 = fMP0source[kM00]; + fP0P = fP0Psource[k000]; + fM0M = fM0Msource[kM0M]; + fP0M = fP0Msource[k00M]; + fM0P = fM0Psource[kM00]; + f0PP = f0PPsource[k000]; + f0MM = f0MMsource[k0MM]; + f0PM = f0PMsource[k00M]; + f0MP = f0MPsource[k0M0]; + f000 = f000source[k000]; + fMMM = fMMMsource[kMMM]; + fMMP = fMMPsource[kMM0]; + fMPP = fMPPsource[kM00]; + fMPM = fMPMsource[kM0M]; + fPPM = fPPMsource[k00M]; + fPPP = fPPPsource[k000]; + fPMP = fPMPsource[k0M0]; + fPMM = fPMMsource[k0MM]; drhoMPM = fP00+fM00+f0P0+f0M0+f00P+f00M+fPP0+fMM0+fPM0+fMP0+fP0P+fM0M+fP0M+fM0P+f0PP+f0MM+f0PM+f0MP+f000+fPPP+fMMP+fPMP+fMPP+fPPM+fMMM+fPMM+fMPM; vx1MPM = (((fPPP-fMMM)+(fPMP-fMPM)+(fPPM-fMMP)+(fPMM-fMPP)) + (((fPP0-fMM0)+(fP0P-fM0M))+((fPM0-fMP0)+(fP0M-fM0P))) + (fP00-fM00))/(c1o1 + drhoMPM); - vx2MPM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoMPM); - vx3MPM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoMPM); + vx2MPM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoMPM); + vx3MPM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoMPM); - kxyFromfcNEQMPM = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoMPM) - ((vx1MPM*vx2MPM))); - kyzFromfcNEQMPM = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoMPM) - ((vx2MPM*vx3MPM))); - kxzFromfcNEQMPM = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoMPM) - ((vx1MPM*vx3MPM))); - kxxMyyFromfcNEQMPM = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoMPM) - ((vx1MPM*vx1MPM - vx2MPM*vx2MPM))); - kxxMzzFromfcNEQMPM = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoMPM) - ((vx1MPM*vx1MPM - vx3MPM*vx3MPM))); - kyyMzzFromfcNEQMPM = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoMPM) - ((vx2MPM*vx2MPM - vx3MPM*vx3MPM))); + kxyFromfcNEQMPM = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoMPM) - ((vx1MPM*vx2MPM))); + kyzFromfcNEQMPM = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoMPM) - ((vx2MPM*vx3MPM))); + kxzFromfcNEQMPM = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoMPM) - ((vx1MPM*vx3MPM))); + kxxMyyFromfcNEQMPM = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoMPM) - ((vx1MPM*vx1MPM - vx2MPM*vx2MPM))); + kxxMzzFromfcNEQMPM = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoMPM) - ((vx1MPM*vx1MPM - vx3MPM*vx3MPM))); + kyyMzzFromfcNEQMPM = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoMPM) - ((vx2MPM*vx2MPM - vx3MPM*vx3MPM))); ////////////////////////////////////////////////////////////////////////// //NWT// @@ -4849,45 +4849,45 @@ __global__ void scaleCF_comp_D3Q27F3( real* DC, k0MM = neighborCZ[k0MM]; kMMM = neighborCZ[kMMM]; //////////////////////////////////////////////////////////////////////////////// - fP00 = fP00source[k000]; - fM00 = fM00source[kM00]; - f0P0 = f0P0source[k000]; - f0M0 = f0M0source[k0M0]; - f00P = f00Psource[k000]; - f00M = f00Msource[k00M]; - fPP0 = fPP0source[k000]; - fMM0 = fMM0source[kMM0]; - fPM0 = fPM0source[k0M0]; - fMP0 = fMP0source[kM00]; - fP0P = fP0Psource[k000]; - fM0M = fM0Msource[kM0M]; - fP0M = fP0Msource[k00M]; - fM0P = fM0Psource[kM00]; - f0PP = f0PPsource[k000]; - f0MM = f0MMsource[k0MM]; - f0PM = f0PMsource[k00M]; - f0MP = f0MPsource[k0M0]; - f000 = f000source[k000]; - fMMM = fMMMsource[kMMM]; - fMMP = fMMPsource[kMM0]; - fMPP = fMPPsource[kM00]; - fMPM = fMPMsource[kM0M]; - fPPM = fPPMsource[k00M]; - fPPP = fPPPsource[k000]; - fPMP = fPMPsource[k0M0]; - fPMM = fPMMsource[k0MM]; + fP00 = fP00source[k000]; + fM00 = fM00source[kM00]; + f0P0 = f0P0source[k000]; + f0M0 = f0M0source[k0M0]; + f00P = f00Psource[k000]; + f00M = f00Msource[k00M]; + fPP0 = fPP0source[k000]; + fMM0 = fMM0source[kMM0]; + fPM0 = fPM0source[k0M0]; + fMP0 = fMP0source[kM00]; + fP0P = fP0Psource[k000]; + fM0M = fM0Msource[kM0M]; + fP0M = fP0Msource[k00M]; + fM0P = fM0Psource[kM00]; + f0PP = f0PPsource[k000]; + f0MM = f0MMsource[k0MM]; + f0PM = f0PMsource[k00M]; + f0MP = f0MPsource[k0M0]; + f000 = f000source[k000]; + fMMM = fMMMsource[kMMM]; + fMMP = fMMPsource[kMM0]; + fMPP = fMPPsource[kM00]; + fMPM = fMPMsource[kM0M]; + fPPM = fPPMsource[k00M]; + fPPP = fPPPsource[k000]; + fPMP = fPMPsource[k0M0]; + fPMM = fPMMsource[k0MM]; drhoMPP = fP00+fM00+f0P0+f0M0+f00P+f00M+fPP0+fMM0+fPM0+fMP0+fP0P+fM0M+fP0M+fM0P+f0PP+f0MM+f0PM+f0MP+f000+fPPP+fMMP+fPMP+fMPP+fPPM+fMMM+fPMM+fMPM; vx1MPP = (((fPPP-fMMM)+(fPMP-fMPM)+(fPPM-fMMP)+(fPMM-fMPP)) + (((fPP0-fMM0)+(fP0P-fM0M))+((fPM0-fMP0)+(fP0M-fM0P))) + (fP00-fM00))/(c1o1 + drhoMPP); - vx2MPP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoMPP); - vx3MPP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoMPP); + vx2MPP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoMPP); + vx3MPP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoMPP); - kxyFromfcNEQMPP = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoMPP) - ((vx1MPP*vx2MPP))); - kyzFromfcNEQMPP = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoMPP) - ((vx2MPP*vx3MPP))); - kxzFromfcNEQMPP = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoMPP) - ((vx1MPP*vx3MPP))); - kxxMyyFromfcNEQMPP = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoMPP) - ((vx1MPP*vx1MPP - vx2MPP*vx2MPP))); - kxxMzzFromfcNEQMPP = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoMPP) - ((vx1MPP*vx1MPP - vx3MPP*vx3MPP))); - kyyMzzFromfcNEQMPP = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoMPP) - ((vx2MPP*vx2MPP - vx3MPP*vx3MPP))); + kxyFromfcNEQMPP = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoMPP) - ((vx1MPP*vx2MPP))); + kyzFromfcNEQMPP = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoMPP) - ((vx2MPP*vx3MPP))); + kxzFromfcNEQMPP = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoMPP) - ((vx1MPP*vx3MPP))); + kxxMyyFromfcNEQMPP = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoMPP) - ((vx1MPP*vx1MPP - vx2MPP*vx2MPP))); + kxxMzzFromfcNEQMPP = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoMPP) - ((vx1MPP*vx1MPP - vx3MPP*vx3MPP))); + kyyMzzFromfcNEQMPP = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoMPP) - ((vx2MPP*vx2MPP - vx3MPP*vx3MPP))); ////////////////////////////////////////////////////////////////////////// //NET// @@ -4902,45 +4902,45 @@ __global__ void scaleCF_comp_D3Q27F3( real* DC, k0MM = kMMM; kMMM = neighborCX[kMMM]; //////////////////////////////////////////////////////////////////////////////// - fP00 = fP00source[k000]; - fM00 = fM00source[kM00]; - f0P0 = f0P0source[k000]; - f0M0 = f0M0source[k0M0]; - f00P = f00Psource[k000]; - f00M = f00Msource[k00M]; - fPP0 = fPP0source[k000]; - fMM0 = fMM0source[kMM0]; - fPM0 = fPM0source[k0M0]; - fMP0 = fMP0source[kM00]; - fP0P = fP0Psource[k000]; - fM0M = fM0Msource[kM0M]; - fP0M = fP0Msource[k00M]; - fM0P = fM0Psource[kM00]; - f0PP = f0PPsource[k000]; - f0MM = f0MMsource[k0MM]; - f0PM = f0PMsource[k00M]; - f0MP = f0MPsource[k0M0]; - f000 = f000source[k000]; - fMMM = fMMMsource[kMMM]; - fMMP = fMMPsource[kMM0]; - fMPP = fMPPsource[kM00]; - fMPM = fMPMsource[kM0M]; - fPPM = fPPMsource[k00M]; - fPPP = fPPPsource[k000]; - fPMP = fPMPsource[k0M0]; - fPMM = fPMMsource[k0MM]; + fP00 = fP00source[k000]; + fM00 = fM00source[kM00]; + f0P0 = f0P0source[k000]; + f0M0 = f0M0source[k0M0]; + f00P = f00Psource[k000]; + f00M = f00Msource[k00M]; + fPP0 = fPP0source[k000]; + fMM0 = fMM0source[kMM0]; + fPM0 = fPM0source[k0M0]; + fMP0 = fMP0source[kM00]; + fP0P = fP0Psource[k000]; + fM0M = fM0Msource[kM0M]; + fP0M = fP0Msource[k00M]; + fM0P = fM0Psource[kM00]; + f0PP = f0PPsource[k000]; + f0MM = f0MMsource[k0MM]; + f0PM = f0PMsource[k00M]; + f0MP = f0MPsource[k0M0]; + f000 = f000source[k000]; + fMMM = fMMMsource[kMMM]; + fMMP = fMMPsource[kMM0]; + fMPP = fMPPsource[kM00]; + fMPM = fMPMsource[kM0M]; + fPPM = fPPMsource[k00M]; + fPPP = fPPPsource[k000]; + fPMP = fPMPsource[k0M0]; + fPMM = fPMMsource[k0MM]; drhoPPP = fP00+fM00+f0P0+f0M0+f00P+f00M+fPP0+fMM0+fPM0+fMP0+fP0P+fM0M+fP0M+fM0P+f0PP+f0MM+f0PM+f0MP+f000+fPPP+fMMP+fPMP+fMPP+fPPM+fMMM+fPMM+fMPM; vx1PPP = (((fPPP-fMMM)+(fPMP-fMPM)+(fPPM-fMMP)+(fPMM-fMPP)) + (((fPP0-fMM0)+(fP0P-fM0M))+((fPM0-fMP0)+(fP0M-fM0P))) + (fP00-fM00))/(c1o1 + drhoPPP); - vx2PPP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoPPP); - vx3PPP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoPPP); + vx2PPP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoPPP); + vx3PPP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoPPP); - kxyFromfcNEQPPP = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoPPP) - ((vx1PPP*vx2PPP))); - kyzFromfcNEQPPP = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoPPP) - ((vx2PPP*vx3PPP))); - kxzFromfcNEQPPP = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoPPP) - ((vx1PPP*vx3PPP))); - kxxMyyFromfcNEQPPP = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoPPP) - ((vx1PPP*vx1PPP - vx2PPP*vx2PPP))); - kxxMzzFromfcNEQPPP = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoPPP) - ((vx1PPP*vx1PPP - vx3PPP*vx3PPP))); - kyyMzzFromfcNEQPPP = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoPPP) - ((vx2PPP*vx2PPP - vx3PPP*vx3PPP))); + kxyFromfcNEQPPP = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoPPP) - ((vx1PPP*vx2PPP))); + kyzFromfcNEQPPP = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoPPP) - ((vx2PPP*vx3PPP))); + kxzFromfcNEQPPP = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoPPP) - ((vx1PPP*vx3PPP))); + kxxMyyFromfcNEQPPP = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoPPP) - ((vx1PPP*vx1PPP - vx2PPP*vx2PPP))); + kxxMzzFromfcNEQPPP = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoPPP) - ((vx1PPP*vx1PPP - vx3PPP*vx3PPP))); + kyyMzzFromfcNEQPPP = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoPPP) - ((vx2PPP*vx2PPP - vx3PPP*vx3PPP))); ////////////////////////////////////////////////////////////////////////// //NEB// @@ -4955,142 +4955,142 @@ __global__ void scaleCF_comp_D3Q27F3( real* DC, k0M0 = kMM0base; kMM0 = neighborCX[kMM0base]; //////////////////////////////////////////////////////////////////////////////// - fP00 = fP00source[k000]; - fM00 = fM00source[kM00]; - f0P0 = f0P0source[k000]; - f0M0 = f0M0source[k0M0]; - f00P = f00Psource[k000]; - f00M = f00Msource[k00M]; - fPP0 = fPP0source[k000]; - fMM0 = fMM0source[kMM0]; - fPM0 = fPM0source[k0M0]; - fMP0 = fMP0source[kM00]; - fP0P = fP0Psource[k000]; - fM0M = fM0Msource[kM0M]; - fP0M = fP0Msource[k00M]; - fM0P = fM0Psource[kM00]; - f0PP = f0PPsource[k000]; - f0MM = f0MMsource[k0MM]; - f0PM = f0PMsource[k00M]; - f0MP = f0MPsource[k0M0]; - f000 = f000source[k000]; - fMMM = fMMMsource[kMMM]; - fMMP = fMMPsource[kMM0]; - fMPP = fMPPsource[kM00]; - fMPM = fMPMsource[kM0M]; - fPPM = fPPMsource[k00M]; - fPPP = fPPPsource[k000]; - fPMP = fPMPsource[k0M0]; - fPMM = fPMMsource[k0MM]; + fP00 = fP00source[k000]; + fM00 = fM00source[kM00]; + f0P0 = f0P0source[k000]; + f0M0 = f0M0source[k0M0]; + f00P = f00Psource[k000]; + f00M = f00Msource[k00M]; + fPP0 = fPP0source[k000]; + fMM0 = fMM0source[kMM0]; + fPM0 = fPM0source[k0M0]; + fMP0 = fMP0source[kM00]; + fP0P = fP0Psource[k000]; + fM0M = fM0Msource[kM0M]; + fP0M = fP0Msource[k00M]; + fM0P = fM0Psource[kM00]; + f0PP = f0PPsource[k000]; + f0MM = f0MMsource[k0MM]; + f0PM = f0PMsource[k00M]; + f0MP = f0MPsource[k0M0]; + f000 = f000source[k000]; + fMMM = fMMMsource[kMMM]; + fMMP = fMMPsource[kMM0]; + fMPP = fMPPsource[kM00]; + fMPM = fMPMsource[kM0M]; + fPPM = fPPMsource[k00M]; + fPPP = fPPPsource[k000]; + fPMP = fPMPsource[k0M0]; + fPMM = fPMMsource[k0MM]; drhoPPM = fP00+fM00+f0P0+f0M0+f00P+f00M+fPP0+fMM0+fPM0+fMP0+fP0P+fM0M+fP0M+fM0P+f0PP+f0MM+f0PM+f0MP+f000+fPPP+fMMP+fPMP+fMPP+fPPM+fMMM+fPMM+fMPM; vx1PPM = (((fPPP-fMMM)+(fPMP-fMPM)+(fPPM-fMMP)+(fPMM-fMPP)) + (((fPP0-fMM0)+(fP0P-fM0M))+((fPM0-fMP0)+(fP0M-fM0P))) + (fP00-fM00))/(c1o1 + drhoPPM); - vx2PPM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoPPM); - vx3PPM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoPPM); + vx2PPM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoPPM); + vx3PPM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoPPM); - kxyFromfcNEQPPM = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoPPM) - ((vx1PPM*vx2PPM))); - kyzFromfcNEQPPM = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoPPM) - ((vx2PPM*vx3PPM))); - kxzFromfcNEQPPM = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoPPM) - ((vx1PPM*vx3PPM))); - kxxMyyFromfcNEQPPM = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoPPM) - ((vx1PPM*vx1PPM - vx2PPM*vx2PPM))); - kxxMzzFromfcNEQPPM = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoPPM) - ((vx1PPM*vx1PPM - vx3PPM*vx3PPM))); - kyyMzzFromfcNEQPPM = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoPPM) - ((vx2PPM*vx2PPM - vx3PPM*vx3PPM))); + kxyFromfcNEQPPM = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoPPM) - ((vx1PPM*vx2PPM))); + kyzFromfcNEQPPM = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoPPM) - ((vx2PPM*vx3PPM))); + kxzFromfcNEQPPM = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoPPM) - ((vx1PPM*vx3PPM))); + kxxMyyFromfcNEQPPM = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoPPM) - ((vx1PPM*vx1PPM - vx2PPM*vx2PPM))); + kxxMzzFromfcNEQPPM = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoPPM) - ((vx1PPM*vx1PPM - vx3PPM*vx3PPM))); + kyyMzzFromfcNEQPPM = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoPPM) - ((vx2PPM*vx2PPM - vx3PPM*vx3PPM))); ////////////////////////////////////////////////////////////////////////// //3 ////////////////////////////////////////////////////////////////////////// - a0 = c1o8*(((vx1PPM + vx1PPP) + (vx1MPM + vx1MPP)) + ((vx1PMM + vx1PMP) + (vx1MMM + vx1MMP))); - ax = c1o4*(((vx1PPM - vx1MMP) + (vx1PPP - vx1MMM)) + ((vx1PMP - vx1MPM) + (vx1PMM - vx1MPP))); - ay = c1o4*(((vx1PPM - vx1MMP) + (vx1PPP - vx1MMM)) + ((vx1MPM - vx1PMP) + (vx1MPP - vx1PMM))); - az = c1o4*(((vx1MMP - vx1PPM) + (vx1PPP - vx1MMM)) + ((vx1PMP - vx1MPM) + (vx1MPP - vx1PMM))); - axy = c1o2*(((vx1PPM - vx1PMP) + (vx1MMM - vx1MPP)) + ((vx1MMP - vx1MPM) + (vx1PPP - vx1PMM))); - axz = c1o2*(((vx1PMP - vx1PPM) + (vx1MMM - vx1MPP)) + ((vx1MPM - vx1MMP) + (vx1PPP - vx1PMM))); - ayz = c1o2*(((vx1PPP - vx1MPM) + (vx1PMM - vx1MMP)) + ((vx1MPP - vx1PPM) + (vx1MMM - vx1PMP))); - axyz= ((vx1MMP - vx1PPM) + (vx1PPP - vx1MMM)) + ((vx1MPM - vx1PMP) + (vx1PMM - vx1MPP)) ; - b0 = c1o8*(((vx2PPM + vx2PPP) + (vx2MPM + vx2MPP)) + ((vx2PMM + vx2PMP) + (vx2MMM + vx2MMP))); - bx = c1o4*(((vx2PPM - vx2MMP) + (vx2PPP - vx2MMM)) + ((vx2PMP - vx2MPM) + (vx2PMM - vx2MPP))); - by = c1o4*(((vx2PPM - vx2MMP) + (vx2PPP - vx2MMM)) + ((vx2MPM - vx2PMP) + (vx2MPP - vx2PMM))); - bz = c1o4*(((vx2MMP - vx2PPM) + (vx2PPP - vx2MMM)) + ((vx2PMP - vx2MPM) + (vx2MPP - vx2PMM))); - bxy = c1o2*(((vx2PPM - vx2MPP) + (vx2MMM - vx2PMP)) + ((vx2MMP - vx2PMM) + (vx2PPP - vx2MPM))); - bxz = c1o2*(((vx2MMM - vx2PPM) + (vx2PMP - vx2MPP)) + ((vx2MPM - vx2PMM) + (vx2PPP - vx2MMP))); - byz = c1o2*(((vx2MPP - vx2PPM) + (vx2MMM - vx2PMP)) + ((vx2PMM - vx2MMP) + (vx2PPP - vx2MPM))); - bxyz= ((vx2MMP - vx2PPM) + (vx2PPP - vx2MMM)) + ((vx2MPM - vx2PMP) + (vx2PMM - vx2MPP)) ; - c0 = c1o8*(((vx3PPM + vx3PPP) + (vx3MPM + vx3MPP)) + ((vx3PMM + vx3PMP) + (vx3MMM + vx3MMP))); - cx = c1o4*(((vx3PPM - vx3MMP) + (vx3PPP - vx3MMM)) + ((vx3PMP - vx3MPM) + (vx3PMM - vx3MPP))); - cy = c1o4*(((vx3PPM - vx3MMP) + (vx3PPP - vx3MMM)) + ((vx3MPM - vx3PMP) + (vx3MPP - vx3PMM))); - cz = c1o4*(((vx3MMP - vx3PPM) + (vx3PPP - vx3MMM)) + ((vx3PMP - vx3MPM) + (vx3MPP - vx3PMM))); - cxy = c1o2*(((vx3PPM - vx3PMP) + (vx3MMM - vx3MPP)) + ((vx3MMP - vx3MPM) + (vx3PPP - vx3PMM))); - cxz = c1o2*(((vx3MMM - vx3PPM) + (vx3PMP - vx3MPP)) + ((vx3MPM - vx3PMM) + (vx3PPP - vx3MMP))); - cyz = c1o2*(((vx3MMM - vx3PPM) + (vx3MPP - vx3PMP)) + ((vx3PMM - vx3MPM) + (vx3PPP - vx3MMP))); - cxyz= ((vx3MMP - vx3PPM) + (vx3PPP - vx3MMM)) + ((vx3MPM - vx3PMP) + (vx3PMM - vx3MPP)) ; - - //bxx = zero; - //cxx = zero; - //ayy = zero; - //cyy = zero; - //azz = zero; - //bzz = zero; - //axx = zero; - //byy = zero; - //czz = zero; - - bxx = c1o8*(((kxyFromfcNEQPPP - kxyFromfcNEQMMM) + (kxyFromfcNEQPMM - kxyFromfcNEQMPP)) + ((kxyFromfcNEQPMP - kxyFromfcNEQMPM) + (kxyFromfcNEQPPM - kxyFromfcNEQMMP))) - c1o2*axy; - cxx = c1o8*(((kxzFromfcNEQPPP - kxzFromfcNEQMMM) + (kxzFromfcNEQPMM - kxzFromfcNEQMPP)) + ((kxzFromfcNEQPMP - kxzFromfcNEQMPM) + (kxzFromfcNEQPPM - kxzFromfcNEQMMP))) - c1o2*axz; - - ayy = c1o8*(((kxyFromfcNEQPPP - kxyFromfcNEQMMM) + (kxyFromfcNEQPPM - kxyFromfcNEQMMP)) - ((kxyFromfcNEQPMM - kxyFromfcNEQMPP) + (kxyFromfcNEQPMP - kxyFromfcNEQMPM))) - c1o2*bxy; - cyy = c1o8*(((kyzFromfcNEQPPP - kyzFromfcNEQMMM) + (kyzFromfcNEQPPM - kyzFromfcNEQMMP)) - ((kyzFromfcNEQPMM - kyzFromfcNEQMPP) + (kyzFromfcNEQPMP - kyzFromfcNEQMPM))) - c1o2*byz; - - azz = c1o8*(((kxzFromfcNEQPPP - kxzFromfcNEQMMM) - (kxzFromfcNEQPMM - kxzFromfcNEQMPP)) + ((kxzFromfcNEQPMP - kxzFromfcNEQMPM) - (kxzFromfcNEQPPM - kxzFromfcNEQMMP))) - c1o2*cxz; - bzz = c1o8*(((kyzFromfcNEQPPP - kyzFromfcNEQMMM) - (kyzFromfcNEQPMM - kyzFromfcNEQMPP)) + ((kyzFromfcNEQPMP - kyzFromfcNEQMPM) - (kyzFromfcNEQPPM - kyzFromfcNEQMMP))) - c1o2*cyz; - - axx = (c1o16*(((kxxMyyFromfcNEQPPP - kxxMyyFromfcNEQMMM) + (kxxMyyFromfcNEQPMM - kxxMyyFromfcNEQMPP)) + ((kxxMyyFromfcNEQPMP - kxxMyyFromfcNEQMPM) + (kxxMyyFromfcNEQPPM - kxxMyyFromfcNEQMMP))) - c1o4*bxy) - + (c1o16*(((kxxMzzFromfcNEQPPP - kxxMzzFromfcNEQMMM) + (kxxMzzFromfcNEQPMM - kxxMzzFromfcNEQMPP)) + ((kxxMzzFromfcNEQPMP - kxxMzzFromfcNEQMPM) + (kxxMzzFromfcNEQPPM - kxxMzzFromfcNEQMMP))) - c1o4*cxz); - - byy = (-c1o16*(((kxxMyyFromfcNEQPPP - kxxMyyFromfcNEQMMM) - (kxxMyyFromfcNEQPMM - kxxMyyFromfcNEQMPP)) + ((kxxMyyFromfcNEQPPM - kxxMyyFromfcNEQMMP) - (kxxMyyFromfcNEQPMP - kxxMyyFromfcNEQMPM))) - c1o4*axy) - + (c1o16*(((kyyMzzFromfcNEQPPP - kyyMzzFromfcNEQMMM) - (kyyMzzFromfcNEQPMM - kyyMzzFromfcNEQMPP)) + ((kyyMzzFromfcNEQPPM - kyyMzzFromfcNEQMMP) - (kyyMzzFromfcNEQPMP - kyyMzzFromfcNEQMPM))) - c1o4*cyz); - - czz = (-c1o16*(((kxxMzzFromfcNEQPPP - kxxMzzFromfcNEQMMM) - (kxxMzzFromfcNEQPMM - kxxMzzFromfcNEQMPP)) - ((kxxMzzFromfcNEQPPM - kxxMzzFromfcNEQMMP) - (kxxMzzFromfcNEQPMP - kxxMzzFromfcNEQMPM))) - c1o4*axz) - + (c1o16*(((kyyMzzFromfcNEQPPP - kyyMzzFromfcNEQMMM) - (kyyMzzFromfcNEQPMM - kyyMzzFromfcNEQMPP)) - ((kyyMzzFromfcNEQPPM - kyyMzzFromfcNEQMMP) - (kyyMzzFromfcNEQPMP - kyyMzzFromfcNEQMPM))) - c1o4*byz); - - a0 -= c1o4*(axx + ayy + azz); - b0 -= c1o4*(bxx + byy + bzz); - c0 -= c1o4*(cxx + cyy + czz); + a0 = c1o8*(((vx1PPM + vx1PPP) + (vx1MPM + vx1MPP)) + ((vx1PMM + vx1PMP) + (vx1MMM + vx1MMP))); + ax = c1o4*(((vx1PPM - vx1MMP) + (vx1PPP - vx1MMM)) + ((vx1PMP - vx1MPM) + (vx1PMM - vx1MPP))); + ay = c1o4*(((vx1PPM - vx1MMP) + (vx1PPP - vx1MMM)) + ((vx1MPM - vx1PMP) + (vx1MPP - vx1PMM))); + az = c1o4*(((vx1MMP - vx1PPM) + (vx1PPP - vx1MMM)) + ((vx1PMP - vx1MPM) + (vx1MPP - vx1PMM))); + axy = c1o2*(((vx1PPM - vx1PMP) + (vx1MMM - vx1MPP)) + ((vx1MMP - vx1MPM) + (vx1PPP - vx1PMM))); + axz = c1o2*(((vx1PMP - vx1PPM) + (vx1MMM - vx1MPP)) + ((vx1MPM - vx1MMP) + (vx1PPP - vx1PMM))); + ayz = c1o2*(((vx1PPP - vx1MPM) + (vx1PMM - vx1MMP)) + ((vx1MPP - vx1PPM) + (vx1MMM - vx1PMP))); + axyz= ((vx1MMP - vx1PPM) + (vx1PPP - vx1MMM)) + ((vx1MPM - vx1PMP) + (vx1PMM - vx1MPP)) ; + b0 = c1o8*(((vx2PPM + vx2PPP) + (vx2MPM + vx2MPP)) + ((vx2PMM + vx2PMP) + (vx2MMM + vx2MMP))); + bx = c1o4*(((vx2PPM - vx2MMP) + (vx2PPP - vx2MMM)) + ((vx2PMP - vx2MPM) + (vx2PMM - vx2MPP))); + by = c1o4*(((vx2PPM - vx2MMP) + (vx2PPP - vx2MMM)) + ((vx2MPM - vx2PMP) + (vx2MPP - vx2PMM))); + bz = c1o4*(((vx2MMP - vx2PPM) + (vx2PPP - vx2MMM)) + ((vx2PMP - vx2MPM) + (vx2MPP - vx2PMM))); + bxy = c1o2*(((vx2PPM - vx2MPP) + (vx2MMM - vx2PMP)) + ((vx2MMP - vx2PMM) + (vx2PPP - vx2MPM))); + bxz = c1o2*(((vx2MMM - vx2PPM) + (vx2PMP - vx2MPP)) + ((vx2MPM - vx2PMM) + (vx2PPP - vx2MMP))); + byz = c1o2*(((vx2MPP - vx2PPM) + (vx2MMM - vx2PMP)) + ((vx2PMM - vx2MMP) + (vx2PPP - vx2MPM))); + bxyz= ((vx2MMP - vx2PPM) + (vx2PPP - vx2MMM)) + ((vx2MPM - vx2PMP) + (vx2PMM - vx2MPP)) ; + c0 = c1o8*(((vx3PPM + vx3PPP) + (vx3MPM + vx3MPP)) + ((vx3PMM + vx3PMP) + (vx3MMM + vx3MMP))); + cx = c1o4*(((vx3PPM - vx3MMP) + (vx3PPP - vx3MMM)) + ((vx3PMP - vx3MPM) + (vx3PMM - vx3MPP))); + cy = c1o4*(((vx3PPM - vx3MMP) + (vx3PPP - vx3MMM)) + ((vx3MPM - vx3PMP) + (vx3MPP - vx3PMM))); + cz = c1o4*(((vx3MMP - vx3PPM) + (vx3PPP - vx3MMM)) + ((vx3PMP - vx3MPM) + (vx3MPP - vx3PMM))); + cxy = c1o2*(((vx3PPM - vx3PMP) + (vx3MMM - vx3MPP)) + ((vx3MMP - vx3MPM) + (vx3PPP - vx3PMM))); + cxz = c1o2*(((vx3MMM - vx3PPM) + (vx3PMP - vx3MPP)) + ((vx3MPM - vx3PMM) + (vx3PPP - vx3MMP))); + cyz = c1o2*(((vx3MMM - vx3PPM) + (vx3MPP - vx3PMP)) + ((vx3PMM - vx3MPM) + (vx3PPP - vx3MMP))); + cxyz= ((vx3MMP - vx3PPM) + (vx3PPP - vx3MMM)) + ((vx3MPM - vx3PMP) + (vx3PMM - vx3MPP)) ; + + //bxx = zero; + //cxx = zero; + //ayy = zero; + //cyy = zero; + //azz = zero; + //bzz = zero; + //axx = zero; + //byy = zero; + //czz = zero; + + bxx = c1o8*(((kxyFromfcNEQPPP - kxyFromfcNEQMMM) + (kxyFromfcNEQPMM - kxyFromfcNEQMPP)) + ((kxyFromfcNEQPMP - kxyFromfcNEQMPM) + (kxyFromfcNEQPPM - kxyFromfcNEQMMP))) - c1o2*axy; + cxx = c1o8*(((kxzFromfcNEQPPP - kxzFromfcNEQMMM) + (kxzFromfcNEQPMM - kxzFromfcNEQMPP)) + ((kxzFromfcNEQPMP - kxzFromfcNEQMPM) + (kxzFromfcNEQPPM - kxzFromfcNEQMMP))) - c1o2*axz; + + ayy = c1o8*(((kxyFromfcNEQPPP - kxyFromfcNEQMMM) + (kxyFromfcNEQPPM - kxyFromfcNEQMMP)) - ((kxyFromfcNEQPMM - kxyFromfcNEQMPP) + (kxyFromfcNEQPMP - kxyFromfcNEQMPM))) - c1o2*bxy; + cyy = c1o8*(((kyzFromfcNEQPPP - kyzFromfcNEQMMM) + (kyzFromfcNEQPPM - kyzFromfcNEQMMP)) - ((kyzFromfcNEQPMM - kyzFromfcNEQMPP) + (kyzFromfcNEQPMP - kyzFromfcNEQMPM))) - c1o2*byz; + + azz = c1o8*(((kxzFromfcNEQPPP - kxzFromfcNEQMMM) - (kxzFromfcNEQPMM - kxzFromfcNEQMPP)) + ((kxzFromfcNEQPMP - kxzFromfcNEQMPM) - (kxzFromfcNEQPPM - kxzFromfcNEQMMP))) - c1o2*cxz; + bzz = c1o8*(((kyzFromfcNEQPPP - kyzFromfcNEQMMM) - (kyzFromfcNEQPMM - kyzFromfcNEQMPP)) + ((kyzFromfcNEQPMP - kyzFromfcNEQMPM) - (kyzFromfcNEQPPM - kyzFromfcNEQMMP))) - c1o2*cyz; + + axx = (c1o16*(((kxxMyyFromfcNEQPPP - kxxMyyFromfcNEQMMM) + (kxxMyyFromfcNEQPMM - kxxMyyFromfcNEQMPP)) + ((kxxMyyFromfcNEQPMP - kxxMyyFromfcNEQMPM) + (kxxMyyFromfcNEQPPM - kxxMyyFromfcNEQMMP))) - c1o4*bxy) + + (c1o16*(((kxxMzzFromfcNEQPPP - kxxMzzFromfcNEQMMM) + (kxxMzzFromfcNEQPMM - kxxMzzFromfcNEQMPP)) + ((kxxMzzFromfcNEQPMP - kxxMzzFromfcNEQMPM) + (kxxMzzFromfcNEQPPM - kxxMzzFromfcNEQMMP))) - c1o4*cxz); + + byy = (-c1o16*(((kxxMyyFromfcNEQPPP - kxxMyyFromfcNEQMMM) - (kxxMyyFromfcNEQPMM - kxxMyyFromfcNEQMPP)) + ((kxxMyyFromfcNEQPPM - kxxMyyFromfcNEQMMP) - (kxxMyyFromfcNEQPMP - kxxMyyFromfcNEQMPM))) - c1o4*axy) + + (c1o16*(((kyyMzzFromfcNEQPPP - kyyMzzFromfcNEQMMM) - (kyyMzzFromfcNEQPMM - kyyMzzFromfcNEQMPP)) + ((kyyMzzFromfcNEQPPM - kyyMzzFromfcNEQMMP) - (kyyMzzFromfcNEQPMP - kyyMzzFromfcNEQMPM))) - c1o4*cyz); + + czz = (-c1o16*(((kxxMzzFromfcNEQPPP - kxxMzzFromfcNEQMMM) - (kxxMzzFromfcNEQPMM - kxxMzzFromfcNEQMPP)) - ((kxxMzzFromfcNEQPPM - kxxMzzFromfcNEQMMP) - (kxxMzzFromfcNEQPMP - kxxMzzFromfcNEQMPM))) - c1o4*axz) + + (c1o16*(((kyyMzzFromfcNEQPPP - kyyMzzFromfcNEQMMM) - (kyyMzzFromfcNEQPMM - kyyMzzFromfcNEQMPP)) - ((kyyMzzFromfcNEQPPM - kyyMzzFromfcNEQMMP) - (kyyMzzFromfcNEQPMP - kyyMzzFromfcNEQMPM))) - c1o4*byz); + + a0 -= c1o4*(axx + ayy + azz); + b0 -= c1o4*(bxx + byy + bzz); + c0 -= c1o4*(cxx + cyy + czz); + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + real kxyAverage = c0; + real kyzAverage = c0; + real kxzAverage = c0; + real kxxMyyAverage = c0; + real kxxMzzAverage = c0; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //Press + //d0 = ( pressPPM + pressPPP + pressMPM + pressMPP + pressPMM + pressPMP + pressMMM + pressMMP) * c1o8; + //dx = ( pressPPM + pressPPP - pressMPM - pressMPP + pressPMM + pressPMP - pressMMM - pressMMP) * c1o4; + //dy = ( pressPPM + pressPPP + pressMPM + pressMPP - pressPMM - pressPMP - pressMMM - pressMMP) * c1o4; + //dz = (-pressPPM + pressPPP - pressMPM + pressMPP - pressPMM + pressPMP - pressMMM + pressMMP) * c1o4; + //dxy = ( pressPPM + pressPPP - pressMPM - pressMPP - pressPMM - pressPMP + pressMMM + pressMMP) * c1o2; + //dxz = (-pressPPM + pressPPP + pressMPM - pressMPP - pressPMM + pressPMP + pressMMM - pressMMP) * c1o2; + //dyz = (-pressPPM + pressPPP - pressMPM + pressMPP + pressPMM - pressPMP + pressMMM - pressMMP) * c1o2; + //dxyz = -pressPPM + pressPPP + pressMPM - pressMPP + pressPMM - pressPMP - pressMMM + pressMMP; ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real kxyAverage = c0; - real kyzAverage = c0; - real kxzAverage = c0; - real kxxMyyAverage = c0; - real kxxMzzAverage = c0; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //Press - //d0 = ( pressPPM + pressPPP + pressMPM + pressMPP + pressPMM + pressPMP + pressMMM + pressMMP) * c1o8; - //dx = ( pressPPM + pressPPP - pressMPM - pressMPP + pressPMM + pressPMP - pressMMM - pressMMP) * c1o4; - //dy = ( pressPPM + pressPPP + pressMPM + pressMPP - pressPMM - pressPMP - pressMMM - pressMMP) * c1o4; - //dz = (-pressPPM + pressPPP - pressMPM + pressMPP - pressPMM + pressPMP - pressMMM + pressMMP) * c1o4; - //dxy = ( pressPPM + pressPPP - pressMPM - pressMPP - pressPMM - pressPMP + pressMMM + pressMMP) * c1o2; - //dxz = (-pressPPM + pressPPP + pressMPM - pressMPP - pressPMM + pressPMP + pressMMM - pressMMP) * c1o2; - //dyz = (-pressPPM + pressPPP - pressMPM + pressMPP + pressPMM - pressPMP + pressMMM - pressMMP) * c1o2; - //dxyz = -pressPPM + pressPPP + pressMPM - pressMPP + pressPMM - pressPMP - pressMMM + pressMMP; - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho - d0 = ( ((drhoPPM + drhoMMP) + (drhoMPM + drhoPMP)) + ((drhoPMM + drhoMPP) + (drhoMMM + drhoPPP))) * c1o8; - dx = ( ((drhoPPM - drhoMMP) + (drhoPMM - drhoMPP)) + ((drhoPMP - drhoMPM) + (drhoPPP - drhoMMM))) * c1o4; - dy = ( ((drhoPPM - drhoMMP) + (drhoMPP - drhoPMM)) + ((drhoMPM - drhoPMP) + (drhoPPP - drhoMMM))) * c1o4; - dz = ( ((drhoMMP - drhoPPM) + (drhoPPP - drhoMMM)) + ((drhoPMP - drhoMPM) + (drhoMPP - drhoPMM))) * c1o4; - dxy = ( ((drhoPPM - drhoPMP) + (drhoPPP - drhoPMM)) + ((drhoMMP - drhoMPM) + (drhoMMM - drhoMPP))) * c1o2; - dxz = ( ((drhoMMM - drhoPPM) + (drhoPPP - drhoMMP)) + ((drhoMPM - drhoPMM) + (drhoPMP - drhoMPP))) * c1o2; - dyz = ( ((drhoMPP - drhoPPM) + (drhoPPP - drhoMPM)) + ((drhoPMM - drhoMMP) + (drhoMMM - drhoPMP))) * c1o2; + //drho + d0 = ( ((drhoPPM + drhoMMP) + (drhoMPM + drhoPMP)) + ((drhoPMM + drhoMPP) + (drhoMMM + drhoPPP))) * c1o8; + dx = ( ((drhoPPM - drhoMMP) + (drhoPMM - drhoMPP)) + ((drhoPMP - drhoMPM) + (drhoPPP - drhoMMM))) * c1o4; + dy = ( ((drhoPPM - drhoMMP) + (drhoMPP - drhoPMM)) + ((drhoMPM - drhoPMP) + (drhoPPP - drhoMMM))) * c1o4; + dz = ( ((drhoMMP - drhoPPM) + (drhoPPP - drhoMMM)) + ((drhoPMP - drhoMPM) + (drhoMPP - drhoPMM))) * c1o4; + dxy = ( ((drhoPPM - drhoPMP) + (drhoPPP - drhoPMM)) + ((drhoMMP - drhoMPM) + (drhoMMM - drhoMPP))) * c1o2; + dxz = ( ((drhoMMM - drhoPPM) + (drhoPPP - drhoMMP)) + ((drhoMPM - drhoPMM) + (drhoPMP - drhoMPP))) * c1o2; + dyz = ( ((drhoMPP - drhoPPM) + (drhoPPP - drhoMPM)) + ((drhoPMM - drhoMMP) + (drhoMMM - drhoPMP))) * c1o2; dxyz = -drhoPPM + drhoPPP + drhoMPM - drhoMPP + drhoPMM - drhoPMP - drhoMMM + drhoMMP; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // // Bernd das Brot // - // X------X - // | | x---x - // | ---+-+-> | ----> off-vector - // | | x---x - // X------X - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // X------X + // | | x---x + // | ---+-+-> | ----> off-vector + // | | x---x + // X------X + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// a0 = a0 + xoff * ax + yoff * ay + zoff * az + xoff_sq * axx + yoff_sq * ayy + zoff_sq * azz + xoff*yoff*axy + xoff*zoff*axz + yoff*zoff*ayz; ax = ax + c2o1 * xoff * axx + yoff * axy + zoff * axz; ay = ay + c2o1 * yoff * ayy + xoff * axy + zoff * ayz; @@ -5103,3477 +5103,3477 @@ __global__ void scaleCF_comp_D3Q27F3( real* DC, cx = cx + c2o1 * xoff * cxx + yoff * cxy + zoff * cxz; cy = cy + c2o1 * yoff * cyy + xoff * cxy + zoff * cyz; cz = cz + c2o1 * zoff * czz + xoff * cxz + yoff * cyz; - d0 = d0 + xoff * dx + yoff * dy + zoff * dz + xoff*yoff*dxy + xoff*zoff*dxz + yoff*zoff*dyz; - dx = dx + yoff * dxy + zoff * dxz; - dy = dy + xoff * dxy + zoff * dyz; - dz = dz + xoff * dxz + yoff * dyz; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real mfcbb = c0; - real mfabb = c0; - real mfbcb = c0; - real mfbab = c0; - real mfbbc = c0; - real mfbba = c0; - real mfccb = c0; - real mfaab = c0; - real mfcab = c0; - real mfacb = c0; - real mfcbc = c0; - real mfaba = c0; - real mfcba = c0; - real mfabc = c0; - real mfbcc = c0; - real mfbaa = c0; - real mfbca = c0; - real mfbac = c0; - real mfbbb = c0; - real mfccc = c0; - real mfaac = c0; - real mfcac = c0; - real mfacc = c0; - real mfcca = c0; - real mfaaa = c0; - real mfcaa = c0; - real mfaca = c0; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real mgcbb = c0; - real mgabb = c0; - real mgbcb = c0; - real mgbab = c0; - real mgbbc = c0; - real mgbba = c0; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real m0, m1, m2, oMdrho; - real mxxPyyPzz, mxxMyy, mxxMzz, mxxyPyzz, mxxyMyzz, mxxzPyyz, mxxzMyyz, mxyyPxzz, mxyyMxzz; - //real qudricLimit = c1o100;//ganz schlechte Idee -> muss global sein - //real O3 = two - o; - //real residu, residutmp; - //residutmp = zero;// /*-*/ c2o9 * (1./o - c1o2) * eps_new * eps_new; - real NeqOn = c1o1;//zero;//one; //.... one = on ..... zero = off - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position SWB -0.25f, -0.25f, -0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = -c1o4; - y = -c1o4; - z = -c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //real mxoff = -xoff; - //real myoff = -yoff; - //real mzoff = -zoff; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho = c3o64*drho_NEB+c1o64*drho_NET+c9o64*drho_NWB+c3o64*drho_NWT+c9o64*drho_SEB+c3o64*drho_SET+c27o64*drho_SWB+c9o64*drho_SWT; - //press = press_SWT * (c9o64 + c3o16 * mxoff + c3o16 * myoff - c9o16 * mzoff) + - // press_NWT * (c3o64 + c1o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + - // press_SET * (c3o64 - c3o16 * mxoff + c1o16 * myoff - c3o16 * mzoff) + - // press_NET * (c1o64 - c1o16 * mxoff - c1o16 * myoff - c1o16 * mzoff) + - // press_NEB * (c3o64 - c3o16 * mxoff - c3o16 * myoff + c1o16 * mzoff) + - // press_NWB * (c9o64 + c3o16 * mxoff - c9o16 * myoff + c3o16 * mzoff) + - // press_SEB * (c9o64 - c9o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + - // press_SWB * (c27o64 + c9o16 * mxoff + c9o16 * myoff + c9o16 * mzoff); - //drho = drho_SWT * (c9o64 + c3o16 * xoff + c3o16 * yoff - c9o16 * zoff) + - // drho_NWT * (c3o64 + c1o16 * xoff - c3o16 * yoff - c3o16 * zoff) + - // drho_SET * (c3o64 - c3o16 * xoff + c1o16 * yoff - c3o16 * zoff) + - // drho_NET * (c1o64 - c1o16 * xoff - c1o16 * yoff - c1o16 * zoff) + - // drho_NEB * (c3o64 - c3o16 * xoff - c3o16 * yoff + c1o16 * zoff) + - // drho_NWB * (c9o64 + c3o16 * xoff - c9o16 * yoff + c3o16 * zoff) + - // drho_SEB * (c9o64 - c9o16 * xoff + c3o16 * yoff + c3o16 * zoff) + - // drho_SWB * (c27o64 + c9o16 * xoff + c9o16 * yoff + c9o16 * zoff); - - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; - vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); - vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); - vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); - //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); - //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); - //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //2.f - // linear combinations - mxxPyyPzz = mfaaa - c2o3*(ax + by + c2o1*axx*x + bxy*x + axy*y + c2o1*byy*y + axz*z + byz*z + bxyz*x*z + axyz*y*z + cz - cxz*x + cyz*y + cxyz*x*y + c2o1*czz*z )*eps_new / oP* (c1o1 + press); - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); - //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mfbbb = c0; - - //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); - //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); - //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); - //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyPyzz = c0; - - //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); - //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyMyzz = c0; - - //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); - //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); - //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzPyyz = c0; - - //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); - //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzMyyz = c0; - - //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); - //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); - //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyPxzz = c0; - - //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); - //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyMxzz = c0; - - //////////////////////////////////////////////////////////////////////////////////// - // D3Q27F - mgcbb = (ax - axx) * eps_new; - mgabb = (ax + axx) * eps_new; - mgbcb = (by - byy) * eps_new; - mgbab = (by + byy) * eps_new; - mgbbc = (cz - czz) * eps_new; - mgbba = (cz + czz) * eps_new; - //////////////////////////////////////////////////////////////////////////////////// - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //index 0 - k000base = posFSWB[k]; - kM00base = neighborFX[k000base]; - k0M0base = neighborFY[k000base]; - k00Mbase = neighborFZ[k000base]; - kMM0base = neighborFY[kM00base]; - kM0Mbase = neighborFZ[kM00base]; - k0MMbase = neighborFZ[k0M0base]; - kMMMbase = neighborFZ[kMM0base]; - ////////////////////////////////////////////////////////////////////////// - //index - k000 = k000base; - kM00 = kM00base; - k0M0 = k0M0base; - k00M = k00Mbase; - kMM0 = kMM0base; - kM0M = kM0Mbase; - k0MM = k0MMbase; - kMMM = kMMMbase; - //////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - (G.g[dP00])[k000] = mgcbb; - (G.g[dM00])[kM00] = mgabb; - (G.g[d0P0])[k000] = mgbcb; - (G.g[d0M0])[k0M0] = mgbab; - (G.g[d00P])[k000] = mgbbc; - (G.g[d00M])[k00M] = mgbba; - //////////////////////////////////////////////////////////////////////////////////// - fP00dest[k000] = mfcbb; - fM00dest[kM00] = mfabb; - f0P0dest[k000] = mfbcb; - f0M0dest[k0M0] = mfbab; - f00Pdest[k000] = mfbbc; - f00Mdest[k00M] = mfbba; - fPP0dest[k000] = mfccb; - fMM0dest[kMM0] = mfaab; - fPM0dest[k0M0] = mfcab; - fMP0dest[kM00] = mfacb; - fP0Pdest[k000] = mfcbc; - fM0Mdest[kM0M] = mfaba; - fP0Mdest[k00M] = mfcba; - fM0Pdest[kM00] = mfabc; - f0PPdest[k000] = mfbcc; - f0MMdest[k0MM] = mfbaa; - f0PMdest[k00M] = mfbca; - f0MPdest[k0M0] = mfbac; - f000dest[k000] = mfbbb; - fMMMdest[kMMM] = mfaaa; - fMMPdest[kMM0] = mfaac; - fMPPdest[kM00] = mfacc; - fMPMdest[kM0M] = mfaca; - fPPMdest[k00M] = mfcca; - fPPPdest[k000] = mfccc; - fPMPdest[k0M0] = mfcac; - fPMMdest[k0MM] = mfcaa; - //////////////////////////////////////////////////////////////////////////////////// - - //reset - mfcbb = c0; - mfabb = c0; - mfbcb = c0; - mfbab = c0; - mfbbc = c0; - mfbba = c0; - mfccb = c0; - mfaab = c0; - mfcab = c0; - mfacb = c0; - mfcbc = c0; - mfaba = c0; - mfcba = c0; - mfabc = c0; - mfbcc = c0; - mfbaa = c0; - mfbca = c0; - mfbac = c0; - mfbbb = c0; - mfccc = c0; - mfaac = c0; - mfcac = c0; - mfacc = c0; - mfcca = c0; - mfaaa = c0; - mfcaa = c0; - mfaca = c0; - ///////////// - mgcbb = c0; - mgabb = c0; - mgbcb = c0; - mgbab = c0; - mgbbc = c0; - mgbba = c0; - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position SWT -0.25f, -0.25f, 0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = -c1o4; - y = -c1o4; - z = c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho = c1o64*drho_NEB+c3o64*drho_NET+c3o64*drho_NWB+c9o64*drho_NWT+c3o64*drho_SEB+c9o64*drho_SET+c9o64*drho_SWB+c27o64*drho_SWT; - //press = press_SWT * (c27o64 + c9o16 * mxoff + c9o16 * myoff - c9o16 * mzoff) + - // press_NWT * (c9o64 + c3o16 * mxoff - c9o16 * myoff - c3o16 * mzoff) + - // press_SET * (c9o64 - c9o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + - // press_NET * (c3o64 - c3o16 * mxoff - c3o16 * myoff - c1o16 * mzoff) + - // press_NEB * (c1o64 - c1o16 * mxoff - c1o16 * myoff + c1o16 * mzoff) + - // press_NWB * (c3o64 + c1o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + - // press_SEB * (c3o64 - c3o16 * mxoff + c1o16 * myoff + c3o16 * mzoff) + - // press_SWB * (c9o64 + c3o16 * mxoff + c3o16 * myoff + c9o16 * mzoff); - //drho = drho_SWT * (c27o64 + c9o16 * xoff + c9o16 * yoff - c9o16 * zoff) + - // drho_NWT * (c9o64 + c3o16 * xoff - c9o16 * yoff - c3o16 * zoff) + - // drho_SET * (c9o64 - c9o16 * xoff + c3o16 * yoff - c3o16 * zoff) + - // drho_NET * (c3o64 - c3o16 * xoff - c3o16 * yoff - c1o16 * zoff) + - // drho_NEB * (c1o64 - c1o16 * xoff - c1o16 * yoff + c1o16 * zoff) + - // drho_NWB * (c3o64 + c1o16 * xoff - c3o16 * yoff + c3o16 * zoff) + - // drho_SEB * (c3o64 - c3o16 * xoff + c1o16 * yoff + c3o16 * zoff) + - // drho_SWB * (c9o64 + c3o16 * xoff + c3o16 * yoff + c9o16 * zoff); - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; - vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); - vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); - vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); - //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); - //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); - //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //2.f - // linear combinations - mxxPyyPzz = mfaaa - c2o3*(ax + by + c2o1*axx*x + bxy*x + axy*y + c2o1*byy*y + axz*z + byz*z + bxyz*x*z + axyz*y*z + cz - cxz*x + cyz*y + cxyz*x*y + c2o1*czz*z)*eps_new / oP* (c1o1 + press); - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); - //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mfbbb = c0; - - //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); - //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); - //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); - //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyPyzz = c0; - - //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); - //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyMyzz = c0; - - //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); - //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); - //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzPyyz = c0; - - //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); - //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzMyyz = c0; - - //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); - //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); - //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyPxzz = c0; - - //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); - //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyMxzz = c0; - - //////////////////////////////////////////////////////////////////////////////////// - // D3Q27F - mgcbb = (ax - axx) * eps_new; - mgabb = (ax + axx) * eps_new; - mgbcb = (by - byy) * eps_new; - mgbab = (by + byy) * eps_new; - mgbbc = (cz - czz) * eps_new; - mgbba = (cz + czz) * eps_new; - //////////////////////////////////////////////////////////////////////////////////// - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - //index - k000 = k00M; - kM00 = kM0M; - k0M0 = k0MM; - k00M = neighborFZ[k00M]; - kMM0 = kMMM; - kM0M = neighborFZ[kM0M]; - k0MM = neighborFZ[k0MM]; - kMMM = neighborFZ[kMMM]; - //////////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - (G.g[dP00])[k000] = mgcbb; - (G.g[dM00])[kM00] = mgabb; - (G.g[d0P0])[k000] = mgbcb; - (G.g[d0M0])[k0M0] = mgbab; - (G.g[d00P])[k000] = mgbbc; - (G.g[d00M])[k00M] = mgbba; - //////////////////////////////////////////////////////////////////////////////////// - fP00dest[k000] = mfcbb; - fM00dest[kM00] = mfabb; - f0P0dest[k000] = mfbcb; - f0M0dest[k0M0] = mfbab; - f00Pdest[k000] = mfbbc; - f00Mdest[k00M] = mfbba; - fPP0dest[k000] = mfccb; - fMM0dest[kMM0] = mfaab; - fPM0dest[k0M0] = mfcab; - fMP0dest[kM00] = mfacb; - fP0Pdest[k000] = mfcbc; - fM0Mdest[kM0M] = mfaba; - fP0Mdest[k00M] = mfcba; - fM0Pdest[kM00] = mfabc; - f0PPdest[k000] = mfbcc; - f0MMdest[k0MM] = mfbaa; - f0PMdest[k00M] = mfbca; - f0MPdest[k0M0] = mfbac; - f000dest[k000] = mfbbb; - fMMMdest[kMMM] = mfaaa; - fMMPdest[kMM0] = mfaac; - fMPPdest[kM00] = mfacc; - fMPMdest[kM0M] = mfaca; - fPPMdest[k00M] = mfcca; - fPPPdest[k000] = mfccc; - fPMPdest[k0M0] = mfcac; - fPMMdest[k0MM] = mfcaa; - //////////////////////////////////////////////////////////////////////////////////// - - - //reset - mfcbb = c0; - mfabb = c0; - mfbcb = c0; - mfbab = c0; - mfbbc = c0; - mfbba = c0; - mfccb = c0; - mfaab = c0; - mfcab = c0; - mfacb = c0; - mfcbc = c0; - mfaba = c0; - mfcba = c0; - mfabc = c0; - mfbcc = c0; - mfbaa = c0; - mfbca = c0; - mfbac = c0; - mfbbb = c0; - mfccc = c0; - mfaac = c0; - mfcac = c0; - mfacc = c0; - mfcca = c0; - mfaaa = c0; - mfcaa = c0; - mfaca = c0; - ///////////// - mgcbb = c0; - mgabb = c0; - mgbcb = c0; - mgbab = c0; - mgbbc = c0; - mgbba = c0; - - - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position SET 0.25f, -0.25f, 0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = c1o4; - y = -c1o4; - z = c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho =c3o64*drho_NEB+c9o64*drho_NET+c1o64*drho_NWB+c3o64*drho_NWT+c9o64*drho_SEB+c27o64*drho_SET+c3o64*drho_SWB+c9o64*drho_SWT; - //press = press_SET * (c27o64 - c9o16 * mxoff + c9o16 * myoff - c9o16 * mzoff) + - // press_NET * (c9o64 - c3o16 * mxoff - c9o16 * myoff - c3o16 * mzoff) + - // press_SWT * (c9o64 + c9o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + - // press_NWT * (c3o64 + c3o16 * mxoff - c3o16 * myoff - c1o16 * mzoff) + - // press_NWB * (c1o64 + c1o16 * mxoff - c1o16 * myoff + c1o16 * mzoff) + - // press_NEB * (c3o64 - c1o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + - // press_SWB * (c3o64 + c3o16 * mxoff + c1o16 * myoff + c3o16 * mzoff) + - // press_SEB * (c9o64 - c3o16 * mxoff + c3o16 * myoff + c9o16 * mzoff); - //drho = drho_SET * (c27o64 - c9o16 * xoff + c9o16 * yoff - c9o16 * zoff) + - // drho_NET * (c9o64 - c3o16 * xoff - c9o16 * yoff - c3o16 * zoff) + - // drho_SWT * (c9o64 + c9o16 * xoff + c3o16 * yoff - c3o16 * zoff) + - // drho_NWT * (c3o64 + c3o16 * xoff - c3o16 * yoff - c1o16 * zoff) + - // drho_NWB * (c1o64 + c1o16 * xoff - c1o16 * yoff + c1o16 * zoff) + - // drho_NEB * (c3o64 - c1o16 * xoff - c3o16 * yoff + c3o16 * zoff) + - // drho_SWB * (c3o64 + c3o16 * xoff + c1o16 * yoff + c3o16 * zoff) + - // drho_SEB * (c9o64 - c3o16 * xoff + c3o16 * yoff + c9o16 * zoff); - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; - vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); - vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); - vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); - //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); - //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); - //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //2.f - // linear combinations - mxxPyyPzz = mfaaa - c2o3*(ax + by + c2o1*axx*x + bxy*x + axy*y + c2o1*byy*y + axz*z + byz*z + bxyz*x*z + axyz*y*z + cz - cxz*x + cyz*y + cxyz*x*y + c2o1*czz*z)*eps_new / oP* (c1o1 + press); - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); - //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mfbbb = c0; - - //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); - //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); - //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); - //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyPyzz = c0; - - //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); - //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyMyzz = c0; - - //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); - //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); - //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzPyyz = c0; - - //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); - //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzMyyz = c0; - - //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); - //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); - //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyPxzz = c0; - - //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); - //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyMxzz = c0; - - //////////////////////////////////////////////////////////////////////////////////// - // D3Q27F - mgcbb = (ax - axx) * eps_new; - mgabb = (ax + axx) * eps_new; - mgbcb = (by - byy) * eps_new; - mgbab = (by + byy) * eps_new; - mgbbc = (cz - czz) * eps_new; - mgbba = (cz + czz) * eps_new; - //////////////////////////////////////////////////////////////////////////////////// - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //index - k000 = kM00; - kM00 = neighborFX[kM00]; - k0M0 = kMM0; - k00M = kM0M; - kMM0 = neighborFX[kMM0]; - kM0M = neighborFX[kM0M]; - k0MM = kMMM; - kMMM = neighborFX[kMMM]; - //////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - (G.g[dP00])[k000] = mgcbb; - (G.g[dM00])[kM00] = mgabb; - (G.g[d0P0])[k000] = mgbcb; - (G.g[d0M0])[k0M0] = mgbab; - (G.g[d00P])[k000] = mgbbc; - (G.g[d00M])[k00M] = mgbba; - //////////////////////////////////////////////////////////////////////////////////// - fP00dest[k000] = mfcbb; - fM00dest[kM00] = mfabb; - f0P0dest[k000] = mfbcb; - f0M0dest[k0M0] = mfbab; - f00Pdest[k000] = mfbbc; - f00Mdest[k00M] = mfbba; - fPP0dest[k000] = mfccb; - fMM0dest[kMM0] = mfaab; - fPM0dest[k0M0] = mfcab; - fMP0dest[kM00] = mfacb; - fP0Pdest[k000] = mfcbc; - fM0Mdest[kM0M] = mfaba; - fP0Mdest[k00M] = mfcba; - fM0Pdest[kM00] = mfabc; - f0PPdest[k000] = mfbcc; - f0MMdest[k0MM] = mfbaa; - f0PMdest[k00M] = mfbca; - f0MPdest[k0M0] = mfbac; - f000dest[k000] = mfbbb; - fMMMdest[kMMM] = mfaaa; - fMMPdest[kMM0] = mfaac; - fMPPdest[kM00] = mfacc; - fMPMdest[kM0M] = mfaca; - fPPMdest[k00M] = mfcca; - fPPPdest[k000] = mfccc; - fPMPdest[k0M0] = mfcac; - fPMMdest[k0MM] = mfcaa; - //////////////////////////////////////////////////////////////////////////////////// - - //reset - mfcbb = c0; - mfabb = c0; - mfbcb = c0; - mfbab = c0; - mfbbc = c0; - mfbba = c0; - mfccb = c0; - mfaab = c0; - mfcab = c0; - mfacb = c0; - mfcbc = c0; - mfaba = c0; - mfcba = c0; - mfabc = c0; - mfbcc = c0; - mfbaa = c0; - mfbca = c0; - mfbac = c0; - mfbbb = c0; - mfccc = c0; - mfaac = c0; - mfcac = c0; - mfacc = c0; - mfcca = c0; - mfaaa = c0; - mfcaa = c0; - mfaca = c0; - ///////////// - mgcbb = c0; - mgabb = c0; - mgbcb = c0; - mgbab = c0; - mgbbc = c0; - mgbba = c0; - - - - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position SEB 0.25f, -0.25f, -0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = c1o4; - y = -c1o4; - z = -c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho =c9o64*drho_NEB+c3o64*drho_NET+c3o64*drho_NWB+c1o64*drho_NWT+c27o64*drho_SEB+c9o64*drho_SET+c9o64*drho_SWB+c3o64*drho_SWT; - //press = press_SET * (c9o64 - c3o16 * mxoff + c3o16 * myoff - c9o16 * mzoff) + - // press_NET * (c3o64 - c1o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + - // press_SWT * (c3o64 + c3o16 * mxoff + c1o16 * myoff - c3o16 * mzoff) + - // press_NWT * (c1o64 + c1o16 * mxoff - c1o16 * myoff - c1o16 * mzoff) + - // press_NWB * (c3o64 + c3o16 * mxoff - c3o16 * myoff + c1o16 * mzoff) + - // press_NEB * (c9o64 - c3o16 * mxoff - c9o16 * myoff + c3o16 * mzoff) + - // press_SWB * (c9o64 + c9o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + - // press_SEB * (c27o64 - c9o16 * mxoff + c9o16 * myoff + c9o16 * mzoff); - //drho = drho_SET * (c9o64 - c3o16 * xoff + c3o16 * yoff - c9o16 * zoff) + - // drho_NET * (c3o64 - c1o16 * xoff - c3o16 * yoff - c3o16 * zoff) + - // drho_SWT * (c3o64 + c3o16 * xoff + c1o16 * yoff - c3o16 * zoff) + - // drho_NWT * (c1o64 + c1o16 * xoff - c1o16 * yoff - c1o16 * zoff) + - // drho_NWB * (c3o64 + c3o16 * xoff - c3o16 * yoff + c1o16 * zoff) + - // drho_NEB * (c9o64 - c3o16 * xoff - c9o16 * yoff + c3o16 * zoff) + - // drho_SWB * (c9o64 + c9o16 * xoff + c3o16 * yoff + c3o16 * zoff) + - // drho_SEB * (c27o64 - c9o16 * xoff + c9o16 * yoff + c9o16 * zoff); - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; - vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); - vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); - vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); - //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); - //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); - //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //2.f - // linear combinations - mxxPyyPzz = mfaaa - c2o3*(ax + by + c2o1*axx*x + bxy*x + axy*y + c2o1*byy*y + axz*z + byz*z + bxyz*x*z + axyz*y*z + cz - cxz*x + cyz*y + cxyz*x*y + c2o1*czz*z)*eps_new / oP* (c1o1 + press); - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); - //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mfbbb = c0; - - //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); - //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); - //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); - //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyPyzz = c0; - - //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); - //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyMyzz = c0; - - //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); - //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); - //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzPyyz = c0; - - //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); - //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzMyyz = c0; - - //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); - //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); - //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyPxzz = c0; - - //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); - //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyMxzz = c0; - - //////////////////////////////////////////////////////////////////////////////////// - // D3Q27F - mgcbb = (ax - axx) * eps_new; - mgabb = (ax + axx) * eps_new; - mgbcb = (by - byy) * eps_new; - mgbab = (by + byy) * eps_new; - mgbbc = (cz - czz) * eps_new; - mgbba = (cz + czz) * eps_new; - //////////////////////////////////////////////////////////////////////////////////// - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //index - k00M = k000; - kM0M = kM00; - k0MM = k0M0; - kMMM = kMM0; - k000 = kM00base; - kM00 = neighborFX[kM00base]; - k0M0 = kMM0base; - kMM0 = neighborFX[kMM0base]; - //////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - (G.g[dP00])[k000] = mgcbb; - (G.g[dM00])[kM00] = mgabb; - (G.g[d0P0])[k000] = mgbcb; - (G.g[d0M0])[k0M0] = mgbab; - (G.g[d00P])[k000] = mgbbc; - (G.g[d00M])[k00M] = mgbba; - //////////////////////////////////////////////////////////////////////////////////// - fP00dest[k000] = mfcbb; - fM00dest[kM00] = mfabb; - f0P0dest[k000] = mfbcb; - f0M0dest[k0M0] = mfbab; - f00Pdest[k000] = mfbbc; - f00Mdest[k00M] = mfbba; - fPP0dest[k000] = mfccb; - fMM0dest[kMM0] = mfaab; - fPM0dest[k0M0] = mfcab; - fMP0dest[kM00] = mfacb; - fP0Pdest[k000] = mfcbc; - fM0Mdest[kM0M] = mfaba; - fP0Mdest[k00M] = mfcba; - fM0Pdest[kM00] = mfabc; - f0PPdest[k000] = mfbcc; - f0MMdest[k0MM] = mfbaa; - f0PMdest[k00M] = mfbca; - f0MPdest[k0M0] = mfbac; - f000dest[k000] = mfbbb; - fMMMdest[kMMM] = mfaaa; - fMMPdest[kMM0] = mfaac; - fMPPdest[kM00] = mfacc; - fMPMdest[kM0M] = mfaca; - fPPMdest[k00M] = mfcca; - fPPPdest[k000] = mfccc; - fPMPdest[k0M0] = mfcac; - fPMMdest[k0MM] = mfcaa; - //////////////////////////////////////////////////////////////////////////////////// - - - //reset - mfcbb = c0; - mfabb = c0; - mfbcb = c0; - mfbab = c0; - mfbbc = c0; - mfbba = c0; - mfccb = c0; - mfaab = c0; - mfcab = c0; - mfacb = c0; - mfcbc = c0; - mfaba = c0; - mfcba = c0; - mfabc = c0; - mfbcc = c0; - mfbaa = c0; - mfbca = c0; - mfbac = c0; - mfbbb = c0; - mfccc = c0; - mfaac = c0; - mfcac = c0; - mfacc = c0; - mfcca = c0; - mfaaa = c0; - mfcaa = c0; - mfaca = c0; - ///////////// - mgcbb = c0; - mgabb = c0; - mgbcb = c0; - mgbab = c0; - mgbbc = c0; - mgbba = c0; - - - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position NWB -0.25f, 0.25f, -0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = -c1o4; - y = c1o4; - z = -c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho = c9o64*drho_NEB+c3o64*drho_NET+c27o64*drho_NWB+c9o64*drho_NWT+c3o64*drho_SEB+c1o64*drho_SET+c9o64*drho_SWB+c3o64*drho_SWT; - //press = press_NWT * (c9o64 + c3o16 * mxoff - c3o16 * myoff - c9o16 * mzoff) + - // press_NET * (c3o64 - c3o16 * mxoff - c1o16 * myoff - c3o16 * mzoff) + - // press_SWT * (c3o64 + c1o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + - // press_SET * (c1o64 - c1o16 * mxoff + c1o16 * myoff - c1o16 * mzoff) + - // press_SEB * (c3o64 - c3o16 * mxoff + c3o16 * myoff + c1o16 * mzoff) + - // press_NEB * (c9o64 - c9o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + - // press_SWB * (c9o64 + c3o16 * mxoff + c9o16 * myoff + c3o16 * mzoff) + - // press_NWB * (c27o64 + c9o16 * mxoff - c9o16 * myoff + c9o16 * mzoff); - //drho = drho_NWT * (c9o64 + c3o16 * xoff - c3o16 * yoff - c9o16 * zoff) + - // drho_NET * (c3o64 - c3o16 * xoff - c1o16 * yoff - c3o16 * zoff) + - // drho_SWT * (c3o64 + c1o16 * xoff + c3o16 * yoff - c3o16 * zoff) + - // drho_SET * (c1o64 - c1o16 * xoff + c1o16 * yoff - c1o16 * zoff) + - // drho_SEB * (c3o64 - c3o16 * xoff + c3o16 * yoff + c1o16 * zoff) + - // drho_NEB * (c9o64 - c9o16 * xoff - c3o16 * yoff + c3o16 * zoff) + - // drho_SWB * (c9o64 + c3o16 * xoff + c9o16 * yoff + c3o16 * zoff) + - // drho_NWB * (c27o64 + c9o16 * xoff - c9o16 * yoff + c9o16 * zoff); - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; - vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); - vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); - vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); - //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); - //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); - //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //2.f - // linear combinations - mxxPyyPzz = mfaaa - c2o3*(ax + by + c2o1*axx*x + bxy*x + axy*y + c2o1*byy*y + axz*z + byz*z + bxyz*x*z + axyz*y*z + cz - cxz*x + cyz*y + cxyz*x*y + c2o1*czz*z)*eps_new / oP* (c1o1 + press); - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); - //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mfbbb = c0; - - //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); - //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); - //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); - //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyPyzz = c0; - - //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); - //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyMyzz = c0; - - //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); - //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); - //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzPyyz = c0; - - //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); - //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzMyyz = c0; - - //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); - //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); - //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyPxzz = c0; - - //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); - //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyMxzz = c0; - - //////////////////////////////////////////////////////////////////////////////////// - // D3Q27F - mgcbb = (ax - axx) * eps_new; - mgabb = (ax + axx) * eps_new; - mgbcb = (by - byy) * eps_new; - mgbab = (by + byy) * eps_new; - mgbbc = (cz - czz) * eps_new; - mgbba = (cz + czz) * eps_new; - //////////////////////////////////////////////////////////////////////////////////// - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //index 0 - k000base = k0M0base; - kM00base = kMM0base; - k0M0base = neighborFY[k0M0base]; - k00Mbase = k0MMbase; - kMM0base = neighborFY[kMM0base]; - kM0Mbase = kMMMbase; - k0MMbase = neighborFY[k0MMbase]; - kMMMbase = neighborFY[kMMMbase]; - ////////////////////////////////////////////////////////////////////////// - //index - k000 = k000base; - kM00 = kM00base; - k0M0 = k0M0base; - k00M = k00Mbase; - kMM0 = kMM0base; - kM0M = kM0Mbase; - k0MM = k0MMbase; - kMMM = kMMMbase; - //////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - (G.g[dP00])[k000] = mgcbb; - (G.g[dM00])[kM00] = mgabb; - (G.g[d0P0])[k000] = mgbcb; - (G.g[d0M0])[k0M0] = mgbab; - (G.g[d00P])[k000] = mgbbc; - (G.g[d00M])[k00M] = mgbba; - //////////////////////////////////////////////////////////////////////////////////// - fP00dest[k000] = mfcbb; - fM00dest[kM00] = mfabb; - f0P0dest[k000] = mfbcb; - f0M0dest[k0M0] = mfbab; - f00Pdest[k000] = mfbbc; - f00Mdest[k00M] = mfbba; - fPP0dest[k000] = mfccb; - fMM0dest[kMM0] = mfaab; - fPM0dest[k0M0] = mfcab; - fMP0dest[kM00] = mfacb; - fP0Pdest[k000] = mfcbc; - fM0Mdest[kM0M] = mfaba; - fP0Mdest[k00M] = mfcba; - fM0Pdest[kM00] = mfabc; - f0PPdest[k000] = mfbcc; - f0MMdest[k0MM] = mfbaa; - f0PMdest[k00M] = mfbca; - f0MPdest[k0M0] = mfbac; - f000dest[k000] = mfbbb; - fMMMdest[kMMM] = mfaaa; - fMMPdest[kMM0] = mfaac; - fMPPdest[kM00] = mfacc; - fMPMdest[kM0M] = mfaca; - fPPMdest[k00M] = mfcca; - fPPPdest[k000] = mfccc; - fPMPdest[k0M0] = mfcac; - fPMMdest[k0MM] = mfcaa; - //////////////////////////////////////////////////////////////////////////////////// - - - //reset - mfcbb = c0; - mfabb = c0; - mfbcb = c0; - mfbab = c0; - mfbbc = c0; - mfbba = c0; - mfccb = c0; - mfaab = c0; - mfcab = c0; - mfacb = c0; - mfcbc = c0; - mfaba = c0; - mfcba = c0; - mfabc = c0; - mfbcc = c0; - mfbaa = c0; - mfbca = c0; - mfbac = c0; - mfbbb = c0; - mfccc = c0; - mfaac = c0; - mfcac = c0; - mfacc = c0; - mfcca = c0; - mfaaa = c0; - mfcaa = c0; - mfaca = c0; - ///////////// - mgcbb = c0; - mgabb = c0; - mgbcb = c0; - mgbab = c0; - mgbbc = c0; - mgbba = c0; - - - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position NWT -0.25f, 0.25f, 0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = -c1o4; - y = c1o4; - z = c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho = c3o64*drho_NEB+c9o64*drho_NET+c9o64*drho_NWB+c27o64*drho_NWT+c1o64*drho_SEB+c3o64*drho_SET+c3o64*drho_SWB+c9o64*drho_SWT; - //press = press_NWT * (c27o64 + c9o16 * mxoff - c9o16 * myoff - c9o16 * mzoff) + - // press_NET * (c9o64 - c9o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + - // press_SWT * (c9o64 + c3o16 * mxoff + c9o16 * myoff - c3o16 * mzoff) + - // press_SET * (c3o64 - c3o16 * mxoff + c3o16 * myoff - c1o16 * mzoff) + - // press_SEB * (c1o64 - c1o16 * mxoff + c1o16 * myoff + c1o16 * mzoff) + - // press_NEB * (c3o64 - c3o16 * mxoff - c1o16 * myoff + c3o16 * mzoff) + - // press_SWB * (c3o64 + c1o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + - // press_NWB * (c9o64 + c3o16 * mxoff - c3o16 * myoff + c9o16 * mzoff); - //drho = drho_NWT * (c27o64 + c9o16 * xoff - c9o16 * yoff - c9o16 * zoff) + - // drho_NET * (c9o64 - c9o16 * xoff - c3o16 * yoff - c3o16 * zoff) + - // drho_SWT * (c9o64 + c3o16 * xoff + c9o16 * yoff - c3o16 * zoff) + - // drho_SET * (c3o64 - c3o16 * xoff + c3o16 * yoff - c1o16 * zoff) + - // drho_SEB * (c1o64 - c1o16 * xoff + c1o16 * yoff + c1o16 * zoff) + - // drho_NEB * (c3o64 - c3o16 * xoff - c1o16 * yoff + c3o16 * zoff) + - // drho_SWB * (c3o64 + c1o16 * xoff + c3o16 * yoff + c3o16 * zoff) + - // drho_NWB * (c9o64 + c3o16 * xoff - c3o16 * yoff + c9o16 * zoff); - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; - vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); - vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); - vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); - //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); - //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); - //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //2.f - // linear combinations - mxxPyyPzz = mfaaa - c2o3*(ax + by + c2o1*axx*x + bxy*x + axy*y + c2o1*byy*y + axz*z + byz*z + bxyz*x*z + axyz*y*z + cz - cxz*x + cyz*y + cxyz*x*y + c2o1*czz*z)*eps_new / oP* (c1o1 + press); - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); - //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mfbbb = c0; - - //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); - //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); - //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); - //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyPyzz = c0; - - //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); - //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyMyzz = c0; - - //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); - //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); - //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzPyyz = c0; - - //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); - //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzMyyz = c0; - - //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); - //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); - //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyPxzz = c0; - - //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); - //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyMxzz = c0; - - //////////////////////////////////////////////////////////////////////////////////// - // D3Q27F - mgcbb = (ax - axx) * eps_new; - mgabb = (ax + axx) * eps_new; - mgbcb = (by - byy) * eps_new; - mgbab = (by + byy) * eps_new; - mgbbc = (cz - czz) * eps_new; - mgbba = (cz + czz) * eps_new; - //////////////////////////////////////////////////////////////////////////////////// - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //index - k000 = k00M; - kM00 = kM0M; - k0M0 = k0MM; - k00M = neighborFZ[k00M]; - kMM0 = kMMM; - kM0M = neighborFZ[kM0M]; - k0MM = neighborFZ[k0MM]; - kMMM = neighborFZ[kMMM]; - //////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - (G.g[dP00])[k000] = mgcbb; - (G.g[dM00])[kM00] = mgabb; - (G.g[d0P0])[k000] = mgbcb; - (G.g[d0M0])[k0M0] = mgbab; - (G.g[d00P])[k000] = mgbbc; - (G.g[d00M])[k00M] = mgbba; - //////////////////////////////////////////////////////////////////////////////////// - fP00dest[k000] = mfcbb; - fM00dest[kM00] = mfabb; - f0P0dest[k000] = mfbcb; - f0M0dest[k0M0] = mfbab; - f00Pdest[k000] = mfbbc; - f00Mdest[k00M] = mfbba; - fPP0dest[k000] = mfccb; - fMM0dest[kMM0] = mfaab; - fPM0dest[k0M0] = mfcab; - fMP0dest[kM00] = mfacb; - fP0Pdest[k000] = mfcbc; - fM0Mdest[kM0M] = mfaba; - fP0Mdest[k00M] = mfcba; - fM0Pdest[kM00] = mfabc; - f0PPdest[k000] = mfbcc; - f0MMdest[k0MM] = mfbaa; - f0PMdest[k00M] = mfbca; - f0MPdest[k0M0] = mfbac; - f000dest[k000] = mfbbb; - fMMMdest[kMMM] = mfaaa; - fMMPdest[kMM0] = mfaac; - fMPPdest[kM00] = mfacc; - fMPMdest[kM0M] = mfaca; - fPPMdest[k00M] = mfcca; - fPPPdest[k000] = mfccc; - fPMPdest[k0M0] = mfcac; - fPMMdest[k0MM] = mfcaa; - //////////////////////////////////////////////////////////////////////////////////// - - - //reset - mfcbb = c0; - mfabb = c0; - mfbcb = c0; - mfbab = c0; - mfbbc = c0; - mfbba = c0; - mfccb = c0; - mfaab = c0; - mfcab = c0; - mfacb = c0; - mfcbc = c0; - mfaba = c0; - mfcba = c0; - mfabc = c0; - mfbcc = c0; - mfbaa = c0; - mfbca = c0; - mfbac = c0; - mfbbb = c0; - mfccc = c0; - mfaac = c0; - mfcac = c0; - mfacc = c0; - mfcca = c0; - mfaaa = c0; - mfcaa = c0; - mfaca = c0; - ///////////// - mgcbb = c0; - mgabb = c0; - mgbcb = c0; - mgbab = c0; - mgbbc = c0; - mgbba = c0; - - - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position NET 0.25f, 0.25f, 0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = c1o4; - y = c1o4; - z = c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho = c9o64*drho_NEB+c27o64*drho_NET+c3o64*drho_NWB+c9o64*drho_NWT+c3o64*drho_SEB+c9o64*drho_SET+c1o64*drho_SWB+c3o64*drho_SWT; - //press = press_NET * (c27o64 - c9o16 * mxoff - c9o16 * myoff - c9o16 * mzoff) + - // press_NWT * (c9o64 + c9o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + - // press_SET * (c9o64 - c3o16 * mxoff + c9o16 * myoff - c3o16 * mzoff) + - // press_SWT * (c3o64 + c3o16 * mxoff + c3o16 * myoff - c1o16 * mzoff) + - // press_SWB * (c1o64 + c1o16 * mxoff + c1o16 * myoff + c1o16 * mzoff) + - // press_NWB * (c3o64 + c3o16 * mxoff - c1o16 * myoff + c3o16 * mzoff) + - // press_SEB * (c3o64 - c1o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + - // press_NEB * (c9o64 - c3o16 * mxoff - c3o16 * myoff + c9o16 * mzoff); - //drho = drho_NET * (c27o64 - c9o16 * xoff - c9o16 * yoff - c9o16 * zoff) + - // drho_NWT * (c9o64 + c9o16 * xoff - c3o16 * yoff - c3o16 * zoff) + - // drho_SET * (c9o64 - c3o16 * xoff + c9o16 * yoff - c3o16 * zoff) + - // drho_SWT * (c3o64 + c3o16 * xoff + c3o16 * yoff - c1o16 * zoff) + - // drho_SWB * (c1o64 + c1o16 * xoff + c1o16 * yoff + c1o16 * zoff) + - // drho_NWB * (c3o64 + c3o16 * xoff - c1o16 * yoff + c3o16 * zoff) + - // drho_SEB * (c3o64 - c1o16 * xoff + c3o16 * yoff + c3o16 * zoff) + - // drho_NEB * (c9o64 - c3o16 * xoff - c3o16 * yoff + c9o16 * zoff); - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; - vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); - vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); - vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); - //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); - //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); - //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //2.f - // linear combinations - mxxPyyPzz = mfaaa - c2o3*(ax + by + c2o1*axx*x + bxy*x + axy*y + c2o1*byy*y + axz*z + byz*z + bxyz*x*z + axyz*y*z + cz - cxz*x + cyz*y + cxyz*x*y + c2o1*czz*z)*eps_new / oP* (c1o1 + press); - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); - //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mfbbb = c0; - - //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); - //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); - //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); - //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyPyzz = c0; - - //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); - //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyMyzz = c0; - - //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); - //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); - //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzPyyz = c0; - - //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); - //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzMyyz = c0; - - //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); - //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); - //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyPxzz = c0; - - //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); - //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyMxzz = c0; - - //////////////////////////////////////////////////////////////////////////////////// - // D3Q27F - mgcbb = (ax - axx) * eps_new; - mgabb = (ax + axx) * eps_new; - mgbcb = (by - byy) * eps_new; - mgbab = (by + byy) * eps_new; - mgbbc = (cz - czz) * eps_new; - mgbba = (cz + czz) * eps_new; - //////////////////////////////////////////////////////////////////////////////////// - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //index - k000 = kM00; - kM00 = neighborFX[kM00]; - k0M0 = kMM0; - k00M = kM0M; - kMM0 = neighborFX[kMM0]; - kM0M = neighborFX[kM0M]; - k0MM = kMMM; - kMMM = neighborFX[kMMM]; - //////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - (G.g[dP00])[k000] = mgcbb; - (G.g[dM00])[kM00] = mgabb; - (G.g[d0P0])[k000] = mgbcb; - (G.g[d0M0])[k0M0] = mgbab; - (G.g[d00P])[k000] = mgbbc; - (G.g[d00M])[k00M] = mgbba; - //////////////////////////////////////////////////////////////////////////////////// - fP00dest[k000] = mfcbb; - fM00dest[kM00] = mfabb; - f0P0dest[k000] = mfbcb; - f0M0dest[k0M0] = mfbab; - f00Pdest[k000] = mfbbc; - f00Mdest[k00M] = mfbba; - fPP0dest[k000] = mfccb; - fMM0dest[kMM0] = mfaab; - fPM0dest[k0M0] = mfcab; - fMP0dest[kM00] = mfacb; - fP0Pdest[k000] = mfcbc; - fM0Mdest[kM0M] = mfaba; - fP0Mdest[k00M] = mfcba; - fM0Pdest[kM00] = mfabc; - f0PPdest[k000] = mfbcc; - f0MMdest[k0MM] = mfbaa; - f0PMdest[k00M] = mfbca; - f0MPdest[k0M0] = mfbac; - f000dest[k000] = mfbbb; - fMMMdest[kMMM] = mfaaa; - fMMPdest[kMM0] = mfaac; - fMPPdest[kM00] = mfacc; - fMPMdest[kM0M] = mfaca; - fPPMdest[k00M] = mfcca; - fPPPdest[k000] = mfccc; - fPMPdest[k0M0] = mfcac; - fPMMdest[k0MM] = mfcaa; - //////////////////////////////////////////////////////////////////////////////////// - - - //reset - mfcbb = c0; - mfabb = c0; - mfbcb = c0; - mfbab = c0; - mfbbc = c0; - mfbba = c0; - mfccb = c0; - mfaab = c0; - mfcab = c0; - mfacb = c0; - mfcbc = c0; - mfaba = c0; - mfcba = c0; - mfabc = c0; - mfbcc = c0; - mfbaa = c0; - mfbca = c0; - mfbac = c0; - mfbbb = c0; - mfccc = c0; - mfaac = c0; - mfcac = c0; - mfacc = c0; - mfcca = c0; - mfaaa = c0; - mfcaa = c0; - mfaca = c0; - ///////////// - mgcbb = c0; - mgabb = c0; - mgbcb = c0; - mgbab = c0; - mgbbc = c0; - mgbba = c0; - - - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position NEB 0.25f, 0.25f, -0.25f - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = c1o4; - y = c1o4; - z = -c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho = c27o64*drho_NEB+c9o64*drho_NET+c9o64*drho_NWB+c3o64*drho_NWT+c9o64*drho_SEB+c3o64*drho_SET+c3o64*drho_SWB+c1o64*drho_SWT; - //press = press_NET * (c9o64 - c3o16 * mxoff - c3o16 * myoff - c9o16 * mzoff) + - // press_NWT * (c3o64 + c3o16 * mxoff - c1o16 * myoff - c3o16 * mzoff) + - // press_SET * (c3o64 - c1o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + - // press_SWT * (c1o64 + c1o16 * mxoff + c1o16 * myoff - c1o16 * mzoff) + - // press_SWB * (c3o64 + c3o16 * mxoff + c3o16 * myoff + c1o16 * mzoff) + - // press_NWB * (c9o64 + c9o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + - // press_SEB * (c9o64 - c3o16 * mxoff + c9o16 * myoff + c3o16 * mzoff) + - // press_NEB * (c27o64 - c9o16 * mxoff - c9o16 * myoff + c9o16 * mzoff); - //drho = drho_NET * (c9o64 - c3o16 * xoff - c3o16 * yoff - c9o16 * zoff) + - // drho_NWT * (c3o64 + c3o16 * xoff - c1o16 * yoff - c3o16 * zoff) + - // drho_SET * (c3o64 - c1o16 * xoff + c3o16 * yoff - c3o16 * zoff) + - // drho_SWT * (c1o64 + c1o16 * xoff + c1o16 * yoff - c1o16 * zoff) + - // drho_SWB * (c3o64 + c3o16 * xoff + c3o16 * yoff + c1o16 * zoff) + - // drho_NWB * (c9o64 + c9o16 * xoff - c3o16 * yoff + c3o16 * zoff) + - // drho_SEB * (c9o64 - c3o16 * xoff + c9o16 * yoff + c3o16 * zoff) + - // drho_NEB * (c27o64 - c9o16 * xoff - c9o16 * yoff + c9o16 * zoff); - press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; - vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); - vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); - vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); - //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); - //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); - //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); - - //mfaaa = drho; - //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //2.f - // linear combinations - mxxPyyPzz = mfaaa - c2o3*(ax + by + c2o1*axx*x + bxy*x + axy*y + c2o1*byy*y + axz*z + byz*z + bxyz*x*z + axyz*y*z + cz - cxz*x + cyz*y + cxyz*x*y + c2o1*czz*z)*eps_new / oP* (c1o1 + press); - //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; - //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; - //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; - - mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); - mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); - - mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); - mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); - mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //three - // linear combinations - //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); - //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mfbbb = c0; - - //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); - //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); - //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); - //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyPyzz = c0; - - //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); - //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyMyzz = c0; - - //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); - //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); - //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzPyyz = c0; - - //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); - //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzMyyz = c0; - - //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); - //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); - //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyPxzz = c0; - - //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); - //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyMxzz = c0; - - //////////////////////////////////////////////////////////////////////////////////// - // D3Q27F - mgcbb = (ax - axx) * eps_new; - mgabb = (ax + axx) * eps_new; - mgbcb = (by - byy) * eps_new; - mgbab = (by + byy) * eps_new; - mgbbc = (cz - czz) * eps_new; - mgbba = (cz + czz) * eps_new; - //////////////////////////////////////////////////////////////////////////////////// - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4.f - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //index - k00M = k000; - kM0M = kM00; - k0MM = k0M0; - kMMM = kMM0; - k000 = kM00base; - kM00 = neighborFX[kM00base]; - k0M0 = kMM0base; - kMM0 = neighborFX[kMM0base]; - //////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - (G.g[dP00])[k000] = mgcbb; - (G.g[dM00])[kM00] = mgabb; - (G.g[d0P0])[k000] = mgbcb; - (G.g[d0M0])[k0M0] = mgbab; - (G.g[d00P])[k000] = mgbbc; - (G.g[d00M])[k00M] = mgbba; - //////////////////////////////////////////////////////////////////////////////////// - fP00dest[k000] = mfcbb; - fM00dest[kM00] = mfabb; - f0P0dest[k000] = mfbcb; - f0M0dest[k0M0] = mfbab; - f00Pdest[k000] = mfbbc; - f00Mdest[k00M] = mfbba; - fPP0dest[k000] = mfccb; - fMM0dest[kMM0] = mfaab; - fPM0dest[k0M0] = mfcab; - fMP0dest[kM00] = mfacb; - fP0Pdest[k000] = mfcbc; - fM0Mdest[kM0M] = mfaba; - fP0Mdest[k00M] = mfcba; - fM0Pdest[kM00] = mfabc; - f0PPdest[k000] = mfbcc; - f0MMdest[k0MM] = mfbaa; - f0PMdest[k00M] = mfbca; - f0MPdest[k0M0] = mfbac; - f000dest[k000] = mfbbb; - fMMMdest[kMMM] = mfaaa; - fMMPdest[kMM0] = mfaac; - fMPPdest[kM00] = mfacc; - fMPMdest[kM0M] = mfaca; - fPPMdest[k00M] = mfcca; - fPPPdest[k000] = mfccc; - fPMPdest[k0M0] = mfcac; - fPMMdest[k0MM] = mfcaa; - //////////////////////////////////////////////////////////////////////////////////// + d0 = d0 + xoff * dx + yoff * dy + zoff * dz + xoff*yoff*dxy + xoff*zoff*dxz + yoff*zoff*dyz; + dx = dx + yoff * dxy + zoff * dxz; + dy = dy + xoff * dxy + zoff * dyz; + dz = dz + xoff * dxz + yoff * dyz; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + real mfcbb = c0; + real mfabb = c0; + real mfbcb = c0; + real mfbab = c0; + real mfbbc = c0; + real mfbba = c0; + real mfccb = c0; + real mfaab = c0; + real mfcab = c0; + real mfacb = c0; + real mfcbc = c0; + real mfaba = c0; + real mfcba = c0; + real mfabc = c0; + real mfbcc = c0; + real mfbaa = c0; + real mfbca = c0; + real mfbac = c0; + real mfbbb = c0; + real mfccc = c0; + real mfaac = c0; + real mfcac = c0; + real mfacc = c0; + real mfcca = c0; + real mfaaa = c0; + real mfcaa = c0; + real mfaca = c0; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + real mgcbb = c0; + real mgabb = c0; + real mgbcb = c0; + real mgbab = c0; + real mgbbc = c0; + real mgbba = c0; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + real m0, m1, m2, oMdrho; + real mxxPyyPzz, mxxMyy, mxxMzz, mxxyPyzz, mxxyMyzz, mxxzPyyz, mxxzMyyz, mxyyPxzz, mxyyMxzz; + //real qudricLimit = c1o100;//ganz schlechte Idee -> muss global sein + //real O3 = two - o; + //real residu, residutmp; + //residutmp = zero;// /*-*/ c2o9 * (1./o - c1o2) * eps_new * eps_new; + real NeqOn = c1o1;//zero;//one; //.... one = on ..... zero = off + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position SWB -0.25f, -0.25f, -0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = -c1o4; + y = -c1o4; + z = -c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //real mxoff = -xoff; + //real myoff = -yoff; + //real mzoff = -zoff; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho = c3o64*drho_NEB+c1o64*drho_NET+c9o64*drho_NWB+c3o64*drho_NWT+c9o64*drho_SEB+c3o64*drho_SET+c27o64*drho_SWB+c9o64*drho_SWT; + //press = press_SWT * (c9o64 + c3o16 * mxoff + c3o16 * myoff - c9o16 * mzoff) + + // press_NWT * (c3o64 + c1o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + + // press_SET * (c3o64 - c3o16 * mxoff + c1o16 * myoff - c3o16 * mzoff) + + // press_NET * (c1o64 - c1o16 * mxoff - c1o16 * myoff - c1o16 * mzoff) + + // press_NEB * (c3o64 - c3o16 * mxoff - c3o16 * myoff + c1o16 * mzoff) + + // press_NWB * (c9o64 + c3o16 * mxoff - c9o16 * myoff + c3o16 * mzoff) + + // press_SEB * (c9o64 - c9o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + + // press_SWB * (c27o64 + c9o16 * mxoff + c9o16 * myoff + c9o16 * mzoff); + //drho = drho_SWT * (c9o64 + c3o16 * xoff + c3o16 * yoff - c9o16 * zoff) + + // drho_NWT * (c3o64 + c1o16 * xoff - c3o16 * yoff - c3o16 * zoff) + + // drho_SET * (c3o64 - c3o16 * xoff + c1o16 * yoff - c3o16 * zoff) + + // drho_NET * (c1o64 - c1o16 * xoff - c1o16 * yoff - c1o16 * zoff) + + // drho_NEB * (c3o64 - c3o16 * xoff - c3o16 * yoff + c1o16 * zoff) + + // drho_NWB * (c9o64 + c3o16 * xoff - c9o16 * yoff + c3o16 * zoff) + + // drho_SEB * (c9o64 - c9o16 * xoff + c3o16 * yoff + c3o16 * zoff) + + // drho_SWB * (c27o64 + c9o16 * xoff + c9o16 * yoff + c9o16 * zoff); + + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; + vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); + vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); + vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); + //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); + //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); + //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1; + //oMdrho = one - mfaaa; + + //2.f + // linear combinations + mxxPyyPzz = mfaaa - c2o3*(ax + by + c2o1*axx*x + bxy*x + axy*y + c2o1*byy*y + axz*z + byz*z + bxyz*x*z + axyz*y*z + cz - cxz*x + cyz*y + cxyz*x*y + c2o1*czz*z )*eps_new / oP* (c1o1 + press); + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); + //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mfbbb = c0; + + //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); + //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); + //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); + //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyPyzz = c0; + + //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); + //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); + //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyMyzz = c0; + + //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); + //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); + //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzPyyz = c0; + + //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); + //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); + //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzMyyz = c0; + + //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); + //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; + //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); + //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyPxzz = c0; + + //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); + //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); + //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyMxzz = c0; + + //////////////////////////////////////////////////////////////////////////////////// + // D3Q27F + mgcbb = (ax - axx) * eps_new; + mgabb = (ax + axx) * eps_new; + mgbcb = (by - byy) * eps_new; + mgbab = (by + byy) * eps_new; + mgbbc = (cz - czz) * eps_new; + mgbba = (cz + czz) * eps_new; + //////////////////////////////////////////////////////////////////////////////////// + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////// + //index 0 + k000base = posFSWB[k]; + kM00base = neighborFX[k000base]; + k0M0base = neighborFY[k000base]; + k00Mbase = neighborFZ[k000base]; + kMM0base = neighborFY[kM00base]; + kM0Mbase = neighborFZ[kM00base]; + k0MMbase = neighborFZ[k0M0base]; + kMMMbase = neighborFZ[kMM0base]; + ////////////////////////////////////////////////////////////////////////// + //index + k000 = k000base; + kM00 = kM00base; + k0M0 = k0M0base; + k00M = k00Mbase; + kMM0 = kMM0base; + kM0M = kM0Mbase; + k0MM = k0MMbase; + kMMM = kMMMbase; + //////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + (G.g[dP00])[k000] = mgcbb; + (G.g[dM00])[kM00] = mgabb; + (G.g[d0P0])[k000] = mgbcb; + (G.g[d0M0])[k0M0] = mgbab; + (G.g[d00P])[k000] = mgbbc; + (G.g[d00M])[k00M] = mgbba; + //////////////////////////////////////////////////////////////////////////////////// + fP00dest[k000] = mfcbb; + fM00dest[kM00] = mfabb; + f0P0dest[k000] = mfbcb; + f0M0dest[k0M0] = mfbab; + f00Pdest[k000] = mfbbc; + f00Mdest[k00M] = mfbba; + fPP0dest[k000] = mfccb; + fMM0dest[kMM0] = mfaab; + fPM0dest[k0M0] = mfcab; + fMP0dest[kM00] = mfacb; + fP0Pdest[k000] = mfcbc; + fM0Mdest[kM0M] = mfaba; + fP0Mdest[k00M] = mfcba; + fM0Pdest[kM00] = mfabc; + f0PPdest[k000] = mfbcc; + f0MMdest[k0MM] = mfbaa; + f0PMdest[k00M] = mfbca; + f0MPdest[k0M0] = mfbac; + f000dest[k000] = mfbbb; + fMMMdest[kMMM] = mfaaa; + fMMPdest[kMM0] = mfaac; + fMPPdest[kM00] = mfacc; + fMPMdest[kM0M] = mfaca; + fPPMdest[k00M] = mfcca; + fPPPdest[k000] = mfccc; + fPMPdest[k0M0] = mfcac; + fPMMdest[k0MM] = mfcaa; + //////////////////////////////////////////////////////////////////////////////////// + + //reset + mfcbb = c0; + mfabb = c0; + mfbcb = c0; + mfbab = c0; + mfbbc = c0; + mfbba = c0; + mfccb = c0; + mfaab = c0; + mfcab = c0; + mfacb = c0; + mfcbc = c0; + mfaba = c0; + mfcba = c0; + mfabc = c0; + mfbcc = c0; + mfbaa = c0; + mfbca = c0; + mfbac = c0; + mfbbb = c0; + mfccc = c0; + mfaac = c0; + mfcac = c0; + mfacc = c0; + mfcca = c0; + mfaaa = c0; + mfcaa = c0; + mfaca = c0; + ///////////// + mgcbb = c0; + mgabb = c0; + mgbcb = c0; + mgbab = c0; + mgbbc = c0; + mgbba = c0; + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position SWT -0.25f, -0.25f, 0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = -c1o4; + y = -c1o4; + z = c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho = c1o64*drho_NEB+c3o64*drho_NET+c3o64*drho_NWB+c9o64*drho_NWT+c3o64*drho_SEB+c9o64*drho_SET+c9o64*drho_SWB+c27o64*drho_SWT; + //press = press_SWT * (c27o64 + c9o16 * mxoff + c9o16 * myoff - c9o16 * mzoff) + + // press_NWT * (c9o64 + c3o16 * mxoff - c9o16 * myoff - c3o16 * mzoff) + + // press_SET * (c9o64 - c9o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + + // press_NET * (c3o64 - c3o16 * mxoff - c3o16 * myoff - c1o16 * mzoff) + + // press_NEB * (c1o64 - c1o16 * mxoff - c1o16 * myoff + c1o16 * mzoff) + + // press_NWB * (c3o64 + c1o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + + // press_SEB * (c3o64 - c3o16 * mxoff + c1o16 * myoff + c3o16 * mzoff) + + // press_SWB * (c9o64 + c3o16 * mxoff + c3o16 * myoff + c9o16 * mzoff); + //drho = drho_SWT * (c27o64 + c9o16 * xoff + c9o16 * yoff - c9o16 * zoff) + + // drho_NWT * (c9o64 + c3o16 * xoff - c9o16 * yoff - c3o16 * zoff) + + // drho_SET * (c9o64 - c9o16 * xoff + c3o16 * yoff - c3o16 * zoff) + + // drho_NET * (c3o64 - c3o16 * xoff - c3o16 * yoff - c1o16 * zoff) + + // drho_NEB * (c1o64 - c1o16 * xoff - c1o16 * yoff + c1o16 * zoff) + + // drho_NWB * (c3o64 + c1o16 * xoff - c3o16 * yoff + c3o16 * zoff) + + // drho_SEB * (c3o64 - c3o16 * xoff + c1o16 * yoff + c3o16 * zoff) + + // drho_SWB * (c9o64 + c3o16 * xoff + c3o16 * yoff + c9o16 * zoff); + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; + vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); + vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); + vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); + //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); + //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); + //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1; + //oMdrho = one - mfaaa; + + //2.f + // linear combinations + mxxPyyPzz = mfaaa - c2o3*(ax + by + c2o1*axx*x + bxy*x + axy*y + c2o1*byy*y + axz*z + byz*z + bxyz*x*z + axyz*y*z + cz - cxz*x + cyz*y + cxyz*x*y + c2o1*czz*z)*eps_new / oP* (c1o1 + press); + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); + //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mfbbb = c0; + + //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); + //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); + //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); + //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyPyzz = c0; + + //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); + //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); + //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyMyzz = c0; + + //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); + //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); + //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzPyyz = c0; + + //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); + //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); + //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzMyyz = c0; + + //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); + //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; + //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); + //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyPxzz = c0; + + //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); + //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); + //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyMxzz = c0; + + //////////////////////////////////////////////////////////////////////////////////// + // D3Q27F + mgcbb = (ax - axx) * eps_new; + mgabb = (ax + axx) * eps_new; + mgbcb = (by - byy) * eps_new; + mgbab = (by + byy) * eps_new; + mgbbc = (cz - czz) * eps_new; + mgbba = (cz + czz) * eps_new; + //////////////////////////////////////////////////////////////////////////////////// + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + //index + k000 = k00M; + kM00 = kM0M; + k0M0 = k0MM; + k00M = neighborFZ[k00M]; + kMM0 = kMMM; + kM0M = neighborFZ[kM0M]; + k0MM = neighborFZ[k0MM]; + kMMM = neighborFZ[kMMM]; + //////////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + (G.g[dP00])[k000] = mgcbb; + (G.g[dM00])[kM00] = mgabb; + (G.g[d0P0])[k000] = mgbcb; + (G.g[d0M0])[k0M0] = mgbab; + (G.g[d00P])[k000] = mgbbc; + (G.g[d00M])[k00M] = mgbba; + //////////////////////////////////////////////////////////////////////////////////// + fP00dest[k000] = mfcbb; + fM00dest[kM00] = mfabb; + f0P0dest[k000] = mfbcb; + f0M0dest[k0M0] = mfbab; + f00Pdest[k000] = mfbbc; + f00Mdest[k00M] = mfbba; + fPP0dest[k000] = mfccb; + fMM0dest[kMM0] = mfaab; + fPM0dest[k0M0] = mfcab; + fMP0dest[kM00] = mfacb; + fP0Pdest[k000] = mfcbc; + fM0Mdest[kM0M] = mfaba; + fP0Mdest[k00M] = mfcba; + fM0Pdest[kM00] = mfabc; + f0PPdest[k000] = mfbcc; + f0MMdest[k0MM] = mfbaa; + f0PMdest[k00M] = mfbca; + f0MPdest[k0M0] = mfbac; + f000dest[k000] = mfbbb; + fMMMdest[kMMM] = mfaaa; + fMMPdest[kMM0] = mfaac; + fMPPdest[kM00] = mfacc; + fMPMdest[kM0M] = mfaca; + fPPMdest[k00M] = mfcca; + fPPPdest[k000] = mfccc; + fPMPdest[k0M0] = mfcac; + fPMMdest[k0MM] = mfcaa; + //////////////////////////////////////////////////////////////////////////////////// + + + //reset + mfcbb = c0; + mfabb = c0; + mfbcb = c0; + mfbab = c0; + mfbbc = c0; + mfbba = c0; + mfccb = c0; + mfaab = c0; + mfcab = c0; + mfacb = c0; + mfcbc = c0; + mfaba = c0; + mfcba = c0; + mfabc = c0; + mfbcc = c0; + mfbaa = c0; + mfbca = c0; + mfbac = c0; + mfbbb = c0; + mfccc = c0; + mfaac = c0; + mfcac = c0; + mfacc = c0; + mfcca = c0; + mfaaa = c0; + mfcaa = c0; + mfaca = c0; + ///////////// + mgcbb = c0; + mgabb = c0; + mgbcb = c0; + mgbab = c0; + mgbbc = c0; + mgbba = c0; + + + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position SET 0.25f, -0.25f, 0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = c1o4; + y = -c1o4; + z = c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho =c3o64*drho_NEB+c9o64*drho_NET+c1o64*drho_NWB+c3o64*drho_NWT+c9o64*drho_SEB+c27o64*drho_SET+c3o64*drho_SWB+c9o64*drho_SWT; + //press = press_SET * (c27o64 - c9o16 * mxoff + c9o16 * myoff - c9o16 * mzoff) + + // press_NET * (c9o64 - c3o16 * mxoff - c9o16 * myoff - c3o16 * mzoff) + + // press_SWT * (c9o64 + c9o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + + // press_NWT * (c3o64 + c3o16 * mxoff - c3o16 * myoff - c1o16 * mzoff) + + // press_NWB * (c1o64 + c1o16 * mxoff - c1o16 * myoff + c1o16 * mzoff) + + // press_NEB * (c3o64 - c1o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + + // press_SWB * (c3o64 + c3o16 * mxoff + c1o16 * myoff + c3o16 * mzoff) + + // press_SEB * (c9o64 - c3o16 * mxoff + c3o16 * myoff + c9o16 * mzoff); + //drho = drho_SET * (c27o64 - c9o16 * xoff + c9o16 * yoff - c9o16 * zoff) + + // drho_NET * (c9o64 - c3o16 * xoff - c9o16 * yoff - c3o16 * zoff) + + // drho_SWT * (c9o64 + c9o16 * xoff + c3o16 * yoff - c3o16 * zoff) + + // drho_NWT * (c3o64 + c3o16 * xoff - c3o16 * yoff - c1o16 * zoff) + + // drho_NWB * (c1o64 + c1o16 * xoff - c1o16 * yoff + c1o16 * zoff) + + // drho_NEB * (c3o64 - c1o16 * xoff - c3o16 * yoff + c3o16 * zoff) + + // drho_SWB * (c3o64 + c3o16 * xoff + c1o16 * yoff + c3o16 * zoff) + + // drho_SEB * (c9o64 - c3o16 * xoff + c3o16 * yoff + c9o16 * zoff); + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; + vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); + vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); + vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); + //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); + //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); + //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1; + //oMdrho = one - mfaaa; + + //2.f + // linear combinations + mxxPyyPzz = mfaaa - c2o3*(ax + by + c2o1*axx*x + bxy*x + axy*y + c2o1*byy*y + axz*z + byz*z + bxyz*x*z + axyz*y*z + cz - cxz*x + cyz*y + cxyz*x*y + c2o1*czz*z)*eps_new / oP* (c1o1 + press); + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); + //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mfbbb = c0; + + //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); + //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); + //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); + //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyPyzz = c0; + + //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); + //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); + //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyMyzz = c0; + + //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); + //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); + //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzPyyz = c0; + + //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); + //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); + //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzMyyz = c0; + + //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); + //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; + //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); + //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyPxzz = c0; + + //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); + //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); + //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyMxzz = c0; + + //////////////////////////////////////////////////////////////////////////////////// + // D3Q27F + mgcbb = (ax - axx) * eps_new; + mgabb = (ax + axx) * eps_new; + mgbcb = (by - byy) * eps_new; + mgbab = (by + byy) * eps_new; + mgbbc = (cz - czz) * eps_new; + mgbba = (cz + czz) * eps_new; + //////////////////////////////////////////////////////////////////////////////////// + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////// + //index + k000 = kM00; + kM00 = neighborFX[kM00]; + k0M0 = kMM0; + k00M = kM0M; + kMM0 = neighborFX[kMM0]; + kM0M = neighborFX[kM0M]; + k0MM = kMMM; + kMMM = neighborFX[kMMM]; + //////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + (G.g[dP00])[k000] = mgcbb; + (G.g[dM00])[kM00] = mgabb; + (G.g[d0P0])[k000] = mgbcb; + (G.g[d0M0])[k0M0] = mgbab; + (G.g[d00P])[k000] = mgbbc; + (G.g[d00M])[k00M] = mgbba; + //////////////////////////////////////////////////////////////////////////////////// + fP00dest[k000] = mfcbb; + fM00dest[kM00] = mfabb; + f0P0dest[k000] = mfbcb; + f0M0dest[k0M0] = mfbab; + f00Pdest[k000] = mfbbc; + f00Mdest[k00M] = mfbba; + fPP0dest[k000] = mfccb; + fMM0dest[kMM0] = mfaab; + fPM0dest[k0M0] = mfcab; + fMP0dest[kM00] = mfacb; + fP0Pdest[k000] = mfcbc; + fM0Mdest[kM0M] = mfaba; + fP0Mdest[k00M] = mfcba; + fM0Pdest[kM00] = mfabc; + f0PPdest[k000] = mfbcc; + f0MMdest[k0MM] = mfbaa; + f0PMdest[k00M] = mfbca; + f0MPdest[k0M0] = mfbac; + f000dest[k000] = mfbbb; + fMMMdest[kMMM] = mfaaa; + fMMPdest[kMM0] = mfaac; + fMPPdest[kM00] = mfacc; + fMPMdest[kM0M] = mfaca; + fPPMdest[k00M] = mfcca; + fPPPdest[k000] = mfccc; + fPMPdest[k0M0] = mfcac; + fPMMdest[k0MM] = mfcaa; + //////////////////////////////////////////////////////////////////////////////////// + + //reset + mfcbb = c0; + mfabb = c0; + mfbcb = c0; + mfbab = c0; + mfbbc = c0; + mfbba = c0; + mfccb = c0; + mfaab = c0; + mfcab = c0; + mfacb = c0; + mfcbc = c0; + mfaba = c0; + mfcba = c0; + mfabc = c0; + mfbcc = c0; + mfbaa = c0; + mfbca = c0; + mfbac = c0; + mfbbb = c0; + mfccc = c0; + mfaac = c0; + mfcac = c0; + mfacc = c0; + mfcca = c0; + mfaaa = c0; + mfcaa = c0; + mfaca = c0; + ///////////// + mgcbb = c0; + mgabb = c0; + mgbcb = c0; + mgbab = c0; + mgbbc = c0; + mgbba = c0; + + + + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position SEB 0.25f, -0.25f, -0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = c1o4; + y = -c1o4; + z = -c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho =c9o64*drho_NEB+c3o64*drho_NET+c3o64*drho_NWB+c1o64*drho_NWT+c27o64*drho_SEB+c9o64*drho_SET+c9o64*drho_SWB+c3o64*drho_SWT; + //press = press_SET * (c9o64 - c3o16 * mxoff + c3o16 * myoff - c9o16 * mzoff) + + // press_NET * (c3o64 - c1o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + + // press_SWT * (c3o64 + c3o16 * mxoff + c1o16 * myoff - c3o16 * mzoff) + + // press_NWT * (c1o64 + c1o16 * mxoff - c1o16 * myoff - c1o16 * mzoff) + + // press_NWB * (c3o64 + c3o16 * mxoff - c3o16 * myoff + c1o16 * mzoff) + + // press_NEB * (c9o64 - c3o16 * mxoff - c9o16 * myoff + c3o16 * mzoff) + + // press_SWB * (c9o64 + c9o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + + // press_SEB * (c27o64 - c9o16 * mxoff + c9o16 * myoff + c9o16 * mzoff); + //drho = drho_SET * (c9o64 - c3o16 * xoff + c3o16 * yoff - c9o16 * zoff) + + // drho_NET * (c3o64 - c1o16 * xoff - c3o16 * yoff - c3o16 * zoff) + + // drho_SWT * (c3o64 + c3o16 * xoff + c1o16 * yoff - c3o16 * zoff) + + // drho_NWT * (c1o64 + c1o16 * xoff - c1o16 * yoff - c1o16 * zoff) + + // drho_NWB * (c3o64 + c3o16 * xoff - c3o16 * yoff + c1o16 * zoff) + + // drho_NEB * (c9o64 - c3o16 * xoff - c9o16 * yoff + c3o16 * zoff) + + // drho_SWB * (c9o64 + c9o16 * xoff + c3o16 * yoff + c3o16 * zoff) + + // drho_SEB * (c27o64 - c9o16 * xoff + c9o16 * yoff + c9o16 * zoff); + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; + vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); + vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); + vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); + //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); + //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); + //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1; + //oMdrho = one - mfaaa; + + //2.f + // linear combinations + mxxPyyPzz = mfaaa - c2o3*(ax + by + c2o1*axx*x + bxy*x + axy*y + c2o1*byy*y + axz*z + byz*z + bxyz*x*z + axyz*y*z + cz - cxz*x + cyz*y + cxyz*x*y + c2o1*czz*z)*eps_new / oP* (c1o1 + press); + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); + //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mfbbb = c0; + + //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); + //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); + //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); + //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyPyzz = c0; + + //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); + //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); + //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyMyzz = c0; + + //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); + //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); + //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzPyyz = c0; + + //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); + //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); + //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzMyyz = c0; + + //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); + //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; + //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); + //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyPxzz = c0; + + //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); + //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); + //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyMxzz = c0; + + //////////////////////////////////////////////////////////////////////////////////// + // D3Q27F + mgcbb = (ax - axx) * eps_new; + mgabb = (ax + axx) * eps_new; + mgbcb = (by - byy) * eps_new; + mgbab = (by + byy) * eps_new; + mgbbc = (cz - czz) * eps_new; + mgbba = (cz + czz) * eps_new; + //////////////////////////////////////////////////////////////////////////////////// + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////// + //index + k00M = k000; + kM0M = kM00; + k0MM = k0M0; + kMMM = kMM0; + k000 = kM00base; + kM00 = neighborFX[kM00base]; + k0M0 = kMM0base; + kMM0 = neighborFX[kMM0base]; + //////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + (G.g[dP00])[k000] = mgcbb; + (G.g[dM00])[kM00] = mgabb; + (G.g[d0P0])[k000] = mgbcb; + (G.g[d0M0])[k0M0] = mgbab; + (G.g[d00P])[k000] = mgbbc; + (G.g[d00M])[k00M] = mgbba; + //////////////////////////////////////////////////////////////////////////////////// + fP00dest[k000] = mfcbb; + fM00dest[kM00] = mfabb; + f0P0dest[k000] = mfbcb; + f0M0dest[k0M0] = mfbab; + f00Pdest[k000] = mfbbc; + f00Mdest[k00M] = mfbba; + fPP0dest[k000] = mfccb; + fMM0dest[kMM0] = mfaab; + fPM0dest[k0M0] = mfcab; + fMP0dest[kM00] = mfacb; + fP0Pdest[k000] = mfcbc; + fM0Mdest[kM0M] = mfaba; + fP0Mdest[k00M] = mfcba; + fM0Pdest[kM00] = mfabc; + f0PPdest[k000] = mfbcc; + f0MMdest[k0MM] = mfbaa; + f0PMdest[k00M] = mfbca; + f0MPdest[k0M0] = mfbac; + f000dest[k000] = mfbbb; + fMMMdest[kMMM] = mfaaa; + fMMPdest[kMM0] = mfaac; + fMPPdest[kM00] = mfacc; + fMPMdest[kM0M] = mfaca; + fPPMdest[k00M] = mfcca; + fPPPdest[k000] = mfccc; + fPMPdest[k0M0] = mfcac; + fPMMdest[k0MM] = mfcaa; + //////////////////////////////////////////////////////////////////////////////////// + + + //reset + mfcbb = c0; + mfabb = c0; + mfbcb = c0; + mfbab = c0; + mfbbc = c0; + mfbba = c0; + mfccb = c0; + mfaab = c0; + mfcab = c0; + mfacb = c0; + mfcbc = c0; + mfaba = c0; + mfcba = c0; + mfabc = c0; + mfbcc = c0; + mfbaa = c0; + mfbca = c0; + mfbac = c0; + mfbbb = c0; + mfccc = c0; + mfaac = c0; + mfcac = c0; + mfacc = c0; + mfcca = c0; + mfaaa = c0; + mfcaa = c0; + mfaca = c0; + ///////////// + mgcbb = c0; + mgabb = c0; + mgbcb = c0; + mgbab = c0; + mgbbc = c0; + mgbba = c0; + + + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position NWB -0.25f, 0.25f, -0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = -c1o4; + y = c1o4; + z = -c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho = c9o64*drho_NEB+c3o64*drho_NET+c27o64*drho_NWB+c9o64*drho_NWT+c3o64*drho_SEB+c1o64*drho_SET+c9o64*drho_SWB+c3o64*drho_SWT; + //press = press_NWT * (c9o64 + c3o16 * mxoff - c3o16 * myoff - c9o16 * mzoff) + + // press_NET * (c3o64 - c3o16 * mxoff - c1o16 * myoff - c3o16 * mzoff) + + // press_SWT * (c3o64 + c1o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + + // press_SET * (c1o64 - c1o16 * mxoff + c1o16 * myoff - c1o16 * mzoff) + + // press_SEB * (c3o64 - c3o16 * mxoff + c3o16 * myoff + c1o16 * mzoff) + + // press_NEB * (c9o64 - c9o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + + // press_SWB * (c9o64 + c3o16 * mxoff + c9o16 * myoff + c3o16 * mzoff) + + // press_NWB * (c27o64 + c9o16 * mxoff - c9o16 * myoff + c9o16 * mzoff); + //drho = drho_NWT * (c9o64 + c3o16 * xoff - c3o16 * yoff - c9o16 * zoff) + + // drho_NET * (c3o64 - c3o16 * xoff - c1o16 * yoff - c3o16 * zoff) + + // drho_SWT * (c3o64 + c1o16 * xoff + c3o16 * yoff - c3o16 * zoff) + + // drho_SET * (c1o64 - c1o16 * xoff + c1o16 * yoff - c1o16 * zoff) + + // drho_SEB * (c3o64 - c3o16 * xoff + c3o16 * yoff + c1o16 * zoff) + + // drho_NEB * (c9o64 - c9o16 * xoff - c3o16 * yoff + c3o16 * zoff) + + // drho_SWB * (c9o64 + c3o16 * xoff + c9o16 * yoff + c3o16 * zoff) + + // drho_NWB * (c27o64 + c9o16 * xoff - c9o16 * yoff + c9o16 * zoff); + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; + vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); + vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); + vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); + //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); + //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); + //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1; + //oMdrho = one - mfaaa; + + //2.f + // linear combinations + mxxPyyPzz = mfaaa - c2o3*(ax + by + c2o1*axx*x + bxy*x + axy*y + c2o1*byy*y + axz*z + byz*z + bxyz*x*z + axyz*y*z + cz - cxz*x + cyz*y + cxyz*x*y + c2o1*czz*z)*eps_new / oP* (c1o1 + press); + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); + //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mfbbb = c0; + + //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); + //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); + //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); + //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyPyzz = c0; + + //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); + //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); + //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyMyzz = c0; + + //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); + //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); + //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzPyyz = c0; + + //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); + //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); + //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzMyyz = c0; + + //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); + //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; + //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); + //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyPxzz = c0; + + //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); + //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); + //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyMxzz = c0; + + //////////////////////////////////////////////////////////////////////////////////// + // D3Q27F + mgcbb = (ax - axx) * eps_new; + mgabb = (ax + axx) * eps_new; + mgbcb = (by - byy) * eps_new; + mgbab = (by + byy) * eps_new; + mgbbc = (cz - czz) * eps_new; + mgbba = (cz + czz) * eps_new; + //////////////////////////////////////////////////////////////////////////////////// + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////// + //index 0 + k000base = k0M0base; + kM00base = kMM0base; + k0M0base = neighborFY[k0M0base]; + k00Mbase = k0MMbase; + kMM0base = neighborFY[kMM0base]; + kM0Mbase = kMMMbase; + k0MMbase = neighborFY[k0MMbase]; + kMMMbase = neighborFY[kMMMbase]; + ////////////////////////////////////////////////////////////////////////// + //index + k000 = k000base; + kM00 = kM00base; + k0M0 = k0M0base; + k00M = k00Mbase; + kMM0 = kMM0base; + kM0M = kM0Mbase; + k0MM = k0MMbase; + kMMM = kMMMbase; + //////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + (G.g[dP00])[k000] = mgcbb; + (G.g[dM00])[kM00] = mgabb; + (G.g[d0P0])[k000] = mgbcb; + (G.g[d0M0])[k0M0] = mgbab; + (G.g[d00P])[k000] = mgbbc; + (G.g[d00M])[k00M] = mgbba; + //////////////////////////////////////////////////////////////////////////////////// + fP00dest[k000] = mfcbb; + fM00dest[kM00] = mfabb; + f0P0dest[k000] = mfbcb; + f0M0dest[k0M0] = mfbab; + f00Pdest[k000] = mfbbc; + f00Mdest[k00M] = mfbba; + fPP0dest[k000] = mfccb; + fMM0dest[kMM0] = mfaab; + fPM0dest[k0M0] = mfcab; + fMP0dest[kM00] = mfacb; + fP0Pdest[k000] = mfcbc; + fM0Mdest[kM0M] = mfaba; + fP0Mdest[k00M] = mfcba; + fM0Pdest[kM00] = mfabc; + f0PPdest[k000] = mfbcc; + f0MMdest[k0MM] = mfbaa; + f0PMdest[k00M] = mfbca; + f0MPdest[k0M0] = mfbac; + f000dest[k000] = mfbbb; + fMMMdest[kMMM] = mfaaa; + fMMPdest[kMM0] = mfaac; + fMPPdest[kM00] = mfacc; + fMPMdest[kM0M] = mfaca; + fPPMdest[k00M] = mfcca; + fPPPdest[k000] = mfccc; + fPMPdest[k0M0] = mfcac; + fPMMdest[k0MM] = mfcaa; + //////////////////////////////////////////////////////////////////////////////////// + + + //reset + mfcbb = c0; + mfabb = c0; + mfbcb = c0; + mfbab = c0; + mfbbc = c0; + mfbba = c0; + mfccb = c0; + mfaab = c0; + mfcab = c0; + mfacb = c0; + mfcbc = c0; + mfaba = c0; + mfcba = c0; + mfabc = c0; + mfbcc = c0; + mfbaa = c0; + mfbca = c0; + mfbac = c0; + mfbbb = c0; + mfccc = c0; + mfaac = c0; + mfcac = c0; + mfacc = c0; + mfcca = c0; + mfaaa = c0; + mfcaa = c0; + mfaca = c0; + ///////////// + mgcbb = c0; + mgabb = c0; + mgbcb = c0; + mgbab = c0; + mgbbc = c0; + mgbba = c0; + + + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position NWT -0.25f, 0.25f, 0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = -c1o4; + y = c1o4; + z = c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho = c3o64*drho_NEB+c9o64*drho_NET+c9o64*drho_NWB+c27o64*drho_NWT+c1o64*drho_SEB+c3o64*drho_SET+c3o64*drho_SWB+c9o64*drho_SWT; + //press = press_NWT * (c27o64 + c9o16 * mxoff - c9o16 * myoff - c9o16 * mzoff) + + // press_NET * (c9o64 - c9o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + + // press_SWT * (c9o64 + c3o16 * mxoff + c9o16 * myoff - c3o16 * mzoff) + + // press_SET * (c3o64 - c3o16 * mxoff + c3o16 * myoff - c1o16 * mzoff) + + // press_SEB * (c1o64 - c1o16 * mxoff + c1o16 * myoff + c1o16 * mzoff) + + // press_NEB * (c3o64 - c3o16 * mxoff - c1o16 * myoff + c3o16 * mzoff) + + // press_SWB * (c3o64 + c1o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + + // press_NWB * (c9o64 + c3o16 * mxoff - c3o16 * myoff + c9o16 * mzoff); + //drho = drho_NWT * (c27o64 + c9o16 * xoff - c9o16 * yoff - c9o16 * zoff) + + // drho_NET * (c9o64 - c9o16 * xoff - c3o16 * yoff - c3o16 * zoff) + + // drho_SWT * (c9o64 + c3o16 * xoff + c9o16 * yoff - c3o16 * zoff) + + // drho_SET * (c3o64 - c3o16 * xoff + c3o16 * yoff - c1o16 * zoff) + + // drho_SEB * (c1o64 - c1o16 * xoff + c1o16 * yoff + c1o16 * zoff) + + // drho_NEB * (c3o64 - c3o16 * xoff - c1o16 * yoff + c3o16 * zoff) + + // drho_SWB * (c3o64 + c1o16 * xoff + c3o16 * yoff + c3o16 * zoff) + + // drho_NWB * (c9o64 + c3o16 * xoff - c3o16 * yoff + c9o16 * zoff); + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; + vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); + vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); + vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); + //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); + //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); + //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1; + //oMdrho = one - mfaaa; + + //2.f + // linear combinations + mxxPyyPzz = mfaaa - c2o3*(ax + by + c2o1*axx*x + bxy*x + axy*y + c2o1*byy*y + axz*z + byz*z + bxyz*x*z + axyz*y*z + cz - cxz*x + cyz*y + cxyz*x*y + c2o1*czz*z)*eps_new / oP* (c1o1 + press); + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); + //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mfbbb = c0; + + //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); + //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); + //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); + //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyPyzz = c0; + + //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); + //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); + //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyMyzz = c0; + + //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); + //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); + //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzPyyz = c0; + + //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); + //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); + //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzMyyz = c0; + + //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); + //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; + //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); + //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyPxzz = c0; + + //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); + //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); + //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyMxzz = c0; + + //////////////////////////////////////////////////////////////////////////////////// + // D3Q27F + mgcbb = (ax - axx) * eps_new; + mgabb = (ax + axx) * eps_new; + mgbcb = (by - byy) * eps_new; + mgbab = (by + byy) * eps_new; + mgbbc = (cz - czz) * eps_new; + mgbba = (cz + czz) * eps_new; + //////////////////////////////////////////////////////////////////////////////////// + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////// + //index + k000 = k00M; + kM00 = kM0M; + k0M0 = k0MM; + k00M = neighborFZ[k00M]; + kMM0 = kMMM; + kM0M = neighborFZ[kM0M]; + k0MM = neighborFZ[k0MM]; + kMMM = neighborFZ[kMMM]; + //////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + (G.g[dP00])[k000] = mgcbb; + (G.g[dM00])[kM00] = mgabb; + (G.g[d0P0])[k000] = mgbcb; + (G.g[d0M0])[k0M0] = mgbab; + (G.g[d00P])[k000] = mgbbc; + (G.g[d00M])[k00M] = mgbba; + //////////////////////////////////////////////////////////////////////////////////// + fP00dest[k000] = mfcbb; + fM00dest[kM00] = mfabb; + f0P0dest[k000] = mfbcb; + f0M0dest[k0M0] = mfbab; + f00Pdest[k000] = mfbbc; + f00Mdest[k00M] = mfbba; + fPP0dest[k000] = mfccb; + fMM0dest[kMM0] = mfaab; + fPM0dest[k0M0] = mfcab; + fMP0dest[kM00] = mfacb; + fP0Pdest[k000] = mfcbc; + fM0Mdest[kM0M] = mfaba; + fP0Mdest[k00M] = mfcba; + fM0Pdest[kM00] = mfabc; + f0PPdest[k000] = mfbcc; + f0MMdest[k0MM] = mfbaa; + f0PMdest[k00M] = mfbca; + f0MPdest[k0M0] = mfbac; + f000dest[k000] = mfbbb; + fMMMdest[kMMM] = mfaaa; + fMMPdest[kMM0] = mfaac; + fMPPdest[kM00] = mfacc; + fMPMdest[kM0M] = mfaca; + fPPMdest[k00M] = mfcca; + fPPPdest[k000] = mfccc; + fPMPdest[k0M0] = mfcac; + fPMMdest[k0MM] = mfcaa; + //////////////////////////////////////////////////////////////////////////////////// + + + //reset + mfcbb = c0; + mfabb = c0; + mfbcb = c0; + mfbab = c0; + mfbbc = c0; + mfbba = c0; + mfccb = c0; + mfaab = c0; + mfcab = c0; + mfacb = c0; + mfcbc = c0; + mfaba = c0; + mfcba = c0; + mfabc = c0; + mfbcc = c0; + mfbaa = c0; + mfbca = c0; + mfbac = c0; + mfbbb = c0; + mfccc = c0; + mfaac = c0; + mfcac = c0; + mfacc = c0; + mfcca = c0; + mfaaa = c0; + mfcaa = c0; + mfaca = c0; + ///////////// + mgcbb = c0; + mgabb = c0; + mgbcb = c0; + mgbab = c0; + mgbbc = c0; + mgbba = c0; + + + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position NET 0.25f, 0.25f, 0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = c1o4; + y = c1o4; + z = c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho = c9o64*drho_NEB+c27o64*drho_NET+c3o64*drho_NWB+c9o64*drho_NWT+c3o64*drho_SEB+c9o64*drho_SET+c1o64*drho_SWB+c3o64*drho_SWT; + //press = press_NET * (c27o64 - c9o16 * mxoff - c9o16 * myoff - c9o16 * mzoff) + + // press_NWT * (c9o64 + c9o16 * mxoff - c3o16 * myoff - c3o16 * mzoff) + + // press_SET * (c9o64 - c3o16 * mxoff + c9o16 * myoff - c3o16 * mzoff) + + // press_SWT * (c3o64 + c3o16 * mxoff + c3o16 * myoff - c1o16 * mzoff) + + // press_SWB * (c1o64 + c1o16 * mxoff + c1o16 * myoff + c1o16 * mzoff) + + // press_NWB * (c3o64 + c3o16 * mxoff - c1o16 * myoff + c3o16 * mzoff) + + // press_SEB * (c3o64 - c1o16 * mxoff + c3o16 * myoff + c3o16 * mzoff) + + // press_NEB * (c9o64 - c3o16 * mxoff - c3o16 * myoff + c9o16 * mzoff); + //drho = drho_NET * (c27o64 - c9o16 * xoff - c9o16 * yoff - c9o16 * zoff) + + // drho_NWT * (c9o64 + c9o16 * xoff - c3o16 * yoff - c3o16 * zoff) + + // drho_SET * (c9o64 - c3o16 * xoff + c9o16 * yoff - c3o16 * zoff) + + // drho_SWT * (c3o64 + c3o16 * xoff + c3o16 * yoff - c1o16 * zoff) + + // drho_SWB * (c1o64 + c1o16 * xoff + c1o16 * yoff + c1o16 * zoff) + + // drho_NWB * (c3o64 + c3o16 * xoff - c1o16 * yoff + c3o16 * zoff) + + // drho_SEB * (c3o64 - c1o16 * xoff + c3o16 * yoff + c3o16 * zoff) + + // drho_NEB * (c9o64 - c3o16 * xoff - c3o16 * yoff + c9o16 * zoff); + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; + vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); + vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); + vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); + //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); + //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); + //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1; + //oMdrho = one - mfaaa; + + //2.f + // linear combinations + mxxPyyPzz = mfaaa - c2o3*(ax + by + c2o1*axx*x + bxy*x + axy*y + c2o1*byy*y + axz*z + byz*z + bxyz*x*z + axyz*y*z + cz - cxz*x + cyz*y + cxyz*x*y + c2o1*czz*z)*eps_new / oP* (c1o1 + press); + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); + //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mfbbb = c0; + + //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); + //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); + //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); + //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyPyzz = c0; + + //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); + //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); + //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyMyzz = c0; + + //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); + //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); + //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzPyyz = c0; + + //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); + //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); + //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzMyyz = c0; + + //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); + //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; + //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); + //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyPxzz = c0; + + //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); + //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); + //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyMxzz = c0; + + //////////////////////////////////////////////////////////////////////////////////// + // D3Q27F + mgcbb = (ax - axx) * eps_new; + mgabb = (ax + axx) * eps_new; + mgbcb = (by - byy) * eps_new; + mgbab = (by + byy) * eps_new; + mgbbc = (cz - czz) * eps_new; + mgbba = (cz + czz) * eps_new; + //////////////////////////////////////////////////////////////////////////////////// + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////// + //index + k000 = kM00; + kM00 = neighborFX[kM00]; + k0M0 = kMM0; + k00M = kM0M; + kMM0 = neighborFX[kMM0]; + kM0M = neighborFX[kM0M]; + k0MM = kMMM; + kMMM = neighborFX[kMMM]; + //////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + (G.g[dP00])[k000] = mgcbb; + (G.g[dM00])[kM00] = mgabb; + (G.g[d0P0])[k000] = mgbcb; + (G.g[d0M0])[k0M0] = mgbab; + (G.g[d00P])[k000] = mgbbc; + (G.g[d00M])[k00M] = mgbba; + //////////////////////////////////////////////////////////////////////////////////// + fP00dest[k000] = mfcbb; + fM00dest[kM00] = mfabb; + f0P0dest[k000] = mfbcb; + f0M0dest[k0M0] = mfbab; + f00Pdest[k000] = mfbbc; + f00Mdest[k00M] = mfbba; + fPP0dest[k000] = mfccb; + fMM0dest[kMM0] = mfaab; + fPM0dest[k0M0] = mfcab; + fMP0dest[kM00] = mfacb; + fP0Pdest[k000] = mfcbc; + fM0Mdest[kM0M] = mfaba; + fP0Mdest[k00M] = mfcba; + fM0Pdest[kM00] = mfabc; + f0PPdest[k000] = mfbcc; + f0MMdest[k0MM] = mfbaa; + f0PMdest[k00M] = mfbca; + f0MPdest[k0M0] = mfbac; + f000dest[k000] = mfbbb; + fMMMdest[kMMM] = mfaaa; + fMMPdest[kMM0] = mfaac; + fMPPdest[kM00] = mfacc; + fMPMdest[kM0M] = mfaca; + fPPMdest[k00M] = mfcca; + fPPPdest[k000] = mfccc; + fPMPdest[k0M0] = mfcac; + fPMMdest[k0MM] = mfcaa; + //////////////////////////////////////////////////////////////////////////////////// + + + //reset + mfcbb = c0; + mfabb = c0; + mfbcb = c0; + mfbab = c0; + mfbbc = c0; + mfbba = c0; + mfccb = c0; + mfaab = c0; + mfcab = c0; + mfacb = c0; + mfcbc = c0; + mfaba = c0; + mfcba = c0; + mfabc = c0; + mfbcc = c0; + mfbaa = c0; + mfbca = c0; + mfbac = c0; + mfbbb = c0; + mfccc = c0; + mfaac = c0; + mfcac = c0; + mfacc = c0; + mfcca = c0; + mfaaa = c0; + mfcaa = c0; + mfaca = c0; + ///////////// + mgcbb = c0; + mgabb = c0; + mgbcb = c0; + mgbab = c0; + mgbbc = c0; + mgbba = c0; + + + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position NEB 0.25f, 0.25f, -0.25f + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = c1o4; + y = c1o4; + z = -c1o4; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho = c27o64*drho_NEB+c9o64*drho_NET+c9o64*drho_NWB+c3o64*drho_NWT+c9o64*drho_SEB+c3o64*drho_SET+c3o64*drho_SWB+c1o64*drho_SWT; + //press = press_NET * (c9o64 - c3o16 * mxoff - c3o16 * myoff - c9o16 * mzoff) + + // press_NWT * (c3o64 + c3o16 * mxoff - c1o16 * myoff - c3o16 * mzoff) + + // press_SET * (c3o64 - c1o16 * mxoff + c3o16 * myoff - c3o16 * mzoff) + + // press_SWT * (c1o64 + c1o16 * mxoff + c1o16 * myoff - c1o16 * mzoff) + + // press_SWB * (c3o64 + c3o16 * mxoff + c3o16 * myoff + c1o16 * mzoff) + + // press_NWB * (c9o64 + c9o16 * mxoff - c3o16 * myoff + c3o16 * mzoff) + + // press_SEB * (c9o64 - c3o16 * mxoff + c9o16 * myoff + c3o16 * mzoff) + + // press_NEB * (c27o64 - c9o16 * mxoff - c9o16 * myoff + c9o16 * mzoff); + //drho = drho_NET * (c9o64 - c3o16 * xoff - c3o16 * yoff - c9o16 * zoff) + + // drho_NWT * (c3o64 + c3o16 * xoff - c1o16 * yoff - c3o16 * zoff) + + // drho_SET * (c3o64 - c1o16 * xoff + c3o16 * yoff - c3o16 * zoff) + + // drho_SWT * (c1o64 + c1o16 * xoff + c1o16 * yoff - c1o16 * zoff) + + // drho_SWB * (c3o64 + c3o16 * xoff + c3o16 * yoff + c1o16 * zoff) + + // drho_NWB * (c9o64 + c9o16 * xoff - c3o16 * yoff + c3o16 * zoff) + + // drho_SEB * (c9o64 - c3o16 * xoff + c9o16 * yoff + c3o16 * zoff) + + // drho_NEB * (c27o64 - c9o16 * xoff - c9o16 * yoff + c9o16 * zoff); + press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; + vvx = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); + vvy = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); + vvz = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); + //vvx = a0 + c1o4*(-ax - ay - az) + c1o16*(axx + axy + axz + ayy + ayz + azz) + c1o64*(-axyz); + //vvy = b0 + c1o4*(-bx - by - bz) + c1o16*(bxx + bxy + bxz + byy + byz + bzz) + c1o64*(-bxyz); + //vvz = c0 + c1o4*(-cx - cy - cz) + c1o16*(cxx + cxy + cxz + cyy + cyz + czz) + c1o64*(-cxyz); + + //mfaaa = drho; + //mfaaa = press + (two*axx*x+axy*y+axz*z+axyz*y*z+ax + two*byy*y+bxy*x+byz*z+bxyz*x*z+by + two*czz*z+cxz*x+cyz*y+cxyz*x*y+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1; + //oMdrho = one - mfaaa; + + //2.f + // linear combinations + mxxPyyPzz = mfaaa - c2o3*(ax + by + c2o1*axx*x + bxy*x + axy*y + c2o1*byy*y + axz*z + byz*z + bxyz*x*z + axyz*y*z + cz - cxz*x + cyz*y + cxyz*x*y + c2o1*czz*z)*eps_new / oP* (c1o1 + press); + //mxxMyy = -c2o3*(ax - by + two*axx*x - bxy*x + axy*y - two*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz + two*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - two*czz*z + axyz*y*z)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy + bxz*x + cxy*x + byz*y + two*cyy*y + bxyz*x*y + two*bzz*z + cyz*z + cxyz*x*z)*eps_new/o; + //mfbab = -c1o3 * (az + cx + axz*x + two*cxx*x + ayz*y + cxy*y + axyz*x*y + two*azz*z + cxz*z + cxyz*y*z)*eps_new/o; + //mfbba = -c1o3 * (ay + bx + axy*x + two*bxx*x + two*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o; + + mxxMyy = -c2o3*(ax - by + kxxMyyAverage + c2o1*axx*x - bxy*x + axy*y - c2o1*byy*y + axz*z - byz*z - bxyz*x*z + axyz*y*z)*eps_new/o * (c1o1 + press); + mxxMzz = -c2o3*(ax - cz + kxxMzzAverage + c2o1*axx*x - cxz*x + axy*y - cyz*y - cxyz*x*y + axz*z - c2o1*czz*z + axyz*y*z)*eps_new/o * (c1o1 + press); + + mfabb = -c1o3 * (bz + cy + kyzAverage + bxz*x + cxy*x + byz*y + c2o1*cyy*y + bxyz*x*y + c2o1*bzz*z + cyz*z + cxyz*x*z)*eps_new/o * (c1o1 + press); + mfbab = -c1o3 * (az + cx + kxzAverage + axz*x + c2o1*cxx*x + ayz*y + cxy*y + axyz*x*y + c2o1*azz*z + cxz*z + cxyz*y*z)*eps_new/o * (c1o1 + press); + mfbba = -c1o3 * (ay + bx + kxyAverage + axy*x + c2o1*bxx*x + c2o1*ayy*y + bxy*y + ayz*z + bxz*z + axyz*x*z + bxyz*y*z)*eps_new/o * (c1o1 + press); + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //three + // linear combinations + //residu = residutmp * (ayz + bxz + cxy + axyz*x + bxyz*y + cxyz*z); + //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mfbbb = c0; + + //residu = residutmp * (axy + two*bxx + two*bzz + cyz + cxyz*x + axyz*z); + //OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); + //residu = -(one/o-c1o2)*c2o9*(bxx + bzz + (axy+axyz*z+cyz+cxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz + cxyz*x + axyz*z)); + //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyPyzz = c0; + + //residu = residutmp * (axy + two*bxx - two*bzz - cyz - cxyz*x + axyz*z); + //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz - cxyz*x + axyz*z); + //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyMyzz = c0; + + //residu = residutmp * (axz + byz + two*cxx + two*cyy + bxyz*x + axyz*y); + //residu = -(one/o-c1o2)*c2o9*(cxx + cyy + (axz+axyz*y+byz+bxyz*x)*two )*eps_new*eps_new; + //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy + bxyz*x + axyz*y)); + //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzPyyz = c0; + + //residu = residutmp * (axz - byz + two*cxx - two*cyy - bxyz*x + axyz*y); + //residu = c1o9*(axz - byz - 2*cxx + 2*cyy - bxyz*x + axyz*y); + //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzMyyz = c0; + + //residu = residutmp * (two*ayy + two*azz + bxy + cxz + cxyz*y + bxyz*z); + //residu = -(one/o-c1o2)*c2o9*(ayy + azz + (bxy+bxyz*z+cxz+cxyz*y)*two )*eps_new*eps_new; + //residu = c1o9*(2*ayy + 2*azz - bxy - cxz - cxyz*y - bxyz*z); + //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyPxzz = c0; + + //residu = residutmp * (two*ayy - two*azz + bxy - cxz - cxyz*y + bxyz*z); + //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz - cxyz*y + bxyz*z); + //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyMxzz = c0; + + //////////////////////////////////////////////////////////////////////////////////// + // D3Q27F + mgcbb = (ax - axx) * eps_new; + mgabb = (ax + axx) * eps_new; + mgbcb = (by - byy) * eps_new; + mgbab = (by + byy) * eps_new; + mgbbc = (cz - czz) * eps_new; + mgbba = (cz + czz) * eps_new; + //////////////////////////////////////////////////////////////////////////////////// + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4.f + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////// + //index + k00M = k000; + kM0M = kM00; + k0MM = k0M0; + kMMM = kMM0; + k000 = kM00base; + kM00 = neighborFX[kM00base]; + k0M0 = kMM0base; + kMM0 = neighborFX[kMM0base]; + //////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + (G.g[dP00])[k000] = mgcbb; + (G.g[dM00])[kM00] = mgabb; + (G.g[d0P0])[k000] = mgbcb; + (G.g[d0M0])[k0M0] = mgbab; + (G.g[d00P])[k000] = mgbbc; + (G.g[d00M])[k00M] = mgbba; + //////////////////////////////////////////////////////////////////////////////////// + fP00dest[k000] = mfcbb; + fM00dest[kM00] = mfabb; + f0P0dest[k000] = mfbcb; + f0M0dest[k0M0] = mfbab; + f00Pdest[k000] = mfbbc; + f00Mdest[k00M] = mfbba; + fPP0dest[k000] = mfccb; + fMM0dest[kMM0] = mfaab; + fPM0dest[k0M0] = mfcab; + fMP0dest[kM00] = mfacb; + fP0Pdest[k000] = mfcbc; + fM0Mdest[kM0M] = mfaba; + fP0Mdest[k00M] = mfcba; + fM0Pdest[kM00] = mfabc; + f0PPdest[k000] = mfbcc; + f0MMdest[k0MM] = mfbaa; + f0PMdest[k00M] = mfbca; + f0MPdest[k0M0] = mfbac; + f000dest[k000] = mfbbb; + fMMMdest[kMMM] = mfaaa; + fMMPdest[kMM0] = mfaac; + fMPPdest[kM00] = mfacc; + fMPMdest[kM0M] = mfaca; + fPPMdest[k00M] = mfcca; + fPPPdest[k000] = mfccc; + fPMPdest[k0M0] = mfcac; + fPMMdest[k0MM] = mfcaa; + //////////////////////////////////////////////////////////////////////////////////// } } ////////////////////////////////////////////////////////////////////////// diff --git a/src/gpu/core/GPU/GridScaling/ScaleFC27.cu b/src/gpu/core/GPU/GridScaling/ScaleFC27.cu index 803cf0bc4197d4e31b28899254f3d85a830efeff..41ce4a2a679085c3003ca5f38ed901cc8272a100 100644 --- a/src/gpu/core/GPU/GridScaling/ScaleFC27.cu +++ b/src/gpu/core/GPU/GridScaling/ScaleFC27.cu @@ -15,32 +15,32 @@ using namespace vf::lbm::dir; ////////////////////////////////////////////////////////////////////////// __global__ void scaleFC_0817_comp_27( real* DC, - real* DF, - unsigned int* neighborCX, - unsigned int* neighborCY, - unsigned int* neighborCZ, - unsigned int* neighborFX, - unsigned int* neighborFY, - unsigned int* neighborFZ, - unsigned long long numberOfLBnodesCoarse, - unsigned long long numberOfLBnodesFine, - bool isEvenTimestep, - unsigned int* posC, - unsigned int* posFSWB, - unsigned int kFC, - real omCoarse, - real omFine, - real nu, - unsigned int nxC, - unsigned int nyC, - unsigned int nxF, - unsigned int nyF, - ICellNeigh offFC) + real* DF, + unsigned int* neighborCX, + unsigned int* neighborCY, + unsigned int* neighborCZ, + unsigned int* neighborFX, + unsigned int* neighborFY, + unsigned int* neighborFZ, + unsigned long long numberOfLBnodesCoarse, + unsigned long long numberOfLBnodesFine, + bool isEvenTimestep, + unsigned int* posC, + unsigned int* posFSWB, + unsigned int kFC, + real omCoarse, + real omFine, + real nu, + unsigned int nxC, + unsigned int nyC, + unsigned int nxF, + unsigned int nyF, + ICellNeigh offFC) { real - *fP00source, *fM00source, *f0P0source, *f0M0source, *f00Psource, *f00Msource, *fPP0source, *fMM0source, *fPM0source, - *fMP0source, *fP0Psource, *fM0Msource, *fP0Msource, *fM0Psource, *f0PPsource, *f0MMsource, *f0PMsource, *f0MPsource, - *f000source, *fMMMsource, *fMMPsource, *fMPPsource, *fMPMsource, *fPPMsource, *fPPPsource, *fPMPsource, *fPMMsource; + *fP00source, *fM00source, *f0P0source, *f0M0source, *f00Psource, *f00Msource, *fPP0source, *fMM0source, *fPM0source, + *fMP0source, *fP0Psource, *fM0Msource, *fP0Msource, *fM0Psource, *f0PPsource, *f0MMsource, *f0PMsource, *f0MPsource, + *f000source, *fMMMsource, *fMMPsource, *fMPPsource, *fMPMsource, *fPPMsource, *fPPPsource, *fPMPsource, *fPMMsource; fP00source = &DF[dP00 * numberOfLBnodesFine]; @@ -72,69 +72,69 @@ __global__ void scaleFC_0817_comp_27( real* DC, fPMMsource = &DF[dPMM * numberOfLBnodesFine]; real - *fP00dest, *fM00dest, *f0P0dest, *f0M0dest, *f00Pdest, *f00Mdest, *fPP0dest, *fMM0dest, *fPM0dest, - *fMP0dest, *fP0Pdest, *fM0Mdest, *fP0Mdest, *fM0Pdest, *f0PPdest, *f0MMdest, *f0PMdest, *f0MPdest, - *f000dest, *fMMMdest, *fMMPdest, *fMPPdest, *fMPMdest, *fPPMdest, *fPPPdest, *fPMPdest, *fPMMdest; + *fP00dest, *fM00dest, *f0P0dest, *f0M0dest, *f00Pdest, *f00Mdest, *fPP0dest, *fMM0dest, *fPM0dest, + *fMP0dest, *fP0Pdest, *fM0Mdest, *fP0Mdest, *fM0Pdest, *f0PPdest, *f0MMdest, *f0PMdest, *f0MPdest, + *f000dest, *fMMMdest, *fMMPdest, *fMPPdest, *fMPMdest, *fPPMdest, *fPPPdest, *fPMPdest, *fPMMdest; if (isEvenTimestep==true) { - fP00dest = &DC[dP00 * numberOfLBnodesCoarse]; - fM00dest = &DC[dM00 * numberOfLBnodesCoarse]; - f0P0dest = &DC[d0P0 * numberOfLBnodesCoarse]; - f0M0dest = &DC[d0M0 * numberOfLBnodesCoarse]; - f00Pdest = &DC[d00P * numberOfLBnodesCoarse]; - f00Mdest = &DC[d00M * numberOfLBnodesCoarse]; - fPP0dest = &DC[dPP0 * numberOfLBnodesCoarse]; - fMM0dest = &DC[dMM0 * numberOfLBnodesCoarse]; - fPM0dest = &DC[dPM0 * numberOfLBnodesCoarse]; - fMP0dest = &DC[dMP0 * numberOfLBnodesCoarse]; - fP0Pdest = &DC[dP0P * numberOfLBnodesCoarse]; - fM0Mdest = &DC[dM0M * numberOfLBnodesCoarse]; - fP0Mdest = &DC[dP0M * numberOfLBnodesCoarse]; - fM0Pdest = &DC[dM0P * numberOfLBnodesCoarse]; - f0PPdest = &DC[d0PP * numberOfLBnodesCoarse]; - f0MMdest = &DC[d0MM * numberOfLBnodesCoarse]; - f0PMdest = &DC[d0PM * numberOfLBnodesCoarse]; - f0MPdest = &DC[d0MP * numberOfLBnodesCoarse]; - f000dest = &DC[d000 * numberOfLBnodesCoarse]; - fMMMdest = &DC[dMMM * numberOfLBnodesCoarse]; - fMMPdest = &DC[dMMP * numberOfLBnodesCoarse]; - fMPPdest = &DC[dMPP * numberOfLBnodesCoarse]; - fMPMdest = &DC[dMPM * numberOfLBnodesCoarse]; - fPPMdest = &DC[dPPM * numberOfLBnodesCoarse]; - fPPPdest = &DC[dPPP * numberOfLBnodesCoarse]; - fPMPdest = &DC[dPMP * numberOfLBnodesCoarse]; - fPMMdest = &DC[dPMM * numberOfLBnodesCoarse]; + fP00dest = &DC[dP00 * numberOfLBnodesCoarse]; + fM00dest = &DC[dM00 * numberOfLBnodesCoarse]; + f0P0dest = &DC[d0P0 * numberOfLBnodesCoarse]; + f0M0dest = &DC[d0M0 * numberOfLBnodesCoarse]; + f00Pdest = &DC[d00P * numberOfLBnodesCoarse]; + f00Mdest = &DC[d00M * numberOfLBnodesCoarse]; + fPP0dest = &DC[dPP0 * numberOfLBnodesCoarse]; + fMM0dest = &DC[dMM0 * numberOfLBnodesCoarse]; + fPM0dest = &DC[dPM0 * numberOfLBnodesCoarse]; + fMP0dest = &DC[dMP0 * numberOfLBnodesCoarse]; + fP0Pdest = &DC[dP0P * numberOfLBnodesCoarse]; + fM0Mdest = &DC[dM0M * numberOfLBnodesCoarse]; + fP0Mdest = &DC[dP0M * numberOfLBnodesCoarse]; + fM0Pdest = &DC[dM0P * numberOfLBnodesCoarse]; + f0PPdest = &DC[d0PP * numberOfLBnodesCoarse]; + f0MMdest = &DC[d0MM * numberOfLBnodesCoarse]; + f0PMdest = &DC[d0PM * numberOfLBnodesCoarse]; + f0MPdest = &DC[d0MP * numberOfLBnodesCoarse]; + f000dest = &DC[d000 * numberOfLBnodesCoarse]; + fMMMdest = &DC[dMMM * numberOfLBnodesCoarse]; + fMMPdest = &DC[dMMP * numberOfLBnodesCoarse]; + fMPPdest = &DC[dMPP * numberOfLBnodesCoarse]; + fMPMdest = &DC[dMPM * numberOfLBnodesCoarse]; + fPPMdest = &DC[dPPM * numberOfLBnodesCoarse]; + fPPPdest = &DC[dPPP * numberOfLBnodesCoarse]; + fPMPdest = &DC[dPMP * numberOfLBnodesCoarse]; + fPMMdest = &DC[dPMM * numberOfLBnodesCoarse]; } else { - fP00dest = &DC[dM00 * numberOfLBnodesCoarse]; - fM00dest = &DC[dP00 * numberOfLBnodesCoarse]; - f0P0dest = &DC[d0M0 * numberOfLBnodesCoarse]; - f0M0dest = &DC[d0P0 * numberOfLBnodesCoarse]; - f00Pdest = &DC[d00M * numberOfLBnodesCoarse]; - f00Mdest = &DC[d00P * numberOfLBnodesCoarse]; - fPP0dest = &DC[dMM0 * numberOfLBnodesCoarse]; - fMM0dest = &DC[dPP0 * numberOfLBnodesCoarse]; - fPM0dest = &DC[dMP0 * numberOfLBnodesCoarse]; - fMP0dest = &DC[dPM0 * numberOfLBnodesCoarse]; - fP0Pdest = &DC[dM0M * numberOfLBnodesCoarse]; - fM0Mdest = &DC[dP0P * numberOfLBnodesCoarse]; - fP0Mdest = &DC[dM0P * numberOfLBnodesCoarse]; - fM0Pdest = &DC[dP0M * numberOfLBnodesCoarse]; - f0PPdest = &DC[d0MM * numberOfLBnodesCoarse]; - f0MMdest = &DC[d0PP * numberOfLBnodesCoarse]; - f0PMdest = &DC[d0MP * numberOfLBnodesCoarse]; - f0MPdest = &DC[d0PM * numberOfLBnodesCoarse]; - f000dest = &DC[d000 * numberOfLBnodesCoarse]; - fMMMdest = &DC[dPPP * numberOfLBnodesCoarse]; - fMMPdest = &DC[dPPM * numberOfLBnodesCoarse]; - fMPPdest = &DC[dPMM * numberOfLBnodesCoarse]; - fMPMdest = &DC[dPMP * numberOfLBnodesCoarse]; - fPPMdest = &DC[dMMP * numberOfLBnodesCoarse]; - fPPPdest = &DC[dMMM * numberOfLBnodesCoarse]; - fPMPdest = &DC[dMPM * numberOfLBnodesCoarse]; - fPMMdest = &DC[dMPP * numberOfLBnodesCoarse]; + fP00dest = &DC[dM00 * numberOfLBnodesCoarse]; + fM00dest = &DC[dP00 * numberOfLBnodesCoarse]; + f0P0dest = &DC[d0M0 * numberOfLBnodesCoarse]; + f0M0dest = &DC[d0P0 * numberOfLBnodesCoarse]; + f00Pdest = &DC[d00M * numberOfLBnodesCoarse]; + f00Mdest = &DC[d00P * numberOfLBnodesCoarse]; + fPP0dest = &DC[dMM0 * numberOfLBnodesCoarse]; + fMM0dest = &DC[dPP0 * numberOfLBnodesCoarse]; + fPM0dest = &DC[dMP0 * numberOfLBnodesCoarse]; + fMP0dest = &DC[dPM0 * numberOfLBnodesCoarse]; + fP0Pdest = &DC[dM0M * numberOfLBnodesCoarse]; + fM0Mdest = &DC[dP0P * numberOfLBnodesCoarse]; + fP0Mdest = &DC[dM0P * numberOfLBnodesCoarse]; + fM0Pdest = &DC[dP0M * numberOfLBnodesCoarse]; + f0PPdest = &DC[d0MM * numberOfLBnodesCoarse]; + f0MMdest = &DC[d0PP * numberOfLBnodesCoarse]; + f0PMdest = &DC[d0MP * numberOfLBnodesCoarse]; + f0MPdest = &DC[d0PM * numberOfLBnodesCoarse]; + f000dest = &DC[d000 * numberOfLBnodesCoarse]; + fMMMdest = &DC[dPPP * numberOfLBnodesCoarse]; + fMMPdest = &DC[dPPM * numberOfLBnodesCoarse]; + fMPPdest = &DC[dPMM * numberOfLBnodesCoarse]; + fMPMdest = &DC[dPMP * numberOfLBnodesCoarse]; + fPPMdest = &DC[dMMP * numberOfLBnodesCoarse]; + fPPPdest = &DC[dMMM * numberOfLBnodesCoarse]; + fPMPdest = &DC[dMPM * numberOfLBnodesCoarse]; + fPMMdest = &DC[dMPP * numberOfLBnodesCoarse]; } //////////////////////////////////////////////////////////////////////////////// const unsigned ix = threadIdx.x; // Globaler x-Index @@ -231,26 +231,26 @@ __global__ void scaleFC_0817_comp_27( real* DC, f0PM = f0PMsource[k00M]; f0MP = f0MPsource[k0M0]; f000 = f000source[k000]; - fMMM = fMMMsource[kMMM]; - fMMP = fMMPsource[kMM0]; - fMPP = fMPPsource[kM00]; - fMPM = fMPMsource[kM0M]; - fPPM = fPPMsource[k00M]; - fPPP = fPPPsource[k000]; + fMMM = fMMMsource[kMMM]; + fMMP = fMMPsource[kMM0]; + fMPP = fMPPsource[kM00]; + fMPM = fMPMsource[kM0M]; + fPPM = fPPMsource[k00M]; + fPPP = fPPPsource[k000]; fPMP = fPMPsource[k0M0]; fPMM = fPMMsource[k0MM]; drhoMMM = fP00+fM00+f0P0+f0M0+f00P+f00M+fPP0+fMM0+fPM0+fMP0+fP0P+fM0M+fP0M+fM0P+f0PP+f0MM+f0PM+f0MP+f000+fPPP+fMMP+fPMP+fMPP+fPPM+fMMM+fPMM+fMPM; vx1MMM = (((fPPP-fMMM)+(fPMP-fMPM)+(fPPM-fMMP)+(fPMM-fMPP)) + (((fPP0-fMM0)+(fP0P-fM0M))+((fPM0-fMP0)+(fP0M-fM0P))) + (fP00-fM00))/(c1o1 + drhoMMM); - vx2MMM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoMMM); - vx3MMM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoMMM); + vx2MMM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoMMM); + vx3MMM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoMMM); - kxyFromfcNEQMMM = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoMMM) - ((vx1MMM*vx2MMM))); - kyzFromfcNEQMMM = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoMMM) - ((vx2MMM*vx3MMM))); - kxzFromfcNEQMMM = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoMMM) - ((vx1MMM*vx3MMM))); - kxxMyyFromfcNEQMMM = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoMMM) - ((vx1MMM*vx1MMM - vx2MMM*vx2MMM))); - kxxMzzFromfcNEQMMM = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoMMM) - ((vx1MMM*vx1MMM - vx3MMM*vx3MMM))); - kyyMzzFromfcNEQMMM = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoMMM) - ((vx2MMM*vx2MMM - vx3MMM*vx3MMM))); + kxyFromfcNEQMMM = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoMMM) - ((vx1MMM*vx2MMM))); + kyzFromfcNEQMMM = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoMMM) - ((vx2MMM*vx3MMM))); + kxzFromfcNEQMMM = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoMMM) - ((vx1MMM*vx3MMM))); + kxxMyyFromfcNEQMMM = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoMMM) - ((vx1MMM*vx1MMM - vx2MMM*vx2MMM))); + kxxMzzFromfcNEQMMM = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoMMM) - ((vx1MMM*vx1MMM - vx3MMM*vx3MMM))); + kyyMzzFromfcNEQMMM = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoMMM) - ((vx2MMM*vx2MMM - vx3MMM*vx3MMM))); ////////////////////////////////////////////////////////////////////////// //SWT// @@ -265,45 +265,45 @@ __global__ void scaleFC_0817_comp_27( real* DC, k0MM = neighborFZ[k0MM]; kMMM = neighborFZ[kMMM]; //////////////////////////////////////////////////////////////////////////////// - fP00 = fP00source[k000]; - fM00 = fM00source[kM00]; - f0P0 = f0P0source[k000]; - f0M0 = f0M0source[k0M0]; - f00P = f00Psource[k000]; - f00M = f00Msource[k00M]; - fPP0 = fPP0source[k000]; - fMM0 = fMM0source[kMM0]; - fPM0 = fPM0source[k0M0]; - fMP0 = fMP0source[kM00]; - fP0P = fP0Psource[k000]; - fM0M = fM0Msource[kM0M]; - fP0M = fP0Msource[k00M]; - fM0P = fM0Psource[kM00]; - f0PP = f0PPsource[k000]; - f0MM = f0MMsource[k0MM]; - f0PM = f0PMsource[k00M]; - f0MP = f0MPsource[k0M0]; - f000 = f000source[k000]; - fMMM = fMMMsource[kMMM]; - fMMP = fMMPsource[kMM0]; - fMPP = fMPPsource[kM00]; - fMPM = fMPMsource[kM0M]; - fPPM = fPPMsource[k00M]; - fPPP = fPPPsource[k000]; - fPMP = fPMPsource[k0M0]; - fPMM = fPMMsource[k0MM]; + fP00 = fP00source[k000]; + fM00 = fM00source[kM00]; + f0P0 = f0P0source[k000]; + f0M0 = f0M0source[k0M0]; + f00P = f00Psource[k000]; + f00M = f00Msource[k00M]; + fPP0 = fPP0source[k000]; + fMM0 = fMM0source[kMM0]; + fPM0 = fPM0source[k0M0]; + fMP0 = fMP0source[kM00]; + fP0P = fP0Psource[k000]; + fM0M = fM0Msource[kM0M]; + fP0M = fP0Msource[k00M]; + fM0P = fM0Psource[kM00]; + f0PP = f0PPsource[k000]; + f0MM = f0MMsource[k0MM]; + f0PM = f0PMsource[k00M]; + f0MP = f0MPsource[k0M0]; + f000 = f000source[k000]; + fMMM = fMMMsource[kMMM]; + fMMP = fMMPsource[kMM0]; + fMPP = fMPPsource[kM00]; + fMPM = fMPMsource[kM0M]; + fPPM = fPPMsource[k00M]; + fPPP = fPPPsource[k000]; + fPMP = fPMPsource[k0M0]; + fPMM = fPMMsource[k0MM]; drhoMMP = fP00+fM00+f0P0+f0M0+f00P+f00M+fPP0+fMM0+fPM0+fMP0+fP0P+fM0M+fP0M+fM0P+f0PP+f0MM+f0PM+f0MP+f000+fPPP+fMMP+fPMP+fMPP+fPPM+fMMM+fPMM+fMPM; vx1MMP = (((fPPP-fMMM)+(fPMP-fMPM)+(fPPM-fMMP)+(fPMM-fMPP)) + (((fPP0-fMM0)+(fP0P-fM0M))+((fPM0-fMP0)+(fP0M-fM0P))) + (fP00-fM00))/(c1o1 + drhoMMP); - vx2MMP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoMMP); - vx3MMP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoMMP); + vx2MMP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoMMP); + vx3MMP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoMMP); - kxyFromfcNEQMMP = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoMMP) - ((vx1MMP*vx2MMP))); - kyzFromfcNEQMMP = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoMMP) - ((vx2MMP*vx3MMP))); - kxzFromfcNEQMMP = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoMMP) - ((vx1MMP*vx3MMP))); - kxxMyyFromfcNEQMMP = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoMMP) - ((vx1MMP*vx1MMP - vx2MMP*vx2MMP))); - kxxMzzFromfcNEQMMP = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoMMP) - ((vx1MMP*vx1MMP - vx3MMP*vx3MMP))); - kyyMzzFromfcNEQMMP = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoMMP) - ((vx2MMP*vx2MMP - vx3MMP*vx3MMP))); + kxyFromfcNEQMMP = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoMMP) - ((vx1MMP*vx2MMP))); + kyzFromfcNEQMMP = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoMMP) - ((vx2MMP*vx3MMP))); + kxzFromfcNEQMMP = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoMMP) - ((vx1MMP*vx3MMP))); + kxxMyyFromfcNEQMMP = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoMMP) - ((vx1MMP*vx1MMP - vx2MMP*vx2MMP))); + kxxMzzFromfcNEQMMP = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoMMP) - ((vx1MMP*vx1MMP - vx3MMP*vx3MMP))); + kyyMzzFromfcNEQMMP = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoMMP) - ((vx2MMP*vx2MMP - vx3MMP*vx3MMP))); ////////////////////////////////////////////////////////////////////////// //SET// @@ -318,45 +318,45 @@ __global__ void scaleFC_0817_comp_27( real* DC, k0MM = kMMM; kMMM = neighborFX[kMMM]; //////////////////////////////////////////////////////////////////////////////// - fP00 = fP00source[k000]; - fM00 = fM00source[kM00]; - f0P0 = f0P0source[k000]; - f0M0 = f0M0source[k0M0]; - f00P = f00Psource[k000]; - f00M = f00Msource[k00M]; - fPP0 = fPP0source[k000]; - fMM0 = fMM0source[kMM0]; - fPM0 = fPM0source[k0M0]; - fMP0 = fMP0source[kM00]; - fP0P = fP0Psource[k000]; - fM0M = fM0Msource[kM0M]; - fP0M = fP0Msource[k00M]; - fM0P = fM0Psource[kM00]; - f0PP = f0PPsource[k000]; - f0MM = f0MMsource[k0MM]; - f0PM = f0PMsource[k00M]; - f0MP = f0MPsource[k0M0]; - f000 = f000source[k000]; - fMMM = fMMMsource[kMMM]; - fMMP = fMMPsource[kMM0]; - fMPP = fMPPsource[kM00]; - fMPM = fMPMsource[kM0M]; - fPPM = fPPMsource[k00M]; - fPPP = fPPPsource[k000]; - fPMP = fPMPsource[k0M0]; - fPMM = fPMMsource[k0MM]; + fP00 = fP00source[k000]; + fM00 = fM00source[kM00]; + f0P0 = f0P0source[k000]; + f0M0 = f0M0source[k0M0]; + f00P = f00Psource[k000]; + f00M = f00Msource[k00M]; + fPP0 = fPP0source[k000]; + fMM0 = fMM0source[kMM0]; + fPM0 = fPM0source[k0M0]; + fMP0 = fMP0source[kM00]; + fP0P = fP0Psource[k000]; + fM0M = fM0Msource[kM0M]; + fP0M = fP0Msource[k00M]; + fM0P = fM0Psource[kM00]; + f0PP = f0PPsource[k000]; + f0MM = f0MMsource[k0MM]; + f0PM = f0PMsource[k00M]; + f0MP = f0MPsource[k0M0]; + f000 = f000source[k000]; + fMMM = fMMMsource[kMMM]; + fMMP = fMMPsource[kMM0]; + fMPP = fMPPsource[kM00]; + fMPM = fMPMsource[kM0M]; + fPPM = fPPMsource[k00M]; + fPPP = fPPPsource[k000]; + fPMP = fPMPsource[k0M0]; + fPMM = fPMMsource[k0MM]; drhoPMP = fP00+fM00+f0P0+f0M0+f00P+f00M+fPP0+fMM0+fPM0+fMP0+fP0P+fM0M+fP0M+fM0P+f0PP+f0MM+f0PM+f0MP+f000+fPPP+fMMP+fPMP+fMPP+fPPM+fMMM+fPMM+fMPM; vx1PMP = (((fPPP-fMMM)+(fPMP-fMPM)+(fPPM-fMMP)+(fPMM-fMPP)) + (((fPP0-fMM0)+(fP0P-fM0M))+((fPM0-fMP0)+(fP0M-fM0P))) + (fP00-fM00))/(c1o1 + drhoPMP); - vx2PMP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoPMP); - vx3PMP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoPMP); + vx2PMP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoPMP); + vx3PMP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoPMP); - kxyFromfcNEQPMP = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoPMP) - ((vx1PMP*vx2PMP))); - kyzFromfcNEQPMP = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoPMP) - ((vx2PMP*vx3PMP))); - kxzFromfcNEQPMP = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoPMP) - ((vx1PMP*vx3PMP))); - kxxMyyFromfcNEQPMP = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoPMP) - ((vx1PMP*vx1PMP - vx2PMP*vx2PMP))); - kxxMzzFromfcNEQPMP = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoPMP) - ((vx1PMP*vx1PMP - vx3PMP*vx3PMP))); - kyyMzzFromfcNEQPMP = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoPMP) - ((vx2PMP*vx2PMP - vx3PMP*vx3PMP))); + kxyFromfcNEQPMP = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoPMP) - ((vx1PMP*vx2PMP))); + kyzFromfcNEQPMP = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoPMP) - ((vx2PMP*vx3PMP))); + kxzFromfcNEQPMP = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoPMP) - ((vx1PMP*vx3PMP))); + kxxMyyFromfcNEQPMP = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoPMP) - ((vx1PMP*vx1PMP - vx2PMP*vx2PMP))); + kxxMzzFromfcNEQPMP = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoPMP) - ((vx1PMP*vx1PMP - vx3PMP*vx3PMP))); + kyyMzzFromfcNEQPMP = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoPMP) - ((vx2PMP*vx2PMP - vx3PMP*vx3PMP))); ////////////////////////////////////////////////////////////////////////// //SEB// @@ -371,45 +371,45 @@ __global__ void scaleFC_0817_comp_27( real* DC, k0M0 = kMM0base; kMM0 = neighborFX[kMM0base]; //////////////////////////////////////////////////////////////////////////////// - fP00 = fP00source[k000]; - fM00 = fM00source[kM00]; - f0P0 = f0P0source[k000]; - f0M0 = f0M0source[k0M0]; - f00P = f00Psource[k000]; - f00M = f00Msource[k00M]; - fPP0 = fPP0source[k000]; - fMM0 = fMM0source[kMM0]; - fPM0 = fPM0source[k0M0]; - fMP0 = fMP0source[kM00]; - fP0P = fP0Psource[k000]; - fM0M = fM0Msource[kM0M]; - fP0M = fP0Msource[k00M]; - fM0P = fM0Psource[kM00]; - f0PP = f0PPsource[k000]; - f0MM = f0MMsource[k0MM]; - f0PM = f0PMsource[k00M]; - f0MP = f0MPsource[k0M0]; - f000 = f000source[k000]; - fMMM = fMMMsource[kMMM]; - fMMP = fMMPsource[kMM0]; - fMPP = fMPPsource[kM00]; - fMPM = fMPMsource[kM0M]; - fPPM = fPPMsource[k00M]; - fPPP = fPPPsource[k000]; - fPMP = fPMPsource[k0M0]; - fPMM = fPMMsource[k0MM]; + fP00 = fP00source[k000]; + fM00 = fM00source[kM00]; + f0P0 = f0P0source[k000]; + f0M0 = f0M0source[k0M0]; + f00P = f00Psource[k000]; + f00M = f00Msource[k00M]; + fPP0 = fPP0source[k000]; + fMM0 = fMM0source[kMM0]; + fPM0 = fPM0source[k0M0]; + fMP0 = fMP0source[kM00]; + fP0P = fP0Psource[k000]; + fM0M = fM0Msource[kM0M]; + fP0M = fP0Msource[k00M]; + fM0P = fM0Psource[kM00]; + f0PP = f0PPsource[k000]; + f0MM = f0MMsource[k0MM]; + f0PM = f0PMsource[k00M]; + f0MP = f0MPsource[k0M0]; + f000 = f000source[k000]; + fMMM = fMMMsource[kMMM]; + fMMP = fMMPsource[kMM0]; + fMPP = fMPPsource[kM00]; + fMPM = fMPMsource[kM0M]; + fPPM = fPPMsource[k00M]; + fPPP = fPPPsource[k000]; + fPMP = fPMPsource[k0M0]; + fPMM = fPMMsource[k0MM]; drhoPMM = fP00+fM00+f0P0+f0M0+f00P+f00M+fPP0+fMM0+fPM0+fMP0+fP0P+fM0M+fP0M+fM0P+f0PP+f0MM+f0PM+f0MP+f000+fPPP+fMMP+fPMP+fMPP+fPPM+fMMM+fPMM+fMPM; vx1PMM = (((fPPP-fMMM)+(fPMP-fMPM)+(fPPM-fMMP)+(fPMM-fMPP)) + (((fPP0-fMM0)+(fP0P-fM0M))+((fPM0-fMP0)+(fP0M-fM0P))) + (fP00-fM00))/(c1o1 + drhoPMM); - vx2PMM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoPMM); - vx3PMM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoPMM); + vx2PMM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoPMM); + vx3PMM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoPMM); - kxyFromfcNEQPMM = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoPMM) - ((vx1PMM*vx2PMM))); - kyzFromfcNEQPMM = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoPMM) - ((vx2PMM*vx3PMM))); - kxzFromfcNEQPMM = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoPMM) - ((vx1PMM*vx3PMM))); - kxxMyyFromfcNEQPMM = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoPMM) - ((vx1PMM*vx1PMM - vx2PMM*vx2PMM))); - kxxMzzFromfcNEQPMM = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoPMM) - ((vx1PMM*vx1PMM - vx3PMM*vx3PMM))); - kyyMzzFromfcNEQPMM = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoPMM) - ((vx2PMM*vx2PMM - vx3PMM*vx3PMM))); + kxyFromfcNEQPMM = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoPMM) - ((vx1PMM*vx2PMM))); + kyzFromfcNEQPMM = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoPMM) - ((vx2PMM*vx3PMM))); + kxzFromfcNEQPMM = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoPMM) - ((vx1PMM*vx3PMM))); + kxxMyyFromfcNEQPMM = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoPMM) - ((vx1PMM*vx1PMM - vx2PMM*vx2PMM))); + kxxMzzFromfcNEQPMM = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoPMM) - ((vx1PMM*vx1PMM - vx3PMM*vx3PMM))); + kyyMzzFromfcNEQPMM = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoPMM) - ((vx2PMM*vx2PMM - vx3PMM*vx3PMM))); ////////////////////////////////////////////////////////////////////////// //NWB// @@ -434,47 +434,47 @@ __global__ void scaleFC_0817_comp_27( real* DC, k0MM = k0MMbase; kMMM = kMMMbase; //////////////////////////////////////////////////////////////////////////////// - fP00 = fP00source[k000]; - fM00 = fM00source[kM00]; - f0P0 = f0P0source[k000]; - f0M0 = f0M0source[k0M0]; - f00P = f00Psource[k000]; - f00M = f00Msource[k00M]; - fPP0 = fPP0source[k000]; - fMM0 = fMM0source[kMM0]; - fPM0 = fPM0source[k0M0]; - fMP0 = fMP0source[kM00]; - fP0P = fP0Psource[k000]; - fM0M = fM0Msource[kM0M]; - fP0M = fP0Msource[k00M]; - fM0P = fM0Psource[kM00]; - f0PP = f0PPsource[k000]; - f0MM = f0MMsource[k0MM]; - f0PM = f0PMsource[k00M]; - f0MP = f0MPsource[k0M0]; - f000 = f000source[k000]; - fMMM = fMMMsource[kMMM]; - fMMP = fMMPsource[kMM0]; - fMPP = fMPPsource[kM00]; - fMPM = fMPMsource[kM0M]; - fPPM = fPPMsource[k00M]; - fPPP = fPPPsource[k000]; - fPMP = fPMPsource[k0M0]; - fPMM = fPMMsource[k0MM]; + fP00 = fP00source[k000]; + fM00 = fM00source[kM00]; + f0P0 = f0P0source[k000]; + f0M0 = f0M0source[k0M0]; + f00P = f00Psource[k000]; + f00M = f00Msource[k00M]; + fPP0 = fPP0source[k000]; + fMM0 = fMM0source[kMM0]; + fPM0 = fPM0source[k0M0]; + fMP0 = fMP0source[kM00]; + fP0P = fP0Psource[k000]; + fM0M = fM0Msource[kM0M]; + fP0M = fP0Msource[k00M]; + fM0P = fM0Psource[kM00]; + f0PP = f0PPsource[k000]; + f0MM = f0MMsource[k0MM]; + f0PM = f0PMsource[k00M]; + f0MP = f0MPsource[k0M0]; + f000 = f000source[k000]; + fMMM = fMMMsource[kMMM]; + fMMP = fMMPsource[kMM0]; + fMPP = fMPPsource[kM00]; + fMPM = fMPMsource[kM0M]; + fPPM = fPPMsource[k00M]; + fPPP = fPPPsource[k000]; + fPMP = fPMPsource[k0M0]; + fPMM = fPMMsource[k0MM]; drhoMPM = fP00+fM00+f0P0+f0M0+f00P+f00M+fPP0+fMM0+fPM0+fMP0+fP0P+fM0M+fP0M+fM0P+f0PP+f0MM+f0PM+f0MP+f000+fPPP+fMMP+fPMP+fMPP+fPPM+fMMM+fPMM+fMPM; vx1MPM = (((fPPP-fMMM)+(fPMP-fMPM)+(fPPM-fMMP)+(fPMM-fMPP)) + (((fPP0-fMM0)+(fP0P-fM0M))+((fPM0-fMP0)+(fP0M-fM0P))) + (fP00-fM00))/(c1o1 + drhoMPM); - vx2MPM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoMPM); - vx3MPM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoMPM); + vx2MPM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoMPM); + vx3MPM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoMPM); - kxyFromfcNEQMPM = -c3o1*omegaS* ((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoMPM) - ((vx1MPM*vx2MPM))); - kyzFromfcNEQMPM = -c3o1*omegaS* ((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoMPM) - ((vx2MPM*vx3MPM))); - kxzFromfcNEQMPM = -c3o1*omegaS* ((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoMPM) - ((vx1MPM*vx3MPM))); - kxxMyyFromfcNEQMPM = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoMPM) - ((vx1MPM*vx1MPM - vx2MPM*vx2MPM))); - kxxMzzFromfcNEQMPM = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoMPM) - ((vx1MPM*vx1MPM - vx3MPM*vx3MPM))); - kyyMzzFromfcNEQMPM = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoMPM) - ((vx2MPM*vx2MPM - vx3MPM*vx3MPM))); + kxyFromfcNEQMPM = -c3o1*omegaS* ((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoMPM) - ((vx1MPM*vx2MPM))); + kyzFromfcNEQMPM = -c3o1*omegaS* ((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoMPM) - ((vx2MPM*vx3MPM))); + kxzFromfcNEQMPM = -c3o1*omegaS* ((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoMPM) - ((vx1MPM*vx3MPM))); + kxxMyyFromfcNEQMPM = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoMPM) - ((vx1MPM*vx1MPM - vx2MPM*vx2MPM))); + kxxMzzFromfcNEQMPM = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoMPM) - ((vx1MPM*vx1MPM - vx3MPM*vx3MPM))); + kyyMzzFromfcNEQMPM = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoMPM) - ((vx2MPM*vx2MPM - vx3MPM*vx3MPM))); - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// //NWT// ////////////////////////////////////////////////////////////////////////// //index @@ -487,45 +487,45 @@ __global__ void scaleFC_0817_comp_27( real* DC, k0MM = neighborFZ[k0MM]; kMMM = neighborFZ[kMMM]; //////////////////////////////////////////////////////////////////////////////// - fP00 = fP00source[k000]; - fM00 = fM00source[kM00]; - f0P0 = f0P0source[k000]; - f0M0 = f0M0source[k0M0]; - f00P = f00Psource[k000]; - f00M = f00Msource[k00M]; - fPP0 = fPP0source[k000]; - fMM0 = fMM0source[kMM0]; - fPM0 = fPM0source[k0M0]; - fMP0 = fMP0source[kM00]; - fP0P = fP0Psource[k000]; - fM0M = fM0Msource[kM0M]; - fP0M = fP0Msource[k00M]; - fM0P = fM0Psource[kM00]; - f0PP = f0PPsource[k000]; - f0MM = f0MMsource[k0MM]; - f0PM = f0PMsource[k00M]; - f0MP = f0MPsource[k0M0]; - f000 = f000source[k000]; - fMMM = fMMMsource[kMMM]; - fMMP = fMMPsource[kMM0]; - fMPP = fMPPsource[kM00]; - fMPM = fMPMsource[kM0M]; - fPPM = fPPMsource[k00M]; - fPPP = fPPPsource[k000]; - fPMP = fPMPsource[k0M0]; - fPMM = fPMMsource[k0MM]; + fP00 = fP00source[k000]; + fM00 = fM00source[kM00]; + f0P0 = f0P0source[k000]; + f0M0 = f0M0source[k0M0]; + f00P = f00Psource[k000]; + f00M = f00Msource[k00M]; + fPP0 = fPP0source[k000]; + fMM0 = fMM0source[kMM0]; + fPM0 = fPM0source[k0M0]; + fMP0 = fMP0source[kM00]; + fP0P = fP0Psource[k000]; + fM0M = fM0Msource[kM0M]; + fP0M = fP0Msource[k00M]; + fM0P = fM0Psource[kM00]; + f0PP = f0PPsource[k000]; + f0MM = f0MMsource[k0MM]; + f0PM = f0PMsource[k00M]; + f0MP = f0MPsource[k0M0]; + f000 = f000source[k000]; + fMMM = fMMMsource[kMMM]; + fMMP = fMMPsource[kMM0]; + fMPP = fMPPsource[kM00]; + fMPM = fMPMsource[kM0M]; + fPPM = fPPMsource[k00M]; + fPPP = fPPPsource[k000]; + fPMP = fPMPsource[k0M0]; + fPMM = fPMMsource[k0MM]; drhoMPP = fP00+fM00+f0P0+f0M0+f00P+f00M+fPP0+fMM0+fPM0+fMP0+fP0P+fM0M+fP0M+fM0P+f0PP+f0MM+f0PM+f0MP+f000+fPPP+fMMP+fPMP+fMPP+fPPM+fMMM+fPMM+fMPM; vx1MPP = (((fPPP-fMMM)+(fPMP-fMPM)+(fPPM-fMMP)+(fPMM-fMPP)) + (((fPP0-fMM0)+(fP0P-fM0M))+((fPM0-fMP0)+(fP0M-fM0P))) + (fP00-fM00))/(c1o1 + drhoMPP); - vx2MPP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoMPP); - vx3MPP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoMPP); + vx2MPP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoMPP); + vx3MPP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoMPP); - kxyFromfcNEQMPP = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoMPP) - ((vx1MPP*vx2MPP))); - kyzFromfcNEQMPP = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoMPP) - ((vx2MPP*vx3MPP))); - kxzFromfcNEQMPP = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoMPP) - ((vx1MPP*vx3MPP))); - kxxMyyFromfcNEQMPP = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoMPP) - ((vx1MPP*vx1MPP - vx2MPP*vx2MPP))); - kxxMzzFromfcNEQMPP = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoMPP) - ((vx1MPP*vx1MPP - vx3MPP*vx3MPP))); - kyyMzzFromfcNEQMPP = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoMPP) - ((vx2MPP*vx2MPP - vx3MPP*vx3MPP))); + kxyFromfcNEQMPP = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoMPP) - ((vx1MPP*vx2MPP))); + kyzFromfcNEQMPP = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoMPP) - ((vx2MPP*vx3MPP))); + kxzFromfcNEQMPP = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoMPP) - ((vx1MPP*vx3MPP))); + kxxMyyFromfcNEQMPP = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoMPP) - ((vx1MPP*vx1MPP - vx2MPP*vx2MPP))); + kxxMzzFromfcNEQMPP = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoMPP) - ((vx1MPP*vx1MPP - vx3MPP*vx3MPP))); + kyyMzzFromfcNEQMPP = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoMPP) - ((vx2MPP*vx2MPP - vx3MPP*vx3MPP))); ////////////////////////////////////////////////////////////////////////// //NET// @@ -540,45 +540,45 @@ __global__ void scaleFC_0817_comp_27( real* DC, k0MM = kMMM; kMMM = neighborFX[kMMM]; //////////////////////////////////////////////////////////////////////////////// - fP00 = fP00source[k000]; - fM00 = fM00source[kM00]; - f0P0 = f0P0source[k000]; - f0M0 = f0M0source[k0M0]; - f00P = f00Psource[k000]; - f00M = f00Msource[k00M]; - fPP0 = fPP0source[k000]; - fMM0 = fMM0source[kMM0]; - fPM0 = fPM0source[k0M0]; - fMP0 = fMP0source[kM00]; - fP0P = fP0Psource[k000]; - fM0M = fM0Msource[kM0M]; - fP0M = fP0Msource[k00M]; - fM0P = fM0Psource[kM00]; - f0PP = f0PPsource[k000]; - f0MM = f0MMsource[k0MM]; - f0PM = f0PMsource[k00M]; - f0MP = f0MPsource[k0M0]; - f000 = f000source[k000]; - fMMM = fMMMsource[kMMM]; - fMMP = fMMPsource[kMM0]; - fMPP = fMPPsource[kM00]; - fMPM = fMPMsource[kM0M]; - fPPM = fPPMsource[k00M]; - fPPP = fPPPsource[k000]; - fPMP = fPMPsource[k0M0]; - fPMM = fPMMsource[k0MM]; + fP00 = fP00source[k000]; + fM00 = fM00source[kM00]; + f0P0 = f0P0source[k000]; + f0M0 = f0M0source[k0M0]; + f00P = f00Psource[k000]; + f00M = f00Msource[k00M]; + fPP0 = fPP0source[k000]; + fMM0 = fMM0source[kMM0]; + fPM0 = fPM0source[k0M0]; + fMP0 = fMP0source[kM00]; + fP0P = fP0Psource[k000]; + fM0M = fM0Msource[kM0M]; + fP0M = fP0Msource[k00M]; + fM0P = fM0Psource[kM00]; + f0PP = f0PPsource[k000]; + f0MM = f0MMsource[k0MM]; + f0PM = f0PMsource[k00M]; + f0MP = f0MPsource[k0M0]; + f000 = f000source[k000]; + fMMM = fMMMsource[kMMM]; + fMMP = fMMPsource[kMM0]; + fMPP = fMPPsource[kM00]; + fMPM = fMPMsource[kM0M]; + fPPM = fPPMsource[k00M]; + fPPP = fPPPsource[k000]; + fPMP = fPMPsource[k0M0]; + fPMM = fPMMsource[k0MM]; drhoPPP = fP00+fM00+f0P0+f0M0+f00P+f00M+fPP0+fMM0+fPM0+fMP0+fP0P+fM0M+fP0M+fM0P+f0PP+f0MM+f0PM+f0MP+f000+fPPP+fMMP+fPMP+fMPP+fPPM+fMMM+fPMM+fMPM; vx1PPP = (((fPPP-fMMM)+(fPMP-fMPM)+(fPPM-fMMP)+(fPMM-fMPP)) + (((fPP0-fMM0)+(fP0P-fM0M))+((fPM0-fMP0)+(fP0M-fM0P))) + (fP00-fM00))/(c1o1 + drhoPPP); - vx2PPP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoPPP); - vx3PPP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoPPP); + vx2PPP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoPPP); + vx3PPP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoPPP); - kxyFromfcNEQPPP = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoPPP) - ((vx1PPP*vx2PPP))); - kyzFromfcNEQPPP = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoPPP) - ((vx2PPP*vx3PPP))); - kxzFromfcNEQPPP = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoPPP) - ((vx1PPP*vx3PPP))); - kxxMyyFromfcNEQPPP = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoPPP) - ((vx1PPP*vx1PPP - vx2PPP*vx2PPP))); - kxxMzzFromfcNEQPPP = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoPPP) - ((vx1PPP*vx1PPP - vx3PPP*vx3PPP))); - kyyMzzFromfcNEQPPP = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoPPP) - ((vx2PPP*vx2PPP - vx3PPP*vx3PPP))); + kxyFromfcNEQPPP = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoPPP) - ((vx1PPP*vx2PPP))); + kyzFromfcNEQPPP = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoPPP) - ((vx2PPP*vx3PPP))); + kxzFromfcNEQPPP = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoPPP) - ((vx1PPP*vx3PPP))); + kxxMyyFromfcNEQPPP = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoPPP) - ((vx1PPP*vx1PPP - vx2PPP*vx2PPP))); + kxxMzzFromfcNEQPPP = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoPPP) - ((vx1PPP*vx1PPP - vx3PPP*vx3PPP))); + kyyMzzFromfcNEQPPP = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoPPP) - ((vx2PPP*vx2PPP - vx3PPP*vx3PPP))); ////////////////////////////////////////////////////////////////////////// //NEB// @@ -593,142 +593,142 @@ __global__ void scaleFC_0817_comp_27( real* DC, k0M0 = kMM0base; kMM0 = neighborFX[kMM0base]; //////////////////////////////////////////////////////////////////////////////// - fP00 = fP00source[k000]; - fM00 = fM00source[kM00]; - f0P0 = f0P0source[k000]; - f0M0 = f0M0source[k0M0]; - f00P = f00Psource[k000]; - f00M = f00Msource[k00M]; - fPP0 = fPP0source[k000]; - fMM0 = fMM0source[kMM0]; - fPM0 = fPM0source[k0M0]; - fMP0 = fMP0source[kM00]; - fP0P = fP0Psource[k000]; - fM0M = fM0Msource[kM0M]; - fP0M = fP0Msource[k00M]; - fM0P = fM0Psource[kM00]; - f0PP = f0PPsource[k000]; - f0MM = f0MMsource[k0MM]; - f0PM = f0PMsource[k00M]; - f0MP = f0MPsource[k0M0]; - f000 = f000source[k000]; - fMMM = fMMMsource[kMMM]; - fMMP = fMMPsource[kMM0]; - fMPP = fMPPsource[kM00]; - fMPM = fMPMsource[kM0M]; - fPPM = fPPMsource[k00M]; - fPPP = fPPPsource[k000]; - fPMP = fPMPsource[k0M0]; - fPMM = fPMMsource[k0MM]; + fP00 = fP00source[k000]; + fM00 = fM00source[kM00]; + f0P0 = f0P0source[k000]; + f0M0 = f0M0source[k0M0]; + f00P = f00Psource[k000]; + f00M = f00Msource[k00M]; + fPP0 = fPP0source[k000]; + fMM0 = fMM0source[kMM0]; + fPM0 = fPM0source[k0M0]; + fMP0 = fMP0source[kM00]; + fP0P = fP0Psource[k000]; + fM0M = fM0Msource[kM0M]; + fP0M = fP0Msource[k00M]; + fM0P = fM0Psource[kM00]; + f0PP = f0PPsource[k000]; + f0MM = f0MMsource[k0MM]; + f0PM = f0PMsource[k00M]; + f0MP = f0MPsource[k0M0]; + f000 = f000source[k000]; + fMMM = fMMMsource[kMMM]; + fMMP = fMMPsource[kMM0]; + fMPP = fMPPsource[kM00]; + fMPM = fMPMsource[kM0M]; + fPPM = fPPMsource[k00M]; + fPPP = fPPPsource[k000]; + fPMP = fPMPsource[k0M0]; + fPMM = fPMMsource[k0MM]; drhoPPM = fP00+fM00+f0P0+f0M0+f00P+f00M+fPP0+fMM0+fPM0+fMP0+fP0P+fM0M+fP0M+fM0P+f0PP+f0MM+f0PM+f0MP+f000+fPPP+fMMP+fPMP+fMPP+fPPM+fMMM+fPMM+fMPM; vx1PPM = (((fPPP-fMMM)+(fPMP-fMPM)+(fPPM-fMMP)+(fPMM-fMPP)) + (((fPP0-fMM0)+(fP0P-fM0M))+((fPM0-fMP0)+(fP0M-fM0P))) + (fP00-fM00))/(c1o1 + drhoPPM); - vx2PPM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoPPM); - vx3PPM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoPPM); + vx2PPM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoPPM); + vx3PPM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoPPM); - kxyFromfcNEQPPM = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoPPM) - ((vx1PPM*vx2PPM))); - kyzFromfcNEQPPM = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoPPM) - ((vx2PPM*vx3PPM))); - kxzFromfcNEQPPM = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoPPM) - ((vx1PPM*vx3PPM))); - kxxMyyFromfcNEQPPM = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoPPM) - ((vx1PPM*vx1PPM - vx2PPM*vx2PPM))); - kxxMzzFromfcNEQPPM = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoPPM) - ((vx1PPM*vx1PPM - vx3PPM*vx3PPM))); - kyyMzzFromfcNEQPPM = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoPPM) - ((vx2PPM*vx2PPM - vx3PPM*vx3PPM))); + kxyFromfcNEQPPM = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoPPM) - ((vx1PPM*vx2PPM))); + kyzFromfcNEQPPM = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoPPM) - ((vx2PPM*vx3PPM))); + kxzFromfcNEQPPM = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoPPM) - ((vx1PPM*vx3PPM))); + kxxMyyFromfcNEQPPM = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoPPM) - ((vx1PPM*vx1PPM - vx2PPM*vx2PPM))); + kxxMzzFromfcNEQPPM = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoPPM) - ((vx1PPM*vx1PPM - vx3PPM*vx3PPM))); + kyyMzzFromfcNEQPPM = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoPPM) - ((vx2PPM*vx2PPM - vx3PPM*vx3PPM))); ////////////////////////////////////////////////////////////////////////// //3 ////////////////////////////////////////////////////////////////////////// - a0 = c1o8*(((vx1PPM + vx1MMP) + (vx1MPM + vx1PMP)) + ((vx1PMM + vx1MPP) + (vx1MMM + vx1PPP))); - ax = c1o4*(((vx1PPM - vx1MMP) + (vx1PPP - vx1MMM)) + ((vx1PMP - vx1MPM) + (vx1PMM - vx1MPP))); - ay = c1o4*(((vx1PPM - vx1MMP) + (vx1PPP - vx1MMM)) + ((vx1MPM - vx1PMP) + (vx1MPP - vx1PMM))); - az = c1o4*(((vx1MMP - vx1PPM) + (vx1PPP - vx1MMM)) + ((vx1PMP - vx1MPM) + (vx1MPP - vx1PMM))); - axy = c1o2*(((vx1PPM - vx1PMP) + (vx1MMM - vx1MPP)) + ((vx1MMP - vx1MPM) + (vx1PPP - vx1PMM))); - axz = c1o2*(((vx1PMP - vx1PPM) + (vx1MMM - vx1MPP)) + ((vx1MPM - vx1MMP) + (vx1PPP - vx1PMM))); - ayz = c1o2*(((vx1PPP - vx1MPM) + (vx1PMM - vx1MMP)) + ((vx1MPP - vx1PPM) + (vx1MMM - vx1PMP))); - //axyz= ((vx1MMP - vx1PPM) + (vx1PPP - vx1MMM)) + ((vx1MPM - vx1PMP) + (vx1PMM - vx1MPP)) ; - b0 = c1o8*(((vx2PPM + vx2MMP) + (vx2MPM + vx2PMP)) + ((vx2PMM + vx2MPP) + (vx2MMM + vx2PPP))); - bx = c1o4*(((vx2PPM - vx2MMP) + (vx2PPP - vx2MMM)) + ((vx2PMP - vx2MPM) + (vx2PMM - vx2MPP))); - by = c1o4*(((vx2PPM - vx2MMP) + (vx2PPP - vx2MMM)) + ((vx2MPM - vx2PMP) + (vx2MPP - vx2PMM))); - bz = c1o4*(((vx2MMP - vx2PPM) + (vx2PPP - vx2MMM)) + ((vx2PMP - vx2MPM) + (vx2MPP - vx2PMM))); - bxy = c1o2*(((vx2PPM - vx2MPP) + (vx2MMM - vx2PMP)) + ((vx2MMP - vx2PMM) + (vx2PPP - vx2MPM))); - bxz = c1o2*(((vx2MMM - vx2PPM) + (vx2PMP - vx2MPP)) + ((vx2MPM - vx2PMM) + (vx2PPP - vx2MMP))); - byz = c1o2*(((vx2MPP - vx2PPM) + (vx2MMM - vx2PMP)) + ((vx2PMM - vx2MMP) + (vx2PPP - vx2MPM))); - //bxyz= ((vx2MMP - vx2PPM) + (vx2PPP - vx2MMM)) + ((vx2MPM - vx2PMP) + (vx2PMM - vx2MPP)) ; - c0 = c1o8*(((vx3PPM + vx3MMP) + (vx3MPM + vx3PMP)) + ((vx3PMM + vx3MPP) + (vx3MMM + vx3PPP))); - cx = c1o4*(((vx3PPM - vx3MMP) + (vx3PPP - vx3MMM)) + ((vx3PMP - vx3MPM) + (vx3PMM - vx3MPP))); - cy = c1o4*(((vx3PPM - vx3MMP) + (vx3PPP - vx3MMM)) + ((vx3MPM - vx3PMP) + (vx3MPP - vx3PMM))); - cz = c1o4*(((vx3MMP - vx3PPM) + (vx3PPP - vx3MMM)) + ((vx3PMP - vx3MPM) + (vx3MPP - vx3PMM))); - cxy = c1o2*(((vx3PPM - vx3PMP) + (vx3MMM - vx3MPP)) + ((vx3MMP - vx3MPM) + (vx3PPP - vx3PMM))); - cxz = c1o2*(((vx3MMM - vx3PPM) + (vx3PMP - vx3MPP)) + ((vx3MPM - vx3PMM) + (vx3PPP - vx3MMP))); - cyz = c1o2*(((vx3MMM - vx3PPM) + (vx3MPP - vx3PMP)) + ((vx3PMM - vx3MPM) + (vx3PPP - vx3MMP))); - //cxyz= ((vx3MMP - vx3PPM) + (vx3PPP - vx3MMM)) + ((vx3MPM - vx3PMP) + (vx3PMM - vx3MPP)) ; - - //bxx = zero; - //cxx = zero; - //ayy = zero; - //cyy = zero; - //azz = zero; - //bzz = zero; - //axx = zero; - //byy = zero; - //czz = zero; - - bxx = c1o8*(((kxyFromfcNEQPPP - kxyFromfcNEQMMM) + (kxyFromfcNEQPMM - kxyFromfcNEQMPP)) + ((kxyFromfcNEQPMP - kxyFromfcNEQMPM) + (kxyFromfcNEQPPM - kxyFromfcNEQMMP))) - c1o2*axy; - cxx = c1o8*(((kxzFromfcNEQPPP - kxzFromfcNEQMMM) + (kxzFromfcNEQPMM - kxzFromfcNEQMPP)) + ((kxzFromfcNEQPMP - kxzFromfcNEQMPM) + (kxzFromfcNEQPPM - kxzFromfcNEQMMP))) - c1o2*axz; - - ayy = c1o8*(((kxyFromfcNEQPPP - kxyFromfcNEQMMM) + (kxyFromfcNEQPPM - kxyFromfcNEQMMP)) - ((kxyFromfcNEQPMM - kxyFromfcNEQMPP) + (kxyFromfcNEQPMP - kxyFromfcNEQMPM))) - c1o2*bxy; - cyy = c1o8*(((kyzFromfcNEQPPP - kyzFromfcNEQMMM) + (kyzFromfcNEQPPM - kyzFromfcNEQMMP)) - ((kyzFromfcNEQPMM - kyzFromfcNEQMPP) + (kyzFromfcNEQPMP - kyzFromfcNEQMPM))) - c1o2*byz; - - azz = c1o8*(((kxzFromfcNEQPPP - kxzFromfcNEQMMM) - (kxzFromfcNEQPMM - kxzFromfcNEQMPP)) + ((kxzFromfcNEQPMP - kxzFromfcNEQMPM) - (kxzFromfcNEQPPM - kxzFromfcNEQMMP))) - c1o2*cxz; - bzz = c1o8*(((kyzFromfcNEQPPP - kyzFromfcNEQMMM) - (kyzFromfcNEQPMM - kyzFromfcNEQMPP)) + ((kyzFromfcNEQPMP - kyzFromfcNEQMPM) - (kyzFromfcNEQPPM - kyzFromfcNEQMMP))) - c1o2*cyz; - - axx = ( c1o16*(((kxxMyyFromfcNEQPPP - kxxMyyFromfcNEQMMM) + (kxxMyyFromfcNEQPMM - kxxMyyFromfcNEQMPP)) + ((kxxMyyFromfcNEQPMP - kxxMyyFromfcNEQMPM) + (kxxMyyFromfcNEQPPM - kxxMyyFromfcNEQMMP))) - c1o4*bxy) - + ( c1o16*(((kxxMzzFromfcNEQPPP - kxxMzzFromfcNEQMMM) + (kxxMzzFromfcNEQPMM - kxxMzzFromfcNEQMPP)) + ((kxxMzzFromfcNEQPMP - kxxMzzFromfcNEQMPM) + (kxxMzzFromfcNEQPPM - kxxMzzFromfcNEQMMP))) - c1o4*cxz); - - byy = (-c1o16*(((kxxMyyFromfcNEQPPP - kxxMyyFromfcNEQMMM) - (kxxMyyFromfcNEQPMM - kxxMyyFromfcNEQMPP)) + ((kxxMyyFromfcNEQPPM - kxxMyyFromfcNEQMMP) - (kxxMyyFromfcNEQPMP - kxxMyyFromfcNEQMPM))) - c1o4*axy) - + ( c1o16*(((kyyMzzFromfcNEQPPP - kyyMzzFromfcNEQMMM) - (kyyMzzFromfcNEQPMM - kyyMzzFromfcNEQMPP)) + ((kyyMzzFromfcNEQPPM - kyyMzzFromfcNEQMMP) - (kyyMzzFromfcNEQPMP - kyyMzzFromfcNEQMPM))) - c1o4*cyz); - - czz = (-c1o16*(((kxxMzzFromfcNEQPPP - kxxMzzFromfcNEQMMM) - (kxxMzzFromfcNEQPMM - kxxMzzFromfcNEQMPP)) - ((kxxMzzFromfcNEQPPM - kxxMzzFromfcNEQMMP) - (kxxMzzFromfcNEQPMP - kxxMzzFromfcNEQMPM))) - c1o4*axz) - + ( c1o16*(((kyyMzzFromfcNEQPPP - kyyMzzFromfcNEQMMM) - (kyyMzzFromfcNEQPMM - kyyMzzFromfcNEQMPP)) - ((kyyMzzFromfcNEQPPM - kyyMzzFromfcNEQMMP) - (kyyMzzFromfcNEQPMP - kyyMzzFromfcNEQMPM))) - c1o4*byz); - - a0 -= c1o4*(axx + ayy + azz); - b0 -= c1o4*(bxx + byy + bzz); - c0 -= c1o4*(cxx + cyy + czz); - - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real kxyAverage = c0o1; - real kyzAverage = c0o1; - real kxzAverage = c0o1; - real kxxMyyAverage = c0o1; - real kxxMzzAverage = c0o1; - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - ////Press - //d0 = ( pressPPM + pressPPP + pressMPM + pressMPP + pressPMM + pressPMP + pressMMM + pressMMP) * c1o8; - //dx = ( pressPPM + pressPPP - pressMPM - pressMPP + pressPMM + pressPMP - pressMMM - pressMMP) * c1o4; - //dy = ( pressPPM + pressPPP + pressMPM + pressMPP - pressPMM - pressPMP - pressMMM - pressMMP) * c1o4; - //dz = (-pressPPM + pressPPP - pressMPM + pressMPP - pressPMM + pressPMP - pressMMM + pressMMP) * c1o4; - //dxy = ( pressPPM + pressPPP - pressMPM - pressMPP - pressPMM - pressPMP + pressMMM + pressMMP) * c1o2; - //dxz = (-pressPPM + pressPPP + pressMPM - pressMPP - pressPMM + pressPMP + pressMMM - pressMMP) * c1o2; - //dyz = (-pressPPM + pressPPP - pressMPM + pressMPP + pressPMM - pressPMP + pressMMM - pressMMP) * c1o2; - //dxyz = -pressPPM + pressPPP + pressMPM - pressMPP + pressPMM - pressPMP - pressMMM + pressMMP; - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho - d0 = ( ((drhoPPM + drhoMMP) + (drhoMPM + drhoPMP)) + ((drhoPMM + drhoMPP) + (drhoMMM + drhoPPP))) * c1o8; - dx = ( ((drhoPPM - drhoMMP) + (drhoPMM - drhoMPP)) + ((drhoPMP - drhoMPM) + (drhoPPP - drhoMMM))) * c1o4; - dy = ( ((drhoPPM - drhoMMP) + (drhoMPP - drhoPMM)) + ((drhoMPM - drhoPMP) + (drhoPPP - drhoMMM))) * c1o4; - dz = ( ((drhoMMP - drhoPPM) + (drhoPPP - drhoMMM)) + ((drhoPMP - drhoMPM) + (drhoMPP - drhoPMM))) * c1o4; - dxy = ( ((drhoPPM - drhoPMP) + (drhoPPP - drhoPMM)) + ((drhoMMP - drhoMPM) + (drhoMMM - drhoMPP))) * c1o2; - dxz = ( ((drhoMMM - drhoPPM) + (drhoPPP - drhoMMP)) + ((drhoMPM - drhoPMM) + (drhoPMP - drhoMPP))) * c1o2; - dyz = ( ((drhoMPP - drhoPPM) + (drhoPPP - drhoMPM)) + ((drhoPMM - drhoMMP) + (drhoMMM - drhoPMP))) * c1o2; + a0 = c1o8*(((vx1PPM + vx1MMP) + (vx1MPM + vx1PMP)) + ((vx1PMM + vx1MPP) + (vx1MMM + vx1PPP))); + ax = c1o4*(((vx1PPM - vx1MMP) + (vx1PPP - vx1MMM)) + ((vx1PMP - vx1MPM) + (vx1PMM - vx1MPP))); + ay = c1o4*(((vx1PPM - vx1MMP) + (vx1PPP - vx1MMM)) + ((vx1MPM - vx1PMP) + (vx1MPP - vx1PMM))); + az = c1o4*(((vx1MMP - vx1PPM) + (vx1PPP - vx1MMM)) + ((vx1PMP - vx1MPM) + (vx1MPP - vx1PMM))); + axy = c1o2*(((vx1PPM - vx1PMP) + (vx1MMM - vx1MPP)) + ((vx1MMP - vx1MPM) + (vx1PPP - vx1PMM))); + axz = c1o2*(((vx1PMP - vx1PPM) + (vx1MMM - vx1MPP)) + ((vx1MPM - vx1MMP) + (vx1PPP - vx1PMM))); + ayz = c1o2*(((vx1PPP - vx1MPM) + (vx1PMM - vx1MMP)) + ((vx1MPP - vx1PPM) + (vx1MMM - vx1PMP))); + //axyz= ((vx1MMP - vx1PPM) + (vx1PPP - vx1MMM)) + ((vx1MPM - vx1PMP) + (vx1PMM - vx1MPP)) ; + b0 = c1o8*(((vx2PPM + vx2MMP) + (vx2MPM + vx2PMP)) + ((vx2PMM + vx2MPP) + (vx2MMM + vx2PPP))); + bx = c1o4*(((vx2PPM - vx2MMP) + (vx2PPP - vx2MMM)) + ((vx2PMP - vx2MPM) + (vx2PMM - vx2MPP))); + by = c1o4*(((vx2PPM - vx2MMP) + (vx2PPP - vx2MMM)) + ((vx2MPM - vx2PMP) + (vx2MPP - vx2PMM))); + bz = c1o4*(((vx2MMP - vx2PPM) + (vx2PPP - vx2MMM)) + ((vx2PMP - vx2MPM) + (vx2MPP - vx2PMM))); + bxy = c1o2*(((vx2PPM - vx2MPP) + (vx2MMM - vx2PMP)) + ((vx2MMP - vx2PMM) + (vx2PPP - vx2MPM))); + bxz = c1o2*(((vx2MMM - vx2PPM) + (vx2PMP - vx2MPP)) + ((vx2MPM - vx2PMM) + (vx2PPP - vx2MMP))); + byz = c1o2*(((vx2MPP - vx2PPM) + (vx2MMM - vx2PMP)) + ((vx2PMM - vx2MMP) + (vx2PPP - vx2MPM))); + //bxyz= ((vx2MMP - vx2PPM) + (vx2PPP - vx2MMM)) + ((vx2MPM - vx2PMP) + (vx2PMM - vx2MPP)) ; + c0 = c1o8*(((vx3PPM + vx3MMP) + (vx3MPM + vx3PMP)) + ((vx3PMM + vx3MPP) + (vx3MMM + vx3PPP))); + cx = c1o4*(((vx3PPM - vx3MMP) + (vx3PPP - vx3MMM)) + ((vx3PMP - vx3MPM) + (vx3PMM - vx3MPP))); + cy = c1o4*(((vx3PPM - vx3MMP) + (vx3PPP - vx3MMM)) + ((vx3MPM - vx3PMP) + (vx3MPP - vx3PMM))); + cz = c1o4*(((vx3MMP - vx3PPM) + (vx3PPP - vx3MMM)) + ((vx3PMP - vx3MPM) + (vx3MPP - vx3PMM))); + cxy = c1o2*(((vx3PPM - vx3PMP) + (vx3MMM - vx3MPP)) + ((vx3MMP - vx3MPM) + (vx3PPP - vx3PMM))); + cxz = c1o2*(((vx3MMM - vx3PPM) + (vx3PMP - vx3MPP)) + ((vx3MPM - vx3PMM) + (vx3PPP - vx3MMP))); + cyz = c1o2*(((vx3MMM - vx3PPM) + (vx3MPP - vx3PMP)) + ((vx3PMM - vx3MPM) + (vx3PPP - vx3MMP))); + //cxyz= ((vx3MMP - vx3PPM) + (vx3PPP - vx3MMM)) + ((vx3MPM - vx3PMP) + (vx3PMM - vx3MPP)) ; + + //bxx = zero; + //cxx = zero; + //ayy = zero; + //cyy = zero; + //azz = zero; + //bzz = zero; + //axx = zero; + //byy = zero; + //czz = zero; + + bxx = c1o8*(((kxyFromfcNEQPPP - kxyFromfcNEQMMM) + (kxyFromfcNEQPMM - kxyFromfcNEQMPP)) + ((kxyFromfcNEQPMP - kxyFromfcNEQMPM) + (kxyFromfcNEQPPM - kxyFromfcNEQMMP))) - c1o2*axy; + cxx = c1o8*(((kxzFromfcNEQPPP - kxzFromfcNEQMMM) + (kxzFromfcNEQPMM - kxzFromfcNEQMPP)) + ((kxzFromfcNEQPMP - kxzFromfcNEQMPM) + (kxzFromfcNEQPPM - kxzFromfcNEQMMP))) - c1o2*axz; + + ayy = c1o8*(((kxyFromfcNEQPPP - kxyFromfcNEQMMM) + (kxyFromfcNEQPPM - kxyFromfcNEQMMP)) - ((kxyFromfcNEQPMM - kxyFromfcNEQMPP) + (kxyFromfcNEQPMP - kxyFromfcNEQMPM))) - c1o2*bxy; + cyy = c1o8*(((kyzFromfcNEQPPP - kyzFromfcNEQMMM) + (kyzFromfcNEQPPM - kyzFromfcNEQMMP)) - ((kyzFromfcNEQPMM - kyzFromfcNEQMPP) + (kyzFromfcNEQPMP - kyzFromfcNEQMPM))) - c1o2*byz; + + azz = c1o8*(((kxzFromfcNEQPPP - kxzFromfcNEQMMM) - (kxzFromfcNEQPMM - kxzFromfcNEQMPP)) + ((kxzFromfcNEQPMP - kxzFromfcNEQMPM) - (kxzFromfcNEQPPM - kxzFromfcNEQMMP))) - c1o2*cxz; + bzz = c1o8*(((kyzFromfcNEQPPP - kyzFromfcNEQMMM) - (kyzFromfcNEQPMM - kyzFromfcNEQMPP)) + ((kyzFromfcNEQPMP - kyzFromfcNEQMPM) - (kyzFromfcNEQPPM - kyzFromfcNEQMMP))) - c1o2*cyz; + + axx = ( c1o16*(((kxxMyyFromfcNEQPPP - kxxMyyFromfcNEQMMM) + (kxxMyyFromfcNEQPMM - kxxMyyFromfcNEQMPP)) + ((kxxMyyFromfcNEQPMP - kxxMyyFromfcNEQMPM) + (kxxMyyFromfcNEQPPM - kxxMyyFromfcNEQMMP))) - c1o4*bxy) + + ( c1o16*(((kxxMzzFromfcNEQPPP - kxxMzzFromfcNEQMMM) + (kxxMzzFromfcNEQPMM - kxxMzzFromfcNEQMPP)) + ((kxxMzzFromfcNEQPMP - kxxMzzFromfcNEQMPM) + (kxxMzzFromfcNEQPPM - kxxMzzFromfcNEQMMP))) - c1o4*cxz); + + byy = (-c1o16*(((kxxMyyFromfcNEQPPP - kxxMyyFromfcNEQMMM) - (kxxMyyFromfcNEQPMM - kxxMyyFromfcNEQMPP)) + ((kxxMyyFromfcNEQPPM - kxxMyyFromfcNEQMMP) - (kxxMyyFromfcNEQPMP - kxxMyyFromfcNEQMPM))) - c1o4*axy) + + ( c1o16*(((kyyMzzFromfcNEQPPP - kyyMzzFromfcNEQMMM) - (kyyMzzFromfcNEQPMM - kyyMzzFromfcNEQMPP)) + ((kyyMzzFromfcNEQPPM - kyyMzzFromfcNEQMMP) - (kyyMzzFromfcNEQPMP - kyyMzzFromfcNEQMPM))) - c1o4*cyz); + + czz = (-c1o16*(((kxxMzzFromfcNEQPPP - kxxMzzFromfcNEQMMM) - (kxxMzzFromfcNEQPMM - kxxMzzFromfcNEQMPP)) - ((kxxMzzFromfcNEQPPM - kxxMzzFromfcNEQMMP) - (kxxMzzFromfcNEQPMP - kxxMzzFromfcNEQMPM))) - c1o4*axz) + + ( c1o16*(((kyyMzzFromfcNEQPPP - kyyMzzFromfcNEQMMM) - (kyyMzzFromfcNEQPMM - kyyMzzFromfcNEQMPP)) - ((kyyMzzFromfcNEQPPM - kyyMzzFromfcNEQMMP) - (kyyMzzFromfcNEQPMP - kyyMzzFromfcNEQMPM))) - c1o4*byz); + + a0 -= c1o4*(axx + ayy + azz); + b0 -= c1o4*(bxx + byy + bzz); + c0 -= c1o4*(cxx + cyy + czz); + + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + real kxyAverage = c0o1; + real kyzAverage = c0o1; + real kxzAverage = c0o1; + real kxxMyyAverage = c0o1; + real kxxMzzAverage = c0o1; + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + ////Press + //d0 = ( pressPPM + pressPPP + pressMPM + pressMPP + pressPMM + pressPMP + pressMMM + pressMMP) * c1o8; + //dx = ( pressPPM + pressPPP - pressMPM - pressMPP + pressPMM + pressPMP - pressMMM - pressMMP) * c1o4; + //dy = ( pressPPM + pressPPP + pressMPM + pressMPP - pressPMM - pressPMP - pressMMM - pressMMP) * c1o4; + //dz = (-pressPPM + pressPPP - pressMPM + pressMPP - pressPMM + pressPMP - pressMMM + pressMMP) * c1o4; + //dxy = ( pressPPM + pressPPP - pressMPM - pressMPP - pressPMM - pressPMP + pressMMM + pressMMP) * c1o2; + //dxz = (-pressPPM + pressPPP + pressMPM - pressMPP - pressPMM + pressPMP + pressMMM - pressMMP) * c1o2; + //dyz = (-pressPPM + pressPPP - pressMPM + pressMPP + pressPMM - pressPMP + pressMMM - pressMMP) * c1o2; + //dxyz = -pressPPM + pressPPP + pressMPM - pressMPP + pressPMM - pressPMP - pressMMM + pressMMP; + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho + d0 = ( ((drhoPPM + drhoMMP) + (drhoMPM + drhoPMP)) + ((drhoPMM + drhoMPP) + (drhoMMM + drhoPPP))) * c1o8; + dx = ( ((drhoPPM - drhoMMP) + (drhoPMM - drhoMPP)) + ((drhoPMP - drhoMPM) + (drhoPPP - drhoMMM))) * c1o4; + dy = ( ((drhoPPM - drhoMMP) + (drhoMPP - drhoPMM)) + ((drhoMPM - drhoPMP) + (drhoPPP - drhoMMM))) * c1o4; + dz = ( ((drhoMMP - drhoPPM) + (drhoPPP - drhoMMM)) + ((drhoPMP - drhoMPM) + (drhoMPP - drhoPMM))) * c1o4; + dxy = ( ((drhoPPM - drhoPMP) + (drhoPPP - drhoPMM)) + ((drhoMMP - drhoMPM) + (drhoMMM - drhoMPP))) * c1o2; + dxz = ( ((drhoMMM - drhoPPM) + (drhoPPP - drhoMMP)) + ((drhoMPM - drhoPMM) + (drhoPMP - drhoMPP))) * c1o2; + dyz = ( ((drhoMPP - drhoPPM) + (drhoPPP - drhoMPM)) + ((drhoPMM - drhoMMP) + (drhoMMM - drhoPMP))) * c1o2; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // // Bernd das Brot - // // - // x------x - // | | - // | ---+--->X - // | | \ - // x------x \ - // off-vector + // + // x------x + // | | + // | ---+--->X + // | | \ + // x------x \ + // off-vector //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// a0 = a0 + xoff * ax + yoff * ay + zoff * az + xoff_sq * axx + yoff_sq * ayy + zoff_sq * azz + xoff*yoff*axy + xoff*zoff*axz + yoff*zoff*ayz; ax = ax + c2o1 * xoff * axx + yoff * axy + zoff * axz; @@ -742,416 +742,416 @@ __global__ void scaleFC_0817_comp_27( real* DC, cx = cx + c2o1 * xoff * cxx + yoff * cxy + zoff * cxz; cy = cy + c2o1 * yoff * cyy + xoff * cxy + zoff * cyz; cz = cz + c2o1 * zoff * czz + xoff * cxz + yoff * cyz; - d0 = d0 + xoff * dx + yoff * dy + zoff * dz + xoff*yoff*dxy + xoff*zoff*dxz + yoff*zoff*dyz; + d0 = d0 + xoff * dx + yoff * dy + zoff * dz + xoff*yoff*dxy + xoff*zoff*dxz + yoff*zoff*dyz; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + real mfcbb = c0o1; + real mfabb = c0o1; + real mfbcb = c0o1; + real mfbab = c0o1; + real mfbbc = c0o1; + real mfbba = c0o1; + real mfccb = c0o1; + real mfaab = c0o1; + real mfcab = c0o1; + real mfacb = c0o1; + real mfcbc = c0o1; + real mfaba = c0o1; + real mfcba = c0o1; + real mfabc = c0o1; + real mfbcc = c0o1; + real mfbaa = c0o1; + real mfbca = c0o1; + real mfbac = c0o1; + real mfbbb = c0o1; + real mfccc = c0o1; + real mfaac = c0o1; + real mfcac = c0o1; + real mfacc = c0o1; + real mfcca = c0o1; + real mfaaa = c0o1; + real mfcaa = c0o1; + real mfaca = c0o1; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + real m0, m1, m2, oMdrho; + real mxxPyyPzz, mxxMyy, mxxMzz, mxxyPyzz, mxxyMyzz, mxxzPyyz, mxxzMyyz, mxyyPxzz, mxyyMxzz; + //real qudricLimit = c1o100;//ganz schlechte Idee -> muss global sein + //real O3 = c2o1 - o; + //real residu, residutmp; + //residutmp = c0o1;///*-*/ c2o9 * (1./o - c1o2) * eps_new * eps_new; + real NeqOn = c1o1;//zero;//one; //.... one = on ..... zero = off + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real mfcbb = c0o1; - real mfabb = c0o1; - real mfbcb = c0o1; - real mfbab = c0o1; - real mfbbc = c0o1; - real mfbba = c0o1; - real mfccb = c0o1; - real mfaab = c0o1; - real mfcab = c0o1; - real mfacb = c0o1; - real mfcbc = c0o1; - real mfaba = c0o1; - real mfcba = c0o1; - real mfabc = c0o1; - real mfbcc = c0o1; - real mfbaa = c0o1; - real mfbca = c0o1; - real mfbac = c0o1; - real mfbbb = c0o1; - real mfccc = c0o1; - real mfaac = c0o1; - real mfcac = c0o1; - real mfacc = c0o1; - real mfcca = c0o1; - real mfaaa = c0o1; - real mfcaa = c0o1; - real mfaca = c0o1; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real m0, m1, m2, oMdrho; - real mxxPyyPzz, mxxMyy, mxxMzz, mxxyPyzz, mxxyMyzz, mxxzPyyz, mxxzMyyz, mxyyPxzz, mxyyMxzz; - //real qudricLimit = c1o100;//ganz schlechte Idee -> muss global sein - //real O3 = c2o1 - o; - //real residu, residutmp; - //residutmp = c0o1;///*-*/ c2o9 * (1./o - c1o2) * eps_new * eps_new; - real NeqOn = c1o1;//zero;//one; //.... one = on ..... zero = off - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position C 0., 0., 0. - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //x = 0.; - //y = 0.; - //z = 0.; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //real mxoff = -xoff; - //real myoff = -yoff; - //real mzoff = -zoff; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //press = pressPPP * (c1o8 - c1o4 * mxoff - c1o4 * myoff - c1o4 * mzoff) + - // pressMPP * (c1o8 + c1o4 * mxoff - c1o4 * myoff - c1o4 * mzoff) + - // pressPMP * (c1o8 - c1o4 * mxoff + c1o4 * myoff - c1o4 * mzoff) + - // pressMMP * (c1o8 + c1o4 * mxoff + c1o4 * myoff - c1o4 * mzoff) + - // pressPPM * (c1o8 - c1o4 * mxoff - c1o4 * myoff + c1o4 * mzoff) + - // pressMPM * (c1o8 + c1o4 * mxoff - c1o4 * myoff + c1o4 * mzoff) + - // pressPMM * (c1o8 - c1o4 * mxoff + c1o4 * myoff + c1o4 * mzoff) + - // pressMMM * (c1o8 + c1o4 * mxoff + c1o4 * myoff + c1o4 * mzoff); - //drho = drhoPPP * (c1o8 - c1o4 * xoff - c1o4 * yoff - c1o4 * zoff) + - // drhoMPP * (c1o8 + c1o4 * xoff - c1o4 * yoff - c1o4 * zoff) + - // drhoPMP * (c1o8 - c1o4 * xoff + c1o4 * yoff - c1o4 * zoff) + - // drhoMMP * (c1o8 + c1o4 * xoff + c1o4 * yoff - c1o4 * zoff) + - // drhoPPM * (c1o8 - c1o4 * xoff - c1o4 * yoff + c1o4 * zoff) + - // drhoMPM * (c1o8 + c1o4 * xoff - c1o4 * yoff + c1o4 * zoff) + - // drhoPMM * (c1o8 - c1o4 * xoff + c1o4 * yoff + c1o4 * zoff) + - // drhoMMM * (c1o8 + c1o4 * xoff + c1o4 * yoff + c1o4 * zoff); - press = d0; - vvx = a0; - vvy = b0; - vvz = c0; - - //mfaaa = drho; - //mfaaa = press + (ax+by+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //two - // linear combinations - real oP = o;// :( - mxxPyyPzz = mfaaa -c2o3*(ax+by+cz)*eps_new/oP*(c1o1+press); - //mxxMyy = -c2o3*(ax - by)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy)*eps_new/o; - //mfbab = -c1o3 * (az + cx)*eps_new/o; - //mfbba = -c1o3 * (ay + bx)*eps_new/o; - mxxMyy = -c2o3*((ax - by)+kxxMyyAverage)*eps_new/o * (c1o1 + press); - mxxMzz = -c2o3*((ax - cz)+kxxMzzAverage)*eps_new/o * (c1o1 + press); - - mfabb = -c1o3 * ((bz + cy)+kyzAverage)*eps_new/o * (c1o1 + press); - mfbab = -c1o3 * ((az + cx)+kxzAverage)*eps_new/o * (c1o1 + press); - mfbba = -c1o3 * ((ay + bx)+kxyAverage)*eps_new/o * (c1o1 + press); - - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //3. - // linear combinations - //residu = residutmp * (ayz + bxz + cxy ); - //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mfbbb = c0o1; - - //residu = residutmp * (axy + two*bxx + two*bzz + cyz ); - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz )); - //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyPyzz = c0o1; - - //residu = residutmp * (axy + two*bxx - two*bzz - cyz ); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz ); - //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyMyzz = c0o1; - - //residu = residutmp * (axz + byz + two*cxx + two*cyy ); - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy )); - //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzPyyz = c0o1; - - //residu = residutmp * (axz - byz + two*cxx - two*cyy ); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy ); - //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzMyyz = c0o1; - - //residu = residutmp * (two*ayy + two*azz + bxy + cxz ); - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz ); - //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyPxzz = c0o1; - - //residu = residutmp * (two*ayy - two*azz + bxy - cxz ); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz ); - //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyMxzz = c0o1; - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4. - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - //index 0 - k000 = posC[k]; - kM00 = neighborCX[k000]; - k0M0 = neighborCY[k000]; - k00M = neighborCZ[k000]; - kMM0 = neighborCY[kM00]; - kM0M = neighborCZ[kM00]; - k0MM = neighborCZ[k0M0]; - kMMM = neighborCZ[kMM0]; - //////////////////////////////////////////////////////////////////////////////////// - - - //////////////////////////////////////////////////////////////////////////////////// - fP00dest[k000] = mfcbb; - fM00dest[kM00] = mfabb; - f0P0dest[k000] = mfbcb; - f0M0dest[k0M0] = mfbab; - f00Pdest[k000] = mfbbc; - f00Mdest[k00M] = mfbba; - fPP0dest[k000] = mfccb; - fMM0dest[kMM0] = mfaab; - fPM0dest[k0M0] = mfcab; - fMP0dest[kM00] = mfacb; - fP0Pdest[k000] = mfcbc; - fM0Mdest[kM0M] = mfaba; - fP0Mdest[k00M] = mfcba; - fM0Pdest[kM00] = mfabc; - f0PPdest[k000] = mfbcc; - f0MMdest[k0MM] = mfbaa; - f0PMdest[k00M] = mfbca; - f0MPdest[k0M0] = mfbac; - f000dest[k000] = mfbbb; - fMMMdest[kMMM] = mfaaa; - fMMPdest[kMM0] = mfaac; - fMPPdest[kM00] = mfacc; - fMPMdest[kM0M] = mfaca; - fPPMdest[k00M] = mfcca; - fPPPdest[k000] = mfccc; - fPMPdest[k0M0] = mfcac; - fPMMdest[k0MM] = mfcaa; - //////////////////////////////////////////////////////////////////////////////////// + // + //Position C 0., 0., 0. + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //x = 0.; + //y = 0.; + //z = 0.; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //real mxoff = -xoff; + //real myoff = -yoff; + //real mzoff = -zoff; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //press = pressPPP * (c1o8 - c1o4 * mxoff - c1o4 * myoff - c1o4 * mzoff) + + // pressMPP * (c1o8 + c1o4 * mxoff - c1o4 * myoff - c1o4 * mzoff) + + // pressPMP * (c1o8 - c1o4 * mxoff + c1o4 * myoff - c1o4 * mzoff) + + // pressMMP * (c1o8 + c1o4 * mxoff + c1o4 * myoff - c1o4 * mzoff) + + // pressPPM * (c1o8 - c1o4 * mxoff - c1o4 * myoff + c1o4 * mzoff) + + // pressMPM * (c1o8 + c1o4 * mxoff - c1o4 * myoff + c1o4 * mzoff) + + // pressPMM * (c1o8 - c1o4 * mxoff + c1o4 * myoff + c1o4 * mzoff) + + // pressMMM * (c1o8 + c1o4 * mxoff + c1o4 * myoff + c1o4 * mzoff); + //drho = drhoPPP * (c1o8 - c1o4 * xoff - c1o4 * yoff - c1o4 * zoff) + + // drhoMPP * (c1o8 + c1o4 * xoff - c1o4 * yoff - c1o4 * zoff) + + // drhoPMP * (c1o8 - c1o4 * xoff + c1o4 * yoff - c1o4 * zoff) + + // drhoMMP * (c1o8 + c1o4 * xoff + c1o4 * yoff - c1o4 * zoff) + + // drhoPPM * (c1o8 - c1o4 * xoff - c1o4 * yoff + c1o4 * zoff) + + // drhoMPM * (c1o8 + c1o4 * xoff - c1o4 * yoff + c1o4 * zoff) + + // drhoPMM * (c1o8 - c1o4 * xoff + c1o4 * yoff + c1o4 * zoff) + + // drhoMMM * (c1o8 + c1o4 * xoff + c1o4 * yoff + c1o4 * zoff); + press = d0; + vvx = a0; + vvy = b0; + vvz = c0; + + //mfaaa = drho; + //mfaaa = press + (ax+by+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1; + //oMdrho = one - mfaaa; + + //two + // linear combinations + real oP = o;// :( + mxxPyyPzz = mfaaa -c2o3*(ax+by+cz)*eps_new/oP*(c1o1+press); + //mxxMyy = -c2o3*(ax - by)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy)*eps_new/o; + //mfbab = -c1o3 * (az + cx)*eps_new/o; + //mfbba = -c1o3 * (ay + bx)*eps_new/o; + mxxMyy = -c2o3*((ax - by)+kxxMyyAverage)*eps_new/o * (c1o1 + press); + mxxMzz = -c2o3*((ax - cz)+kxxMzzAverage)*eps_new/o * (c1o1 + press); + + mfabb = -c1o3 * ((bz + cy)+kyzAverage)*eps_new/o * (c1o1 + press); + mfbab = -c1o3 * ((az + cx)+kxzAverage)*eps_new/o * (c1o1 + press); + mfbba = -c1o3 * ((ay + bx)+kxyAverage)*eps_new/o * (c1o1 + press); + + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //3. + // linear combinations + //residu = residutmp * (ayz + bxz + cxy ); + //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mfbbb = c0o1; + + //residu = residutmp * (axy + two*bxx + two*bzz + cyz ); + //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz )); + //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyPyzz = c0o1; + + //residu = residutmp * (axy + two*bxx - two*bzz - cyz ); + //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz ); + //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyMyzz = c0o1; + + //residu = residutmp * (axz + byz + two*cxx + two*cyy ); + //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy )); + //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzPyyz = c0o1; + + //residu = residutmp * (axz - byz + two*cxx - two*cyy ); + //residu = c1o9*(axz - byz - 2*cxx + 2*cyy ); + //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzMyyz = c0o1; + + //residu = residutmp * (two*ayy + two*azz + bxy + cxz ); + //residu = c1o9*(2*ayy + 2*azz - bxy - cxz ); + //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyPxzz = c0o1; + + //residu = residutmp * (two*ayy - two*azz + bxy - cxz ); + //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz ); + //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyMxzz = c0o1; + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4. + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + //index 0 + k000 = posC[k]; + kM00 = neighborCX[k000]; + k0M0 = neighborCY[k000]; + k00M = neighborCZ[k000]; + kMM0 = neighborCY[kM00]; + kM0M = neighborCZ[kM00]; + k0MM = neighborCZ[k0M0]; + kMMM = neighborCZ[kMM0]; + //////////////////////////////////////////////////////////////////////////////////// + + + //////////////////////////////////////////////////////////////////////////////////// + fP00dest[k000] = mfcbb; + fM00dest[kM00] = mfabb; + f0P0dest[k000] = mfbcb; + f0M0dest[k0M0] = mfbab; + f00Pdest[k000] = mfbbc; + f00Mdest[k00M] = mfbba; + fPP0dest[k000] = mfccb; + fMM0dest[kMM0] = mfaab; + fPM0dest[k0M0] = mfcab; + fMP0dest[kM00] = mfacb; + fP0Pdest[k000] = mfcbc; + fM0Mdest[kM0M] = mfaba; + fP0Mdest[k00M] = mfcba; + fM0Pdest[kM00] = mfabc; + f0PPdest[k000] = mfbcc; + f0MMdest[k0MM] = mfbaa; + f0PMdest[k00M] = mfbca; + f0MPdest[k0M0] = mfbac; + f000dest[k000] = mfbbb; + fMMMdest[kMMM] = mfaaa; + fMMPdest[kMM0] = mfaac; + fMPPdest[kM00] = mfacc; + fMPMdest[kM0M] = mfaca; + fPPMdest[k00M] = mfcca; + fPPPdest[k000] = mfccc; + fPMPdest[k0M0] = mfcac; + fPMMdest[k0MM] = mfcaa; + //////////////////////////////////////////////////////////////////////////////////// } } ////////////////////////////////////////////////////////////////////////// @@ -1211,27 +1211,27 @@ __global__ void scaleFC_0817_comp_27( real* DC, ////////////////////////////////////////////////////////////////////////// __global__ void scaleFC_AA2016_comp_27(real* DC, - real* DF, - unsigned int* neighborCX, - unsigned int* neighborCY, - unsigned int* neighborCZ, - unsigned int* neighborFX, - unsigned int* neighborFY, - unsigned int* neighborFZ, - unsigned long long numberOfLBnodesCoarse, - unsigned long long numberOfLBnodesFine, - bool isEvenTimestep, - unsigned int* posC, - unsigned int* posFSWB, - unsigned int kFC, - real omCoarse, - real omFine, - real nu, - unsigned int nxC, - unsigned int nyC, - unsigned int nxF, - unsigned int nyF, - ICellNeigh offFC) + real* DF, + unsigned int* neighborCX, + unsigned int* neighborCY, + unsigned int* neighborCZ, + unsigned int* neighborFX, + unsigned int* neighborFY, + unsigned int* neighborFZ, + unsigned long long numberOfLBnodesCoarse, + unsigned long long numberOfLBnodesFine, + bool isEvenTimestep, + unsigned int* posC, + unsigned int* posFSWB, + unsigned int kFC, + real omCoarse, + real omFine, + real nu, + unsigned int nxC, + unsigned int nyC, + unsigned int nxF, + unsigned int nyF, + ICellNeigh offFC) { real *feF, *fwF, *fnF, *fsF, *ftF, *fbF, *fneF, *fswF, *fseF, *fnwF, *fteF, *fbwF, *fbeF, *ftwF, *ftnF, *fbsF, *fbnF, *ftsF, *fzeroF, *ftneF, *ftswF, *ftseF, *ftnwF, *fbneF, *fbswF, *fbseF, *fbnwF; @@ -1369,26 +1369,26 @@ __global__ void scaleFC_AA2016_comp_27(real* DC, real kxyFromfcNEQ_SEB, kyzFromfcNEQ_SEB, kxzFromfcNEQ_SEB, kxxMyyFromfcNEQ_SEB, kxxMzzFromfcNEQ_SEB; real a0, ax, ay, az, axx, ayy, azz, axy, axz, ayz, b0, bx, by, bz, bxx, byy, bzz, bxy, bxz, byz, c0, cx, cy, cz, cxx, cyy, czz, cxy, cxz, cyz/*, axyz, bxyz, cxyz*/; real d0, dx, dy, dz, dxy, dxz, dyz/*, dxyz*/; - ////////////////////////////////////////////////////////////////////////////////////// - real mfcbb, mfabb, mfbcb, mfbab, mfbbc, mfbba, mfccb, mfaab, mfcab, mfacb, mfcbc, mfaba, mfcba, mfabc, mfbcc, mfbaa, mfbca, mfbac, mfbbb, mfccc, mfaac, mfcac, mfacc, mfcca, mfaaa, mfcaa, mfaca; - //real wadjust; - //real qudricLimitP = 0.01f;// * 0.0001f; - //real qudricLimitM = 0.01f;// * 0.0001f; - //real qudricLimitD = 0.01f;// * 0.001f; - //real omega = omFine; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real m0, m1, m2, vvx, vvy, vvz, vx2, vy2, vz2, oMdrho; - real mxxPyyPzz, mxxMyy, mxxMzz, mxxyPyzz, mxxyMyzz, mxxzPyyz, mxxzMyyz, mxyyPxzz, mxyyMxzz; - real NeqOn = c1o1; - real drho, rho; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //real OxxPyyPzz; - //real OxyyPxzz; - //real OxyyMxzz; - //real Oxyz; - //real O4, O5, O6; - //real CUMcbb, CUMbcb, CUMbbc, CUMcca, CUMcac, CUMacc, CUMbcc, CUMcbc, CUMccb, CUMccc; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////////////////// + real mfcbb, mfabb, mfbcb, mfbab, mfbbc, mfbba, mfccb, mfaab, mfcab, mfacb, mfcbc, mfaba, mfcba, mfabc, mfbcc, mfbaa, mfbca, mfbac, mfbbb, mfccc, mfaac, mfcac, mfacc, mfcca, mfaaa, mfcaa, mfaca; + //real wadjust; + //real qudricLimitP = 0.01f;// * 0.0001f; + //real qudricLimitM = 0.01f;// * 0.0001f; + //real qudricLimitD = 0.01f;// * 0.001f; + //real omega = omFine; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + real m0, m1, m2, vvx, vvy, vvz, vx2, vy2, vz2, oMdrho; + real mxxPyyPzz, mxxMyy, mxxMzz, mxxyPyzz, mxxyMyzz, mxxzPyyz, mxxzMyyz, mxyyPxzz, mxyyMxzz; + real NeqOn = c1o1; + real drho, rho; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //real OxxPyyPzz; + //real OxyyPxzz; + //real OxyyMxzz; + //real Oxyz; + //real O4, O5, O6; + //real CUMcbb, CUMbcb, CUMbbc, CUMcca, CUMcac, CUMacc, CUMbcc, CUMcbc, CUMccb, CUMccc; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// if(k<kFC) { @@ -1452,8 +1452,8 @@ __global__ void scaleFC_AA2016_comp_27(real* DC, drho_SWB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; vx1_SWB = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_SWB); - vx2_SWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SWB); - vx3_SWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SWB); + vx2_SWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SWB); + vx3_SWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SWB); kxyFromfcNEQ_SWB = -c3o1*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_SWB) - ((vx1_SWB*vx2_SWB))); kyzFromfcNEQ_SWB = -c3o1*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_SWB) - ((vx2_SWB*vx3_SWB))); @@ -1461,306 +1461,306 @@ __global__ void scaleFC_AA2016_comp_27(real* DC, kxxMyyFromfcNEQ_SWB = -c3o2*omegaS *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_SWB) - ((vx1_SWB*vx1_SWB-vx2_SWB*vx2_SWB))); kxxMzzFromfcNEQ_SWB = -c3o2*omegaS *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_SWB) - ((vx1_SWB*vx1_SWB-vx3_SWB*vx3_SWB))); - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - mfcbb = f_E ; - mfabb = f_W ; - mfbcb = f_N ; - mfbab = f_S ; - mfbbc = f_T ; - mfbba = f_B ; - mfccb = f_NE ; - mfaab = f_SW ; - mfcab = f_SE ; - mfacb = f_NW ; - mfcbc = f_TE ; - mfaba = f_BW ; - mfcba = f_BE ; - mfabc = f_TW ; - mfbcc = f_TN ; - mfbaa = f_BS ; - mfbca = f_BN ; - mfbac = f_TS ; - mfbbb = f_ZERO; - mfccc = f_TNE ; - mfaac = f_TSW ; - mfcac = f_TSE ; - mfacc = f_TNW ; - mfcca = f_BNE ; - mfaaa = f_BSW ; - mfcaa = f_BSE ; - mfaca = f_BNW ; - //////////////////////////////////////////////////////////////////////////////////// - drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + - (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + - ((mfabb+mfcbb) + (mfbab+mfbcb)) + (mfbba+mfbbc)) + mfbbb; - - rho = c1o1+drho; - //////////////////////////////////////////////////////////////////////////////////// - vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + - (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + - (mfcbb-mfabb)) / rho; - vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + - (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + - (mfbcb-mfbab)) / rho; - vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + - (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + - (mfbbc-mfbba)) / rho; - //////////////////////////////////////////////////////////////////////////////////// - //fast - oMdrho = c1o1; // comp special - vx2=vvx*vvx; - vy2=vvy*vvy; - vz2=vvz*vvz; - //////////////////////////////////////////////////////////////////////////////////// - //Hin - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m2 = mfaaa + mfaac; - m1 = mfaac - mfaaa; - m0 = m2 + mfaab; - mfaaa = m0; - m0 += c1o36 * oMdrho; - mfaab = m1 - m0 * vvz; - mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfabc; - m1 = mfabc - mfaba; - m0 = m2 + mfabb; - mfaba = m0; - m0 += c1o9 * oMdrho; - mfabb = m1 - m0 * vvz; - mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfacc; - m1 = mfacc - mfaca; - m0 = m2 + mfacb; - mfaca = m0; - m0 += c1o36 * oMdrho; - mfacb = m1 - m0 * vvz; - mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbac; - m1 = mfbac - mfbaa; - m0 = m2 + mfbab; - mfbaa = m0; - m0 += c1o9 * oMdrho; - mfbab = m1 - m0 * vvz; - mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbba + mfbbc; - m1 = mfbbc - mfbba; - m0 = m2 + mfbbb; - mfbba = m0; - m0 += c4o9 * oMdrho; - mfbbb = m1 - m0 * vvz; - mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbca + mfbcc; - m1 = mfbcc - mfbca; - m0 = m2 + mfbcb; - mfbca = m0; - m0 += c1o9 * oMdrho; - mfbcb = m1 - m0 * vvz; - mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcac; - m1 = mfcac - mfcaa; - m0 = m2 + mfcab; - mfcaa = m0; - m0 += c1o36 * oMdrho; - mfcab = m1 - m0 * vvz; - mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcba + mfcbc; - m1 = mfcbc - mfcba; - m0 = m2 + mfcbb; - mfcba = m0; - m0 += c1o9 * oMdrho; - mfcbb = m1 - m0 * vvz; - mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcca + mfccc; - m1 = mfccc - mfcca; - m0 = m2 + mfccb; - mfcca = m0; - m0 += c1o36 * oMdrho; - mfccb = m1 - m0 * vvz; - mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m2 = mfaaa + mfaca; - m1 = mfaca - mfaaa; - m0 = m2 + mfaba; - mfaaa = m0; - m0 += c1o6 * oMdrho; - mfaba = m1 - m0 * vvy; - mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfacb; - m1 = mfacb - mfaab; - m0 = m2 + mfabb; - mfaab = m0; - mfabb = m1 - m0 * vvy; - mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfacc; - m1 = mfacc - mfaac; - m0 = m2 + mfabc; - mfaac = m0; - m0 += c1o18 * oMdrho; - mfabc = m1 - m0 * vvy; - mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbca; - m1 = mfbca - mfbaa; - m0 = m2 + mfbba; - mfbaa = m0; - m0 += c2o3 * oMdrho; - mfbba = m1 - m0 * vvy; - mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbab + mfbcb; - m1 = mfbcb - mfbab; - m0 = m2 + mfbbb; - mfbab = m0; - mfbbb = m1 - m0 * vvy; - mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbac + mfbcc; - m1 = mfbcc - mfbac; - m0 = m2 + mfbbc; - mfbac = m0; - m0 += c2o9 * oMdrho; - mfbbc = m1 - m0 * vvy; - mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcca; - m1 = mfcca - mfcaa; - m0 = m2 + mfcba; - mfcaa = m0; - m0 += c1o6 * oMdrho; - mfcba = m1 - m0 * vvy; - mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcab + mfccb; - m1 = mfccb - mfcab; - m0 = m2 + mfcbb; - mfcab = m0; - mfcbb = m1 - m0 * vvy; - mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcac + mfccc; - m1 = mfccc - mfcac; - m0 = m2 + mfcbc; - mfcac = m0; - m0 += c1o18 * oMdrho; - mfcbc = m1 - m0 * vvy; - mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m2 = mfaaa + mfcaa; - m1 = mfcaa - mfaaa; - m0 = m2 + mfbaa; - mfaaa = m0; - m0 += c1o1* oMdrho; - mfbaa = m1 - m0 * vvx; - mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfcba; - m1 = mfcba - mfaba; - m0 = m2 + mfbba; - mfaba = m0; - mfbba = m1 - m0 * vvx; - mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfcca; - m1 = mfcca - mfaca; - m0 = m2 + mfbca; - mfaca = m0; - m0 += c1o3 * oMdrho; - mfbca = m1 - m0 * vvx; - mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfcab; - m1 = mfcab - mfaab; - m0 = m2 + mfbab; - mfaab = m0; - mfbab = m1 - m0 * vvx; - mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabb + mfcbb; - m1 = mfcbb - mfabb; - m0 = m2 + mfbbb; - mfabb = m0; - mfbbb = m1 - m0 * vvx; - mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacb + mfccb; - m1 = mfccb - mfacb; - m0 = m2 + mfbcb; - mfacb = m0; - mfbcb = m1 - m0 * vvx; - mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfcac; - m1 = mfcac - mfaac; - m0 = m2 + mfbac; - mfaac = m0; - m0 += c1o3 * oMdrho; - mfbac = m1 - m0 * vvx; - mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabc + mfcbc; - m1 = mfcbc - mfabc; - m0 = m2 + mfbbc; - mfabc = m0; - mfbbc = m1 - m0 * vvx; - mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacc + mfccc; - m1 = mfccc - mfacc; - m0 = m2 + mfbcc; - mfacc = m0; - m0 += c1o9 * oMdrho; - mfbcc = m1 - m0 * vvx; - mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - // linear combinations + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + mfcbb = f_E ; + mfabb = f_W ; + mfbcb = f_N ; + mfbab = f_S ; + mfbbc = f_T ; + mfbba = f_B ; + mfccb = f_NE ; + mfaab = f_SW ; + mfcab = f_SE ; + mfacb = f_NW ; + mfcbc = f_TE ; + mfaba = f_BW ; + mfcba = f_BE ; + mfabc = f_TW ; + mfbcc = f_TN ; + mfbaa = f_BS ; + mfbca = f_BN ; + mfbac = f_TS ; + mfbbb = f_ZERO; + mfccc = f_TNE ; + mfaac = f_TSW ; + mfcac = f_TSE ; + mfacc = f_TNW ; + mfcca = f_BNE ; + mfaaa = f_BSW ; + mfcaa = f_BSE ; + mfaca = f_BNW ; + //////////////////////////////////////////////////////////////////////////////////// + drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + + (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + + ((mfabb+mfcbb) + (mfbab+mfbcb)) + (mfbba+mfbbc)) + mfbbb; + + rho = c1o1+drho; + //////////////////////////////////////////////////////////////////////////////////// + vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + + (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + + (mfcbb-mfabb)) / rho; + vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + + (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + + (mfbcb-mfbab)) / rho; + vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + + (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + + (mfbbc-mfbba)) / rho; + //////////////////////////////////////////////////////////////////////////////////// + //fast + oMdrho = c1o1; // comp special + vx2=vvx*vvx; + vy2=vvy*vvy; + vz2=vvz*vvz; + //////////////////////////////////////////////////////////////////////////////////// + //Hin + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m2 = mfaaa + mfaac; + m1 = mfaac - mfaaa; + m0 = m2 + mfaab; + mfaaa = m0; + m0 += c1o36 * oMdrho; + mfaab = m1 - m0 * vvz; + mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfabc; + m1 = mfabc - mfaba; + m0 = m2 + mfabb; + mfaba = m0; + m0 += c1o9 * oMdrho; + mfabb = m1 - m0 * vvz; + mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfacc; + m1 = mfacc - mfaca; + m0 = m2 + mfacb; + mfaca = m0; + m0 += c1o36 * oMdrho; + mfacb = m1 - m0 * vvz; + mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbac; + m1 = mfbac - mfbaa; + m0 = m2 + mfbab; + mfbaa = m0; + m0 += c1o9 * oMdrho; + mfbab = m1 - m0 * vvz; + mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbba + mfbbc; + m1 = mfbbc - mfbba; + m0 = m2 + mfbbb; + mfbba = m0; + m0 += c4o9 * oMdrho; + mfbbb = m1 - m0 * vvz; + mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbca + mfbcc; + m1 = mfbcc - mfbca; + m0 = m2 + mfbcb; + mfbca = m0; + m0 += c1o9 * oMdrho; + mfbcb = m1 - m0 * vvz; + mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcac; + m1 = mfcac - mfcaa; + m0 = m2 + mfcab; + mfcaa = m0; + m0 += c1o36 * oMdrho; + mfcab = m1 - m0 * vvz; + mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcba + mfcbc; + m1 = mfcbc - mfcba; + m0 = m2 + mfcbb; + mfcba = m0; + m0 += c1o9 * oMdrho; + mfcbb = m1 - m0 * vvz; + mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcca + mfccc; + m1 = mfccc - mfcca; + m0 = m2 + mfccb; + mfcca = m0; + m0 += c1o36 * oMdrho; + mfccb = m1 - m0 * vvz; + mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m2 = mfaaa + mfaca; + m1 = mfaca - mfaaa; + m0 = m2 + mfaba; + mfaaa = m0; + m0 += c1o6 * oMdrho; + mfaba = m1 - m0 * vvy; + mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfacb; + m1 = mfacb - mfaab; + m0 = m2 + mfabb; + mfaab = m0; + mfabb = m1 - m0 * vvy; + mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfacc; + m1 = mfacc - mfaac; + m0 = m2 + mfabc; + mfaac = m0; + m0 += c1o18 * oMdrho; + mfabc = m1 - m0 * vvy; + mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbca; + m1 = mfbca - mfbaa; + m0 = m2 + mfbba; + mfbaa = m0; + m0 += c2o3 * oMdrho; + mfbba = m1 - m0 * vvy; + mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbab + mfbcb; + m1 = mfbcb - mfbab; + m0 = m2 + mfbbb; + mfbab = m0; + mfbbb = m1 - m0 * vvy; + mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbac + mfbcc; + m1 = mfbcc - mfbac; + m0 = m2 + mfbbc; + mfbac = m0; + m0 += c2o9 * oMdrho; + mfbbc = m1 - m0 * vvy; + mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcca; + m1 = mfcca - mfcaa; + m0 = m2 + mfcba; + mfcaa = m0; + m0 += c1o6 * oMdrho; + mfcba = m1 - m0 * vvy; + mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcab + mfccb; + m1 = mfccb - mfcab; + m0 = m2 + mfcbb; + mfcab = m0; + mfcbb = m1 - m0 * vvy; + mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcac + mfccc; + m1 = mfccc - mfcac; + m0 = m2 + mfcbc; + mfcac = m0; + m0 += c1o18 * oMdrho; + mfcbc = m1 - m0 * vvy; + mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m2 = mfaaa + mfcaa; + m1 = mfcaa - mfaaa; + m0 = m2 + mfbaa; + mfaaa = m0; + m0 += c1o1* oMdrho; + mfbaa = m1 - m0 * vvx; + mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfcba; + m1 = mfcba - mfaba; + m0 = m2 + mfbba; + mfaba = m0; + mfbba = m1 - m0 * vvx; + mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfcca; + m1 = mfcca - mfaca; + m0 = m2 + mfbca; + mfaca = m0; + m0 += c1o3 * oMdrho; + mfbca = m1 - m0 * vvx; + mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfcab; + m1 = mfcab - mfaab; + m0 = m2 + mfbab; + mfaab = m0; + mfbab = m1 - m0 * vvx; + mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabb + mfcbb; + m1 = mfcbb - mfabb; + m0 = m2 + mfbbb; + mfabb = m0; + mfbbb = m1 - m0 * vvx; + mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacb + mfccb; + m1 = mfccb - mfacb; + m0 = m2 + mfbcb; + mfacb = m0; + mfbcb = m1 - m0 * vvx; + mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfcac; + m1 = mfcac - mfaac; + m0 = m2 + mfbac; + mfaac = m0; + m0 += c1o3 * oMdrho; + mfbac = m1 - m0 * vvx; + mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabc + mfcbc; + m1 = mfcbc - mfabc; + m0 = m2 + mfbbc; + mfabc = m0; + mfbbc = m1 - m0 * vvx; + mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacc + mfccc; + m1 = mfccc - mfacc; + m0 = m2 + mfbcc; + mfacc = m0; + m0 += c1o9 * oMdrho; + mfbcc = m1 - m0 * vvx; + mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + // linear combinations - mxxyPyzz = mfcba + mfabc; - mxxyMyzz = mfcba - mfabc; + mxxyPyzz = mfcba + mfabc; + mxxyMyzz = mfcba - mfabc; - mxxzPyyz = mfcab + mfacb; - mxxzMyyz = mfcab - mfacb; + mxxzPyyz = mfcab + mfacb; + mxxzMyyz = mfcab - mfacb; - mxyyPxzz = mfbca + mfbac; - mxyyMxzz = mfbca - mfbac; + mxyyPxzz = mfbca + mfbac; + mxyyMxzz = mfbca - mfbac; - ////////////////////////////////////////////////////////////////////////// - //exclusive for this source node - real mfbbb_SWB = mfbbb; - real mxxyPyzz_SWB = mxxyPyzz; - real mxxyMyzz_SWB = mxxyMyzz; - real mxxzPyyz_SWB = mxxzPyyz; - real mxxzMyyz_SWB = mxxzMyyz; - real mxyyPxzz_SWB = mxyyPxzz; - real mxyyMxzz_SWB = mxyyMxzz; - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// + //exclusive for this source node + real mfbbb_SWB = mfbbb; + real mxxyPyzz_SWB = mxxyPyzz; + real mxxyMyzz_SWB = mxxyMyzz; + real mxxzPyyz_SWB = mxxzPyyz; + real mxxzMyyz_SWB = mxxzMyyz; + real mxyyPxzz_SWB = mxyyPxzz; + real mxyyMxzz_SWB = mxyyMxzz; + ////////////////////////////////////////////////////////////////////////// @@ -1815,7 +1815,7 @@ __global__ void scaleFC_AA2016_comp_27(real* DC, - + ////////////////////////////////////////////////////////////////////////// //SWT// ////////////////////////////////////////////////////////////////////////// @@ -1859,8 +1859,8 @@ __global__ void scaleFC_AA2016_comp_27(real* DC, drho_SWT = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; vx1_SWT = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_SWT); - vx2_SWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SWT); - vx3_SWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SWT); + vx2_SWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SWT); + vx3_SWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SWT); kxyFromfcNEQ_SWT = -c3o1*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_SWT) - ((vx1_SWT*vx2_SWT))); kyzFromfcNEQ_SWT = -c3o1*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_SWT) - ((vx2_SWT*vx3_SWT))); @@ -1868,306 +1868,306 @@ __global__ void scaleFC_AA2016_comp_27(real* DC, kxxMyyFromfcNEQ_SWT = -c3o2*omegaS *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_SWT) - ((vx1_SWT*vx1_SWT-vx2_SWT*vx2_SWT))); kxxMzzFromfcNEQ_SWT = -c3o2*omegaS *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_SWT) - ((vx1_SWT*vx1_SWT-vx3_SWT*vx3_SWT))); - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - mfcbb = f_E ; - mfabb = f_W ; - mfbcb = f_N ; - mfbab = f_S ; - mfbbc = f_T ; - mfbba = f_B ; - mfccb = f_NE ; - mfaab = f_SW ; - mfcab = f_SE ; - mfacb = f_NW ; - mfcbc = f_TE ; - mfaba = f_BW ; - mfcba = f_BE ; - mfabc = f_TW ; - mfbcc = f_TN ; - mfbaa = f_BS ; - mfbca = f_BN ; - mfbac = f_TS ; - mfbbb = f_ZERO; - mfccc = f_TNE ; - mfaac = f_TSW ; - mfcac = f_TSE ; - mfacc = f_TNW ; - mfcca = f_BNE ; - mfaaa = f_BSW ; - mfcaa = f_BSE ; - mfaca = f_BNW ; - //////////////////////////////////////////////////////////////////////////////////// - drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + - (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + - ((mfabb+mfcbb) + (mfbab+mfbcb)) + (mfbba+mfbbc)) + mfbbb; - - rho = c1o1+drho; - //////////////////////////////////////////////////////////////////////////////////// - vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + - (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + - (mfcbb-mfabb)) / rho; - vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + - (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + - (mfbcb-mfbab)) / rho; - vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + - (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + - (mfbbc-mfbba)) / rho; - //////////////////////////////////////////////////////////////////////////////////// - //fast - oMdrho = c1o1; // comp special - vx2=vvx*vvx; - vy2=vvy*vvy; - vz2=vvz*vvz; - //////////////////////////////////////////////////////////////////////////////////// - //Hin - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m2 = mfaaa + mfaac; - m1 = mfaac - mfaaa; - m0 = m2 + mfaab; - mfaaa = m0; - m0 += c1o36 * oMdrho; - mfaab = m1 - m0 * vvz; - mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfabc; - m1 = mfabc - mfaba; - m0 = m2 + mfabb; - mfaba = m0; - m0 += c1o9 * oMdrho; - mfabb = m1 - m0 * vvz; - mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfacc; - m1 = mfacc - mfaca; - m0 = m2 + mfacb; - mfaca = m0; - m0 += c1o36 * oMdrho; - mfacb = m1 - m0 * vvz; - mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbac; - m1 = mfbac - mfbaa; - m0 = m2 + mfbab; - mfbaa = m0; - m0 += c1o9 * oMdrho; - mfbab = m1 - m0 * vvz; - mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbba + mfbbc; - m1 = mfbbc - mfbba; - m0 = m2 + mfbbb; - mfbba = m0; - m0 += c4o9 * oMdrho; - mfbbb = m1 - m0 * vvz; - mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbca + mfbcc; - m1 = mfbcc - mfbca; - m0 = m2 + mfbcb; - mfbca = m0; - m0 += c1o9 * oMdrho; - mfbcb = m1 - m0 * vvz; - mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcac; - m1 = mfcac - mfcaa; - m0 = m2 + mfcab; - mfcaa = m0; - m0 += c1o36 * oMdrho; - mfcab = m1 - m0 * vvz; - mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcba + mfcbc; - m1 = mfcbc - mfcba; - m0 = m2 + mfcbb; - mfcba = m0; - m0 += c1o9 * oMdrho; - mfcbb = m1 - m0 * vvz; - mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcca + mfccc; - m1 = mfccc - mfcca; - m0 = m2 + mfccb; - mfcca = m0; - m0 += c1o36 * oMdrho; - mfccb = m1 - m0 * vvz; - mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m2 = mfaaa + mfaca; - m1 = mfaca - mfaaa; - m0 = m2 + mfaba; - mfaaa = m0; - m0 += c1o6 * oMdrho; - mfaba = m1 - m0 * vvy; - mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfacb; - m1 = mfacb - mfaab; - m0 = m2 + mfabb; - mfaab = m0; - mfabb = m1 - m0 * vvy; - mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfacc; - m1 = mfacc - mfaac; - m0 = m2 + mfabc; - mfaac = m0; - m0 += c1o18 * oMdrho; - mfabc = m1 - m0 * vvy; - mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbca; - m1 = mfbca - mfbaa; - m0 = m2 + mfbba; - mfbaa = m0; - m0 += c2o3 * oMdrho; - mfbba = m1 - m0 * vvy; - mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbab + mfbcb; - m1 = mfbcb - mfbab; - m0 = m2 + mfbbb; - mfbab = m0; - mfbbb = m1 - m0 * vvy; - mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbac + mfbcc; - m1 = mfbcc - mfbac; - m0 = m2 + mfbbc; - mfbac = m0; - m0 += c2o9 * oMdrho; - mfbbc = m1 - m0 * vvy; - mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcca; - m1 = mfcca - mfcaa; - m0 = m2 + mfcba; - mfcaa = m0; - m0 += c1o6 * oMdrho; - mfcba = m1 - m0 * vvy; - mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcab + mfccb; - m1 = mfccb - mfcab; - m0 = m2 + mfcbb; - mfcab = m0; - mfcbb = m1 - m0 * vvy; - mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcac + mfccc; - m1 = mfccc - mfcac; - m0 = m2 + mfcbc; - mfcac = m0; - m0 += c1o18 * oMdrho; - mfcbc = m1 - m0 * vvy; - mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m2 = mfaaa + mfcaa; - m1 = mfcaa - mfaaa; - m0 = m2 + mfbaa; - mfaaa = m0; - m0 += c1o1* oMdrho; - mfbaa = m1 - m0 * vvx; - mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfcba; - m1 = mfcba - mfaba; - m0 = m2 + mfbba; - mfaba = m0; - mfbba = m1 - m0 * vvx; - mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfcca; - m1 = mfcca - mfaca; - m0 = m2 + mfbca; - mfaca = m0; - m0 += c1o3 * oMdrho; - mfbca = m1 - m0 * vvx; - mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfcab; - m1 = mfcab - mfaab; - m0 = m2 + mfbab; - mfaab = m0; - mfbab = m1 - m0 * vvx; - mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabb + mfcbb; - m1 = mfcbb - mfabb; - m0 = m2 + mfbbb; - mfabb = m0; - mfbbb = m1 - m0 * vvx; - mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacb + mfccb; - m1 = mfccb - mfacb; - m0 = m2 + mfbcb; - mfacb = m0; - mfbcb = m1 - m0 * vvx; - mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfcac; - m1 = mfcac - mfaac; - m0 = m2 + mfbac; - mfaac = m0; - m0 += c1o3 * oMdrho; - mfbac = m1 - m0 * vvx; - mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabc + mfcbc; - m1 = mfcbc - mfabc; - m0 = m2 + mfbbc; - mfabc = m0; - mfbbc = m1 - m0 * vvx; - mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacc + mfccc; - m1 = mfccc - mfacc; - m0 = m2 + mfbcc; - mfacc = m0; - m0 += c1o9 * oMdrho; - mfbcc = m1 - m0 * vvx; - mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - // linear combinations + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + mfcbb = f_E ; + mfabb = f_W ; + mfbcb = f_N ; + mfbab = f_S ; + mfbbc = f_T ; + mfbba = f_B ; + mfccb = f_NE ; + mfaab = f_SW ; + mfcab = f_SE ; + mfacb = f_NW ; + mfcbc = f_TE ; + mfaba = f_BW ; + mfcba = f_BE ; + mfabc = f_TW ; + mfbcc = f_TN ; + mfbaa = f_BS ; + mfbca = f_BN ; + mfbac = f_TS ; + mfbbb = f_ZERO; + mfccc = f_TNE ; + mfaac = f_TSW ; + mfcac = f_TSE ; + mfacc = f_TNW ; + mfcca = f_BNE ; + mfaaa = f_BSW ; + mfcaa = f_BSE ; + mfaca = f_BNW ; + //////////////////////////////////////////////////////////////////////////////////// + drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + + (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + + ((mfabb+mfcbb) + (mfbab+mfbcb)) + (mfbba+mfbbc)) + mfbbb; + + rho = c1o1+drho; + //////////////////////////////////////////////////////////////////////////////////// + vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + + (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + + (mfcbb-mfabb)) / rho; + vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + + (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + + (mfbcb-mfbab)) / rho; + vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + + (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + + (mfbbc-mfbba)) / rho; + //////////////////////////////////////////////////////////////////////////////////// + //fast + oMdrho = c1o1; // comp special + vx2=vvx*vvx; + vy2=vvy*vvy; + vz2=vvz*vvz; + //////////////////////////////////////////////////////////////////////////////////// + //Hin + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m2 = mfaaa + mfaac; + m1 = mfaac - mfaaa; + m0 = m2 + mfaab; + mfaaa = m0; + m0 += c1o36 * oMdrho; + mfaab = m1 - m0 * vvz; + mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfabc; + m1 = mfabc - mfaba; + m0 = m2 + mfabb; + mfaba = m0; + m0 += c1o9 * oMdrho; + mfabb = m1 - m0 * vvz; + mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfacc; + m1 = mfacc - mfaca; + m0 = m2 + mfacb; + mfaca = m0; + m0 += c1o36 * oMdrho; + mfacb = m1 - m0 * vvz; + mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbac; + m1 = mfbac - mfbaa; + m0 = m2 + mfbab; + mfbaa = m0; + m0 += c1o9 * oMdrho; + mfbab = m1 - m0 * vvz; + mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbba + mfbbc; + m1 = mfbbc - mfbba; + m0 = m2 + mfbbb; + mfbba = m0; + m0 += c4o9 * oMdrho; + mfbbb = m1 - m0 * vvz; + mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbca + mfbcc; + m1 = mfbcc - mfbca; + m0 = m2 + mfbcb; + mfbca = m0; + m0 += c1o9 * oMdrho; + mfbcb = m1 - m0 * vvz; + mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcac; + m1 = mfcac - mfcaa; + m0 = m2 + mfcab; + mfcaa = m0; + m0 += c1o36 * oMdrho; + mfcab = m1 - m0 * vvz; + mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcba + mfcbc; + m1 = mfcbc - mfcba; + m0 = m2 + mfcbb; + mfcba = m0; + m0 += c1o9 * oMdrho; + mfcbb = m1 - m0 * vvz; + mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcca + mfccc; + m1 = mfccc - mfcca; + m0 = m2 + mfccb; + mfcca = m0; + m0 += c1o36 * oMdrho; + mfccb = m1 - m0 * vvz; + mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m2 = mfaaa + mfaca; + m1 = mfaca - mfaaa; + m0 = m2 + mfaba; + mfaaa = m0; + m0 += c1o6 * oMdrho; + mfaba = m1 - m0 * vvy; + mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfacb; + m1 = mfacb - mfaab; + m0 = m2 + mfabb; + mfaab = m0; + mfabb = m1 - m0 * vvy; + mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfacc; + m1 = mfacc - mfaac; + m0 = m2 + mfabc; + mfaac = m0; + m0 += c1o18 * oMdrho; + mfabc = m1 - m0 * vvy; + mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbca; + m1 = mfbca - mfbaa; + m0 = m2 + mfbba; + mfbaa = m0; + m0 += c2o3 * oMdrho; + mfbba = m1 - m0 * vvy; + mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbab + mfbcb; + m1 = mfbcb - mfbab; + m0 = m2 + mfbbb; + mfbab = m0; + mfbbb = m1 - m0 * vvy; + mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbac + mfbcc; + m1 = mfbcc - mfbac; + m0 = m2 + mfbbc; + mfbac = m0; + m0 += c2o9 * oMdrho; + mfbbc = m1 - m0 * vvy; + mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcca; + m1 = mfcca - mfcaa; + m0 = m2 + mfcba; + mfcaa = m0; + m0 += c1o6 * oMdrho; + mfcba = m1 - m0 * vvy; + mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcab + mfccb; + m1 = mfccb - mfcab; + m0 = m2 + mfcbb; + mfcab = m0; + mfcbb = m1 - m0 * vvy; + mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcac + mfccc; + m1 = mfccc - mfcac; + m0 = m2 + mfcbc; + mfcac = m0; + m0 += c1o18 * oMdrho; + mfcbc = m1 - m0 * vvy; + mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m2 = mfaaa + mfcaa; + m1 = mfcaa - mfaaa; + m0 = m2 + mfbaa; + mfaaa = m0; + m0 += c1o1* oMdrho; + mfbaa = m1 - m0 * vvx; + mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfcba; + m1 = mfcba - mfaba; + m0 = m2 + mfbba; + mfaba = m0; + mfbba = m1 - m0 * vvx; + mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfcca; + m1 = mfcca - mfaca; + m0 = m2 + mfbca; + mfaca = m0; + m0 += c1o3 * oMdrho; + mfbca = m1 - m0 * vvx; + mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfcab; + m1 = mfcab - mfaab; + m0 = m2 + mfbab; + mfaab = m0; + mfbab = m1 - m0 * vvx; + mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabb + mfcbb; + m1 = mfcbb - mfabb; + m0 = m2 + mfbbb; + mfabb = m0; + mfbbb = m1 - m0 * vvx; + mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacb + mfccb; + m1 = mfccb - mfacb; + m0 = m2 + mfbcb; + mfacb = m0; + mfbcb = m1 - m0 * vvx; + mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfcac; + m1 = mfcac - mfaac; + m0 = m2 + mfbac; + mfaac = m0; + m0 += c1o3 * oMdrho; + mfbac = m1 - m0 * vvx; + mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabc + mfcbc; + m1 = mfcbc - mfabc; + m0 = m2 + mfbbc; + mfabc = m0; + mfbbc = m1 - m0 * vvx; + mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacc + mfccc; + m1 = mfccc - mfacc; + m0 = m2 + mfbcc; + mfacc = m0; + m0 += c1o9 * oMdrho; + mfbcc = m1 - m0 * vvx; + mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + // linear combinations - mxxyPyzz = mfcba + mfabc; - mxxyMyzz = mfcba - mfabc; + mxxyPyzz = mfcba + mfabc; + mxxyMyzz = mfcba - mfabc; - mxxzPyyz = mfcab + mfacb; - mxxzMyyz = mfcab - mfacb; + mxxzPyyz = mfcab + mfacb; + mxxzMyyz = mfcab - mfacb; - mxyyPxzz = mfbca + mfbac; - mxyyMxzz = mfbca - mfbac; + mxyyPxzz = mfbca + mfbac; + mxyyMxzz = mfbca - mfbac; - ////////////////////////////////////////////////////////////////////////// - //exclusive for this source node - real mfbbb_SWT = mfbbb; - real mxxyPyzz_SWT = mxxyPyzz; - real mxxyMyzz_SWT = mxxyMyzz; - real mxxzPyyz_SWT = mxxzPyyz; - real mxxzMyyz_SWT = mxxzMyyz; - real mxyyPxzz_SWT = mxyyPxzz; - real mxyyMxzz_SWT = mxyyMxzz; - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// + //exclusive for this source node + real mfbbb_SWT = mfbbb; + real mxxyPyzz_SWT = mxxyPyzz; + real mxxyMyzz_SWT = mxxyMyzz; + real mxxzPyyz_SWT = mxxzPyyz; + real mxxzMyyz_SWT = mxxzMyyz; + real mxyyPxzz_SWT = mxyyPxzz; + real mxyyMxzz_SWT = mxyyMxzz; + ////////////////////////////////////////////////////////////////////////// @@ -2265,8 +2265,8 @@ __global__ void scaleFC_AA2016_comp_27(real* DC, drho_SET = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; vx1_SET = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_SET); - vx2_SET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SET); - vx3_SET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SET); + vx2_SET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SET); + vx3_SET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SET); kxyFromfcNEQ_SET = -c3o1*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_SET) - ((vx1_SET*vx2_SET))); kyzFromfcNEQ_SET = -c3o1*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_SET) - ((vx2_SET*vx3_SET))); @@ -2274,306 +2274,306 @@ __global__ void scaleFC_AA2016_comp_27(real* DC, kxxMyyFromfcNEQ_SET = -c3o2*omegaS *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_SET) - ((vx1_SET*vx1_SET-vx2_SET*vx2_SET))); kxxMzzFromfcNEQ_SET = -c3o2*omegaS *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_SET) - ((vx1_SET*vx1_SET-vx3_SET*vx3_SET))); - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - mfcbb = f_E ; - mfabb = f_W ; - mfbcb = f_N ; - mfbab = f_S ; - mfbbc = f_T ; - mfbba = f_B ; - mfccb = f_NE ; - mfaab = f_SW ; - mfcab = f_SE ; - mfacb = f_NW ; - mfcbc = f_TE ; - mfaba = f_BW ; - mfcba = f_BE ; - mfabc = f_TW ; - mfbcc = f_TN ; - mfbaa = f_BS ; - mfbca = f_BN ; - mfbac = f_TS ; - mfbbb = f_ZERO; - mfccc = f_TNE ; - mfaac = f_TSW ; - mfcac = f_TSE ; - mfacc = f_TNW ; - mfcca = f_BNE ; - mfaaa = f_BSW ; - mfcaa = f_BSE ; - mfaca = f_BNW ; - //////////////////////////////////////////////////////////////////////////////////// - drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + - (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + - ((mfabb+mfcbb) + (mfbab+mfbcb)) + (mfbba+mfbbc)) + mfbbb; - - rho = c1o1+drho; - //////////////////////////////////////////////////////////////////////////////////// - vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + - (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + - (mfcbb-mfabb)) / rho; - vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + - (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + - (mfbcb-mfbab)) / rho; - vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + - (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + - (mfbbc-mfbba)) / rho; - //////////////////////////////////////////////////////////////////////////////////// - //fast - oMdrho = c1o1; // comp special - vx2=vvx*vvx; - vy2=vvy*vvy; - vz2=vvz*vvz; - //////////////////////////////////////////////////////////////////////////////////// - //Hin - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m2 = mfaaa + mfaac; - m1 = mfaac - mfaaa; - m0 = m2 + mfaab; - mfaaa = m0; - m0 += c1o36 * oMdrho; - mfaab = m1 - m0 * vvz; - mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfabc; - m1 = mfabc - mfaba; - m0 = m2 + mfabb; - mfaba = m0; - m0 += c1o9 * oMdrho; - mfabb = m1 - m0 * vvz; - mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfacc; - m1 = mfacc - mfaca; - m0 = m2 + mfacb; - mfaca = m0; - m0 += c1o36 * oMdrho; - mfacb = m1 - m0 * vvz; - mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbac; - m1 = mfbac - mfbaa; - m0 = m2 + mfbab; - mfbaa = m0; - m0 += c1o9 * oMdrho; - mfbab = m1 - m0 * vvz; - mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbba + mfbbc; - m1 = mfbbc - mfbba; - m0 = m2 + mfbbb; - mfbba = m0; - m0 += c4o9 * oMdrho; - mfbbb = m1 - m0 * vvz; - mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbca + mfbcc; - m1 = mfbcc - mfbca; - m0 = m2 + mfbcb; - mfbca = m0; - m0 += c1o9 * oMdrho; - mfbcb = m1 - m0 * vvz; - mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcac; - m1 = mfcac - mfcaa; - m0 = m2 + mfcab; - mfcaa = m0; - m0 += c1o36 * oMdrho; - mfcab = m1 - m0 * vvz; - mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcba + mfcbc; - m1 = mfcbc - mfcba; - m0 = m2 + mfcbb; - mfcba = m0; - m0 += c1o9 * oMdrho; - mfcbb = m1 - m0 * vvz; - mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcca + mfccc; - m1 = mfccc - mfcca; - m0 = m2 + mfccb; - mfcca = m0; - m0 += c1o36 * oMdrho; - mfccb = m1 - m0 * vvz; - mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m2 = mfaaa + mfaca; - m1 = mfaca - mfaaa; - m0 = m2 + mfaba; - mfaaa = m0; - m0 += c1o6 * oMdrho; - mfaba = m1 - m0 * vvy; - mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfacb; - m1 = mfacb - mfaab; - m0 = m2 + mfabb; - mfaab = m0; - mfabb = m1 - m0 * vvy; - mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfacc; - m1 = mfacc - mfaac; - m0 = m2 + mfabc; - mfaac = m0; - m0 += c1o18 * oMdrho; - mfabc = m1 - m0 * vvy; - mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbca; - m1 = mfbca - mfbaa; - m0 = m2 + mfbba; - mfbaa = m0; - m0 += c2o3 * oMdrho; - mfbba = m1 - m0 * vvy; - mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbab + mfbcb; - m1 = mfbcb - mfbab; - m0 = m2 + mfbbb; - mfbab = m0; - mfbbb = m1 - m0 * vvy; - mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbac + mfbcc; - m1 = mfbcc - mfbac; - m0 = m2 + mfbbc; - mfbac = m0; - m0 += c2o9 * oMdrho; - mfbbc = m1 - m0 * vvy; - mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcca; - m1 = mfcca - mfcaa; - m0 = m2 + mfcba; - mfcaa = m0; - m0 += c1o6 * oMdrho; - mfcba = m1 - m0 * vvy; - mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcab + mfccb; - m1 = mfccb - mfcab; - m0 = m2 + mfcbb; - mfcab = m0; - mfcbb = m1 - m0 * vvy; - mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcac + mfccc; - m1 = mfccc - mfcac; - m0 = m2 + mfcbc; - mfcac = m0; - m0 += c1o18 * oMdrho; - mfcbc = m1 - m0 * vvy; - mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m2 = mfaaa + mfcaa; - m1 = mfcaa - mfaaa; - m0 = m2 + mfbaa; - mfaaa = m0; - m0 += c1o1* oMdrho; - mfbaa = m1 - m0 * vvx; - mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfcba; - m1 = mfcba - mfaba; - m0 = m2 + mfbba; - mfaba = m0; - mfbba = m1 - m0 * vvx; - mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfcca; - m1 = mfcca - mfaca; - m0 = m2 + mfbca; - mfaca = m0; - m0 += c1o3 * oMdrho; - mfbca = m1 - m0 * vvx; - mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfcab; - m1 = mfcab - mfaab; - m0 = m2 + mfbab; - mfaab = m0; - mfbab = m1 - m0 * vvx; - mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabb + mfcbb; - m1 = mfcbb - mfabb; - m0 = m2 + mfbbb; - mfabb = m0; - mfbbb = m1 - m0 * vvx; - mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacb + mfccb; - m1 = mfccb - mfacb; - m0 = m2 + mfbcb; - mfacb = m0; - mfbcb = m1 - m0 * vvx; - mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfcac; - m1 = mfcac - mfaac; - m0 = m2 + mfbac; - mfaac = m0; - m0 += c1o3 * oMdrho; - mfbac = m1 - m0 * vvx; - mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabc + mfcbc; - m1 = mfcbc - mfabc; - m0 = m2 + mfbbc; - mfabc = m0; - mfbbc = m1 - m0 * vvx; - mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacc + mfccc; - m1 = mfccc - mfacc; - m0 = m2 + mfbcc; - mfacc = m0; - m0 += c1o9 * oMdrho; - mfbcc = m1 - m0 * vvx; - mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - // linear combinations + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + mfcbb = f_E ; + mfabb = f_W ; + mfbcb = f_N ; + mfbab = f_S ; + mfbbc = f_T ; + mfbba = f_B ; + mfccb = f_NE ; + mfaab = f_SW ; + mfcab = f_SE ; + mfacb = f_NW ; + mfcbc = f_TE ; + mfaba = f_BW ; + mfcba = f_BE ; + mfabc = f_TW ; + mfbcc = f_TN ; + mfbaa = f_BS ; + mfbca = f_BN ; + mfbac = f_TS ; + mfbbb = f_ZERO; + mfccc = f_TNE ; + mfaac = f_TSW ; + mfcac = f_TSE ; + mfacc = f_TNW ; + mfcca = f_BNE ; + mfaaa = f_BSW ; + mfcaa = f_BSE ; + mfaca = f_BNW ; + //////////////////////////////////////////////////////////////////////////////////// + drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + + (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + + ((mfabb+mfcbb) + (mfbab+mfbcb)) + (mfbba+mfbbc)) + mfbbb; + + rho = c1o1+drho; + //////////////////////////////////////////////////////////////////////////////////// + vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + + (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + + (mfcbb-mfabb)) / rho; + vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + + (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + + (mfbcb-mfbab)) / rho; + vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + + (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + + (mfbbc-mfbba)) / rho; + //////////////////////////////////////////////////////////////////////////////////// + //fast + oMdrho = c1o1; // comp special + vx2=vvx*vvx; + vy2=vvy*vvy; + vz2=vvz*vvz; + //////////////////////////////////////////////////////////////////////////////////// + //Hin + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m2 = mfaaa + mfaac; + m1 = mfaac - mfaaa; + m0 = m2 + mfaab; + mfaaa = m0; + m0 += c1o36 * oMdrho; + mfaab = m1 - m0 * vvz; + mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfabc; + m1 = mfabc - mfaba; + m0 = m2 + mfabb; + mfaba = m0; + m0 += c1o9 * oMdrho; + mfabb = m1 - m0 * vvz; + mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfacc; + m1 = mfacc - mfaca; + m0 = m2 + mfacb; + mfaca = m0; + m0 += c1o36 * oMdrho; + mfacb = m1 - m0 * vvz; + mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbac; + m1 = mfbac - mfbaa; + m0 = m2 + mfbab; + mfbaa = m0; + m0 += c1o9 * oMdrho; + mfbab = m1 - m0 * vvz; + mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbba + mfbbc; + m1 = mfbbc - mfbba; + m0 = m2 + mfbbb; + mfbba = m0; + m0 += c4o9 * oMdrho; + mfbbb = m1 - m0 * vvz; + mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbca + mfbcc; + m1 = mfbcc - mfbca; + m0 = m2 + mfbcb; + mfbca = m0; + m0 += c1o9 * oMdrho; + mfbcb = m1 - m0 * vvz; + mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcac; + m1 = mfcac - mfcaa; + m0 = m2 + mfcab; + mfcaa = m0; + m0 += c1o36 * oMdrho; + mfcab = m1 - m0 * vvz; + mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcba + mfcbc; + m1 = mfcbc - mfcba; + m0 = m2 + mfcbb; + mfcba = m0; + m0 += c1o9 * oMdrho; + mfcbb = m1 - m0 * vvz; + mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcca + mfccc; + m1 = mfccc - mfcca; + m0 = m2 + mfccb; + mfcca = m0; + m0 += c1o36 * oMdrho; + mfccb = m1 - m0 * vvz; + mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m2 = mfaaa + mfaca; + m1 = mfaca - mfaaa; + m0 = m2 + mfaba; + mfaaa = m0; + m0 += c1o6 * oMdrho; + mfaba = m1 - m0 * vvy; + mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfacb; + m1 = mfacb - mfaab; + m0 = m2 + mfabb; + mfaab = m0; + mfabb = m1 - m0 * vvy; + mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfacc; + m1 = mfacc - mfaac; + m0 = m2 + mfabc; + mfaac = m0; + m0 += c1o18 * oMdrho; + mfabc = m1 - m0 * vvy; + mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbca; + m1 = mfbca - mfbaa; + m0 = m2 + mfbba; + mfbaa = m0; + m0 += c2o3 * oMdrho; + mfbba = m1 - m0 * vvy; + mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbab + mfbcb; + m1 = mfbcb - mfbab; + m0 = m2 + mfbbb; + mfbab = m0; + mfbbb = m1 - m0 * vvy; + mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbac + mfbcc; + m1 = mfbcc - mfbac; + m0 = m2 + mfbbc; + mfbac = m0; + m0 += c2o9 * oMdrho; + mfbbc = m1 - m0 * vvy; + mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcca; + m1 = mfcca - mfcaa; + m0 = m2 + mfcba; + mfcaa = m0; + m0 += c1o6 * oMdrho; + mfcba = m1 - m0 * vvy; + mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcab + mfccb; + m1 = mfccb - mfcab; + m0 = m2 + mfcbb; + mfcab = m0; + mfcbb = m1 - m0 * vvy; + mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcac + mfccc; + m1 = mfccc - mfcac; + m0 = m2 + mfcbc; + mfcac = m0; + m0 += c1o18 * oMdrho; + mfcbc = m1 - m0 * vvy; + mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m2 = mfaaa + mfcaa; + m1 = mfcaa - mfaaa; + m0 = m2 + mfbaa; + mfaaa = m0; + m0 += c1o1* oMdrho; + mfbaa = m1 - m0 * vvx; + mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfcba; + m1 = mfcba - mfaba; + m0 = m2 + mfbba; + mfaba = m0; + mfbba = m1 - m0 * vvx; + mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfcca; + m1 = mfcca - mfaca; + m0 = m2 + mfbca; + mfaca = m0; + m0 += c1o3 * oMdrho; + mfbca = m1 - m0 * vvx; + mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfcab; + m1 = mfcab - mfaab; + m0 = m2 + mfbab; + mfaab = m0; + mfbab = m1 - m0 * vvx; + mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabb + mfcbb; + m1 = mfcbb - mfabb; + m0 = m2 + mfbbb; + mfabb = m0; + mfbbb = m1 - m0 * vvx; + mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacb + mfccb; + m1 = mfccb - mfacb; + m0 = m2 + mfbcb; + mfacb = m0; + mfbcb = m1 - m0 * vvx; + mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfcac; + m1 = mfcac - mfaac; + m0 = m2 + mfbac; + mfaac = m0; + m0 += c1o3 * oMdrho; + mfbac = m1 - m0 * vvx; + mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabc + mfcbc; + m1 = mfcbc - mfabc; + m0 = m2 + mfbbc; + mfabc = m0; + mfbbc = m1 - m0 * vvx; + mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacc + mfccc; + m1 = mfccc - mfacc; + m0 = m2 + mfbcc; + mfacc = m0; + m0 += c1o9 * oMdrho; + mfbcc = m1 - m0 * vvx; + mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + // linear combinations - mxxyPyzz = mfcba + mfabc; - mxxyMyzz = mfcba - mfabc; + mxxyPyzz = mfcba + mfabc; + mxxyMyzz = mfcba - mfabc; - mxxzPyyz = mfcab + mfacb; - mxxzMyyz = mfcab - mfacb; + mxxzPyyz = mfcab + mfacb; + mxxzMyyz = mfcab - mfacb; - mxyyPxzz = mfbca + mfbac; - mxyyMxzz = mfbca - mfbac; + mxyyPxzz = mfbca + mfbac; + mxyyMxzz = mfbca - mfbac; - ////////////////////////////////////////////////////////////////////////// - //exclusive for this source node - real mfbbb_SET = mfbbb; - real mxxyPyzz_SET = mxxyPyzz; - real mxxyMyzz_SET = mxxyMyzz; - real mxxzPyyz_SET = mxxzPyyz; - real mxxzMyyz_SET = mxxzMyyz; - real mxyyPxzz_SET = mxyyPxzz; - real mxyyMxzz_SET = mxyyMxzz; - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// + //exclusive for this source node + real mfbbb_SET = mfbbb; + real mxxyPyzz_SET = mxxyPyzz; + real mxxyMyzz_SET = mxxyMyzz; + real mxxzPyyz_SET = mxxzPyyz; + real mxxzMyyz_SET = mxxzMyyz; + real mxyyPxzz_SET = mxyyPxzz; + real mxyyMxzz_SET = mxyyMxzz; + ////////////////////////////////////////////////////////////////////////// @@ -2671,8 +2671,8 @@ __global__ void scaleFC_AA2016_comp_27(real* DC, drho_SEB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; vx1_SEB = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_SEB); - vx2_SEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SEB); - vx3_SEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SEB); + vx2_SEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SEB); + vx3_SEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SEB); kxyFromfcNEQ_SEB = -c3o1*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_SEB) - ((vx1_SEB*vx2_SEB))); kyzFromfcNEQ_SEB = -c3o1*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_SEB) - ((vx2_SEB*vx3_SEB))); @@ -2680,306 +2680,306 @@ __global__ void scaleFC_AA2016_comp_27(real* DC, kxxMyyFromfcNEQ_SEB = -c3o2*omegaS *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_SEB) - ((vx1_SEB*vx1_SEB-vx2_SEB*vx2_SEB))); kxxMzzFromfcNEQ_SEB = -c3o2*omegaS *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_SEB) - ((vx1_SEB*vx1_SEB-vx3_SEB*vx3_SEB))); - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - mfcbb = f_E ; - mfabb = f_W ; - mfbcb = f_N ; - mfbab = f_S ; - mfbbc = f_T ; - mfbba = f_B ; - mfccb = f_NE ; - mfaab = f_SW ; - mfcab = f_SE ; - mfacb = f_NW ; - mfcbc = f_TE ; - mfaba = f_BW ; - mfcba = f_BE ; - mfabc = f_TW ; - mfbcc = f_TN ; - mfbaa = f_BS ; - mfbca = f_BN ; - mfbac = f_TS ; - mfbbb = f_ZERO; - mfccc = f_TNE ; - mfaac = f_TSW ; - mfcac = f_TSE ; - mfacc = f_TNW ; - mfcca = f_BNE ; - mfaaa = f_BSW ; - mfcaa = f_BSE ; - mfaca = f_BNW ; - //////////////////////////////////////////////////////////////////////////////////// - drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + - (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + - ((mfabb+mfcbb) + (mfbab+mfbcb)) + (mfbba+mfbbc)) + mfbbb; - - rho = c1o1+drho; - //////////////////////////////////////////////////////////////////////////////////// - vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + - (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + - (mfcbb-mfabb)) / rho; - vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + - (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + - (mfbcb-mfbab)) / rho; - vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + - (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + - (mfbbc-mfbba)) / rho; - //////////////////////////////////////////////////////////////////////////////////// - //fast - oMdrho = c1o1; // comp special - vx2=vvx*vvx; - vy2=vvy*vvy; - vz2=vvz*vvz; - //////////////////////////////////////////////////////////////////////////////////// - //Hin - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m2 = mfaaa + mfaac; - m1 = mfaac - mfaaa; - m0 = m2 + mfaab; - mfaaa = m0; - m0 += c1o36 * oMdrho; - mfaab = m1 - m0 * vvz; - mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfabc; - m1 = mfabc - mfaba; - m0 = m2 + mfabb; - mfaba = m0; - m0 += c1o9 * oMdrho; - mfabb = m1 - m0 * vvz; - mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfacc; - m1 = mfacc - mfaca; - m0 = m2 + mfacb; - mfaca = m0; - m0 += c1o36 * oMdrho; - mfacb = m1 - m0 * vvz; - mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbac; - m1 = mfbac - mfbaa; - m0 = m2 + mfbab; - mfbaa = m0; - m0 += c1o9 * oMdrho; - mfbab = m1 - m0 * vvz; - mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbba + mfbbc; - m1 = mfbbc - mfbba; - m0 = m2 + mfbbb; - mfbba = m0; - m0 += c4o9 * oMdrho; - mfbbb = m1 - m0 * vvz; - mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbca + mfbcc; - m1 = mfbcc - mfbca; - m0 = m2 + mfbcb; - mfbca = m0; - m0 += c1o9 * oMdrho; - mfbcb = m1 - m0 * vvz; - mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcac; - m1 = mfcac - mfcaa; - m0 = m2 + mfcab; - mfcaa = m0; - m0 += c1o36 * oMdrho; - mfcab = m1 - m0 * vvz; - mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcba + mfcbc; - m1 = mfcbc - mfcba; - m0 = m2 + mfcbb; - mfcba = m0; - m0 += c1o9 * oMdrho; - mfcbb = m1 - m0 * vvz; - mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcca + mfccc; - m1 = mfccc - mfcca; - m0 = m2 + mfccb; - mfcca = m0; - m0 += c1o36 * oMdrho; - mfccb = m1 - m0 * vvz; - mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m2 = mfaaa + mfaca; - m1 = mfaca - mfaaa; - m0 = m2 + mfaba; - mfaaa = m0; - m0 += c1o6 * oMdrho; - mfaba = m1 - m0 * vvy; - mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfacb; - m1 = mfacb - mfaab; - m0 = m2 + mfabb; - mfaab = m0; - mfabb = m1 - m0 * vvy; - mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfacc; - m1 = mfacc - mfaac; - m0 = m2 + mfabc; - mfaac = m0; - m0 += c1o18 * oMdrho; - mfabc = m1 - m0 * vvy; - mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbca; - m1 = mfbca - mfbaa; - m0 = m2 + mfbba; - mfbaa = m0; - m0 += c2o3 * oMdrho; - mfbba = m1 - m0 * vvy; - mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbab + mfbcb; - m1 = mfbcb - mfbab; - m0 = m2 + mfbbb; - mfbab = m0; - mfbbb = m1 - m0 * vvy; - mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbac + mfbcc; - m1 = mfbcc - mfbac; - m0 = m2 + mfbbc; - mfbac = m0; - m0 += c2o9 * oMdrho; - mfbbc = m1 - m0 * vvy; - mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcca; - m1 = mfcca - mfcaa; - m0 = m2 + mfcba; - mfcaa = m0; - m0 += c1o6 * oMdrho; - mfcba = m1 - m0 * vvy; - mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcab + mfccb; - m1 = mfccb - mfcab; - m0 = m2 + mfcbb; - mfcab = m0; - mfcbb = m1 - m0 * vvy; - mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcac + mfccc; - m1 = mfccc - mfcac; - m0 = m2 + mfcbc; - mfcac = m0; - m0 += c1o18 * oMdrho; - mfcbc = m1 - m0 * vvy; - mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m2 = mfaaa + mfcaa; - m1 = mfcaa - mfaaa; - m0 = m2 + mfbaa; - mfaaa = m0; - m0 += c1o1* oMdrho; - mfbaa = m1 - m0 * vvx; - mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfcba; - m1 = mfcba - mfaba; - m0 = m2 + mfbba; - mfaba = m0; - mfbba = m1 - m0 * vvx; - mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfcca; - m1 = mfcca - mfaca; - m0 = m2 + mfbca; - mfaca = m0; - m0 += c1o3 * oMdrho; - mfbca = m1 - m0 * vvx; - mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfcab; - m1 = mfcab - mfaab; - m0 = m2 + mfbab; - mfaab = m0; - mfbab = m1 - m0 * vvx; - mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabb + mfcbb; - m1 = mfcbb - mfabb; - m0 = m2 + mfbbb; - mfabb = m0; - mfbbb = m1 - m0 * vvx; - mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacb + mfccb; - m1 = mfccb - mfacb; - m0 = m2 + mfbcb; - mfacb = m0; - mfbcb = m1 - m0 * vvx; - mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfcac; - m1 = mfcac - mfaac; - m0 = m2 + mfbac; - mfaac = m0; - m0 += c1o3 * oMdrho; - mfbac = m1 - m0 * vvx; - mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabc + mfcbc; - m1 = mfcbc - mfabc; - m0 = m2 + mfbbc; - mfabc = m0; - mfbbc = m1 - m0 * vvx; - mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacc + mfccc; - m1 = mfccc - mfacc; - m0 = m2 + mfbcc; - mfacc = m0; - m0 += c1o9 * oMdrho; - mfbcc = m1 - m0 * vvx; - mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - // linear combinations + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + mfcbb = f_E ; + mfabb = f_W ; + mfbcb = f_N ; + mfbab = f_S ; + mfbbc = f_T ; + mfbba = f_B ; + mfccb = f_NE ; + mfaab = f_SW ; + mfcab = f_SE ; + mfacb = f_NW ; + mfcbc = f_TE ; + mfaba = f_BW ; + mfcba = f_BE ; + mfabc = f_TW ; + mfbcc = f_TN ; + mfbaa = f_BS ; + mfbca = f_BN ; + mfbac = f_TS ; + mfbbb = f_ZERO; + mfccc = f_TNE ; + mfaac = f_TSW ; + mfcac = f_TSE ; + mfacc = f_TNW ; + mfcca = f_BNE ; + mfaaa = f_BSW ; + mfcaa = f_BSE ; + mfaca = f_BNW ; + //////////////////////////////////////////////////////////////////////////////////// + drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + + (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + + ((mfabb+mfcbb) + (mfbab+mfbcb)) + (mfbba+mfbbc)) + mfbbb; + + rho = c1o1+drho; + //////////////////////////////////////////////////////////////////////////////////// + vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + + (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + + (mfcbb-mfabb)) / rho; + vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + + (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + + (mfbcb-mfbab)) / rho; + vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + + (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + + (mfbbc-mfbba)) / rho; + //////////////////////////////////////////////////////////////////////////////////// + //fast + oMdrho = c1o1; // comp special + vx2=vvx*vvx; + vy2=vvy*vvy; + vz2=vvz*vvz; + //////////////////////////////////////////////////////////////////////////////////// + //Hin + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m2 = mfaaa + mfaac; + m1 = mfaac - mfaaa; + m0 = m2 + mfaab; + mfaaa = m0; + m0 += c1o36 * oMdrho; + mfaab = m1 - m0 * vvz; + mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfabc; + m1 = mfabc - mfaba; + m0 = m2 + mfabb; + mfaba = m0; + m0 += c1o9 * oMdrho; + mfabb = m1 - m0 * vvz; + mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfacc; + m1 = mfacc - mfaca; + m0 = m2 + mfacb; + mfaca = m0; + m0 += c1o36 * oMdrho; + mfacb = m1 - m0 * vvz; + mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbac; + m1 = mfbac - mfbaa; + m0 = m2 + mfbab; + mfbaa = m0; + m0 += c1o9 * oMdrho; + mfbab = m1 - m0 * vvz; + mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbba + mfbbc; + m1 = mfbbc - mfbba; + m0 = m2 + mfbbb; + mfbba = m0; + m0 += c4o9 * oMdrho; + mfbbb = m1 - m0 * vvz; + mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbca + mfbcc; + m1 = mfbcc - mfbca; + m0 = m2 + mfbcb; + mfbca = m0; + m0 += c1o9 * oMdrho; + mfbcb = m1 - m0 * vvz; + mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcac; + m1 = mfcac - mfcaa; + m0 = m2 + mfcab; + mfcaa = m0; + m0 += c1o36 * oMdrho; + mfcab = m1 - m0 * vvz; + mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcba + mfcbc; + m1 = mfcbc - mfcba; + m0 = m2 + mfcbb; + mfcba = m0; + m0 += c1o9 * oMdrho; + mfcbb = m1 - m0 * vvz; + mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcca + mfccc; + m1 = mfccc - mfcca; + m0 = m2 + mfccb; + mfcca = m0; + m0 += c1o36 * oMdrho; + mfccb = m1 - m0 * vvz; + mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m2 = mfaaa + mfaca; + m1 = mfaca - mfaaa; + m0 = m2 + mfaba; + mfaaa = m0; + m0 += c1o6 * oMdrho; + mfaba = m1 - m0 * vvy; + mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfacb; + m1 = mfacb - mfaab; + m0 = m2 + mfabb; + mfaab = m0; + mfabb = m1 - m0 * vvy; + mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfacc; + m1 = mfacc - mfaac; + m0 = m2 + mfabc; + mfaac = m0; + m0 += c1o18 * oMdrho; + mfabc = m1 - m0 * vvy; + mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbca; + m1 = mfbca - mfbaa; + m0 = m2 + mfbba; + mfbaa = m0; + m0 += c2o3 * oMdrho; + mfbba = m1 - m0 * vvy; + mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbab + mfbcb; + m1 = mfbcb - mfbab; + m0 = m2 + mfbbb; + mfbab = m0; + mfbbb = m1 - m0 * vvy; + mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbac + mfbcc; + m1 = mfbcc - mfbac; + m0 = m2 + mfbbc; + mfbac = m0; + m0 += c2o9 * oMdrho; + mfbbc = m1 - m0 * vvy; + mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcca; + m1 = mfcca - mfcaa; + m0 = m2 + mfcba; + mfcaa = m0; + m0 += c1o6 * oMdrho; + mfcba = m1 - m0 * vvy; + mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcab + mfccb; + m1 = mfccb - mfcab; + m0 = m2 + mfcbb; + mfcab = m0; + mfcbb = m1 - m0 * vvy; + mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcac + mfccc; + m1 = mfccc - mfcac; + m0 = m2 + mfcbc; + mfcac = m0; + m0 += c1o18 * oMdrho; + mfcbc = m1 - m0 * vvy; + mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m2 = mfaaa + mfcaa; + m1 = mfcaa - mfaaa; + m0 = m2 + mfbaa; + mfaaa = m0; + m0 += c1o1* oMdrho; + mfbaa = m1 - m0 * vvx; + mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfcba; + m1 = mfcba - mfaba; + m0 = m2 + mfbba; + mfaba = m0; + mfbba = m1 - m0 * vvx; + mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfcca; + m1 = mfcca - mfaca; + m0 = m2 + mfbca; + mfaca = m0; + m0 += c1o3 * oMdrho; + mfbca = m1 - m0 * vvx; + mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfcab; + m1 = mfcab - mfaab; + m0 = m2 + mfbab; + mfaab = m0; + mfbab = m1 - m0 * vvx; + mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabb + mfcbb; + m1 = mfcbb - mfabb; + m0 = m2 + mfbbb; + mfabb = m0; + mfbbb = m1 - m0 * vvx; + mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacb + mfccb; + m1 = mfccb - mfacb; + m0 = m2 + mfbcb; + mfacb = m0; + mfbcb = m1 - m0 * vvx; + mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfcac; + m1 = mfcac - mfaac; + m0 = m2 + mfbac; + mfaac = m0; + m0 += c1o3 * oMdrho; + mfbac = m1 - m0 * vvx; + mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabc + mfcbc; + m1 = mfcbc - mfabc; + m0 = m2 + mfbbc; + mfabc = m0; + mfbbc = m1 - m0 * vvx; + mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacc + mfccc; + m1 = mfccc - mfacc; + m0 = m2 + mfbcc; + mfacc = m0; + m0 += c1o9 * oMdrho; + mfbcc = m1 - m0 * vvx; + mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + // linear combinations - mxxyPyzz = mfcba + mfabc; - mxxyMyzz = mfcba - mfabc; + mxxyPyzz = mfcba + mfabc; + mxxyMyzz = mfcba - mfabc; - mxxzPyyz = mfcab + mfacb; - mxxzMyyz = mfcab - mfacb; + mxxzPyyz = mfcab + mfacb; + mxxzMyyz = mfcab - mfacb; - mxyyPxzz = mfbca + mfbac; - mxyyMxzz = mfbca - mfbac; + mxyyPxzz = mfbca + mfbac; + mxyyMxzz = mfbca - mfbac; - ////////////////////////////////////////////////////////////////////////// - //exclusive for this source node - real mfbbb_SEB = mfbbb; - real mxxyPyzz_SEB = mxxyPyzz; - real mxxyMyzz_SEB = mxxyMyzz; - real mxxzPyyz_SEB = mxxzPyyz; - real mxxzMyyz_SEB = mxxzMyyz; - real mxyyPxzz_SEB = mxyyPxzz; - real mxyyMxzz_SEB = mxyyMxzz; - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// + //exclusive for this source node + real mfbbb_SEB = mfbbb; + real mxxyPyzz_SEB = mxxyPyzz; + real mxxyMyzz_SEB = mxxyMyzz; + real mxxzPyyz_SEB = mxxzPyyz; + real mxxzMyyz_SEB = mxxzMyyz; + real mxyyPxzz_SEB = mxyyPxzz; + real mxyyMxzz_SEB = mxyyMxzz; + ////////////////////////////////////////////////////////////////////////// @@ -3087,8 +3087,8 @@ __global__ void scaleFC_AA2016_comp_27(real* DC, drho_NWB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; vx1_NWB = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_NWB); - vx2_NWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NWB); - vx3_NWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NWB); + vx2_NWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NWB); + vx3_NWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NWB); kxyFromfcNEQ_NWB = -c3o1*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_NWB) - ((vx1_NWB*vx2_NWB))); kyzFromfcNEQ_NWB = -c3o1*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_NWB) - ((vx2_NWB*vx3_NWB))); @@ -3096,306 +3096,306 @@ __global__ void scaleFC_AA2016_comp_27(real* DC, kxxMyyFromfcNEQ_NWB = -c3o2*omegaS *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_NWB) - ((vx1_NWB*vx1_NWB-vx2_NWB*vx2_NWB))); kxxMzzFromfcNEQ_NWB = -c3o2*omegaS *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_NWB) - ((vx1_NWB*vx1_NWB-vx3_NWB*vx3_NWB))); - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - mfcbb = f_E ; - mfabb = f_W ; - mfbcb = f_N ; - mfbab = f_S ; - mfbbc = f_T ; - mfbba = f_B ; - mfccb = f_NE ; - mfaab = f_SW ; - mfcab = f_SE ; - mfacb = f_NW ; - mfcbc = f_TE ; - mfaba = f_BW ; - mfcba = f_BE ; - mfabc = f_TW ; - mfbcc = f_TN ; - mfbaa = f_BS ; - mfbca = f_BN ; - mfbac = f_TS ; - mfbbb = f_ZERO; - mfccc = f_TNE ; - mfaac = f_TSW ; - mfcac = f_TSE ; - mfacc = f_TNW ; - mfcca = f_BNE ; - mfaaa = f_BSW ; - mfcaa = f_BSE ; - mfaca = f_BNW ; - //////////////////////////////////////////////////////////////////////////////////// - drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + - (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + - ((mfabb+mfcbb) + (mfbab+mfbcb)) + (mfbba+mfbbc)) + mfbbb; - - rho = c1o1+drho; - //////////////////////////////////////////////////////////////////////////////////// - vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + - (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + - (mfcbb-mfabb)) / rho; - vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + - (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + - (mfbcb-mfbab)) / rho; - vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + - (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + - (mfbbc-mfbba)) / rho; - //////////////////////////////////////////////////////////////////////////////////// - //fast - oMdrho = c1o1; // comp special - vx2=vvx*vvx; - vy2=vvy*vvy; - vz2=vvz*vvz; - //////////////////////////////////////////////////////////////////////////////////// - //Hin - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m2 = mfaaa + mfaac; - m1 = mfaac - mfaaa; - m0 = m2 + mfaab; - mfaaa = m0; - m0 += c1o36 * oMdrho; - mfaab = m1 - m0 * vvz; - mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfabc; - m1 = mfabc - mfaba; - m0 = m2 + mfabb; - mfaba = m0; - m0 += c1o9 * oMdrho; - mfabb = m1 - m0 * vvz; - mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfacc; - m1 = mfacc - mfaca; - m0 = m2 + mfacb; - mfaca = m0; - m0 += c1o36 * oMdrho; - mfacb = m1 - m0 * vvz; - mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbac; - m1 = mfbac - mfbaa; - m0 = m2 + mfbab; - mfbaa = m0; - m0 += c1o9 * oMdrho; - mfbab = m1 - m0 * vvz; - mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbba + mfbbc; - m1 = mfbbc - mfbba; - m0 = m2 + mfbbb; - mfbba = m0; - m0 += c4o9 * oMdrho; - mfbbb = m1 - m0 * vvz; - mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbca + mfbcc; - m1 = mfbcc - mfbca; - m0 = m2 + mfbcb; - mfbca = m0; - m0 += c1o9 * oMdrho; - mfbcb = m1 - m0 * vvz; - mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcac; - m1 = mfcac - mfcaa; - m0 = m2 + mfcab; - mfcaa = m0; - m0 += c1o36 * oMdrho; - mfcab = m1 - m0 * vvz; - mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcba + mfcbc; - m1 = mfcbc - mfcba; - m0 = m2 + mfcbb; - mfcba = m0; - m0 += c1o9 * oMdrho; - mfcbb = m1 - m0 * vvz; - mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcca + mfccc; - m1 = mfccc - mfcca; - m0 = m2 + mfccb; - mfcca = m0; - m0 += c1o36 * oMdrho; - mfccb = m1 - m0 * vvz; - mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m2 = mfaaa + mfaca; - m1 = mfaca - mfaaa; - m0 = m2 + mfaba; - mfaaa = m0; - m0 += c1o6 * oMdrho; - mfaba = m1 - m0 * vvy; - mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfacb; - m1 = mfacb - mfaab; - m0 = m2 + mfabb; - mfaab = m0; - mfabb = m1 - m0 * vvy; - mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfacc; - m1 = mfacc - mfaac; - m0 = m2 + mfabc; - mfaac = m0; - m0 += c1o18 * oMdrho; - mfabc = m1 - m0 * vvy; - mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbca; - m1 = mfbca - mfbaa; - m0 = m2 + mfbba; - mfbaa = m0; - m0 += c2o3 * oMdrho; - mfbba = m1 - m0 * vvy; - mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbab + mfbcb; - m1 = mfbcb - mfbab; - m0 = m2 + mfbbb; - mfbab = m0; - mfbbb = m1 - m0 * vvy; - mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbac + mfbcc; - m1 = mfbcc - mfbac; - m0 = m2 + mfbbc; - mfbac = m0; - m0 += c2o9 * oMdrho; - mfbbc = m1 - m0 * vvy; - mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcca; - m1 = mfcca - mfcaa; - m0 = m2 + mfcba; - mfcaa = m0; - m0 += c1o6 * oMdrho; - mfcba = m1 - m0 * vvy; - mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcab + mfccb; - m1 = mfccb - mfcab; - m0 = m2 + mfcbb; - mfcab = m0; - mfcbb = m1 - m0 * vvy; - mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcac + mfccc; - m1 = mfccc - mfcac; - m0 = m2 + mfcbc; - mfcac = m0; - m0 += c1o18 * oMdrho; - mfcbc = m1 - m0 * vvy; - mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m2 = mfaaa + mfcaa; - m1 = mfcaa - mfaaa; - m0 = m2 + mfbaa; - mfaaa = m0; - m0 += c1o1* oMdrho; - mfbaa = m1 - m0 * vvx; - mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfcba; - m1 = mfcba - mfaba; - m0 = m2 + mfbba; - mfaba = m0; - mfbba = m1 - m0 * vvx; - mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfcca; - m1 = mfcca - mfaca; - m0 = m2 + mfbca; - mfaca = m0; - m0 += c1o3 * oMdrho; - mfbca = m1 - m0 * vvx; - mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfcab; - m1 = mfcab - mfaab; - m0 = m2 + mfbab; - mfaab = m0; - mfbab = m1 - m0 * vvx; - mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabb + mfcbb; - m1 = mfcbb - mfabb; - m0 = m2 + mfbbb; - mfabb = m0; - mfbbb = m1 - m0 * vvx; - mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacb + mfccb; - m1 = mfccb - mfacb; - m0 = m2 + mfbcb; - mfacb = m0; - mfbcb = m1 - m0 * vvx; - mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfcac; - m1 = mfcac - mfaac; - m0 = m2 + mfbac; - mfaac = m0; - m0 += c1o3 * oMdrho; - mfbac = m1 - m0 * vvx; - mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabc + mfcbc; - m1 = mfcbc - mfabc; - m0 = m2 + mfbbc; - mfabc = m0; - mfbbc = m1 - m0 * vvx; - mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacc + mfccc; - m1 = mfccc - mfacc; - m0 = m2 + mfbcc; - mfacc = m0; - m0 += c1o9 * oMdrho; - mfbcc = m1 - m0 * vvx; - mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - // linear combinations + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + mfcbb = f_E ; + mfabb = f_W ; + mfbcb = f_N ; + mfbab = f_S ; + mfbbc = f_T ; + mfbba = f_B ; + mfccb = f_NE ; + mfaab = f_SW ; + mfcab = f_SE ; + mfacb = f_NW ; + mfcbc = f_TE ; + mfaba = f_BW ; + mfcba = f_BE ; + mfabc = f_TW ; + mfbcc = f_TN ; + mfbaa = f_BS ; + mfbca = f_BN ; + mfbac = f_TS ; + mfbbb = f_ZERO; + mfccc = f_TNE ; + mfaac = f_TSW ; + mfcac = f_TSE ; + mfacc = f_TNW ; + mfcca = f_BNE ; + mfaaa = f_BSW ; + mfcaa = f_BSE ; + mfaca = f_BNW ; + //////////////////////////////////////////////////////////////////////////////////// + drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + + (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + + ((mfabb+mfcbb) + (mfbab+mfbcb)) + (mfbba+mfbbc)) + mfbbb; + + rho = c1o1+drho; + //////////////////////////////////////////////////////////////////////////////////// + vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + + (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + + (mfcbb-mfabb)) / rho; + vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + + (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + + (mfbcb-mfbab)) / rho; + vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + + (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + + (mfbbc-mfbba)) / rho; + //////////////////////////////////////////////////////////////////////////////////// + //fast + oMdrho = c1o1; // comp special + vx2=vvx*vvx; + vy2=vvy*vvy; + vz2=vvz*vvz; + //////////////////////////////////////////////////////////////////////////////////// + //Hin + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m2 = mfaaa + mfaac; + m1 = mfaac - mfaaa; + m0 = m2 + mfaab; + mfaaa = m0; + m0 += c1o36 * oMdrho; + mfaab = m1 - m0 * vvz; + mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfabc; + m1 = mfabc - mfaba; + m0 = m2 + mfabb; + mfaba = m0; + m0 += c1o9 * oMdrho; + mfabb = m1 - m0 * vvz; + mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfacc; + m1 = mfacc - mfaca; + m0 = m2 + mfacb; + mfaca = m0; + m0 += c1o36 * oMdrho; + mfacb = m1 - m0 * vvz; + mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbac; + m1 = mfbac - mfbaa; + m0 = m2 + mfbab; + mfbaa = m0; + m0 += c1o9 * oMdrho; + mfbab = m1 - m0 * vvz; + mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbba + mfbbc; + m1 = mfbbc - mfbba; + m0 = m2 + mfbbb; + mfbba = m0; + m0 += c4o9 * oMdrho; + mfbbb = m1 - m0 * vvz; + mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbca + mfbcc; + m1 = mfbcc - mfbca; + m0 = m2 + mfbcb; + mfbca = m0; + m0 += c1o9 * oMdrho; + mfbcb = m1 - m0 * vvz; + mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcac; + m1 = mfcac - mfcaa; + m0 = m2 + mfcab; + mfcaa = m0; + m0 += c1o36 * oMdrho; + mfcab = m1 - m0 * vvz; + mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcba + mfcbc; + m1 = mfcbc - mfcba; + m0 = m2 + mfcbb; + mfcba = m0; + m0 += c1o9 * oMdrho; + mfcbb = m1 - m0 * vvz; + mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcca + mfccc; + m1 = mfccc - mfcca; + m0 = m2 + mfccb; + mfcca = m0; + m0 += c1o36 * oMdrho; + mfccb = m1 - m0 * vvz; + mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m2 = mfaaa + mfaca; + m1 = mfaca - mfaaa; + m0 = m2 + mfaba; + mfaaa = m0; + m0 += c1o6 * oMdrho; + mfaba = m1 - m0 * vvy; + mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfacb; + m1 = mfacb - mfaab; + m0 = m2 + mfabb; + mfaab = m0; + mfabb = m1 - m0 * vvy; + mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfacc; + m1 = mfacc - mfaac; + m0 = m2 + mfabc; + mfaac = m0; + m0 += c1o18 * oMdrho; + mfabc = m1 - m0 * vvy; + mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbca; + m1 = mfbca - mfbaa; + m0 = m2 + mfbba; + mfbaa = m0; + m0 += c2o3 * oMdrho; + mfbba = m1 - m0 * vvy; + mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbab + mfbcb; + m1 = mfbcb - mfbab; + m0 = m2 + mfbbb; + mfbab = m0; + mfbbb = m1 - m0 * vvy; + mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbac + mfbcc; + m1 = mfbcc - mfbac; + m0 = m2 + mfbbc; + mfbac = m0; + m0 += c2o9 * oMdrho; + mfbbc = m1 - m0 * vvy; + mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcca; + m1 = mfcca - mfcaa; + m0 = m2 + mfcba; + mfcaa = m0; + m0 += c1o6 * oMdrho; + mfcba = m1 - m0 * vvy; + mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcab + mfccb; + m1 = mfccb - mfcab; + m0 = m2 + mfcbb; + mfcab = m0; + mfcbb = m1 - m0 * vvy; + mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcac + mfccc; + m1 = mfccc - mfcac; + m0 = m2 + mfcbc; + mfcac = m0; + m0 += c1o18 * oMdrho; + mfcbc = m1 - m0 * vvy; + mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m2 = mfaaa + mfcaa; + m1 = mfcaa - mfaaa; + m0 = m2 + mfbaa; + mfaaa = m0; + m0 += c1o1* oMdrho; + mfbaa = m1 - m0 * vvx; + mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfcba; + m1 = mfcba - mfaba; + m0 = m2 + mfbba; + mfaba = m0; + mfbba = m1 - m0 * vvx; + mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfcca; + m1 = mfcca - mfaca; + m0 = m2 + mfbca; + mfaca = m0; + m0 += c1o3 * oMdrho; + mfbca = m1 - m0 * vvx; + mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfcab; + m1 = mfcab - mfaab; + m0 = m2 + mfbab; + mfaab = m0; + mfbab = m1 - m0 * vvx; + mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabb + mfcbb; + m1 = mfcbb - mfabb; + m0 = m2 + mfbbb; + mfabb = m0; + mfbbb = m1 - m0 * vvx; + mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacb + mfccb; + m1 = mfccb - mfacb; + m0 = m2 + mfbcb; + mfacb = m0; + mfbcb = m1 - m0 * vvx; + mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfcac; + m1 = mfcac - mfaac; + m0 = m2 + mfbac; + mfaac = m0; + m0 += c1o3 * oMdrho; + mfbac = m1 - m0 * vvx; + mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabc + mfcbc; + m1 = mfcbc - mfabc; + m0 = m2 + mfbbc; + mfabc = m0; + mfbbc = m1 - m0 * vvx; + mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacc + mfccc; + m1 = mfccc - mfacc; + m0 = m2 + mfbcc; + mfacc = m0; + m0 += c1o9 * oMdrho; + mfbcc = m1 - m0 * vvx; + mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + // linear combinations - mxxyPyzz = mfcba + mfabc; - mxxyMyzz = mfcba - mfabc; + mxxyPyzz = mfcba + mfabc; + mxxyMyzz = mfcba - mfabc; - mxxzPyyz = mfcab + mfacb; - mxxzMyyz = mfcab - mfacb; + mxxzPyyz = mfcab + mfacb; + mxxzMyyz = mfcab - mfacb; - mxyyPxzz = mfbca + mfbac; - mxyyMxzz = mfbca - mfbac; + mxyyPxzz = mfbca + mfbac; + mxyyMxzz = mfbca - mfbac; - ////////////////////////////////////////////////////////////////////////// - //exclusive for this source node - real mfbbb_NWB = mfbbb; - real mxxyPyzz_NWB = mxxyPyzz; - real mxxyMyzz_NWB = mxxyMyzz; - real mxxzPyyz_NWB = mxxzPyyz; - real mxxzMyyz_NWB = mxxzMyyz; - real mxyyPxzz_NWB = mxyyPxzz; - real mxyyMxzz_NWB = mxyyMxzz; - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// + //exclusive for this source node + real mfbbb_NWB = mfbbb; + real mxxyPyzz_NWB = mxxyPyzz; + real mxxyMyzz_NWB = mxxyMyzz; + real mxxzPyyz_NWB = mxxzPyyz; + real mxxzMyyz_NWB = mxxzMyyz; + real mxyyPxzz_NWB = mxyyPxzz; + real mxyyMxzz_NWB = mxyyMxzz; + ////////////////////////////////////////////////////////////////////////// @@ -3493,8 +3493,8 @@ __global__ void scaleFC_AA2016_comp_27(real* DC, drho_NWT = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; vx1_NWT = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_NWT); - vx2_NWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NWT); - vx3_NWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NWT); + vx2_NWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NWT); + vx3_NWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NWT); kxyFromfcNEQ_NWT = -c3o1*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_NWT) - ((vx1_NWT*vx2_NWT))); kyzFromfcNEQ_NWT = -c3o1*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_NWT) - ((vx2_NWT*vx3_NWT))); @@ -3502,306 +3502,306 @@ __global__ void scaleFC_AA2016_comp_27(real* DC, kxxMyyFromfcNEQ_NWT = -c3o2*omegaS *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_NWT) - ((vx1_NWT*vx1_NWT-vx2_NWT*vx2_NWT))); kxxMzzFromfcNEQ_NWT = -c3o2*omegaS *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_NWT) - ((vx1_NWT*vx1_NWT-vx3_NWT*vx3_NWT))); - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - mfcbb = f_E ; - mfabb = f_W ; - mfbcb = f_N ; - mfbab = f_S ; - mfbbc = f_T ; - mfbba = f_B ; - mfccb = f_NE ; - mfaab = f_SW ; - mfcab = f_SE ; - mfacb = f_NW ; - mfcbc = f_TE ; - mfaba = f_BW ; - mfcba = f_BE ; - mfabc = f_TW ; - mfbcc = f_TN ; - mfbaa = f_BS ; - mfbca = f_BN ; - mfbac = f_TS ; - mfbbb = f_ZERO; - mfccc = f_TNE ; - mfaac = f_TSW ; - mfcac = f_TSE ; - mfacc = f_TNW ; - mfcca = f_BNE ; - mfaaa = f_BSW ; - mfcaa = f_BSE ; - mfaca = f_BNW ; - //////////////////////////////////////////////////////////////////////////////////// - drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + - (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + - ((mfabb+mfcbb) + (mfbab+mfbcb)) + (mfbba+mfbbc)) + mfbbb; - - rho = c1o1+drho; - //////////////////////////////////////////////////////////////////////////////////// - vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + - (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + - (mfcbb-mfabb)) / rho; - vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + - (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + - (mfbcb-mfbab)) / rho; - vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + - (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + - (mfbbc-mfbba)) / rho; - //////////////////////////////////////////////////////////////////////////////////// - //fast - oMdrho = c1o1; // comp special - vx2=vvx*vvx; - vy2=vvy*vvy; - vz2=vvz*vvz; - //////////////////////////////////////////////////////////////////////////////////// - //Hin - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m2 = mfaaa + mfaac; - m1 = mfaac - mfaaa; - m0 = m2 + mfaab; - mfaaa = m0; - m0 += c1o36 * oMdrho; - mfaab = m1 - m0 * vvz; - mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfabc; - m1 = mfabc - mfaba; - m0 = m2 + mfabb; - mfaba = m0; - m0 += c1o9 * oMdrho; - mfabb = m1 - m0 * vvz; - mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfacc; - m1 = mfacc - mfaca; - m0 = m2 + mfacb; - mfaca = m0; - m0 += c1o36 * oMdrho; - mfacb = m1 - m0 * vvz; - mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbac; - m1 = mfbac - mfbaa; - m0 = m2 + mfbab; - mfbaa = m0; - m0 += c1o9 * oMdrho; - mfbab = m1 - m0 * vvz; - mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbba + mfbbc; - m1 = mfbbc - mfbba; - m0 = m2 + mfbbb; - mfbba = m0; - m0 += c4o9 * oMdrho; - mfbbb = m1 - m0 * vvz; - mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbca + mfbcc; - m1 = mfbcc - mfbca; - m0 = m2 + mfbcb; - mfbca = m0; - m0 += c1o9 * oMdrho; - mfbcb = m1 - m0 * vvz; - mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcac; - m1 = mfcac - mfcaa; - m0 = m2 + mfcab; - mfcaa = m0; - m0 += c1o36 * oMdrho; - mfcab = m1 - m0 * vvz; - mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcba + mfcbc; - m1 = mfcbc - mfcba; - m0 = m2 + mfcbb; - mfcba = m0; - m0 += c1o9 * oMdrho; - mfcbb = m1 - m0 * vvz; - mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcca + mfccc; - m1 = mfccc - mfcca; - m0 = m2 + mfccb; - mfcca = m0; - m0 += c1o36 * oMdrho; - mfccb = m1 - m0 * vvz; - mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m2 = mfaaa + mfaca; - m1 = mfaca - mfaaa; - m0 = m2 + mfaba; - mfaaa = m0; - m0 += c1o6 * oMdrho; - mfaba = m1 - m0 * vvy; - mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfacb; - m1 = mfacb - mfaab; - m0 = m2 + mfabb; - mfaab = m0; - mfabb = m1 - m0 * vvy; - mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfacc; - m1 = mfacc - mfaac; - m0 = m2 + mfabc; - mfaac = m0; - m0 += c1o18 * oMdrho; - mfabc = m1 - m0 * vvy; - mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbca; - m1 = mfbca - mfbaa; - m0 = m2 + mfbba; - mfbaa = m0; - m0 += c2o3 * oMdrho; - mfbba = m1 - m0 * vvy; - mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbab + mfbcb; - m1 = mfbcb - mfbab; - m0 = m2 + mfbbb; - mfbab = m0; - mfbbb = m1 - m0 * vvy; - mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbac + mfbcc; - m1 = mfbcc - mfbac; - m0 = m2 + mfbbc; - mfbac = m0; - m0 += c2o9 * oMdrho; - mfbbc = m1 - m0 * vvy; - mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcca; - m1 = mfcca - mfcaa; - m0 = m2 + mfcba; - mfcaa = m0; - m0 += c1o6 * oMdrho; - mfcba = m1 - m0 * vvy; - mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcab + mfccb; - m1 = mfccb - mfcab; - m0 = m2 + mfcbb; - mfcab = m0; - mfcbb = m1 - m0 * vvy; - mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcac + mfccc; - m1 = mfccc - mfcac; - m0 = m2 + mfcbc; - mfcac = m0; - m0 += c1o18 * oMdrho; - mfcbc = m1 - m0 * vvy; - mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m2 = mfaaa + mfcaa; - m1 = mfcaa - mfaaa; - m0 = m2 + mfbaa; - mfaaa = m0; - m0 += c1o1* oMdrho; - mfbaa = m1 - m0 * vvx; - mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfcba; - m1 = mfcba - mfaba; - m0 = m2 + mfbba; - mfaba = m0; - mfbba = m1 - m0 * vvx; - mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfcca; - m1 = mfcca - mfaca; - m0 = m2 + mfbca; - mfaca = m0; - m0 += c1o3 * oMdrho; - mfbca = m1 - m0 * vvx; - mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfcab; - m1 = mfcab - mfaab; - m0 = m2 + mfbab; - mfaab = m0; - mfbab = m1 - m0 * vvx; - mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabb + mfcbb; - m1 = mfcbb - mfabb; - m0 = m2 + mfbbb; - mfabb = m0; - mfbbb = m1 - m0 * vvx; - mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacb + mfccb; - m1 = mfccb - mfacb; - m0 = m2 + mfbcb; - mfacb = m0; - mfbcb = m1 - m0 * vvx; - mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfcac; - m1 = mfcac - mfaac; - m0 = m2 + mfbac; - mfaac = m0; - m0 += c1o3 * oMdrho; - mfbac = m1 - m0 * vvx; - mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabc + mfcbc; - m1 = mfcbc - mfabc; - m0 = m2 + mfbbc; - mfabc = m0; - mfbbc = m1 - m0 * vvx; - mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacc + mfccc; - m1 = mfccc - mfacc; - m0 = m2 + mfbcc; - mfacc = m0; - m0 += c1o9 * oMdrho; - mfbcc = m1 - m0 * vvx; - mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - // linear combinations + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + mfcbb = f_E ; + mfabb = f_W ; + mfbcb = f_N ; + mfbab = f_S ; + mfbbc = f_T ; + mfbba = f_B ; + mfccb = f_NE ; + mfaab = f_SW ; + mfcab = f_SE ; + mfacb = f_NW ; + mfcbc = f_TE ; + mfaba = f_BW ; + mfcba = f_BE ; + mfabc = f_TW ; + mfbcc = f_TN ; + mfbaa = f_BS ; + mfbca = f_BN ; + mfbac = f_TS ; + mfbbb = f_ZERO; + mfccc = f_TNE ; + mfaac = f_TSW ; + mfcac = f_TSE ; + mfacc = f_TNW ; + mfcca = f_BNE ; + mfaaa = f_BSW ; + mfcaa = f_BSE ; + mfaca = f_BNW ; + //////////////////////////////////////////////////////////////////////////////////// + drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + + (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + + ((mfabb+mfcbb) + (mfbab+mfbcb)) + (mfbba+mfbbc)) + mfbbb; + + rho = c1o1+drho; + //////////////////////////////////////////////////////////////////////////////////// + vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + + (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + + (mfcbb-mfabb)) / rho; + vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + + (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + + (mfbcb-mfbab)) / rho; + vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + + (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + + (mfbbc-mfbba)) / rho; + //////////////////////////////////////////////////////////////////////////////////// + //fast + oMdrho = c1o1; // comp special + vx2=vvx*vvx; + vy2=vvy*vvy; + vz2=vvz*vvz; + //////////////////////////////////////////////////////////////////////////////////// + //Hin + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m2 = mfaaa + mfaac; + m1 = mfaac - mfaaa; + m0 = m2 + mfaab; + mfaaa = m0; + m0 += c1o36 * oMdrho; + mfaab = m1 - m0 * vvz; + mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfabc; + m1 = mfabc - mfaba; + m0 = m2 + mfabb; + mfaba = m0; + m0 += c1o9 * oMdrho; + mfabb = m1 - m0 * vvz; + mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfacc; + m1 = mfacc - mfaca; + m0 = m2 + mfacb; + mfaca = m0; + m0 += c1o36 * oMdrho; + mfacb = m1 - m0 * vvz; + mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbac; + m1 = mfbac - mfbaa; + m0 = m2 + mfbab; + mfbaa = m0; + m0 += c1o9 * oMdrho; + mfbab = m1 - m0 * vvz; + mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbba + mfbbc; + m1 = mfbbc - mfbba; + m0 = m2 + mfbbb; + mfbba = m0; + m0 += c4o9 * oMdrho; + mfbbb = m1 - m0 * vvz; + mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbca + mfbcc; + m1 = mfbcc - mfbca; + m0 = m2 + mfbcb; + mfbca = m0; + m0 += c1o9 * oMdrho; + mfbcb = m1 - m0 * vvz; + mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcac; + m1 = mfcac - mfcaa; + m0 = m2 + mfcab; + mfcaa = m0; + m0 += c1o36 * oMdrho; + mfcab = m1 - m0 * vvz; + mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcba + mfcbc; + m1 = mfcbc - mfcba; + m0 = m2 + mfcbb; + mfcba = m0; + m0 += c1o9 * oMdrho; + mfcbb = m1 - m0 * vvz; + mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcca + mfccc; + m1 = mfccc - mfcca; + m0 = m2 + mfccb; + mfcca = m0; + m0 += c1o36 * oMdrho; + mfccb = m1 - m0 * vvz; + mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m2 = mfaaa + mfaca; + m1 = mfaca - mfaaa; + m0 = m2 + mfaba; + mfaaa = m0; + m0 += c1o6 * oMdrho; + mfaba = m1 - m0 * vvy; + mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfacb; + m1 = mfacb - mfaab; + m0 = m2 + mfabb; + mfaab = m0; + mfabb = m1 - m0 * vvy; + mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfacc; + m1 = mfacc - mfaac; + m0 = m2 + mfabc; + mfaac = m0; + m0 += c1o18 * oMdrho; + mfabc = m1 - m0 * vvy; + mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbca; + m1 = mfbca - mfbaa; + m0 = m2 + mfbba; + mfbaa = m0; + m0 += c2o3 * oMdrho; + mfbba = m1 - m0 * vvy; + mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbab + mfbcb; + m1 = mfbcb - mfbab; + m0 = m2 + mfbbb; + mfbab = m0; + mfbbb = m1 - m0 * vvy; + mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbac + mfbcc; + m1 = mfbcc - mfbac; + m0 = m2 + mfbbc; + mfbac = m0; + m0 += c2o9 * oMdrho; + mfbbc = m1 - m0 * vvy; + mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcca; + m1 = mfcca - mfcaa; + m0 = m2 + mfcba; + mfcaa = m0; + m0 += c1o6 * oMdrho; + mfcba = m1 - m0 * vvy; + mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcab + mfccb; + m1 = mfccb - mfcab; + m0 = m2 + mfcbb; + mfcab = m0; + mfcbb = m1 - m0 * vvy; + mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcac + mfccc; + m1 = mfccc - mfcac; + m0 = m2 + mfcbc; + mfcac = m0; + m0 += c1o18 * oMdrho; + mfcbc = m1 - m0 * vvy; + mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m2 = mfaaa + mfcaa; + m1 = mfcaa - mfaaa; + m0 = m2 + mfbaa; + mfaaa = m0; + m0 += c1o1* oMdrho; + mfbaa = m1 - m0 * vvx; + mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfcba; + m1 = mfcba - mfaba; + m0 = m2 + mfbba; + mfaba = m0; + mfbba = m1 - m0 * vvx; + mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfcca; + m1 = mfcca - mfaca; + m0 = m2 + mfbca; + mfaca = m0; + m0 += c1o3 * oMdrho; + mfbca = m1 - m0 * vvx; + mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfcab; + m1 = mfcab - mfaab; + m0 = m2 + mfbab; + mfaab = m0; + mfbab = m1 - m0 * vvx; + mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabb + mfcbb; + m1 = mfcbb - mfabb; + m0 = m2 + mfbbb; + mfabb = m0; + mfbbb = m1 - m0 * vvx; + mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacb + mfccb; + m1 = mfccb - mfacb; + m0 = m2 + mfbcb; + mfacb = m0; + mfbcb = m1 - m0 * vvx; + mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfcac; + m1 = mfcac - mfaac; + m0 = m2 + mfbac; + mfaac = m0; + m0 += c1o3 * oMdrho; + mfbac = m1 - m0 * vvx; + mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabc + mfcbc; + m1 = mfcbc - mfabc; + m0 = m2 + mfbbc; + mfabc = m0; + mfbbc = m1 - m0 * vvx; + mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacc + mfccc; + m1 = mfccc - mfacc; + m0 = m2 + mfbcc; + mfacc = m0; + m0 += c1o9 * oMdrho; + mfbcc = m1 - m0 * vvx; + mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + // linear combinations - mxxyPyzz = mfcba + mfabc; - mxxyMyzz = mfcba - mfabc; + mxxyPyzz = mfcba + mfabc; + mxxyMyzz = mfcba - mfabc; - mxxzPyyz = mfcab + mfacb; - mxxzMyyz = mfcab - mfacb; + mxxzPyyz = mfcab + mfacb; + mxxzMyyz = mfcab - mfacb; - mxyyPxzz = mfbca + mfbac; - mxyyMxzz = mfbca - mfbac; + mxyyPxzz = mfbca + mfbac; + mxyyMxzz = mfbca - mfbac; - ////////////////////////////////////////////////////////////////////////// - //exclusive for this source node - real mfbbb_NWT = mfbbb; - real mxxyPyzz_NWT = mxxyPyzz; - real mxxyMyzz_NWT = mxxyMyzz; - real mxxzPyyz_NWT = mxxzPyyz; - real mxxzMyyz_NWT = mxxzMyyz; - real mxyyPxzz_NWT = mxyyPxzz; - real mxyyMxzz_NWT = mxyyMxzz; - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// + //exclusive for this source node + real mfbbb_NWT = mfbbb; + real mxxyPyzz_NWT = mxxyPyzz; + real mxxyMyzz_NWT = mxxyMyzz; + real mxxzPyyz_NWT = mxxzPyyz; + real mxxzMyyz_NWT = mxxzMyyz; + real mxyyPxzz_NWT = mxyyPxzz; + real mxyyMxzz_NWT = mxyyMxzz; + ////////////////////////////////////////////////////////////////////////// @@ -3899,8 +3899,8 @@ __global__ void scaleFC_AA2016_comp_27(real* DC, drho_NET = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; vx1_NET = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_NET); - vx2_NET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NET); - vx3_NET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NET); + vx2_NET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NET); + vx3_NET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NET); kxyFromfcNEQ_NET = -c3o1*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_NET) - ((vx1_NET*vx2_NET))); kyzFromfcNEQ_NET = -c3o1*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_NET) - ((vx2_NET*vx3_NET))); @@ -3908,306 +3908,306 @@ __global__ void scaleFC_AA2016_comp_27(real* DC, kxxMyyFromfcNEQ_NET = -c3o2*omegaS *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_NET) - ((vx1_NET*vx1_NET-vx2_NET*vx2_NET))); kxxMzzFromfcNEQ_NET = -c3o2*omegaS *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_NET) - ((vx1_NET*vx1_NET-vx3_NET*vx3_NET))); - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - mfcbb = f_E ; - mfabb = f_W ; - mfbcb = f_N ; - mfbab = f_S ; - mfbbc = f_T ; - mfbba = f_B ; - mfccb = f_NE ; - mfaab = f_SW ; - mfcab = f_SE ; - mfacb = f_NW ; - mfcbc = f_TE ; - mfaba = f_BW ; - mfcba = f_BE ; - mfabc = f_TW ; - mfbcc = f_TN ; - mfbaa = f_BS ; - mfbca = f_BN ; - mfbac = f_TS ; - mfbbb = f_ZERO; - mfccc = f_TNE ; - mfaac = f_TSW ; - mfcac = f_TSE ; - mfacc = f_TNW ; - mfcca = f_BNE ; - mfaaa = f_BSW ; - mfcaa = f_BSE ; - mfaca = f_BNW ; - //////////////////////////////////////////////////////////////////////////////////// - drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + - (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + - ((mfabb+mfcbb) + (mfbab+mfbcb)) + (mfbba+mfbbc)) + mfbbb; - - rho = c1o1+drho; - //////////////////////////////////////////////////////////////////////////////////// - vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + - (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + - (mfcbb-mfabb)) / rho; - vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + - (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + - (mfbcb-mfbab)) / rho; - vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + - (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + - (mfbbc-mfbba)) / rho; - //////////////////////////////////////////////////////////////////////////////////// - //fast - oMdrho = c1o1; // comp special - vx2=vvx*vvx; - vy2=vvy*vvy; - vz2=vvz*vvz; - //////////////////////////////////////////////////////////////////////////////////// - //Hin - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m2 = mfaaa + mfaac; - m1 = mfaac - mfaaa; - m0 = m2 + mfaab; - mfaaa = m0; - m0 += c1o36 * oMdrho; - mfaab = m1 - m0 * vvz; - mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfabc; - m1 = mfabc - mfaba; - m0 = m2 + mfabb; - mfaba = m0; - m0 += c1o9 * oMdrho; - mfabb = m1 - m0 * vvz; - mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfacc; - m1 = mfacc - mfaca; - m0 = m2 + mfacb; - mfaca = m0; - m0 += c1o36 * oMdrho; - mfacb = m1 - m0 * vvz; - mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbac; - m1 = mfbac - mfbaa; - m0 = m2 + mfbab; - mfbaa = m0; - m0 += c1o9 * oMdrho; - mfbab = m1 - m0 * vvz; - mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbba + mfbbc; - m1 = mfbbc - mfbba; - m0 = m2 + mfbbb; - mfbba = m0; - m0 += c4o9 * oMdrho; - mfbbb = m1 - m0 * vvz; - mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbca + mfbcc; - m1 = mfbcc - mfbca; - m0 = m2 + mfbcb; - mfbca = m0; - m0 += c1o9 * oMdrho; - mfbcb = m1 - m0 * vvz; - mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcac; - m1 = mfcac - mfcaa; - m0 = m2 + mfcab; - mfcaa = m0; - m0 += c1o36 * oMdrho; - mfcab = m1 - m0 * vvz; - mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcba + mfcbc; - m1 = mfcbc - mfcba; - m0 = m2 + mfcbb; - mfcba = m0; - m0 += c1o9 * oMdrho; - mfcbb = m1 - m0 * vvz; - mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcca + mfccc; - m1 = mfccc - mfcca; - m0 = m2 + mfccb; - mfcca = m0; - m0 += c1o36 * oMdrho; - mfccb = m1 - m0 * vvz; - mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m2 = mfaaa + mfaca; - m1 = mfaca - mfaaa; - m0 = m2 + mfaba; - mfaaa = m0; - m0 += c1o6 * oMdrho; - mfaba = m1 - m0 * vvy; - mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfacb; - m1 = mfacb - mfaab; - m0 = m2 + mfabb; - mfaab = m0; - mfabb = m1 - m0 * vvy; - mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfacc; - m1 = mfacc - mfaac; - m0 = m2 + mfabc; - mfaac = m0; - m0 += c1o18 * oMdrho; - mfabc = m1 - m0 * vvy; - mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbca; - m1 = mfbca - mfbaa; - m0 = m2 + mfbba; - mfbaa = m0; - m0 += c2o3 * oMdrho; - mfbba = m1 - m0 * vvy; - mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbab + mfbcb; - m1 = mfbcb - mfbab; - m0 = m2 + mfbbb; - mfbab = m0; - mfbbb = m1 - m0 * vvy; - mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbac + mfbcc; - m1 = mfbcc - mfbac; - m0 = m2 + mfbbc; - mfbac = m0; - m0 += c2o9 * oMdrho; - mfbbc = m1 - m0 * vvy; - mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcca; - m1 = mfcca - mfcaa; - m0 = m2 + mfcba; - mfcaa = m0; - m0 += c1o6 * oMdrho; - mfcba = m1 - m0 * vvy; - mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcab + mfccb; - m1 = mfccb - mfcab; - m0 = m2 + mfcbb; - mfcab = m0; - mfcbb = m1 - m0 * vvy; - mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcac + mfccc; - m1 = mfccc - mfcac; - m0 = m2 + mfcbc; - mfcac = m0; - m0 += c1o18 * oMdrho; - mfcbc = m1 - m0 * vvy; - mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m2 = mfaaa + mfcaa; - m1 = mfcaa - mfaaa; - m0 = m2 + mfbaa; - mfaaa = m0; - m0 += c1o1* oMdrho; - mfbaa = m1 - m0 * vvx; - mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfcba; - m1 = mfcba - mfaba; - m0 = m2 + mfbba; - mfaba = m0; - mfbba = m1 - m0 * vvx; - mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfcca; - m1 = mfcca - mfaca; - m0 = m2 + mfbca; - mfaca = m0; - m0 += c1o3 * oMdrho; - mfbca = m1 - m0 * vvx; - mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfcab; - m1 = mfcab - mfaab; - m0 = m2 + mfbab; - mfaab = m0; - mfbab = m1 - m0 * vvx; - mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabb + mfcbb; - m1 = mfcbb - mfabb; - m0 = m2 + mfbbb; - mfabb = m0; - mfbbb = m1 - m0 * vvx; - mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacb + mfccb; - m1 = mfccb - mfacb; - m0 = m2 + mfbcb; - mfacb = m0; - mfbcb = m1 - m0 * vvx; - mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfcac; - m1 = mfcac - mfaac; - m0 = m2 + mfbac; - mfaac = m0; - m0 += c1o3 * oMdrho; - mfbac = m1 - m0 * vvx; - mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabc + mfcbc; - m1 = mfcbc - mfabc; - m0 = m2 + mfbbc; - mfabc = m0; - mfbbc = m1 - m0 * vvx; - mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacc + mfccc; - m1 = mfccc - mfacc; - m0 = m2 + mfbcc; - mfacc = m0; - m0 += c1o9 * oMdrho; - mfbcc = m1 - m0 * vvx; - mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - // linear combinations + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + mfcbb = f_E ; + mfabb = f_W ; + mfbcb = f_N ; + mfbab = f_S ; + mfbbc = f_T ; + mfbba = f_B ; + mfccb = f_NE ; + mfaab = f_SW ; + mfcab = f_SE ; + mfacb = f_NW ; + mfcbc = f_TE ; + mfaba = f_BW ; + mfcba = f_BE ; + mfabc = f_TW ; + mfbcc = f_TN ; + mfbaa = f_BS ; + mfbca = f_BN ; + mfbac = f_TS ; + mfbbb = f_ZERO; + mfccc = f_TNE ; + mfaac = f_TSW ; + mfcac = f_TSE ; + mfacc = f_TNW ; + mfcca = f_BNE ; + mfaaa = f_BSW ; + mfcaa = f_BSE ; + mfaca = f_BNW ; + //////////////////////////////////////////////////////////////////////////////////// + drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + + (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + + ((mfabb+mfcbb) + (mfbab+mfbcb)) + (mfbba+mfbbc)) + mfbbb; + + rho = c1o1+drho; + //////////////////////////////////////////////////////////////////////////////////// + vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + + (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + + (mfcbb-mfabb)) / rho; + vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + + (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + + (mfbcb-mfbab)) / rho; + vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + + (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + + (mfbbc-mfbba)) / rho; + //////////////////////////////////////////////////////////////////////////////////// + //fast + oMdrho = c1o1; // comp special + vx2=vvx*vvx; + vy2=vvy*vvy; + vz2=vvz*vvz; + //////////////////////////////////////////////////////////////////////////////////// + //Hin + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m2 = mfaaa + mfaac; + m1 = mfaac - mfaaa; + m0 = m2 + mfaab; + mfaaa = m0; + m0 += c1o36 * oMdrho; + mfaab = m1 - m0 * vvz; + mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfabc; + m1 = mfabc - mfaba; + m0 = m2 + mfabb; + mfaba = m0; + m0 += c1o9 * oMdrho; + mfabb = m1 - m0 * vvz; + mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfacc; + m1 = mfacc - mfaca; + m0 = m2 + mfacb; + mfaca = m0; + m0 += c1o36 * oMdrho; + mfacb = m1 - m0 * vvz; + mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbac; + m1 = mfbac - mfbaa; + m0 = m2 + mfbab; + mfbaa = m0; + m0 += c1o9 * oMdrho; + mfbab = m1 - m0 * vvz; + mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbba + mfbbc; + m1 = mfbbc - mfbba; + m0 = m2 + mfbbb; + mfbba = m0; + m0 += c4o9 * oMdrho; + mfbbb = m1 - m0 * vvz; + mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbca + mfbcc; + m1 = mfbcc - mfbca; + m0 = m2 + mfbcb; + mfbca = m0; + m0 += c1o9 * oMdrho; + mfbcb = m1 - m0 * vvz; + mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcac; + m1 = mfcac - mfcaa; + m0 = m2 + mfcab; + mfcaa = m0; + m0 += c1o36 * oMdrho; + mfcab = m1 - m0 * vvz; + mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcba + mfcbc; + m1 = mfcbc - mfcba; + m0 = m2 + mfcbb; + mfcba = m0; + m0 += c1o9 * oMdrho; + mfcbb = m1 - m0 * vvz; + mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcca + mfccc; + m1 = mfccc - mfcca; + m0 = m2 + mfccb; + mfcca = m0; + m0 += c1o36 * oMdrho; + mfccb = m1 - m0 * vvz; + mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m2 = mfaaa + mfaca; + m1 = mfaca - mfaaa; + m0 = m2 + mfaba; + mfaaa = m0; + m0 += c1o6 * oMdrho; + mfaba = m1 - m0 * vvy; + mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfacb; + m1 = mfacb - mfaab; + m0 = m2 + mfabb; + mfaab = m0; + mfabb = m1 - m0 * vvy; + mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfacc; + m1 = mfacc - mfaac; + m0 = m2 + mfabc; + mfaac = m0; + m0 += c1o18 * oMdrho; + mfabc = m1 - m0 * vvy; + mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbca; + m1 = mfbca - mfbaa; + m0 = m2 + mfbba; + mfbaa = m0; + m0 += c2o3 * oMdrho; + mfbba = m1 - m0 * vvy; + mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbab + mfbcb; + m1 = mfbcb - mfbab; + m0 = m2 + mfbbb; + mfbab = m0; + mfbbb = m1 - m0 * vvy; + mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbac + mfbcc; + m1 = mfbcc - mfbac; + m0 = m2 + mfbbc; + mfbac = m0; + m0 += c2o9 * oMdrho; + mfbbc = m1 - m0 * vvy; + mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcca; + m1 = mfcca - mfcaa; + m0 = m2 + mfcba; + mfcaa = m0; + m0 += c1o6 * oMdrho; + mfcba = m1 - m0 * vvy; + mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcab + mfccb; + m1 = mfccb - mfcab; + m0 = m2 + mfcbb; + mfcab = m0; + mfcbb = m1 - m0 * vvy; + mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcac + mfccc; + m1 = mfccc - mfcac; + m0 = m2 + mfcbc; + mfcac = m0; + m0 += c1o18 * oMdrho; + mfcbc = m1 - m0 * vvy; + mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m2 = mfaaa + mfcaa; + m1 = mfcaa - mfaaa; + m0 = m2 + mfbaa; + mfaaa = m0; + m0 += c1o1* oMdrho; + mfbaa = m1 - m0 * vvx; + mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfcba; + m1 = mfcba - mfaba; + m0 = m2 + mfbba; + mfaba = m0; + mfbba = m1 - m0 * vvx; + mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfcca; + m1 = mfcca - mfaca; + m0 = m2 + mfbca; + mfaca = m0; + m0 += c1o3 * oMdrho; + mfbca = m1 - m0 * vvx; + mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfcab; + m1 = mfcab - mfaab; + m0 = m2 + mfbab; + mfaab = m0; + mfbab = m1 - m0 * vvx; + mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabb + mfcbb; + m1 = mfcbb - mfabb; + m0 = m2 + mfbbb; + mfabb = m0; + mfbbb = m1 - m0 * vvx; + mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacb + mfccb; + m1 = mfccb - mfacb; + m0 = m2 + mfbcb; + mfacb = m0; + mfbcb = m1 - m0 * vvx; + mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfcac; + m1 = mfcac - mfaac; + m0 = m2 + mfbac; + mfaac = m0; + m0 += c1o3 * oMdrho; + mfbac = m1 - m0 * vvx; + mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabc + mfcbc; + m1 = mfcbc - mfabc; + m0 = m2 + mfbbc; + mfabc = m0; + mfbbc = m1 - m0 * vvx; + mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacc + mfccc; + m1 = mfccc - mfacc; + m0 = m2 + mfbcc; + mfacc = m0; + m0 += c1o9 * oMdrho; + mfbcc = m1 - m0 * vvx; + mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + // linear combinations - mxxyPyzz = mfcba + mfabc; - mxxyMyzz = mfcba - mfabc; + mxxyPyzz = mfcba + mfabc; + mxxyMyzz = mfcba - mfabc; - mxxzPyyz = mfcab + mfacb; - mxxzMyyz = mfcab - mfacb; + mxxzPyyz = mfcab + mfacb; + mxxzMyyz = mfcab - mfacb; - mxyyPxzz = mfbca + mfbac; - mxyyMxzz = mfbca - mfbac; + mxyyPxzz = mfbca + mfbac; + mxyyMxzz = mfbca - mfbac; - ////////////////////////////////////////////////////////////////////////// - //exclusive for this source node - real mfbbb_NET = mfbbb; - real mxxyPyzz_NET = mxxyPyzz; - real mxxyMyzz_NET = mxxyMyzz; - real mxxzPyyz_NET = mxxzPyyz; - real mxxzMyyz_NET = mxxzMyyz; - real mxyyPxzz_NET = mxyyPxzz; - real mxyyMxzz_NET = mxyyMxzz; - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// + //exclusive for this source node + real mfbbb_NET = mfbbb; + real mxxyPyzz_NET = mxxyPyzz; + real mxxyMyzz_NET = mxxyMyzz; + real mxxzPyyz_NET = mxxzPyyz; + real mxxzMyyz_NET = mxxzMyyz; + real mxyyPxzz_NET = mxyyPxzz; + real mxyyMxzz_NET = mxyyMxzz; + ////////////////////////////////////////////////////////////////////////// @@ -4305,8 +4305,8 @@ __global__ void scaleFC_AA2016_comp_27(real* DC, drho_NEB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; vx1_NEB = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_NEB); - vx2_NEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NEB); - vx3_NEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NEB); + vx2_NEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NEB); + vx3_NEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NEB); kxyFromfcNEQ_NEB = -c3o1*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_NEB) - ((vx1_NEB*vx2_NEB))); kyzFromfcNEQ_NEB = -c3o1*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_NEB) - ((vx2_NEB*vx3_NEB))); @@ -4314,306 +4314,306 @@ __global__ void scaleFC_AA2016_comp_27(real* DC, kxxMyyFromfcNEQ_NEB = -c3o2*omegaS *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_NEB) - ((vx1_NEB*vx1_NEB-vx2_NEB*vx2_NEB))); kxxMzzFromfcNEQ_NEB = -c3o2*omegaS *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_NEB) - ((vx1_NEB*vx1_NEB-vx3_NEB*vx3_NEB))); - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - mfcbb = f_E ; - mfabb = f_W ; - mfbcb = f_N ; - mfbab = f_S ; - mfbbc = f_T ; - mfbba = f_B ; - mfccb = f_NE ; - mfaab = f_SW ; - mfcab = f_SE ; - mfacb = f_NW ; - mfcbc = f_TE ; - mfaba = f_BW ; - mfcba = f_BE ; - mfabc = f_TW ; - mfbcc = f_TN ; - mfbaa = f_BS ; - mfbca = f_BN ; - mfbac = f_TS ; - mfbbb = f_ZERO; - mfccc = f_TNE ; - mfaac = f_TSW ; - mfcac = f_TSE ; - mfacc = f_TNW ; - mfcca = f_BNE ; - mfaaa = f_BSW ; - mfcaa = f_BSE ; - mfaca = f_BNW ; - //////////////////////////////////////////////////////////////////////////////////// - drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + - (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + - ((mfabb+mfcbb) + (mfbab+mfbcb)) + (mfbba+mfbbc)) + mfbbb; - - rho = c1o1+drho; - //////////////////////////////////////////////////////////////////////////////////// - vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + - (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + - (mfcbb-mfabb)) / rho; - vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + - (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + - (mfbcb-mfbab)) / rho; - vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + - (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + - (mfbbc-mfbba)) / rho; - //////////////////////////////////////////////////////////////////////////////////// - //fast - oMdrho = c1o1; // comp special - vx2=vvx*vvx; - vy2=vvy*vvy; - vz2=vvz*vvz; - //////////////////////////////////////////////////////////////////////////////////// - //Hin - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m2 = mfaaa + mfaac; - m1 = mfaac - mfaaa; - m0 = m2 + mfaab; - mfaaa = m0; - m0 += c1o36 * oMdrho; - mfaab = m1 - m0 * vvz; - mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfabc; - m1 = mfabc - mfaba; - m0 = m2 + mfabb; - mfaba = m0; - m0 += c1o9 * oMdrho; - mfabb = m1 - m0 * vvz; - mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfacc; - m1 = mfacc - mfaca; - m0 = m2 + mfacb; - mfaca = m0; - m0 += c1o36 * oMdrho; - mfacb = m1 - m0 * vvz; - mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbac; - m1 = mfbac - mfbaa; - m0 = m2 + mfbab; - mfbaa = m0; - m0 += c1o9 * oMdrho; - mfbab = m1 - m0 * vvz; - mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbba + mfbbc; - m1 = mfbbc - mfbba; - m0 = m2 + mfbbb; - mfbba = m0; - m0 += c4o9 * oMdrho; - mfbbb = m1 - m0 * vvz; - mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbca + mfbcc; - m1 = mfbcc - mfbca; - m0 = m2 + mfbcb; - mfbca = m0; - m0 += c1o9 * oMdrho; - mfbcb = m1 - m0 * vvz; - mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcac; - m1 = mfcac - mfcaa; - m0 = m2 + mfcab; - mfcaa = m0; - m0 += c1o36 * oMdrho; - mfcab = m1 - m0 * vvz; - mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcba + mfcbc; - m1 = mfcbc - mfcba; - m0 = m2 + mfcbb; - mfcba = m0; - m0 += c1o9 * oMdrho; - mfcbb = m1 - m0 * vvz; - mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcca + mfccc; - m1 = mfccc - mfcca; - m0 = m2 + mfccb; - mfcca = m0; - m0 += c1o36 * oMdrho; - mfccb = m1 - m0 * vvz; - mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m2 = mfaaa + mfaca; - m1 = mfaca - mfaaa; - m0 = m2 + mfaba; - mfaaa = m0; - m0 += c1o6 * oMdrho; - mfaba = m1 - m0 * vvy; - mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfacb; - m1 = mfacb - mfaab; - m0 = m2 + mfabb; - mfaab = m0; - mfabb = m1 - m0 * vvy; - mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfacc; - m1 = mfacc - mfaac; - m0 = m2 + mfabc; - mfaac = m0; - m0 += c1o18 * oMdrho; - mfabc = m1 - m0 * vvy; - mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbca; - m1 = mfbca - mfbaa; - m0 = m2 + mfbba; - mfbaa = m0; - m0 += c2o3 * oMdrho; - mfbba = m1 - m0 * vvy; - mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbab + mfbcb; - m1 = mfbcb - mfbab; - m0 = m2 + mfbbb; - mfbab = m0; - mfbbb = m1 - m0 * vvy; - mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbac + mfbcc; - m1 = mfbcc - mfbac; - m0 = m2 + mfbbc; - mfbac = m0; - m0 += c2o9 * oMdrho; - mfbbc = m1 - m0 * vvy; - mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcca; - m1 = mfcca - mfcaa; - m0 = m2 + mfcba; - mfcaa = m0; - m0 += c1o6 * oMdrho; - mfcba = m1 - m0 * vvy; - mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcab + mfccb; - m1 = mfccb - mfcab; - m0 = m2 + mfcbb; - mfcab = m0; - mfcbb = m1 - m0 * vvy; - mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcac + mfccc; - m1 = mfccc - mfcac; - m0 = m2 + mfcbc; - mfcac = m0; - m0 += c1o18 * oMdrho; - mfcbc = m1 - m0 * vvy; - mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m2 = mfaaa + mfcaa; - m1 = mfcaa - mfaaa; - m0 = m2 + mfbaa; - mfaaa = m0; - m0 += c1o1* oMdrho; - mfbaa = m1 - m0 * vvx; - mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfcba; - m1 = mfcba - mfaba; - m0 = m2 + mfbba; - mfaba = m0; - mfbba = m1 - m0 * vvx; - mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfcca; - m1 = mfcca - mfaca; - m0 = m2 + mfbca; - mfaca = m0; - m0 += c1o3 * oMdrho; - mfbca = m1 - m0 * vvx; - mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfcab; - m1 = mfcab - mfaab; - m0 = m2 + mfbab; - mfaab = m0; - mfbab = m1 - m0 * vvx; - mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabb + mfcbb; - m1 = mfcbb - mfabb; - m0 = m2 + mfbbb; - mfabb = m0; - mfbbb = m1 - m0 * vvx; - mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacb + mfccb; - m1 = mfccb - mfacb; - m0 = m2 + mfbcb; - mfacb = m0; - mfbcb = m1 - m0 * vvx; - mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfcac; - m1 = mfcac - mfaac; - m0 = m2 + mfbac; - mfaac = m0; - m0 += c1o3 * oMdrho; - mfbac = m1 - m0 * vvx; - mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabc + mfcbc; - m1 = mfcbc - mfabc; - m0 = m2 + mfbbc; - mfabc = m0; - mfbbc = m1 - m0 * vvx; - mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacc + mfccc; - m1 = mfccc - mfacc; - m0 = m2 + mfbcc; - mfacc = m0; - m0 += c1o9 * oMdrho; - mfbcc = m1 - m0 * vvx; - mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - // linear combinations + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + mfcbb = f_E ; + mfabb = f_W ; + mfbcb = f_N ; + mfbab = f_S ; + mfbbc = f_T ; + mfbba = f_B ; + mfccb = f_NE ; + mfaab = f_SW ; + mfcab = f_SE ; + mfacb = f_NW ; + mfcbc = f_TE ; + mfaba = f_BW ; + mfcba = f_BE ; + mfabc = f_TW ; + mfbcc = f_TN ; + mfbaa = f_BS ; + mfbca = f_BN ; + mfbac = f_TS ; + mfbbb = f_ZERO; + mfccc = f_TNE ; + mfaac = f_TSW ; + mfcac = f_TSE ; + mfacc = f_TNW ; + mfcca = f_BNE ; + mfaaa = f_BSW ; + mfcaa = f_BSE ; + mfaca = f_BNW ; + //////////////////////////////////////////////////////////////////////////////////// + drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + + (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + + ((mfabb+mfcbb) + (mfbab+mfbcb)) + (mfbba+mfbbc)) + mfbbb; + + rho = c1o1+drho; + //////////////////////////////////////////////////////////////////////////////////// + vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + + (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + + (mfcbb-mfabb)) / rho; + vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + + (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + + (mfbcb-mfbab)) / rho; + vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + + (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + + (mfbbc-mfbba)) / rho; + //////////////////////////////////////////////////////////////////////////////////// + //fast + oMdrho = c1o1; // comp special + vx2=vvx*vvx; + vy2=vvy*vvy; + vz2=vvz*vvz; + //////////////////////////////////////////////////////////////////////////////////// + //Hin + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m2 = mfaaa + mfaac; + m1 = mfaac - mfaaa; + m0 = m2 + mfaab; + mfaaa = m0; + m0 += c1o36 * oMdrho; + mfaab = m1 - m0 * vvz; + mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfabc; + m1 = mfabc - mfaba; + m0 = m2 + mfabb; + mfaba = m0; + m0 += c1o9 * oMdrho; + mfabb = m1 - m0 * vvz; + mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfacc; + m1 = mfacc - mfaca; + m0 = m2 + mfacb; + mfaca = m0; + m0 += c1o36 * oMdrho; + mfacb = m1 - m0 * vvz; + mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbac; + m1 = mfbac - mfbaa; + m0 = m2 + mfbab; + mfbaa = m0; + m0 += c1o9 * oMdrho; + mfbab = m1 - m0 * vvz; + mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbba + mfbbc; + m1 = mfbbc - mfbba; + m0 = m2 + mfbbb; + mfbba = m0; + m0 += c4o9 * oMdrho; + mfbbb = m1 - m0 * vvz; + mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbca + mfbcc; + m1 = mfbcc - mfbca; + m0 = m2 + mfbcb; + mfbca = m0; + m0 += c1o9 * oMdrho; + mfbcb = m1 - m0 * vvz; + mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcac; + m1 = mfcac - mfcaa; + m0 = m2 + mfcab; + mfcaa = m0; + m0 += c1o36 * oMdrho; + mfcab = m1 - m0 * vvz; + mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcba + mfcbc; + m1 = mfcbc - mfcba; + m0 = m2 + mfcbb; + mfcba = m0; + m0 += c1o9 * oMdrho; + mfcbb = m1 - m0 * vvz; + mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcca + mfccc; + m1 = mfccc - mfcca; + m0 = m2 + mfccb; + mfcca = m0; + m0 += c1o36 * oMdrho; + mfccb = m1 - m0 * vvz; + mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m2 = mfaaa + mfaca; + m1 = mfaca - mfaaa; + m0 = m2 + mfaba; + mfaaa = m0; + m0 += c1o6 * oMdrho; + mfaba = m1 - m0 * vvy; + mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfacb; + m1 = mfacb - mfaab; + m0 = m2 + mfabb; + mfaab = m0; + mfabb = m1 - m0 * vvy; + mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfacc; + m1 = mfacc - mfaac; + m0 = m2 + mfabc; + mfaac = m0; + m0 += c1o18 * oMdrho; + mfabc = m1 - m0 * vvy; + mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbca; + m1 = mfbca - mfbaa; + m0 = m2 + mfbba; + mfbaa = m0; + m0 += c2o3 * oMdrho; + mfbba = m1 - m0 * vvy; + mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbab + mfbcb; + m1 = mfbcb - mfbab; + m0 = m2 + mfbbb; + mfbab = m0; + mfbbb = m1 - m0 * vvy; + mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbac + mfbcc; + m1 = mfbcc - mfbac; + m0 = m2 + mfbbc; + mfbac = m0; + m0 += c2o9 * oMdrho; + mfbbc = m1 - m0 * vvy; + mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcca; + m1 = mfcca - mfcaa; + m0 = m2 + mfcba; + mfcaa = m0; + m0 += c1o6 * oMdrho; + mfcba = m1 - m0 * vvy; + mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcab + mfccb; + m1 = mfccb - mfcab; + m0 = m2 + mfcbb; + mfcab = m0; + mfcbb = m1 - m0 * vvy; + mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcac + mfccc; + m1 = mfccc - mfcac; + m0 = m2 + mfcbc; + mfcac = m0; + m0 += c1o18 * oMdrho; + mfcbc = m1 - m0 * vvy; + mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m2 = mfaaa + mfcaa; + m1 = mfcaa - mfaaa; + m0 = m2 + mfbaa; + mfaaa = m0; + m0 += c1o1* oMdrho; + mfbaa = m1 - m0 * vvx; + mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfcba; + m1 = mfcba - mfaba; + m0 = m2 + mfbba; + mfaba = m0; + mfbba = m1 - m0 * vvx; + mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfcca; + m1 = mfcca - mfaca; + m0 = m2 + mfbca; + mfaca = m0; + m0 += c1o3 * oMdrho; + mfbca = m1 - m0 * vvx; + mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfcab; + m1 = mfcab - mfaab; + m0 = m2 + mfbab; + mfaab = m0; + mfbab = m1 - m0 * vvx; + mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabb + mfcbb; + m1 = mfcbb - mfabb; + m0 = m2 + mfbbb; + mfabb = m0; + mfbbb = m1 - m0 * vvx; + mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacb + mfccb; + m1 = mfccb - mfacb; + m0 = m2 + mfbcb; + mfacb = m0; + mfbcb = m1 - m0 * vvx; + mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfcac; + m1 = mfcac - mfaac; + m0 = m2 + mfbac; + mfaac = m0; + m0 += c1o3 * oMdrho; + mfbac = m1 - m0 * vvx; + mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabc + mfcbc; + m1 = mfcbc - mfabc; + m0 = m2 + mfbbc; + mfabc = m0; + mfbbc = m1 - m0 * vvx; + mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacc + mfccc; + m1 = mfccc - mfacc; + m0 = m2 + mfbcc; + mfacc = m0; + m0 += c1o9 * oMdrho; + mfbcc = m1 - m0 * vvx; + mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + // linear combinations - mxxyPyzz = mfcba + mfabc; - mxxyMyzz = mfcba - mfabc; + mxxyPyzz = mfcba + mfabc; + mxxyMyzz = mfcba - mfabc; - mxxzPyyz = mfcab + mfacb; - mxxzMyyz = mfcab - mfacb; + mxxzPyyz = mfcab + mfacb; + mxxzMyyz = mfcab - mfacb; - mxyyPxzz = mfbca + mfbac; - mxyyMxzz = mfbca - mfbac; + mxyyPxzz = mfbca + mfbac; + mxyyMxzz = mfbca - mfbac; - ////////////////////////////////////////////////////////////////////////// - //exclusive for this source node - real mfbbb_NEB = mfbbb; - real mxxyPyzz_NEB = mxxyPyzz; - real mxxyMyzz_NEB = mxxyMyzz; - real mxxzPyyz_NEB = mxxzPyyz; - real mxxzMyyz_NEB = mxxzMyyz; - real mxyyPxzz_NEB = mxyyPxzz; - real mxyyMxzz_NEB = mxyyMxzz; - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// + //exclusive for this source node + real mfbbb_NEB = mfbbb; + real mxxyPyzz_NEB = mxxyPyzz; + real mxxyMyzz_NEB = mxxyMyzz; + real mxxzPyyz_NEB = mxxzPyyz; + real mxxzMyyz_NEB = mxxzMyyz; + real mxyyPxzz_NEB = mxyyPxzz; + real mxyyMxzz_NEB = mxyyMxzz; + ////////////////////////////////////////////////////////////////////////// @@ -4669,155 +4669,155 @@ __global__ void scaleFC_AA2016_comp_27(real* DC, ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real mfbbbMean = c1o8 * (mfbbb_SWB + mfbbb_SWT + mfbbb_SET + mfbbb_SEB + mfbbb_NWB + mfbbb_NWT + mfbbb_NET + mfbbb_NEB); - real mxxyPyzzMean = c1o8 * (mxxyPyzz_SWB + mxxyPyzz_SWT + mxxyPyzz_SET + mxxyPyzz_SEB + mxxyPyzz_NWB + mxxyPyzz_NWT + mxxyPyzz_NET + mxxyPyzz_NEB); - real mxxyMyzzMean = c1o8 * (mxxyMyzz_SWB + mxxyMyzz_SWT + mxxyMyzz_SET + mxxyMyzz_SEB + mxxyMyzz_NWB + mxxyMyzz_NWT + mxxyMyzz_NET + mxxyMyzz_NEB); - real mxxzPyyzMean = c1o8 * (mxxzPyyz_SWB + mxxzPyyz_SWT + mxxzPyyz_SET + mxxzPyyz_SEB + mxxzPyyz_NWB + mxxzPyyz_NWT + mxxzPyyz_NET + mxxzPyyz_NEB); - real mxxzMyyzMean = c1o8 * (mxxzMyyz_SWB + mxxzMyyz_SWT + mxxzMyyz_SET + mxxzMyyz_SEB + mxxzMyyz_NWB + mxxzMyyz_NWT + mxxzMyyz_NET + mxxzMyyz_NEB); - real mxyyPxzzMean = c1o8 * (mxyyPxzz_SWB + mxyyPxzz_SWT + mxyyPxzz_SET + mxyyPxzz_SEB + mxyyPxzz_NWB + mxyyPxzz_NWT + mxyyPxzz_NET + mxyyPxzz_NEB); - real mxyyMxzzMean = c1o8 * (mxyyMxzz_SWB + mxyyMxzz_SWT + mxyyMxzz_SET + mxyyMxzz_SEB + mxyyMxzz_NWB + mxyyMxzz_NWT + mxyyMxzz_NET + mxyyMxzz_NEB); + real mfbbbMean = c1o8 * (mfbbb_SWB + mfbbb_SWT + mfbbb_SET + mfbbb_SEB + mfbbb_NWB + mfbbb_NWT + mfbbb_NET + mfbbb_NEB); + real mxxyPyzzMean = c1o8 * (mxxyPyzz_SWB + mxxyPyzz_SWT + mxxyPyzz_SET + mxxyPyzz_SEB + mxxyPyzz_NWB + mxxyPyzz_NWT + mxxyPyzz_NET + mxxyPyzz_NEB); + real mxxyMyzzMean = c1o8 * (mxxyMyzz_SWB + mxxyMyzz_SWT + mxxyMyzz_SET + mxxyMyzz_SEB + mxxyMyzz_NWB + mxxyMyzz_NWT + mxxyMyzz_NET + mxxyMyzz_NEB); + real mxxzPyyzMean = c1o8 * (mxxzPyyz_SWB + mxxzPyyz_SWT + mxxzPyyz_SET + mxxzPyyz_SEB + mxxzPyyz_NWB + mxxzPyyz_NWT + mxxzPyyz_NET + mxxzPyyz_NEB); + real mxxzMyyzMean = c1o8 * (mxxzMyyz_SWB + mxxzMyyz_SWT + mxxzMyyz_SET + mxxzMyyz_SEB + mxxzMyyz_NWB + mxxzMyyz_NWT + mxxzMyyz_NET + mxxzMyyz_NEB); + real mxyyPxzzMean = c1o8 * (mxyyPxzz_SWB + mxyyPxzz_SWT + mxyyPxzz_SET + mxyyPxzz_SEB + mxyyPxzz_NWB + mxyyPxzz_NWT + mxyyPxzz_NET + mxyyPxzz_NEB); + real mxyyMxzzMean = c1o8 * (mxyyMxzz_SWB + mxyyMxzz_SWT + mxyyMxzz_SET + mxyyMxzz_SEB + mxyyMxzz_NWB + mxyyMxzz_NWT + mxyyMxzz_NET + mxyyMxzz_NEB); ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //kxyFromfcNEQ_SWB = zero; - //kyzFromfcNEQ_SWB = zero; - //kxzFromfcNEQ_SWB = zero; - //kxxMyyFromfcNEQ_SWB = zero; - //kxxMzzFromfcNEQ_SWB = zero; - //kxyFromfcNEQ_SWT = zero; - //kyzFromfcNEQ_SWT = zero; - //kxzFromfcNEQ_SWT = zero; - //kxxMyyFromfcNEQ_SWT = zero; - //kxxMzzFromfcNEQ_SWT = zero; - //kxyFromfcNEQ_SET = zero; - //kyzFromfcNEQ_SET = zero; - //kxzFromfcNEQ_SET = zero; - //kxxMyyFromfcNEQ_SET = zero; - //kxxMzzFromfcNEQ_SET = zero; - //kxyFromfcNEQ_SEB = zero; - //kyzFromfcNEQ_SEB = zero; - //kxzFromfcNEQ_SEB = zero; - //kxxMyyFromfcNEQ_SEB = zero; - //kxxMzzFromfcNEQ_SEB = zero; - //kxyFromfcNEQ_NWB = zero; - //kyzFromfcNEQ_NWB = zero; - //kxzFromfcNEQ_NWB = zero; - //kxxMyyFromfcNEQ_NWB = zero; - //kxxMzzFromfcNEQ_NWB = zero; - //kxyFromfcNEQ_NWT = zero; - //kyzFromfcNEQ_NWT = zero; - //kxzFromfcNEQ_NWT = zero; - //kxxMyyFromfcNEQ_NWT = zero; - //kxxMzzFromfcNEQ_NWT = zero; - //kxyFromfcNEQ_NET = zero; - //kyzFromfcNEQ_NET = zero; - //kxzFromfcNEQ_NET = zero; - //kxxMyyFromfcNEQ_NET = zero; - //kxxMzzFromfcNEQ_NET = zero; - //kxyFromfcNEQ_NEB = zero; - //kyzFromfcNEQ_NEB = zero; - //kxzFromfcNEQ_NEB = zero; - //kxxMyyFromfcNEQ_NEB = zero; - //kxxMzzFromfcNEQ_NEB = zero; + //kxyFromfcNEQ_SWB = zero; + //kyzFromfcNEQ_SWB = zero; + //kxzFromfcNEQ_SWB = zero; + //kxxMyyFromfcNEQ_SWB = zero; + //kxxMzzFromfcNEQ_SWB = zero; + //kxyFromfcNEQ_SWT = zero; + //kyzFromfcNEQ_SWT = zero; + //kxzFromfcNEQ_SWT = zero; + //kxxMyyFromfcNEQ_SWT = zero; + //kxxMzzFromfcNEQ_SWT = zero; + //kxyFromfcNEQ_SET = zero; + //kyzFromfcNEQ_SET = zero; + //kxzFromfcNEQ_SET = zero; + //kxxMyyFromfcNEQ_SET = zero; + //kxxMzzFromfcNEQ_SET = zero; + //kxyFromfcNEQ_SEB = zero; + //kyzFromfcNEQ_SEB = zero; + //kxzFromfcNEQ_SEB = zero; + //kxxMyyFromfcNEQ_SEB = zero; + //kxxMzzFromfcNEQ_SEB = zero; + //kxyFromfcNEQ_NWB = zero; + //kyzFromfcNEQ_NWB = zero; + //kxzFromfcNEQ_NWB = zero; + //kxxMyyFromfcNEQ_NWB = zero; + //kxxMzzFromfcNEQ_NWB = zero; + //kxyFromfcNEQ_NWT = zero; + //kyzFromfcNEQ_NWT = zero; + //kxzFromfcNEQ_NWT = zero; + //kxxMyyFromfcNEQ_NWT = zero; + //kxxMzzFromfcNEQ_NWT = zero; + //kxyFromfcNEQ_NET = zero; + //kyzFromfcNEQ_NET = zero; + //kxzFromfcNEQ_NET = zero; + //kxxMyyFromfcNEQ_NET = zero; + //kxxMzzFromfcNEQ_NET = zero; + //kxyFromfcNEQ_NEB = zero; + //kyzFromfcNEQ_NEB = zero; + //kxzFromfcNEQ_NEB = zero; + //kxxMyyFromfcNEQ_NEB = zero; + //kxxMzzFromfcNEQ_NEB = zero; ////////////////////////////////////////////////////////////////////////// //3 ////////////////////////////////////////////////////////////////////////// a0 = (-kxxMyyFromfcNEQ_NEB - kxxMyyFromfcNEQ_NET + kxxMyyFromfcNEQ_NWB + kxxMyyFromfcNEQ_NWT - - kxxMyyFromfcNEQ_SEB - kxxMyyFromfcNEQ_SET + kxxMyyFromfcNEQ_SWB + kxxMyyFromfcNEQ_SWT - - kxxMzzFromfcNEQ_NEB - kxxMzzFromfcNEQ_NET + kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_NWT - - kxxMzzFromfcNEQ_SEB - kxxMzzFromfcNEQ_SET + kxxMzzFromfcNEQ_SWB + kxxMzzFromfcNEQ_SWT - - c2o1*kxyFromfcNEQ_NEB - c2o1*kxyFromfcNEQ_NET - c2o1*kxyFromfcNEQ_NWB - c2o1*kxyFromfcNEQ_NWT + - c2o1*kxyFromfcNEQ_SEB + c2o1*kxyFromfcNEQ_SET + c2o1*kxyFromfcNEQ_SWB + c2o1*kxyFromfcNEQ_SWT + - c2o1*kxzFromfcNEQ_NEB - c2o1*kxzFromfcNEQ_NET + c2o1*kxzFromfcNEQ_NWB - c2o1*kxzFromfcNEQ_NWT + - c2o1*kxzFromfcNEQ_SEB - c2o1*kxzFromfcNEQ_SET + c2o1*kxzFromfcNEQ_SWB - c2o1*kxzFromfcNEQ_SWT + - c8o1*vx1_NEB + c8o1*vx1_NET + c8o1*vx1_NWB + c8o1*vx1_NWT + c8o1*vx1_SEB + - c8o1*vx1_SET + c8o1*vx1_SWB + c8o1*vx1_SWT + c2o1*vx2_NEB + c2o1*vx2_NET - - c2o1*vx2_NWB - c2o1*vx2_NWT - c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB + - c2o1*vx2_SWT - c2o1*vx3_NEB + c2o1*vx3_NET + c2o1*vx3_NWB - c2o1*vx3_NWT - - c2o1*vx3_SEB + c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)/c64o1; + kxxMyyFromfcNEQ_SEB - kxxMyyFromfcNEQ_SET + kxxMyyFromfcNEQ_SWB + kxxMyyFromfcNEQ_SWT - + kxxMzzFromfcNEQ_NEB - kxxMzzFromfcNEQ_NET + kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_NWT - + kxxMzzFromfcNEQ_SEB - kxxMzzFromfcNEQ_SET + kxxMzzFromfcNEQ_SWB + kxxMzzFromfcNEQ_SWT - + c2o1*kxyFromfcNEQ_NEB - c2o1*kxyFromfcNEQ_NET - c2o1*kxyFromfcNEQ_NWB - c2o1*kxyFromfcNEQ_NWT + + c2o1*kxyFromfcNEQ_SEB + c2o1*kxyFromfcNEQ_SET + c2o1*kxyFromfcNEQ_SWB + c2o1*kxyFromfcNEQ_SWT + + c2o1*kxzFromfcNEQ_NEB - c2o1*kxzFromfcNEQ_NET + c2o1*kxzFromfcNEQ_NWB - c2o1*kxzFromfcNEQ_NWT + + c2o1*kxzFromfcNEQ_SEB - c2o1*kxzFromfcNEQ_SET + c2o1*kxzFromfcNEQ_SWB - c2o1*kxzFromfcNEQ_SWT + + c8o1*vx1_NEB + c8o1*vx1_NET + c8o1*vx1_NWB + c8o1*vx1_NWT + c8o1*vx1_SEB + + c8o1*vx1_SET + c8o1*vx1_SWB + c8o1*vx1_SWT + c2o1*vx2_NEB + c2o1*vx2_NET - + c2o1*vx2_NWB - c2o1*vx2_NWT - c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB + + c2o1*vx2_SWT - c2o1*vx3_NEB + c2o1*vx3_NET + c2o1*vx3_NWB - c2o1*vx3_NWT - + c2o1*vx3_SEB + c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)/c64o1; b0 = (c2o1*kxxMyyFromfcNEQ_NEB + c2o1*kxxMyyFromfcNEQ_NET + c2o1*kxxMyyFromfcNEQ_NWB + c2o1*kxxMyyFromfcNEQ_NWT - - c2o1*kxxMyyFromfcNEQ_SEB - c2o1*kxxMyyFromfcNEQ_SET - c2o1*kxxMyyFromfcNEQ_SWB - c2o1*kxxMyyFromfcNEQ_SWT - - kxxMzzFromfcNEQ_NEB - kxxMzzFromfcNEQ_NET - kxxMzzFromfcNEQ_NWB - kxxMzzFromfcNEQ_NWT + - kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_SET + kxxMzzFromfcNEQ_SWB + kxxMzzFromfcNEQ_SWT - - c2o1*kxyFromfcNEQ_NEB - c2o1*kxyFromfcNEQ_NET + c2o1*kxyFromfcNEQ_NWB + c2o1*kxyFromfcNEQ_NWT - - c2o1*kxyFromfcNEQ_SEB - c2o1*kxyFromfcNEQ_SET + c2o1*kxyFromfcNEQ_SWB + c2o1*kxyFromfcNEQ_SWT + - c2o1*kyzFromfcNEQ_NEB - c2o1*kyzFromfcNEQ_NET + c2o1*kyzFromfcNEQ_NWB - c2o1*kyzFromfcNEQ_NWT + - c2o1*kyzFromfcNEQ_SEB - c2o1*kyzFromfcNEQ_SET + c2o1*kyzFromfcNEQ_SWB - c2o1*kyzFromfcNEQ_SWT + - c2o1*vx1_NEB + c2o1*vx1_NET - c2o1*vx1_NWB - c2o1*vx1_NWT - - c2o1*vx1_SEB - c2o1*vx1_SET + c2o1*vx1_SWB + c2o1*vx1_SWT + - c8o1*vx2_NEB + c8o1*vx2_NET + c8o1*vx2_NWB + c8o1*vx2_NWT + - c8o1*vx2_SEB + c8o1*vx2_SET + c8o1*vx2_SWB + c8o1*vx2_SWT - - c2o1*vx3_NEB + c2o1*vx3_NET - c2o1*vx3_NWB + c2o1*vx3_NWT + - c2o1*vx3_SEB - c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)/c64o1; + c2o1*kxxMyyFromfcNEQ_SEB - c2o1*kxxMyyFromfcNEQ_SET - c2o1*kxxMyyFromfcNEQ_SWB - c2o1*kxxMyyFromfcNEQ_SWT - + kxxMzzFromfcNEQ_NEB - kxxMzzFromfcNEQ_NET - kxxMzzFromfcNEQ_NWB - kxxMzzFromfcNEQ_NWT + + kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_SET + kxxMzzFromfcNEQ_SWB + kxxMzzFromfcNEQ_SWT - + c2o1*kxyFromfcNEQ_NEB - c2o1*kxyFromfcNEQ_NET + c2o1*kxyFromfcNEQ_NWB + c2o1*kxyFromfcNEQ_NWT - + c2o1*kxyFromfcNEQ_SEB - c2o1*kxyFromfcNEQ_SET + c2o1*kxyFromfcNEQ_SWB + c2o1*kxyFromfcNEQ_SWT + + c2o1*kyzFromfcNEQ_NEB - c2o1*kyzFromfcNEQ_NET + c2o1*kyzFromfcNEQ_NWB - c2o1*kyzFromfcNEQ_NWT + + c2o1*kyzFromfcNEQ_SEB - c2o1*kyzFromfcNEQ_SET + c2o1*kyzFromfcNEQ_SWB - c2o1*kyzFromfcNEQ_SWT + + c2o1*vx1_NEB + c2o1*vx1_NET - c2o1*vx1_NWB - c2o1*vx1_NWT - + c2o1*vx1_SEB - c2o1*vx1_SET + c2o1*vx1_SWB + c2o1*vx1_SWT + + c8o1*vx2_NEB + c8o1*vx2_NET + c8o1*vx2_NWB + c8o1*vx2_NWT + + c8o1*vx2_SEB + c8o1*vx2_SET + c8o1*vx2_SWB + c8o1*vx2_SWT - + c2o1*vx3_NEB + c2o1*vx3_NET - c2o1*vx3_NWB + c2o1*vx3_NWT + + c2o1*vx3_SEB - c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)/c64o1; c0 = (kxxMyyFromfcNEQ_NEB - kxxMyyFromfcNEQ_NET + kxxMyyFromfcNEQ_NWB - kxxMyyFromfcNEQ_NWT + - kxxMyyFromfcNEQ_SEB - kxxMyyFromfcNEQ_SET + kxxMyyFromfcNEQ_SWB - kxxMyyFromfcNEQ_SWT - - c2o1*kxxMzzFromfcNEQ_NEB + c2o1*kxxMzzFromfcNEQ_NET - c2o1*kxxMzzFromfcNEQ_NWB + c2o1*kxxMzzFromfcNEQ_NWT - - c2o1*kxxMzzFromfcNEQ_SEB + c2o1*kxxMzzFromfcNEQ_SET - c2o1*kxxMzzFromfcNEQ_SWB + c2o1*kxxMzzFromfcNEQ_SWT - - c2o1*kxzFromfcNEQ_NEB - c2o1*kxzFromfcNEQ_NET + c2o1*kxzFromfcNEQ_NWB + c2o1*kxzFromfcNEQ_NWT - - c2o1*kxzFromfcNEQ_SEB - c2o1*kxzFromfcNEQ_SET + c2o1*kxzFromfcNEQ_SWB + c2o1*kxzFromfcNEQ_SWT - - c2o1*kyzFromfcNEQ_NEB - c2o1*kyzFromfcNEQ_NET - c2o1*kyzFromfcNEQ_NWB - c2o1*kyzFromfcNEQ_NWT + - c2o1*kyzFromfcNEQ_SEB + c2o1*kyzFromfcNEQ_SET + c2o1*kyzFromfcNEQ_SWB + c2o1*kyzFromfcNEQ_SWT - - c2o1*vx1_NEB + c2o1*vx1_NET + c2o1*vx1_NWB - c2o1*vx1_NWT - - c2o1*vx1_SEB + c2o1*vx1_SET + c2o1*vx1_SWB - c2o1*vx1_SWT - - c2o1*vx2_NEB + c2o1*vx2_NET - c2o1*vx2_NWB + c2o1*vx2_NWT + - c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB - c2o1*vx2_SWT + - c8o1*vx3_NEB + c8o1*vx3_NET + c8o1*vx3_NWB + c8o1*vx3_NWT + - c8o1*vx3_SEB + c8o1*vx3_SET + c8o1*vx3_SWB + c8o1*vx3_SWT)/c64o1; + kxxMyyFromfcNEQ_SEB - kxxMyyFromfcNEQ_SET + kxxMyyFromfcNEQ_SWB - kxxMyyFromfcNEQ_SWT - + c2o1*kxxMzzFromfcNEQ_NEB + c2o1*kxxMzzFromfcNEQ_NET - c2o1*kxxMzzFromfcNEQ_NWB + c2o1*kxxMzzFromfcNEQ_NWT - + c2o1*kxxMzzFromfcNEQ_SEB + c2o1*kxxMzzFromfcNEQ_SET - c2o1*kxxMzzFromfcNEQ_SWB + c2o1*kxxMzzFromfcNEQ_SWT - + c2o1*kxzFromfcNEQ_NEB - c2o1*kxzFromfcNEQ_NET + c2o1*kxzFromfcNEQ_NWB + c2o1*kxzFromfcNEQ_NWT - + c2o1*kxzFromfcNEQ_SEB - c2o1*kxzFromfcNEQ_SET + c2o1*kxzFromfcNEQ_SWB + c2o1*kxzFromfcNEQ_SWT - + c2o1*kyzFromfcNEQ_NEB - c2o1*kyzFromfcNEQ_NET - c2o1*kyzFromfcNEQ_NWB - c2o1*kyzFromfcNEQ_NWT + + c2o1*kyzFromfcNEQ_SEB + c2o1*kyzFromfcNEQ_SET + c2o1*kyzFromfcNEQ_SWB + c2o1*kyzFromfcNEQ_SWT - + c2o1*vx1_NEB + c2o1*vx1_NET + c2o1*vx1_NWB - c2o1*vx1_NWT - + c2o1*vx1_SEB + c2o1*vx1_SET + c2o1*vx1_SWB - c2o1*vx1_SWT - + c2o1*vx2_NEB + c2o1*vx2_NET - c2o1*vx2_NWB + c2o1*vx2_NWT + + c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB - c2o1*vx2_SWT + + c8o1*vx3_NEB + c8o1*vx3_NET + c8o1*vx3_NWB + c8o1*vx3_NWT + + c8o1*vx3_SEB + c8o1*vx3_SET + c8o1*vx3_SWB + c8o1*vx3_SWT)/c64o1; ax = (vx1_NEB + vx1_NET - vx1_NWB - vx1_NWT + vx1_SEB + vx1_SET - vx1_SWB - vx1_SWT)/c4o1; bx = (vx2_NEB + vx2_NET - vx2_NWB - vx2_NWT + vx2_SEB + vx2_SET - vx2_SWB - vx2_SWT)/c4o1; cx = (vx3_NEB + vx3_NET - vx3_NWB - vx3_NWT + vx3_SEB + vx3_SET - vx3_SWB - vx3_SWT)/c4o1; axx= (kxxMyyFromfcNEQ_NEB + kxxMyyFromfcNEQ_NET - kxxMyyFromfcNEQ_NWB - kxxMyyFromfcNEQ_NWT + - kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_SET - kxxMyyFromfcNEQ_SWB - kxxMyyFromfcNEQ_SWT + - kxxMzzFromfcNEQ_NEB + kxxMzzFromfcNEQ_NET - kxxMzzFromfcNEQ_NWB - kxxMzzFromfcNEQ_NWT + - kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_SET - kxxMzzFromfcNEQ_SWB - kxxMzzFromfcNEQ_SWT + - c2o1*vx2_NEB + c2o1*vx2_NET - c2o1*vx2_NWB - c2o1*vx2_NWT - - c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB + c2o1*vx2_SWT - - c2o1*vx3_NEB + c2o1*vx3_NET + c2o1*vx3_NWB - c2o1*vx3_NWT - - c2o1*vx3_SEB + c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)/c16o1; + kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_SET - kxxMyyFromfcNEQ_SWB - kxxMyyFromfcNEQ_SWT + + kxxMzzFromfcNEQ_NEB + kxxMzzFromfcNEQ_NET - kxxMzzFromfcNEQ_NWB - kxxMzzFromfcNEQ_NWT + + kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_SET - kxxMzzFromfcNEQ_SWB - kxxMzzFromfcNEQ_SWT + + c2o1*vx2_NEB + c2o1*vx2_NET - c2o1*vx2_NWB - c2o1*vx2_NWT - + c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB + c2o1*vx2_SWT - + c2o1*vx3_NEB + c2o1*vx3_NET + c2o1*vx3_NWB - c2o1*vx3_NWT - + c2o1*vx3_SEB + c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)/c16o1; bxx= (kxyFromfcNEQ_NEB + kxyFromfcNEQ_NET - kxyFromfcNEQ_NWB - kxyFromfcNEQ_NWT + - kxyFromfcNEQ_SEB + kxyFromfcNEQ_SET - kxyFromfcNEQ_SWB - kxyFromfcNEQ_SWT - - c2o1*vx1_NEB - c2o1*vx1_NET + c2o1*vx1_NWB + c2o1*vx1_NWT + - c2o1*vx1_SEB + c2o1*vx1_SET - c2o1*vx1_SWB - c2o1*vx1_SWT)/c8o1; + kxyFromfcNEQ_SEB + kxyFromfcNEQ_SET - kxyFromfcNEQ_SWB - kxyFromfcNEQ_SWT - + c2o1*vx1_NEB - c2o1*vx1_NET + c2o1*vx1_NWB + c2o1*vx1_NWT + + c2o1*vx1_SEB + c2o1*vx1_SET - c2o1*vx1_SWB - c2o1*vx1_SWT)/c8o1; cxx= (kxzFromfcNEQ_NEB + kxzFromfcNEQ_NET - kxzFromfcNEQ_NWB - kxzFromfcNEQ_NWT + - kxzFromfcNEQ_SEB + kxzFromfcNEQ_SET - kxzFromfcNEQ_SWB - kxzFromfcNEQ_SWT + - c2o1*vx1_NEB - c2o1*vx1_NET - c2o1*vx1_NWB + c2o1*vx1_NWT + - c2o1*vx1_SEB - c2o1*vx1_SET - c2o1*vx1_SWB + c2o1*vx1_SWT)/c8o1; + kxzFromfcNEQ_SEB + kxzFromfcNEQ_SET - kxzFromfcNEQ_SWB - kxzFromfcNEQ_SWT + + c2o1*vx1_NEB - c2o1*vx1_NET - c2o1*vx1_NWB + c2o1*vx1_NWT + + c2o1*vx1_SEB - c2o1*vx1_SET - c2o1*vx1_SWB + c2o1*vx1_SWT)/c8o1; ay = (vx1_NEB + vx1_NET + vx1_NWB + vx1_NWT - vx1_SEB - vx1_SET - vx1_SWB - vx1_SWT)/c4o1; by = (vx2_NEB + vx2_NET + vx2_NWB + vx2_NWT - vx2_SEB - vx2_SET - vx2_SWB - vx2_SWT)/c4o1; cy = (vx3_NEB + vx3_NET + vx3_NWB + vx3_NWT - vx3_SEB - vx3_SET - vx3_SWB - vx3_SWT)/c4o1; ayy= (kxyFromfcNEQ_NEB + kxyFromfcNEQ_NET + kxyFromfcNEQ_NWB + kxyFromfcNEQ_NWT - - kxyFromfcNEQ_SEB - kxyFromfcNEQ_SET - kxyFromfcNEQ_SWB - kxyFromfcNEQ_SWT - - c2o1*vx2_NEB - c2o1*vx2_NET + c2o1*vx2_NWB + c2o1*vx2_NWT + - c2o1*vx2_SEB + c2o1*vx2_SET - c2o1*vx2_SWB - c2o1*vx2_SWT)/c8o1; + kxyFromfcNEQ_SEB - kxyFromfcNEQ_SET - kxyFromfcNEQ_SWB - kxyFromfcNEQ_SWT - + c2o1*vx2_NEB - c2o1*vx2_NET + c2o1*vx2_NWB + c2o1*vx2_NWT + + c2o1*vx2_SEB + c2o1*vx2_SET - c2o1*vx2_SWB - c2o1*vx2_SWT)/c8o1; byy= (-c2o1*kxxMyyFromfcNEQ_NEB - c2o1*kxxMyyFromfcNEQ_NET - c2o1*kxxMyyFromfcNEQ_NWB - c2o1*kxxMyyFromfcNEQ_NWT + - c2o1*kxxMyyFromfcNEQ_SEB + c2o1*kxxMyyFromfcNEQ_SET + c2o1*kxxMyyFromfcNEQ_SWB + c2o1*kxxMyyFromfcNEQ_SWT + - kxxMzzFromfcNEQ_NEB + kxxMzzFromfcNEQ_NET + kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_NWT - - kxxMzzFromfcNEQ_SEB - kxxMzzFromfcNEQ_SET - kxxMzzFromfcNEQ_SWB - kxxMzzFromfcNEQ_SWT + - c2o1*vx1_NEB + c2o1*vx1_NET - c2o1*vx1_NWB - c2o1*vx1_NWT - - c2o1*vx1_SEB - c2o1*vx1_SET + c2o1*vx1_SWB + c2o1*vx1_SWT - - c2o1*vx3_NEB + c2o1*vx3_NET - c2o1*vx3_NWB + c2o1*vx3_NWT + - c2o1*vx3_SEB - c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)/c16o1; + c2o1*kxxMyyFromfcNEQ_SEB + c2o1*kxxMyyFromfcNEQ_SET + c2o1*kxxMyyFromfcNEQ_SWB + c2o1*kxxMyyFromfcNEQ_SWT + + kxxMzzFromfcNEQ_NEB + kxxMzzFromfcNEQ_NET + kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_NWT - + kxxMzzFromfcNEQ_SEB - kxxMzzFromfcNEQ_SET - kxxMzzFromfcNEQ_SWB - kxxMzzFromfcNEQ_SWT + + c2o1*vx1_NEB + c2o1*vx1_NET - c2o1*vx1_NWB - c2o1*vx1_NWT - + c2o1*vx1_SEB - c2o1*vx1_SET + c2o1*vx1_SWB + c2o1*vx1_SWT - + c2o1*vx3_NEB + c2o1*vx3_NET - c2o1*vx3_NWB + c2o1*vx3_NWT + + c2o1*vx3_SEB - c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)/c16o1; cyy= (kyzFromfcNEQ_NEB + kyzFromfcNEQ_NET + kyzFromfcNEQ_NWB + kyzFromfcNEQ_NWT - - kyzFromfcNEQ_SEB - kyzFromfcNEQ_SET - kyzFromfcNEQ_SWB - kyzFromfcNEQ_SWT + - c2o1*vx2_NEB - c2o1*vx2_NET + c2o1*vx2_NWB - c2o1*vx2_NWT - - c2o1*vx2_SEB + c2o1*vx2_SET - c2o1*vx2_SWB + c2o1*vx2_SWT)/c8o1; + kyzFromfcNEQ_SEB - kyzFromfcNEQ_SET - kyzFromfcNEQ_SWB - kyzFromfcNEQ_SWT + + c2o1*vx2_NEB - c2o1*vx2_NET + c2o1*vx2_NWB - c2o1*vx2_NWT - + c2o1*vx2_SEB + c2o1*vx2_SET - c2o1*vx2_SWB + c2o1*vx2_SWT)/c8o1; az = (-vx1_NEB + vx1_NET - vx1_NWB + vx1_NWT - vx1_SEB + vx1_SET - vx1_SWB + vx1_SWT)/c4o1; bz = (-vx2_NEB + vx2_NET - vx2_NWB + vx2_NWT - vx2_SEB + vx2_SET - vx2_SWB + vx2_SWT)/c4o1; cz = (-vx3_NEB + vx3_NET - vx3_NWB + vx3_NWT - vx3_SEB + vx3_SET - vx3_SWB + vx3_SWT)/c4o1; azz= (-kxzFromfcNEQ_NEB + kxzFromfcNEQ_NET - kxzFromfcNEQ_NWB + kxzFromfcNEQ_NWT - - kxzFromfcNEQ_SEB + kxzFromfcNEQ_SET - kxzFromfcNEQ_SWB + kxzFromfcNEQ_SWT + - c2o1*vx3_NEB - c2o1*vx3_NET - c2o1*vx3_NWB + c2o1*vx3_NWT + - c2o1*vx3_SEB - c2o1*vx3_SET - c2o1*vx3_SWB + c2o1*vx3_SWT)/c8o1; + kxzFromfcNEQ_SEB + kxzFromfcNEQ_SET - kxzFromfcNEQ_SWB + kxzFromfcNEQ_SWT + + c2o1*vx3_NEB - c2o1*vx3_NET - c2o1*vx3_NWB + c2o1*vx3_NWT + + c2o1*vx3_SEB - c2o1*vx3_SET - c2o1*vx3_SWB + c2o1*vx3_SWT)/c8o1; bzz= (-kyzFromfcNEQ_NEB + kyzFromfcNEQ_NET - kyzFromfcNEQ_NWB + kyzFromfcNEQ_NWT - - kyzFromfcNEQ_SEB + kyzFromfcNEQ_SET - kyzFromfcNEQ_SWB + kyzFromfcNEQ_SWT + - c2o1*vx3_NEB - c2o1*vx3_NET + c2o1*vx3_NWB - c2o1*vx3_NWT - - c2o1*vx3_SEB + c2o1*vx3_SET - c2o1*vx3_SWB + c2o1*vx3_SWT)/c8o1; + kyzFromfcNEQ_SEB + kyzFromfcNEQ_SET - kyzFromfcNEQ_SWB + kyzFromfcNEQ_SWT + + c2o1*vx3_NEB - c2o1*vx3_NET + c2o1*vx3_NWB - c2o1*vx3_NWT - + c2o1*vx3_SEB + c2o1*vx3_SET - c2o1*vx3_SWB + c2o1*vx3_SWT)/c8o1; czz= (-kxxMyyFromfcNEQ_NEB + kxxMyyFromfcNEQ_NET - kxxMyyFromfcNEQ_NWB + kxxMyyFromfcNEQ_NWT - - kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_SET - kxxMyyFromfcNEQ_SWB + kxxMyyFromfcNEQ_SWT + - c2o1*kxxMzzFromfcNEQ_NEB - c2o1*kxxMzzFromfcNEQ_NET + c2o1*kxxMzzFromfcNEQ_NWB - c2o1*kxxMzzFromfcNEQ_NWT + - c2o1*kxxMzzFromfcNEQ_SEB - c2o1*kxxMzzFromfcNEQ_SET + c2o1*kxxMzzFromfcNEQ_SWB - c2o1*kxxMzzFromfcNEQ_SWT - - c2o1*vx1_NEB + c2o1*vx1_NET + c2o1*vx1_NWB - c2o1*vx1_NWT - - c2o1*vx1_SEB + c2o1*vx1_SET + c2o1*vx1_SWB - c2o1*vx1_SWT - - c2o1*vx2_NEB + c2o1*vx2_NET - c2o1*vx2_NWB + c2o1*vx2_NWT + - c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB - c2o1*vx2_SWT)/c16o1; + kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_SET - kxxMyyFromfcNEQ_SWB + kxxMyyFromfcNEQ_SWT + + c2o1*kxxMzzFromfcNEQ_NEB - c2o1*kxxMzzFromfcNEQ_NET + c2o1*kxxMzzFromfcNEQ_NWB - c2o1*kxxMzzFromfcNEQ_NWT + + c2o1*kxxMzzFromfcNEQ_SEB - c2o1*kxxMzzFromfcNEQ_SET + c2o1*kxxMzzFromfcNEQ_SWB - c2o1*kxxMzzFromfcNEQ_SWT - + c2o1*vx1_NEB + c2o1*vx1_NET + c2o1*vx1_NWB - c2o1*vx1_NWT - + c2o1*vx1_SEB + c2o1*vx1_SET + c2o1*vx1_SWB - c2o1*vx1_SWT - + c2o1*vx2_NEB + c2o1*vx2_NET - c2o1*vx2_NWB + c2o1*vx2_NWT + + c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB - c2o1*vx2_SWT)/c16o1; axy= (vx1_NEB + vx1_NET - vx1_NWB - vx1_NWT - vx1_SEB - vx1_SET + vx1_SWB + vx1_SWT)/c2o1; bxy= (vx2_NEB + vx2_NET - vx2_NWB - vx2_NWT - vx2_SEB - vx2_SET + vx2_SWB + vx2_SWT)/c2o1; cxy= (vx3_NEB + vx3_NET - vx3_NWB - vx3_NWT - vx3_SEB - vx3_SET + vx3_SWB + vx3_SWT)/c2o1; @@ -4831,94 +4831,94 @@ __global__ void scaleFC_AA2016_comp_27(real* DC, //bxyz=-vx2_NEB + vx2_NET + vx2_NWB - vx2_NWT + vx2_SEB - vx2_SET - vx2_SWB + vx2_SWT; //cxyz=-vx3_NEB + vx3_NET + vx3_NWB - vx3_NWT + vx3_SEB - vx3_SET - vx3_SWB + vx3_SWT; ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real kxyAverage = c0o1; - real kyzAverage = c0o1; - real kxzAverage = c0o1; - real kxxMyyAverage = c0o1; - real kxxMzzAverage = c0o1; - //real kxyAverage =(kxyFromfcNEQ_SWB+ - // kxyFromfcNEQ_SWT+ - // kxyFromfcNEQ_SET+ - // kxyFromfcNEQ_SEB+ - // kxyFromfcNEQ_NWB+ - // kxyFromfcNEQ_NWT+ - // kxyFromfcNEQ_NET+ - // kxyFromfcNEQ_NEB)*c1o8-(ay+bx); - //real kyzAverage =(kyzFromfcNEQ_SWB+ - // kyzFromfcNEQ_SWT+ - // kyzFromfcNEQ_SET+ - // kyzFromfcNEQ_SEB+ - // kyzFromfcNEQ_NWB+ - // kyzFromfcNEQ_NWT+ - // kyzFromfcNEQ_NET+ - // kyzFromfcNEQ_NEB)*c1o8-(bz+cy); - //real kxzAverage =(kxzFromfcNEQ_SWB+ - // kxzFromfcNEQ_SWT+ - // kxzFromfcNEQ_SET+ - // kxzFromfcNEQ_SEB+ - // kxzFromfcNEQ_NWB+ - // kxzFromfcNEQ_NWT+ - // kxzFromfcNEQ_NET+ - // kxzFromfcNEQ_NEB)*c1o8-(az+cx); - //real kxxMyyAverage =(kxxMyyFromfcNEQ_SWB+ - // kxxMyyFromfcNEQ_SWT+ - // kxxMyyFromfcNEQ_SET+ - // kxxMyyFromfcNEQ_SEB+ - // kxxMyyFromfcNEQ_NWB+ - // kxxMyyFromfcNEQ_NWT+ - // kxxMyyFromfcNEQ_NET+ - // kxxMyyFromfcNEQ_NEB)*c1o8-(ax-by); - //real kxxMzzAverage =(kxxMzzFromfcNEQ_SWB+ - // kxxMzzFromfcNEQ_SWT+ - // kxxMzzFromfcNEQ_SET+ - // kxxMzzFromfcNEQ_SEB+ - // kxxMzzFromfcNEQ_NWB+ - // kxxMzzFromfcNEQ_NWT+ - // kxxMzzFromfcNEQ_NET+ - // kxxMzzFromfcNEQ_NEB)*c1o8-(ax-cz); - - - - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - ////Press - //d0 = ( press_NEB + press_NET + press_NWB + press_NWT + press_SEB + press_SET + press_SWB + press_SWT) * c1o8; - //dx = ( press_NEB + press_NET - press_NWB - press_NWT + press_SEB + press_SET - press_SWB - press_SWT) * c1o4; - //dy = ( press_NEB + press_NET + press_NWB + press_NWT - press_SEB - press_SET - press_SWB - press_SWT) * c1o4; - //dz = (-press_NEB + press_NET - press_NWB + press_NWT - press_SEB + press_SET - press_SWB + press_SWT) * c1o4; - //dxy = ( press_NEB + press_NET - press_NWB - press_NWT - press_SEB - press_SET + press_SWB + press_SWT) * c1o2; - //dxz = (-press_NEB + press_NET + press_NWB - press_NWT - press_SEB + press_SET + press_SWB - press_SWT) * c1o2; - //dyz = (-press_NEB + press_NET - press_NWB + press_NWT + press_SEB - press_SET + press_SWB - press_SWT) * c1o2; - //dxyz = -press_NEB + press_NET + press_NWB - press_NWT + press_SEB - press_SET - press_SWB + press_SWT; - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho - real LapRho = ((xoff != c0o1) || (yoff != c0o1) || (zoff != c0o1)) ? c0o1 : -c3o1*(ax*ax + by*by + cz*cz) - c6o1 * (bx*ay + cx*az + cy*bz); - d0 = ( drho_NEB + drho_NET + drho_NWB + drho_NWT + drho_SEB + drho_SET + drho_SWB + drho_SWT - c2o1*LapRho) * c1o8; - dx = ( drho_NEB + drho_NET - drho_NWB - drho_NWT + drho_SEB + drho_SET - drho_SWB - drho_SWT) * c1o4; - dy = ( drho_NEB + drho_NET + drho_NWB + drho_NWT - drho_SEB - drho_SET - drho_SWB - drho_SWT) * c1o4; - dz = (-drho_NEB + drho_NET - drho_NWB + drho_NWT - drho_SEB + drho_SET - drho_SWB + drho_SWT) * c1o4; - dxy = ( drho_NEB + drho_NET - drho_NWB - drho_NWT - drho_SEB - drho_SET + drho_SWB + drho_SWT) * c1o2; - dxz = (-drho_NEB + drho_NET + drho_NWB - drho_NWT - drho_SEB + drho_SET + drho_SWB - drho_SWT) * c1o2; - dyz = (-drho_NEB + drho_NET - drho_NWB + drho_NWT + drho_SEB - drho_SET + drho_SWB - drho_SWT) * c1o2; - //dxyz = -drho_NEB + drho_NET + drho_NWB - drho_NWT + drho_SEB - drho_SET - drho_SWB + drho_SWT; - //d0 = zero; - //dx = zero; - //dy = zero; - //dz = zero; - //dxy = zero; - //dxz = zero; - //dyz = zero; - //dxyz = zero; + real kxyAverage = c0o1; + real kyzAverage = c0o1; + real kxzAverage = c0o1; + real kxxMyyAverage = c0o1; + real kxxMzzAverage = c0o1; + //real kxyAverage =(kxyFromfcNEQ_SWB+ + // kxyFromfcNEQ_SWT+ + // kxyFromfcNEQ_SET+ + // kxyFromfcNEQ_SEB+ + // kxyFromfcNEQ_NWB+ + // kxyFromfcNEQ_NWT+ + // kxyFromfcNEQ_NET+ + // kxyFromfcNEQ_NEB)*c1o8-(ay+bx); + //real kyzAverage =(kyzFromfcNEQ_SWB+ + // kyzFromfcNEQ_SWT+ + // kyzFromfcNEQ_SET+ + // kyzFromfcNEQ_SEB+ + // kyzFromfcNEQ_NWB+ + // kyzFromfcNEQ_NWT+ + // kyzFromfcNEQ_NET+ + // kyzFromfcNEQ_NEB)*c1o8-(bz+cy); + //real kxzAverage =(kxzFromfcNEQ_SWB+ + // kxzFromfcNEQ_SWT+ + // kxzFromfcNEQ_SET+ + // kxzFromfcNEQ_SEB+ + // kxzFromfcNEQ_NWB+ + // kxzFromfcNEQ_NWT+ + // kxzFromfcNEQ_NET+ + // kxzFromfcNEQ_NEB)*c1o8-(az+cx); + //real kxxMyyAverage =(kxxMyyFromfcNEQ_SWB+ + // kxxMyyFromfcNEQ_SWT+ + // kxxMyyFromfcNEQ_SET+ + // kxxMyyFromfcNEQ_SEB+ + // kxxMyyFromfcNEQ_NWB+ + // kxxMyyFromfcNEQ_NWT+ + // kxxMyyFromfcNEQ_NET+ + // kxxMyyFromfcNEQ_NEB)*c1o8-(ax-by); + //real kxxMzzAverage =(kxxMzzFromfcNEQ_SWB+ + // kxxMzzFromfcNEQ_SWT+ + // kxxMzzFromfcNEQ_SET+ + // kxxMzzFromfcNEQ_SEB+ + // kxxMzzFromfcNEQ_NWB+ + // kxxMzzFromfcNEQ_NWT+ + // kxxMzzFromfcNEQ_NET+ + // kxxMzzFromfcNEQ_NEB)*c1o8-(ax-cz); + + + + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + ////Press + //d0 = ( press_NEB + press_NET + press_NWB + press_NWT + press_SEB + press_SET + press_SWB + press_SWT) * c1o8; + //dx = ( press_NEB + press_NET - press_NWB - press_NWT + press_SEB + press_SET - press_SWB - press_SWT) * c1o4; + //dy = ( press_NEB + press_NET + press_NWB + press_NWT - press_SEB - press_SET - press_SWB - press_SWT) * c1o4; + //dz = (-press_NEB + press_NET - press_NWB + press_NWT - press_SEB + press_SET - press_SWB + press_SWT) * c1o4; + //dxy = ( press_NEB + press_NET - press_NWB - press_NWT - press_SEB - press_SET + press_SWB + press_SWT) * c1o2; + //dxz = (-press_NEB + press_NET + press_NWB - press_NWT - press_SEB + press_SET + press_SWB - press_SWT) * c1o2; + //dyz = (-press_NEB + press_NET - press_NWB + press_NWT + press_SEB - press_SET + press_SWB - press_SWT) * c1o2; + //dxyz = -press_NEB + press_NET + press_NWB - press_NWT + press_SEB - press_SET - press_SWB + press_SWT; + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho + real LapRho = ((xoff != c0o1) || (yoff != c0o1) || (zoff != c0o1)) ? c0o1 : -c3o1*(ax*ax + by*by + cz*cz) - c6o1 * (bx*ay + cx*az + cy*bz); + d0 = ( drho_NEB + drho_NET + drho_NWB + drho_NWT + drho_SEB + drho_SET + drho_SWB + drho_SWT - c2o1*LapRho) * c1o8; + dx = ( drho_NEB + drho_NET - drho_NWB - drho_NWT + drho_SEB + drho_SET - drho_SWB - drho_SWT) * c1o4; + dy = ( drho_NEB + drho_NET + drho_NWB + drho_NWT - drho_SEB - drho_SET - drho_SWB - drho_SWT) * c1o4; + dz = (-drho_NEB + drho_NET - drho_NWB + drho_NWT - drho_SEB + drho_SET - drho_SWB + drho_SWT) * c1o4; + dxy = ( drho_NEB + drho_NET - drho_NWB - drho_NWT - drho_SEB - drho_SET + drho_SWB + drho_SWT) * c1o2; + dxz = (-drho_NEB + drho_NET + drho_NWB - drho_NWT - drho_SEB + drho_SET + drho_SWB - drho_SWT) * c1o2; + dyz = (-drho_NEB + drho_NET - drho_NWB + drho_NWT + drho_SEB - drho_SET + drho_SWB - drho_SWT) * c1o2; + //dxyz = -drho_NEB + drho_NET + drho_NWB - drho_NWT + drho_SEB - drho_SET - drho_SWB + drho_SWT; + //d0 = zero; + //dx = zero; + //dy = zero; + //dz = zero; + //dxy = zero; + //dxz = zero; + //dyz = zero; + //dxyz = zero; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // // Bernd das Brot - // // - // x------x - // | | - // | ---+--->X - // | | \ - // x------x \ - // off-vector + // + // x------x + // | | + // | ---+--->X + // | | \ + // x------x \ + // off-vector //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// a0 = a0 + xoff * ax + yoff * ay + zoff * az + xoff_sq * axx + yoff_sq * ayy + zoff_sq * azz + xoff*yoff*axy + xoff*zoff*axz + yoff*zoff*ayz; ax = ax + c2o1 * xoff * axx + yoff * axy + zoff * axz; @@ -4932,415 +4932,415 @@ __global__ void scaleFC_AA2016_comp_27(real* DC, cx = cx + c2o1 * xoff * cxx + yoff * cxy + zoff * cxz; cy = cy + c2o1 * yoff * cyy + xoff * cxy + zoff * cyz; cz = cz + c2o1 * zoff * czz + xoff * cxz + yoff * cyz; - d0 = d0 + xoff * dx + yoff * dy + zoff * dz + xoff*yoff*dxy + xoff*zoff*dxz + yoff*zoff*dyz; + d0 = d0 + xoff * dx + yoff * dy + zoff * dz + xoff*yoff*dxy + xoff*zoff*dxz + yoff*zoff*dyz; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // FIX /////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //AAAAAAAAAAAAHHHHHHHHHHHH!!!!! Mieser Test!!! + //b0= bx= by= bz= bxx= byy= bzz= bxy= bxz= byz= c0= cx= cy= cz= cxx= cyy= czz= cxy= cxz= cyz= axyz= bxyz= cxyz=zero; + //b0=zero; + //bx=zero; + //by=zero; + //bz=zero; + //bxx=zero; + //byy=zero; + //bzz=zero; + //bxy=zero; + //bxz=zero; + //byz=zero; + //c0=zero; + //cx=zero; + //cy=zero; + //cz=zero; + //cxx=zero; + //cyy=zero; + //czz=zero; + //cxy=zero; + //cxz=zero; + //cyz=zero; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + mfcbb = c0o1; + mfabb = c0o1; + mfbcb = c0o1; + mfbab = c0o1; + mfbbc = c0o1; + mfbba = c0o1; + mfccb = c0o1; + mfaab = c0o1; + mfcab = c0o1; + mfacb = c0o1; + mfcbc = c0o1; + mfaba = c0o1; + mfcba = c0o1; + mfabc = c0o1; + mfbcc = c0o1; + mfbaa = c0o1; + mfbca = c0o1; + mfbac = c0o1; + mfbbb = c0o1; + mfccc = c0o1; + mfaac = c0o1; + mfcac = c0o1; + mfacc = c0o1; + mfcca = c0o1; + mfaaa = c0o1; + mfcaa = c0o1; + mfaca = c0o1; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //real m0, m1, m2, vvx, vvy, vvz, vx2, vy2, vz2, oMdrho; + //real mxxPyyPzz, mxxMyy, mxxMzz, mxxyPyzz, mxxyMyzz, mxxzPyyz, mxxzMyyz, mxyyPxzz, mxyyMxzz; + //real qudricLimit = c1o100;//ganz schlechte Idee -> muss global sein + //real O3 = two - o; + //real residu, residutmp; + //residutmp = zero;///*-*/ c2o9 * (1./o - c1o2) * eps_new * eps_new; + //real NeqOn = one;//zero;//one; //.... one = on ..... zero = off + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position C 0., 0., 0. + // //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // FIX /////////////////////////////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //AAAAAAAAAAAAHHHHHHHHHHHH!!!!! Mieser Test!!! - //b0= bx= by= bz= bxx= byy= bzz= bxy= bxz= byz= c0= cx= cy= cz= cxx= cyy= czz= cxy= cxz= cyz= axyz= bxyz= cxyz=zero; - //b0=zero; - //bx=zero; - //by=zero; - //bz=zero; - //bxx=zero; - //byy=zero; - //bzz=zero; - //bxy=zero; - //bxz=zero; - //byz=zero; - //c0=zero; - //cx=zero; - //cy=zero; - //cz=zero; - //cxx=zero; - //cyy=zero; - //czz=zero; - //cxy=zero; - //cxz=zero; - //cyz=zero; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - mfcbb = c0o1; - mfabb = c0o1; - mfbcb = c0o1; - mfbab = c0o1; - mfbbc = c0o1; - mfbba = c0o1; - mfccb = c0o1; - mfaab = c0o1; - mfcab = c0o1; - mfacb = c0o1; - mfcbc = c0o1; - mfaba = c0o1; - mfcba = c0o1; - mfabc = c0o1; - mfbcc = c0o1; - mfbaa = c0o1; - mfbca = c0o1; - mfbac = c0o1; - mfbbb = c0o1; - mfccc = c0o1; - mfaac = c0o1; - mfcac = c0o1; - mfacc = c0o1; - mfcca = c0o1; - mfaaa = c0o1; - mfcaa = c0o1; - mfaca = c0o1; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //real m0, m1, m2, vvx, vvy, vvz, vx2, vy2, vz2, oMdrho; - //real mxxPyyPzz, mxxMyy, mxxMzz, mxxyPyzz, mxxyMyzz, mxxzPyyz, mxxzMyyz, mxyyPxzz, mxyyMxzz; - //real qudricLimit = c1o100;//ganz schlechte Idee -> muss global sein - //real O3 = two - o; - //real residu, residutmp; - //residutmp = zero;///*-*/ c2o9 * (1./o - c1o2) * eps_new * eps_new; - //real NeqOn = one;//zero;//one; //.... one = on ..... zero = off - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position C 0., 0., 0. - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //x = 0.; - //y = 0.; - //z = 0.; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //real mxoff = -xoff; - //real myoff = -yoff; - //real mzoff = -zoff; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //press = press_NET * (c1o8 - c1o4 * mxoff - c1o4 * myoff - c1o4 * mzoff) + - // press_NWT * (c1o8 + c1o4 * mxoff - c1o4 * myoff - c1o4 * mzoff) + - // press_SET * (c1o8 - c1o4 * mxoff + c1o4 * myoff - c1o4 * mzoff) + - // press_SWT * (c1o8 + c1o4 * mxoff + c1o4 * myoff - c1o4 * mzoff) + - // press_NEB * (c1o8 - c1o4 * mxoff - c1o4 * myoff + c1o4 * mzoff) + - // press_NWB * (c1o8 + c1o4 * mxoff - c1o4 * myoff + c1o4 * mzoff) + - // press_SEB * (c1o8 - c1o4 * mxoff + c1o4 * myoff + c1o4 * mzoff) + - // press_SWB * (c1o8 + c1o4 * mxoff + c1o4 * myoff + c1o4 * mzoff); - //drho = drho_NET * (c1o8 - c1o4 * xoff - c1o4 * yoff - c1o4 * zoff) + - // drho_NWT * (c1o8 + c1o4 * xoff - c1o4 * yoff - c1o4 * zoff) + - // drho_SET * (c1o8 - c1o4 * xoff + c1o4 * yoff - c1o4 * zoff) + - // drho_SWT * (c1o8 + c1o4 * xoff + c1o4 * yoff - c1o4 * zoff) + - // drho_NEB * (c1o8 - c1o4 * xoff - c1o4 * yoff + c1o4 * zoff) + - // drho_NWB * (c1o8 + c1o4 * xoff - c1o4 * yoff + c1o4 * zoff) + - // drho_SEB * (c1o8 - c1o4 * xoff + c1o4 * yoff + c1o4 * zoff) + - // drho_SWB * (c1o8 + c1o4 * xoff + c1o4 * yoff + c1o4 * zoff); - press = d0; - vvx = a0; - vvy = b0; - vvz = c0; - - //mfaaa = drho; - //mfaaa = press + (ax+by+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //two - // linear combinations - mxxPyyPzz = mfaaa; - //mxxMyy = -c2o3*(ax - by)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy)*eps_new/o; - //mfbab = -c1o3 * (az + cx)*eps_new/o; - //mfbba = -c1o3 * (ay + bx)*eps_new/o; - mxxMyy = -c2o3*((ax - by)+kxxMyyAverage)*eps_new/o * (c1o1 + press); - mxxMzz = -c2o3*((ax - cz)+kxxMzzAverage)*eps_new/o * (c1o1 + press); - - mfabb = -c1o3 * ((bz + cy)+kyzAverage)*eps_new/o * (c1o1 + press); - mfbab = -c1o3 * ((az + cx)+kxzAverage)*eps_new/o * (c1o1 + press); - mfbba = -c1o3 * ((ay + bx)+kxyAverage)*eps_new/o * (c1o1 + press); - - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //3. - // linear combinations - mfbbb = c4o1 * (c24o1*(-c2o1+omFine)*(-c2o1-c7o1*omFine+c3o1*omFine*omFine)/(c48o1+c152o1*omFine-c130o1*omFine*omFine+c29o1*omFine*omFine*omFine)) - / (c24o1*(-c2o1+omCoarse)*(-c2o1-c7o1*omCoarse+c3o1*omCoarse*omCoarse)/(c48o1+c152o1*omCoarse-c130o1*omCoarse*omCoarse+c29o1*omCoarse*omCoarse*omCoarse)) * mfbbbMean; - mxxyPyzz = c4o1 * (c8o1*(-c2o1+omFine)*(c1o1+c2o1*omFine) /(-c8o1-c14o1*omFine+c7o1*omFine*omFine)) / (c8o1*(-c2o1+omCoarse)*(c1o1+c2o1*omCoarse)/(-c8o1-c14o1*omCoarse+c7o1*omCoarse*omCoarse)) * mxxyPyzzMean; - mxxyMyzz = c4o1 * (c8o1*(-c2o1+omFine)*(-c7o1+c4o1*omFine)/(c56o1-c50o1*omFine+c9o1*omFine*omFine)) / (c8o1*(-c2o1+omCoarse)*(-c7o1+c4o1*omCoarse)/(c56o1-c50o1*omCoarse+c9o1*omCoarse*omCoarse)) * mxxyMyzzMean; - mxxzPyyz = c4o1 * (c8o1*(-c2o1+omFine)*(c1o1+c2o1*omFine) /(-c8o1-c14o1*omFine+c7o1*omFine*omFine)) / (c8o1*(-c2o1+omCoarse)*(c1o1+c2o1*omCoarse)/(-c8o1-c14o1*omCoarse+c7o1*omCoarse*omCoarse)) * mxxzPyyzMean; - mxxzMyyz = c4o1 * (c8o1*(-c2o1+omFine)*(-c7o1+c4o1*omFine)/(c56o1-c50o1*omFine+c9o1*omFine*omFine)) / (c8o1*(-c2o1+omCoarse)*(-c7o1+c4o1*omCoarse)/(c56o1-c50o1*omCoarse+c9o1*omCoarse*omCoarse)) * mxxzMyyzMean; - mxyyPxzz = c4o1 * (c8o1*(-c2o1+omFine)*(c1o1+c2o1*omFine) /(-c8o1-c14o1*omFine+c7o1*omFine*omFine)) / (c8o1*(-c2o1+omCoarse)*(c1o1+c2o1*omCoarse)/(-c8o1-c14o1*omCoarse+c7o1*omCoarse*omCoarse)) * mxyyPxzzMean; - mxyyMxzz = c4o1 * (c8o1*(-c2o1+omFine)*(-c7o1+c4o1*omFine)/(c56o1-c50o1*omFine+c9o1*omFine*omFine)) / (c8o1*(-c2o1+omCoarse)*(-c7o1+c4o1*omCoarse)/(c56o1-c50o1*omCoarse+c9o1*omCoarse*omCoarse)) * mxyyMxzzMean; - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4. - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - //index 0 - kzero= posC[k]; - kw = neighborCX[kzero]; - ks = neighborCY[kzero]; - kb = neighborCZ[kzero]; - ksw = neighborCY[kw]; - kbw = neighborCZ[kw]; - kbs = neighborCZ[ks]; - kbsw = neighborCZ[ksw]; - //////////////////////////////////////////////////////////////////////////////////// - - - //////////////////////////////////////////////////////////////////////////////////// - feC[kzero] = mfcbb; - fwC[kw] = mfabb; - fnC[kzero] = mfbcb; - fsC[ks] = mfbab; - ftC[kzero] = mfbbc; - fbC[kb] = mfbba; - fneC[kzero] = mfccb; - fswC[ksw] = mfaab; - fseC[ks] = mfcab; - fnwC[kw] = mfacb; - fteC[kzero] = mfcbc; - fbwC[kbw] = mfaba; - fbeC[kb] = mfcba; - ftwC[kw] = mfabc; - ftnC[kzero] = mfbcc; - fbsC[kbs] = mfbaa; - fbnC[kb] = mfbca; - ftsC[ks] = mfbac; - fzeroC[kzero] = mfbbb; - ftneC[kzero] = mfccc; - ftseC[ks] = mfcac; - fbneC[kb] = mfcca; - fbseC[kbs] = mfcaa; - ftnwC[kw] = mfacc; - ftswC[ksw] = mfaac; - fbnwC[kbw] = mfaca; - fbswC[kbsw] = mfaaa; - //////////////////////////////////////////////////////////////////////////////////// + //x = 0.; + //y = 0.; + //z = 0.; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //real mxoff = -xoff; + //real myoff = -yoff; + //real mzoff = -zoff; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //press = press_NET * (c1o8 - c1o4 * mxoff - c1o4 * myoff - c1o4 * mzoff) + + // press_NWT * (c1o8 + c1o4 * mxoff - c1o4 * myoff - c1o4 * mzoff) + + // press_SET * (c1o8 - c1o4 * mxoff + c1o4 * myoff - c1o4 * mzoff) + + // press_SWT * (c1o8 + c1o4 * mxoff + c1o4 * myoff - c1o4 * mzoff) + + // press_NEB * (c1o8 - c1o4 * mxoff - c1o4 * myoff + c1o4 * mzoff) + + // press_NWB * (c1o8 + c1o4 * mxoff - c1o4 * myoff + c1o4 * mzoff) + + // press_SEB * (c1o8 - c1o4 * mxoff + c1o4 * myoff + c1o4 * mzoff) + + // press_SWB * (c1o8 + c1o4 * mxoff + c1o4 * myoff + c1o4 * mzoff); + //drho = drho_NET * (c1o8 - c1o4 * xoff - c1o4 * yoff - c1o4 * zoff) + + // drho_NWT * (c1o8 + c1o4 * xoff - c1o4 * yoff - c1o4 * zoff) + + // drho_SET * (c1o8 - c1o4 * xoff + c1o4 * yoff - c1o4 * zoff) + + // drho_SWT * (c1o8 + c1o4 * xoff + c1o4 * yoff - c1o4 * zoff) + + // drho_NEB * (c1o8 - c1o4 * xoff - c1o4 * yoff + c1o4 * zoff) + + // drho_NWB * (c1o8 + c1o4 * xoff - c1o4 * yoff + c1o4 * zoff) + + // drho_SEB * (c1o8 - c1o4 * xoff + c1o4 * yoff + c1o4 * zoff) + + // drho_SWB * (c1o8 + c1o4 * xoff + c1o4 * yoff + c1o4 * zoff); + press = d0; + vvx = a0; + vvy = b0; + vvz = c0; + + //mfaaa = drho; + //mfaaa = press + (ax+by+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1; + //oMdrho = one - mfaaa; + + //two + // linear combinations + mxxPyyPzz = mfaaa; + //mxxMyy = -c2o3*(ax - by)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy)*eps_new/o; + //mfbab = -c1o3 * (az + cx)*eps_new/o; + //mfbba = -c1o3 * (ay + bx)*eps_new/o; + mxxMyy = -c2o3*((ax - by)+kxxMyyAverage)*eps_new/o * (c1o1 + press); + mxxMzz = -c2o3*((ax - cz)+kxxMzzAverage)*eps_new/o * (c1o1 + press); + + mfabb = -c1o3 * ((bz + cy)+kyzAverage)*eps_new/o * (c1o1 + press); + mfbab = -c1o3 * ((az + cx)+kxzAverage)*eps_new/o * (c1o1 + press); + mfbba = -c1o3 * ((ay + bx)+kxyAverage)*eps_new/o * (c1o1 + press); + + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //3. + // linear combinations + mfbbb = c4o1 * (c24o1*(-c2o1+omFine)*(-c2o1-c7o1*omFine+c3o1*omFine*omFine)/(c48o1+c152o1*omFine-c130o1*omFine*omFine+c29o1*omFine*omFine*omFine)) + / (c24o1*(-c2o1+omCoarse)*(-c2o1-c7o1*omCoarse+c3o1*omCoarse*omCoarse)/(c48o1+c152o1*omCoarse-c130o1*omCoarse*omCoarse+c29o1*omCoarse*omCoarse*omCoarse)) * mfbbbMean; + mxxyPyzz = c4o1 * (c8o1*(-c2o1+omFine)*(c1o1+c2o1*omFine) /(-c8o1-c14o1*omFine+c7o1*omFine*omFine)) / (c8o1*(-c2o1+omCoarse)*(c1o1+c2o1*omCoarse)/(-c8o1-c14o1*omCoarse+c7o1*omCoarse*omCoarse)) * mxxyPyzzMean; + mxxyMyzz = c4o1 * (c8o1*(-c2o1+omFine)*(-c7o1+c4o1*omFine)/(c56o1-c50o1*omFine+c9o1*omFine*omFine)) / (c8o1*(-c2o1+omCoarse)*(-c7o1+c4o1*omCoarse)/(c56o1-c50o1*omCoarse+c9o1*omCoarse*omCoarse)) * mxxyMyzzMean; + mxxzPyyz = c4o1 * (c8o1*(-c2o1+omFine)*(c1o1+c2o1*omFine) /(-c8o1-c14o1*omFine+c7o1*omFine*omFine)) / (c8o1*(-c2o1+omCoarse)*(c1o1+c2o1*omCoarse)/(-c8o1-c14o1*omCoarse+c7o1*omCoarse*omCoarse)) * mxxzPyyzMean; + mxxzMyyz = c4o1 * (c8o1*(-c2o1+omFine)*(-c7o1+c4o1*omFine)/(c56o1-c50o1*omFine+c9o1*omFine*omFine)) / (c8o1*(-c2o1+omCoarse)*(-c7o1+c4o1*omCoarse)/(c56o1-c50o1*omCoarse+c9o1*omCoarse*omCoarse)) * mxxzMyyzMean; + mxyyPxzz = c4o1 * (c8o1*(-c2o1+omFine)*(c1o1+c2o1*omFine) /(-c8o1-c14o1*omFine+c7o1*omFine*omFine)) / (c8o1*(-c2o1+omCoarse)*(c1o1+c2o1*omCoarse)/(-c8o1-c14o1*omCoarse+c7o1*omCoarse*omCoarse)) * mxyyPxzzMean; + mxyyMxzz = c4o1 * (c8o1*(-c2o1+omFine)*(-c7o1+c4o1*omFine)/(c56o1-c50o1*omFine+c9o1*omFine*omFine)) / (c8o1*(-c2o1+omCoarse)*(-c7o1+c4o1*omCoarse)/(c56o1-c50o1*omCoarse+c9o1*omCoarse*omCoarse)) * mxyyMxzzMean; + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4. + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + //index 0 + kzero= posC[k]; + kw = neighborCX[kzero]; + ks = neighborCY[kzero]; + kb = neighborCZ[kzero]; + ksw = neighborCY[kw]; + kbw = neighborCZ[kw]; + kbs = neighborCZ[ks]; + kbsw = neighborCZ[ksw]; + //////////////////////////////////////////////////////////////////////////////////// + + + //////////////////////////////////////////////////////////////////////////////////// + feC[kzero] = mfcbb; + fwC[kw] = mfabb; + fnC[kzero] = mfbcb; + fsC[ks] = mfbab; + ftC[kzero] = mfbbc; + fbC[kb] = mfbba; + fneC[kzero] = mfccb; + fswC[ksw] = mfaab; + fseC[ks] = mfcab; + fnwC[kw] = mfacb; + fteC[kzero] = mfcbc; + fbwC[kbw] = mfaba; + fbeC[kb] = mfcba; + ftwC[kw] = mfabc; + ftnC[kzero] = mfbcc; + fbsC[kbs] = mfbaa; + fbnC[kb] = mfbca; + ftsC[ks] = mfbac; + fzeroC[kzero] = mfbbb; + ftneC[kzero] = mfccc; + ftseC[ks] = mfcac; + fbneC[kb] = mfcca; + fbseC[kbs] = mfcaa; + ftnwC[kw] = mfacc; + ftswC[ksw] = mfaac; + fbnwC[kbw] = mfaca; + fbswC[kbsw] = mfaaa; + //////////////////////////////////////////////////////////////////////////////////// } } ////////////////////////////////////////////////////////////////////////// @@ -5400,27 +5400,27 @@ __global__ void scaleFC_AA2016_comp_27(real* DC, ////////////////////////////////////////////////////////////////////////// __global__ void scaleFC_RhoSq_3rdMom_comp_27(real* DC, - real* DF, - unsigned int* neighborCX, - unsigned int* neighborCY, - unsigned int* neighborCZ, - unsigned int* neighborFX, - unsigned int* neighborFY, - unsigned int* neighborFZ, - unsigned long long numberOfLBnodesCoarse, - unsigned long long numberOfLBnodesFine, - bool isEvenTimestep, - unsigned int* posC, - unsigned int* posFSWB, - unsigned int kFC, - real omCoarse, - real omFine, - real nu, - unsigned int nxC, - unsigned int nyC, - unsigned int nxF, - unsigned int nyF, - ICellNeigh offFC) + real* DF, + unsigned int* neighborCX, + unsigned int* neighborCY, + unsigned int* neighborCZ, + unsigned int* neighborFX, + unsigned int* neighborFY, + unsigned int* neighborFZ, + unsigned long long numberOfLBnodesCoarse, + unsigned long long numberOfLBnodesFine, + bool isEvenTimestep, + unsigned int* posC, + unsigned int* posFSWB, + unsigned int kFC, + real omCoarse, + real omFine, + real nu, + unsigned int nxC, + unsigned int nyC, + unsigned int nxF, + unsigned int nyF, + ICellNeigh offFC) { real *feF, *fwF, *fnF, *fsF, *ftF, *fbF, *fneF, *fswF, *fseF, *fnwF, *fteF, *fbwF, *fbeF, *ftwF, *ftnF, *fbsF, *fbnF, *ftsF, *fzeroF, *ftneF, *ftswF, *ftseF, *ftnwF, *fbneF, *fbswF, *fbseF, *fbnwF; @@ -5558,26 +5558,26 @@ __global__ void scaleFC_RhoSq_3rdMom_comp_27(real* DC, real kxyFromfcNEQ_SEB, kyzFromfcNEQ_SEB, kxzFromfcNEQ_SEB, kxxMyyFromfcNEQ_SEB, kxxMzzFromfcNEQ_SEB; real a0, ax, ay, az, axx, ayy, azz, axy, axz, ayz, b0, bx, by, bz, bxx, byy, bzz, bxy, bxz, byz, c0, cx, cy, cz, cxx, cyy, czz, cxy, cxz, cyz/*, axyz, bxyz, cxyz*/; real d0, dx, dy, dz, dxy, dxz, dyz/*, dxyz*/; - ////////////////////////////////////////////////////////////////////////////////////// - real mfcbb, mfabb, mfbcb, mfbab, mfbbc, mfbba, mfccb, mfaab, mfcab, mfacb, mfcbc, mfaba, mfcba, mfabc, mfbcc, mfbaa, mfbca, mfbac, mfbbb, mfccc, mfaac, mfcac, mfacc, mfcca, mfaaa, mfcaa, mfaca; - //real wadjust; - //real qudricLimitP = 0.01f;// * 0.0001f; - //real qudricLimitM = 0.01f;// * 0.0001f; - //real qudricLimitD = 0.01f;// * 0.001f; - //real omega = omFine; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real m0, m1, m2, vvx, vvy, vvz, vx2, vy2, vz2, oMdrho; - real mxxPyyPzz, mxxMyy, mxxMzz, mxxyPyzz, mxxyMyzz, mxxzPyyz, mxxzMyyz, mxyyPxzz, mxyyMxzz; - real NeqOn = c1o1; - real drho, rho; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //real OxxPyyPzz; - //real OxyyPxzz; - //real OxyyMxzz; - //real Oxyz; - //real O4, O5, O6; - //real CUMcbb, CUMbcb, CUMbbc, CUMcca, CUMcac, CUMacc, CUMbcc, CUMcbc, CUMccb, CUMccc; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////////////////// + real mfcbb, mfabb, mfbcb, mfbab, mfbbc, mfbba, mfccb, mfaab, mfcab, mfacb, mfcbc, mfaba, mfcba, mfabc, mfbcc, mfbaa, mfbca, mfbac, mfbbb, mfccc, mfaac, mfcac, mfacc, mfcca, mfaaa, mfcaa, mfaca; + //real wadjust; + //real qudricLimitP = 0.01f;// * 0.0001f; + //real qudricLimitM = 0.01f;// * 0.0001f; + //real qudricLimitD = 0.01f;// * 0.001f; + //real omega = omFine; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + real m0, m1, m2, vvx, vvy, vvz, vx2, vy2, vz2, oMdrho; + real mxxPyyPzz, mxxMyy, mxxMzz, mxxyPyzz, mxxyMyzz, mxxzPyyz, mxxzMyyz, mxyyPxzz, mxyyMxzz; + real NeqOn = c1o1; + real drho, rho; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //real OxxPyyPzz; + //real OxyyPxzz; + //real OxyyMxzz; + //real Oxyz; + //real O4, O5, O6; + //real CUMcbb, CUMbcb, CUMbbc, CUMcca, CUMcac, CUMacc, CUMbcc, CUMcbc, CUMccb, CUMccc; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// if(k<kFC) { @@ -5641,8 +5641,8 @@ __global__ void scaleFC_RhoSq_3rdMom_comp_27(real* DC, drho_SWB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; vx1_SWB = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_SWB); - vx2_SWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SWB); - vx3_SWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SWB); + vx2_SWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SWB); + vx3_SWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SWB); kxyFromfcNEQ_SWB = -c3o1*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_SWB) - ((vx1_SWB*vx2_SWB))); kyzFromfcNEQ_SWB = -c3o1*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_SWB) - ((vx2_SWB*vx3_SWB))); @@ -5650,306 +5650,306 @@ __global__ void scaleFC_RhoSq_3rdMom_comp_27(real* DC, kxxMyyFromfcNEQ_SWB = -c3o2*omegaS *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_SWB) - ((vx1_SWB*vx1_SWB-vx2_SWB*vx2_SWB))); kxxMzzFromfcNEQ_SWB = -c3o2*omegaS *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_SWB) - ((vx1_SWB*vx1_SWB-vx3_SWB*vx3_SWB))); - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - mfcbb = f_E ; - mfabb = f_W ; - mfbcb = f_N ; - mfbab = f_S ; - mfbbc = f_T ; - mfbba = f_B ; - mfccb = f_NE ; - mfaab = f_SW ; - mfcab = f_SE ; - mfacb = f_NW ; - mfcbc = f_TE ; - mfaba = f_BW ; - mfcba = f_BE ; - mfabc = f_TW ; - mfbcc = f_TN ; - mfbaa = f_BS ; - mfbca = f_BN ; - mfbac = f_TS ; - mfbbb = f_ZERO; - mfccc = f_TNE ; - mfaac = f_TSW ; - mfcac = f_TSE ; - mfacc = f_TNW ; - mfcca = f_BNE ; - mfaaa = f_BSW ; - mfcaa = f_BSE ; - mfaca = f_BNW ; - //////////////////////////////////////////////////////////////////////////////////// - drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + - (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + - ((mfabb+mfcbb) + (mfbab+mfbcb)) + (mfbba+mfbbc)) + mfbbb; - - rho = c1o1+drho; - //////////////////////////////////////////////////////////////////////////////////// - vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + - (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + - (mfcbb-mfabb)) / rho; - vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + - (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + - (mfbcb-mfbab)) / rho; - vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + - (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + - (mfbbc-mfbba)) / rho; - //////////////////////////////////////////////////////////////////////////////////// - //fast - oMdrho = c1o1; // comp special - vx2=vvx*vvx; - vy2=vvy*vvy; - vz2=vvz*vvz; - //////////////////////////////////////////////////////////////////////////////////// - //Hin - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m2 = mfaaa + mfaac; - m1 = mfaac - mfaaa; - m0 = m2 + mfaab; - mfaaa = m0; - m0 += c1o36 * oMdrho; - mfaab = m1 - m0 * vvz; - mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfabc; - m1 = mfabc - mfaba; - m0 = m2 + mfabb; - mfaba = m0; - m0 += c1o9 * oMdrho; - mfabb = m1 - m0 * vvz; - mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfacc; - m1 = mfacc - mfaca; - m0 = m2 + mfacb; - mfaca = m0; - m0 += c1o36 * oMdrho; - mfacb = m1 - m0 * vvz; - mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbac; - m1 = mfbac - mfbaa; - m0 = m2 + mfbab; - mfbaa = m0; - m0 += c1o9 * oMdrho; - mfbab = m1 - m0 * vvz; - mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbba + mfbbc; - m1 = mfbbc - mfbba; - m0 = m2 + mfbbb; - mfbba = m0; - m0 += c4o9 * oMdrho; - mfbbb = m1 - m0 * vvz; - mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbca + mfbcc; - m1 = mfbcc - mfbca; - m0 = m2 + mfbcb; - mfbca = m0; - m0 += c1o9 * oMdrho; - mfbcb = m1 - m0 * vvz; - mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcac; - m1 = mfcac - mfcaa; - m0 = m2 + mfcab; - mfcaa = m0; - m0 += c1o36 * oMdrho; - mfcab = m1 - m0 * vvz; - mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcba + mfcbc; - m1 = mfcbc - mfcba; - m0 = m2 + mfcbb; - mfcba = m0; - m0 += c1o9 * oMdrho; - mfcbb = m1 - m0 * vvz; - mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcca + mfccc; - m1 = mfccc - mfcca; - m0 = m2 + mfccb; - mfcca = m0; - m0 += c1o36 * oMdrho; - mfccb = m1 - m0 * vvz; - mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m2 = mfaaa + mfaca; - m1 = mfaca - mfaaa; - m0 = m2 + mfaba; - mfaaa = m0; - m0 += c1o6 * oMdrho; - mfaba = m1 - m0 * vvy; - mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfacb; - m1 = mfacb - mfaab; - m0 = m2 + mfabb; - mfaab = m0; - mfabb = m1 - m0 * vvy; - mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfacc; - m1 = mfacc - mfaac; - m0 = m2 + mfabc; - mfaac = m0; - m0 += c1o18 * oMdrho; - mfabc = m1 - m0 * vvy; - mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbca; - m1 = mfbca - mfbaa; - m0 = m2 + mfbba; - mfbaa = m0; - m0 += c2o3 * oMdrho; - mfbba = m1 - m0 * vvy; - mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbab + mfbcb; - m1 = mfbcb - mfbab; - m0 = m2 + mfbbb; - mfbab = m0; - mfbbb = m1 - m0 * vvy; - mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbac + mfbcc; - m1 = mfbcc - mfbac; - m0 = m2 + mfbbc; - mfbac = m0; - m0 += c2o9 * oMdrho; - mfbbc = m1 - m0 * vvy; - mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcca; - m1 = mfcca - mfcaa; - m0 = m2 + mfcba; - mfcaa = m0; - m0 += c1o6 * oMdrho; - mfcba = m1 - m0 * vvy; - mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcab + mfccb; - m1 = mfccb - mfcab; - m0 = m2 + mfcbb; - mfcab = m0; - mfcbb = m1 - m0 * vvy; - mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcac + mfccc; - m1 = mfccc - mfcac; - m0 = m2 + mfcbc; - mfcac = m0; - m0 += c1o18 * oMdrho; - mfcbc = m1 - m0 * vvy; - mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m2 = mfaaa + mfcaa; - m1 = mfcaa - mfaaa; - m0 = m2 + mfbaa; - mfaaa = m0; - m0 += c1o1* oMdrho; - mfbaa = m1 - m0 * vvx; - mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfcba; - m1 = mfcba - mfaba; - m0 = m2 + mfbba; - mfaba = m0; - mfbba = m1 - m0 * vvx; - mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfcca; - m1 = mfcca - mfaca; - m0 = m2 + mfbca; - mfaca = m0; - m0 += c1o3 * oMdrho; - mfbca = m1 - m0 * vvx; - mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfcab; - m1 = mfcab - mfaab; - m0 = m2 + mfbab; - mfaab = m0; - mfbab = m1 - m0 * vvx; - mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabb + mfcbb; - m1 = mfcbb - mfabb; - m0 = m2 + mfbbb; - mfabb = m0; - mfbbb = m1 - m0 * vvx; - mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacb + mfccb; - m1 = mfccb - mfacb; - m0 = m2 + mfbcb; - mfacb = m0; - mfbcb = m1 - m0 * vvx; - mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfcac; - m1 = mfcac - mfaac; - m0 = m2 + mfbac; - mfaac = m0; - m0 += c1o3 * oMdrho; - mfbac = m1 - m0 * vvx; - mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabc + mfcbc; - m1 = mfcbc - mfabc; - m0 = m2 + mfbbc; - mfabc = m0; - mfbbc = m1 - m0 * vvx; - mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacc + mfccc; - m1 = mfccc - mfacc; - m0 = m2 + mfbcc; - mfacc = m0; - m0 += c1o9 * oMdrho; - mfbcc = m1 - m0 * vvx; - mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - // linear combinations + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + mfcbb = f_E ; + mfabb = f_W ; + mfbcb = f_N ; + mfbab = f_S ; + mfbbc = f_T ; + mfbba = f_B ; + mfccb = f_NE ; + mfaab = f_SW ; + mfcab = f_SE ; + mfacb = f_NW ; + mfcbc = f_TE ; + mfaba = f_BW ; + mfcba = f_BE ; + mfabc = f_TW ; + mfbcc = f_TN ; + mfbaa = f_BS ; + mfbca = f_BN ; + mfbac = f_TS ; + mfbbb = f_ZERO; + mfccc = f_TNE ; + mfaac = f_TSW ; + mfcac = f_TSE ; + mfacc = f_TNW ; + mfcca = f_BNE ; + mfaaa = f_BSW ; + mfcaa = f_BSE ; + mfaca = f_BNW ; + //////////////////////////////////////////////////////////////////////////////////// + drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + + (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + + ((mfabb+mfcbb) + (mfbab+mfbcb)) + (mfbba+mfbbc)) + mfbbb; + + rho = c1o1+drho; + //////////////////////////////////////////////////////////////////////////////////// + vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + + (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + + (mfcbb-mfabb)) / rho; + vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + + (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + + (mfbcb-mfbab)) / rho; + vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + + (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + + (mfbbc-mfbba)) / rho; + //////////////////////////////////////////////////////////////////////////////////// + //fast + oMdrho = c1o1; // comp special + vx2=vvx*vvx; + vy2=vvy*vvy; + vz2=vvz*vvz; + //////////////////////////////////////////////////////////////////////////////////// + //Hin + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m2 = mfaaa + mfaac; + m1 = mfaac - mfaaa; + m0 = m2 + mfaab; + mfaaa = m0; + m0 += c1o36 * oMdrho; + mfaab = m1 - m0 * vvz; + mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfabc; + m1 = mfabc - mfaba; + m0 = m2 + mfabb; + mfaba = m0; + m0 += c1o9 * oMdrho; + mfabb = m1 - m0 * vvz; + mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfacc; + m1 = mfacc - mfaca; + m0 = m2 + mfacb; + mfaca = m0; + m0 += c1o36 * oMdrho; + mfacb = m1 - m0 * vvz; + mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbac; + m1 = mfbac - mfbaa; + m0 = m2 + mfbab; + mfbaa = m0; + m0 += c1o9 * oMdrho; + mfbab = m1 - m0 * vvz; + mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbba + mfbbc; + m1 = mfbbc - mfbba; + m0 = m2 + mfbbb; + mfbba = m0; + m0 += c4o9 * oMdrho; + mfbbb = m1 - m0 * vvz; + mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbca + mfbcc; + m1 = mfbcc - mfbca; + m0 = m2 + mfbcb; + mfbca = m0; + m0 += c1o9 * oMdrho; + mfbcb = m1 - m0 * vvz; + mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcac; + m1 = mfcac - mfcaa; + m0 = m2 + mfcab; + mfcaa = m0; + m0 += c1o36 * oMdrho; + mfcab = m1 - m0 * vvz; + mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcba + mfcbc; + m1 = mfcbc - mfcba; + m0 = m2 + mfcbb; + mfcba = m0; + m0 += c1o9 * oMdrho; + mfcbb = m1 - m0 * vvz; + mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcca + mfccc; + m1 = mfccc - mfcca; + m0 = m2 + mfccb; + mfcca = m0; + m0 += c1o36 * oMdrho; + mfccb = m1 - m0 * vvz; + mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m2 = mfaaa + mfaca; + m1 = mfaca - mfaaa; + m0 = m2 + mfaba; + mfaaa = m0; + m0 += c1o6 * oMdrho; + mfaba = m1 - m0 * vvy; + mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfacb; + m1 = mfacb - mfaab; + m0 = m2 + mfabb; + mfaab = m0; + mfabb = m1 - m0 * vvy; + mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfacc; + m1 = mfacc - mfaac; + m0 = m2 + mfabc; + mfaac = m0; + m0 += c1o18 * oMdrho; + mfabc = m1 - m0 * vvy; + mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbca; + m1 = mfbca - mfbaa; + m0 = m2 + mfbba; + mfbaa = m0; + m0 += c2o3 * oMdrho; + mfbba = m1 - m0 * vvy; + mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbab + mfbcb; + m1 = mfbcb - mfbab; + m0 = m2 + mfbbb; + mfbab = m0; + mfbbb = m1 - m0 * vvy; + mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbac + mfbcc; + m1 = mfbcc - mfbac; + m0 = m2 + mfbbc; + mfbac = m0; + m0 += c2o9 * oMdrho; + mfbbc = m1 - m0 * vvy; + mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcca; + m1 = mfcca - mfcaa; + m0 = m2 + mfcba; + mfcaa = m0; + m0 += c1o6 * oMdrho; + mfcba = m1 - m0 * vvy; + mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcab + mfccb; + m1 = mfccb - mfcab; + m0 = m2 + mfcbb; + mfcab = m0; + mfcbb = m1 - m0 * vvy; + mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcac + mfccc; + m1 = mfccc - mfcac; + m0 = m2 + mfcbc; + mfcac = m0; + m0 += c1o18 * oMdrho; + mfcbc = m1 - m0 * vvy; + mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m2 = mfaaa + mfcaa; + m1 = mfcaa - mfaaa; + m0 = m2 + mfbaa; + mfaaa = m0; + m0 += c1o1* oMdrho; + mfbaa = m1 - m0 * vvx; + mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfcba; + m1 = mfcba - mfaba; + m0 = m2 + mfbba; + mfaba = m0; + mfbba = m1 - m0 * vvx; + mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfcca; + m1 = mfcca - mfaca; + m0 = m2 + mfbca; + mfaca = m0; + m0 += c1o3 * oMdrho; + mfbca = m1 - m0 * vvx; + mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfcab; + m1 = mfcab - mfaab; + m0 = m2 + mfbab; + mfaab = m0; + mfbab = m1 - m0 * vvx; + mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabb + mfcbb; + m1 = mfcbb - mfabb; + m0 = m2 + mfbbb; + mfabb = m0; + mfbbb = m1 - m0 * vvx; + mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacb + mfccb; + m1 = mfccb - mfacb; + m0 = m2 + mfbcb; + mfacb = m0; + mfbcb = m1 - m0 * vvx; + mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfcac; + m1 = mfcac - mfaac; + m0 = m2 + mfbac; + mfaac = m0; + m0 += c1o3 * oMdrho; + mfbac = m1 - m0 * vvx; + mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabc + mfcbc; + m1 = mfcbc - mfabc; + m0 = m2 + mfbbc; + mfabc = m0; + mfbbc = m1 - m0 * vvx; + mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacc + mfccc; + m1 = mfccc - mfacc; + m0 = m2 + mfbcc; + mfacc = m0; + m0 += c1o9 * oMdrho; + mfbcc = m1 - m0 * vvx; + mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + // linear combinations - mxxyPyzz = mfcba + mfabc; - mxxyMyzz = mfcba - mfabc; + mxxyPyzz = mfcba + mfabc; + mxxyMyzz = mfcba - mfabc; - mxxzPyyz = mfcab + mfacb; - mxxzMyyz = mfcab - mfacb; + mxxzPyyz = mfcab + mfacb; + mxxzMyyz = mfcab - mfacb; - mxyyPxzz = mfbca + mfbac; - mxyyMxzz = mfbca - mfbac; + mxyyPxzz = mfbca + mfbac; + mxyyMxzz = mfbca - mfbac; - ////////////////////////////////////////////////////////////////////////// - //exclusive for this source node - real mfbbb_SWB = mfbbb; - real mxxyPyzz_SWB = mxxyPyzz; - real mxxyMyzz_SWB = mxxyMyzz; - real mxxzPyyz_SWB = mxxzPyyz; - real mxxzMyyz_SWB = mxxzMyyz; - real mxyyPxzz_SWB = mxyyPxzz; - real mxyyMxzz_SWB = mxyyMxzz; - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// + //exclusive for this source node + real mfbbb_SWB = mfbbb; + real mxxyPyzz_SWB = mxxyPyzz; + real mxxyMyzz_SWB = mxxyMyzz; + real mxxzPyyz_SWB = mxxzPyyz; + real mxxzMyyz_SWB = mxxzMyyz; + real mxyyPxzz_SWB = mxyyPxzz; + real mxyyMxzz_SWB = mxyyMxzz; + ////////////////////////////////////////////////////////////////////////// @@ -6004,7 +6004,7 @@ __global__ void scaleFC_RhoSq_3rdMom_comp_27(real* DC, - + ////////////////////////////////////////////////////////////////////////// //SWT// ////////////////////////////////////////////////////////////////////////// @@ -6048,8 +6048,8 @@ __global__ void scaleFC_RhoSq_3rdMom_comp_27(real* DC, drho_SWT = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; vx1_SWT = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_SWT); - vx2_SWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SWT); - vx3_SWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SWT); + vx2_SWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SWT); + vx3_SWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SWT); kxyFromfcNEQ_SWT = -c3o1*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_SWT) - ((vx1_SWT*vx2_SWT))); kyzFromfcNEQ_SWT = -c3o1*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_SWT) - ((vx2_SWT*vx3_SWT))); @@ -6057,306 +6057,306 @@ __global__ void scaleFC_RhoSq_3rdMom_comp_27(real* DC, kxxMyyFromfcNEQ_SWT = -c3o2*omegaS *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_SWT) - ((vx1_SWT*vx1_SWT-vx2_SWT*vx2_SWT))); kxxMzzFromfcNEQ_SWT = -c3o2*omegaS *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_SWT) - ((vx1_SWT*vx1_SWT-vx3_SWT*vx3_SWT))); - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - mfcbb = f_E ; - mfabb = f_W ; - mfbcb = f_N ; - mfbab = f_S ; - mfbbc = f_T ; - mfbba = f_B ; - mfccb = f_NE ; - mfaab = f_SW ; - mfcab = f_SE ; - mfacb = f_NW ; - mfcbc = f_TE ; - mfaba = f_BW ; - mfcba = f_BE ; - mfabc = f_TW ; - mfbcc = f_TN ; - mfbaa = f_BS ; - mfbca = f_BN ; - mfbac = f_TS ; - mfbbb = f_ZERO; - mfccc = f_TNE ; - mfaac = f_TSW ; - mfcac = f_TSE ; - mfacc = f_TNW ; - mfcca = f_BNE ; - mfaaa = f_BSW ; - mfcaa = f_BSE ; - mfaca = f_BNW ; - //////////////////////////////////////////////////////////////////////////////////// - drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + - (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + - ((mfabb+mfcbb) + (mfbab+mfbcb)) + (mfbba+mfbbc)) + mfbbb; - - rho = c1o1+drho; - //////////////////////////////////////////////////////////////////////////////////// - vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + - (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + - (mfcbb-mfabb)) / rho; - vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + - (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + - (mfbcb-mfbab)) / rho; - vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + - (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + - (mfbbc-mfbba)) / rho; - //////////////////////////////////////////////////////////////////////////////////// - //fast - oMdrho = c1o1; // comp special - vx2=vvx*vvx; - vy2=vvy*vvy; - vz2=vvz*vvz; - //////////////////////////////////////////////////////////////////////////////////// - //Hin - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m2 = mfaaa + mfaac; - m1 = mfaac - mfaaa; - m0 = m2 + mfaab; - mfaaa = m0; - m0 += c1o36 * oMdrho; - mfaab = m1 - m0 * vvz; - mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfabc; - m1 = mfabc - mfaba; - m0 = m2 + mfabb; - mfaba = m0; - m0 += c1o9 * oMdrho; - mfabb = m1 - m0 * vvz; - mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfacc; - m1 = mfacc - mfaca; - m0 = m2 + mfacb; - mfaca = m0; - m0 += c1o36 * oMdrho; - mfacb = m1 - m0 * vvz; - mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbac; - m1 = mfbac - mfbaa; - m0 = m2 + mfbab; - mfbaa = m0; - m0 += c1o9 * oMdrho; - mfbab = m1 - m0 * vvz; - mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbba + mfbbc; - m1 = mfbbc - mfbba; - m0 = m2 + mfbbb; - mfbba = m0; - m0 += c4o9 * oMdrho; - mfbbb = m1 - m0 * vvz; - mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbca + mfbcc; - m1 = mfbcc - mfbca; - m0 = m2 + mfbcb; - mfbca = m0; - m0 += c1o9 * oMdrho; - mfbcb = m1 - m0 * vvz; - mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcac; - m1 = mfcac - mfcaa; - m0 = m2 + mfcab; - mfcaa = m0; - m0 += c1o36 * oMdrho; - mfcab = m1 - m0 * vvz; - mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcba + mfcbc; - m1 = mfcbc - mfcba; - m0 = m2 + mfcbb; - mfcba = m0; - m0 += c1o9 * oMdrho; - mfcbb = m1 - m0 * vvz; - mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcca + mfccc; - m1 = mfccc - mfcca; - m0 = m2 + mfccb; - mfcca = m0; - m0 += c1o36 * oMdrho; - mfccb = m1 - m0 * vvz; - mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m2 = mfaaa + mfaca; - m1 = mfaca - mfaaa; - m0 = m2 + mfaba; - mfaaa = m0; - m0 += c1o6 * oMdrho; - mfaba = m1 - m0 * vvy; - mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfacb; - m1 = mfacb - mfaab; - m0 = m2 + mfabb; - mfaab = m0; - mfabb = m1 - m0 * vvy; - mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfacc; - m1 = mfacc - mfaac; - m0 = m2 + mfabc; - mfaac = m0; - m0 += c1o18 * oMdrho; - mfabc = m1 - m0 * vvy; - mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbca; - m1 = mfbca - mfbaa; - m0 = m2 + mfbba; - mfbaa = m0; - m0 += c2o3 * oMdrho; - mfbba = m1 - m0 * vvy; - mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbab + mfbcb; - m1 = mfbcb - mfbab; - m0 = m2 + mfbbb; - mfbab = m0; - mfbbb = m1 - m0 * vvy; - mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbac + mfbcc; - m1 = mfbcc - mfbac; - m0 = m2 + mfbbc; - mfbac = m0; - m0 += c2o9 * oMdrho; - mfbbc = m1 - m0 * vvy; - mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcca; - m1 = mfcca - mfcaa; - m0 = m2 + mfcba; - mfcaa = m0; - m0 += c1o6 * oMdrho; - mfcba = m1 - m0 * vvy; - mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcab + mfccb; - m1 = mfccb - mfcab; - m0 = m2 + mfcbb; - mfcab = m0; - mfcbb = m1 - m0 * vvy; - mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcac + mfccc; - m1 = mfccc - mfcac; - m0 = m2 + mfcbc; - mfcac = m0; - m0 += c1o18 * oMdrho; - mfcbc = m1 - m0 * vvy; - mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m2 = mfaaa + mfcaa; - m1 = mfcaa - mfaaa; - m0 = m2 + mfbaa; - mfaaa = m0; - m0 += c1o1* oMdrho; - mfbaa = m1 - m0 * vvx; - mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfcba; - m1 = mfcba - mfaba; - m0 = m2 + mfbba; - mfaba = m0; - mfbba = m1 - m0 * vvx; - mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfcca; - m1 = mfcca - mfaca; - m0 = m2 + mfbca; - mfaca = m0; - m0 += c1o3 * oMdrho; - mfbca = m1 - m0 * vvx; - mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfcab; - m1 = mfcab - mfaab; - m0 = m2 + mfbab; - mfaab = m0; - mfbab = m1 - m0 * vvx; - mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabb + mfcbb; - m1 = mfcbb - mfabb; - m0 = m2 + mfbbb; - mfabb = m0; - mfbbb = m1 - m0 * vvx; - mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacb + mfccb; - m1 = mfccb - mfacb; - m0 = m2 + mfbcb; - mfacb = m0; - mfbcb = m1 - m0 * vvx; - mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfcac; - m1 = mfcac - mfaac; - m0 = m2 + mfbac; - mfaac = m0; - m0 += c1o3 * oMdrho; - mfbac = m1 - m0 * vvx; - mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabc + mfcbc; - m1 = mfcbc - mfabc; - m0 = m2 + mfbbc; - mfabc = m0; - mfbbc = m1 - m0 * vvx; - mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacc + mfccc; - m1 = mfccc - mfacc; - m0 = m2 + mfbcc; - mfacc = m0; - m0 += c1o9 * oMdrho; - mfbcc = m1 - m0 * vvx; - mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - // linear combinations + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + mfcbb = f_E ; + mfabb = f_W ; + mfbcb = f_N ; + mfbab = f_S ; + mfbbc = f_T ; + mfbba = f_B ; + mfccb = f_NE ; + mfaab = f_SW ; + mfcab = f_SE ; + mfacb = f_NW ; + mfcbc = f_TE ; + mfaba = f_BW ; + mfcba = f_BE ; + mfabc = f_TW ; + mfbcc = f_TN ; + mfbaa = f_BS ; + mfbca = f_BN ; + mfbac = f_TS ; + mfbbb = f_ZERO; + mfccc = f_TNE ; + mfaac = f_TSW ; + mfcac = f_TSE ; + mfacc = f_TNW ; + mfcca = f_BNE ; + mfaaa = f_BSW ; + mfcaa = f_BSE ; + mfaca = f_BNW ; + //////////////////////////////////////////////////////////////////////////////////// + drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + + (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + + ((mfabb+mfcbb) + (mfbab+mfbcb)) + (mfbba+mfbbc)) + mfbbb; + + rho = c1o1+drho; + //////////////////////////////////////////////////////////////////////////////////// + vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + + (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + + (mfcbb-mfabb)) / rho; + vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + + (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + + (mfbcb-mfbab)) / rho; + vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + + (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + + (mfbbc-mfbba)) / rho; + //////////////////////////////////////////////////////////////////////////////////// + //fast + oMdrho = c1o1; // comp special + vx2=vvx*vvx; + vy2=vvy*vvy; + vz2=vvz*vvz; + //////////////////////////////////////////////////////////////////////////////////// + //Hin + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m2 = mfaaa + mfaac; + m1 = mfaac - mfaaa; + m0 = m2 + mfaab; + mfaaa = m0; + m0 += c1o36 * oMdrho; + mfaab = m1 - m0 * vvz; + mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfabc; + m1 = mfabc - mfaba; + m0 = m2 + mfabb; + mfaba = m0; + m0 += c1o9 * oMdrho; + mfabb = m1 - m0 * vvz; + mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfacc; + m1 = mfacc - mfaca; + m0 = m2 + mfacb; + mfaca = m0; + m0 += c1o36 * oMdrho; + mfacb = m1 - m0 * vvz; + mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbac; + m1 = mfbac - mfbaa; + m0 = m2 + mfbab; + mfbaa = m0; + m0 += c1o9 * oMdrho; + mfbab = m1 - m0 * vvz; + mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbba + mfbbc; + m1 = mfbbc - mfbba; + m0 = m2 + mfbbb; + mfbba = m0; + m0 += c4o9 * oMdrho; + mfbbb = m1 - m0 * vvz; + mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbca + mfbcc; + m1 = mfbcc - mfbca; + m0 = m2 + mfbcb; + mfbca = m0; + m0 += c1o9 * oMdrho; + mfbcb = m1 - m0 * vvz; + mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcac; + m1 = mfcac - mfcaa; + m0 = m2 + mfcab; + mfcaa = m0; + m0 += c1o36 * oMdrho; + mfcab = m1 - m0 * vvz; + mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcba + mfcbc; + m1 = mfcbc - mfcba; + m0 = m2 + mfcbb; + mfcba = m0; + m0 += c1o9 * oMdrho; + mfcbb = m1 - m0 * vvz; + mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcca + mfccc; + m1 = mfccc - mfcca; + m0 = m2 + mfccb; + mfcca = m0; + m0 += c1o36 * oMdrho; + mfccb = m1 - m0 * vvz; + mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m2 = mfaaa + mfaca; + m1 = mfaca - mfaaa; + m0 = m2 + mfaba; + mfaaa = m0; + m0 += c1o6 * oMdrho; + mfaba = m1 - m0 * vvy; + mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfacb; + m1 = mfacb - mfaab; + m0 = m2 + mfabb; + mfaab = m0; + mfabb = m1 - m0 * vvy; + mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfacc; + m1 = mfacc - mfaac; + m0 = m2 + mfabc; + mfaac = m0; + m0 += c1o18 * oMdrho; + mfabc = m1 - m0 * vvy; + mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbca; + m1 = mfbca - mfbaa; + m0 = m2 + mfbba; + mfbaa = m0; + m0 += c2o3 * oMdrho; + mfbba = m1 - m0 * vvy; + mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbab + mfbcb; + m1 = mfbcb - mfbab; + m0 = m2 + mfbbb; + mfbab = m0; + mfbbb = m1 - m0 * vvy; + mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbac + mfbcc; + m1 = mfbcc - mfbac; + m0 = m2 + mfbbc; + mfbac = m0; + m0 += c2o9 * oMdrho; + mfbbc = m1 - m0 * vvy; + mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcca; + m1 = mfcca - mfcaa; + m0 = m2 + mfcba; + mfcaa = m0; + m0 += c1o6 * oMdrho; + mfcba = m1 - m0 * vvy; + mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcab + mfccb; + m1 = mfccb - mfcab; + m0 = m2 + mfcbb; + mfcab = m0; + mfcbb = m1 - m0 * vvy; + mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcac + mfccc; + m1 = mfccc - mfcac; + m0 = m2 + mfcbc; + mfcac = m0; + m0 += c1o18 * oMdrho; + mfcbc = m1 - m0 * vvy; + mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m2 = mfaaa + mfcaa; + m1 = mfcaa - mfaaa; + m0 = m2 + mfbaa; + mfaaa = m0; + m0 += c1o1* oMdrho; + mfbaa = m1 - m0 * vvx; + mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfcba; + m1 = mfcba - mfaba; + m0 = m2 + mfbba; + mfaba = m0; + mfbba = m1 - m0 * vvx; + mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfcca; + m1 = mfcca - mfaca; + m0 = m2 + mfbca; + mfaca = m0; + m0 += c1o3 * oMdrho; + mfbca = m1 - m0 * vvx; + mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfcab; + m1 = mfcab - mfaab; + m0 = m2 + mfbab; + mfaab = m0; + mfbab = m1 - m0 * vvx; + mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabb + mfcbb; + m1 = mfcbb - mfabb; + m0 = m2 + mfbbb; + mfabb = m0; + mfbbb = m1 - m0 * vvx; + mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacb + mfccb; + m1 = mfccb - mfacb; + m0 = m2 + mfbcb; + mfacb = m0; + mfbcb = m1 - m0 * vvx; + mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfcac; + m1 = mfcac - mfaac; + m0 = m2 + mfbac; + mfaac = m0; + m0 += c1o3 * oMdrho; + mfbac = m1 - m0 * vvx; + mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabc + mfcbc; + m1 = mfcbc - mfabc; + m0 = m2 + mfbbc; + mfabc = m0; + mfbbc = m1 - m0 * vvx; + mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacc + mfccc; + m1 = mfccc - mfacc; + m0 = m2 + mfbcc; + mfacc = m0; + m0 += c1o9 * oMdrho; + mfbcc = m1 - m0 * vvx; + mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + // linear combinations - mxxyPyzz = mfcba + mfabc; - mxxyMyzz = mfcba - mfabc; + mxxyPyzz = mfcba + mfabc; + mxxyMyzz = mfcba - mfabc; - mxxzPyyz = mfcab + mfacb; - mxxzMyyz = mfcab - mfacb; + mxxzPyyz = mfcab + mfacb; + mxxzMyyz = mfcab - mfacb; - mxyyPxzz = mfbca + mfbac; - mxyyMxzz = mfbca - mfbac; + mxyyPxzz = mfbca + mfbac; + mxyyMxzz = mfbca - mfbac; - ////////////////////////////////////////////////////////////////////////// - //exclusive for this source node - real mfbbb_SWT = mfbbb; - real mxxyPyzz_SWT = mxxyPyzz; - real mxxyMyzz_SWT = mxxyMyzz; - real mxxzPyyz_SWT = mxxzPyyz; - real mxxzMyyz_SWT = mxxzMyyz; - real mxyyPxzz_SWT = mxyyPxzz; - real mxyyMxzz_SWT = mxyyMxzz; - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// + //exclusive for this source node + real mfbbb_SWT = mfbbb; + real mxxyPyzz_SWT = mxxyPyzz; + real mxxyMyzz_SWT = mxxyMyzz; + real mxxzPyyz_SWT = mxxzPyyz; + real mxxzMyyz_SWT = mxxzMyyz; + real mxyyPxzz_SWT = mxyyPxzz; + real mxyyMxzz_SWT = mxyyMxzz; + ////////////////////////////////////////////////////////////////////////// @@ -6454,8 +6454,8 @@ __global__ void scaleFC_RhoSq_3rdMom_comp_27(real* DC, drho_SET = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; vx1_SET = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_SET); - vx2_SET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SET); - vx3_SET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SET); + vx2_SET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SET); + vx3_SET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SET); kxyFromfcNEQ_SET = -c3o1*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_SET) - ((vx1_SET*vx2_SET))); kyzFromfcNEQ_SET = -c3o1*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_SET) - ((vx2_SET*vx3_SET))); @@ -6463,306 +6463,306 @@ __global__ void scaleFC_RhoSq_3rdMom_comp_27(real* DC, kxxMyyFromfcNEQ_SET = -c3o2*omegaS *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_SET) - ((vx1_SET*vx1_SET-vx2_SET*vx2_SET))); kxxMzzFromfcNEQ_SET = -c3o2*omegaS *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_SET) - ((vx1_SET*vx1_SET-vx3_SET*vx3_SET))); - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - mfcbb = f_E ; - mfabb = f_W ; - mfbcb = f_N ; - mfbab = f_S ; - mfbbc = f_T ; - mfbba = f_B ; - mfccb = f_NE ; - mfaab = f_SW ; - mfcab = f_SE ; - mfacb = f_NW ; - mfcbc = f_TE ; - mfaba = f_BW ; - mfcba = f_BE ; - mfabc = f_TW ; - mfbcc = f_TN ; - mfbaa = f_BS ; - mfbca = f_BN ; - mfbac = f_TS ; - mfbbb = f_ZERO; - mfccc = f_TNE ; - mfaac = f_TSW ; - mfcac = f_TSE ; - mfacc = f_TNW ; - mfcca = f_BNE ; - mfaaa = f_BSW ; - mfcaa = f_BSE ; - mfaca = f_BNW ; - //////////////////////////////////////////////////////////////////////////////////// - drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + - (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + - ((mfabb+mfcbb) + (mfbab+mfbcb)) + (mfbba+mfbbc)) + mfbbb; - - rho = c1o1+drho; - //////////////////////////////////////////////////////////////////////////////////// - vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + - (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + - (mfcbb-mfabb)) / rho; - vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + - (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + - (mfbcb-mfbab)) / rho; - vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + - (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + - (mfbbc-mfbba)) / rho; - //////////////////////////////////////////////////////////////////////////////////// - //fast - oMdrho = c1o1; // comp special - vx2=vvx*vvx; - vy2=vvy*vvy; - vz2=vvz*vvz; - //////////////////////////////////////////////////////////////////////////////////// - //Hin - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m2 = mfaaa + mfaac; - m1 = mfaac - mfaaa; - m0 = m2 + mfaab; - mfaaa = m0; - m0 += c1o36 * oMdrho; - mfaab = m1 - m0 * vvz; - mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfabc; - m1 = mfabc - mfaba; - m0 = m2 + mfabb; - mfaba = m0; - m0 += c1o9 * oMdrho; - mfabb = m1 - m0 * vvz; - mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfacc; - m1 = mfacc - mfaca; - m0 = m2 + mfacb; - mfaca = m0; - m0 += c1o36 * oMdrho; - mfacb = m1 - m0 * vvz; - mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbac; - m1 = mfbac - mfbaa; - m0 = m2 + mfbab; - mfbaa = m0; - m0 += c1o9 * oMdrho; - mfbab = m1 - m0 * vvz; - mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbba + mfbbc; - m1 = mfbbc - mfbba; - m0 = m2 + mfbbb; - mfbba = m0; - m0 += c4o9 * oMdrho; - mfbbb = m1 - m0 * vvz; - mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbca + mfbcc; - m1 = mfbcc - mfbca; - m0 = m2 + mfbcb; - mfbca = m0; - m0 += c1o9 * oMdrho; - mfbcb = m1 - m0 * vvz; - mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcac; - m1 = mfcac - mfcaa; - m0 = m2 + mfcab; - mfcaa = m0; - m0 += c1o36 * oMdrho; - mfcab = m1 - m0 * vvz; - mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcba + mfcbc; - m1 = mfcbc - mfcba; - m0 = m2 + mfcbb; - mfcba = m0; - m0 += c1o9 * oMdrho; - mfcbb = m1 - m0 * vvz; - mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcca + mfccc; - m1 = mfccc - mfcca; - m0 = m2 + mfccb; - mfcca = m0; - m0 += c1o36 * oMdrho; - mfccb = m1 - m0 * vvz; - mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m2 = mfaaa + mfaca; - m1 = mfaca - mfaaa; - m0 = m2 + mfaba; - mfaaa = m0; - m0 += c1o6 * oMdrho; - mfaba = m1 - m0 * vvy; - mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfacb; - m1 = mfacb - mfaab; - m0 = m2 + mfabb; - mfaab = m0; - mfabb = m1 - m0 * vvy; - mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfacc; - m1 = mfacc - mfaac; - m0 = m2 + mfabc; - mfaac = m0; - m0 += c1o18 * oMdrho; - mfabc = m1 - m0 * vvy; - mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbca; - m1 = mfbca - mfbaa; - m0 = m2 + mfbba; - mfbaa = m0; - m0 += c2o3 * oMdrho; - mfbba = m1 - m0 * vvy; - mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbab + mfbcb; - m1 = mfbcb - mfbab; - m0 = m2 + mfbbb; - mfbab = m0; - mfbbb = m1 - m0 * vvy; - mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbac + mfbcc; - m1 = mfbcc - mfbac; - m0 = m2 + mfbbc; - mfbac = m0; - m0 += c2o9 * oMdrho; - mfbbc = m1 - m0 * vvy; - mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcca; - m1 = mfcca - mfcaa; - m0 = m2 + mfcba; - mfcaa = m0; - m0 += c1o6 * oMdrho; - mfcba = m1 - m0 * vvy; - mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcab + mfccb; - m1 = mfccb - mfcab; - m0 = m2 + mfcbb; - mfcab = m0; - mfcbb = m1 - m0 * vvy; - mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcac + mfccc; - m1 = mfccc - mfcac; - m0 = m2 + mfcbc; - mfcac = m0; - m0 += c1o18 * oMdrho; - mfcbc = m1 - m0 * vvy; - mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m2 = mfaaa + mfcaa; - m1 = mfcaa - mfaaa; - m0 = m2 + mfbaa; - mfaaa = m0; - m0 += c1o1* oMdrho; - mfbaa = m1 - m0 * vvx; - mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfcba; - m1 = mfcba - mfaba; - m0 = m2 + mfbba; - mfaba = m0; - mfbba = m1 - m0 * vvx; - mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfcca; - m1 = mfcca - mfaca; - m0 = m2 + mfbca; - mfaca = m0; - m0 += c1o3 * oMdrho; - mfbca = m1 - m0 * vvx; - mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfcab; - m1 = mfcab - mfaab; - m0 = m2 + mfbab; - mfaab = m0; - mfbab = m1 - m0 * vvx; - mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabb + mfcbb; - m1 = mfcbb - mfabb; - m0 = m2 + mfbbb; - mfabb = m0; - mfbbb = m1 - m0 * vvx; - mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacb + mfccb; - m1 = mfccb - mfacb; - m0 = m2 + mfbcb; - mfacb = m0; - mfbcb = m1 - m0 * vvx; - mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfcac; - m1 = mfcac - mfaac; - m0 = m2 + mfbac; - mfaac = m0; - m0 += c1o3 * oMdrho; - mfbac = m1 - m0 * vvx; - mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabc + mfcbc; - m1 = mfcbc - mfabc; - m0 = m2 + mfbbc; - mfabc = m0; - mfbbc = m1 - m0 * vvx; - mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacc + mfccc; - m1 = mfccc - mfacc; - m0 = m2 + mfbcc; - mfacc = m0; - m0 += c1o9 * oMdrho; - mfbcc = m1 - m0 * vvx; - mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - // linear combinations + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + mfcbb = f_E ; + mfabb = f_W ; + mfbcb = f_N ; + mfbab = f_S ; + mfbbc = f_T ; + mfbba = f_B ; + mfccb = f_NE ; + mfaab = f_SW ; + mfcab = f_SE ; + mfacb = f_NW ; + mfcbc = f_TE ; + mfaba = f_BW ; + mfcba = f_BE ; + mfabc = f_TW ; + mfbcc = f_TN ; + mfbaa = f_BS ; + mfbca = f_BN ; + mfbac = f_TS ; + mfbbb = f_ZERO; + mfccc = f_TNE ; + mfaac = f_TSW ; + mfcac = f_TSE ; + mfacc = f_TNW ; + mfcca = f_BNE ; + mfaaa = f_BSW ; + mfcaa = f_BSE ; + mfaca = f_BNW ; + //////////////////////////////////////////////////////////////////////////////////// + drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + + (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + + ((mfabb+mfcbb) + (mfbab+mfbcb)) + (mfbba+mfbbc)) + mfbbb; + + rho = c1o1+drho; + //////////////////////////////////////////////////////////////////////////////////// + vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + + (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + + (mfcbb-mfabb)) / rho; + vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + + (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + + (mfbcb-mfbab)) / rho; + vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + + (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + + (mfbbc-mfbba)) / rho; + //////////////////////////////////////////////////////////////////////////////////// + //fast + oMdrho = c1o1; // comp special + vx2=vvx*vvx; + vy2=vvy*vvy; + vz2=vvz*vvz; + //////////////////////////////////////////////////////////////////////////////////// + //Hin + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m2 = mfaaa + mfaac; + m1 = mfaac - mfaaa; + m0 = m2 + mfaab; + mfaaa = m0; + m0 += c1o36 * oMdrho; + mfaab = m1 - m0 * vvz; + mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfabc; + m1 = mfabc - mfaba; + m0 = m2 + mfabb; + mfaba = m0; + m0 += c1o9 * oMdrho; + mfabb = m1 - m0 * vvz; + mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfacc; + m1 = mfacc - mfaca; + m0 = m2 + mfacb; + mfaca = m0; + m0 += c1o36 * oMdrho; + mfacb = m1 - m0 * vvz; + mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbac; + m1 = mfbac - mfbaa; + m0 = m2 + mfbab; + mfbaa = m0; + m0 += c1o9 * oMdrho; + mfbab = m1 - m0 * vvz; + mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbba + mfbbc; + m1 = mfbbc - mfbba; + m0 = m2 + mfbbb; + mfbba = m0; + m0 += c4o9 * oMdrho; + mfbbb = m1 - m0 * vvz; + mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbca + mfbcc; + m1 = mfbcc - mfbca; + m0 = m2 + mfbcb; + mfbca = m0; + m0 += c1o9 * oMdrho; + mfbcb = m1 - m0 * vvz; + mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcac; + m1 = mfcac - mfcaa; + m0 = m2 + mfcab; + mfcaa = m0; + m0 += c1o36 * oMdrho; + mfcab = m1 - m0 * vvz; + mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcba + mfcbc; + m1 = mfcbc - mfcba; + m0 = m2 + mfcbb; + mfcba = m0; + m0 += c1o9 * oMdrho; + mfcbb = m1 - m0 * vvz; + mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcca + mfccc; + m1 = mfccc - mfcca; + m0 = m2 + mfccb; + mfcca = m0; + m0 += c1o36 * oMdrho; + mfccb = m1 - m0 * vvz; + mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m2 = mfaaa + mfaca; + m1 = mfaca - mfaaa; + m0 = m2 + mfaba; + mfaaa = m0; + m0 += c1o6 * oMdrho; + mfaba = m1 - m0 * vvy; + mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfacb; + m1 = mfacb - mfaab; + m0 = m2 + mfabb; + mfaab = m0; + mfabb = m1 - m0 * vvy; + mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfacc; + m1 = mfacc - mfaac; + m0 = m2 + mfabc; + mfaac = m0; + m0 += c1o18 * oMdrho; + mfabc = m1 - m0 * vvy; + mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbca; + m1 = mfbca - mfbaa; + m0 = m2 + mfbba; + mfbaa = m0; + m0 += c2o3 * oMdrho; + mfbba = m1 - m0 * vvy; + mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbab + mfbcb; + m1 = mfbcb - mfbab; + m0 = m2 + mfbbb; + mfbab = m0; + mfbbb = m1 - m0 * vvy; + mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbac + mfbcc; + m1 = mfbcc - mfbac; + m0 = m2 + mfbbc; + mfbac = m0; + m0 += c2o9 * oMdrho; + mfbbc = m1 - m0 * vvy; + mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcca; + m1 = mfcca - mfcaa; + m0 = m2 + mfcba; + mfcaa = m0; + m0 += c1o6 * oMdrho; + mfcba = m1 - m0 * vvy; + mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcab + mfccb; + m1 = mfccb - mfcab; + m0 = m2 + mfcbb; + mfcab = m0; + mfcbb = m1 - m0 * vvy; + mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcac + mfccc; + m1 = mfccc - mfcac; + m0 = m2 + mfcbc; + mfcac = m0; + m0 += c1o18 * oMdrho; + mfcbc = m1 - m0 * vvy; + mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m2 = mfaaa + mfcaa; + m1 = mfcaa - mfaaa; + m0 = m2 + mfbaa; + mfaaa = m0; + m0 += c1o1* oMdrho; + mfbaa = m1 - m0 * vvx; + mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfcba; + m1 = mfcba - mfaba; + m0 = m2 + mfbba; + mfaba = m0; + mfbba = m1 - m0 * vvx; + mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfcca; + m1 = mfcca - mfaca; + m0 = m2 + mfbca; + mfaca = m0; + m0 += c1o3 * oMdrho; + mfbca = m1 - m0 * vvx; + mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfcab; + m1 = mfcab - mfaab; + m0 = m2 + mfbab; + mfaab = m0; + mfbab = m1 - m0 * vvx; + mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabb + mfcbb; + m1 = mfcbb - mfabb; + m0 = m2 + mfbbb; + mfabb = m0; + mfbbb = m1 - m0 * vvx; + mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacb + mfccb; + m1 = mfccb - mfacb; + m0 = m2 + mfbcb; + mfacb = m0; + mfbcb = m1 - m0 * vvx; + mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfcac; + m1 = mfcac - mfaac; + m0 = m2 + mfbac; + mfaac = m0; + m0 += c1o3 * oMdrho; + mfbac = m1 - m0 * vvx; + mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabc + mfcbc; + m1 = mfcbc - mfabc; + m0 = m2 + mfbbc; + mfabc = m0; + mfbbc = m1 - m0 * vvx; + mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacc + mfccc; + m1 = mfccc - mfacc; + m0 = m2 + mfbcc; + mfacc = m0; + m0 += c1o9 * oMdrho; + mfbcc = m1 - m0 * vvx; + mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + // linear combinations - mxxyPyzz = mfcba + mfabc; - mxxyMyzz = mfcba - mfabc; + mxxyPyzz = mfcba + mfabc; + mxxyMyzz = mfcba - mfabc; - mxxzPyyz = mfcab + mfacb; - mxxzMyyz = mfcab - mfacb; + mxxzPyyz = mfcab + mfacb; + mxxzMyyz = mfcab - mfacb; - mxyyPxzz = mfbca + mfbac; - mxyyMxzz = mfbca - mfbac; + mxyyPxzz = mfbca + mfbac; + mxyyMxzz = mfbca - mfbac; - ////////////////////////////////////////////////////////////////////////// - //exclusive for this source node - real mfbbb_SET = mfbbb; - real mxxyPyzz_SET = mxxyPyzz; - real mxxyMyzz_SET = mxxyMyzz; - real mxxzPyyz_SET = mxxzPyyz; - real mxxzMyyz_SET = mxxzMyyz; - real mxyyPxzz_SET = mxyyPxzz; - real mxyyMxzz_SET = mxyyMxzz; - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// + //exclusive for this source node + real mfbbb_SET = mfbbb; + real mxxyPyzz_SET = mxxyPyzz; + real mxxyMyzz_SET = mxxyMyzz; + real mxxzPyyz_SET = mxxzPyyz; + real mxxzMyyz_SET = mxxzMyyz; + real mxyyPxzz_SET = mxyyPxzz; + real mxyyMxzz_SET = mxyyMxzz; + ////////////////////////////////////////////////////////////////////////// @@ -6860,8 +6860,8 @@ __global__ void scaleFC_RhoSq_3rdMom_comp_27(real* DC, drho_SEB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; vx1_SEB = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_SEB); - vx2_SEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SEB); - vx3_SEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SEB); + vx2_SEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SEB); + vx3_SEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SEB); kxyFromfcNEQ_SEB = -c3o1*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_SEB) - ((vx1_SEB*vx2_SEB))); kyzFromfcNEQ_SEB = -c3o1*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_SEB) - ((vx2_SEB*vx3_SEB))); @@ -6869,306 +6869,306 @@ __global__ void scaleFC_RhoSq_3rdMom_comp_27(real* DC, kxxMyyFromfcNEQ_SEB = -c3o2*omegaS *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_SEB) - ((vx1_SEB*vx1_SEB-vx2_SEB*vx2_SEB))); kxxMzzFromfcNEQ_SEB = -c3o2*omegaS *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_SEB) - ((vx1_SEB*vx1_SEB-vx3_SEB*vx3_SEB))); - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - mfcbb = f_E ; - mfabb = f_W ; - mfbcb = f_N ; - mfbab = f_S ; - mfbbc = f_T ; - mfbba = f_B ; - mfccb = f_NE ; - mfaab = f_SW ; - mfcab = f_SE ; - mfacb = f_NW ; - mfcbc = f_TE ; - mfaba = f_BW ; - mfcba = f_BE ; - mfabc = f_TW ; - mfbcc = f_TN ; - mfbaa = f_BS ; - mfbca = f_BN ; - mfbac = f_TS ; - mfbbb = f_ZERO; - mfccc = f_TNE ; - mfaac = f_TSW ; - mfcac = f_TSE ; - mfacc = f_TNW ; - mfcca = f_BNE ; - mfaaa = f_BSW ; - mfcaa = f_BSE ; - mfaca = f_BNW ; - //////////////////////////////////////////////////////////////////////////////////// - drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + - (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + - ((mfabb+mfcbb) + (mfbab+mfbcb)) + (mfbba+mfbbc)) + mfbbb; - - rho = c1o1+drho; - //////////////////////////////////////////////////////////////////////////////////// - vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + - (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + - (mfcbb-mfabb)) / rho; - vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + - (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + - (mfbcb-mfbab)) / rho; - vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + - (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + - (mfbbc-mfbba)) / rho; - //////////////////////////////////////////////////////////////////////////////////// - //fast - oMdrho = c1o1; // comp special - vx2=vvx*vvx; - vy2=vvy*vvy; - vz2=vvz*vvz; - //////////////////////////////////////////////////////////////////////////////////// - //Hin - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m2 = mfaaa + mfaac; - m1 = mfaac - mfaaa; - m0 = m2 + mfaab; - mfaaa = m0; - m0 += c1o36 * oMdrho; - mfaab = m1 - m0 * vvz; - mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfabc; - m1 = mfabc - mfaba; - m0 = m2 + mfabb; - mfaba = m0; - m0 += c1o9 * oMdrho; - mfabb = m1 - m0 * vvz; - mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfacc; - m1 = mfacc - mfaca; - m0 = m2 + mfacb; - mfaca = m0; - m0 += c1o36 * oMdrho; - mfacb = m1 - m0 * vvz; - mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbac; - m1 = mfbac - mfbaa; - m0 = m2 + mfbab; - mfbaa = m0; - m0 += c1o9 * oMdrho; - mfbab = m1 - m0 * vvz; - mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbba + mfbbc; - m1 = mfbbc - mfbba; - m0 = m2 + mfbbb; - mfbba = m0; - m0 += c4o9 * oMdrho; - mfbbb = m1 - m0 * vvz; - mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbca + mfbcc; - m1 = mfbcc - mfbca; - m0 = m2 + mfbcb; - mfbca = m0; - m0 += c1o9 * oMdrho; - mfbcb = m1 - m0 * vvz; - mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcac; - m1 = mfcac - mfcaa; - m0 = m2 + mfcab; - mfcaa = m0; - m0 += c1o36 * oMdrho; - mfcab = m1 - m0 * vvz; - mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcba + mfcbc; - m1 = mfcbc - mfcba; - m0 = m2 + mfcbb; - mfcba = m0; - m0 += c1o9 * oMdrho; - mfcbb = m1 - m0 * vvz; - mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcca + mfccc; - m1 = mfccc - mfcca; - m0 = m2 + mfccb; - mfcca = m0; - m0 += c1o36 * oMdrho; - mfccb = m1 - m0 * vvz; - mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m2 = mfaaa + mfaca; - m1 = mfaca - mfaaa; - m0 = m2 + mfaba; - mfaaa = m0; - m0 += c1o6 * oMdrho; - mfaba = m1 - m0 * vvy; - mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfacb; - m1 = mfacb - mfaab; - m0 = m2 + mfabb; - mfaab = m0; - mfabb = m1 - m0 * vvy; - mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfacc; - m1 = mfacc - mfaac; - m0 = m2 + mfabc; - mfaac = m0; - m0 += c1o18 * oMdrho; - mfabc = m1 - m0 * vvy; - mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbca; - m1 = mfbca - mfbaa; - m0 = m2 + mfbba; - mfbaa = m0; - m0 += c2o3 * oMdrho; - mfbba = m1 - m0 * vvy; - mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbab + mfbcb; - m1 = mfbcb - mfbab; - m0 = m2 + mfbbb; - mfbab = m0; - mfbbb = m1 - m0 * vvy; - mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbac + mfbcc; - m1 = mfbcc - mfbac; - m0 = m2 + mfbbc; - mfbac = m0; - m0 += c2o9 * oMdrho; - mfbbc = m1 - m0 * vvy; - mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcca; - m1 = mfcca - mfcaa; - m0 = m2 + mfcba; - mfcaa = m0; - m0 += c1o6 * oMdrho; - mfcba = m1 - m0 * vvy; - mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcab + mfccb; - m1 = mfccb - mfcab; - m0 = m2 + mfcbb; - mfcab = m0; - mfcbb = m1 - m0 * vvy; - mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcac + mfccc; - m1 = mfccc - mfcac; - m0 = m2 + mfcbc; - mfcac = m0; - m0 += c1o18 * oMdrho; - mfcbc = m1 - m0 * vvy; - mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m2 = mfaaa + mfcaa; - m1 = mfcaa - mfaaa; - m0 = m2 + mfbaa; - mfaaa = m0; - m0 += c1o1* oMdrho; - mfbaa = m1 - m0 * vvx; - mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfcba; - m1 = mfcba - mfaba; - m0 = m2 + mfbba; - mfaba = m0; - mfbba = m1 - m0 * vvx; - mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfcca; - m1 = mfcca - mfaca; - m0 = m2 + mfbca; - mfaca = m0; - m0 += c1o3 * oMdrho; - mfbca = m1 - m0 * vvx; - mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfcab; - m1 = mfcab - mfaab; - m0 = m2 + mfbab; - mfaab = m0; - mfbab = m1 - m0 * vvx; - mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabb + mfcbb; - m1 = mfcbb - mfabb; - m0 = m2 + mfbbb; - mfabb = m0; - mfbbb = m1 - m0 * vvx; - mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacb + mfccb; - m1 = mfccb - mfacb; - m0 = m2 + mfbcb; - mfacb = m0; - mfbcb = m1 - m0 * vvx; - mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfcac; - m1 = mfcac - mfaac; - m0 = m2 + mfbac; - mfaac = m0; - m0 += c1o3 * oMdrho; - mfbac = m1 - m0 * vvx; - mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabc + mfcbc; - m1 = mfcbc - mfabc; - m0 = m2 + mfbbc; - mfabc = m0; - mfbbc = m1 - m0 * vvx; - mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacc + mfccc; - m1 = mfccc - mfacc; - m0 = m2 + mfbcc; - mfacc = m0; - m0 += c1o9 * oMdrho; - mfbcc = m1 - m0 * vvx; - mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - // linear combinations + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + mfcbb = f_E ; + mfabb = f_W ; + mfbcb = f_N ; + mfbab = f_S ; + mfbbc = f_T ; + mfbba = f_B ; + mfccb = f_NE ; + mfaab = f_SW ; + mfcab = f_SE ; + mfacb = f_NW ; + mfcbc = f_TE ; + mfaba = f_BW ; + mfcba = f_BE ; + mfabc = f_TW ; + mfbcc = f_TN ; + mfbaa = f_BS ; + mfbca = f_BN ; + mfbac = f_TS ; + mfbbb = f_ZERO; + mfccc = f_TNE ; + mfaac = f_TSW ; + mfcac = f_TSE ; + mfacc = f_TNW ; + mfcca = f_BNE ; + mfaaa = f_BSW ; + mfcaa = f_BSE ; + mfaca = f_BNW ; + //////////////////////////////////////////////////////////////////////////////////// + drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + + (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + + ((mfabb+mfcbb) + (mfbab+mfbcb)) + (mfbba+mfbbc)) + mfbbb; + + rho = c1o1+drho; + //////////////////////////////////////////////////////////////////////////////////// + vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + + (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + + (mfcbb-mfabb)) / rho; + vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + + (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + + (mfbcb-mfbab)) / rho; + vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + + (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + + (mfbbc-mfbba)) / rho; + //////////////////////////////////////////////////////////////////////////////////// + //fast + oMdrho = c1o1; // comp special + vx2=vvx*vvx; + vy2=vvy*vvy; + vz2=vvz*vvz; + //////////////////////////////////////////////////////////////////////////////////// + //Hin + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m2 = mfaaa + mfaac; + m1 = mfaac - mfaaa; + m0 = m2 + mfaab; + mfaaa = m0; + m0 += c1o36 * oMdrho; + mfaab = m1 - m0 * vvz; + mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfabc; + m1 = mfabc - mfaba; + m0 = m2 + mfabb; + mfaba = m0; + m0 += c1o9 * oMdrho; + mfabb = m1 - m0 * vvz; + mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfacc; + m1 = mfacc - mfaca; + m0 = m2 + mfacb; + mfaca = m0; + m0 += c1o36 * oMdrho; + mfacb = m1 - m0 * vvz; + mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbac; + m1 = mfbac - mfbaa; + m0 = m2 + mfbab; + mfbaa = m0; + m0 += c1o9 * oMdrho; + mfbab = m1 - m0 * vvz; + mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbba + mfbbc; + m1 = mfbbc - mfbba; + m0 = m2 + mfbbb; + mfbba = m0; + m0 += c4o9 * oMdrho; + mfbbb = m1 - m0 * vvz; + mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbca + mfbcc; + m1 = mfbcc - mfbca; + m0 = m2 + mfbcb; + mfbca = m0; + m0 += c1o9 * oMdrho; + mfbcb = m1 - m0 * vvz; + mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcac; + m1 = mfcac - mfcaa; + m0 = m2 + mfcab; + mfcaa = m0; + m0 += c1o36 * oMdrho; + mfcab = m1 - m0 * vvz; + mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcba + mfcbc; + m1 = mfcbc - mfcba; + m0 = m2 + mfcbb; + mfcba = m0; + m0 += c1o9 * oMdrho; + mfcbb = m1 - m0 * vvz; + mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcca + mfccc; + m1 = mfccc - mfcca; + m0 = m2 + mfccb; + mfcca = m0; + m0 += c1o36 * oMdrho; + mfccb = m1 - m0 * vvz; + mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m2 = mfaaa + mfaca; + m1 = mfaca - mfaaa; + m0 = m2 + mfaba; + mfaaa = m0; + m0 += c1o6 * oMdrho; + mfaba = m1 - m0 * vvy; + mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfacb; + m1 = mfacb - mfaab; + m0 = m2 + mfabb; + mfaab = m0; + mfabb = m1 - m0 * vvy; + mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfacc; + m1 = mfacc - mfaac; + m0 = m2 + mfabc; + mfaac = m0; + m0 += c1o18 * oMdrho; + mfabc = m1 - m0 * vvy; + mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbca; + m1 = mfbca - mfbaa; + m0 = m2 + mfbba; + mfbaa = m0; + m0 += c2o3 * oMdrho; + mfbba = m1 - m0 * vvy; + mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbab + mfbcb; + m1 = mfbcb - mfbab; + m0 = m2 + mfbbb; + mfbab = m0; + mfbbb = m1 - m0 * vvy; + mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbac + mfbcc; + m1 = mfbcc - mfbac; + m0 = m2 + mfbbc; + mfbac = m0; + m0 += c2o9 * oMdrho; + mfbbc = m1 - m0 * vvy; + mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcca; + m1 = mfcca - mfcaa; + m0 = m2 + mfcba; + mfcaa = m0; + m0 += c1o6 * oMdrho; + mfcba = m1 - m0 * vvy; + mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcab + mfccb; + m1 = mfccb - mfcab; + m0 = m2 + mfcbb; + mfcab = m0; + mfcbb = m1 - m0 * vvy; + mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcac + mfccc; + m1 = mfccc - mfcac; + m0 = m2 + mfcbc; + mfcac = m0; + m0 += c1o18 * oMdrho; + mfcbc = m1 - m0 * vvy; + mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m2 = mfaaa + mfcaa; + m1 = mfcaa - mfaaa; + m0 = m2 + mfbaa; + mfaaa = m0; + m0 += c1o1* oMdrho; + mfbaa = m1 - m0 * vvx; + mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfcba; + m1 = mfcba - mfaba; + m0 = m2 + mfbba; + mfaba = m0; + mfbba = m1 - m0 * vvx; + mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfcca; + m1 = mfcca - mfaca; + m0 = m2 + mfbca; + mfaca = m0; + m0 += c1o3 * oMdrho; + mfbca = m1 - m0 * vvx; + mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfcab; + m1 = mfcab - mfaab; + m0 = m2 + mfbab; + mfaab = m0; + mfbab = m1 - m0 * vvx; + mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabb + mfcbb; + m1 = mfcbb - mfabb; + m0 = m2 + mfbbb; + mfabb = m0; + mfbbb = m1 - m0 * vvx; + mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacb + mfccb; + m1 = mfccb - mfacb; + m0 = m2 + mfbcb; + mfacb = m0; + mfbcb = m1 - m0 * vvx; + mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfcac; + m1 = mfcac - mfaac; + m0 = m2 + mfbac; + mfaac = m0; + m0 += c1o3 * oMdrho; + mfbac = m1 - m0 * vvx; + mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabc + mfcbc; + m1 = mfcbc - mfabc; + m0 = m2 + mfbbc; + mfabc = m0; + mfbbc = m1 - m0 * vvx; + mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacc + mfccc; + m1 = mfccc - mfacc; + m0 = m2 + mfbcc; + mfacc = m0; + m0 += c1o9 * oMdrho; + mfbcc = m1 - m0 * vvx; + mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + // linear combinations - mxxyPyzz = mfcba + mfabc; - mxxyMyzz = mfcba - mfabc; + mxxyPyzz = mfcba + mfabc; + mxxyMyzz = mfcba - mfabc; - mxxzPyyz = mfcab + mfacb; - mxxzMyyz = mfcab - mfacb; + mxxzPyyz = mfcab + mfacb; + mxxzMyyz = mfcab - mfacb; - mxyyPxzz = mfbca + mfbac; - mxyyMxzz = mfbca - mfbac; + mxyyPxzz = mfbca + mfbac; + mxyyMxzz = mfbca - mfbac; - ////////////////////////////////////////////////////////////////////////// - //exclusive for this source node - real mfbbb_SEB = mfbbb; - real mxxyPyzz_SEB = mxxyPyzz; - real mxxyMyzz_SEB = mxxyMyzz; - real mxxzPyyz_SEB = mxxzPyyz; - real mxxzMyyz_SEB = mxxzMyyz; - real mxyyPxzz_SEB = mxyyPxzz; - real mxyyMxzz_SEB = mxyyMxzz; - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// + //exclusive for this source node + real mfbbb_SEB = mfbbb; + real mxxyPyzz_SEB = mxxyPyzz; + real mxxyMyzz_SEB = mxxyMyzz; + real mxxzPyyz_SEB = mxxzPyyz; + real mxxzMyyz_SEB = mxxzMyyz; + real mxyyPxzz_SEB = mxyyPxzz; + real mxyyMxzz_SEB = mxyyMxzz; + ////////////////////////////////////////////////////////////////////////// @@ -7276,8 +7276,8 @@ __global__ void scaleFC_RhoSq_3rdMom_comp_27(real* DC, drho_NWB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; vx1_NWB = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_NWB); - vx2_NWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NWB); - vx3_NWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NWB); + vx2_NWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NWB); + vx3_NWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NWB); kxyFromfcNEQ_NWB = -c3o1*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_NWB) - ((vx1_NWB*vx2_NWB))); kyzFromfcNEQ_NWB = -c3o1*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_NWB) - ((vx2_NWB*vx3_NWB))); @@ -7285,306 +7285,306 @@ __global__ void scaleFC_RhoSq_3rdMom_comp_27(real* DC, kxxMyyFromfcNEQ_NWB = -c3o2*omegaS *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_NWB) - ((vx1_NWB*vx1_NWB-vx2_NWB*vx2_NWB))); kxxMzzFromfcNEQ_NWB = -c3o2*omegaS *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_NWB) - ((vx1_NWB*vx1_NWB-vx3_NWB*vx3_NWB))); - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - mfcbb = f_E ; - mfabb = f_W ; - mfbcb = f_N ; - mfbab = f_S ; - mfbbc = f_T ; - mfbba = f_B ; - mfccb = f_NE ; - mfaab = f_SW ; - mfcab = f_SE ; - mfacb = f_NW ; - mfcbc = f_TE ; - mfaba = f_BW ; - mfcba = f_BE ; - mfabc = f_TW ; - mfbcc = f_TN ; - mfbaa = f_BS ; - mfbca = f_BN ; - mfbac = f_TS ; - mfbbb = f_ZERO; - mfccc = f_TNE ; - mfaac = f_TSW ; - mfcac = f_TSE ; - mfacc = f_TNW ; - mfcca = f_BNE ; - mfaaa = f_BSW ; - mfcaa = f_BSE ; - mfaca = f_BNW ; - //////////////////////////////////////////////////////////////////////////////////// - drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + - (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + - ((mfabb+mfcbb) + (mfbab+mfbcb)) + (mfbba+mfbbc)) + mfbbb; - - rho = c1o1+drho; - //////////////////////////////////////////////////////////////////////////////////// - vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + - (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + - (mfcbb-mfabb)) / rho; - vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + - (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + - (mfbcb-mfbab)) / rho; - vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + - (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + - (mfbbc-mfbba)) / rho; - //////////////////////////////////////////////////////////////////////////////////// - //fast - oMdrho = c1o1; // comp special - vx2=vvx*vvx; - vy2=vvy*vvy; - vz2=vvz*vvz; - //////////////////////////////////////////////////////////////////////////////////// - //Hin - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m2 = mfaaa + mfaac; - m1 = mfaac - mfaaa; - m0 = m2 + mfaab; - mfaaa = m0; - m0 += c1o36 * oMdrho; - mfaab = m1 - m0 * vvz; - mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfabc; - m1 = mfabc - mfaba; - m0 = m2 + mfabb; - mfaba = m0; - m0 += c1o9 * oMdrho; - mfabb = m1 - m0 * vvz; - mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfacc; - m1 = mfacc - mfaca; - m0 = m2 + mfacb; - mfaca = m0; - m0 += c1o36 * oMdrho; - mfacb = m1 - m0 * vvz; - mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbac; - m1 = mfbac - mfbaa; - m0 = m2 + mfbab; - mfbaa = m0; - m0 += c1o9 * oMdrho; - mfbab = m1 - m0 * vvz; - mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbba + mfbbc; - m1 = mfbbc - mfbba; - m0 = m2 + mfbbb; - mfbba = m0; - m0 += c4o9 * oMdrho; - mfbbb = m1 - m0 * vvz; - mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbca + mfbcc; - m1 = mfbcc - mfbca; - m0 = m2 + mfbcb; - mfbca = m0; - m0 += c1o9 * oMdrho; - mfbcb = m1 - m0 * vvz; - mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcac; - m1 = mfcac - mfcaa; - m0 = m2 + mfcab; - mfcaa = m0; - m0 += c1o36 * oMdrho; - mfcab = m1 - m0 * vvz; - mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcba + mfcbc; - m1 = mfcbc - mfcba; - m0 = m2 + mfcbb; - mfcba = m0; - m0 += c1o9 * oMdrho; - mfcbb = m1 - m0 * vvz; - mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcca + mfccc; - m1 = mfccc - mfcca; - m0 = m2 + mfccb; - mfcca = m0; - m0 += c1o36 * oMdrho; - mfccb = m1 - m0 * vvz; - mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m2 = mfaaa + mfaca; - m1 = mfaca - mfaaa; - m0 = m2 + mfaba; - mfaaa = m0; - m0 += c1o6 * oMdrho; - mfaba = m1 - m0 * vvy; - mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfacb; - m1 = mfacb - mfaab; - m0 = m2 + mfabb; - mfaab = m0; - mfabb = m1 - m0 * vvy; - mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfacc; - m1 = mfacc - mfaac; - m0 = m2 + mfabc; - mfaac = m0; - m0 += c1o18 * oMdrho; - mfabc = m1 - m0 * vvy; - mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbca; - m1 = mfbca - mfbaa; - m0 = m2 + mfbba; - mfbaa = m0; - m0 += c2o3 * oMdrho; - mfbba = m1 - m0 * vvy; - mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbab + mfbcb; - m1 = mfbcb - mfbab; - m0 = m2 + mfbbb; - mfbab = m0; - mfbbb = m1 - m0 * vvy; - mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbac + mfbcc; - m1 = mfbcc - mfbac; - m0 = m2 + mfbbc; - mfbac = m0; - m0 += c2o9 * oMdrho; - mfbbc = m1 - m0 * vvy; - mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcca; - m1 = mfcca - mfcaa; - m0 = m2 + mfcba; - mfcaa = m0; - m0 += c1o6 * oMdrho; - mfcba = m1 - m0 * vvy; - mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcab + mfccb; - m1 = mfccb - mfcab; - m0 = m2 + mfcbb; - mfcab = m0; - mfcbb = m1 - m0 * vvy; - mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcac + mfccc; - m1 = mfccc - mfcac; - m0 = m2 + mfcbc; - mfcac = m0; - m0 += c1o18 * oMdrho; - mfcbc = m1 - m0 * vvy; - mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m2 = mfaaa + mfcaa; - m1 = mfcaa - mfaaa; - m0 = m2 + mfbaa; - mfaaa = m0; - m0 += c1o1* oMdrho; - mfbaa = m1 - m0 * vvx; - mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfcba; - m1 = mfcba - mfaba; - m0 = m2 + mfbba; - mfaba = m0; - mfbba = m1 - m0 * vvx; - mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfcca; - m1 = mfcca - mfaca; - m0 = m2 + mfbca; - mfaca = m0; - m0 += c1o3 * oMdrho; - mfbca = m1 - m0 * vvx; - mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfcab; - m1 = mfcab - mfaab; - m0 = m2 + mfbab; - mfaab = m0; - mfbab = m1 - m0 * vvx; - mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabb + mfcbb; - m1 = mfcbb - mfabb; - m0 = m2 + mfbbb; - mfabb = m0; - mfbbb = m1 - m0 * vvx; - mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacb + mfccb; - m1 = mfccb - mfacb; - m0 = m2 + mfbcb; - mfacb = m0; - mfbcb = m1 - m0 * vvx; - mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfcac; - m1 = mfcac - mfaac; - m0 = m2 + mfbac; - mfaac = m0; - m0 += c1o3 * oMdrho; - mfbac = m1 - m0 * vvx; - mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabc + mfcbc; - m1 = mfcbc - mfabc; - m0 = m2 + mfbbc; - mfabc = m0; - mfbbc = m1 - m0 * vvx; - mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacc + mfccc; - m1 = mfccc - mfacc; - m0 = m2 + mfbcc; - mfacc = m0; - m0 += c1o9 * oMdrho; - mfbcc = m1 - m0 * vvx; - mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - // linear combinations + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + mfcbb = f_E ; + mfabb = f_W ; + mfbcb = f_N ; + mfbab = f_S ; + mfbbc = f_T ; + mfbba = f_B ; + mfccb = f_NE ; + mfaab = f_SW ; + mfcab = f_SE ; + mfacb = f_NW ; + mfcbc = f_TE ; + mfaba = f_BW ; + mfcba = f_BE ; + mfabc = f_TW ; + mfbcc = f_TN ; + mfbaa = f_BS ; + mfbca = f_BN ; + mfbac = f_TS ; + mfbbb = f_ZERO; + mfccc = f_TNE ; + mfaac = f_TSW ; + mfcac = f_TSE ; + mfacc = f_TNW ; + mfcca = f_BNE ; + mfaaa = f_BSW ; + mfcaa = f_BSE ; + mfaca = f_BNW ; + //////////////////////////////////////////////////////////////////////////////////// + drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + + (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + + ((mfabb+mfcbb) + (mfbab+mfbcb)) + (mfbba+mfbbc)) + mfbbb; + + rho = c1o1+drho; + //////////////////////////////////////////////////////////////////////////////////// + vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + + (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + + (mfcbb-mfabb)) / rho; + vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + + (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + + (mfbcb-mfbab)) / rho; + vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + + (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + + (mfbbc-mfbba)) / rho; + //////////////////////////////////////////////////////////////////////////////////// + //fast + oMdrho = c1o1; // comp special + vx2=vvx*vvx; + vy2=vvy*vvy; + vz2=vvz*vvz; + //////////////////////////////////////////////////////////////////////////////////// + //Hin + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m2 = mfaaa + mfaac; + m1 = mfaac - mfaaa; + m0 = m2 + mfaab; + mfaaa = m0; + m0 += c1o36 * oMdrho; + mfaab = m1 - m0 * vvz; + mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfabc; + m1 = mfabc - mfaba; + m0 = m2 + mfabb; + mfaba = m0; + m0 += c1o9 * oMdrho; + mfabb = m1 - m0 * vvz; + mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfacc; + m1 = mfacc - mfaca; + m0 = m2 + mfacb; + mfaca = m0; + m0 += c1o36 * oMdrho; + mfacb = m1 - m0 * vvz; + mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbac; + m1 = mfbac - mfbaa; + m0 = m2 + mfbab; + mfbaa = m0; + m0 += c1o9 * oMdrho; + mfbab = m1 - m0 * vvz; + mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbba + mfbbc; + m1 = mfbbc - mfbba; + m0 = m2 + mfbbb; + mfbba = m0; + m0 += c4o9 * oMdrho; + mfbbb = m1 - m0 * vvz; + mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbca + mfbcc; + m1 = mfbcc - mfbca; + m0 = m2 + mfbcb; + mfbca = m0; + m0 += c1o9 * oMdrho; + mfbcb = m1 - m0 * vvz; + mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcac; + m1 = mfcac - mfcaa; + m0 = m2 + mfcab; + mfcaa = m0; + m0 += c1o36 * oMdrho; + mfcab = m1 - m0 * vvz; + mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcba + mfcbc; + m1 = mfcbc - mfcba; + m0 = m2 + mfcbb; + mfcba = m0; + m0 += c1o9 * oMdrho; + mfcbb = m1 - m0 * vvz; + mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcca + mfccc; + m1 = mfccc - mfcca; + m0 = m2 + mfccb; + mfcca = m0; + m0 += c1o36 * oMdrho; + mfccb = m1 - m0 * vvz; + mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m2 = mfaaa + mfaca; + m1 = mfaca - mfaaa; + m0 = m2 + mfaba; + mfaaa = m0; + m0 += c1o6 * oMdrho; + mfaba = m1 - m0 * vvy; + mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfacb; + m1 = mfacb - mfaab; + m0 = m2 + mfabb; + mfaab = m0; + mfabb = m1 - m0 * vvy; + mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfacc; + m1 = mfacc - mfaac; + m0 = m2 + mfabc; + mfaac = m0; + m0 += c1o18 * oMdrho; + mfabc = m1 - m0 * vvy; + mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbca; + m1 = mfbca - mfbaa; + m0 = m2 + mfbba; + mfbaa = m0; + m0 += c2o3 * oMdrho; + mfbba = m1 - m0 * vvy; + mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbab + mfbcb; + m1 = mfbcb - mfbab; + m0 = m2 + mfbbb; + mfbab = m0; + mfbbb = m1 - m0 * vvy; + mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbac + mfbcc; + m1 = mfbcc - mfbac; + m0 = m2 + mfbbc; + mfbac = m0; + m0 += c2o9 * oMdrho; + mfbbc = m1 - m0 * vvy; + mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcca; + m1 = mfcca - mfcaa; + m0 = m2 + mfcba; + mfcaa = m0; + m0 += c1o6 * oMdrho; + mfcba = m1 - m0 * vvy; + mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcab + mfccb; + m1 = mfccb - mfcab; + m0 = m2 + mfcbb; + mfcab = m0; + mfcbb = m1 - m0 * vvy; + mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcac + mfccc; + m1 = mfccc - mfcac; + m0 = m2 + mfcbc; + mfcac = m0; + m0 += c1o18 * oMdrho; + mfcbc = m1 - m0 * vvy; + mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m2 = mfaaa + mfcaa; + m1 = mfcaa - mfaaa; + m0 = m2 + mfbaa; + mfaaa = m0; + m0 += c1o1* oMdrho; + mfbaa = m1 - m0 * vvx; + mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfcba; + m1 = mfcba - mfaba; + m0 = m2 + mfbba; + mfaba = m0; + mfbba = m1 - m0 * vvx; + mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfcca; + m1 = mfcca - mfaca; + m0 = m2 + mfbca; + mfaca = m0; + m0 += c1o3 * oMdrho; + mfbca = m1 - m0 * vvx; + mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfcab; + m1 = mfcab - mfaab; + m0 = m2 + mfbab; + mfaab = m0; + mfbab = m1 - m0 * vvx; + mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabb + mfcbb; + m1 = mfcbb - mfabb; + m0 = m2 + mfbbb; + mfabb = m0; + mfbbb = m1 - m0 * vvx; + mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacb + mfccb; + m1 = mfccb - mfacb; + m0 = m2 + mfbcb; + mfacb = m0; + mfbcb = m1 - m0 * vvx; + mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfcac; + m1 = mfcac - mfaac; + m0 = m2 + mfbac; + mfaac = m0; + m0 += c1o3 * oMdrho; + mfbac = m1 - m0 * vvx; + mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabc + mfcbc; + m1 = mfcbc - mfabc; + m0 = m2 + mfbbc; + mfabc = m0; + mfbbc = m1 - m0 * vvx; + mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacc + mfccc; + m1 = mfccc - mfacc; + m0 = m2 + mfbcc; + mfacc = m0; + m0 += c1o9 * oMdrho; + mfbcc = m1 - m0 * vvx; + mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + // linear combinations - mxxyPyzz = mfcba + mfabc; - mxxyMyzz = mfcba - mfabc; + mxxyPyzz = mfcba + mfabc; + mxxyMyzz = mfcba - mfabc; - mxxzPyyz = mfcab + mfacb; - mxxzMyyz = mfcab - mfacb; + mxxzPyyz = mfcab + mfacb; + mxxzMyyz = mfcab - mfacb; - mxyyPxzz = mfbca + mfbac; - mxyyMxzz = mfbca - mfbac; + mxyyPxzz = mfbca + mfbac; + mxyyMxzz = mfbca - mfbac; - ////////////////////////////////////////////////////////////////////////// - //exclusive for this source node - real mfbbb_NWB = mfbbb; - real mxxyPyzz_NWB = mxxyPyzz; - real mxxyMyzz_NWB = mxxyMyzz; - real mxxzPyyz_NWB = mxxzPyyz; - real mxxzMyyz_NWB = mxxzMyyz; - real mxyyPxzz_NWB = mxyyPxzz; - real mxyyMxzz_NWB = mxyyMxzz; - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// + //exclusive for this source node + real mfbbb_NWB = mfbbb; + real mxxyPyzz_NWB = mxxyPyzz; + real mxxyMyzz_NWB = mxxyMyzz; + real mxxzPyyz_NWB = mxxzPyyz; + real mxxzMyyz_NWB = mxxzMyyz; + real mxyyPxzz_NWB = mxyyPxzz; + real mxyyMxzz_NWB = mxyyMxzz; + ////////////////////////////////////////////////////////////////////////// @@ -7682,8 +7682,8 @@ __global__ void scaleFC_RhoSq_3rdMom_comp_27(real* DC, drho_NWT = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; vx1_NWT = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_NWT); - vx2_NWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NWT); - vx3_NWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NWT); + vx2_NWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NWT); + vx3_NWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NWT); kxyFromfcNEQ_NWT = -c3o1*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_NWT) - ((vx1_NWT*vx2_NWT))); kyzFromfcNEQ_NWT = -c3o1*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_NWT) - ((vx2_NWT*vx3_NWT))); @@ -7691,306 +7691,306 @@ __global__ void scaleFC_RhoSq_3rdMom_comp_27(real* DC, kxxMyyFromfcNEQ_NWT = -c3o2*omegaS *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_NWT) - ((vx1_NWT*vx1_NWT-vx2_NWT*vx2_NWT))); kxxMzzFromfcNEQ_NWT = -c3o2*omegaS *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_NWT) - ((vx1_NWT*vx1_NWT-vx3_NWT*vx3_NWT))); - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - mfcbb = f_E ; - mfabb = f_W ; - mfbcb = f_N ; - mfbab = f_S ; - mfbbc = f_T ; - mfbba = f_B ; - mfccb = f_NE ; - mfaab = f_SW ; - mfcab = f_SE ; - mfacb = f_NW ; - mfcbc = f_TE ; - mfaba = f_BW ; - mfcba = f_BE ; - mfabc = f_TW ; - mfbcc = f_TN ; - mfbaa = f_BS ; - mfbca = f_BN ; - mfbac = f_TS ; - mfbbb = f_ZERO; - mfccc = f_TNE ; - mfaac = f_TSW ; - mfcac = f_TSE ; - mfacc = f_TNW ; - mfcca = f_BNE ; - mfaaa = f_BSW ; - mfcaa = f_BSE ; - mfaca = f_BNW ; - //////////////////////////////////////////////////////////////////////////////////// - drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + - (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + - ((mfabb+mfcbb) + (mfbab+mfbcb)) + (mfbba+mfbbc)) + mfbbb; - - rho = c1o1+drho; - //////////////////////////////////////////////////////////////////////////////////// - vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + - (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + - (mfcbb-mfabb)) / rho; - vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + - (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + - (mfbcb-mfbab)) / rho; - vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + - (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + - (mfbbc-mfbba)) / rho; - //////////////////////////////////////////////////////////////////////////////////// - //fast - oMdrho = c1o1; // comp special - vx2=vvx*vvx; - vy2=vvy*vvy; - vz2=vvz*vvz; - //////////////////////////////////////////////////////////////////////////////////// - //Hin - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m2 = mfaaa + mfaac; - m1 = mfaac - mfaaa; - m0 = m2 + mfaab; - mfaaa = m0; - m0 += c1o36 * oMdrho; - mfaab = m1 - m0 * vvz; - mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfabc; - m1 = mfabc - mfaba; - m0 = m2 + mfabb; - mfaba = m0; - m0 += c1o9 * oMdrho; - mfabb = m1 - m0 * vvz; - mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfacc; - m1 = mfacc - mfaca; - m0 = m2 + mfacb; - mfaca = m0; - m0 += c1o36 * oMdrho; - mfacb = m1 - m0 * vvz; - mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbac; - m1 = mfbac - mfbaa; - m0 = m2 + mfbab; - mfbaa = m0; - m0 += c1o9 * oMdrho; - mfbab = m1 - m0 * vvz; - mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbba + mfbbc; - m1 = mfbbc - mfbba; - m0 = m2 + mfbbb; - mfbba = m0; - m0 += c4o9 * oMdrho; - mfbbb = m1 - m0 * vvz; - mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbca + mfbcc; - m1 = mfbcc - mfbca; - m0 = m2 + mfbcb; - mfbca = m0; - m0 += c1o9 * oMdrho; - mfbcb = m1 - m0 * vvz; - mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcac; - m1 = mfcac - mfcaa; - m0 = m2 + mfcab; - mfcaa = m0; - m0 += c1o36 * oMdrho; - mfcab = m1 - m0 * vvz; - mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcba + mfcbc; - m1 = mfcbc - mfcba; - m0 = m2 + mfcbb; - mfcba = m0; - m0 += c1o9 * oMdrho; - mfcbb = m1 - m0 * vvz; - mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcca + mfccc; - m1 = mfccc - mfcca; - m0 = m2 + mfccb; - mfcca = m0; - m0 += c1o36 * oMdrho; - mfccb = m1 - m0 * vvz; - mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m2 = mfaaa + mfaca; - m1 = mfaca - mfaaa; - m0 = m2 + mfaba; - mfaaa = m0; - m0 += c1o6 * oMdrho; - mfaba = m1 - m0 * vvy; - mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfacb; - m1 = mfacb - mfaab; - m0 = m2 + mfabb; - mfaab = m0; - mfabb = m1 - m0 * vvy; - mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfacc; - m1 = mfacc - mfaac; - m0 = m2 + mfabc; - mfaac = m0; - m0 += c1o18 * oMdrho; - mfabc = m1 - m0 * vvy; - mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbca; - m1 = mfbca - mfbaa; - m0 = m2 + mfbba; - mfbaa = m0; - m0 += c2o3 * oMdrho; - mfbba = m1 - m0 * vvy; - mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbab + mfbcb; - m1 = mfbcb - mfbab; - m0 = m2 + mfbbb; - mfbab = m0; - mfbbb = m1 - m0 * vvy; - mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbac + mfbcc; - m1 = mfbcc - mfbac; - m0 = m2 + mfbbc; - mfbac = m0; - m0 += c2o9 * oMdrho; - mfbbc = m1 - m0 * vvy; - mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcca; - m1 = mfcca - mfcaa; - m0 = m2 + mfcba; - mfcaa = m0; - m0 += c1o6 * oMdrho; - mfcba = m1 - m0 * vvy; - mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcab + mfccb; - m1 = mfccb - mfcab; - m0 = m2 + mfcbb; - mfcab = m0; - mfcbb = m1 - m0 * vvy; - mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcac + mfccc; - m1 = mfccc - mfcac; - m0 = m2 + mfcbc; - mfcac = m0; - m0 += c1o18 * oMdrho; - mfcbc = m1 - m0 * vvy; - mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m2 = mfaaa + mfcaa; - m1 = mfcaa - mfaaa; - m0 = m2 + mfbaa; - mfaaa = m0; - m0 += c1o1* oMdrho; - mfbaa = m1 - m0 * vvx; - mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfcba; - m1 = mfcba - mfaba; - m0 = m2 + mfbba; - mfaba = m0; - mfbba = m1 - m0 * vvx; - mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfcca; - m1 = mfcca - mfaca; - m0 = m2 + mfbca; - mfaca = m0; - m0 += c1o3 * oMdrho; - mfbca = m1 - m0 * vvx; - mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfcab; - m1 = mfcab - mfaab; - m0 = m2 + mfbab; - mfaab = m0; - mfbab = m1 - m0 * vvx; - mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabb + mfcbb; - m1 = mfcbb - mfabb; - m0 = m2 + mfbbb; - mfabb = m0; - mfbbb = m1 - m0 * vvx; - mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacb + mfccb; - m1 = mfccb - mfacb; - m0 = m2 + mfbcb; - mfacb = m0; - mfbcb = m1 - m0 * vvx; - mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfcac; - m1 = mfcac - mfaac; - m0 = m2 + mfbac; - mfaac = m0; - m0 += c1o3 * oMdrho; - mfbac = m1 - m0 * vvx; - mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabc + mfcbc; - m1 = mfcbc - mfabc; - m0 = m2 + mfbbc; - mfabc = m0; - mfbbc = m1 - m0 * vvx; - mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacc + mfccc; - m1 = mfccc - mfacc; - m0 = m2 + mfbcc; - mfacc = m0; - m0 += c1o9 * oMdrho; - mfbcc = m1 - m0 * vvx; - mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - // linear combinations + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + mfcbb = f_E ; + mfabb = f_W ; + mfbcb = f_N ; + mfbab = f_S ; + mfbbc = f_T ; + mfbba = f_B ; + mfccb = f_NE ; + mfaab = f_SW ; + mfcab = f_SE ; + mfacb = f_NW ; + mfcbc = f_TE ; + mfaba = f_BW ; + mfcba = f_BE ; + mfabc = f_TW ; + mfbcc = f_TN ; + mfbaa = f_BS ; + mfbca = f_BN ; + mfbac = f_TS ; + mfbbb = f_ZERO; + mfccc = f_TNE ; + mfaac = f_TSW ; + mfcac = f_TSE ; + mfacc = f_TNW ; + mfcca = f_BNE ; + mfaaa = f_BSW ; + mfcaa = f_BSE ; + mfaca = f_BNW ; + //////////////////////////////////////////////////////////////////////////////////// + drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + + (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + + ((mfabb+mfcbb) + (mfbab+mfbcb)) + (mfbba+mfbbc)) + mfbbb; + + rho = c1o1+drho; + //////////////////////////////////////////////////////////////////////////////////// + vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + + (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + + (mfcbb-mfabb)) / rho; + vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + + (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + + (mfbcb-mfbab)) / rho; + vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + + (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + + (mfbbc-mfbba)) / rho; + //////////////////////////////////////////////////////////////////////////////////// + //fast + oMdrho = c1o1; // comp special + vx2=vvx*vvx; + vy2=vvy*vvy; + vz2=vvz*vvz; + //////////////////////////////////////////////////////////////////////////////////// + //Hin + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m2 = mfaaa + mfaac; + m1 = mfaac - mfaaa; + m0 = m2 + mfaab; + mfaaa = m0; + m0 += c1o36 * oMdrho; + mfaab = m1 - m0 * vvz; + mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfabc; + m1 = mfabc - mfaba; + m0 = m2 + mfabb; + mfaba = m0; + m0 += c1o9 * oMdrho; + mfabb = m1 - m0 * vvz; + mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfacc; + m1 = mfacc - mfaca; + m0 = m2 + mfacb; + mfaca = m0; + m0 += c1o36 * oMdrho; + mfacb = m1 - m0 * vvz; + mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbac; + m1 = mfbac - mfbaa; + m0 = m2 + mfbab; + mfbaa = m0; + m0 += c1o9 * oMdrho; + mfbab = m1 - m0 * vvz; + mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbba + mfbbc; + m1 = mfbbc - mfbba; + m0 = m2 + mfbbb; + mfbba = m0; + m0 += c4o9 * oMdrho; + mfbbb = m1 - m0 * vvz; + mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbca + mfbcc; + m1 = mfbcc - mfbca; + m0 = m2 + mfbcb; + mfbca = m0; + m0 += c1o9 * oMdrho; + mfbcb = m1 - m0 * vvz; + mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcac; + m1 = mfcac - mfcaa; + m0 = m2 + mfcab; + mfcaa = m0; + m0 += c1o36 * oMdrho; + mfcab = m1 - m0 * vvz; + mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcba + mfcbc; + m1 = mfcbc - mfcba; + m0 = m2 + mfcbb; + mfcba = m0; + m0 += c1o9 * oMdrho; + mfcbb = m1 - m0 * vvz; + mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcca + mfccc; + m1 = mfccc - mfcca; + m0 = m2 + mfccb; + mfcca = m0; + m0 += c1o36 * oMdrho; + mfccb = m1 - m0 * vvz; + mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m2 = mfaaa + mfaca; + m1 = mfaca - mfaaa; + m0 = m2 + mfaba; + mfaaa = m0; + m0 += c1o6 * oMdrho; + mfaba = m1 - m0 * vvy; + mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfacb; + m1 = mfacb - mfaab; + m0 = m2 + mfabb; + mfaab = m0; + mfabb = m1 - m0 * vvy; + mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfacc; + m1 = mfacc - mfaac; + m0 = m2 + mfabc; + mfaac = m0; + m0 += c1o18 * oMdrho; + mfabc = m1 - m0 * vvy; + mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbca; + m1 = mfbca - mfbaa; + m0 = m2 + mfbba; + mfbaa = m0; + m0 += c2o3 * oMdrho; + mfbba = m1 - m0 * vvy; + mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbab + mfbcb; + m1 = mfbcb - mfbab; + m0 = m2 + mfbbb; + mfbab = m0; + mfbbb = m1 - m0 * vvy; + mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbac + mfbcc; + m1 = mfbcc - mfbac; + m0 = m2 + mfbbc; + mfbac = m0; + m0 += c2o9 * oMdrho; + mfbbc = m1 - m0 * vvy; + mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcca; + m1 = mfcca - mfcaa; + m0 = m2 + mfcba; + mfcaa = m0; + m0 += c1o6 * oMdrho; + mfcba = m1 - m0 * vvy; + mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcab + mfccb; + m1 = mfccb - mfcab; + m0 = m2 + mfcbb; + mfcab = m0; + mfcbb = m1 - m0 * vvy; + mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcac + mfccc; + m1 = mfccc - mfcac; + m0 = m2 + mfcbc; + mfcac = m0; + m0 += c1o18 * oMdrho; + mfcbc = m1 - m0 * vvy; + mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m2 = mfaaa + mfcaa; + m1 = mfcaa - mfaaa; + m0 = m2 + mfbaa; + mfaaa = m0; + m0 += c1o1* oMdrho; + mfbaa = m1 - m0 * vvx; + mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfcba; + m1 = mfcba - mfaba; + m0 = m2 + mfbba; + mfaba = m0; + mfbba = m1 - m0 * vvx; + mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfcca; + m1 = mfcca - mfaca; + m0 = m2 + mfbca; + mfaca = m0; + m0 += c1o3 * oMdrho; + mfbca = m1 - m0 * vvx; + mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfcab; + m1 = mfcab - mfaab; + m0 = m2 + mfbab; + mfaab = m0; + mfbab = m1 - m0 * vvx; + mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabb + mfcbb; + m1 = mfcbb - mfabb; + m0 = m2 + mfbbb; + mfabb = m0; + mfbbb = m1 - m0 * vvx; + mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacb + mfccb; + m1 = mfccb - mfacb; + m0 = m2 + mfbcb; + mfacb = m0; + mfbcb = m1 - m0 * vvx; + mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfcac; + m1 = mfcac - mfaac; + m0 = m2 + mfbac; + mfaac = m0; + m0 += c1o3 * oMdrho; + mfbac = m1 - m0 * vvx; + mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabc + mfcbc; + m1 = mfcbc - mfabc; + m0 = m2 + mfbbc; + mfabc = m0; + mfbbc = m1 - m0 * vvx; + mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacc + mfccc; + m1 = mfccc - mfacc; + m0 = m2 + mfbcc; + mfacc = m0; + m0 += c1o9 * oMdrho; + mfbcc = m1 - m0 * vvx; + mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + // linear combinations - mxxyPyzz = mfcba + mfabc; - mxxyMyzz = mfcba - mfabc; + mxxyPyzz = mfcba + mfabc; + mxxyMyzz = mfcba - mfabc; - mxxzPyyz = mfcab + mfacb; - mxxzMyyz = mfcab - mfacb; + mxxzPyyz = mfcab + mfacb; + mxxzMyyz = mfcab - mfacb; - mxyyPxzz = mfbca + mfbac; - mxyyMxzz = mfbca - mfbac; + mxyyPxzz = mfbca + mfbac; + mxyyMxzz = mfbca - mfbac; - ////////////////////////////////////////////////////////////////////////// - //exclusive for this source node - real mfbbb_NWT = mfbbb; - real mxxyPyzz_NWT = mxxyPyzz; - real mxxyMyzz_NWT = mxxyMyzz; - real mxxzPyyz_NWT = mxxzPyyz; - real mxxzMyyz_NWT = mxxzMyyz; - real mxyyPxzz_NWT = mxyyPxzz; - real mxyyMxzz_NWT = mxyyMxzz; - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// + //exclusive for this source node + real mfbbb_NWT = mfbbb; + real mxxyPyzz_NWT = mxxyPyzz; + real mxxyMyzz_NWT = mxxyMyzz; + real mxxzPyyz_NWT = mxxzPyyz; + real mxxzMyyz_NWT = mxxzMyyz; + real mxyyPxzz_NWT = mxyyPxzz; + real mxyyMxzz_NWT = mxyyMxzz; + ////////////////////////////////////////////////////////////////////////// @@ -8088,8 +8088,8 @@ __global__ void scaleFC_RhoSq_3rdMom_comp_27(real* DC, drho_NET = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; vx1_NET = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_NET); - vx2_NET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NET); - vx3_NET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NET); + vx2_NET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NET); + vx3_NET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NET); kxyFromfcNEQ_NET = -c3o1*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_NET) - ((vx1_NET*vx2_NET))); kyzFromfcNEQ_NET = -c3o1*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_NET) - ((vx2_NET*vx3_NET))); @@ -8097,306 +8097,306 @@ __global__ void scaleFC_RhoSq_3rdMom_comp_27(real* DC, kxxMyyFromfcNEQ_NET = -c3o2*omegaS *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_NET) - ((vx1_NET*vx1_NET-vx2_NET*vx2_NET))); kxxMzzFromfcNEQ_NET = -c3o2*omegaS *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_NET) - ((vx1_NET*vx1_NET-vx3_NET*vx3_NET))); - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - mfcbb = f_E ; - mfabb = f_W ; - mfbcb = f_N ; - mfbab = f_S ; - mfbbc = f_T ; - mfbba = f_B ; - mfccb = f_NE ; - mfaab = f_SW ; - mfcab = f_SE ; - mfacb = f_NW ; - mfcbc = f_TE ; - mfaba = f_BW ; - mfcba = f_BE ; - mfabc = f_TW ; - mfbcc = f_TN ; - mfbaa = f_BS ; - mfbca = f_BN ; - mfbac = f_TS ; - mfbbb = f_ZERO; - mfccc = f_TNE ; - mfaac = f_TSW ; - mfcac = f_TSE ; - mfacc = f_TNW ; - mfcca = f_BNE ; - mfaaa = f_BSW ; - mfcaa = f_BSE ; - mfaca = f_BNW ; - //////////////////////////////////////////////////////////////////////////////////// - drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + - (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + - ((mfabb+mfcbb) + (mfbab+mfbcb)) + (mfbba+mfbbc)) + mfbbb; - - rho = c1o1+drho; - //////////////////////////////////////////////////////////////////////////////////// - vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + - (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + - (mfcbb-mfabb)) / rho; - vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + - (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + - (mfbcb-mfbab)) / rho; - vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + - (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + - (mfbbc-mfbba)) / rho; - //////////////////////////////////////////////////////////////////////////////////// - //fast - oMdrho = c1o1; // comp special - vx2=vvx*vvx; - vy2=vvy*vvy; - vz2=vvz*vvz; - //////////////////////////////////////////////////////////////////////////////////// - //Hin - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m2 = mfaaa + mfaac; - m1 = mfaac - mfaaa; - m0 = m2 + mfaab; - mfaaa = m0; - m0 += c1o36 * oMdrho; - mfaab = m1 - m0 * vvz; - mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfabc; - m1 = mfabc - mfaba; - m0 = m2 + mfabb; - mfaba = m0; - m0 += c1o9 * oMdrho; - mfabb = m1 - m0 * vvz; - mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfacc; - m1 = mfacc - mfaca; - m0 = m2 + mfacb; - mfaca = m0; - m0 += c1o36 * oMdrho; - mfacb = m1 - m0 * vvz; - mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbac; - m1 = mfbac - mfbaa; - m0 = m2 + mfbab; - mfbaa = m0; - m0 += c1o9 * oMdrho; - mfbab = m1 - m0 * vvz; - mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbba + mfbbc; - m1 = mfbbc - mfbba; - m0 = m2 + mfbbb; - mfbba = m0; - m0 += c4o9 * oMdrho; - mfbbb = m1 - m0 * vvz; - mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbca + mfbcc; - m1 = mfbcc - mfbca; - m0 = m2 + mfbcb; - mfbca = m0; - m0 += c1o9 * oMdrho; - mfbcb = m1 - m0 * vvz; - mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcac; - m1 = mfcac - mfcaa; - m0 = m2 + mfcab; - mfcaa = m0; - m0 += c1o36 * oMdrho; - mfcab = m1 - m0 * vvz; - mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcba + mfcbc; - m1 = mfcbc - mfcba; - m0 = m2 + mfcbb; - mfcba = m0; - m0 += c1o9 * oMdrho; - mfcbb = m1 - m0 * vvz; - mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcca + mfccc; - m1 = mfccc - mfcca; - m0 = m2 + mfccb; - mfcca = m0; - m0 += c1o36 * oMdrho; - mfccb = m1 - m0 * vvz; - mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m2 = mfaaa + mfaca; - m1 = mfaca - mfaaa; - m0 = m2 + mfaba; - mfaaa = m0; - m0 += c1o6 * oMdrho; - mfaba = m1 - m0 * vvy; - mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfacb; - m1 = mfacb - mfaab; - m0 = m2 + mfabb; - mfaab = m0; - mfabb = m1 - m0 * vvy; - mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfacc; - m1 = mfacc - mfaac; - m0 = m2 + mfabc; - mfaac = m0; - m0 += c1o18 * oMdrho; - mfabc = m1 - m0 * vvy; - mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbca; - m1 = mfbca - mfbaa; - m0 = m2 + mfbba; - mfbaa = m0; - m0 += c2o3 * oMdrho; - mfbba = m1 - m0 * vvy; - mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbab + mfbcb; - m1 = mfbcb - mfbab; - m0 = m2 + mfbbb; - mfbab = m0; - mfbbb = m1 - m0 * vvy; - mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbac + mfbcc; - m1 = mfbcc - mfbac; - m0 = m2 + mfbbc; - mfbac = m0; - m0 += c2o9 * oMdrho; - mfbbc = m1 - m0 * vvy; - mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcca; - m1 = mfcca - mfcaa; - m0 = m2 + mfcba; - mfcaa = m0; - m0 += c1o6 * oMdrho; - mfcba = m1 - m0 * vvy; - mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcab + mfccb; - m1 = mfccb - mfcab; - m0 = m2 + mfcbb; - mfcab = m0; - mfcbb = m1 - m0 * vvy; - mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcac + mfccc; - m1 = mfccc - mfcac; - m0 = m2 + mfcbc; - mfcac = m0; - m0 += c1o18 * oMdrho; - mfcbc = m1 - m0 * vvy; - mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m2 = mfaaa + mfcaa; - m1 = mfcaa - mfaaa; - m0 = m2 + mfbaa; - mfaaa = m0; - m0 += c1o1* oMdrho; - mfbaa = m1 - m0 * vvx; - mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfcba; - m1 = mfcba - mfaba; - m0 = m2 + mfbba; - mfaba = m0; - mfbba = m1 - m0 * vvx; - mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfcca; - m1 = mfcca - mfaca; - m0 = m2 + mfbca; - mfaca = m0; - m0 += c1o3 * oMdrho; - mfbca = m1 - m0 * vvx; - mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfcab; - m1 = mfcab - mfaab; - m0 = m2 + mfbab; - mfaab = m0; - mfbab = m1 - m0 * vvx; - mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabb + mfcbb; - m1 = mfcbb - mfabb; - m0 = m2 + mfbbb; - mfabb = m0; - mfbbb = m1 - m0 * vvx; - mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacb + mfccb; - m1 = mfccb - mfacb; - m0 = m2 + mfbcb; - mfacb = m0; - mfbcb = m1 - m0 * vvx; - mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfcac; - m1 = mfcac - mfaac; - m0 = m2 + mfbac; - mfaac = m0; - m0 += c1o3 * oMdrho; - mfbac = m1 - m0 * vvx; - mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabc + mfcbc; - m1 = mfcbc - mfabc; - m0 = m2 + mfbbc; - mfabc = m0; - mfbbc = m1 - m0 * vvx; - mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacc + mfccc; - m1 = mfccc - mfacc; - m0 = m2 + mfbcc; - mfacc = m0; - m0 += c1o9 * oMdrho; - mfbcc = m1 - m0 * vvx; - mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - // linear combinations + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + mfcbb = f_E ; + mfabb = f_W ; + mfbcb = f_N ; + mfbab = f_S ; + mfbbc = f_T ; + mfbba = f_B ; + mfccb = f_NE ; + mfaab = f_SW ; + mfcab = f_SE ; + mfacb = f_NW ; + mfcbc = f_TE ; + mfaba = f_BW ; + mfcba = f_BE ; + mfabc = f_TW ; + mfbcc = f_TN ; + mfbaa = f_BS ; + mfbca = f_BN ; + mfbac = f_TS ; + mfbbb = f_ZERO; + mfccc = f_TNE ; + mfaac = f_TSW ; + mfcac = f_TSE ; + mfacc = f_TNW ; + mfcca = f_BNE ; + mfaaa = f_BSW ; + mfcaa = f_BSE ; + mfaca = f_BNW ; + //////////////////////////////////////////////////////////////////////////////////// + drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + + (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + + ((mfabb+mfcbb) + (mfbab+mfbcb)) + (mfbba+mfbbc)) + mfbbb; + + rho = c1o1+drho; + //////////////////////////////////////////////////////////////////////////////////// + vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + + (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + + (mfcbb-mfabb)) / rho; + vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + + (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + + (mfbcb-mfbab)) / rho; + vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + + (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + + (mfbbc-mfbba)) / rho; + //////////////////////////////////////////////////////////////////////////////////// + //fast + oMdrho = c1o1; // comp special + vx2=vvx*vvx; + vy2=vvy*vvy; + vz2=vvz*vvz; + //////////////////////////////////////////////////////////////////////////////////// + //Hin + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m2 = mfaaa + mfaac; + m1 = mfaac - mfaaa; + m0 = m2 + mfaab; + mfaaa = m0; + m0 += c1o36 * oMdrho; + mfaab = m1 - m0 * vvz; + mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfabc; + m1 = mfabc - mfaba; + m0 = m2 + mfabb; + mfaba = m0; + m0 += c1o9 * oMdrho; + mfabb = m1 - m0 * vvz; + mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfacc; + m1 = mfacc - mfaca; + m0 = m2 + mfacb; + mfaca = m0; + m0 += c1o36 * oMdrho; + mfacb = m1 - m0 * vvz; + mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbac; + m1 = mfbac - mfbaa; + m0 = m2 + mfbab; + mfbaa = m0; + m0 += c1o9 * oMdrho; + mfbab = m1 - m0 * vvz; + mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbba + mfbbc; + m1 = mfbbc - mfbba; + m0 = m2 + mfbbb; + mfbba = m0; + m0 += c4o9 * oMdrho; + mfbbb = m1 - m0 * vvz; + mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbca + mfbcc; + m1 = mfbcc - mfbca; + m0 = m2 + mfbcb; + mfbca = m0; + m0 += c1o9 * oMdrho; + mfbcb = m1 - m0 * vvz; + mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcac; + m1 = mfcac - mfcaa; + m0 = m2 + mfcab; + mfcaa = m0; + m0 += c1o36 * oMdrho; + mfcab = m1 - m0 * vvz; + mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcba + mfcbc; + m1 = mfcbc - mfcba; + m0 = m2 + mfcbb; + mfcba = m0; + m0 += c1o9 * oMdrho; + mfcbb = m1 - m0 * vvz; + mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcca + mfccc; + m1 = mfccc - mfcca; + m0 = m2 + mfccb; + mfcca = m0; + m0 += c1o36 * oMdrho; + mfccb = m1 - m0 * vvz; + mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m2 = mfaaa + mfaca; + m1 = mfaca - mfaaa; + m0 = m2 + mfaba; + mfaaa = m0; + m0 += c1o6 * oMdrho; + mfaba = m1 - m0 * vvy; + mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfacb; + m1 = mfacb - mfaab; + m0 = m2 + mfabb; + mfaab = m0; + mfabb = m1 - m0 * vvy; + mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfacc; + m1 = mfacc - mfaac; + m0 = m2 + mfabc; + mfaac = m0; + m0 += c1o18 * oMdrho; + mfabc = m1 - m0 * vvy; + mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbca; + m1 = mfbca - mfbaa; + m0 = m2 + mfbba; + mfbaa = m0; + m0 += c2o3 * oMdrho; + mfbba = m1 - m0 * vvy; + mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbab + mfbcb; + m1 = mfbcb - mfbab; + m0 = m2 + mfbbb; + mfbab = m0; + mfbbb = m1 - m0 * vvy; + mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbac + mfbcc; + m1 = mfbcc - mfbac; + m0 = m2 + mfbbc; + mfbac = m0; + m0 += c2o9 * oMdrho; + mfbbc = m1 - m0 * vvy; + mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcca; + m1 = mfcca - mfcaa; + m0 = m2 + mfcba; + mfcaa = m0; + m0 += c1o6 * oMdrho; + mfcba = m1 - m0 * vvy; + mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcab + mfccb; + m1 = mfccb - mfcab; + m0 = m2 + mfcbb; + mfcab = m0; + mfcbb = m1 - m0 * vvy; + mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcac + mfccc; + m1 = mfccc - mfcac; + m0 = m2 + mfcbc; + mfcac = m0; + m0 += c1o18 * oMdrho; + mfcbc = m1 - m0 * vvy; + mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m2 = mfaaa + mfcaa; + m1 = mfcaa - mfaaa; + m0 = m2 + mfbaa; + mfaaa = m0; + m0 += c1o1* oMdrho; + mfbaa = m1 - m0 * vvx; + mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfcba; + m1 = mfcba - mfaba; + m0 = m2 + mfbba; + mfaba = m0; + mfbba = m1 - m0 * vvx; + mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfcca; + m1 = mfcca - mfaca; + m0 = m2 + mfbca; + mfaca = m0; + m0 += c1o3 * oMdrho; + mfbca = m1 - m0 * vvx; + mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfcab; + m1 = mfcab - mfaab; + m0 = m2 + mfbab; + mfaab = m0; + mfbab = m1 - m0 * vvx; + mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabb + mfcbb; + m1 = mfcbb - mfabb; + m0 = m2 + mfbbb; + mfabb = m0; + mfbbb = m1 - m0 * vvx; + mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacb + mfccb; + m1 = mfccb - mfacb; + m0 = m2 + mfbcb; + mfacb = m0; + mfbcb = m1 - m0 * vvx; + mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfcac; + m1 = mfcac - mfaac; + m0 = m2 + mfbac; + mfaac = m0; + m0 += c1o3 * oMdrho; + mfbac = m1 - m0 * vvx; + mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabc + mfcbc; + m1 = mfcbc - mfabc; + m0 = m2 + mfbbc; + mfabc = m0; + mfbbc = m1 - m0 * vvx; + mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacc + mfccc; + m1 = mfccc - mfacc; + m0 = m2 + mfbcc; + mfacc = m0; + m0 += c1o9 * oMdrho; + mfbcc = m1 - m0 * vvx; + mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + // linear combinations - mxxyPyzz = mfcba + mfabc; - mxxyMyzz = mfcba - mfabc; + mxxyPyzz = mfcba + mfabc; + mxxyMyzz = mfcba - mfabc; - mxxzPyyz = mfcab + mfacb; - mxxzMyyz = mfcab - mfacb; + mxxzPyyz = mfcab + mfacb; + mxxzMyyz = mfcab - mfacb; - mxyyPxzz = mfbca + mfbac; - mxyyMxzz = mfbca - mfbac; + mxyyPxzz = mfbca + mfbac; + mxyyMxzz = mfbca - mfbac; - ////////////////////////////////////////////////////////////////////////// - //exclusive for this source node - real mfbbb_NET = mfbbb; - real mxxyPyzz_NET = mxxyPyzz; - real mxxyMyzz_NET = mxxyMyzz; - real mxxzPyyz_NET = mxxzPyyz; - real mxxzMyyz_NET = mxxzMyyz; - real mxyyPxzz_NET = mxyyPxzz; - real mxyyMxzz_NET = mxyyMxzz; - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// + //exclusive for this source node + real mfbbb_NET = mfbbb; + real mxxyPyzz_NET = mxxyPyzz; + real mxxyMyzz_NET = mxxyMyzz; + real mxxzPyyz_NET = mxxzPyyz; + real mxxzMyyz_NET = mxxzMyyz; + real mxyyPxzz_NET = mxyyPxzz; + real mxyyMxzz_NET = mxyyMxzz; + ////////////////////////////////////////////////////////////////////////// @@ -8494,8 +8494,8 @@ __global__ void scaleFC_RhoSq_3rdMom_comp_27(real* DC, drho_NEB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; vx1_NEB = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_NEB); - vx2_NEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NEB); - vx3_NEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NEB); + vx2_NEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NEB); + vx3_NEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NEB); kxyFromfcNEQ_NEB = -c3o1*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_NEB) - ((vx1_NEB*vx2_NEB))); kyzFromfcNEQ_NEB = -c3o1*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_NEB) - ((vx2_NEB*vx3_NEB))); @@ -8503,306 +8503,306 @@ __global__ void scaleFC_RhoSq_3rdMom_comp_27(real* DC, kxxMyyFromfcNEQ_NEB = -c3o2*omegaS *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_NEB) - ((vx1_NEB*vx1_NEB-vx2_NEB*vx2_NEB))); kxxMzzFromfcNEQ_NEB = -c3o2*omegaS *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_NEB) - ((vx1_NEB*vx1_NEB-vx3_NEB*vx3_NEB))); - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - mfcbb = f_E ; - mfabb = f_W ; - mfbcb = f_N ; - mfbab = f_S ; - mfbbc = f_T ; - mfbba = f_B ; - mfccb = f_NE ; - mfaab = f_SW ; - mfcab = f_SE ; - mfacb = f_NW ; - mfcbc = f_TE ; - mfaba = f_BW ; - mfcba = f_BE ; - mfabc = f_TW ; - mfbcc = f_TN ; - mfbaa = f_BS ; - mfbca = f_BN ; - mfbac = f_TS ; - mfbbb = f_ZERO; - mfccc = f_TNE ; - mfaac = f_TSW ; - mfcac = f_TSE ; - mfacc = f_TNW ; - mfcca = f_BNE ; - mfaaa = f_BSW ; - mfcaa = f_BSE ; - mfaca = f_BNW ; - //////////////////////////////////////////////////////////////////////////////////// - drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + - (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + - ((mfabb+mfcbb) + (mfbab+mfbcb)) + (mfbba+mfbbc)) + mfbbb; - - rho = c1o1+drho; - //////////////////////////////////////////////////////////////////////////////////// - vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + - (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + - (mfcbb-mfabb)) / rho; - vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + - (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + - (mfbcb-mfbab)) / rho; - vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + - (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + - (mfbbc-mfbba)) / rho; - //////////////////////////////////////////////////////////////////////////////////// - //fast - oMdrho = c1o1; // comp special - vx2=vvx*vvx; - vy2=vvy*vvy; - vz2=vvz*vvz; - //////////////////////////////////////////////////////////////////////////////////// - //Hin - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m2 = mfaaa + mfaac; - m1 = mfaac - mfaaa; - m0 = m2 + mfaab; - mfaaa = m0; - m0 += c1o36 * oMdrho; - mfaab = m1 - m0 * vvz; - mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfabc; - m1 = mfabc - mfaba; - m0 = m2 + mfabb; - mfaba = m0; - m0 += c1o9 * oMdrho; - mfabb = m1 - m0 * vvz; - mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfacc; - m1 = mfacc - mfaca; - m0 = m2 + mfacb; - mfaca = m0; - m0 += c1o36 * oMdrho; - mfacb = m1 - m0 * vvz; - mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbac; - m1 = mfbac - mfbaa; - m0 = m2 + mfbab; - mfbaa = m0; - m0 += c1o9 * oMdrho; - mfbab = m1 - m0 * vvz; - mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbba + mfbbc; - m1 = mfbbc - mfbba; - m0 = m2 + mfbbb; - mfbba = m0; - m0 += c4o9 * oMdrho; - mfbbb = m1 - m0 * vvz; - mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbca + mfbcc; - m1 = mfbcc - mfbca; - m0 = m2 + mfbcb; - mfbca = m0; - m0 += c1o9 * oMdrho; - mfbcb = m1 - m0 * vvz; - mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcac; - m1 = mfcac - mfcaa; - m0 = m2 + mfcab; - mfcaa = m0; - m0 += c1o36 * oMdrho; - mfcab = m1 - m0 * vvz; - mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcba + mfcbc; - m1 = mfcbc - mfcba; - m0 = m2 + mfcbb; - mfcba = m0; - m0 += c1o9 * oMdrho; - mfcbb = m1 - m0 * vvz; - mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcca + mfccc; - m1 = mfccc - mfcca; - m0 = m2 + mfccb; - mfcca = m0; - m0 += c1o36 * oMdrho; - mfccb = m1 - m0 * vvz; - mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m2 = mfaaa + mfaca; - m1 = mfaca - mfaaa; - m0 = m2 + mfaba; - mfaaa = m0; - m0 += c1o6 * oMdrho; - mfaba = m1 - m0 * vvy; - mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfacb; - m1 = mfacb - mfaab; - m0 = m2 + mfabb; - mfaab = m0; - mfabb = m1 - m0 * vvy; - mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfacc; - m1 = mfacc - mfaac; - m0 = m2 + mfabc; - mfaac = m0; - m0 += c1o18 * oMdrho; - mfabc = m1 - m0 * vvy; - mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbca; - m1 = mfbca - mfbaa; - m0 = m2 + mfbba; - mfbaa = m0; - m0 += c2o3 * oMdrho; - mfbba = m1 - m0 * vvy; - mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbab + mfbcb; - m1 = mfbcb - mfbab; - m0 = m2 + mfbbb; - mfbab = m0; - mfbbb = m1 - m0 * vvy; - mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbac + mfbcc; - m1 = mfbcc - mfbac; - m0 = m2 + mfbbc; - mfbac = m0; - m0 += c2o9 * oMdrho; - mfbbc = m1 - m0 * vvy; - mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcca; - m1 = mfcca - mfcaa; - m0 = m2 + mfcba; - mfcaa = m0; - m0 += c1o6 * oMdrho; - mfcba = m1 - m0 * vvy; - mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcab + mfccb; - m1 = mfccb - mfcab; - m0 = m2 + mfcbb; - mfcab = m0; - mfcbb = m1 - m0 * vvy; - mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcac + mfccc; - m1 = mfccc - mfcac; - m0 = m2 + mfcbc; - mfcac = m0; - m0 += c1o18 * oMdrho; - mfcbc = m1 - m0 * vvy; - mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m2 = mfaaa + mfcaa; - m1 = mfcaa - mfaaa; - m0 = m2 + mfbaa; - mfaaa = m0; - m0 += c1o1* oMdrho; - mfbaa = m1 - m0 * vvx; - mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfcba; - m1 = mfcba - mfaba; - m0 = m2 + mfbba; - mfaba = m0; - mfbba = m1 - m0 * vvx; - mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfcca; - m1 = mfcca - mfaca; - m0 = m2 + mfbca; - mfaca = m0; - m0 += c1o3 * oMdrho; - mfbca = m1 - m0 * vvx; - mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfcab; - m1 = mfcab - mfaab; - m0 = m2 + mfbab; - mfaab = m0; - mfbab = m1 - m0 * vvx; - mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabb + mfcbb; - m1 = mfcbb - mfabb; - m0 = m2 + mfbbb; - mfabb = m0; - mfbbb = m1 - m0 * vvx; - mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacb + mfccb; - m1 = mfccb - mfacb; - m0 = m2 + mfbcb; - mfacb = m0; - mfbcb = m1 - m0 * vvx; - mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfcac; - m1 = mfcac - mfaac; - m0 = m2 + mfbac; - mfaac = m0; - m0 += c1o3 * oMdrho; - mfbac = m1 - m0 * vvx; - mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabc + mfcbc; - m1 = mfcbc - mfabc; - m0 = m2 + mfbbc; - mfabc = m0; - mfbbc = m1 - m0 * vvx; - mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacc + mfccc; - m1 = mfccc - mfacc; - m0 = m2 + mfbcc; - mfacc = m0; - m0 += c1o9 * oMdrho; - mfbcc = m1 - m0 * vvx; - mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - // linear combinations + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + mfcbb = f_E ; + mfabb = f_W ; + mfbcb = f_N ; + mfbab = f_S ; + mfbbc = f_T ; + mfbba = f_B ; + mfccb = f_NE ; + mfaab = f_SW ; + mfcab = f_SE ; + mfacb = f_NW ; + mfcbc = f_TE ; + mfaba = f_BW ; + mfcba = f_BE ; + mfabc = f_TW ; + mfbcc = f_TN ; + mfbaa = f_BS ; + mfbca = f_BN ; + mfbac = f_TS ; + mfbbb = f_ZERO; + mfccc = f_TNE ; + mfaac = f_TSW ; + mfcac = f_TSE ; + mfacc = f_TNW ; + mfcca = f_BNE ; + mfaaa = f_BSW ; + mfcaa = f_BSE ; + mfaca = f_BNW ; + //////////////////////////////////////////////////////////////////////////////////// + drho = ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + + (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + + ((mfabb+mfcbb) + (mfbab+mfbcb)) + (mfbba+mfbbc)) + mfbbb; + + rho = c1o1+drho; + //////////////////////////////////////////////////////////////////////////////////// + vvx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + + (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + + (mfcbb-mfabb)) / rho; + vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + + (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + + (mfbcb-mfbab)) / rho; + vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + + (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + + (mfbbc-mfbba)) / rho; + //////////////////////////////////////////////////////////////////////////////////// + //fast + oMdrho = c1o1; // comp special + vx2=vvx*vvx; + vy2=vvy*vvy; + vz2=vvz*vvz; + //////////////////////////////////////////////////////////////////////////////////// + //Hin + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m2 = mfaaa + mfaac; + m1 = mfaac - mfaaa; + m0 = m2 + mfaab; + mfaaa = m0; + m0 += c1o36 * oMdrho; + mfaab = m1 - m0 * vvz; + mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfabc; + m1 = mfabc - mfaba; + m0 = m2 + mfabb; + mfaba = m0; + m0 += c1o9 * oMdrho; + mfabb = m1 - m0 * vvz; + mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfacc; + m1 = mfacc - mfaca; + m0 = m2 + mfacb; + mfaca = m0; + m0 += c1o36 * oMdrho; + mfacb = m1 - m0 * vvz; + mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbac; + m1 = mfbac - mfbaa; + m0 = m2 + mfbab; + mfbaa = m0; + m0 += c1o9 * oMdrho; + mfbab = m1 - m0 * vvz; + mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbba + mfbbc; + m1 = mfbbc - mfbba; + m0 = m2 + mfbbb; + mfbba = m0; + m0 += c4o9 * oMdrho; + mfbbb = m1 - m0 * vvz; + mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbca + mfbcc; + m1 = mfbcc - mfbca; + m0 = m2 + mfbcb; + mfbca = m0; + m0 += c1o9 * oMdrho; + mfbcb = m1 - m0 * vvz; + mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcac; + m1 = mfcac - mfcaa; + m0 = m2 + mfcab; + mfcaa = m0; + m0 += c1o36 * oMdrho; + mfcab = m1 - m0 * vvz; + mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcba + mfcbc; + m1 = mfcbc - mfcba; + m0 = m2 + mfcbb; + mfcba = m0; + m0 += c1o9 * oMdrho; + mfcbb = m1 - m0 * vvz; + mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcca + mfccc; + m1 = mfccc - mfcca; + m0 = m2 + mfccb; + mfcca = m0; + m0 += c1o36 * oMdrho; + mfccb = m1 - m0 * vvz; + mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m2 = mfaaa + mfaca; + m1 = mfaca - mfaaa; + m0 = m2 + mfaba; + mfaaa = m0; + m0 += c1o6 * oMdrho; + mfaba = m1 - m0 * vvy; + mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfacb; + m1 = mfacb - mfaab; + m0 = m2 + mfabb; + mfaab = m0; + mfabb = m1 - m0 * vvy; + mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfacc; + m1 = mfacc - mfaac; + m0 = m2 + mfabc; + mfaac = m0; + m0 += c1o18 * oMdrho; + mfabc = m1 - m0 * vvy; + mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbca; + m1 = mfbca - mfbaa; + m0 = m2 + mfbba; + mfbaa = m0; + m0 += c2o3 * oMdrho; + mfbba = m1 - m0 * vvy; + mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbab + mfbcb; + m1 = mfbcb - mfbab; + m0 = m2 + mfbbb; + mfbab = m0; + mfbbb = m1 - m0 * vvy; + mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbac + mfbcc; + m1 = mfbcc - mfbac; + m0 = m2 + mfbbc; + mfbac = m0; + m0 += c2o9 * oMdrho; + mfbbc = m1 - m0 * vvy; + mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcca; + m1 = mfcca - mfcaa; + m0 = m2 + mfcba; + mfcaa = m0; + m0 += c1o6 * oMdrho; + mfcba = m1 - m0 * vvy; + mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcab + mfccb; + m1 = mfccb - mfcab; + m0 = m2 + mfcbb; + mfcab = m0; + mfcbb = m1 - m0 * vvy; + mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcac + mfccc; + m1 = mfccc - mfcac; + m0 = m2 + mfcbc; + mfcac = m0; + m0 += c1o18 * oMdrho; + mfcbc = m1 - m0 * vvy; + mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m2 = mfaaa + mfcaa; + m1 = mfcaa - mfaaa; + m0 = m2 + mfbaa; + mfaaa = m0; + m0 += c1o1* oMdrho; + mfbaa = m1 - m0 * vvx; + mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfcba; + m1 = mfcba - mfaba; + m0 = m2 + mfbba; + mfaba = m0; + mfbba = m1 - m0 * vvx; + mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfcca; + m1 = mfcca - mfaca; + m0 = m2 + mfbca; + mfaca = m0; + m0 += c1o3 * oMdrho; + mfbca = m1 - m0 * vvx; + mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfcab; + m1 = mfcab - mfaab; + m0 = m2 + mfbab; + mfaab = m0; + mfbab = m1 - m0 * vvx; + mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabb + mfcbb; + m1 = mfcbb - mfabb; + m0 = m2 + mfbbb; + mfabb = m0; + mfbbb = m1 - m0 * vvx; + mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacb + mfccb; + m1 = mfccb - mfacb; + m0 = m2 + mfbcb; + mfacb = m0; + mfbcb = m1 - m0 * vvx; + mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfcac; + m1 = mfcac - mfaac; + m0 = m2 + mfbac; + mfaac = m0; + m0 += c1o3 * oMdrho; + mfbac = m1 - m0 * vvx; + mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabc + mfcbc; + m1 = mfcbc - mfabc; + m0 = m2 + mfbbc; + mfabc = m0; + mfbbc = m1 - m0 * vvx; + mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacc + mfccc; + m1 = mfccc - mfacc; + m0 = m2 + mfbcc; + mfacc = m0; + m0 += c1o9 * oMdrho; + mfbcc = m1 - m0 * vvx; + mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + // linear combinations - mxxyPyzz = mfcba + mfabc; - mxxyMyzz = mfcba - mfabc; + mxxyPyzz = mfcba + mfabc; + mxxyMyzz = mfcba - mfabc; - mxxzPyyz = mfcab + mfacb; - mxxzMyyz = mfcab - mfacb; + mxxzPyyz = mfcab + mfacb; + mxxzMyyz = mfcab - mfacb; - mxyyPxzz = mfbca + mfbac; - mxyyMxzz = mfbca - mfbac; + mxyyPxzz = mfbca + mfbac; + mxyyMxzz = mfbca - mfbac; - ////////////////////////////////////////////////////////////////////////// - //exclusive for this source node - real mfbbb_NEB = mfbbb; - real mxxyPyzz_NEB = mxxyPyzz; - real mxxyMyzz_NEB = mxxyMyzz; - real mxxzPyyz_NEB = mxxzPyyz; - real mxxzMyyz_NEB = mxxzMyyz; - real mxyyPxzz_NEB = mxyyPxzz; - real mxyyMxzz_NEB = mxyyMxzz; - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// + //exclusive for this source node + real mfbbb_NEB = mfbbb; + real mxxyPyzz_NEB = mxxyPyzz; + real mxxyMyzz_NEB = mxxyMyzz; + real mxxzPyyz_NEB = mxxzPyyz; + real mxxzMyyz_NEB = mxxzMyyz; + real mxyyPxzz_NEB = mxyyPxzz; + real mxyyMxzz_NEB = mxyyMxzz; + ////////////////////////////////////////////////////////////////////////// @@ -8858,155 +8858,155 @@ __global__ void scaleFC_RhoSq_3rdMom_comp_27(real* DC, ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real mfbbbMean = c1o8 * (mfbbb_SWB + mfbbb_SWT + mfbbb_SET + mfbbb_SEB + mfbbb_NWB + mfbbb_NWT + mfbbb_NET + mfbbb_NEB); - real mxxyPyzzMean = c1o8 * (mxxyPyzz_SWB + mxxyPyzz_SWT + mxxyPyzz_SET + mxxyPyzz_SEB + mxxyPyzz_NWB + mxxyPyzz_NWT + mxxyPyzz_NET + mxxyPyzz_NEB); - real mxxyMyzzMean = c1o8 * (mxxyMyzz_SWB + mxxyMyzz_SWT + mxxyMyzz_SET + mxxyMyzz_SEB + mxxyMyzz_NWB + mxxyMyzz_NWT + mxxyMyzz_NET + mxxyMyzz_NEB); - real mxxzPyyzMean = c1o8 * (mxxzPyyz_SWB + mxxzPyyz_SWT + mxxzPyyz_SET + mxxzPyyz_SEB + mxxzPyyz_NWB + mxxzPyyz_NWT + mxxzPyyz_NET + mxxzPyyz_NEB); - real mxxzMyyzMean = c1o8 * (mxxzMyyz_SWB + mxxzMyyz_SWT + mxxzMyyz_SET + mxxzMyyz_SEB + mxxzMyyz_NWB + mxxzMyyz_NWT + mxxzMyyz_NET + mxxzMyyz_NEB); - real mxyyPxzzMean = c1o8 * (mxyyPxzz_SWB + mxyyPxzz_SWT + mxyyPxzz_SET + mxyyPxzz_SEB + mxyyPxzz_NWB + mxyyPxzz_NWT + mxyyPxzz_NET + mxyyPxzz_NEB); - real mxyyMxzzMean = c1o8 * (mxyyMxzz_SWB + mxyyMxzz_SWT + mxyyMxzz_SET + mxyyMxzz_SEB + mxyyMxzz_NWB + mxyyMxzz_NWT + mxyyMxzz_NET + mxyyMxzz_NEB); + real mfbbbMean = c1o8 * (mfbbb_SWB + mfbbb_SWT + mfbbb_SET + mfbbb_SEB + mfbbb_NWB + mfbbb_NWT + mfbbb_NET + mfbbb_NEB); + real mxxyPyzzMean = c1o8 * (mxxyPyzz_SWB + mxxyPyzz_SWT + mxxyPyzz_SET + mxxyPyzz_SEB + mxxyPyzz_NWB + mxxyPyzz_NWT + mxxyPyzz_NET + mxxyPyzz_NEB); + real mxxyMyzzMean = c1o8 * (mxxyMyzz_SWB + mxxyMyzz_SWT + mxxyMyzz_SET + mxxyMyzz_SEB + mxxyMyzz_NWB + mxxyMyzz_NWT + mxxyMyzz_NET + mxxyMyzz_NEB); + real mxxzPyyzMean = c1o8 * (mxxzPyyz_SWB + mxxzPyyz_SWT + mxxzPyyz_SET + mxxzPyyz_SEB + mxxzPyyz_NWB + mxxzPyyz_NWT + mxxzPyyz_NET + mxxzPyyz_NEB); + real mxxzMyyzMean = c1o8 * (mxxzMyyz_SWB + mxxzMyyz_SWT + mxxzMyyz_SET + mxxzMyyz_SEB + mxxzMyyz_NWB + mxxzMyyz_NWT + mxxzMyyz_NET + mxxzMyyz_NEB); + real mxyyPxzzMean = c1o8 * (mxyyPxzz_SWB + mxyyPxzz_SWT + mxyyPxzz_SET + mxyyPxzz_SEB + mxyyPxzz_NWB + mxyyPxzz_NWT + mxyyPxzz_NET + mxyyPxzz_NEB); + real mxyyMxzzMean = c1o8 * (mxyyMxzz_SWB + mxyyMxzz_SWT + mxyyMxzz_SET + mxyyMxzz_SEB + mxyyMxzz_NWB + mxyyMxzz_NWT + mxyyMxzz_NET + mxyyMxzz_NEB); ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //kxyFromfcNEQ_SWB = zero; - //kyzFromfcNEQ_SWB = zero; - //kxzFromfcNEQ_SWB = zero; - //kxxMyyFromfcNEQ_SWB = zero; - //kxxMzzFromfcNEQ_SWB = zero; - //kxyFromfcNEQ_SWT = zero; - //kyzFromfcNEQ_SWT = zero; - //kxzFromfcNEQ_SWT = zero; - //kxxMyyFromfcNEQ_SWT = zero; - //kxxMzzFromfcNEQ_SWT = zero; - //kxyFromfcNEQ_SET = zero; - //kyzFromfcNEQ_SET = zero; - //kxzFromfcNEQ_SET = zero; - //kxxMyyFromfcNEQ_SET = zero; - //kxxMzzFromfcNEQ_SET = zero; - //kxyFromfcNEQ_SEB = zero; - //kyzFromfcNEQ_SEB = zero; - //kxzFromfcNEQ_SEB = zero; - //kxxMyyFromfcNEQ_SEB = zero; - //kxxMzzFromfcNEQ_SEB = zero; - //kxyFromfcNEQ_NWB = zero; - //kyzFromfcNEQ_NWB = zero; - //kxzFromfcNEQ_NWB = zero; - //kxxMyyFromfcNEQ_NWB = zero; - //kxxMzzFromfcNEQ_NWB = zero; - //kxyFromfcNEQ_NWT = zero; - //kyzFromfcNEQ_NWT = zero; - //kxzFromfcNEQ_NWT = zero; - //kxxMyyFromfcNEQ_NWT = zero; - //kxxMzzFromfcNEQ_NWT = zero; - //kxyFromfcNEQ_NET = zero; - //kyzFromfcNEQ_NET = zero; - //kxzFromfcNEQ_NET = zero; - //kxxMyyFromfcNEQ_NET = zero; - //kxxMzzFromfcNEQ_NET = zero; - //kxyFromfcNEQ_NEB = zero; - //kyzFromfcNEQ_NEB = zero; - //kxzFromfcNEQ_NEB = zero; - //kxxMyyFromfcNEQ_NEB = zero; - //kxxMzzFromfcNEQ_NEB = zero; + //kxyFromfcNEQ_SWB = zero; + //kyzFromfcNEQ_SWB = zero; + //kxzFromfcNEQ_SWB = zero; + //kxxMyyFromfcNEQ_SWB = zero; + //kxxMzzFromfcNEQ_SWB = zero; + //kxyFromfcNEQ_SWT = zero; + //kyzFromfcNEQ_SWT = zero; + //kxzFromfcNEQ_SWT = zero; + //kxxMyyFromfcNEQ_SWT = zero; + //kxxMzzFromfcNEQ_SWT = zero; + //kxyFromfcNEQ_SET = zero; + //kyzFromfcNEQ_SET = zero; + //kxzFromfcNEQ_SET = zero; + //kxxMyyFromfcNEQ_SET = zero; + //kxxMzzFromfcNEQ_SET = zero; + //kxyFromfcNEQ_SEB = zero; + //kyzFromfcNEQ_SEB = zero; + //kxzFromfcNEQ_SEB = zero; + //kxxMyyFromfcNEQ_SEB = zero; + //kxxMzzFromfcNEQ_SEB = zero; + //kxyFromfcNEQ_NWB = zero; + //kyzFromfcNEQ_NWB = zero; + //kxzFromfcNEQ_NWB = zero; + //kxxMyyFromfcNEQ_NWB = zero; + //kxxMzzFromfcNEQ_NWB = zero; + //kxyFromfcNEQ_NWT = zero; + //kyzFromfcNEQ_NWT = zero; + //kxzFromfcNEQ_NWT = zero; + //kxxMyyFromfcNEQ_NWT = zero; + //kxxMzzFromfcNEQ_NWT = zero; + //kxyFromfcNEQ_NET = zero; + //kyzFromfcNEQ_NET = zero; + //kxzFromfcNEQ_NET = zero; + //kxxMyyFromfcNEQ_NET = zero; + //kxxMzzFromfcNEQ_NET = zero; + //kxyFromfcNEQ_NEB = zero; + //kyzFromfcNEQ_NEB = zero; + //kxzFromfcNEQ_NEB = zero; + //kxxMyyFromfcNEQ_NEB = zero; + //kxxMzzFromfcNEQ_NEB = zero; ////////////////////////////////////////////////////////////////////////// //3 ////////////////////////////////////////////////////////////////////////// a0 = (-kxxMyyFromfcNEQ_NEB - kxxMyyFromfcNEQ_NET + kxxMyyFromfcNEQ_NWB + kxxMyyFromfcNEQ_NWT - - kxxMyyFromfcNEQ_SEB - kxxMyyFromfcNEQ_SET + kxxMyyFromfcNEQ_SWB + kxxMyyFromfcNEQ_SWT - - kxxMzzFromfcNEQ_NEB - kxxMzzFromfcNEQ_NET + kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_NWT - - kxxMzzFromfcNEQ_SEB - kxxMzzFromfcNEQ_SET + kxxMzzFromfcNEQ_SWB + kxxMzzFromfcNEQ_SWT - - c2o1*kxyFromfcNEQ_NEB - c2o1*kxyFromfcNEQ_NET - c2o1*kxyFromfcNEQ_NWB - c2o1*kxyFromfcNEQ_NWT + - c2o1*kxyFromfcNEQ_SEB + c2o1*kxyFromfcNEQ_SET + c2o1*kxyFromfcNEQ_SWB + c2o1*kxyFromfcNEQ_SWT + - c2o1*kxzFromfcNEQ_NEB - c2o1*kxzFromfcNEQ_NET + c2o1*kxzFromfcNEQ_NWB - c2o1*kxzFromfcNEQ_NWT + - c2o1*kxzFromfcNEQ_SEB - c2o1*kxzFromfcNEQ_SET + c2o1*kxzFromfcNEQ_SWB - c2o1*kxzFromfcNEQ_SWT + - c8o1*vx1_NEB + c8o1*vx1_NET + c8o1*vx1_NWB + c8o1*vx1_NWT + c8o1*vx1_SEB + - c8o1*vx1_SET + c8o1*vx1_SWB + c8o1*vx1_SWT + c2o1*vx2_NEB + c2o1*vx2_NET - - c2o1*vx2_NWB - c2o1*vx2_NWT - c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB + - c2o1*vx2_SWT - c2o1*vx3_NEB + c2o1*vx3_NET + c2o1*vx3_NWB - c2o1*vx3_NWT - - c2o1*vx3_SEB + c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)/c64o1; + kxxMyyFromfcNEQ_SEB - kxxMyyFromfcNEQ_SET + kxxMyyFromfcNEQ_SWB + kxxMyyFromfcNEQ_SWT - + kxxMzzFromfcNEQ_NEB - kxxMzzFromfcNEQ_NET + kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_NWT - + kxxMzzFromfcNEQ_SEB - kxxMzzFromfcNEQ_SET + kxxMzzFromfcNEQ_SWB + kxxMzzFromfcNEQ_SWT - + c2o1*kxyFromfcNEQ_NEB - c2o1*kxyFromfcNEQ_NET - c2o1*kxyFromfcNEQ_NWB - c2o1*kxyFromfcNEQ_NWT + + c2o1*kxyFromfcNEQ_SEB + c2o1*kxyFromfcNEQ_SET + c2o1*kxyFromfcNEQ_SWB + c2o1*kxyFromfcNEQ_SWT + + c2o1*kxzFromfcNEQ_NEB - c2o1*kxzFromfcNEQ_NET + c2o1*kxzFromfcNEQ_NWB - c2o1*kxzFromfcNEQ_NWT + + c2o1*kxzFromfcNEQ_SEB - c2o1*kxzFromfcNEQ_SET + c2o1*kxzFromfcNEQ_SWB - c2o1*kxzFromfcNEQ_SWT + + c8o1*vx1_NEB + c8o1*vx1_NET + c8o1*vx1_NWB + c8o1*vx1_NWT + c8o1*vx1_SEB + + c8o1*vx1_SET + c8o1*vx1_SWB + c8o1*vx1_SWT + c2o1*vx2_NEB + c2o1*vx2_NET - + c2o1*vx2_NWB - c2o1*vx2_NWT - c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB + + c2o1*vx2_SWT - c2o1*vx3_NEB + c2o1*vx3_NET + c2o1*vx3_NWB - c2o1*vx3_NWT - + c2o1*vx3_SEB + c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)/c64o1; b0 = (c2o1*kxxMyyFromfcNEQ_NEB + c2o1*kxxMyyFromfcNEQ_NET + c2o1*kxxMyyFromfcNEQ_NWB + c2o1*kxxMyyFromfcNEQ_NWT - - c2o1*kxxMyyFromfcNEQ_SEB - c2o1*kxxMyyFromfcNEQ_SET - c2o1*kxxMyyFromfcNEQ_SWB - c2o1*kxxMyyFromfcNEQ_SWT - - kxxMzzFromfcNEQ_NEB - kxxMzzFromfcNEQ_NET - kxxMzzFromfcNEQ_NWB - kxxMzzFromfcNEQ_NWT + - kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_SET + kxxMzzFromfcNEQ_SWB + kxxMzzFromfcNEQ_SWT - - c2o1*kxyFromfcNEQ_NEB - c2o1*kxyFromfcNEQ_NET + c2o1*kxyFromfcNEQ_NWB + c2o1*kxyFromfcNEQ_NWT - - c2o1*kxyFromfcNEQ_SEB - c2o1*kxyFromfcNEQ_SET + c2o1*kxyFromfcNEQ_SWB + c2o1*kxyFromfcNEQ_SWT + - c2o1*kyzFromfcNEQ_NEB - c2o1*kyzFromfcNEQ_NET + c2o1*kyzFromfcNEQ_NWB - c2o1*kyzFromfcNEQ_NWT + - c2o1*kyzFromfcNEQ_SEB - c2o1*kyzFromfcNEQ_SET + c2o1*kyzFromfcNEQ_SWB - c2o1*kyzFromfcNEQ_SWT + - c2o1*vx1_NEB + c2o1*vx1_NET - c2o1*vx1_NWB - c2o1*vx1_NWT - - c2o1*vx1_SEB - c2o1*vx1_SET + c2o1*vx1_SWB + c2o1*vx1_SWT + - c8o1*vx2_NEB + c8o1*vx2_NET + c8o1*vx2_NWB + c8o1*vx2_NWT + - c8o1*vx2_SEB + c8o1*vx2_SET + c8o1*vx2_SWB + c8o1*vx2_SWT - - c2o1*vx3_NEB + c2o1*vx3_NET - c2o1*vx3_NWB + c2o1*vx3_NWT + - c2o1*vx3_SEB - c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)/c64o1; + c2o1*kxxMyyFromfcNEQ_SEB - c2o1*kxxMyyFromfcNEQ_SET - c2o1*kxxMyyFromfcNEQ_SWB - c2o1*kxxMyyFromfcNEQ_SWT - + kxxMzzFromfcNEQ_NEB - kxxMzzFromfcNEQ_NET - kxxMzzFromfcNEQ_NWB - kxxMzzFromfcNEQ_NWT + + kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_SET + kxxMzzFromfcNEQ_SWB + kxxMzzFromfcNEQ_SWT - + c2o1*kxyFromfcNEQ_NEB - c2o1*kxyFromfcNEQ_NET + c2o1*kxyFromfcNEQ_NWB + c2o1*kxyFromfcNEQ_NWT - + c2o1*kxyFromfcNEQ_SEB - c2o1*kxyFromfcNEQ_SET + c2o1*kxyFromfcNEQ_SWB + c2o1*kxyFromfcNEQ_SWT + + c2o1*kyzFromfcNEQ_NEB - c2o1*kyzFromfcNEQ_NET + c2o1*kyzFromfcNEQ_NWB - c2o1*kyzFromfcNEQ_NWT + + c2o1*kyzFromfcNEQ_SEB - c2o1*kyzFromfcNEQ_SET + c2o1*kyzFromfcNEQ_SWB - c2o1*kyzFromfcNEQ_SWT + + c2o1*vx1_NEB + c2o1*vx1_NET - c2o1*vx1_NWB - c2o1*vx1_NWT - + c2o1*vx1_SEB - c2o1*vx1_SET + c2o1*vx1_SWB + c2o1*vx1_SWT + + c8o1*vx2_NEB + c8o1*vx2_NET + c8o1*vx2_NWB + c8o1*vx2_NWT + + c8o1*vx2_SEB + c8o1*vx2_SET + c8o1*vx2_SWB + c8o1*vx2_SWT - + c2o1*vx3_NEB + c2o1*vx3_NET - c2o1*vx3_NWB + c2o1*vx3_NWT + + c2o1*vx3_SEB - c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)/c64o1; c0 = (kxxMyyFromfcNEQ_NEB - kxxMyyFromfcNEQ_NET + kxxMyyFromfcNEQ_NWB - kxxMyyFromfcNEQ_NWT + - kxxMyyFromfcNEQ_SEB - kxxMyyFromfcNEQ_SET + kxxMyyFromfcNEQ_SWB - kxxMyyFromfcNEQ_SWT - - c2o1*kxxMzzFromfcNEQ_NEB + c2o1*kxxMzzFromfcNEQ_NET - c2o1*kxxMzzFromfcNEQ_NWB + c2o1*kxxMzzFromfcNEQ_NWT - - c2o1*kxxMzzFromfcNEQ_SEB + c2o1*kxxMzzFromfcNEQ_SET - c2o1*kxxMzzFromfcNEQ_SWB + c2o1*kxxMzzFromfcNEQ_SWT - - c2o1*kxzFromfcNEQ_NEB - c2o1*kxzFromfcNEQ_NET + c2o1*kxzFromfcNEQ_NWB + c2o1*kxzFromfcNEQ_NWT - - c2o1*kxzFromfcNEQ_SEB - c2o1*kxzFromfcNEQ_SET + c2o1*kxzFromfcNEQ_SWB + c2o1*kxzFromfcNEQ_SWT - - c2o1*kyzFromfcNEQ_NEB - c2o1*kyzFromfcNEQ_NET - c2o1*kyzFromfcNEQ_NWB - c2o1*kyzFromfcNEQ_NWT + - c2o1*kyzFromfcNEQ_SEB + c2o1*kyzFromfcNEQ_SET + c2o1*kyzFromfcNEQ_SWB + c2o1*kyzFromfcNEQ_SWT - - c2o1*vx1_NEB + c2o1*vx1_NET + c2o1*vx1_NWB - c2o1*vx1_NWT - - c2o1*vx1_SEB + c2o1*vx1_SET + c2o1*vx1_SWB - c2o1*vx1_SWT - - c2o1*vx2_NEB + c2o1*vx2_NET - c2o1*vx2_NWB + c2o1*vx2_NWT + - c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB - c2o1*vx2_SWT + - c8o1*vx3_NEB + c8o1*vx3_NET + c8o1*vx3_NWB + c8o1*vx3_NWT + - c8o1*vx3_SEB + c8o1*vx3_SET + c8o1*vx3_SWB + c8o1*vx3_SWT)/c64o1; + kxxMyyFromfcNEQ_SEB - kxxMyyFromfcNEQ_SET + kxxMyyFromfcNEQ_SWB - kxxMyyFromfcNEQ_SWT - + c2o1*kxxMzzFromfcNEQ_NEB + c2o1*kxxMzzFromfcNEQ_NET - c2o1*kxxMzzFromfcNEQ_NWB + c2o1*kxxMzzFromfcNEQ_NWT - + c2o1*kxxMzzFromfcNEQ_SEB + c2o1*kxxMzzFromfcNEQ_SET - c2o1*kxxMzzFromfcNEQ_SWB + c2o1*kxxMzzFromfcNEQ_SWT - + c2o1*kxzFromfcNEQ_NEB - c2o1*kxzFromfcNEQ_NET + c2o1*kxzFromfcNEQ_NWB + c2o1*kxzFromfcNEQ_NWT - + c2o1*kxzFromfcNEQ_SEB - c2o1*kxzFromfcNEQ_SET + c2o1*kxzFromfcNEQ_SWB + c2o1*kxzFromfcNEQ_SWT - + c2o1*kyzFromfcNEQ_NEB - c2o1*kyzFromfcNEQ_NET - c2o1*kyzFromfcNEQ_NWB - c2o1*kyzFromfcNEQ_NWT + + c2o1*kyzFromfcNEQ_SEB + c2o1*kyzFromfcNEQ_SET + c2o1*kyzFromfcNEQ_SWB + c2o1*kyzFromfcNEQ_SWT - + c2o1*vx1_NEB + c2o1*vx1_NET + c2o1*vx1_NWB - c2o1*vx1_NWT - + c2o1*vx1_SEB + c2o1*vx1_SET + c2o1*vx1_SWB - c2o1*vx1_SWT - + c2o1*vx2_NEB + c2o1*vx2_NET - c2o1*vx2_NWB + c2o1*vx2_NWT + + c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB - c2o1*vx2_SWT + + c8o1*vx3_NEB + c8o1*vx3_NET + c8o1*vx3_NWB + c8o1*vx3_NWT + + c8o1*vx3_SEB + c8o1*vx3_SET + c8o1*vx3_SWB + c8o1*vx3_SWT)/c64o1; ax = (vx1_NEB + vx1_NET - vx1_NWB - vx1_NWT + vx1_SEB + vx1_SET - vx1_SWB - vx1_SWT)/c4o1; bx = (vx2_NEB + vx2_NET - vx2_NWB - vx2_NWT + vx2_SEB + vx2_SET - vx2_SWB - vx2_SWT)/c4o1; cx = (vx3_NEB + vx3_NET - vx3_NWB - vx3_NWT + vx3_SEB + vx3_SET - vx3_SWB - vx3_SWT)/c4o1; axx= (kxxMyyFromfcNEQ_NEB + kxxMyyFromfcNEQ_NET - kxxMyyFromfcNEQ_NWB - kxxMyyFromfcNEQ_NWT + - kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_SET - kxxMyyFromfcNEQ_SWB - kxxMyyFromfcNEQ_SWT + - kxxMzzFromfcNEQ_NEB + kxxMzzFromfcNEQ_NET - kxxMzzFromfcNEQ_NWB - kxxMzzFromfcNEQ_NWT + - kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_SET - kxxMzzFromfcNEQ_SWB - kxxMzzFromfcNEQ_SWT + - c2o1*vx2_NEB + c2o1*vx2_NET - c2o1*vx2_NWB - c2o1*vx2_NWT - - c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB + c2o1*vx2_SWT - - c2o1*vx3_NEB + c2o1*vx3_NET + c2o1*vx3_NWB - c2o1*vx3_NWT - - c2o1*vx3_SEB + c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)/c16o1; + kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_SET - kxxMyyFromfcNEQ_SWB - kxxMyyFromfcNEQ_SWT + + kxxMzzFromfcNEQ_NEB + kxxMzzFromfcNEQ_NET - kxxMzzFromfcNEQ_NWB - kxxMzzFromfcNEQ_NWT + + kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_SET - kxxMzzFromfcNEQ_SWB - kxxMzzFromfcNEQ_SWT + + c2o1*vx2_NEB + c2o1*vx2_NET - c2o1*vx2_NWB - c2o1*vx2_NWT - + c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB + c2o1*vx2_SWT - + c2o1*vx3_NEB + c2o1*vx3_NET + c2o1*vx3_NWB - c2o1*vx3_NWT - + c2o1*vx3_SEB + c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)/c16o1; bxx= (kxyFromfcNEQ_NEB + kxyFromfcNEQ_NET - kxyFromfcNEQ_NWB - kxyFromfcNEQ_NWT + - kxyFromfcNEQ_SEB + kxyFromfcNEQ_SET - kxyFromfcNEQ_SWB - kxyFromfcNEQ_SWT - - c2o1*vx1_NEB - c2o1*vx1_NET + c2o1*vx1_NWB + c2o1*vx1_NWT + - c2o1*vx1_SEB + c2o1*vx1_SET - c2o1*vx1_SWB - c2o1*vx1_SWT)/c8o1; + kxyFromfcNEQ_SEB + kxyFromfcNEQ_SET - kxyFromfcNEQ_SWB - kxyFromfcNEQ_SWT - + c2o1*vx1_NEB - c2o1*vx1_NET + c2o1*vx1_NWB + c2o1*vx1_NWT + + c2o1*vx1_SEB + c2o1*vx1_SET - c2o1*vx1_SWB - c2o1*vx1_SWT)/c8o1; cxx= (kxzFromfcNEQ_NEB + kxzFromfcNEQ_NET - kxzFromfcNEQ_NWB - kxzFromfcNEQ_NWT + - kxzFromfcNEQ_SEB + kxzFromfcNEQ_SET - kxzFromfcNEQ_SWB - kxzFromfcNEQ_SWT + - c2o1*vx1_NEB - c2o1*vx1_NET - c2o1*vx1_NWB + c2o1*vx1_NWT + - c2o1*vx1_SEB - c2o1*vx1_SET - c2o1*vx1_SWB + c2o1*vx1_SWT)/c8o1; + kxzFromfcNEQ_SEB + kxzFromfcNEQ_SET - kxzFromfcNEQ_SWB - kxzFromfcNEQ_SWT + + c2o1*vx1_NEB - c2o1*vx1_NET - c2o1*vx1_NWB + c2o1*vx1_NWT + + c2o1*vx1_SEB - c2o1*vx1_SET - c2o1*vx1_SWB + c2o1*vx1_SWT)/c8o1; ay = (vx1_NEB + vx1_NET + vx1_NWB + vx1_NWT - vx1_SEB - vx1_SET - vx1_SWB - vx1_SWT)/c4o1; by = (vx2_NEB + vx2_NET + vx2_NWB + vx2_NWT - vx2_SEB - vx2_SET - vx2_SWB - vx2_SWT)/c4o1; cy = (vx3_NEB + vx3_NET + vx3_NWB + vx3_NWT - vx3_SEB - vx3_SET - vx3_SWB - vx3_SWT)/c4o1; ayy= (kxyFromfcNEQ_NEB + kxyFromfcNEQ_NET + kxyFromfcNEQ_NWB + kxyFromfcNEQ_NWT - - kxyFromfcNEQ_SEB - kxyFromfcNEQ_SET - kxyFromfcNEQ_SWB - kxyFromfcNEQ_SWT - - c2o1*vx2_NEB - c2o1*vx2_NET + c2o1*vx2_NWB + c2o1*vx2_NWT + - c2o1*vx2_SEB + c2o1*vx2_SET - c2o1*vx2_SWB - c2o1*vx2_SWT)/c8o1; + kxyFromfcNEQ_SEB - kxyFromfcNEQ_SET - kxyFromfcNEQ_SWB - kxyFromfcNEQ_SWT - + c2o1*vx2_NEB - c2o1*vx2_NET + c2o1*vx2_NWB + c2o1*vx2_NWT + + c2o1*vx2_SEB + c2o1*vx2_SET - c2o1*vx2_SWB - c2o1*vx2_SWT)/c8o1; byy= (-c2o1*kxxMyyFromfcNEQ_NEB - c2o1*kxxMyyFromfcNEQ_NET - c2o1*kxxMyyFromfcNEQ_NWB - c2o1*kxxMyyFromfcNEQ_NWT + - c2o1*kxxMyyFromfcNEQ_SEB + c2o1*kxxMyyFromfcNEQ_SET + c2o1*kxxMyyFromfcNEQ_SWB + c2o1*kxxMyyFromfcNEQ_SWT + - kxxMzzFromfcNEQ_NEB + kxxMzzFromfcNEQ_NET + kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_NWT - - kxxMzzFromfcNEQ_SEB - kxxMzzFromfcNEQ_SET - kxxMzzFromfcNEQ_SWB - kxxMzzFromfcNEQ_SWT + - c2o1*vx1_NEB + c2o1*vx1_NET - c2o1*vx1_NWB - c2o1*vx1_NWT - - c2o1*vx1_SEB - c2o1*vx1_SET + c2o1*vx1_SWB + c2o1*vx1_SWT - - c2o1*vx3_NEB + c2o1*vx3_NET - c2o1*vx3_NWB + c2o1*vx3_NWT + - c2o1*vx3_SEB - c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)/c16o1; + c2o1*kxxMyyFromfcNEQ_SEB + c2o1*kxxMyyFromfcNEQ_SET + c2o1*kxxMyyFromfcNEQ_SWB + c2o1*kxxMyyFromfcNEQ_SWT + + kxxMzzFromfcNEQ_NEB + kxxMzzFromfcNEQ_NET + kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_NWT - + kxxMzzFromfcNEQ_SEB - kxxMzzFromfcNEQ_SET - kxxMzzFromfcNEQ_SWB - kxxMzzFromfcNEQ_SWT + + c2o1*vx1_NEB + c2o1*vx1_NET - c2o1*vx1_NWB - c2o1*vx1_NWT - + c2o1*vx1_SEB - c2o1*vx1_SET + c2o1*vx1_SWB + c2o1*vx1_SWT - + c2o1*vx3_NEB + c2o1*vx3_NET - c2o1*vx3_NWB + c2o1*vx3_NWT + + c2o1*vx3_SEB - c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)/c16o1; cyy= (kyzFromfcNEQ_NEB + kyzFromfcNEQ_NET + kyzFromfcNEQ_NWB + kyzFromfcNEQ_NWT - - kyzFromfcNEQ_SEB - kyzFromfcNEQ_SET - kyzFromfcNEQ_SWB - kyzFromfcNEQ_SWT + - c2o1*vx2_NEB - c2o1*vx2_NET + c2o1*vx2_NWB - c2o1*vx2_NWT - - c2o1*vx2_SEB + c2o1*vx2_SET - c2o1*vx2_SWB + c2o1*vx2_SWT)/c8o1; + kyzFromfcNEQ_SEB - kyzFromfcNEQ_SET - kyzFromfcNEQ_SWB - kyzFromfcNEQ_SWT + + c2o1*vx2_NEB - c2o1*vx2_NET + c2o1*vx2_NWB - c2o1*vx2_NWT - + c2o1*vx2_SEB + c2o1*vx2_SET - c2o1*vx2_SWB + c2o1*vx2_SWT)/c8o1; az = (-vx1_NEB + vx1_NET - vx1_NWB + vx1_NWT - vx1_SEB + vx1_SET - vx1_SWB + vx1_SWT)/c4o1; bz = (-vx2_NEB + vx2_NET - vx2_NWB + vx2_NWT - vx2_SEB + vx2_SET - vx2_SWB + vx2_SWT)/c4o1; cz = (-vx3_NEB + vx3_NET - vx3_NWB + vx3_NWT - vx3_SEB + vx3_SET - vx3_SWB + vx3_SWT)/c4o1; azz= (-kxzFromfcNEQ_NEB + kxzFromfcNEQ_NET - kxzFromfcNEQ_NWB + kxzFromfcNEQ_NWT - - kxzFromfcNEQ_SEB + kxzFromfcNEQ_SET - kxzFromfcNEQ_SWB + kxzFromfcNEQ_SWT + - c2o1*vx3_NEB - c2o1*vx3_NET - c2o1*vx3_NWB + c2o1*vx3_NWT + - c2o1*vx3_SEB - c2o1*vx3_SET - c2o1*vx3_SWB + c2o1*vx3_SWT)/c8o1; + kxzFromfcNEQ_SEB + kxzFromfcNEQ_SET - kxzFromfcNEQ_SWB + kxzFromfcNEQ_SWT + + c2o1*vx3_NEB - c2o1*vx3_NET - c2o1*vx3_NWB + c2o1*vx3_NWT + + c2o1*vx3_SEB - c2o1*vx3_SET - c2o1*vx3_SWB + c2o1*vx3_SWT)/c8o1; bzz= (-kyzFromfcNEQ_NEB + kyzFromfcNEQ_NET - kyzFromfcNEQ_NWB + kyzFromfcNEQ_NWT - - kyzFromfcNEQ_SEB + kyzFromfcNEQ_SET - kyzFromfcNEQ_SWB + kyzFromfcNEQ_SWT + - c2o1*vx3_NEB - c2o1*vx3_NET + c2o1*vx3_NWB - c2o1*vx3_NWT - - c2o1*vx3_SEB + c2o1*vx3_SET - c2o1*vx3_SWB + c2o1*vx3_SWT)/c8o1; + kyzFromfcNEQ_SEB + kyzFromfcNEQ_SET - kyzFromfcNEQ_SWB + kyzFromfcNEQ_SWT + + c2o1*vx3_NEB - c2o1*vx3_NET + c2o1*vx3_NWB - c2o1*vx3_NWT - + c2o1*vx3_SEB + c2o1*vx3_SET - c2o1*vx3_SWB + c2o1*vx3_SWT)/c8o1; czz= (-kxxMyyFromfcNEQ_NEB + kxxMyyFromfcNEQ_NET - kxxMyyFromfcNEQ_NWB + kxxMyyFromfcNEQ_NWT - - kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_SET - kxxMyyFromfcNEQ_SWB + kxxMyyFromfcNEQ_SWT + - c2o1*kxxMzzFromfcNEQ_NEB - c2o1*kxxMzzFromfcNEQ_NET + c2o1*kxxMzzFromfcNEQ_NWB - c2o1*kxxMzzFromfcNEQ_NWT + - c2o1*kxxMzzFromfcNEQ_SEB - c2o1*kxxMzzFromfcNEQ_SET + c2o1*kxxMzzFromfcNEQ_SWB - c2o1*kxxMzzFromfcNEQ_SWT - - c2o1*vx1_NEB + c2o1*vx1_NET + c2o1*vx1_NWB - c2o1*vx1_NWT - - c2o1*vx1_SEB + c2o1*vx1_SET + c2o1*vx1_SWB - c2o1*vx1_SWT - - c2o1*vx2_NEB + c2o1*vx2_NET - c2o1*vx2_NWB + c2o1*vx2_NWT + - c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB - c2o1*vx2_SWT)/c16o1; + kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_SET - kxxMyyFromfcNEQ_SWB + kxxMyyFromfcNEQ_SWT + + c2o1*kxxMzzFromfcNEQ_NEB - c2o1*kxxMzzFromfcNEQ_NET + c2o1*kxxMzzFromfcNEQ_NWB - c2o1*kxxMzzFromfcNEQ_NWT + + c2o1*kxxMzzFromfcNEQ_SEB - c2o1*kxxMzzFromfcNEQ_SET + c2o1*kxxMzzFromfcNEQ_SWB - c2o1*kxxMzzFromfcNEQ_SWT - + c2o1*vx1_NEB + c2o1*vx1_NET + c2o1*vx1_NWB - c2o1*vx1_NWT - + c2o1*vx1_SEB + c2o1*vx1_SET + c2o1*vx1_SWB - c2o1*vx1_SWT - + c2o1*vx2_NEB + c2o1*vx2_NET - c2o1*vx2_NWB + c2o1*vx2_NWT + + c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB - c2o1*vx2_SWT)/c16o1; axy= (vx1_NEB + vx1_NET - vx1_NWB - vx1_NWT - vx1_SEB - vx1_SET + vx1_SWB + vx1_SWT)/c2o1; bxy= (vx2_NEB + vx2_NET - vx2_NWB - vx2_NWT - vx2_SEB - vx2_SET + vx2_SWB + vx2_SWT)/c2o1; cxy= (vx3_NEB + vx3_NET - vx3_NWB - vx3_NWT - vx3_SEB - vx3_SET + vx3_SWB + vx3_SWT)/c2o1; @@ -9020,94 +9020,94 @@ __global__ void scaleFC_RhoSq_3rdMom_comp_27(real* DC, //bxyz=-vx2_NEB + vx2_NET + vx2_NWB - vx2_NWT + vx2_SEB - vx2_SET - vx2_SWB + vx2_SWT; //cxyz=-vx3_NEB + vx3_NET + vx3_NWB - vx3_NWT + vx3_SEB - vx3_SET - vx3_SWB + vx3_SWT; ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real kxyAverage = c0o1; - real kyzAverage = c0o1; - real kxzAverage = c0o1; - real kxxMyyAverage = c0o1; - real kxxMzzAverage = c0o1; - //real kxyAverage =(kxyFromfcNEQ_SWB+ - // kxyFromfcNEQ_SWT+ - // kxyFromfcNEQ_SET+ - // kxyFromfcNEQ_SEB+ - // kxyFromfcNEQ_NWB+ - // kxyFromfcNEQ_NWT+ - // kxyFromfcNEQ_NET+ - // kxyFromfcNEQ_NEB)*c1o8-(ay+bx); - //real kyzAverage =(kyzFromfcNEQ_SWB+ - // kyzFromfcNEQ_SWT+ - // kyzFromfcNEQ_SET+ - // kyzFromfcNEQ_SEB+ - // kyzFromfcNEQ_NWB+ - // kyzFromfcNEQ_NWT+ - // kyzFromfcNEQ_NET+ - // kyzFromfcNEQ_NEB)*c1o8-(bz+cy); - //real kxzAverage =(kxzFromfcNEQ_SWB+ - // kxzFromfcNEQ_SWT+ - // kxzFromfcNEQ_SET+ - // kxzFromfcNEQ_SEB+ - // kxzFromfcNEQ_NWB+ - // kxzFromfcNEQ_NWT+ - // kxzFromfcNEQ_NET+ - // kxzFromfcNEQ_NEB)*c1o8-(az+cx); - //real kxxMyyAverage =(kxxMyyFromfcNEQ_SWB+ - // kxxMyyFromfcNEQ_SWT+ - // kxxMyyFromfcNEQ_SET+ - // kxxMyyFromfcNEQ_SEB+ - // kxxMyyFromfcNEQ_NWB+ - // kxxMyyFromfcNEQ_NWT+ - // kxxMyyFromfcNEQ_NET+ - // kxxMyyFromfcNEQ_NEB)*c1o8-(ax-by); - //real kxxMzzAverage =(kxxMzzFromfcNEQ_SWB+ - // kxxMzzFromfcNEQ_SWT+ - // kxxMzzFromfcNEQ_SET+ - // kxxMzzFromfcNEQ_SEB+ - // kxxMzzFromfcNEQ_NWB+ - // kxxMzzFromfcNEQ_NWT+ - // kxxMzzFromfcNEQ_NET+ - // kxxMzzFromfcNEQ_NEB)*c1o8-(ax-cz); - - - - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - ////Press - //d0 = ( press_NEB + press_NET + press_NWB + press_NWT + press_SEB + press_SET + press_SWB + press_SWT) * c1o8; - //dx = ( press_NEB + press_NET - press_NWB - press_NWT + press_SEB + press_SET - press_SWB - press_SWT) * c1o4; - //dy = ( press_NEB + press_NET + press_NWB + press_NWT - press_SEB - press_SET - press_SWB - press_SWT) * c1o4; - //dz = (-press_NEB + press_NET - press_NWB + press_NWT - press_SEB + press_SET - press_SWB + press_SWT) * c1o4; - //dxy = ( press_NEB + press_NET - press_NWB - press_NWT - press_SEB - press_SET + press_SWB + press_SWT) * c1o2; - //dxz = (-press_NEB + press_NET + press_NWB - press_NWT - press_SEB + press_SET + press_SWB - press_SWT) * c1o2; - //dyz = (-press_NEB + press_NET - press_NWB + press_NWT + press_SEB - press_SET + press_SWB - press_SWT) * c1o2; - //dxyz = -press_NEB + press_NET + press_NWB - press_NWT + press_SEB - press_SET - press_SWB + press_SWT; - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho - real LapRho = ((xoff != c0o1) || (yoff != c0o1) || (zoff != c0o1)) ? c0o1 : -c3o1*(ax*ax + by*by + cz*cz) - c6o1 * (bx*ay + cx*az + cy*bz); - d0 = ( drho_NEB + drho_NET + drho_NWB + drho_NWT + drho_SEB + drho_SET + drho_SWB + drho_SWT - c2o1*LapRho) * c1o8; - dx = ( drho_NEB + drho_NET - drho_NWB - drho_NWT + drho_SEB + drho_SET - drho_SWB - drho_SWT) * c1o4; - dy = ( drho_NEB + drho_NET + drho_NWB + drho_NWT - drho_SEB - drho_SET - drho_SWB - drho_SWT) * c1o4; - dz = (-drho_NEB + drho_NET - drho_NWB + drho_NWT - drho_SEB + drho_SET - drho_SWB + drho_SWT) * c1o4; - dxy = ( drho_NEB + drho_NET - drho_NWB - drho_NWT - drho_SEB - drho_SET + drho_SWB + drho_SWT) * c1o2; - dxz = (-drho_NEB + drho_NET + drho_NWB - drho_NWT - drho_SEB + drho_SET + drho_SWB - drho_SWT) * c1o2; - dyz = (-drho_NEB + drho_NET - drho_NWB + drho_NWT + drho_SEB - drho_SET + drho_SWB - drho_SWT) * c1o2; - //dxyz = -drho_NEB + drho_NET + drho_NWB - drho_NWT + drho_SEB - drho_SET - drho_SWB + drho_SWT; - //d0 = zero; - //dx = zero; - //dy = zero; - //dz = zero; - //dxy = zero; - //dxz = zero; - //dyz = zero; - //dxyz = zero; + real kxyAverage = c0o1; + real kyzAverage = c0o1; + real kxzAverage = c0o1; + real kxxMyyAverage = c0o1; + real kxxMzzAverage = c0o1; + //real kxyAverage =(kxyFromfcNEQ_SWB+ + // kxyFromfcNEQ_SWT+ + // kxyFromfcNEQ_SET+ + // kxyFromfcNEQ_SEB+ + // kxyFromfcNEQ_NWB+ + // kxyFromfcNEQ_NWT+ + // kxyFromfcNEQ_NET+ + // kxyFromfcNEQ_NEB)*c1o8-(ay+bx); + //real kyzAverage =(kyzFromfcNEQ_SWB+ + // kyzFromfcNEQ_SWT+ + // kyzFromfcNEQ_SET+ + // kyzFromfcNEQ_SEB+ + // kyzFromfcNEQ_NWB+ + // kyzFromfcNEQ_NWT+ + // kyzFromfcNEQ_NET+ + // kyzFromfcNEQ_NEB)*c1o8-(bz+cy); + //real kxzAverage =(kxzFromfcNEQ_SWB+ + // kxzFromfcNEQ_SWT+ + // kxzFromfcNEQ_SET+ + // kxzFromfcNEQ_SEB+ + // kxzFromfcNEQ_NWB+ + // kxzFromfcNEQ_NWT+ + // kxzFromfcNEQ_NET+ + // kxzFromfcNEQ_NEB)*c1o8-(az+cx); + //real kxxMyyAverage =(kxxMyyFromfcNEQ_SWB+ + // kxxMyyFromfcNEQ_SWT+ + // kxxMyyFromfcNEQ_SET+ + // kxxMyyFromfcNEQ_SEB+ + // kxxMyyFromfcNEQ_NWB+ + // kxxMyyFromfcNEQ_NWT+ + // kxxMyyFromfcNEQ_NET+ + // kxxMyyFromfcNEQ_NEB)*c1o8-(ax-by); + //real kxxMzzAverage =(kxxMzzFromfcNEQ_SWB+ + // kxxMzzFromfcNEQ_SWT+ + // kxxMzzFromfcNEQ_SET+ + // kxxMzzFromfcNEQ_SEB+ + // kxxMzzFromfcNEQ_NWB+ + // kxxMzzFromfcNEQ_NWT+ + // kxxMzzFromfcNEQ_NET+ + // kxxMzzFromfcNEQ_NEB)*c1o8-(ax-cz); + + + + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + ////Press + //d0 = ( press_NEB + press_NET + press_NWB + press_NWT + press_SEB + press_SET + press_SWB + press_SWT) * c1o8; + //dx = ( press_NEB + press_NET - press_NWB - press_NWT + press_SEB + press_SET - press_SWB - press_SWT) * c1o4; + //dy = ( press_NEB + press_NET + press_NWB + press_NWT - press_SEB - press_SET - press_SWB - press_SWT) * c1o4; + //dz = (-press_NEB + press_NET - press_NWB + press_NWT - press_SEB + press_SET - press_SWB + press_SWT) * c1o4; + //dxy = ( press_NEB + press_NET - press_NWB - press_NWT - press_SEB - press_SET + press_SWB + press_SWT) * c1o2; + //dxz = (-press_NEB + press_NET + press_NWB - press_NWT - press_SEB + press_SET + press_SWB - press_SWT) * c1o2; + //dyz = (-press_NEB + press_NET - press_NWB + press_NWT + press_SEB - press_SET + press_SWB - press_SWT) * c1o2; + //dxyz = -press_NEB + press_NET + press_NWB - press_NWT + press_SEB - press_SET - press_SWB + press_SWT; + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho + real LapRho = ((xoff != c0o1) || (yoff != c0o1) || (zoff != c0o1)) ? c0o1 : -c3o1*(ax*ax + by*by + cz*cz) - c6o1 * (bx*ay + cx*az + cy*bz); + d0 = ( drho_NEB + drho_NET + drho_NWB + drho_NWT + drho_SEB + drho_SET + drho_SWB + drho_SWT - c2o1*LapRho) * c1o8; + dx = ( drho_NEB + drho_NET - drho_NWB - drho_NWT + drho_SEB + drho_SET - drho_SWB - drho_SWT) * c1o4; + dy = ( drho_NEB + drho_NET + drho_NWB + drho_NWT - drho_SEB - drho_SET - drho_SWB - drho_SWT) * c1o4; + dz = (-drho_NEB + drho_NET - drho_NWB + drho_NWT - drho_SEB + drho_SET - drho_SWB + drho_SWT) * c1o4; + dxy = ( drho_NEB + drho_NET - drho_NWB - drho_NWT - drho_SEB - drho_SET + drho_SWB + drho_SWT) * c1o2; + dxz = (-drho_NEB + drho_NET + drho_NWB - drho_NWT - drho_SEB + drho_SET + drho_SWB - drho_SWT) * c1o2; + dyz = (-drho_NEB + drho_NET - drho_NWB + drho_NWT + drho_SEB - drho_SET + drho_SWB - drho_SWT) * c1o2; + //dxyz = -drho_NEB + drho_NET + drho_NWB - drho_NWT + drho_SEB - drho_SET - drho_SWB + drho_SWT; + //d0 = zero; + //dx = zero; + //dy = zero; + //dz = zero; + //dxy = zero; + //dxz = zero; + //dyz = zero; + //dxyz = zero; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // // Bernd das Brot - // // - // x------x - // | | - // | ---+--->X - // | | \ - // x------x \ - // off-vector + // + // x------x + // | | + // | ---+--->X + // | | \ + // x------x \ + // off-vector //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// a0 = a0 + xoff * ax + yoff * ay + zoff * az + xoff_sq * axx + yoff_sq * ayy + zoff_sq * azz + xoff*yoff*axy + xoff*zoff*axz + yoff*zoff*ayz; ax = ax + c2o1 * xoff * axx + yoff * axy + zoff * axz; @@ -9121,414 +9121,414 @@ __global__ void scaleFC_RhoSq_3rdMom_comp_27(real* DC, cx = cx + c2o1 * xoff * cxx + yoff * cxy + zoff * cxz; cy = cy + c2o1 * yoff * cyy + xoff * cxy + zoff * cyz; cz = cz + c2o1 * zoff * czz + xoff * cxz + yoff * cyz; - d0 = d0 + xoff * dx + yoff * dy + zoff * dz + xoff*yoff*dxy + xoff*zoff*dxz + yoff*zoff*dyz; + d0 = d0 + xoff * dx + yoff * dy + zoff * dz + xoff*yoff*dxy + xoff*zoff*dxz + yoff*zoff*dyz; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // FIX /////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //AAAAAAAAAAAAHHHHHHHHHHHH!!!!! Mieser Test!!! + //b0= bx= by= bz= bxx= byy= bzz= bxy= bxz= byz= c0= cx= cy= cz= cxx= cyy= czz= cxy= cxz= cyz= axyz= bxyz= cxyz=zero; + //b0=zero; + //bx=zero; + //by=zero; + //bz=zero; + //bxx=zero; + //byy=zero; + //bzz=zero; + //bxy=zero; + //bxz=zero; + //byz=zero; + //c0=zero; + //cx=zero; + //cy=zero; + //cz=zero; + //cxx=zero; + //cyy=zero; + //czz=zero; + //cxy=zero; + //cxz=zero; + //cyz=zero; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + mfcbb = c0o1; + mfabb = c0o1; + mfbcb = c0o1; + mfbab = c0o1; + mfbbc = c0o1; + mfbba = c0o1; + mfccb = c0o1; + mfaab = c0o1; + mfcab = c0o1; + mfacb = c0o1; + mfcbc = c0o1; + mfaba = c0o1; + mfcba = c0o1; + mfabc = c0o1; + mfbcc = c0o1; + mfbaa = c0o1; + mfbca = c0o1; + mfbac = c0o1; + mfbbb = c0o1; + mfccc = c0o1; + mfaac = c0o1; + mfcac = c0o1; + mfacc = c0o1; + mfcca = c0o1; + mfaaa = c0o1; + mfcaa = c0o1; + mfaca = c0o1; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // FIX /////////////////////////////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //AAAAAAAAAAAAHHHHHHHHHHHH!!!!! Mieser Test!!! - //b0= bx= by= bz= bxx= byy= bzz= bxy= bxz= byz= c0= cx= cy= cz= cxx= cyy= czz= cxy= cxz= cyz= axyz= bxyz= cxyz=zero; - //b0=zero; - //bx=zero; - //by=zero; - //bz=zero; - //bxx=zero; - //byy=zero; - //bzz=zero; - //bxy=zero; - //bxz=zero; - //byz=zero; - //c0=zero; - //cx=zero; - //cy=zero; - //cz=zero; - //cxx=zero; - //cyy=zero; - //czz=zero; - //cxy=zero; - //cxz=zero; - //cyz=zero; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - mfcbb = c0o1; - mfabb = c0o1; - mfbcb = c0o1; - mfbab = c0o1; - mfbbc = c0o1; - mfbba = c0o1; - mfccb = c0o1; - mfaab = c0o1; - mfcab = c0o1; - mfacb = c0o1; - mfcbc = c0o1; - mfaba = c0o1; - mfcba = c0o1; - mfabc = c0o1; - mfbcc = c0o1; - mfbaa = c0o1; - mfbca = c0o1; - mfbac = c0o1; - mfbbb = c0o1; - mfccc = c0o1; - mfaac = c0o1; - mfcac = c0o1; - mfacc = c0o1; - mfcca = c0o1; - mfaaa = c0o1; - mfcaa = c0o1; - mfaca = c0o1; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //real m0, m1, m2, vvx, vvy, vvz, vx2, vy2, vz2, oMdrho; - //real mxxPyyPzz, mxxMyy, mxxMzz, mxxyPyzz, mxxyMyzz, mxxzPyyz, mxxzMyyz, mxyyPxzz, mxyyMxzz; - //real qudricLimit = c1o100;//ganz schlechte Idee -> muss global sein - //real O3 = two - o; - //real residu, residutmp; - //residutmp = zero;///*-*/ c2o9 * (1./o - c1o2) * eps_new * eps_new; - //real NeqOn = one;//zero;//one; //.... one = on ..... zero = off - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position C 0., 0., 0. - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //x = 0.; - //y = 0.; - //z = 0.; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //real mxoff = -xoff; - //real myoff = -yoff; - //real mzoff = -zoff; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //press = press_NET * (c1o8 - c1o4 * mxoff - c1o4 * myoff - c1o4 * mzoff) + - // press_NWT * (c1o8 + c1o4 * mxoff - c1o4 * myoff - c1o4 * mzoff) + - // press_SET * (c1o8 - c1o4 * mxoff + c1o4 * myoff - c1o4 * mzoff) + - // press_SWT * (c1o8 + c1o4 * mxoff + c1o4 * myoff - c1o4 * mzoff) + - // press_NEB * (c1o8 - c1o4 * mxoff - c1o4 * myoff + c1o4 * mzoff) + - // press_NWB * (c1o8 + c1o4 * mxoff - c1o4 * myoff + c1o4 * mzoff) + - // press_SEB * (c1o8 - c1o4 * mxoff + c1o4 * myoff + c1o4 * mzoff) + - // press_SWB * (c1o8 + c1o4 * mxoff + c1o4 * myoff + c1o4 * mzoff); - //drho = drho_NET * (c1o8 - c1o4 * xoff - c1o4 * yoff - c1o4 * zoff) + - // drho_NWT * (c1o8 + c1o4 * xoff - c1o4 * yoff - c1o4 * zoff) + - // drho_SET * (c1o8 - c1o4 * xoff + c1o4 * yoff - c1o4 * zoff) + - // drho_SWT * (c1o8 + c1o4 * xoff + c1o4 * yoff - c1o4 * zoff) + - // drho_NEB * (c1o8 - c1o4 * xoff - c1o4 * yoff + c1o4 * zoff) + - // drho_NWB * (c1o8 + c1o4 * xoff - c1o4 * yoff + c1o4 * zoff) + - // drho_SEB * (c1o8 - c1o4 * xoff + c1o4 * yoff + c1o4 * zoff) + - // drho_SWB * (c1o8 + c1o4 * xoff + c1o4 * yoff + c1o4 * zoff); - press = d0; - vvx = a0; - vvy = b0; - vvz = c0; - - //mfaaa = drho; - //mfaaa = press + (ax+by+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //two - // linear combinations - mxxPyyPzz = mfaaa; - //mxxMyy = -c2o3*(ax - by)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy)*eps_new/o; - //mfbab = -c1o3 * (az + cx)*eps_new/o; - //mfbba = -c1o3 * (ay + bx)*eps_new/o; - mxxMyy = -c2o3*((ax - by)+kxxMyyAverage)*eps_new/o * (c1o1 + press); - mxxMzz = -c2o3*((ax - cz)+kxxMzzAverage)*eps_new/o * (c1o1 + press); - - mfabb = -c1o3 * ((bz + cy)+kyzAverage)*eps_new/o * (c1o1 + press); - mfbab = -c1o3 * ((az + cx)+kxzAverage)*eps_new/o * (c1o1 + press); - mfbba = -c1o3 * ((ay + bx)+kxyAverage)*eps_new/o * (c1o1 + press); - - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //3. - // linear combinations - mfbbb = c1o2 * (( omCoarse + c12o1)*(-omFine + c2o1)) / (( omFine + c12o1)*(-omCoarse + c2o1)) * mfbbbMean; - mxxyPyzz = c1o2 * ((-omCoarse + c3o1 )*(-omFine + c2o1)) / ((-omFine + c3o1 )*(-omCoarse + c2o1)) * mxxyPyzzMean; - mxxyMyzz = c1o2 * ((-omCoarse + c6o1 )*(-omFine + c2o1)) / ((-omFine + c6o1 )*(-omCoarse + c2o1)) * mxxyMyzzMean; - mxxzPyyz = c1o2 * ((-omCoarse + c3o1 )*(-omFine + c2o1)) / ((-omFine + c3o1 )*(-omCoarse + c2o1)) * mxxzPyyzMean; - mxxzMyyz = c1o2 * ((-omCoarse + c6o1 )*(-omFine + c2o1)) / ((-omFine + c6o1 )*(-omCoarse + c2o1)) * mxxzMyyzMean; - mxyyPxzz = c1o2 * ((-omCoarse + c3o1 )*(-omFine + c2o1)) / ((-omFine + c3o1 )*(-omCoarse + c2o1)) * mxyyPxzzMean; - mxyyMxzz = c1o2 * ((-omCoarse + c6o1 )*(-omFine + c2o1)) / ((-omFine + c6o1 )*(-omCoarse + c2o1)) * mxyyMxzzMean; - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4. - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - //index 0 - kzero= posC[k]; - kw = neighborCX[kzero]; - ks = neighborCY[kzero]; - kb = neighborCZ[kzero]; - ksw = neighborCY[kw]; - kbw = neighborCZ[kw]; - kbs = neighborCZ[ks]; - kbsw = neighborCZ[ksw]; - //////////////////////////////////////////////////////////////////////////////////// - - - //////////////////////////////////////////////////////////////////////////////////// - feC[kzero] = mfcbb; - fwC[kw] = mfabb; - fnC[kzero] = mfbcb; - fsC[ks] = mfbab; - ftC[kzero] = mfbbc; - fbC[kb] = mfbba; - fneC[kzero] = mfccb; - fswC[ksw] = mfaab; - fseC[ks] = mfcab; - fnwC[kw] = mfacb; - fteC[kzero] = mfcbc; - fbwC[kbw] = mfaba; - fbeC[kb] = mfcba; - ftwC[kw] = mfabc; - ftnC[kzero] = mfbcc; - fbsC[kbs] = mfbaa; - fbnC[kb] = mfbca; - ftsC[ks] = mfbac; - fzeroC[kzero] = mfbbb; - ftneC[kzero] = mfccc; - ftseC[ks] = mfcac; - fbneC[kb] = mfcca; - fbseC[kbs] = mfcaa; - ftnwC[kw] = mfacc; - ftswC[ksw] = mfaac; - fbnwC[kbw] = mfaca; - fbswC[kbsw] = mfaaa; - //////////////////////////////////////////////////////////////////////////////////// + //real m0, m1, m2, vvx, vvy, vvz, vx2, vy2, vz2, oMdrho; + //real mxxPyyPzz, mxxMyy, mxxMzz, mxxyPyzz, mxxyMyzz, mxxzPyyz, mxxzMyyz, mxyyPxzz, mxyyMxzz; + //real qudricLimit = c1o100;//ganz schlechte Idee -> muss global sein + //real O3 = two - o; + //real residu, residutmp; + //residutmp = zero;///*-*/ c2o9 * (1./o - c1o2) * eps_new * eps_new; + //real NeqOn = one;//zero;//one; //.... one = on ..... zero = off + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position C 0., 0., 0. + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //x = 0.; + //y = 0.; + //z = 0.; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //real mxoff = -xoff; + //real myoff = -yoff; + //real mzoff = -zoff; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //press = press_NET * (c1o8 - c1o4 * mxoff - c1o4 * myoff - c1o4 * mzoff) + + // press_NWT * (c1o8 + c1o4 * mxoff - c1o4 * myoff - c1o4 * mzoff) + + // press_SET * (c1o8 - c1o4 * mxoff + c1o4 * myoff - c1o4 * mzoff) + + // press_SWT * (c1o8 + c1o4 * mxoff + c1o4 * myoff - c1o4 * mzoff) + + // press_NEB * (c1o8 - c1o4 * mxoff - c1o4 * myoff + c1o4 * mzoff) + + // press_NWB * (c1o8 + c1o4 * mxoff - c1o4 * myoff + c1o4 * mzoff) + + // press_SEB * (c1o8 - c1o4 * mxoff + c1o4 * myoff + c1o4 * mzoff) + + // press_SWB * (c1o8 + c1o4 * mxoff + c1o4 * myoff + c1o4 * mzoff); + //drho = drho_NET * (c1o8 - c1o4 * xoff - c1o4 * yoff - c1o4 * zoff) + + // drho_NWT * (c1o8 + c1o4 * xoff - c1o4 * yoff - c1o4 * zoff) + + // drho_SET * (c1o8 - c1o4 * xoff + c1o4 * yoff - c1o4 * zoff) + + // drho_SWT * (c1o8 + c1o4 * xoff + c1o4 * yoff - c1o4 * zoff) + + // drho_NEB * (c1o8 - c1o4 * xoff - c1o4 * yoff + c1o4 * zoff) + + // drho_NWB * (c1o8 + c1o4 * xoff - c1o4 * yoff + c1o4 * zoff) + + // drho_SEB * (c1o8 - c1o4 * xoff + c1o4 * yoff + c1o4 * zoff) + + // drho_SWB * (c1o8 + c1o4 * xoff + c1o4 * yoff + c1o4 * zoff); + press = d0; + vvx = a0; + vvy = b0; + vvz = c0; + + //mfaaa = drho; + //mfaaa = press + (ax+by+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1; + //oMdrho = one - mfaaa; + + //two + // linear combinations + mxxPyyPzz = mfaaa; + //mxxMyy = -c2o3*(ax - by)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy)*eps_new/o; + //mfbab = -c1o3 * (az + cx)*eps_new/o; + //mfbba = -c1o3 * (ay + bx)*eps_new/o; + mxxMyy = -c2o3*((ax - by)+kxxMyyAverage)*eps_new/o * (c1o1 + press); + mxxMzz = -c2o3*((ax - cz)+kxxMzzAverage)*eps_new/o * (c1o1 + press); + + mfabb = -c1o3 * ((bz + cy)+kyzAverage)*eps_new/o * (c1o1 + press); + mfbab = -c1o3 * ((az + cx)+kxzAverage)*eps_new/o * (c1o1 + press); + mfbba = -c1o3 * ((ay + bx)+kxyAverage)*eps_new/o * (c1o1 + press); + + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //3. + // linear combinations + mfbbb = c1o2 * (( omCoarse + c12o1)*(-omFine + c2o1)) / (( omFine + c12o1)*(-omCoarse + c2o1)) * mfbbbMean; + mxxyPyzz = c1o2 * ((-omCoarse + c3o1 )*(-omFine + c2o1)) / ((-omFine + c3o1 )*(-omCoarse + c2o1)) * mxxyPyzzMean; + mxxyMyzz = c1o2 * ((-omCoarse + c6o1 )*(-omFine + c2o1)) / ((-omFine + c6o1 )*(-omCoarse + c2o1)) * mxxyMyzzMean; + mxxzPyyz = c1o2 * ((-omCoarse + c3o1 )*(-omFine + c2o1)) / ((-omFine + c3o1 )*(-omCoarse + c2o1)) * mxxzPyyzMean; + mxxzMyyz = c1o2 * ((-omCoarse + c6o1 )*(-omFine + c2o1)) / ((-omFine + c6o1 )*(-omCoarse + c2o1)) * mxxzMyyzMean; + mxyyPxzz = c1o2 * ((-omCoarse + c3o1 )*(-omFine + c2o1)) / ((-omFine + c3o1 )*(-omCoarse + c2o1)) * mxyyPxzzMean; + mxyyMxzz = c1o2 * ((-omCoarse + c6o1 )*(-omFine + c2o1)) / ((-omFine + c6o1 )*(-omCoarse + c2o1)) * mxyyMxzzMean; + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4. + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + //index 0 + kzero= posC[k]; + kw = neighborCX[kzero]; + ks = neighborCY[kzero]; + kb = neighborCZ[kzero]; + ksw = neighborCY[kw]; + kbw = neighborCZ[kw]; + kbs = neighborCZ[ks]; + kbsw = neighborCZ[ksw]; + //////////////////////////////////////////////////////////////////////////////////// + + + //////////////////////////////////////////////////////////////////////////////////// + feC[kzero] = mfcbb; + fwC[kw] = mfabb; + fnC[kzero] = mfbcb; + fsC[ks] = mfbab; + ftC[kzero] = mfbbc; + fbC[kb] = mfbba; + fneC[kzero] = mfccb; + fswC[ksw] = mfaab; + fseC[ks] = mfcab; + fnwC[kw] = mfacb; + fteC[kzero] = mfcbc; + fbwC[kbw] = mfaba; + fbeC[kb] = mfcba; + ftwC[kw] = mfabc; + ftnC[kzero] = mfbcc; + fbsC[kbs] = mfbaa; + fbnC[kb] = mfbca; + ftsC[ks] = mfbac; + fzeroC[kzero] = mfbbb; + ftneC[kzero] = mfccc; + ftseC[ks] = mfcac; + fbneC[kb] = mfcca; + fbseC[kbs] = mfcaa; + ftnwC[kw] = mfacc; + ftswC[ksw] = mfaac; + fbnwC[kbw] = mfaca; + fbswC[kbsw] = mfaaa; + //////////////////////////////////////////////////////////////////////////////////// } } ////////////////////////////////////////////////////////////////////////// @@ -10545,46 +10545,46 @@ __device__ void scaleFC_RhoSq_comp_27_Calculation( real kxzAverage = c0o1; real kxxMyyAverage = c0o1; real kxxMzzAverage = c0o1; - // real kxyAverage =(kxyFromfcNEQ_SWB+ - // kxyFromfcNEQ_SWT+ - // kxyFromfcNEQ_SET+ - // kxyFromfcNEQ_SEB+ - // kxyFromfcNEQ_NWB+ - // kxyFromfcNEQ_NWT+ - // kxyFromfcNEQ_NET+ - // kxyFromfcNEQ_NEB)*c1o8-(ay+bx); - // real kyzAverage =(kyzFromfcNEQ_SWB+ - // kyzFromfcNEQ_SWT+ - // kyzFromfcNEQ_SET+ - // kyzFromfcNEQ_SEB+ - // kyzFromfcNEQ_NWB+ - // kyzFromfcNEQ_NWT+ - // kyzFromfcNEQ_NET+ - // kyzFromfcNEQ_NEB)*c1o8-(bz+cy); - // real kxzAverage =(kxzFromfcNEQ_SWB+ - // kxzFromfcNEQ_SWT+ - // kxzFromfcNEQ_SET+ - // kxzFromfcNEQ_SEB+ - // kxzFromfcNEQ_NWB+ - // kxzFromfcNEQ_NWT+ - // kxzFromfcNEQ_NET+ - // kxzFromfcNEQ_NEB)*c1o8-(az+cx); - // real kxxMyyAverage =(kxxMyyFromfcNEQ_SWB+ - // kxxMyyFromfcNEQ_SWT+ - // kxxMyyFromfcNEQ_SET+ - // kxxMyyFromfcNEQ_SEB+ - // kxxMyyFromfcNEQ_NWB+ - // kxxMyyFromfcNEQ_NWT+ - // kxxMyyFromfcNEQ_NET+ - // kxxMyyFromfcNEQ_NEB)*c1o8-(ax-by); - // real kxxMzzAverage =(kxxMzzFromfcNEQ_SWB+ - // kxxMzzFromfcNEQ_SWT+ - // kxxMzzFromfcNEQ_SET+ - // kxxMzzFromfcNEQ_SEB+ - // kxxMzzFromfcNEQ_NWB+ - // kxxMzzFromfcNEQ_NWT+ - // kxxMzzFromfcNEQ_NET+ - // kxxMzzFromfcNEQ_NEB)*c1o8-(ax-cz); + // real kxyAverage =(kxyFromfcNEQ_SWB+ + // kxyFromfcNEQ_SWT+ + // kxyFromfcNEQ_SET+ + // kxyFromfcNEQ_SEB+ + // kxyFromfcNEQ_NWB+ + // kxyFromfcNEQ_NWT+ + // kxyFromfcNEQ_NET+ + // kxyFromfcNEQ_NEB)*c1o8-(ay+bx); + // real kyzAverage =(kyzFromfcNEQ_SWB+ + // kyzFromfcNEQ_SWT+ + // kyzFromfcNEQ_SET+ + // kyzFromfcNEQ_SEB+ + // kyzFromfcNEQ_NWB+ + // kyzFromfcNEQ_NWT+ + // kyzFromfcNEQ_NET+ + // kyzFromfcNEQ_NEB)*c1o8-(bz+cy); + // real kxzAverage =(kxzFromfcNEQ_SWB+ + // kxzFromfcNEQ_SWT+ + // kxzFromfcNEQ_SET+ + // kxzFromfcNEQ_SEB+ + // kxzFromfcNEQ_NWB+ + // kxzFromfcNEQ_NWT+ + // kxzFromfcNEQ_NET+ + // kxzFromfcNEQ_NEB)*c1o8-(az+cx); + // real kxxMyyAverage =(kxxMyyFromfcNEQ_SWB+ + // kxxMyyFromfcNEQ_SWT+ + // kxxMyyFromfcNEQ_SET+ + // kxxMyyFromfcNEQ_SEB+ + // kxxMyyFromfcNEQ_NWB+ + // kxxMyyFromfcNEQ_NWT+ + // kxxMyyFromfcNEQ_NET+ + // kxxMyyFromfcNEQ_NEB)*c1o8-(ax-by); + // real kxxMzzAverage =(kxxMzzFromfcNEQ_SWB+ + // kxxMzzFromfcNEQ_SWT+ + // kxxMzzFromfcNEQ_SET+ + // kxxMzzFromfcNEQ_SEB+ + // kxxMzzFromfcNEQ_NWB+ + // kxxMzzFromfcNEQ_NWT+ + // kxxMzzFromfcNEQ_NET+ + // kxxMzzFromfcNEQ_NEB)*c1o8-(ax-cz); ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////Press @@ -10626,10 +10626,10 @@ __device__ void scaleFC_RhoSq_comp_27_Calculation( // // x------x // | | - // | ---+--->X - // | | \ - // x------x \ - // off-vector + // | ---+--->X + // | | \ + // x------x \ + // off-vector //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// a0 = a0 + xoff * ax + yoff * ay + zoff * az + xoff_sq * axx + yoff_sq * ayy + zoff_sq * azz + xoff * yoff * axy + xoff * zoff * axz + yoff * zoff * ayz; @@ -11074,27 +11074,27 @@ __device__ void scaleFC_RhoSq_comp_27_Calculation( } __global__ void scaleFC_RhoSq_comp_27(real* DC, - real* DF, - unsigned int* neighborCX, - unsigned int* neighborCY, - unsigned int* neighborCZ, - unsigned int* neighborFX, - unsigned int* neighborFY, - unsigned int* neighborFZ, - unsigned long long numberOfLBnodesCoarse, - unsigned long long numberOfLBnodesFine, - bool isEvenTimestep, - unsigned int* posC, - unsigned int* posFSWB, - unsigned int kFC, - real omCoarse, - real omFine, - real nu, - unsigned int nxC, - unsigned int nyC, - unsigned int nxF, - unsigned int nyF, - ICellNeigh offFC) + real* DF, + unsigned int* neighborCX, + unsigned int* neighborCY, + unsigned int* neighborCZ, + unsigned int* neighborFX, + unsigned int* neighborFY, + unsigned int* neighborFZ, + unsigned long long numberOfLBnodesCoarse, + unsigned long long numberOfLBnodesFine, + bool isEvenTimestep, + unsigned int* posC, + unsigned int* posFSWB, + unsigned int kFC, + real omCoarse, + real omFine, + real nu, + unsigned int nxC, + unsigned int nyC, + unsigned int nxF, + unsigned int nyF, + ICellNeigh offFC) { //////////////////////////////////////////////////////////////////////////////// const unsigned ix = threadIdx.x; // Globaler x-Index @@ -11167,27 +11167,27 @@ __global__ void scaleFC_RhoSq_comp_27(real* DC, ////////////////////////////////////////////////////////////////////////// __global__ void scaleFC_staggered_time_comp_27( real* DC, - real* DF, - unsigned int* neighborCX, - unsigned int* neighborCY, - unsigned int* neighborCZ, - unsigned int* neighborFX, - unsigned int* neighborFY, - unsigned int* neighborFZ, - unsigned long long numberOfLBnodesCoarse, - unsigned long long numberOfLBnodesFine, - bool isEvenTimestep, - unsigned int* posC, - unsigned int* posFSWB, - unsigned int kFC, - real omCoarse, - real omFine, - real nu, - unsigned int nxC, - unsigned int nyC, - unsigned int nxF, - unsigned int nyF, - ICellNeigh offFC) + real* DF, + unsigned int* neighborCX, + unsigned int* neighborCY, + unsigned int* neighborCZ, + unsigned int* neighborFX, + unsigned int* neighborFY, + unsigned int* neighborFZ, + unsigned long long numberOfLBnodesCoarse, + unsigned long long numberOfLBnodesFine, + bool isEvenTimestep, + unsigned int* posC, + unsigned int* posFSWB, + unsigned int kFC, + real omCoarse, + real omFine, + real nu, + unsigned int nxC, + unsigned int nyC, + unsigned int nxF, + unsigned int nyF, + ICellNeigh offFC) { real *feF, *fwF, *fnF, *fsF, *ftF, *fbF, *fneF, *fswF, *fseF, *fnwF, *fteF, *fbwF, *fbeF, *ftwF, *ftnF, *fbsF, *fbnF, *ftsF, *fzeroF, *ftneF, *ftswF, *ftseF, *ftnwF, *fbneF, *fbswF, *fbseF, *fbnwF; @@ -11388,8 +11388,8 @@ __global__ void scaleFC_staggered_time_comp_27( real* DC, drho_SWB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; vx1_SWB = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_SWB); - vx2_SWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SWB); - vx3_SWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SWB); + vx2_SWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SWB); + vx3_SWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SWB); kxyFromfcNEQ_SWB = -c3o1*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_SWB) - ((vx1_SWB*vx2_SWB))); kyzFromfcNEQ_SWB = -c3o1*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_SWB) - ((vx2_SWB*vx3_SWB))); @@ -11397,7 +11397,7 @@ __global__ void scaleFC_staggered_time_comp_27( real* DC, kxxMyyFromfcNEQ_SWB = -c3o2*omegaS *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_SWB) - ((vx1_SWB*vx1_SWB-vx2_SWB*vx2_SWB))); kxxMzzFromfcNEQ_SWB = -c3o2*omegaS *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_SWB) - ((vx1_SWB*vx1_SWB-vx3_SWB*vx3_SWB))); - + ////////////////////////////////////////////////////////////////////////// //SWT// ////////////////////////////////////////////////////////////////////////// @@ -11441,8 +11441,8 @@ __global__ void scaleFC_staggered_time_comp_27( real* DC, drho_SWT = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; vx1_SWT = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_SWT); - vx2_SWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SWT); - vx3_SWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SWT); + vx2_SWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SWT); + vx3_SWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SWT); kxyFromfcNEQ_SWT = -c3o1*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_SWT) - ((vx1_SWT*vx2_SWT))); kyzFromfcNEQ_SWT = -c3o1*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_SWT) - ((vx2_SWT*vx3_SWT))); @@ -11493,8 +11493,8 @@ __global__ void scaleFC_staggered_time_comp_27( real* DC, drho_SET = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; vx1_SET = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_SET); - vx2_SET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SET); - vx3_SET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SET); + vx2_SET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SET); + vx3_SET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SET); kxyFromfcNEQ_SET = -c3o1*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_SET) - ((vx1_SET*vx2_SET))); kyzFromfcNEQ_SET = -c3o1*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_SET) - ((vx2_SET*vx3_SET))); @@ -11545,8 +11545,8 @@ __global__ void scaleFC_staggered_time_comp_27( real* DC, drho_SEB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; vx1_SEB = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_SEB); - vx2_SEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SEB); - vx3_SEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SEB); + vx2_SEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SEB); + vx3_SEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SEB); kxyFromfcNEQ_SEB = -c3o1*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_SEB) - ((vx1_SEB*vx2_SEB))); kyzFromfcNEQ_SEB = -c3o1*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_SEB) - ((vx2_SEB*vx3_SEB))); @@ -11607,8 +11607,8 @@ __global__ void scaleFC_staggered_time_comp_27( real* DC, drho_NWB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; vx1_NWB = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_NWB); - vx2_NWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NWB); - vx3_NWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NWB); + vx2_NWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NWB); + vx3_NWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NWB); kxyFromfcNEQ_NWB = -c3o1*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_NWB) - ((vx1_NWB*vx2_NWB))); kyzFromfcNEQ_NWB = -c3o1*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_NWB) - ((vx2_NWB*vx3_NWB))); @@ -11659,8 +11659,8 @@ __global__ void scaleFC_staggered_time_comp_27( real* DC, drho_NWT = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; vx1_NWT = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_NWT); - vx2_NWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NWT); - vx3_NWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NWT); + vx2_NWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NWT); + vx3_NWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NWT); kxyFromfcNEQ_NWT = -c3o1*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_NWT) - ((vx1_NWT*vx2_NWT))); kyzFromfcNEQ_NWT = -c3o1*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_NWT) - ((vx2_NWT*vx3_NWT))); @@ -11711,8 +11711,8 @@ __global__ void scaleFC_staggered_time_comp_27( real* DC, drho_NET = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; vx1_NET = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_NET); - vx2_NET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NET); - vx3_NET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NET); + vx2_NET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NET); + vx3_NET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NET); kxyFromfcNEQ_NET = -c3o1*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_NET) - ((vx1_NET*vx2_NET))); kyzFromfcNEQ_NET = -c3o1*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_NET) - ((vx2_NET*vx3_NET))); @@ -11763,8 +11763,8 @@ __global__ void scaleFC_staggered_time_comp_27( real* DC, drho_NEB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; vx1_NEB = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_NEB); - vx2_NEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NEB); - vx3_NEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NEB); + vx2_NEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NEB); + vx3_NEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NEB); kxyFromfcNEQ_NEB = -c3o1*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_NEB) - ((vx1_NEB*vx2_NEB))); kyzFromfcNEQ_NEB = -c3o1*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_NEB) - ((vx2_NEB*vx3_NEB))); @@ -11776,103 +11776,103 @@ __global__ void scaleFC_staggered_time_comp_27( real* DC, //3 ////////////////////////////////////////////////////////////////////////// a0 = (-kxxMyyFromfcNEQ_NEB - kxxMyyFromfcNEQ_NET + kxxMyyFromfcNEQ_NWB + kxxMyyFromfcNEQ_NWT - - kxxMyyFromfcNEQ_SEB - kxxMyyFromfcNEQ_SET + kxxMyyFromfcNEQ_SWB + kxxMyyFromfcNEQ_SWT - - kxxMzzFromfcNEQ_NEB - kxxMzzFromfcNEQ_NET + kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_NWT - - kxxMzzFromfcNEQ_SEB - kxxMzzFromfcNEQ_SET + kxxMzzFromfcNEQ_SWB + kxxMzzFromfcNEQ_SWT - - c2o1*kxyFromfcNEQ_NEB - c2o1*kxyFromfcNEQ_NET - c2o1*kxyFromfcNEQ_NWB - c2o1*kxyFromfcNEQ_NWT + - c2o1*kxyFromfcNEQ_SEB + c2o1*kxyFromfcNEQ_SET + c2o1*kxyFromfcNEQ_SWB + c2o1*kxyFromfcNEQ_SWT + - c2o1*kxzFromfcNEQ_NEB - c2o1*kxzFromfcNEQ_NET + c2o1*kxzFromfcNEQ_NWB - c2o1*kxzFromfcNEQ_NWT + - c2o1*kxzFromfcNEQ_SEB - c2o1*kxzFromfcNEQ_SET + c2o1*kxzFromfcNEQ_SWB - c2o1*kxzFromfcNEQ_SWT + - c8o1*vx1_NEB + c8o1*vx1_NET + c8o1*vx1_NWB + c8o1*vx1_NWT + c8o1*vx1_SEB + - c8o1*vx1_SET + c8o1*vx1_SWB + c8o1*vx1_SWT + c2o1*vx2_NEB + c2o1*vx2_NET - - c2o1*vx2_NWB - c2o1*vx2_NWT - c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB + - c2o1*vx2_SWT - c2o1*vx3_NEB + c2o1*vx3_NET + c2o1*vx3_NWB - c2o1*vx3_NWT - - c2o1*vx3_SEB + c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)/c64o1; + kxxMyyFromfcNEQ_SEB - kxxMyyFromfcNEQ_SET + kxxMyyFromfcNEQ_SWB + kxxMyyFromfcNEQ_SWT - + kxxMzzFromfcNEQ_NEB - kxxMzzFromfcNEQ_NET + kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_NWT - + kxxMzzFromfcNEQ_SEB - kxxMzzFromfcNEQ_SET + kxxMzzFromfcNEQ_SWB + kxxMzzFromfcNEQ_SWT - + c2o1*kxyFromfcNEQ_NEB - c2o1*kxyFromfcNEQ_NET - c2o1*kxyFromfcNEQ_NWB - c2o1*kxyFromfcNEQ_NWT + + c2o1*kxyFromfcNEQ_SEB + c2o1*kxyFromfcNEQ_SET + c2o1*kxyFromfcNEQ_SWB + c2o1*kxyFromfcNEQ_SWT + + c2o1*kxzFromfcNEQ_NEB - c2o1*kxzFromfcNEQ_NET + c2o1*kxzFromfcNEQ_NWB - c2o1*kxzFromfcNEQ_NWT + + c2o1*kxzFromfcNEQ_SEB - c2o1*kxzFromfcNEQ_SET + c2o1*kxzFromfcNEQ_SWB - c2o1*kxzFromfcNEQ_SWT + + c8o1*vx1_NEB + c8o1*vx1_NET + c8o1*vx1_NWB + c8o1*vx1_NWT + c8o1*vx1_SEB + + c8o1*vx1_SET + c8o1*vx1_SWB + c8o1*vx1_SWT + c2o1*vx2_NEB + c2o1*vx2_NET - + c2o1*vx2_NWB - c2o1*vx2_NWT - c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB + + c2o1*vx2_SWT - c2o1*vx3_NEB + c2o1*vx3_NET + c2o1*vx3_NWB - c2o1*vx3_NWT - + c2o1*vx3_SEB + c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)/c64o1; b0 = (c2o1*kxxMyyFromfcNEQ_NEB + c2o1*kxxMyyFromfcNEQ_NET + c2o1*kxxMyyFromfcNEQ_NWB + c2o1*kxxMyyFromfcNEQ_NWT - - c2o1*kxxMyyFromfcNEQ_SEB - c2o1*kxxMyyFromfcNEQ_SET - c2o1*kxxMyyFromfcNEQ_SWB - c2o1*kxxMyyFromfcNEQ_SWT - - kxxMzzFromfcNEQ_NEB - kxxMzzFromfcNEQ_NET - kxxMzzFromfcNEQ_NWB - kxxMzzFromfcNEQ_NWT + - kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_SET + kxxMzzFromfcNEQ_SWB + kxxMzzFromfcNEQ_SWT - - c2o1*kxyFromfcNEQ_NEB - c2o1*kxyFromfcNEQ_NET + c2o1*kxyFromfcNEQ_NWB + c2o1*kxyFromfcNEQ_NWT - - c2o1*kxyFromfcNEQ_SEB - c2o1*kxyFromfcNEQ_SET + c2o1*kxyFromfcNEQ_SWB + c2o1*kxyFromfcNEQ_SWT + - c2o1*kyzFromfcNEQ_NEB - c2o1*kyzFromfcNEQ_NET + c2o1*kyzFromfcNEQ_NWB - c2o1*kyzFromfcNEQ_NWT + - c2o1*kyzFromfcNEQ_SEB - c2o1*kyzFromfcNEQ_SET + c2o1*kyzFromfcNEQ_SWB - c2o1*kyzFromfcNEQ_SWT + - c2o1*vx1_NEB + c2o1*vx1_NET - c2o1*vx1_NWB - c2o1*vx1_NWT - - c2o1*vx1_SEB - c2o1*vx1_SET + c2o1*vx1_SWB + c2o1*vx1_SWT + - c8o1*vx2_NEB + c8o1*vx2_NET + c8o1*vx2_NWB + c8o1*vx2_NWT + - c8o1*vx2_SEB + c8o1*vx2_SET + c8o1*vx2_SWB + c8o1*vx2_SWT - - c2o1*vx3_NEB + c2o1*vx3_NET - c2o1*vx3_NWB + c2o1*vx3_NWT + - c2o1*vx3_SEB - c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)/c64o1; + c2o1*kxxMyyFromfcNEQ_SEB - c2o1*kxxMyyFromfcNEQ_SET - c2o1*kxxMyyFromfcNEQ_SWB - c2o1*kxxMyyFromfcNEQ_SWT - + kxxMzzFromfcNEQ_NEB - kxxMzzFromfcNEQ_NET - kxxMzzFromfcNEQ_NWB - kxxMzzFromfcNEQ_NWT + + kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_SET + kxxMzzFromfcNEQ_SWB + kxxMzzFromfcNEQ_SWT - + c2o1*kxyFromfcNEQ_NEB - c2o1*kxyFromfcNEQ_NET + c2o1*kxyFromfcNEQ_NWB + c2o1*kxyFromfcNEQ_NWT - + c2o1*kxyFromfcNEQ_SEB - c2o1*kxyFromfcNEQ_SET + c2o1*kxyFromfcNEQ_SWB + c2o1*kxyFromfcNEQ_SWT + + c2o1*kyzFromfcNEQ_NEB - c2o1*kyzFromfcNEQ_NET + c2o1*kyzFromfcNEQ_NWB - c2o1*kyzFromfcNEQ_NWT + + c2o1*kyzFromfcNEQ_SEB - c2o1*kyzFromfcNEQ_SET + c2o1*kyzFromfcNEQ_SWB - c2o1*kyzFromfcNEQ_SWT + + c2o1*vx1_NEB + c2o1*vx1_NET - c2o1*vx1_NWB - c2o1*vx1_NWT - + c2o1*vx1_SEB - c2o1*vx1_SET + c2o1*vx1_SWB + c2o1*vx1_SWT + + c8o1*vx2_NEB + c8o1*vx2_NET + c8o1*vx2_NWB + c8o1*vx2_NWT + + c8o1*vx2_SEB + c8o1*vx2_SET + c8o1*vx2_SWB + c8o1*vx2_SWT - + c2o1*vx3_NEB + c2o1*vx3_NET - c2o1*vx3_NWB + c2o1*vx3_NWT + + c2o1*vx3_SEB - c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)/c64o1; c0 = (kxxMyyFromfcNEQ_NEB - kxxMyyFromfcNEQ_NET + kxxMyyFromfcNEQ_NWB - kxxMyyFromfcNEQ_NWT + - kxxMyyFromfcNEQ_SEB - kxxMyyFromfcNEQ_SET + kxxMyyFromfcNEQ_SWB - kxxMyyFromfcNEQ_SWT - - c2o1*kxxMzzFromfcNEQ_NEB + c2o1*kxxMzzFromfcNEQ_NET - c2o1*kxxMzzFromfcNEQ_NWB + c2o1*kxxMzzFromfcNEQ_NWT - - c2o1*kxxMzzFromfcNEQ_SEB + c2o1*kxxMzzFromfcNEQ_SET - c2o1*kxxMzzFromfcNEQ_SWB + c2o1*kxxMzzFromfcNEQ_SWT - - c2o1*kxzFromfcNEQ_NEB - c2o1*kxzFromfcNEQ_NET + c2o1*kxzFromfcNEQ_NWB + c2o1*kxzFromfcNEQ_NWT - - c2o1*kxzFromfcNEQ_SEB - c2o1*kxzFromfcNEQ_SET + c2o1*kxzFromfcNEQ_SWB + c2o1*kxzFromfcNEQ_SWT - - c2o1*kyzFromfcNEQ_NEB - c2o1*kyzFromfcNEQ_NET - c2o1*kyzFromfcNEQ_NWB - c2o1*kyzFromfcNEQ_NWT + - c2o1*kyzFromfcNEQ_SEB + c2o1*kyzFromfcNEQ_SET + c2o1*kyzFromfcNEQ_SWB + c2o1*kyzFromfcNEQ_SWT - - c2o1*vx1_NEB + c2o1*vx1_NET + c2o1*vx1_NWB - c2o1*vx1_NWT - - c2o1*vx1_SEB + c2o1*vx1_SET + c2o1*vx1_SWB - c2o1*vx1_SWT - - c2o1*vx2_NEB + c2o1*vx2_NET - c2o1*vx2_NWB + c2o1*vx2_NWT + - c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB - c2o1*vx2_SWT + - c8o1*vx3_NEB + c8o1*vx3_NET + c8o1*vx3_NWB + c8o1*vx3_NWT + - c8o1*vx3_SEB + c8o1*vx3_SET + c8o1*vx3_SWB + c8o1*vx3_SWT)/c64o1; + kxxMyyFromfcNEQ_SEB - kxxMyyFromfcNEQ_SET + kxxMyyFromfcNEQ_SWB - kxxMyyFromfcNEQ_SWT - + c2o1*kxxMzzFromfcNEQ_NEB + c2o1*kxxMzzFromfcNEQ_NET - c2o1*kxxMzzFromfcNEQ_NWB + c2o1*kxxMzzFromfcNEQ_NWT - + c2o1*kxxMzzFromfcNEQ_SEB + c2o1*kxxMzzFromfcNEQ_SET - c2o1*kxxMzzFromfcNEQ_SWB + c2o1*kxxMzzFromfcNEQ_SWT - + c2o1*kxzFromfcNEQ_NEB - c2o1*kxzFromfcNEQ_NET + c2o1*kxzFromfcNEQ_NWB + c2o1*kxzFromfcNEQ_NWT - + c2o1*kxzFromfcNEQ_SEB - c2o1*kxzFromfcNEQ_SET + c2o1*kxzFromfcNEQ_SWB + c2o1*kxzFromfcNEQ_SWT - + c2o1*kyzFromfcNEQ_NEB - c2o1*kyzFromfcNEQ_NET - c2o1*kyzFromfcNEQ_NWB - c2o1*kyzFromfcNEQ_NWT + + c2o1*kyzFromfcNEQ_SEB + c2o1*kyzFromfcNEQ_SET + c2o1*kyzFromfcNEQ_SWB + c2o1*kyzFromfcNEQ_SWT - + c2o1*vx1_NEB + c2o1*vx1_NET + c2o1*vx1_NWB - c2o1*vx1_NWT - + c2o1*vx1_SEB + c2o1*vx1_SET + c2o1*vx1_SWB - c2o1*vx1_SWT - + c2o1*vx2_NEB + c2o1*vx2_NET - c2o1*vx2_NWB + c2o1*vx2_NWT + + c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB - c2o1*vx2_SWT + + c8o1*vx3_NEB + c8o1*vx3_NET + c8o1*vx3_NWB + c8o1*vx3_NWT + + c8o1*vx3_SEB + c8o1*vx3_SET + c8o1*vx3_SWB + c8o1*vx3_SWT)/c64o1; ax = (vx1_NEB + vx1_NET - vx1_NWB - vx1_NWT + vx1_SEB + vx1_SET - vx1_SWB - vx1_SWT)/c4o1; bx = (vx2_NEB + vx2_NET - vx2_NWB - vx2_NWT + vx2_SEB + vx2_SET - vx2_SWB - vx2_SWT)/c4o1; cx = (vx3_NEB + vx3_NET - vx3_NWB - vx3_NWT + vx3_SEB + vx3_SET - vx3_SWB - vx3_SWT)/c4o1; axx= (kxxMyyFromfcNEQ_NEB + kxxMyyFromfcNEQ_NET - kxxMyyFromfcNEQ_NWB - kxxMyyFromfcNEQ_NWT + - kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_SET - kxxMyyFromfcNEQ_SWB - kxxMyyFromfcNEQ_SWT + - kxxMzzFromfcNEQ_NEB + kxxMzzFromfcNEQ_NET - kxxMzzFromfcNEQ_NWB - kxxMzzFromfcNEQ_NWT + - kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_SET - kxxMzzFromfcNEQ_SWB - kxxMzzFromfcNEQ_SWT + - c2o1*vx2_NEB + c2o1*vx2_NET - c2o1*vx2_NWB - c2o1*vx2_NWT - - c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB + c2o1*vx2_SWT - - c2o1*vx3_NEB + c2o1*vx3_NET + c2o1*vx3_NWB - c2o1*vx3_NWT - - c2o1*vx3_SEB + c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)/c16o1; + kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_SET - kxxMyyFromfcNEQ_SWB - kxxMyyFromfcNEQ_SWT + + kxxMzzFromfcNEQ_NEB + kxxMzzFromfcNEQ_NET - kxxMzzFromfcNEQ_NWB - kxxMzzFromfcNEQ_NWT + + kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_SET - kxxMzzFromfcNEQ_SWB - kxxMzzFromfcNEQ_SWT + + c2o1*vx2_NEB + c2o1*vx2_NET - c2o1*vx2_NWB - c2o1*vx2_NWT - + c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB + c2o1*vx2_SWT - + c2o1*vx3_NEB + c2o1*vx3_NET + c2o1*vx3_NWB - c2o1*vx3_NWT - + c2o1*vx3_SEB + c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)/c16o1; bxx= (kxyFromfcNEQ_NEB + kxyFromfcNEQ_NET - kxyFromfcNEQ_NWB - kxyFromfcNEQ_NWT + - kxyFromfcNEQ_SEB + kxyFromfcNEQ_SET - kxyFromfcNEQ_SWB - kxyFromfcNEQ_SWT - - c2o1*vx1_NEB - c2o1*vx1_NET + c2o1*vx1_NWB + c2o1*vx1_NWT + - c2o1*vx1_SEB + c2o1*vx1_SET - c2o1*vx1_SWB - c2o1*vx1_SWT)/c8o1; + kxyFromfcNEQ_SEB + kxyFromfcNEQ_SET - kxyFromfcNEQ_SWB - kxyFromfcNEQ_SWT - + c2o1*vx1_NEB - c2o1*vx1_NET + c2o1*vx1_NWB + c2o1*vx1_NWT + + c2o1*vx1_SEB + c2o1*vx1_SET - c2o1*vx1_SWB - c2o1*vx1_SWT)/c8o1; cxx= (kxzFromfcNEQ_NEB + kxzFromfcNEQ_NET - kxzFromfcNEQ_NWB - kxzFromfcNEQ_NWT + - kxzFromfcNEQ_SEB + kxzFromfcNEQ_SET - kxzFromfcNEQ_SWB - kxzFromfcNEQ_SWT + - c2o1*vx1_NEB - c2o1*vx1_NET - c2o1*vx1_NWB + c2o1*vx1_NWT + - c2o1*vx1_SEB - c2o1*vx1_SET - c2o1*vx1_SWB + c2o1*vx1_SWT)/c8o1; + kxzFromfcNEQ_SEB + kxzFromfcNEQ_SET - kxzFromfcNEQ_SWB - kxzFromfcNEQ_SWT + + c2o1*vx1_NEB - c2o1*vx1_NET - c2o1*vx1_NWB + c2o1*vx1_NWT + + c2o1*vx1_SEB - c2o1*vx1_SET - c2o1*vx1_SWB + c2o1*vx1_SWT)/c8o1; ay = (vx1_NEB + vx1_NET + vx1_NWB + vx1_NWT - vx1_SEB - vx1_SET - vx1_SWB - vx1_SWT)/c4o1; by = (vx2_NEB + vx2_NET + vx2_NWB + vx2_NWT - vx2_SEB - vx2_SET - vx2_SWB - vx2_SWT)/c4o1; cy = (vx3_NEB + vx3_NET + vx3_NWB + vx3_NWT - vx3_SEB - vx3_SET - vx3_SWB - vx3_SWT)/c4o1; ayy= (kxyFromfcNEQ_NEB + kxyFromfcNEQ_NET + kxyFromfcNEQ_NWB + kxyFromfcNEQ_NWT - - kxyFromfcNEQ_SEB - kxyFromfcNEQ_SET - kxyFromfcNEQ_SWB - kxyFromfcNEQ_SWT - - c2o1*vx2_NEB - c2o1*vx2_NET + c2o1*vx2_NWB + c2o1*vx2_NWT + - c2o1*vx2_SEB + c2o1*vx2_SET - c2o1*vx2_SWB - c2o1*vx2_SWT)/c8o1; + kxyFromfcNEQ_SEB - kxyFromfcNEQ_SET - kxyFromfcNEQ_SWB - kxyFromfcNEQ_SWT - + c2o1*vx2_NEB - c2o1*vx2_NET + c2o1*vx2_NWB + c2o1*vx2_NWT + + c2o1*vx2_SEB + c2o1*vx2_SET - c2o1*vx2_SWB - c2o1*vx2_SWT)/c8o1; byy= (-c2o1*kxxMyyFromfcNEQ_NEB - c2o1*kxxMyyFromfcNEQ_NET - c2o1*kxxMyyFromfcNEQ_NWB - c2o1*kxxMyyFromfcNEQ_NWT + - c2o1*kxxMyyFromfcNEQ_SEB + c2o1*kxxMyyFromfcNEQ_SET + c2o1*kxxMyyFromfcNEQ_SWB + c2o1*kxxMyyFromfcNEQ_SWT + - kxxMzzFromfcNEQ_NEB + kxxMzzFromfcNEQ_NET + kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_NWT - - kxxMzzFromfcNEQ_SEB - kxxMzzFromfcNEQ_SET - kxxMzzFromfcNEQ_SWB - kxxMzzFromfcNEQ_SWT + - c2o1*vx1_NEB + c2o1*vx1_NET - c2o1*vx1_NWB - c2o1*vx1_NWT - - c2o1*vx1_SEB - c2o1*vx1_SET + c2o1*vx1_SWB + c2o1*vx1_SWT - - c2o1*vx3_NEB + c2o1*vx3_NET - c2o1*vx3_NWB + c2o1*vx3_NWT + - c2o1*vx3_SEB - c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)/c16o1; + c2o1*kxxMyyFromfcNEQ_SEB + c2o1*kxxMyyFromfcNEQ_SET + c2o1*kxxMyyFromfcNEQ_SWB + c2o1*kxxMyyFromfcNEQ_SWT + + kxxMzzFromfcNEQ_NEB + kxxMzzFromfcNEQ_NET + kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_NWT - + kxxMzzFromfcNEQ_SEB - kxxMzzFromfcNEQ_SET - kxxMzzFromfcNEQ_SWB - kxxMzzFromfcNEQ_SWT + + c2o1*vx1_NEB + c2o1*vx1_NET - c2o1*vx1_NWB - c2o1*vx1_NWT - + c2o1*vx1_SEB - c2o1*vx1_SET + c2o1*vx1_SWB + c2o1*vx1_SWT - + c2o1*vx3_NEB + c2o1*vx3_NET - c2o1*vx3_NWB + c2o1*vx3_NWT + + c2o1*vx3_SEB - c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)/c16o1; cyy= (kyzFromfcNEQ_NEB + kyzFromfcNEQ_NET + kyzFromfcNEQ_NWB + kyzFromfcNEQ_NWT - - kyzFromfcNEQ_SEB - kyzFromfcNEQ_SET - kyzFromfcNEQ_SWB - kyzFromfcNEQ_SWT + - c2o1*vx2_NEB - c2o1*vx2_NET + c2o1*vx2_NWB - c2o1*vx2_NWT - - c2o1*vx2_SEB + c2o1*vx2_SET - c2o1*vx2_SWB + c2o1*vx2_SWT)/c8o1; + kyzFromfcNEQ_SEB - kyzFromfcNEQ_SET - kyzFromfcNEQ_SWB - kyzFromfcNEQ_SWT + + c2o1*vx2_NEB - c2o1*vx2_NET + c2o1*vx2_NWB - c2o1*vx2_NWT - + c2o1*vx2_SEB + c2o1*vx2_SET - c2o1*vx2_SWB + c2o1*vx2_SWT)/c8o1; az = (-vx1_NEB + vx1_NET - vx1_NWB + vx1_NWT - vx1_SEB + vx1_SET - vx1_SWB + vx1_SWT)/c4o1; bz = (-vx2_NEB + vx2_NET - vx2_NWB + vx2_NWT - vx2_SEB + vx2_SET - vx2_SWB + vx2_SWT)/c4o1; cz = (-vx3_NEB + vx3_NET - vx3_NWB + vx3_NWT - vx3_SEB + vx3_SET - vx3_SWB + vx3_SWT)/c4o1; azz= (-kxzFromfcNEQ_NEB + kxzFromfcNEQ_NET - kxzFromfcNEQ_NWB + kxzFromfcNEQ_NWT - - kxzFromfcNEQ_SEB + kxzFromfcNEQ_SET - kxzFromfcNEQ_SWB + kxzFromfcNEQ_SWT + - c2o1*vx3_NEB - c2o1*vx3_NET - c2o1*vx3_NWB + c2o1*vx3_NWT + - c2o1*vx3_SEB - c2o1*vx3_SET - c2o1*vx3_SWB + c2o1*vx3_SWT)/c8o1; + kxzFromfcNEQ_SEB + kxzFromfcNEQ_SET - kxzFromfcNEQ_SWB + kxzFromfcNEQ_SWT + + c2o1*vx3_NEB - c2o1*vx3_NET - c2o1*vx3_NWB + c2o1*vx3_NWT + + c2o1*vx3_SEB - c2o1*vx3_SET - c2o1*vx3_SWB + c2o1*vx3_SWT)/c8o1; bzz= (-kyzFromfcNEQ_NEB + kyzFromfcNEQ_NET - kyzFromfcNEQ_NWB + kyzFromfcNEQ_NWT - - kyzFromfcNEQ_SEB + kyzFromfcNEQ_SET - kyzFromfcNEQ_SWB + kyzFromfcNEQ_SWT + - c2o1*vx3_NEB - c2o1*vx3_NET + c2o1*vx3_NWB - c2o1*vx3_NWT - - c2o1*vx3_SEB + c2o1*vx3_SET - c2o1*vx3_SWB + c2o1*vx3_SWT)/c8o1; + kyzFromfcNEQ_SEB + kyzFromfcNEQ_SET - kyzFromfcNEQ_SWB + kyzFromfcNEQ_SWT + + c2o1*vx3_NEB - c2o1*vx3_NET + c2o1*vx3_NWB - c2o1*vx3_NWT - + c2o1*vx3_SEB + c2o1*vx3_SET - c2o1*vx3_SWB + c2o1*vx3_SWT)/c8o1; czz= (-kxxMyyFromfcNEQ_NEB + kxxMyyFromfcNEQ_NET - kxxMyyFromfcNEQ_NWB + kxxMyyFromfcNEQ_NWT - - kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_SET - kxxMyyFromfcNEQ_SWB + kxxMyyFromfcNEQ_SWT + - c2o1*kxxMzzFromfcNEQ_NEB - c2o1*kxxMzzFromfcNEQ_NET + c2o1*kxxMzzFromfcNEQ_NWB - c2o1*kxxMzzFromfcNEQ_NWT + - c2o1*kxxMzzFromfcNEQ_SEB - c2o1*kxxMzzFromfcNEQ_SET + c2o1*kxxMzzFromfcNEQ_SWB - c2o1*kxxMzzFromfcNEQ_SWT - - c2o1*vx1_NEB + c2o1*vx1_NET + c2o1*vx1_NWB - c2o1*vx1_NWT - - c2o1*vx1_SEB + c2o1*vx1_SET + c2o1*vx1_SWB - c2o1*vx1_SWT - - c2o1*vx2_NEB + c2o1*vx2_NET - c2o1*vx2_NWB + c2o1*vx2_NWT + - c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB - c2o1*vx2_SWT)/c16o1; + kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_SET - kxxMyyFromfcNEQ_SWB + kxxMyyFromfcNEQ_SWT + + c2o1*kxxMzzFromfcNEQ_NEB - c2o1*kxxMzzFromfcNEQ_NET + c2o1*kxxMzzFromfcNEQ_NWB - c2o1*kxxMzzFromfcNEQ_NWT + + c2o1*kxxMzzFromfcNEQ_SEB - c2o1*kxxMzzFromfcNEQ_SET + c2o1*kxxMzzFromfcNEQ_SWB - c2o1*kxxMzzFromfcNEQ_SWT - + c2o1*vx1_NEB + c2o1*vx1_NET + c2o1*vx1_NWB - c2o1*vx1_NWT - + c2o1*vx1_SEB + c2o1*vx1_SET + c2o1*vx1_SWB - c2o1*vx1_SWT - + c2o1*vx2_NEB + c2o1*vx2_NET - c2o1*vx2_NWB + c2o1*vx2_NWT + + c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB - c2o1*vx2_SWT)/c16o1; axy= (vx1_NEB + vx1_NET - vx1_NWB - vx1_NWT - vx1_SEB - vx1_SET + vx1_SWB + vx1_SWT)/c2o1; bxy= (vx2_NEB + vx2_NET - vx2_NWB - vx2_NWT - vx2_SEB - vx2_SET + vx2_SWB + vx2_SWT)/c2o1; cxy= (vx3_NEB + vx3_NET - vx3_NWB - vx3_NWT - vx3_SEB - vx3_SET + vx3_SWB + vx3_SWT)/c2o1; @@ -11886,88 +11886,88 @@ __global__ void scaleFC_staggered_time_comp_27( real* DC, //bxyz=-vx2_NEB + vx2_NET + vx2_NWB - vx2_NWT + vx2_SEB - vx2_SET - vx2_SWB + vx2_SWT; //cxyz=-vx3_NEB + vx3_NET + vx3_NWB - vx3_NWT + vx3_SEB - vx3_SET - vx3_SWB + vx3_SWT; ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real kxyAverage =(kxyFromfcNEQ_SWB+ - kxyFromfcNEQ_SWT+ - kxyFromfcNEQ_SET+ - kxyFromfcNEQ_SEB+ - kxyFromfcNEQ_NWB+ - kxyFromfcNEQ_NWT+ - kxyFromfcNEQ_NET+ - kxyFromfcNEQ_NEB)*c1o8-(ay+bx); - real kyzAverage =(kyzFromfcNEQ_SWB+ - kyzFromfcNEQ_SWT+ - kyzFromfcNEQ_SET+ - kyzFromfcNEQ_SEB+ - kyzFromfcNEQ_NWB+ - kyzFromfcNEQ_NWT+ - kyzFromfcNEQ_NET+ - kyzFromfcNEQ_NEB)*c1o8-(bz+cy); - real kxzAverage =(kxzFromfcNEQ_SWB+ - kxzFromfcNEQ_SWT+ - kxzFromfcNEQ_SET+ - kxzFromfcNEQ_SEB+ - kxzFromfcNEQ_NWB+ - kxzFromfcNEQ_NWT+ - kxzFromfcNEQ_NET+ - kxzFromfcNEQ_NEB)*c1o8-(az+cx); - real kxxMyyAverage =(kxxMyyFromfcNEQ_SWB+ - kxxMyyFromfcNEQ_SWT+ - kxxMyyFromfcNEQ_SET+ - kxxMyyFromfcNEQ_SEB+ - kxxMyyFromfcNEQ_NWB+ - kxxMyyFromfcNEQ_NWT+ - kxxMyyFromfcNEQ_NET+ - kxxMyyFromfcNEQ_NEB)*c1o8-(ax-by); - real kxxMzzAverage =(kxxMzzFromfcNEQ_SWB+ - kxxMzzFromfcNEQ_SWT+ - kxxMzzFromfcNEQ_SET+ - kxxMzzFromfcNEQ_SEB+ - kxxMzzFromfcNEQ_NWB+ - kxxMzzFromfcNEQ_NWT+ - kxxMzzFromfcNEQ_NET+ - kxxMzzFromfcNEQ_NEB)*c1o8-(ax-cz); - - - - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - ////Press - //d0 = ( press_NEB + press_NET + press_NWB + press_NWT + press_SEB + press_SET + press_SWB + press_SWT) * c1o8; - //dx = ( press_NEB + press_NET - press_NWB - press_NWT + press_SEB + press_SET - press_SWB - press_SWT) * c1o4; - //dy = ( press_NEB + press_NET + press_NWB + press_NWT - press_SEB - press_SET - press_SWB - press_SWT) * c1o4; - //dz = (-press_NEB + press_NET - press_NWB + press_NWT - press_SEB + press_SET - press_SWB + press_SWT) * c1o4; - //dxy = ( press_NEB + press_NET - press_NWB - press_NWT - press_SEB - press_SET + press_SWB + press_SWT) * c1o2; - //dxz = (-press_NEB + press_NET + press_NWB - press_NWT - press_SEB + press_SET + press_SWB - press_SWT) * c1o2; - //dyz = (-press_NEB + press_NET - press_NWB + press_NWT + press_SEB - press_SET + press_SWB - press_SWT) * c1o2; - //dxyz = -press_NEB + press_NET + press_NWB - press_NWT + press_SEB - press_SET - press_SWB + press_SWT; - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho - d0 = ( drho_NEB + drho_NET + drho_NWB + drho_NWT + drho_SEB + drho_SET + drho_SWB + drho_SWT) * c1o8; - dx = ( drho_NEB + drho_NET - drho_NWB - drho_NWT + drho_SEB + drho_SET - drho_SWB - drho_SWT) * c1o4; - dy = ( drho_NEB + drho_NET + drho_NWB + drho_NWT - drho_SEB - drho_SET - drho_SWB - drho_SWT) * c1o4; - dz = (-drho_NEB + drho_NET - drho_NWB + drho_NWT - drho_SEB + drho_SET - drho_SWB + drho_SWT) * c1o4; - dxy = ( drho_NEB + drho_NET - drho_NWB - drho_NWT - drho_SEB - drho_SET + drho_SWB + drho_SWT) * c1o2; - dxz = (-drho_NEB + drho_NET + drho_NWB - drho_NWT - drho_SEB + drho_SET + drho_SWB - drho_SWT) * c1o2; - dyz = (-drho_NEB + drho_NET - drho_NWB + drho_NWT + drho_SEB - drho_SET + drho_SWB - drho_SWT) * c1o2; - //dxyz = -drho_NEB + drho_NET + drho_NWB - drho_NWT + drho_SEB - drho_SET - drho_SWB + drho_SWT; - //d0 = zero; - //dx = zero; - //dy = zero; - //dz = zero; - //dxy = zero; - //dxz = zero; - //dyz = zero; - //dxyz = zero; + real kxyAverage =(kxyFromfcNEQ_SWB+ + kxyFromfcNEQ_SWT+ + kxyFromfcNEQ_SET+ + kxyFromfcNEQ_SEB+ + kxyFromfcNEQ_NWB+ + kxyFromfcNEQ_NWT+ + kxyFromfcNEQ_NET+ + kxyFromfcNEQ_NEB)*c1o8-(ay+bx); + real kyzAverage =(kyzFromfcNEQ_SWB+ + kyzFromfcNEQ_SWT+ + kyzFromfcNEQ_SET+ + kyzFromfcNEQ_SEB+ + kyzFromfcNEQ_NWB+ + kyzFromfcNEQ_NWT+ + kyzFromfcNEQ_NET+ + kyzFromfcNEQ_NEB)*c1o8-(bz+cy); + real kxzAverage =(kxzFromfcNEQ_SWB+ + kxzFromfcNEQ_SWT+ + kxzFromfcNEQ_SET+ + kxzFromfcNEQ_SEB+ + kxzFromfcNEQ_NWB+ + kxzFromfcNEQ_NWT+ + kxzFromfcNEQ_NET+ + kxzFromfcNEQ_NEB)*c1o8-(az+cx); + real kxxMyyAverage =(kxxMyyFromfcNEQ_SWB+ + kxxMyyFromfcNEQ_SWT+ + kxxMyyFromfcNEQ_SET+ + kxxMyyFromfcNEQ_SEB+ + kxxMyyFromfcNEQ_NWB+ + kxxMyyFromfcNEQ_NWT+ + kxxMyyFromfcNEQ_NET+ + kxxMyyFromfcNEQ_NEB)*c1o8-(ax-by); + real kxxMzzAverage =(kxxMzzFromfcNEQ_SWB+ + kxxMzzFromfcNEQ_SWT+ + kxxMzzFromfcNEQ_SET+ + kxxMzzFromfcNEQ_SEB+ + kxxMzzFromfcNEQ_NWB+ + kxxMzzFromfcNEQ_NWT+ + kxxMzzFromfcNEQ_NET+ + kxxMzzFromfcNEQ_NEB)*c1o8-(ax-cz); + + + + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + ////Press + //d0 = ( press_NEB + press_NET + press_NWB + press_NWT + press_SEB + press_SET + press_SWB + press_SWT) * c1o8; + //dx = ( press_NEB + press_NET - press_NWB - press_NWT + press_SEB + press_SET - press_SWB - press_SWT) * c1o4; + //dy = ( press_NEB + press_NET + press_NWB + press_NWT - press_SEB - press_SET - press_SWB - press_SWT) * c1o4; + //dz = (-press_NEB + press_NET - press_NWB + press_NWT - press_SEB + press_SET - press_SWB + press_SWT) * c1o4; + //dxy = ( press_NEB + press_NET - press_NWB - press_NWT - press_SEB - press_SET + press_SWB + press_SWT) * c1o2; + //dxz = (-press_NEB + press_NET + press_NWB - press_NWT - press_SEB + press_SET + press_SWB - press_SWT) * c1o2; + //dyz = (-press_NEB + press_NET - press_NWB + press_NWT + press_SEB - press_SET + press_SWB - press_SWT) * c1o2; + //dxyz = -press_NEB + press_NET + press_NWB - press_NWT + press_SEB - press_SET - press_SWB + press_SWT; + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho + d0 = ( drho_NEB + drho_NET + drho_NWB + drho_NWT + drho_SEB + drho_SET + drho_SWB + drho_SWT) * c1o8; + dx = ( drho_NEB + drho_NET - drho_NWB - drho_NWT + drho_SEB + drho_SET - drho_SWB - drho_SWT) * c1o4; + dy = ( drho_NEB + drho_NET + drho_NWB + drho_NWT - drho_SEB - drho_SET - drho_SWB - drho_SWT) * c1o4; + dz = (-drho_NEB + drho_NET - drho_NWB + drho_NWT - drho_SEB + drho_SET - drho_SWB + drho_SWT) * c1o4; + dxy = ( drho_NEB + drho_NET - drho_NWB - drho_NWT - drho_SEB - drho_SET + drho_SWB + drho_SWT) * c1o2; + dxz = (-drho_NEB + drho_NET + drho_NWB - drho_NWT - drho_SEB + drho_SET + drho_SWB - drho_SWT) * c1o2; + dyz = (-drho_NEB + drho_NET - drho_NWB + drho_NWT + drho_SEB - drho_SET + drho_SWB - drho_SWT) * c1o2; + //dxyz = -drho_NEB + drho_NET + drho_NWB - drho_NWT + drho_SEB - drho_SET - drho_SWB + drho_SWT; + //d0 = zero; + //dx = zero; + //dy = zero; + //dz = zero; + //dxy = zero; + //dxz = zero; + //dyz = zero; + //dxyz = zero; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // // Bernd das Brot - // // - // x------x - // | | - // | ---+--->X - // | | \ - // x------x \ - // off-vector + // + // x------x + // | | + // | ---+--->X + // | | \ + // x------x \ + // off-vector //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// a0 = a0 + xoff * ax + yoff * ay + zoff * az + xoff_sq * axx + yoff_sq * ayy + zoff_sq * azz + xoff*yoff*axy + xoff*zoff*axz + yoff*zoff*ayz; ax = ax + c2o1 * xoff * axx + yoff * axy + zoff * axz; @@ -11981,433 +11981,433 @@ __global__ void scaleFC_staggered_time_comp_27( real* DC, cx = cx + c2o1 * xoff * cxx + yoff * cxy + zoff * cxz; cy = cy + c2o1 * yoff * cyy + xoff * cxy + zoff * cyz; cz = cz + c2o1 * zoff * czz + xoff * cxz + yoff * cyz; - d0 = d0 + xoff * dx + yoff * dy + zoff * dz + xoff*yoff*dxy + xoff*zoff*dxz + yoff*zoff*dyz; + d0 = d0 + xoff * dx + yoff * dy + zoff * dz + xoff*yoff*dxy + xoff*zoff*dxz + yoff*zoff*dyz; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // FIX /////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //AAAAAAAAAAAAHHHHHHHHHHHH!!!!! Mieser Test!!! + //b0= bx= by= bz= bxx= byy= bzz= bxy= bxz= byz= c0= cx= cy= cz= cxx= cyy= czz= cxy= cxz= cyz= axyz= bxyz= cxyz=zero; + //b0=zero; + //bx=zero; + //by=zero; + //bz=zero; + //bxx=zero; + //byy=zero; + //bzz=zero; + //bxy=zero; + //bxz=zero; + //byz=zero; + //c0=zero; + //cx=zero; + //cy=zero; + //cz=zero; + //cxx=zero; + //cyy=zero; + //czz=zero; + //cxy=zero; + //cxz=zero; + //cyz=zero; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + real mfcbb = c0o1; + real mfabb = c0o1; + real mfbcb = c0o1; + real mfbab = c0o1; + real mfbbc = c0o1; + real mfbba = c0o1; + real mfccb = c0o1; + real mfaab = c0o1; + real mfcab = c0o1; + real mfacb = c0o1; + real mfcbc = c0o1; + real mfaba = c0o1; + real mfcba = c0o1; + real mfabc = c0o1; + real mfbcc = c0o1; + real mfbaa = c0o1; + real mfbca = c0o1; + real mfbac = c0o1; + real mfbbb = c0o1; + real mfccc = c0o1; + real mfaac = c0o1; + real mfcac = c0o1; + real mfacc = c0o1; + real mfcca = c0o1; + real mfaaa = c0o1; + real mfcaa = c0o1; + real mfaca = c0o1; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // FIX /////////////////////////////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //AAAAAAAAAAAAHHHHHHHHHHHH!!!!! Mieser Test!!! - //b0= bx= by= bz= bxx= byy= bzz= bxy= bxz= byz= c0= cx= cy= cz= cxx= cyy= czz= cxy= cxz= cyz= axyz= bxyz= cxyz=zero; - //b0=zero; - //bx=zero; - //by=zero; - //bz=zero; - //bxx=zero; - //byy=zero; - //bzz=zero; - //bxy=zero; - //bxz=zero; - //byz=zero; - //c0=zero; - //cx=zero; - //cy=zero; - //cz=zero; - //cxx=zero; - //cyy=zero; - //czz=zero; - //cxy=zero; - //cxz=zero; - //cyz=zero; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real mfcbb = c0o1; - real mfabb = c0o1; - real mfbcb = c0o1; - real mfbab = c0o1; - real mfbbc = c0o1; - real mfbba = c0o1; - real mfccb = c0o1; - real mfaab = c0o1; - real mfcab = c0o1; - real mfacb = c0o1; - real mfcbc = c0o1; - real mfaba = c0o1; - real mfcba = c0o1; - real mfabc = c0o1; - real mfbcc = c0o1; - real mfbaa = c0o1; - real mfbca = c0o1; - real mfbac = c0o1; - real mfbbb = c0o1; - real mfccc = c0o1; - real mfaac = c0o1; - real mfcac = c0o1; - real mfacc = c0o1; - real mfcca = c0o1; - real mfaaa = c0o1; - real mfcaa = c0o1; - real mfaca = c0o1; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real m0, m1, m2, vvx, vvy, vvz, vx2, vy2, vz2, oMdrho; - real mxxPyyPzz, mxxMyy, mxxMzz, mxxyPyzz, mxxyMyzz, mxxzPyyz, mxxzMyyz, mxyyPxzz, mxyyMxzz; - real qudricLimit = c1o100;//ganz schlechte Idee -> muss global sein - real O3 = c2o1 - o; - real residu, residutmp; - residutmp = c0o1;///*-*/ c2o9 * (1./o - c1o2) * eps_new * eps_new; - real NeqOn = c1o1;//zero;//one; //.... one = on ..... zero = off - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position C 0., 0., 0. - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //x = 0.; - //y = 0.; - //z = 0.; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //real mxoff = -xoff; - //real myoff = -yoff; - //real mzoff = -zoff; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //press = press_NET * (c1o8 - c1o4 * mxoff - c1o4 * myoff - c1o4 * mzoff) + - // press_NWT * (c1o8 + c1o4 * mxoff - c1o4 * myoff - c1o4 * mzoff) + - // press_SET * (c1o8 - c1o4 * mxoff + c1o4 * myoff - c1o4 * mzoff) + - // press_SWT * (c1o8 + c1o4 * mxoff + c1o4 * myoff - c1o4 * mzoff) + - // press_NEB * (c1o8 - c1o4 * mxoff - c1o4 * myoff + c1o4 * mzoff) + - // press_NWB * (c1o8 + c1o4 * mxoff - c1o4 * myoff + c1o4 * mzoff) + - // press_SEB * (c1o8 - c1o4 * mxoff + c1o4 * myoff + c1o4 * mzoff) + - // press_SWB * (c1o8 + c1o4 * mxoff + c1o4 * myoff + c1o4 * mzoff); - //drho = drho_NET * (c1o8 - c1o4 * xoff - c1o4 * yoff - c1o4 * zoff) + - // drho_NWT * (c1o8 + c1o4 * xoff - c1o4 * yoff - c1o4 * zoff) + - // drho_SET * (c1o8 - c1o4 * xoff + c1o4 * yoff - c1o4 * zoff) + - // drho_SWT * (c1o8 + c1o4 * xoff + c1o4 * yoff - c1o4 * zoff) + - // drho_NEB * (c1o8 - c1o4 * xoff - c1o4 * yoff + c1o4 * zoff) + - // drho_NWB * (c1o8 + c1o4 * xoff - c1o4 * yoff + c1o4 * zoff) + - // drho_SEB * (c1o8 - c1o4 * xoff + c1o4 * yoff + c1o4 * zoff) + - // drho_SWB * (c1o8 + c1o4 * xoff + c1o4 * yoff + c1o4 * zoff); - press = d0; - vvx = a0; - vvy = b0; - vvz = c0; - - //mfaaa = drho; - //mfaaa = press + (ax+by+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //two - // linear combinations - mxxPyyPzz = mfaaa; - //mxxMyy = -c2o3*(ax - by)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy)*eps_new/o; - //mfbab = -c1o3 * (az + cx)*eps_new/o; - //mfbba = -c1o3 * (ay + bx)*eps_new/o; - mxxMyy = -c2o3*((ax - by)+kxxMyyAverage)*eps_new/o*mfaaa; - mxxMzz = -c2o3*((ax - cz)+kxxMzzAverage)*eps_new/o*mfaaa; - - mfabb = -c1o3 * ((bz + cy)+kyzAverage)*eps_new/o*mfaaa; - mfbab = -c1o3 * ((az + cx)+kxzAverage)*eps_new/o*mfaaa; - mfbba = -c1o3 * ((ay + bx)+kxyAverage)*eps_new/o*mfaaa; - - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //3. - // linear combinations - residu = residutmp * (ayz + bxz + cxy ); - mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu))*mfaaa; - - residu = residutmp * (axy + c2o1*bxx + c2o1*bzz + cyz ); - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz )); - mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu))*mfaaa; - - residu = residutmp * (axy + c2o1*bxx - c2o1*bzz - cyz ); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz ); - mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu))*mfaaa; - - residu = residutmp * (axz + byz + c2o1*cxx + c2o1*cyy ); - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy )); - mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu))*mfaaa; - - residu = residutmp * (axz - byz + c2o1*cxx - c2o1*cyy ); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy ); - mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu))*mfaaa; - - residu = residutmp * (c2o1*ayy + c2o1*azz + bxy + cxz ); - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz ); - mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu))*mfaaa; - - residu = residutmp * (c2o1*ayy - c2o1*azz + bxy - cxz ); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz ); - mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu))*mfaaa; - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4. - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - //index 0 - kzero= posC[k]; - kw = neighborCX[kzero]; - ks = neighborCY[kzero]; - kb = neighborCZ[kzero]; - ksw = neighborCY[kw]; - kbw = neighborCZ[kw]; - kbs = neighborCZ[ks]; - kbsw = neighborCZ[ksw]; - //////////////////////////////////////////////////////////////////////////////////// - - - //////////////////////////////////////////////////////////////////////////////////// - feC[kzero] = mfcbb; - fwC[kw] = mfabb; - fnC[kzero] = mfbcb; - fsC[ks] = mfbab; - ftC[kzero] = mfbbc; - fbC[kb] = mfbba; - fneC[kzero] = mfccb; - fswC[ksw] = mfaab; - fseC[ks] = mfcab; - fnwC[kw] = mfacb; - fteC[kzero] = mfcbc; - fbwC[kbw] = mfaba; - fbeC[kb] = mfcba; - ftwC[kw] = mfabc; - ftnC[kzero] = mfbcc; - fbsC[kbs] = mfbaa; - fbnC[kb] = mfbca; - ftsC[ks] = mfbac; - fzeroC[kzero] = mfbbb; - ftneC[kzero] = mfccc; - ftseC[ks] = mfcac; - fbneC[kb] = mfcca; - fbseC[kbs] = mfcaa; - ftnwC[kw] = mfacc; - ftswC[ksw] = mfaac; - fbnwC[kbw] = mfaca; - fbswC[kbsw] = mfaaa; - //////////////////////////////////////////////////////////////////////////////////// + real m0, m1, m2, vvx, vvy, vvz, vx2, vy2, vz2, oMdrho; + real mxxPyyPzz, mxxMyy, mxxMzz, mxxyPyzz, mxxyMyzz, mxxzPyyz, mxxzMyyz, mxyyPxzz, mxyyMxzz; + real qudricLimit = c1o100;//ganz schlechte Idee -> muss global sein + real O3 = c2o1 - o; + real residu, residutmp; + residutmp = c0o1;///*-*/ c2o9 * (1./o - c1o2) * eps_new * eps_new; + real NeqOn = c1o1;//zero;//one; //.... one = on ..... zero = off + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position C 0., 0., 0. + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //x = 0.; + //y = 0.; + //z = 0.; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //real mxoff = -xoff; + //real myoff = -yoff; + //real mzoff = -zoff; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //press = press_NET * (c1o8 - c1o4 * mxoff - c1o4 * myoff - c1o4 * mzoff) + + // press_NWT * (c1o8 + c1o4 * mxoff - c1o4 * myoff - c1o4 * mzoff) + + // press_SET * (c1o8 - c1o4 * mxoff + c1o4 * myoff - c1o4 * mzoff) + + // press_SWT * (c1o8 + c1o4 * mxoff + c1o4 * myoff - c1o4 * mzoff) + + // press_NEB * (c1o8 - c1o4 * mxoff - c1o4 * myoff + c1o4 * mzoff) + + // press_NWB * (c1o8 + c1o4 * mxoff - c1o4 * myoff + c1o4 * mzoff) + + // press_SEB * (c1o8 - c1o4 * mxoff + c1o4 * myoff + c1o4 * mzoff) + + // press_SWB * (c1o8 + c1o4 * mxoff + c1o4 * myoff + c1o4 * mzoff); + //drho = drho_NET * (c1o8 - c1o4 * xoff - c1o4 * yoff - c1o4 * zoff) + + // drho_NWT * (c1o8 + c1o4 * xoff - c1o4 * yoff - c1o4 * zoff) + + // drho_SET * (c1o8 - c1o4 * xoff + c1o4 * yoff - c1o4 * zoff) + + // drho_SWT * (c1o8 + c1o4 * xoff + c1o4 * yoff - c1o4 * zoff) + + // drho_NEB * (c1o8 - c1o4 * xoff - c1o4 * yoff + c1o4 * zoff) + + // drho_NWB * (c1o8 + c1o4 * xoff - c1o4 * yoff + c1o4 * zoff) + + // drho_SEB * (c1o8 - c1o4 * xoff + c1o4 * yoff + c1o4 * zoff) + + // drho_SWB * (c1o8 + c1o4 * xoff + c1o4 * yoff + c1o4 * zoff); + press = d0; + vvx = a0; + vvy = b0; + vvz = c0; + + //mfaaa = drho; + //mfaaa = press + (ax+by+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1; + //oMdrho = one - mfaaa; + + //two + // linear combinations + mxxPyyPzz = mfaaa; + //mxxMyy = -c2o3*(ax - by)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy)*eps_new/o; + //mfbab = -c1o3 * (az + cx)*eps_new/o; + //mfbba = -c1o3 * (ay + bx)*eps_new/o; + mxxMyy = -c2o3*((ax - by)+kxxMyyAverage)*eps_new/o*mfaaa; + mxxMzz = -c2o3*((ax - cz)+kxxMzzAverage)*eps_new/o*mfaaa; + + mfabb = -c1o3 * ((bz + cy)+kyzAverage)*eps_new/o*mfaaa; + mfbab = -c1o3 * ((az + cx)+kxzAverage)*eps_new/o*mfaaa; + mfbba = -c1o3 * ((ay + bx)+kxyAverage)*eps_new/o*mfaaa; + + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //3. + // linear combinations + residu = residutmp * (ayz + bxz + cxy ); + mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu))*mfaaa; + + residu = residutmp * (axy + c2o1*bxx + c2o1*bzz + cyz ); + //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz )); + mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu))*mfaaa; + + residu = residutmp * (axy + c2o1*bxx - c2o1*bzz - cyz ); + //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz ); + mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu))*mfaaa; + + residu = residutmp * (axz + byz + c2o1*cxx + c2o1*cyy ); + //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy )); + mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu))*mfaaa; + + residu = residutmp * (axz - byz + c2o1*cxx - c2o1*cyy ); + //residu = c1o9*(axz - byz - 2*cxx + 2*cyy ); + mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu))*mfaaa; + + residu = residutmp * (c2o1*ayy + c2o1*azz + bxy + cxz ); + //residu = c1o9*(2*ayy + 2*azz - bxy - cxz ); + mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu))*mfaaa; + + residu = residutmp * (c2o1*ayy - c2o1*azz + bxy - cxz ); + //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz ); + mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu))*mfaaa; + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4. + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + //index 0 + kzero= posC[k]; + kw = neighborCX[kzero]; + ks = neighborCY[kzero]; + kb = neighborCZ[kzero]; + ksw = neighborCY[kw]; + kbw = neighborCZ[kw]; + kbs = neighborCZ[ks]; + kbsw = neighborCZ[ksw]; + //////////////////////////////////////////////////////////////////////////////////// + + + //////////////////////////////////////////////////////////////////////////////////// + feC[kzero] = mfcbb; + fwC[kw] = mfabb; + fnC[kzero] = mfbcb; + fsC[ks] = mfbab; + ftC[kzero] = mfbbc; + fbC[kb] = mfbba; + fneC[kzero] = mfccb; + fswC[ksw] = mfaab; + fseC[ks] = mfcab; + fnwC[kw] = mfacb; + fteC[kzero] = mfcbc; + fbwC[kbw] = mfaba; + fbeC[kb] = mfcba; + ftwC[kw] = mfabc; + ftnC[kzero] = mfbcc; + fbsC[kbs] = mfbaa; + fbnC[kb] = mfbca; + ftsC[ks] = mfbac; + fzeroC[kzero] = mfbbb; + ftneC[kzero] = mfccc; + ftseC[ks] = mfcac; + fbneC[kb] = mfcca; + fbseC[kbs] = mfcaa; + ftnwC[kw] = mfacc; + ftswC[ksw] = mfaac; + fbnwC[kbw] = mfaca; + fbswC[kbsw] = mfaaa; + //////////////////////////////////////////////////////////////////////////////////// } } ////////////////////////////////////////////////////////////////////////// @@ -12467,27 +12467,27 @@ __global__ void scaleFC_staggered_time_comp_27( real* DC, ////////////////////////////////////////////////////////////////////////// __global__ void scaleFC_Fix_comp_27( real* DC, - real* DF, - unsigned int* neighborCX, - unsigned int* neighborCY, - unsigned int* neighborCZ, - unsigned int* neighborFX, - unsigned int* neighborFY, - unsigned int* neighborFZ, - unsigned long long numberOfLBnodesCoarse, - unsigned long long numberOfLBnodesFine, - bool isEvenTimestep, - unsigned int* posC, - unsigned int* posFSWB, - unsigned int kFC, - real omCoarse, - real omFine, - real nu, - unsigned int nxC, - unsigned int nyC, - unsigned int nxF, - unsigned int nyF, - ICellNeigh offFC) + real* DF, + unsigned int* neighborCX, + unsigned int* neighborCY, + unsigned int* neighborCZ, + unsigned int* neighborFX, + unsigned int* neighborFY, + unsigned int* neighborFZ, + unsigned long long numberOfLBnodesCoarse, + unsigned long long numberOfLBnodesFine, + bool isEvenTimestep, + unsigned int* posC, + unsigned int* posFSWB, + unsigned int kFC, + real omCoarse, + real omFine, + real nu, + unsigned int nxC, + unsigned int nyC, + unsigned int nxF, + unsigned int nyF, + ICellNeigh offFC) { real *feF, *fwF, *fnF, *fsF, *ftF, *fbF, *fneF, *fswF, *fseF, *fnwF, *fteF, *fbwF, *fbeF, *ftwF, *ftnF, *fbsF, *fbnF, *ftsF, *fzeroF, *ftneF, *ftswF, *ftseF, *ftnwF, *fbneF, *fbswF, *fbseF, *fbnwF; @@ -12690,67 +12690,67 @@ __global__ void scaleFC_Fix_comp_27( real* DC, drho_SWB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; vx1_SWB = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_SWB); - vx2_SWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SWB); - vx3_SWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SWB); + vx2_SWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SWB); + vx3_SWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SWB); - //nicht konditioniert - //kxyFromfcNEQ_SWB = -three*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (one + drho_SWB) - ((vx1_SWB*vx2_SWB))); + //nicht konditioniert + //kxyFromfcNEQ_SWB = -three*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (one + drho_SWB) - ((vx1_SWB*vx2_SWB))); //kyzFromfcNEQ_SWB = -three*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (one + drho_SWB) - ((vx2_SWB*vx3_SWB))); //kxzFromfcNEQ_SWB = -three*omegaS*((f_BW+f_BSW+f_BNW-f_TW-f_TSW-f_TNW-f_BE-f_BSE-f_BNE+f_TE+f_TSE+f_TNE ) / (one + drho_SWB) - ((vx1_SWB*vx3_SWB))); //kxxMyyFromfcNEQ_SWB = -c3o2*omegaS *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (one + drho_SWB) - ((vx1_SWB*vx1_SWB-vx2_SWB*vx2_SWB))); //kxxMzzFromfcNEQ_SWB = -c3o2*omegaS *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (one + drho_SWB) - ((vx1_SWB*vx1_SWB-vx3_SWB*vx3_SWB))); - kxyFromfcNEQ_SWB = -c3o1*omegaS*((((f_SW - f_SE) + (f_NE - f_NW)) + (((f_BSW - f_BSE) + (f_BNE - f_BNW)) + ((f_TSW - f_TSE) + (f_TNE - f_TNW)))) / (c1o1 + drho_SWB) - ((vx1_SWB*vx2_SWB))); - kyzFromfcNEQ_SWB = -c3o1*omegaS*((((f_BS - f_TS) + (f_TN - f_BN)) + (((f_BSE - f_TSE) + (f_BSW - f_BNW)) + ((f_TNE - f_BNE) + (f_TNW - f_TSW)))) / (c1o1 + drho_SWB) - ((vx2_SWB*vx3_SWB))); - kxzFromfcNEQ_SWB = -c3o1*omegaS*((((f_BW - f_BE) + (f_TE - f_TW)) + (((f_BSW - f_BSE) + (f_BNW - f_BNE)) + ((f_TSE - f_TSW) + (f_TNE - f_TNW)))) / (c1o1 + drho_SWB) - ((vx1_SWB*vx3_SWB))); - kxxMyyFromfcNEQ_SWB = -c3o2*omegaS *(((((f_BW - f_BS) + (f_TW - f_TS)) + ((f_BE - f_BN) + (f_TE - f_TN))) + ((f_W - f_S) + (f_E - f_N))) / (c1o1 + drho_SWB) - ((vx1_SWB*vx1_SWB - vx2_SWB*vx2_SWB))); - kxxMzzFromfcNEQ_SWB = -c3o2*omegaS *(((((f_SW - f_BS) + (f_NW - f_BN)) + ((f_SE - f_TS) + (f_NE - f_TN))) + ((f_W - f_B) + (f_E - f_T))) / (c1o1 + drho_SWB) - ((vx1_SWB*vx1_SWB - vx3_SWB*vx3_SWB))); - kyyMzzFromfcNEQ_SWB = -c3o2*omegaS *(((((f_SE - f_BE) + (f_SW - f_BW)) + ((f_NE - f_TE) + (f_NW - f_TW))) + ((f_S - f_B) + (f_N - f_T))) / (c1o1 + drho_SWB) - ((vx2_SWB*vx2_SWB - vx3_SWB*vx3_SWB))); - - ////konditioniert - //vvx = vx1_SWB; - //vvy = vx2_SWB; - //vvz = vx3_SWB; - //drho = drho_SWB; - //vx2 = vvx * vvx; - //vy2 = vvy * vvy; - //vz2 = vvz * vvz; - - - //f_E -= c2over27*drho + (drho + one)*(c2o9*(vvx + vx2) + (c1o6 + c1o2*(vvx + vx2))*vy2*vz2 - c1o9*(vy2 + vz2) - c1o3*(vvx + vx2)*(vy2 + vz2)); - //f_W -= c2over27*drho - (drho + one)*((vvx - vx2)*(c2o9 - c1o3*vy2) - (c1o6*vy2 + (vvx - vx2)*(c1o3 - c1o2*vy2))*vz2 + c1o9*(vy2 + vz2)); - //f_N -= c2over27*drho + (drho + one)*(c2o9*(vvy + vy2) + vx2*(c1o6 + c1o2*(vvy + vy2))*vz2 - c1o9*(vx2 + vz2) - c1o3*(vvy + vy2)*(vx2 + vz2)); - //f_S -= c2over27*drho - (drho + one)*((c2o9 - c1o3*vx2)*(vvy - vy2) - (c1o6*vx2 + (c1o3 - c1o2*vx2)*(vvy - vy2))*vz2 + c1o9*(vx2 + vz2)); - //f_T -= c2over27*drho + (drho + one)*(-(c1o9*(vx2 + vy2)) + c2o9*(vvz + vz2) - c1o3*(vx2 + vy2)*(vvz + vz2) + vx2*vy2*(c1o6 + c1o2*(vvz + vz2))); - //f_B -= c2over27*drho - (drho + one)*(c1o9*(vx2 + vy2) + c2o9*(vvz - vz2) - c1o3*(vx2 + vy2)*(vvz - vz2) - vx2*vy2*(c1o6 + c1o2*(-vvz + vz2))); - //f_NE -= c1over54*drho + (drho + one)*(c1o6*(vvx + vx2)*(vvy + vy2) + c1o18*(vvx + vvy + vx2 + vy2) - (c1o36 + c1o4*(vvx + vx2)*(vvy + vy2) + c1o12*(vvx + vvy + vx2 + vy2))*vz2); - //f_SW -= c1over54*drho + (drho + one)*(c1o6*(vvx - vx2)*(vvy - vy2) + c1o18*(-vvx - vvy + vx2 + vy2) - (c1o36 + c1o4*(vvx - vx2)*(vvy - vy2) + c1o12*(-vvx - vvy + vx2 + vy2))*vz2); - //f_SE -= c1over54*drho + (drho + one)*(-(c1o6*(vvx + vx2)*(vvy - vy2)) + c1o18*(vvx - vvy + vx2 + vy2) - (c1o36 - c1o4*(vvx + vx2)*(vvy - vy2) + c1o12*(vvx - vvy + vx2 + vy2))*vz2); - //f_NW -= c1over54*drho + (drho + one)*(-(c1o6*(vvx - vx2)*(vvy + vy2)) + c1o18*(-vvx + vvy + vx2 + vy2) - (c1o36 - c1o4*(vvx - vx2)*(vvy + vy2) + c1o12*(-vvx + vvy + vx2 + vy2))*vz2); - //f_TE -= c1over54*drho + (drho + one)*(c1o6*(vvx + vx2)*(vvz + vz2) + c1o18*(vvx + vvz + vx2 + vz2) - vy2*(c1o36 + c1o4*(vvx + vx2)*(vvz + vz2) + c1o12*(vvx + vvz + vx2 + vz2))); - //f_BW -= c1over54*drho - (drho + one)*(-(c1o6*(vvx - vx2)*(vvz - vz2)) + c1o18*(vvx + vvz - vx2 - vz2) + vy2*(c1o36 + c1o4*(vvx - vx2)*(vvz - vz2) + c1o12*(-vvx - vvz + vx2 + vz2))); - //f_BE -= c1over54*drho + (drho + one)*(-(c1o6*(vvx + vx2)*(vvz - vz2)) + c1o18*(vvx - vvz + vx2 + vz2) - vy2*(c1o36 - c1o4*(vvx + vx2)*(vvz - vz2) + c1o12*(vvx - vvz + vx2 + vz2))); - //f_TW -= c1over54*drho - (drho + one)*(c1o18*(vvx - vvz - vx2 - vz2) + c1o6*(vvx - vx2)*(vvz + vz2) + vy2*(c1o36 - c1o4*(vvx - vx2)*(vvz + vz2) + c1o12*(-vvx + vvz + vx2 + vz2))); - //f_TN -= c1over54*drho + (drho + one)*(c1o6*(vvy + vy2)*(vvz + vz2) + c1o18*(vvy + vvz + vy2 + vz2) - vx2*(c1o36 + c1o4*(vvy + vy2)*(vvz + vz2) + c1o12*(vvy + vvz + vy2 + vz2))); - //f_BS -= c1over54*drho - (drho + one)*(c1o18*(vvy - vvz - vy2 - vz2) + c1o6*(vvy - vy2)*(vvz + vz2) + vx2*(c1o36 - c1o4*(vvy - vy2)*(vvz + vz2) + c1o12*(-vvy + vvz + vy2 + vz2))); - //f_BN -= c1over54*drho + (drho + one)*(-(c1o6*(vvy + vy2)*(vvz - vz2)) + c1o18*(vvy - vvz + vy2 + vz2) - vx2*(c1o36 - c1o4*(vvy + vy2)*(vvz - vz2) + c1o12*(vvy - vvz + vy2 + vz2))); - //f_TS -= c1over54*drho - (drho + one)*(c1o18*(vvy - vvz - vy2 - vz2) + c1o6*(vvy - vy2)*(vvz + vz2) + vx2*(c1o36 - c1o4*(vvy - vy2)*(vvz + vz2) + c1o12*(-vvy + vvz + vy2 + vz2))); - //f_ZERO -= c8over27*drho - (drho + one)*(vx2*vy2*vz2 + c4o9*(vx2 + vy2 + vz2) - c2o3*(vx2*vy2 + (vx2 + vy2)*vz2)); - //f_TNE -= c1over216*drho + (drho + one)*(c1o8*(vvx + vx2)*(vvy + vy2)*(vvz + vz2) + c1o72*(vvx + vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 + vvy*(vvz + vx2 + vz2) + vvx*(vvy + vvz + vy2 + vz2))); - //f_TSW -= c1over216*drho + (drho + one)*(c1o8*(vvx - vx2)*(vvy - vy2)*(vvz + vz2) + c1o72*(-vvx - vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + vvx*(vvy - vvz - vy2 - vz2) + (vx2 + vy2)*vz2 - vvy*(vvz + vx2 + vz2))); - //f_TSE -= c1over216*drho + (drho + one)*(-(c1o8*(vvx + vx2)*(vvy - vy2)*(vvz + vz2)) + c1o72*(vvx - vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 - vvy*(vvz + vx2 + vz2) + vvx*(-vvy + vvz + vy2 + vz2))); - //f_TNW -= c1over216*drho - (drho + one)*(c1o72*(vvx - vvy - vvz - vx2 - vy2 - vz2) + c1o8*(vvx - vx2)*(vvy + vy2)*(vvz + vz2) - c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 + vvy*(vvz + vx2 + vz2) - vvx*(vvy + vvz + vy2 + vz2))); - //f_BNE -= c1over216*drho + (drho + one)*(-(c1o8*(vvx + vx2)*(vvy + vy2)*(vvz - vz2)) + c1o72*(vvx + vvy - vvz + vx2 + vy2 + vz2) + c1o24*(-(vvy*vvz) + vvy*vx2 - vvz*vx2 - vvz*vy2 + vx2*vy2 + (vvy + vx2 + vy2)*vz2 + vvx*(vvy - vvz + vy2 + vz2))); - //f_BSW -= c1over216*drho - (drho + one)*(c1o8*(vvx - vx2)*(vvy - vy2)*(vvz - vz2) + c1o72*(vvx + vvy + vvz - vx2 - vy2 - vz2) + c1o24*(vvz*vx2 + vvz*vy2 - vx2*vy2 - (vx2 + vy2)*vz2 + vvy*(-vvz + vx2 + vz2) + vvx*(-vvy - vvz + vy2 + vz2))); - //f_BSE -= c1over216*drho + (drho + one)*(c1o8*(vvx + vx2)*(vvy - vy2)*(vvz - vz2) + c1o72*(vvx - vvy - vvz + vx2 + vy2 + vz2) + c1o24*(-(vvx*vvy) - vvx*vvz + vvy*vvz - (vvy + vvz)*vx2 + (vvx - vvz + vx2)*vy2 + (vvx - vvy + vx2 + vy2)*vz2)); - //f_BNW -= c1over216*drho - (drho + one)*(-(c1o8*(vvx - vx2)*(vvy + vy2)*(vvz - vz2)) + c1o72*(vvx - vvy + vvz - vx2 - vy2 - vz2) + c1o24*(vvy*vvz - vvy*vx2 + vvz*vx2 + vvz*vy2 - vx2*vy2 - (vvy + vx2 + vy2)*vz2 + vvx*(vvy - vvz + vy2 + vz2))); - - //kxyFromfcNEQ_SWB = -three*omegaS *((((f_SW - f_SE) + (f_NE - f_NW)) + (((f_BSW - f_BSE) + (f_BNE - f_BNW)) + ((f_TSW - f_TSE) + (f_TNE - f_TNW)))) / (one + drho)); - //kyzFromfcNEQ_SWB = -three*omegaS *((((f_BS - f_TS) + (f_TN - f_BN)) + (((f_BSE - f_TSE) + (f_BSW - f_BNW)) + ((f_TNE - f_BNE) + (f_TNW - f_TSW)))) / (one + drho)); - //kxzFromfcNEQ_SWB = -three*omegaS *((((f_BW - f_BE) + (f_TE - f_TW)) + (((f_BSW - f_BSE) + (f_BNW - f_BNE)) + ((f_TSE - f_TSW) + (f_TNE - f_TNW)))) / (one + drho)); - //kxxMyyFromfcNEQ_SWB = -c3o2*omegaS *(((((f_BW - f_BS) + (f_TW - f_TS)) + ((f_BE - f_BN) + (f_TE - f_TN))) + ((f_W - f_S) + (f_E - f_N))) / (one + drho)); - //kxxMzzFromfcNEQ_SWB = -c3o2*omegaS *(((((f_SW - f_BS) + (f_NW - f_BN)) + ((f_SE - f_TS) + (f_NE - f_TN))) + ((f_W - f_B) + (f_E - f_T))) / (one + drho)); - //kyyMzzFromfcNEQ_SWB = -c3o2*omegaS *(((((f_SE - f_BE) + (f_SW - f_BW)) + ((f_NE - f_TE) + (f_NW - f_TW))) + ((f_S - f_B) + (f_N - f_T))) / (one + drho)); + kxyFromfcNEQ_SWB = -c3o1*omegaS*((((f_SW - f_SE) + (f_NE - f_NW)) + (((f_BSW - f_BSE) + (f_BNE - f_BNW)) + ((f_TSW - f_TSE) + (f_TNE - f_TNW)))) / (c1o1 + drho_SWB) - ((vx1_SWB*vx2_SWB))); + kyzFromfcNEQ_SWB = -c3o1*omegaS*((((f_BS - f_TS) + (f_TN - f_BN)) + (((f_BSE - f_TSE) + (f_BSW - f_BNW)) + ((f_TNE - f_BNE) + (f_TNW - f_TSW)))) / (c1o1 + drho_SWB) - ((vx2_SWB*vx3_SWB))); + kxzFromfcNEQ_SWB = -c3o1*omegaS*((((f_BW - f_BE) + (f_TE - f_TW)) + (((f_BSW - f_BSE) + (f_BNW - f_BNE)) + ((f_TSE - f_TSW) + (f_TNE - f_TNW)))) / (c1o1 + drho_SWB) - ((vx1_SWB*vx3_SWB))); + kxxMyyFromfcNEQ_SWB = -c3o2*omegaS *(((((f_BW - f_BS) + (f_TW - f_TS)) + ((f_BE - f_BN) + (f_TE - f_TN))) + ((f_W - f_S) + (f_E - f_N))) / (c1o1 + drho_SWB) - ((vx1_SWB*vx1_SWB - vx2_SWB*vx2_SWB))); + kxxMzzFromfcNEQ_SWB = -c3o2*omegaS *(((((f_SW - f_BS) + (f_NW - f_BN)) + ((f_SE - f_TS) + (f_NE - f_TN))) + ((f_W - f_B) + (f_E - f_T))) / (c1o1 + drho_SWB) - ((vx1_SWB*vx1_SWB - vx3_SWB*vx3_SWB))); + kyyMzzFromfcNEQ_SWB = -c3o2*omegaS *(((((f_SE - f_BE) + (f_SW - f_BW)) + ((f_NE - f_TE) + (f_NW - f_TW))) + ((f_S - f_B) + (f_N - f_T))) / (c1o1 + drho_SWB) - ((vx2_SWB*vx2_SWB - vx3_SWB*vx3_SWB))); + + ////konditioniert + //vvx = vx1_SWB; + //vvy = vx2_SWB; + //vvz = vx3_SWB; + //drho = drho_SWB; + //vx2 = vvx * vvx; + //vy2 = vvy * vvy; + //vz2 = vvz * vvz; + + + //f_E -= c2over27*drho + (drho + one)*(c2o9*(vvx + vx2) + (c1o6 + c1o2*(vvx + vx2))*vy2*vz2 - c1o9*(vy2 + vz2) - c1o3*(vvx + vx2)*(vy2 + vz2)); + //f_W -= c2over27*drho - (drho + one)*((vvx - vx2)*(c2o9 - c1o3*vy2) - (c1o6*vy2 + (vvx - vx2)*(c1o3 - c1o2*vy2))*vz2 + c1o9*(vy2 + vz2)); + //f_N -= c2over27*drho + (drho + one)*(c2o9*(vvy + vy2) + vx2*(c1o6 + c1o2*(vvy + vy2))*vz2 - c1o9*(vx2 + vz2) - c1o3*(vvy + vy2)*(vx2 + vz2)); + //f_S -= c2over27*drho - (drho + one)*((c2o9 - c1o3*vx2)*(vvy - vy2) - (c1o6*vx2 + (c1o3 - c1o2*vx2)*(vvy - vy2))*vz2 + c1o9*(vx2 + vz2)); + //f_T -= c2over27*drho + (drho + one)*(-(c1o9*(vx2 + vy2)) + c2o9*(vvz + vz2) - c1o3*(vx2 + vy2)*(vvz + vz2) + vx2*vy2*(c1o6 + c1o2*(vvz + vz2))); + //f_B -= c2over27*drho - (drho + one)*(c1o9*(vx2 + vy2) + c2o9*(vvz - vz2) - c1o3*(vx2 + vy2)*(vvz - vz2) - vx2*vy2*(c1o6 + c1o2*(-vvz + vz2))); + //f_NE -= c1over54*drho + (drho + one)*(c1o6*(vvx + vx2)*(vvy + vy2) + c1o18*(vvx + vvy + vx2 + vy2) - (c1o36 + c1o4*(vvx + vx2)*(vvy + vy2) + c1o12*(vvx + vvy + vx2 + vy2))*vz2); + //f_SW -= c1over54*drho + (drho + one)*(c1o6*(vvx - vx2)*(vvy - vy2) + c1o18*(-vvx - vvy + vx2 + vy2) - (c1o36 + c1o4*(vvx - vx2)*(vvy - vy2) + c1o12*(-vvx - vvy + vx2 + vy2))*vz2); + //f_SE -= c1over54*drho + (drho + one)*(-(c1o6*(vvx + vx2)*(vvy - vy2)) + c1o18*(vvx - vvy + vx2 + vy2) - (c1o36 - c1o4*(vvx + vx2)*(vvy - vy2) + c1o12*(vvx - vvy + vx2 + vy2))*vz2); + //f_NW -= c1over54*drho + (drho + one)*(-(c1o6*(vvx - vx2)*(vvy + vy2)) + c1o18*(-vvx + vvy + vx2 + vy2) - (c1o36 - c1o4*(vvx - vx2)*(vvy + vy2) + c1o12*(-vvx + vvy + vx2 + vy2))*vz2); + //f_TE -= c1over54*drho + (drho + one)*(c1o6*(vvx + vx2)*(vvz + vz2) + c1o18*(vvx + vvz + vx2 + vz2) - vy2*(c1o36 + c1o4*(vvx + vx2)*(vvz + vz2) + c1o12*(vvx + vvz + vx2 + vz2))); + //f_BW -= c1over54*drho - (drho + one)*(-(c1o6*(vvx - vx2)*(vvz - vz2)) + c1o18*(vvx + vvz - vx2 - vz2) + vy2*(c1o36 + c1o4*(vvx - vx2)*(vvz - vz2) + c1o12*(-vvx - vvz + vx2 + vz2))); + //f_BE -= c1over54*drho + (drho + one)*(-(c1o6*(vvx + vx2)*(vvz - vz2)) + c1o18*(vvx - vvz + vx2 + vz2) - vy2*(c1o36 - c1o4*(vvx + vx2)*(vvz - vz2) + c1o12*(vvx - vvz + vx2 + vz2))); + //f_TW -= c1over54*drho - (drho + one)*(c1o18*(vvx - vvz - vx2 - vz2) + c1o6*(vvx - vx2)*(vvz + vz2) + vy2*(c1o36 - c1o4*(vvx - vx2)*(vvz + vz2) + c1o12*(-vvx + vvz + vx2 + vz2))); + //f_TN -= c1over54*drho + (drho + one)*(c1o6*(vvy + vy2)*(vvz + vz2) + c1o18*(vvy + vvz + vy2 + vz2) - vx2*(c1o36 + c1o4*(vvy + vy2)*(vvz + vz2) + c1o12*(vvy + vvz + vy2 + vz2))); + //f_BS -= c1over54*drho - (drho + one)*(c1o18*(vvy - vvz - vy2 - vz2) + c1o6*(vvy - vy2)*(vvz + vz2) + vx2*(c1o36 - c1o4*(vvy - vy2)*(vvz + vz2) + c1o12*(-vvy + vvz + vy2 + vz2))); + //f_BN -= c1over54*drho + (drho + one)*(-(c1o6*(vvy + vy2)*(vvz - vz2)) + c1o18*(vvy - vvz + vy2 + vz2) - vx2*(c1o36 - c1o4*(vvy + vy2)*(vvz - vz2) + c1o12*(vvy - vvz + vy2 + vz2))); + //f_TS -= c1over54*drho - (drho + one)*(c1o18*(vvy - vvz - vy2 - vz2) + c1o6*(vvy - vy2)*(vvz + vz2) + vx2*(c1o36 - c1o4*(vvy - vy2)*(vvz + vz2) + c1o12*(-vvy + vvz + vy2 + vz2))); + //f_ZERO -= c8over27*drho - (drho + one)*(vx2*vy2*vz2 + c4o9*(vx2 + vy2 + vz2) - c2o3*(vx2*vy2 + (vx2 + vy2)*vz2)); + //f_TNE -= c1over216*drho + (drho + one)*(c1o8*(vvx + vx2)*(vvy + vy2)*(vvz + vz2) + c1o72*(vvx + vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 + vvy*(vvz + vx2 + vz2) + vvx*(vvy + vvz + vy2 + vz2))); + //f_TSW -= c1over216*drho + (drho + one)*(c1o8*(vvx - vx2)*(vvy - vy2)*(vvz + vz2) + c1o72*(-vvx - vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + vvx*(vvy - vvz - vy2 - vz2) + (vx2 + vy2)*vz2 - vvy*(vvz + vx2 + vz2))); + //f_TSE -= c1over216*drho + (drho + one)*(-(c1o8*(vvx + vx2)*(vvy - vy2)*(vvz + vz2)) + c1o72*(vvx - vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 - vvy*(vvz + vx2 + vz2) + vvx*(-vvy + vvz + vy2 + vz2))); + //f_TNW -= c1over216*drho - (drho + one)*(c1o72*(vvx - vvy - vvz - vx2 - vy2 - vz2) + c1o8*(vvx - vx2)*(vvy + vy2)*(vvz + vz2) - c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 + vvy*(vvz + vx2 + vz2) - vvx*(vvy + vvz + vy2 + vz2))); + //f_BNE -= c1over216*drho + (drho + one)*(-(c1o8*(vvx + vx2)*(vvy + vy2)*(vvz - vz2)) + c1o72*(vvx + vvy - vvz + vx2 + vy2 + vz2) + c1o24*(-(vvy*vvz) + vvy*vx2 - vvz*vx2 - vvz*vy2 + vx2*vy2 + (vvy + vx2 + vy2)*vz2 + vvx*(vvy - vvz + vy2 + vz2))); + //f_BSW -= c1over216*drho - (drho + one)*(c1o8*(vvx - vx2)*(vvy - vy2)*(vvz - vz2) + c1o72*(vvx + vvy + vvz - vx2 - vy2 - vz2) + c1o24*(vvz*vx2 + vvz*vy2 - vx2*vy2 - (vx2 + vy2)*vz2 + vvy*(-vvz + vx2 + vz2) + vvx*(-vvy - vvz + vy2 + vz2))); + //f_BSE -= c1over216*drho + (drho + one)*(c1o8*(vvx + vx2)*(vvy - vy2)*(vvz - vz2) + c1o72*(vvx - vvy - vvz + vx2 + vy2 + vz2) + c1o24*(-(vvx*vvy) - vvx*vvz + vvy*vvz - (vvy + vvz)*vx2 + (vvx - vvz + vx2)*vy2 + (vvx - vvy + vx2 + vy2)*vz2)); + //f_BNW -= c1over216*drho - (drho + one)*(-(c1o8*(vvx - vx2)*(vvy + vy2)*(vvz - vz2)) + c1o72*(vvx - vvy + vvz - vx2 - vy2 - vz2) + c1o24*(vvy*vvz - vvy*vx2 + vvz*vx2 + vvz*vy2 - vx2*vy2 - (vvy + vx2 + vy2)*vz2 + vvx*(vvy - vvz + vy2 + vz2))); + + //kxyFromfcNEQ_SWB = -three*omegaS *((((f_SW - f_SE) + (f_NE - f_NW)) + (((f_BSW - f_BSE) + (f_BNE - f_BNW)) + ((f_TSW - f_TSE) + (f_TNE - f_TNW)))) / (one + drho)); + //kyzFromfcNEQ_SWB = -three*omegaS *((((f_BS - f_TS) + (f_TN - f_BN)) + (((f_BSE - f_TSE) + (f_BSW - f_BNW)) + ((f_TNE - f_BNE) + (f_TNW - f_TSW)))) / (one + drho)); + //kxzFromfcNEQ_SWB = -three*omegaS *((((f_BW - f_BE) + (f_TE - f_TW)) + (((f_BSW - f_BSE) + (f_BNW - f_BNE)) + ((f_TSE - f_TSW) + (f_TNE - f_TNW)))) / (one + drho)); + //kxxMyyFromfcNEQ_SWB = -c3o2*omegaS *(((((f_BW - f_BS) + (f_TW - f_TS)) + ((f_BE - f_BN) + (f_TE - f_TN))) + ((f_W - f_S) + (f_E - f_N))) / (one + drho)); + //kxxMzzFromfcNEQ_SWB = -c3o2*omegaS *(((((f_SW - f_BS) + (f_NW - f_BN)) + ((f_SE - f_TS) + (f_NE - f_TN))) + ((f_W - f_B) + (f_E - f_T))) / (one + drho)); + //kyyMzzFromfcNEQ_SWB = -c3o2*omegaS *(((((f_SE - f_BE) + (f_SW - f_BW)) + ((f_NE - f_TE) + (f_NW - f_TW))) + ((f_S - f_B) + (f_N - f_T))) / (one + drho)); @@ -12797,67 +12797,67 @@ __global__ void scaleFC_Fix_comp_27( real* DC, drho_SWT = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; vx1_SWT = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_SWT); - vx2_SWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SWT); - vx3_SWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SWT); + vx2_SWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SWT); + vx3_SWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SWT); - //nicht konditioniert - //kxyFromfcNEQ_SWT = -three*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (one + drho_SWT) - ((vx1_SWT*vx2_SWT))); + //nicht konditioniert + //kxyFromfcNEQ_SWT = -three*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (one + drho_SWT) - ((vx1_SWT*vx2_SWT))); //kyzFromfcNEQ_SWT = -three*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (one + drho_SWT) - ((vx2_SWT*vx3_SWT))); //kxzFromfcNEQ_SWT = -three*omegaS*((f_BW+f_BSW+f_BNW-f_TW-f_TSW-f_TNW-f_BE-f_BSE-f_BNE+f_TE+f_TSE+f_TNE ) / (one + drho_SWT) - ((vx1_SWT*vx3_SWT))); //kxxMyyFromfcNEQ_SWT = -c3o2*omegaS *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (one + drho_SWT) - ((vx1_SWT*vx1_SWT-vx2_SWT*vx2_SWT))); //kxxMzzFromfcNEQ_SWT = -c3o2*omegaS *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (one + drho_SWT) - ((vx1_SWT*vx1_SWT-vx3_SWT*vx3_SWT))); - kxyFromfcNEQ_SWT = -c3o1*omegaS*((((f_SW - f_SE) + (f_NE - f_NW)) + (((f_BSW - f_BSE) + (f_BNE - f_BNW)) + ((f_TSW - f_TSE) + (f_TNE - f_TNW)))) / (c1o1 + drho_SWT) - ((vx1_SWT*vx2_SWT))); - kyzFromfcNEQ_SWT = -c3o1*omegaS*((((f_BS - f_TS) + (f_TN - f_BN)) + (((f_BSE - f_TSE) + (f_BSW - f_BNW)) + ((f_TNE - f_BNE) + (f_TNW - f_TSW)))) / (c1o1 + drho_SWT) - ((vx2_SWT*vx3_SWT))); - kxzFromfcNEQ_SWT = -c3o1*omegaS*((((f_BW - f_BE) + (f_TE - f_TW)) + (((f_BSW - f_BSE) + (f_BNW - f_BNE)) + ((f_TSE - f_TSW) + (f_TNE - f_TNW)))) / (c1o1 + drho_SWT) - ((vx1_SWT*vx3_SWT))); - kxxMyyFromfcNEQ_SWT = -c3o2*omegaS *(((((f_BW - f_BS) + (f_TW - f_TS)) + ((f_BE - f_BN) + (f_TE - f_TN))) + ((f_W - f_S) + (f_E - f_N))) / (c1o1 + drho_SWT) - ((vx1_SWT*vx1_SWT - vx2_SWT*vx2_SWT))); - kxxMzzFromfcNEQ_SWT = -c3o2*omegaS *(((((f_SW - f_BS) + (f_NW - f_BN)) + ((f_SE - f_TS) + (f_NE - f_TN))) + ((f_W - f_B) + (f_E - f_T))) / (c1o1 + drho_SWT) - ((vx1_SWT*vx1_SWT - vx3_SWT*vx3_SWT))); - kyyMzzFromfcNEQ_SWT = -c3o2*omegaS *(((((f_SE - f_BE) + (f_SW - f_BW)) + ((f_NE - f_TE) + (f_NW - f_TW))) + ((f_S - f_B) + (f_N - f_T))) / (c1o1 + drho_SWT) - ((vx2_SWT*vx2_SWT - vx3_SWT*vx3_SWT))); - - ////konditioniert - //vvx = vx1_SWT; - //vvy = vx2_SWT; - //vvz = vx3_SWT; - //drho = drho_SWT; - //vx2 = vvx * vvx; - //vy2 = vvy * vvy; - //vz2 = vvz * vvz; - - - //f_E -= c2over27*drho + (drho + one)*(c2o9*(vvx + vx2) + (c1o6 + c1o2*(vvx + vx2))*vy2*vz2 - c1o9*(vy2 + vz2) - c1o3*(vvx + vx2)*(vy2 + vz2)); - //f_W -= c2over27*drho - (drho + one)*((vvx - vx2)*(c2o9 - c1o3*vy2) - (c1o6*vy2 + (vvx - vx2)*(c1o3 - c1o2*vy2))*vz2 + c1o9*(vy2 + vz2)); - //f_N -= c2over27*drho + (drho + one)*(c2o9*(vvy + vy2) + vx2*(c1o6 + c1o2*(vvy + vy2))*vz2 - c1o9*(vx2 + vz2) - c1o3*(vvy + vy2)*(vx2 + vz2)); - //f_S -= c2over27*drho - (drho + one)*((c2o9 - c1o3*vx2)*(vvy - vy2) - (c1o6*vx2 + (c1o3 - c1o2*vx2)*(vvy - vy2))*vz2 + c1o9*(vx2 + vz2)); - //f_T -= c2over27*drho + (drho + one)*(-(c1o9*(vx2 + vy2)) + c2o9*(vvz + vz2) - c1o3*(vx2 + vy2)*(vvz + vz2) + vx2*vy2*(c1o6 + c1o2*(vvz + vz2))); - //f_B -= c2over27*drho - (drho + one)*(c1o9*(vx2 + vy2) + c2o9*(vvz - vz2) - c1o3*(vx2 + vy2)*(vvz - vz2) - vx2*vy2*(c1o6 + c1o2*(-vvz + vz2))); - //f_NE -= c1over54*drho + (drho + one)*(c1o6*(vvx + vx2)*(vvy + vy2) + c1o18*(vvx + vvy + vx2 + vy2) - (c1o36 + c1o4*(vvx + vx2)*(vvy + vy2) + c1o12*(vvx + vvy + vx2 + vy2))*vz2); - //f_SW -= c1over54*drho + (drho + one)*(c1o6*(vvx - vx2)*(vvy - vy2) + c1o18*(-vvx - vvy + vx2 + vy2) - (c1o36 + c1o4*(vvx - vx2)*(vvy - vy2) + c1o12*(-vvx - vvy + vx2 + vy2))*vz2); - //f_SE -= c1over54*drho + (drho + one)*(-(c1o6*(vvx + vx2)*(vvy - vy2)) + c1o18*(vvx - vvy + vx2 + vy2) - (c1o36 - c1o4*(vvx + vx2)*(vvy - vy2) + c1o12*(vvx - vvy + vx2 + vy2))*vz2); - //f_NW -= c1over54*drho + (drho + one)*(-(c1o6*(vvx - vx2)*(vvy + vy2)) + c1o18*(-vvx + vvy + vx2 + vy2) - (c1o36 - c1o4*(vvx - vx2)*(vvy + vy2) + c1o12*(-vvx + vvy + vx2 + vy2))*vz2); - //f_TE -= c1over54*drho + (drho + one)*(c1o6*(vvx + vx2)*(vvz + vz2) + c1o18*(vvx + vvz + vx2 + vz2) - vy2*(c1o36 + c1o4*(vvx + vx2)*(vvz + vz2) + c1o12*(vvx + vvz + vx2 + vz2))); - //f_BW -= c1over54*drho - (drho + one)*(-(c1o6*(vvx - vx2)*(vvz - vz2)) + c1o18*(vvx + vvz - vx2 - vz2) + vy2*(c1o36 + c1o4*(vvx - vx2)*(vvz - vz2) + c1o12*(-vvx - vvz + vx2 + vz2))); - //f_BE -= c1over54*drho + (drho + one)*(-(c1o6*(vvx + vx2)*(vvz - vz2)) + c1o18*(vvx - vvz + vx2 + vz2) - vy2*(c1o36 - c1o4*(vvx + vx2)*(vvz - vz2) + c1o12*(vvx - vvz + vx2 + vz2))); - //f_TW -= c1over54*drho - (drho + one)*(c1o18*(vvx - vvz - vx2 - vz2) + c1o6*(vvx - vx2)*(vvz + vz2) + vy2*(c1o36 - c1o4*(vvx - vx2)*(vvz + vz2) + c1o12*(-vvx + vvz + vx2 + vz2))); - //f_TN -= c1over54*drho + (drho + one)*(c1o6*(vvy + vy2)*(vvz + vz2) + c1o18*(vvy + vvz + vy2 + vz2) - vx2*(c1o36 + c1o4*(vvy + vy2)*(vvz + vz2) + c1o12*(vvy + vvz + vy2 + vz2))); - //f_BS -= c1over54*drho - (drho + one)*(c1o18*(vvy - vvz - vy2 - vz2) + c1o6*(vvy - vy2)*(vvz + vz2) + vx2*(c1o36 - c1o4*(vvy - vy2)*(vvz + vz2) + c1o12*(-vvy + vvz + vy2 + vz2))); - //f_BN -= c1over54*drho + (drho + one)*(-(c1o6*(vvy + vy2)*(vvz - vz2)) + c1o18*(vvy - vvz + vy2 + vz2) - vx2*(c1o36 - c1o4*(vvy + vy2)*(vvz - vz2) + c1o12*(vvy - vvz + vy2 + vz2))); - //f_TS -= c1over54*drho - (drho + one)*(c1o18*(vvy - vvz - vy2 - vz2) + c1o6*(vvy - vy2)*(vvz + vz2) + vx2*(c1o36 - c1o4*(vvy - vy2)*(vvz + vz2) + c1o12*(-vvy + vvz + vy2 + vz2))); - //f_ZERO -= c8over27*drho - (drho + one)*(vx2*vy2*vz2 + c4o9*(vx2 + vy2 + vz2) - c2o3*(vx2*vy2 + (vx2 + vy2)*vz2)); - //f_TNE -= c1over216*drho + (drho + one)*(c1o8*(vvx + vx2)*(vvy + vy2)*(vvz + vz2) + c1o72*(vvx + vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 + vvy*(vvz + vx2 + vz2) + vvx*(vvy + vvz + vy2 + vz2))); - //f_TSW -= c1over216*drho + (drho + one)*(c1o8*(vvx - vx2)*(vvy - vy2)*(vvz + vz2) + c1o72*(-vvx - vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + vvx*(vvy - vvz - vy2 - vz2) + (vx2 + vy2)*vz2 - vvy*(vvz + vx2 + vz2))); - //f_TSE -= c1over216*drho + (drho + one)*(-(c1o8*(vvx + vx2)*(vvy - vy2)*(vvz + vz2)) + c1o72*(vvx - vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 - vvy*(vvz + vx2 + vz2) + vvx*(-vvy + vvz + vy2 + vz2))); - //f_TNW -= c1over216*drho - (drho + one)*(c1o72*(vvx - vvy - vvz - vx2 - vy2 - vz2) + c1o8*(vvx - vx2)*(vvy + vy2)*(vvz + vz2) - c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 + vvy*(vvz + vx2 + vz2) - vvx*(vvy + vvz + vy2 + vz2))); - //f_BNE -= c1over216*drho + (drho + one)*(-(c1o8*(vvx + vx2)*(vvy + vy2)*(vvz - vz2)) + c1o72*(vvx + vvy - vvz + vx2 + vy2 + vz2) + c1o24*(-(vvy*vvz) + vvy*vx2 - vvz*vx2 - vvz*vy2 + vx2*vy2 + (vvy + vx2 + vy2)*vz2 + vvx*(vvy - vvz + vy2 + vz2))); - //f_BSW -= c1over216*drho - (drho + one)*(c1o8*(vvx - vx2)*(vvy - vy2)*(vvz - vz2) + c1o72*(vvx + vvy + vvz - vx2 - vy2 - vz2) + c1o24*(vvz*vx2 + vvz*vy2 - vx2*vy2 - (vx2 + vy2)*vz2 + vvy*(-vvz + vx2 + vz2) + vvx*(-vvy - vvz + vy2 + vz2))); - //f_BSE -= c1over216*drho + (drho + one)*(c1o8*(vvx + vx2)*(vvy - vy2)*(vvz - vz2) + c1o72*(vvx - vvy - vvz + vx2 + vy2 + vz2) + c1o24*(-(vvx*vvy) - vvx*vvz + vvy*vvz - (vvy + vvz)*vx2 + (vvx - vvz + vx2)*vy2 + (vvx - vvy + vx2 + vy2)*vz2)); - //f_BNW -= c1over216*drho - (drho + one)*(-(c1o8*(vvx - vx2)*(vvy + vy2)*(vvz - vz2)) + c1o72*(vvx - vvy + vvz - vx2 - vy2 - vz2) + c1o24*(vvy*vvz - vvy*vx2 + vvz*vx2 + vvz*vy2 - vx2*vy2 - (vvy + vx2 + vy2)*vz2 + vvx*(vvy - vvz + vy2 + vz2))); - - //kxyFromfcNEQ_SWT = -three*omegaS*((((f_SW - f_SE) + (f_NE - f_NW)) + (((f_BSW - f_BSE) + (f_BNE - f_BNW)) + ((f_TSW - f_TSE) + (f_TNE - f_TNW)))) / (one + drho)); - //kyzFromfcNEQ_SWT = -three*omegaS*((((f_BS - f_TS) + (f_TN - f_BN)) + (((f_BSE - f_TSE) + (f_BSW - f_BNW)) + ((f_TNE - f_BNE) + (f_TNW - f_TSW)))) / (one + drho)); - //kxzFromfcNEQ_SWT = -three*omegaS*((((f_BW - f_BE) + (f_TE - f_TW)) + (((f_BSW - f_BSE) + (f_BNW - f_BNE)) + ((f_TSE - f_TSW) + (f_TNE - f_TNW)))) / (one + drho)); - //kxxMyyFromfcNEQ_SWT = -c3o2*omegaS *(((((f_BW - f_BS) + (f_TW - f_TS)) + ((f_BE - f_BN) + (f_TE - f_TN))) + ((f_W - f_S) + (f_E - f_N))) / (one + drho)); - //kxxMzzFromfcNEQ_SWT = -c3o2*omegaS *(((((f_SW - f_BS) + (f_NW - f_BN)) + ((f_SE - f_TS) + (f_NE - f_TN))) + ((f_W - f_B) + (f_E - f_T))) / (one + drho)); - //kyyMzzFromfcNEQ_SWT = -c3o2*omegaS *(((((f_SE - f_BE) + (f_SW - f_BW)) + ((f_NE - f_TE) + (f_NW - f_TW))) + ((f_S - f_B) + (f_N - f_T))) / (one + drho)); + kxyFromfcNEQ_SWT = -c3o1*omegaS*((((f_SW - f_SE) + (f_NE - f_NW)) + (((f_BSW - f_BSE) + (f_BNE - f_BNW)) + ((f_TSW - f_TSE) + (f_TNE - f_TNW)))) / (c1o1 + drho_SWT) - ((vx1_SWT*vx2_SWT))); + kyzFromfcNEQ_SWT = -c3o1*omegaS*((((f_BS - f_TS) + (f_TN - f_BN)) + (((f_BSE - f_TSE) + (f_BSW - f_BNW)) + ((f_TNE - f_BNE) + (f_TNW - f_TSW)))) / (c1o1 + drho_SWT) - ((vx2_SWT*vx3_SWT))); + kxzFromfcNEQ_SWT = -c3o1*omegaS*((((f_BW - f_BE) + (f_TE - f_TW)) + (((f_BSW - f_BSE) + (f_BNW - f_BNE)) + ((f_TSE - f_TSW) + (f_TNE - f_TNW)))) / (c1o1 + drho_SWT) - ((vx1_SWT*vx3_SWT))); + kxxMyyFromfcNEQ_SWT = -c3o2*omegaS *(((((f_BW - f_BS) + (f_TW - f_TS)) + ((f_BE - f_BN) + (f_TE - f_TN))) + ((f_W - f_S) + (f_E - f_N))) / (c1o1 + drho_SWT) - ((vx1_SWT*vx1_SWT - vx2_SWT*vx2_SWT))); + kxxMzzFromfcNEQ_SWT = -c3o2*omegaS *(((((f_SW - f_BS) + (f_NW - f_BN)) + ((f_SE - f_TS) + (f_NE - f_TN))) + ((f_W - f_B) + (f_E - f_T))) / (c1o1 + drho_SWT) - ((vx1_SWT*vx1_SWT - vx3_SWT*vx3_SWT))); + kyyMzzFromfcNEQ_SWT = -c3o2*omegaS *(((((f_SE - f_BE) + (f_SW - f_BW)) + ((f_NE - f_TE) + (f_NW - f_TW))) + ((f_S - f_B) + (f_N - f_T))) / (c1o1 + drho_SWT) - ((vx2_SWT*vx2_SWT - vx3_SWT*vx3_SWT))); + + ////konditioniert + //vvx = vx1_SWT; + //vvy = vx2_SWT; + //vvz = vx3_SWT; + //drho = drho_SWT; + //vx2 = vvx * vvx; + //vy2 = vvy * vvy; + //vz2 = vvz * vvz; + + + //f_E -= c2over27*drho + (drho + one)*(c2o9*(vvx + vx2) + (c1o6 + c1o2*(vvx + vx2))*vy2*vz2 - c1o9*(vy2 + vz2) - c1o3*(vvx + vx2)*(vy2 + vz2)); + //f_W -= c2over27*drho - (drho + one)*((vvx - vx2)*(c2o9 - c1o3*vy2) - (c1o6*vy2 + (vvx - vx2)*(c1o3 - c1o2*vy2))*vz2 + c1o9*(vy2 + vz2)); + //f_N -= c2over27*drho + (drho + one)*(c2o9*(vvy + vy2) + vx2*(c1o6 + c1o2*(vvy + vy2))*vz2 - c1o9*(vx2 + vz2) - c1o3*(vvy + vy2)*(vx2 + vz2)); + //f_S -= c2over27*drho - (drho + one)*((c2o9 - c1o3*vx2)*(vvy - vy2) - (c1o6*vx2 + (c1o3 - c1o2*vx2)*(vvy - vy2))*vz2 + c1o9*(vx2 + vz2)); + //f_T -= c2over27*drho + (drho + one)*(-(c1o9*(vx2 + vy2)) + c2o9*(vvz + vz2) - c1o3*(vx2 + vy2)*(vvz + vz2) + vx2*vy2*(c1o6 + c1o2*(vvz + vz2))); + //f_B -= c2over27*drho - (drho + one)*(c1o9*(vx2 + vy2) + c2o9*(vvz - vz2) - c1o3*(vx2 + vy2)*(vvz - vz2) - vx2*vy2*(c1o6 + c1o2*(-vvz + vz2))); + //f_NE -= c1over54*drho + (drho + one)*(c1o6*(vvx + vx2)*(vvy + vy2) + c1o18*(vvx + vvy + vx2 + vy2) - (c1o36 + c1o4*(vvx + vx2)*(vvy + vy2) + c1o12*(vvx + vvy + vx2 + vy2))*vz2); + //f_SW -= c1over54*drho + (drho + one)*(c1o6*(vvx - vx2)*(vvy - vy2) + c1o18*(-vvx - vvy + vx2 + vy2) - (c1o36 + c1o4*(vvx - vx2)*(vvy - vy2) + c1o12*(-vvx - vvy + vx2 + vy2))*vz2); + //f_SE -= c1over54*drho + (drho + one)*(-(c1o6*(vvx + vx2)*(vvy - vy2)) + c1o18*(vvx - vvy + vx2 + vy2) - (c1o36 - c1o4*(vvx + vx2)*(vvy - vy2) + c1o12*(vvx - vvy + vx2 + vy2))*vz2); + //f_NW -= c1over54*drho + (drho + one)*(-(c1o6*(vvx - vx2)*(vvy + vy2)) + c1o18*(-vvx + vvy + vx2 + vy2) - (c1o36 - c1o4*(vvx - vx2)*(vvy + vy2) + c1o12*(-vvx + vvy + vx2 + vy2))*vz2); + //f_TE -= c1over54*drho + (drho + one)*(c1o6*(vvx + vx2)*(vvz + vz2) + c1o18*(vvx + vvz + vx2 + vz2) - vy2*(c1o36 + c1o4*(vvx + vx2)*(vvz + vz2) + c1o12*(vvx + vvz + vx2 + vz2))); + //f_BW -= c1over54*drho - (drho + one)*(-(c1o6*(vvx - vx2)*(vvz - vz2)) + c1o18*(vvx + vvz - vx2 - vz2) + vy2*(c1o36 + c1o4*(vvx - vx2)*(vvz - vz2) + c1o12*(-vvx - vvz + vx2 + vz2))); + //f_BE -= c1over54*drho + (drho + one)*(-(c1o6*(vvx + vx2)*(vvz - vz2)) + c1o18*(vvx - vvz + vx2 + vz2) - vy2*(c1o36 - c1o4*(vvx + vx2)*(vvz - vz2) + c1o12*(vvx - vvz + vx2 + vz2))); + //f_TW -= c1over54*drho - (drho + one)*(c1o18*(vvx - vvz - vx2 - vz2) + c1o6*(vvx - vx2)*(vvz + vz2) + vy2*(c1o36 - c1o4*(vvx - vx2)*(vvz + vz2) + c1o12*(-vvx + vvz + vx2 + vz2))); + //f_TN -= c1over54*drho + (drho + one)*(c1o6*(vvy + vy2)*(vvz + vz2) + c1o18*(vvy + vvz + vy2 + vz2) - vx2*(c1o36 + c1o4*(vvy + vy2)*(vvz + vz2) + c1o12*(vvy + vvz + vy2 + vz2))); + //f_BS -= c1over54*drho - (drho + one)*(c1o18*(vvy - vvz - vy2 - vz2) + c1o6*(vvy - vy2)*(vvz + vz2) + vx2*(c1o36 - c1o4*(vvy - vy2)*(vvz + vz2) + c1o12*(-vvy + vvz + vy2 + vz2))); + //f_BN -= c1over54*drho + (drho + one)*(-(c1o6*(vvy + vy2)*(vvz - vz2)) + c1o18*(vvy - vvz + vy2 + vz2) - vx2*(c1o36 - c1o4*(vvy + vy2)*(vvz - vz2) + c1o12*(vvy - vvz + vy2 + vz2))); + //f_TS -= c1over54*drho - (drho + one)*(c1o18*(vvy - vvz - vy2 - vz2) + c1o6*(vvy - vy2)*(vvz + vz2) + vx2*(c1o36 - c1o4*(vvy - vy2)*(vvz + vz2) + c1o12*(-vvy + vvz + vy2 + vz2))); + //f_ZERO -= c8over27*drho - (drho + one)*(vx2*vy2*vz2 + c4o9*(vx2 + vy2 + vz2) - c2o3*(vx2*vy2 + (vx2 + vy2)*vz2)); + //f_TNE -= c1over216*drho + (drho + one)*(c1o8*(vvx + vx2)*(vvy + vy2)*(vvz + vz2) + c1o72*(vvx + vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 + vvy*(vvz + vx2 + vz2) + vvx*(vvy + vvz + vy2 + vz2))); + //f_TSW -= c1over216*drho + (drho + one)*(c1o8*(vvx - vx2)*(vvy - vy2)*(vvz + vz2) + c1o72*(-vvx - vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + vvx*(vvy - vvz - vy2 - vz2) + (vx2 + vy2)*vz2 - vvy*(vvz + vx2 + vz2))); + //f_TSE -= c1over216*drho + (drho + one)*(-(c1o8*(vvx + vx2)*(vvy - vy2)*(vvz + vz2)) + c1o72*(vvx - vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 - vvy*(vvz + vx2 + vz2) + vvx*(-vvy + vvz + vy2 + vz2))); + //f_TNW -= c1over216*drho - (drho + one)*(c1o72*(vvx - vvy - vvz - vx2 - vy2 - vz2) + c1o8*(vvx - vx2)*(vvy + vy2)*(vvz + vz2) - c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 + vvy*(vvz + vx2 + vz2) - vvx*(vvy + vvz + vy2 + vz2))); + //f_BNE -= c1over216*drho + (drho + one)*(-(c1o8*(vvx + vx2)*(vvy + vy2)*(vvz - vz2)) + c1o72*(vvx + vvy - vvz + vx2 + vy2 + vz2) + c1o24*(-(vvy*vvz) + vvy*vx2 - vvz*vx2 - vvz*vy2 + vx2*vy2 + (vvy + vx2 + vy2)*vz2 + vvx*(vvy - vvz + vy2 + vz2))); + //f_BSW -= c1over216*drho - (drho + one)*(c1o8*(vvx - vx2)*(vvy - vy2)*(vvz - vz2) + c1o72*(vvx + vvy + vvz - vx2 - vy2 - vz2) + c1o24*(vvz*vx2 + vvz*vy2 - vx2*vy2 - (vx2 + vy2)*vz2 + vvy*(-vvz + vx2 + vz2) + vvx*(-vvy - vvz + vy2 + vz2))); + //f_BSE -= c1over216*drho + (drho + one)*(c1o8*(vvx + vx2)*(vvy - vy2)*(vvz - vz2) + c1o72*(vvx - vvy - vvz + vx2 + vy2 + vz2) + c1o24*(-(vvx*vvy) - vvx*vvz + vvy*vvz - (vvy + vvz)*vx2 + (vvx - vvz + vx2)*vy2 + (vvx - vvy + vx2 + vy2)*vz2)); + //f_BNW -= c1over216*drho - (drho + one)*(-(c1o8*(vvx - vx2)*(vvy + vy2)*(vvz - vz2)) + c1o72*(vvx - vvy + vvz - vx2 - vy2 - vz2) + c1o24*(vvy*vvz - vvy*vx2 + vvz*vx2 + vvz*vy2 - vx2*vy2 - (vvy + vx2 + vy2)*vz2 + vvx*(vvy - vvz + vy2 + vz2))); + + //kxyFromfcNEQ_SWT = -three*omegaS*((((f_SW - f_SE) + (f_NE - f_NW)) + (((f_BSW - f_BSE) + (f_BNE - f_BNW)) + ((f_TSW - f_TSE) + (f_TNE - f_TNW)))) / (one + drho)); + //kyzFromfcNEQ_SWT = -three*omegaS*((((f_BS - f_TS) + (f_TN - f_BN)) + (((f_BSE - f_TSE) + (f_BSW - f_BNW)) + ((f_TNE - f_BNE) + (f_TNW - f_TSW)))) / (one + drho)); + //kxzFromfcNEQ_SWT = -three*omegaS*((((f_BW - f_BE) + (f_TE - f_TW)) + (((f_BSW - f_BSE) + (f_BNW - f_BNE)) + ((f_TSE - f_TSW) + (f_TNE - f_TNW)))) / (one + drho)); + //kxxMyyFromfcNEQ_SWT = -c3o2*omegaS *(((((f_BW - f_BS) + (f_TW - f_TS)) + ((f_BE - f_BN) + (f_TE - f_TN))) + ((f_W - f_S) + (f_E - f_N))) / (one + drho)); + //kxxMzzFromfcNEQ_SWT = -c3o2*omegaS *(((((f_SW - f_BS) + (f_NW - f_BN)) + ((f_SE - f_TS) + (f_NE - f_TN))) + ((f_W - f_B) + (f_E - f_T))) / (one + drho)); + //kyyMzzFromfcNEQ_SWT = -c3o2*omegaS *(((((f_SE - f_BE) + (f_SW - f_BW)) + ((f_NE - f_TE) + (f_NW - f_TW))) + ((f_S - f_B) + (f_N - f_T))) / (one + drho)); @@ -12905,67 +12905,67 @@ __global__ void scaleFC_Fix_comp_27( real* DC, drho_SET = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; vx1_SET = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_SET); - vx2_SET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SET); - vx3_SET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SET); + vx2_SET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SET); + vx3_SET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SET); - //nicht konditioniert - //kxyFromfcNEQ_SET = -three*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (one + drho_SET) - ((vx1_SET*vx2_SET))); + //nicht konditioniert + //kxyFromfcNEQ_SET = -three*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (one + drho_SET) - ((vx1_SET*vx2_SET))); //kyzFromfcNEQ_SET = -three*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (one + drho_SET) - ((vx2_SET*vx3_SET))); //kxzFromfcNEQ_SET = -three*omegaS*((f_BW+f_BSW+f_BNW-f_TW-f_TSW-f_TNW-f_BE-f_BSE-f_BNE+f_TE+f_TSE+f_TNE ) / (one + drho_SET) - ((vx1_SET*vx3_SET))); //kxxMyyFromfcNEQ_SET = -c3o2*omegaS *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (one + drho_SET) - ((vx1_SET*vx1_SET-vx2_SET*vx2_SET))); //kxxMzzFromfcNEQ_SET = -c3o2*omegaS *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (one + drho_SET) - ((vx1_SET*vx1_SET-vx3_SET*vx3_SET))); - kxyFromfcNEQ_SET = -c3o1*omegaS*((((f_SW - f_SE) + (f_NE - f_NW)) + (((f_BSW - f_BSE) + (f_BNE - f_BNW)) + ((f_TSW - f_TSE) + (f_TNE - f_TNW)))) / (c1o1 + drho_SET) - ((vx1_SET*vx2_SET))); - kyzFromfcNEQ_SET = -c3o1*omegaS*((((f_BS - f_TS) + (f_TN - f_BN)) + (((f_BSE - f_TSE) + (f_BSW - f_BNW)) + ((f_TNE - f_BNE) + (f_TNW - f_TSW)))) / (c1o1 + drho_SET) - ((vx2_SET*vx3_SET))); - kxzFromfcNEQ_SET = -c3o1*omegaS*((((f_BW - f_BE) + (f_TE - f_TW)) + (((f_BSW - f_BSE) + (f_BNW - f_BNE)) + ((f_TSE - f_TSW) + (f_TNE - f_TNW)))) / (c1o1 + drho_SET) - ((vx1_SET*vx3_SET))); - kxxMyyFromfcNEQ_SET = -c3o2*omegaS *(((((f_BW - f_BS) + (f_TW - f_TS)) + ((f_BE - f_BN) + (f_TE - f_TN))) + ((f_W - f_S) + (f_E - f_N))) / (c1o1 + drho_SET) - ((vx1_SET*vx1_SET - vx2_SET*vx2_SET))); - kxxMzzFromfcNEQ_SET = -c3o2*omegaS *(((((f_SW - f_BS) + (f_NW - f_BN)) + ((f_SE - f_TS) + (f_NE - f_TN))) + ((f_W - f_B) + (f_E - f_T))) / (c1o1 + drho_SET) - ((vx1_SET*vx1_SET - vx3_SET*vx3_SET))); - kyyMzzFromfcNEQ_SET = -c3o2*omegaS *(((((f_SE - f_BE) + (f_SW - f_BW)) + ((f_NE - f_TE) + (f_NW - f_TW))) + ((f_S - f_B) + (f_N - f_T))) / (c1o1 + drho_SET) - ((vx2_SET*vx2_SET - vx3_SET*vx3_SET))); - - ////konditioniert - //vvx = vx1_SET; - //vvy = vx2_SET; - //vvz = vx3_SET; - //drho = drho_SET; - //vx2 = vvx * vvx; - //vy2 = vvy * vvy; - //vz2 = vvz * vvz; - - - //f_E -= c2over27*drho + (drho + one)*(c2o9*(vvx + vx2) + (c1o6 + c1o2*(vvx + vx2))*vy2*vz2 - c1o9*(vy2 + vz2) - c1o3*(vvx + vx2)*(vy2 + vz2)); - //f_W -= c2over27*drho - (drho + one)*((vvx - vx2)*(c2o9 - c1o3*vy2) - (c1o6*vy2 + (vvx - vx2)*(c1o3 - c1o2*vy2))*vz2 + c1o9*(vy2 + vz2)); - //f_N -= c2over27*drho + (drho + one)*(c2o9*(vvy + vy2) + vx2*(c1o6 + c1o2*(vvy + vy2))*vz2 - c1o9*(vx2 + vz2) - c1o3*(vvy + vy2)*(vx2 + vz2)); - //f_S -= c2over27*drho - (drho + one)*((c2o9 - c1o3*vx2)*(vvy - vy2) - (c1o6*vx2 + (c1o3 - c1o2*vx2)*(vvy - vy2))*vz2 + c1o9*(vx2 + vz2)); - //f_T -= c2over27*drho + (drho + one)*(-(c1o9*(vx2 + vy2)) + c2o9*(vvz + vz2) - c1o3*(vx2 + vy2)*(vvz + vz2) + vx2*vy2*(c1o6 + c1o2*(vvz + vz2))); - //f_B -= c2over27*drho - (drho + one)*(c1o9*(vx2 + vy2) + c2o9*(vvz - vz2) - c1o3*(vx2 + vy2)*(vvz - vz2) - vx2*vy2*(c1o6 + c1o2*(-vvz + vz2))); - //f_NE -= c1over54*drho + (drho + one)*(c1o6*(vvx + vx2)*(vvy + vy2) + c1o18*(vvx + vvy + vx2 + vy2) - (c1o36 + c1o4*(vvx + vx2)*(vvy + vy2) + c1o12*(vvx + vvy + vx2 + vy2))*vz2); - //f_SW -= c1over54*drho + (drho + one)*(c1o6*(vvx - vx2)*(vvy - vy2) + c1o18*(-vvx - vvy + vx2 + vy2) - (c1o36 + c1o4*(vvx - vx2)*(vvy - vy2) + c1o12*(-vvx - vvy + vx2 + vy2))*vz2); - //f_SE -= c1over54*drho + (drho + one)*(-(c1o6*(vvx + vx2)*(vvy - vy2)) + c1o18*(vvx - vvy + vx2 + vy2) - (c1o36 - c1o4*(vvx + vx2)*(vvy - vy2) + c1o12*(vvx - vvy + vx2 + vy2))*vz2); - //f_NW -= c1over54*drho + (drho + one)*(-(c1o6*(vvx - vx2)*(vvy + vy2)) + c1o18*(-vvx + vvy + vx2 + vy2) - (c1o36 - c1o4*(vvx - vx2)*(vvy + vy2) + c1o12*(-vvx + vvy + vx2 + vy2))*vz2); - //f_TE -= c1over54*drho + (drho + one)*(c1o6*(vvx + vx2)*(vvz + vz2) + c1o18*(vvx + vvz + vx2 + vz2) - vy2*(c1o36 + c1o4*(vvx + vx2)*(vvz + vz2) + c1o12*(vvx + vvz + vx2 + vz2))); - //f_BW -= c1over54*drho - (drho + one)*(-(c1o6*(vvx - vx2)*(vvz - vz2)) + c1o18*(vvx + vvz - vx2 - vz2) + vy2*(c1o36 + c1o4*(vvx - vx2)*(vvz - vz2) + c1o12*(-vvx - vvz + vx2 + vz2))); - //f_BE -= c1over54*drho + (drho + one)*(-(c1o6*(vvx + vx2)*(vvz - vz2)) + c1o18*(vvx - vvz + vx2 + vz2) - vy2*(c1o36 - c1o4*(vvx + vx2)*(vvz - vz2) + c1o12*(vvx - vvz + vx2 + vz2))); - //f_TW -= c1over54*drho - (drho + one)*(c1o18*(vvx - vvz - vx2 - vz2) + c1o6*(vvx - vx2)*(vvz + vz2) + vy2*(c1o36 - c1o4*(vvx - vx2)*(vvz + vz2) + c1o12*(-vvx + vvz + vx2 + vz2))); - //f_TN -= c1over54*drho + (drho + one)*(c1o6*(vvy + vy2)*(vvz + vz2) + c1o18*(vvy + vvz + vy2 + vz2) - vx2*(c1o36 + c1o4*(vvy + vy2)*(vvz + vz2) + c1o12*(vvy + vvz + vy2 + vz2))); - //f_BS -= c1over54*drho - (drho + one)*(c1o18*(vvy - vvz - vy2 - vz2) + c1o6*(vvy - vy2)*(vvz + vz2) + vx2*(c1o36 - c1o4*(vvy - vy2)*(vvz + vz2) + c1o12*(-vvy + vvz + vy2 + vz2))); - //f_BN -= c1over54*drho + (drho + one)*(-(c1o6*(vvy + vy2)*(vvz - vz2)) + c1o18*(vvy - vvz + vy2 + vz2) - vx2*(c1o36 - c1o4*(vvy + vy2)*(vvz - vz2) + c1o12*(vvy - vvz + vy2 + vz2))); - //f_TS -= c1over54*drho - (drho + one)*(c1o18*(vvy - vvz - vy2 - vz2) + c1o6*(vvy - vy2)*(vvz + vz2) + vx2*(c1o36 - c1o4*(vvy - vy2)*(vvz + vz2) + c1o12*(-vvy + vvz + vy2 + vz2))); - //f_ZERO -= c8over27*drho - (drho + one)*(vx2*vy2*vz2 + c4o9*(vx2 + vy2 + vz2) - c2o3*(vx2*vy2 + (vx2 + vy2)*vz2)); - //f_TNE -= c1over216*drho + (drho + one)*(c1o8*(vvx + vx2)*(vvy + vy2)*(vvz + vz2) + c1o72*(vvx + vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 + vvy*(vvz + vx2 + vz2) + vvx*(vvy + vvz + vy2 + vz2))); - //f_TSW -= c1over216*drho + (drho + one)*(c1o8*(vvx - vx2)*(vvy - vy2)*(vvz + vz2) + c1o72*(-vvx - vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + vvx*(vvy - vvz - vy2 - vz2) + (vx2 + vy2)*vz2 - vvy*(vvz + vx2 + vz2))); - //f_TSE -= c1over216*drho + (drho + one)*(-(c1o8*(vvx + vx2)*(vvy - vy2)*(vvz + vz2)) + c1o72*(vvx - vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 - vvy*(vvz + vx2 + vz2) + vvx*(-vvy + vvz + vy2 + vz2))); - //f_TNW -= c1over216*drho - (drho + one)*(c1o72*(vvx - vvy - vvz - vx2 - vy2 - vz2) + c1o8*(vvx - vx2)*(vvy + vy2)*(vvz + vz2) - c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 + vvy*(vvz + vx2 + vz2) - vvx*(vvy + vvz + vy2 + vz2))); - //f_BNE -= c1over216*drho + (drho + one)*(-(c1o8*(vvx + vx2)*(vvy + vy2)*(vvz - vz2)) + c1o72*(vvx + vvy - vvz + vx2 + vy2 + vz2) + c1o24*(-(vvy*vvz) + vvy*vx2 - vvz*vx2 - vvz*vy2 + vx2*vy2 + (vvy + vx2 + vy2)*vz2 + vvx*(vvy - vvz + vy2 + vz2))); - //f_BSW -= c1over216*drho - (drho + one)*(c1o8*(vvx - vx2)*(vvy - vy2)*(vvz - vz2) + c1o72*(vvx + vvy + vvz - vx2 - vy2 - vz2) + c1o24*(vvz*vx2 + vvz*vy2 - vx2*vy2 - (vx2 + vy2)*vz2 + vvy*(-vvz + vx2 + vz2) + vvx*(-vvy - vvz + vy2 + vz2))); - //f_BSE -= c1over216*drho + (drho + one)*(c1o8*(vvx + vx2)*(vvy - vy2)*(vvz - vz2) + c1o72*(vvx - vvy - vvz + vx2 + vy2 + vz2) + c1o24*(-(vvx*vvy) - vvx*vvz + vvy*vvz - (vvy + vvz)*vx2 + (vvx - vvz + vx2)*vy2 + (vvx - vvy + vx2 + vy2)*vz2)); - //f_BNW -= c1over216*drho - (drho + one)*(-(c1o8*(vvx - vx2)*(vvy + vy2)*(vvz - vz2)) + c1o72*(vvx - vvy + vvz - vx2 - vy2 - vz2) + c1o24*(vvy*vvz - vvy*vx2 + vvz*vx2 + vvz*vy2 - vx2*vy2 - (vvy + vx2 + vy2)*vz2 + vvx*(vvy - vvz + vy2 + vz2))); - - //kxyFromfcNEQ_SET = -three*omegaS*((((f_SW - f_SE) + (f_NE - f_NW)) + (((f_BSW - f_BSE) + (f_BNE - f_BNW)) + ((f_TSW - f_TSE) + (f_TNE - f_TNW)))) / (one + drho)); - //kyzFromfcNEQ_SET = -three*omegaS*((((f_BS - f_TS) + (f_TN - f_BN)) + (((f_BSE - f_TSE) + (f_BSW - f_BNW)) + ((f_TNE - f_BNE) + (f_TNW - f_TSW)))) / (one + drho)); - //kxzFromfcNEQ_SET = -three*omegaS*((((f_BW - f_BE) + (f_TE - f_TW)) + (((f_BSW - f_BSE) + (f_BNW - f_BNE)) + ((f_TSE - f_TSW) + (f_TNE - f_TNW)))) / (one + drho)); - //kxxMyyFromfcNEQ_SET = -c3o2*omegaS *(((((f_BW - f_BS) + (f_TW - f_TS)) + ((f_BE - f_BN) + (f_TE - f_TN))) + ((f_W - f_S) + (f_E - f_N))) / (one + drho)); - //kxxMzzFromfcNEQ_SET = -c3o2*omegaS *(((((f_SW - f_BS) + (f_NW - f_BN)) + ((f_SE - f_TS) + (f_NE - f_TN))) + ((f_W - f_B) + (f_E - f_T))) / (one + drho)); - //kyyMzzFromfcNEQ_SET = -c3o2*omegaS *(((((f_SE - f_BE) + (f_SW - f_BW)) + ((f_NE - f_TE) + (f_NW - f_TW))) + ((f_S - f_B) + (f_N - f_T))) / (one + drho)); + kxyFromfcNEQ_SET = -c3o1*omegaS*((((f_SW - f_SE) + (f_NE - f_NW)) + (((f_BSW - f_BSE) + (f_BNE - f_BNW)) + ((f_TSW - f_TSE) + (f_TNE - f_TNW)))) / (c1o1 + drho_SET) - ((vx1_SET*vx2_SET))); + kyzFromfcNEQ_SET = -c3o1*omegaS*((((f_BS - f_TS) + (f_TN - f_BN)) + (((f_BSE - f_TSE) + (f_BSW - f_BNW)) + ((f_TNE - f_BNE) + (f_TNW - f_TSW)))) / (c1o1 + drho_SET) - ((vx2_SET*vx3_SET))); + kxzFromfcNEQ_SET = -c3o1*omegaS*((((f_BW - f_BE) + (f_TE - f_TW)) + (((f_BSW - f_BSE) + (f_BNW - f_BNE)) + ((f_TSE - f_TSW) + (f_TNE - f_TNW)))) / (c1o1 + drho_SET) - ((vx1_SET*vx3_SET))); + kxxMyyFromfcNEQ_SET = -c3o2*omegaS *(((((f_BW - f_BS) + (f_TW - f_TS)) + ((f_BE - f_BN) + (f_TE - f_TN))) + ((f_W - f_S) + (f_E - f_N))) / (c1o1 + drho_SET) - ((vx1_SET*vx1_SET - vx2_SET*vx2_SET))); + kxxMzzFromfcNEQ_SET = -c3o2*omegaS *(((((f_SW - f_BS) + (f_NW - f_BN)) + ((f_SE - f_TS) + (f_NE - f_TN))) + ((f_W - f_B) + (f_E - f_T))) / (c1o1 + drho_SET) - ((vx1_SET*vx1_SET - vx3_SET*vx3_SET))); + kyyMzzFromfcNEQ_SET = -c3o2*omegaS *(((((f_SE - f_BE) + (f_SW - f_BW)) + ((f_NE - f_TE) + (f_NW - f_TW))) + ((f_S - f_B) + (f_N - f_T))) / (c1o1 + drho_SET) - ((vx2_SET*vx2_SET - vx3_SET*vx3_SET))); + + ////konditioniert + //vvx = vx1_SET; + //vvy = vx2_SET; + //vvz = vx3_SET; + //drho = drho_SET; + //vx2 = vvx * vvx; + //vy2 = vvy * vvy; + //vz2 = vvz * vvz; + + + //f_E -= c2over27*drho + (drho + one)*(c2o9*(vvx + vx2) + (c1o6 + c1o2*(vvx + vx2))*vy2*vz2 - c1o9*(vy2 + vz2) - c1o3*(vvx + vx2)*(vy2 + vz2)); + //f_W -= c2over27*drho - (drho + one)*((vvx - vx2)*(c2o9 - c1o3*vy2) - (c1o6*vy2 + (vvx - vx2)*(c1o3 - c1o2*vy2))*vz2 + c1o9*(vy2 + vz2)); + //f_N -= c2over27*drho + (drho + one)*(c2o9*(vvy + vy2) + vx2*(c1o6 + c1o2*(vvy + vy2))*vz2 - c1o9*(vx2 + vz2) - c1o3*(vvy + vy2)*(vx2 + vz2)); + //f_S -= c2over27*drho - (drho + one)*((c2o9 - c1o3*vx2)*(vvy - vy2) - (c1o6*vx2 + (c1o3 - c1o2*vx2)*(vvy - vy2))*vz2 + c1o9*(vx2 + vz2)); + //f_T -= c2over27*drho + (drho + one)*(-(c1o9*(vx2 + vy2)) + c2o9*(vvz + vz2) - c1o3*(vx2 + vy2)*(vvz + vz2) + vx2*vy2*(c1o6 + c1o2*(vvz + vz2))); + //f_B -= c2over27*drho - (drho + one)*(c1o9*(vx2 + vy2) + c2o9*(vvz - vz2) - c1o3*(vx2 + vy2)*(vvz - vz2) - vx2*vy2*(c1o6 + c1o2*(-vvz + vz2))); + //f_NE -= c1over54*drho + (drho + one)*(c1o6*(vvx + vx2)*(vvy + vy2) + c1o18*(vvx + vvy + vx2 + vy2) - (c1o36 + c1o4*(vvx + vx2)*(vvy + vy2) + c1o12*(vvx + vvy + vx2 + vy2))*vz2); + //f_SW -= c1over54*drho + (drho + one)*(c1o6*(vvx - vx2)*(vvy - vy2) + c1o18*(-vvx - vvy + vx2 + vy2) - (c1o36 + c1o4*(vvx - vx2)*(vvy - vy2) + c1o12*(-vvx - vvy + vx2 + vy2))*vz2); + //f_SE -= c1over54*drho + (drho + one)*(-(c1o6*(vvx + vx2)*(vvy - vy2)) + c1o18*(vvx - vvy + vx2 + vy2) - (c1o36 - c1o4*(vvx + vx2)*(vvy - vy2) + c1o12*(vvx - vvy + vx2 + vy2))*vz2); + //f_NW -= c1over54*drho + (drho + one)*(-(c1o6*(vvx - vx2)*(vvy + vy2)) + c1o18*(-vvx + vvy + vx2 + vy2) - (c1o36 - c1o4*(vvx - vx2)*(vvy + vy2) + c1o12*(-vvx + vvy + vx2 + vy2))*vz2); + //f_TE -= c1over54*drho + (drho + one)*(c1o6*(vvx + vx2)*(vvz + vz2) + c1o18*(vvx + vvz + vx2 + vz2) - vy2*(c1o36 + c1o4*(vvx + vx2)*(vvz + vz2) + c1o12*(vvx + vvz + vx2 + vz2))); + //f_BW -= c1over54*drho - (drho + one)*(-(c1o6*(vvx - vx2)*(vvz - vz2)) + c1o18*(vvx + vvz - vx2 - vz2) + vy2*(c1o36 + c1o4*(vvx - vx2)*(vvz - vz2) + c1o12*(-vvx - vvz + vx2 + vz2))); + //f_BE -= c1over54*drho + (drho + one)*(-(c1o6*(vvx + vx2)*(vvz - vz2)) + c1o18*(vvx - vvz + vx2 + vz2) - vy2*(c1o36 - c1o4*(vvx + vx2)*(vvz - vz2) + c1o12*(vvx - vvz + vx2 + vz2))); + //f_TW -= c1over54*drho - (drho + one)*(c1o18*(vvx - vvz - vx2 - vz2) + c1o6*(vvx - vx2)*(vvz + vz2) + vy2*(c1o36 - c1o4*(vvx - vx2)*(vvz + vz2) + c1o12*(-vvx + vvz + vx2 + vz2))); + //f_TN -= c1over54*drho + (drho + one)*(c1o6*(vvy + vy2)*(vvz + vz2) + c1o18*(vvy + vvz + vy2 + vz2) - vx2*(c1o36 + c1o4*(vvy + vy2)*(vvz + vz2) + c1o12*(vvy + vvz + vy2 + vz2))); + //f_BS -= c1over54*drho - (drho + one)*(c1o18*(vvy - vvz - vy2 - vz2) + c1o6*(vvy - vy2)*(vvz + vz2) + vx2*(c1o36 - c1o4*(vvy - vy2)*(vvz + vz2) + c1o12*(-vvy + vvz + vy2 + vz2))); + //f_BN -= c1over54*drho + (drho + one)*(-(c1o6*(vvy + vy2)*(vvz - vz2)) + c1o18*(vvy - vvz + vy2 + vz2) - vx2*(c1o36 - c1o4*(vvy + vy2)*(vvz - vz2) + c1o12*(vvy - vvz + vy2 + vz2))); + //f_TS -= c1over54*drho - (drho + one)*(c1o18*(vvy - vvz - vy2 - vz2) + c1o6*(vvy - vy2)*(vvz + vz2) + vx2*(c1o36 - c1o4*(vvy - vy2)*(vvz + vz2) + c1o12*(-vvy + vvz + vy2 + vz2))); + //f_ZERO -= c8over27*drho - (drho + one)*(vx2*vy2*vz2 + c4o9*(vx2 + vy2 + vz2) - c2o3*(vx2*vy2 + (vx2 + vy2)*vz2)); + //f_TNE -= c1over216*drho + (drho + one)*(c1o8*(vvx + vx2)*(vvy + vy2)*(vvz + vz2) + c1o72*(vvx + vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 + vvy*(vvz + vx2 + vz2) + vvx*(vvy + vvz + vy2 + vz2))); + //f_TSW -= c1over216*drho + (drho + one)*(c1o8*(vvx - vx2)*(vvy - vy2)*(vvz + vz2) + c1o72*(-vvx - vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + vvx*(vvy - vvz - vy2 - vz2) + (vx2 + vy2)*vz2 - vvy*(vvz + vx2 + vz2))); + //f_TSE -= c1over216*drho + (drho + one)*(-(c1o8*(vvx + vx2)*(vvy - vy2)*(vvz + vz2)) + c1o72*(vvx - vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 - vvy*(vvz + vx2 + vz2) + vvx*(-vvy + vvz + vy2 + vz2))); + //f_TNW -= c1over216*drho - (drho + one)*(c1o72*(vvx - vvy - vvz - vx2 - vy2 - vz2) + c1o8*(vvx - vx2)*(vvy + vy2)*(vvz + vz2) - c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 + vvy*(vvz + vx2 + vz2) - vvx*(vvy + vvz + vy2 + vz2))); + //f_BNE -= c1over216*drho + (drho + one)*(-(c1o8*(vvx + vx2)*(vvy + vy2)*(vvz - vz2)) + c1o72*(vvx + vvy - vvz + vx2 + vy2 + vz2) + c1o24*(-(vvy*vvz) + vvy*vx2 - vvz*vx2 - vvz*vy2 + vx2*vy2 + (vvy + vx2 + vy2)*vz2 + vvx*(vvy - vvz + vy2 + vz2))); + //f_BSW -= c1over216*drho - (drho + one)*(c1o8*(vvx - vx2)*(vvy - vy2)*(vvz - vz2) + c1o72*(vvx + vvy + vvz - vx2 - vy2 - vz2) + c1o24*(vvz*vx2 + vvz*vy2 - vx2*vy2 - (vx2 + vy2)*vz2 + vvy*(-vvz + vx2 + vz2) + vvx*(-vvy - vvz + vy2 + vz2))); + //f_BSE -= c1over216*drho + (drho + one)*(c1o8*(vvx + vx2)*(vvy - vy2)*(vvz - vz2) + c1o72*(vvx - vvy - vvz + vx2 + vy2 + vz2) + c1o24*(-(vvx*vvy) - vvx*vvz + vvy*vvz - (vvy + vvz)*vx2 + (vvx - vvz + vx2)*vy2 + (vvx - vvy + vx2 + vy2)*vz2)); + //f_BNW -= c1over216*drho - (drho + one)*(-(c1o8*(vvx - vx2)*(vvy + vy2)*(vvz - vz2)) + c1o72*(vvx - vvy + vvz - vx2 - vy2 - vz2) + c1o24*(vvy*vvz - vvy*vx2 + vvz*vx2 + vvz*vy2 - vx2*vy2 - (vvy + vx2 + vy2)*vz2 + vvx*(vvy - vvz + vy2 + vz2))); + + //kxyFromfcNEQ_SET = -three*omegaS*((((f_SW - f_SE) + (f_NE - f_NW)) + (((f_BSW - f_BSE) + (f_BNE - f_BNW)) + ((f_TSW - f_TSE) + (f_TNE - f_TNW)))) / (one + drho)); + //kyzFromfcNEQ_SET = -three*omegaS*((((f_BS - f_TS) + (f_TN - f_BN)) + (((f_BSE - f_TSE) + (f_BSW - f_BNW)) + ((f_TNE - f_BNE) + (f_TNW - f_TSW)))) / (one + drho)); + //kxzFromfcNEQ_SET = -three*omegaS*((((f_BW - f_BE) + (f_TE - f_TW)) + (((f_BSW - f_BSE) + (f_BNW - f_BNE)) + ((f_TSE - f_TSW) + (f_TNE - f_TNW)))) / (one + drho)); + //kxxMyyFromfcNEQ_SET = -c3o2*omegaS *(((((f_BW - f_BS) + (f_TW - f_TS)) + ((f_BE - f_BN) + (f_TE - f_TN))) + ((f_W - f_S) + (f_E - f_N))) / (one + drho)); + //kxxMzzFromfcNEQ_SET = -c3o2*omegaS *(((((f_SW - f_BS) + (f_NW - f_BN)) + ((f_SE - f_TS) + (f_NE - f_TN))) + ((f_W - f_B) + (f_E - f_T))) / (one + drho)); + //kyyMzzFromfcNEQ_SET = -c3o2*omegaS *(((((f_SE - f_BE) + (f_SW - f_BW)) + ((f_NE - f_TE) + (f_NW - f_TW))) + ((f_S - f_B) + (f_N - f_T))) / (one + drho)); @@ -13012,67 +13012,67 @@ __global__ void scaleFC_Fix_comp_27( real* DC, drho_SEB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; vx1_SEB = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_SEB); - vx2_SEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SEB); - vx3_SEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SEB); + vx2_SEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SEB); + vx3_SEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SEB); - //nicht konditioniert - //kxyFromfcNEQ_SEB = -three*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (one + drho_SEB) - ((vx1_SEB*vx2_SEB))); + //nicht konditioniert + //kxyFromfcNEQ_SEB = -three*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (one + drho_SEB) - ((vx1_SEB*vx2_SEB))); //kyzFromfcNEQ_SEB = -three*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (one + drho_SEB) - ((vx2_SEB*vx3_SEB))); //kxzFromfcNEQ_SEB = -three*omegaS*((f_BW+f_BSW+f_BNW-f_TW-f_TSW-f_TNW-f_BE-f_BSE-f_BNE+f_TE+f_TSE+f_TNE ) / (one + drho_SEB) - ((vx1_SEB*vx3_SEB))); //kxxMyyFromfcNEQ_SEB = -c3o2*omegaS *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (one + drho_SEB) - ((vx1_SEB*vx1_SEB-vx2_SEB*vx2_SEB))); //kxxMzzFromfcNEQ_SEB = -c3o2*omegaS *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (one + drho_SEB) - ((vx1_SEB*vx1_SEB-vx3_SEB*vx3_SEB))); - kxyFromfcNEQ_SEB = -c3o1*omegaS*((((f_SW - f_SE) + (f_NE - f_NW)) + (((f_BSW - f_BSE) + (f_BNE - f_BNW)) + ((f_TSW - f_TSE) + (f_TNE - f_TNW)))) / (c1o1 + drho_SEB) - ((vx1_SEB*vx2_SEB))); - kyzFromfcNEQ_SEB = -c3o1*omegaS*((((f_BS - f_TS) + (f_TN - f_BN)) + (((f_BSE - f_TSE) + (f_BSW - f_BNW)) + ((f_TNE - f_BNE) + (f_TNW - f_TSW)))) / (c1o1 + drho_SEB) - ((vx2_SEB*vx3_SEB))); - kxzFromfcNEQ_SEB = -c3o1*omegaS*((((f_BW - f_BE) + (f_TE - f_TW)) + (((f_BSW - f_BSE) + (f_BNW - f_BNE)) + ((f_TSE - f_TSW) + (f_TNE - f_TNW)))) / (c1o1 + drho_SEB) - ((vx1_SEB*vx3_SEB))); - kxxMyyFromfcNEQ_SEB = -c3o2*omegaS *(((((f_BW - f_BS) + (f_TW - f_TS)) + ((f_BE - f_BN) + (f_TE - f_TN))) + ((f_W - f_S) + (f_E - f_N))) / (c1o1 + drho_SEB) - ((vx1_SEB*vx1_SEB - vx2_SEB*vx2_SEB))); - kxxMzzFromfcNEQ_SEB = -c3o2*omegaS *(((((f_SW - f_BS) + (f_NW - f_BN)) + ((f_SE - f_TS) + (f_NE - f_TN))) + ((f_W - f_B) + (f_E - f_T))) / (c1o1 + drho_SEB) - ((vx1_SEB*vx1_SEB - vx3_SEB*vx3_SEB))); - kyyMzzFromfcNEQ_SEB = -c3o2*omegaS *(((((f_SE - f_BE) + (f_SW - f_BW)) + ((f_NE - f_TE) + (f_NW - f_TW))) + ((f_S - f_B) + (f_N - f_T))) / (c1o1 + drho_SEB) - ((vx2_SEB*vx2_SEB - vx3_SEB*vx3_SEB))); - - ////konditioniert - //vvx = vx1_SEB; - //vvy = vx2_SEB; - //vvz = vx3_SEB; - //drho = drho_SEB; - //vx2 = vvx * vvx; - //vy2 = vvy * vvy; - //vz2 = vvz * vvz; - - - //f_E -= c2over27*drho + (drho + one)*(c2o9*(vvx + vx2) + (c1o6 + c1o2*(vvx + vx2))*vy2*vz2 - c1o9*(vy2 + vz2) - c1o3*(vvx + vx2)*(vy2 + vz2)); - //f_W -= c2over27*drho - (drho + one)*((vvx - vx2)*(c2o9 - c1o3*vy2) - (c1o6*vy2 + (vvx - vx2)*(c1o3 - c1o2*vy2))*vz2 + c1o9*(vy2 + vz2)); - //f_N -= c2over27*drho + (drho + one)*(c2o9*(vvy + vy2) + vx2*(c1o6 + c1o2*(vvy + vy2))*vz2 - c1o9*(vx2 + vz2) - c1o3*(vvy + vy2)*(vx2 + vz2)); - //f_S -= c2over27*drho - (drho + one)*((c2o9 - c1o3*vx2)*(vvy - vy2) - (c1o6*vx2 + (c1o3 - c1o2*vx2)*(vvy - vy2))*vz2 + c1o9*(vx2 + vz2)); - //f_T -= c2over27*drho + (drho + one)*(-(c1o9*(vx2 + vy2)) + c2o9*(vvz + vz2) - c1o3*(vx2 + vy2)*(vvz + vz2) + vx2*vy2*(c1o6 + c1o2*(vvz + vz2))); - //f_B -= c2over27*drho - (drho + one)*(c1o9*(vx2 + vy2) + c2o9*(vvz - vz2) - c1o3*(vx2 + vy2)*(vvz - vz2) - vx2*vy2*(c1o6 + c1o2*(-vvz + vz2))); - //f_NE -= c1over54*drho + (drho + one)*(c1o6*(vvx + vx2)*(vvy + vy2) + c1o18*(vvx + vvy + vx2 + vy2) - (c1o36 + c1o4*(vvx + vx2)*(vvy + vy2) + c1o12*(vvx + vvy + vx2 + vy2))*vz2); - //f_SW -= c1over54*drho + (drho + one)*(c1o6*(vvx - vx2)*(vvy - vy2) + c1o18*(-vvx - vvy + vx2 + vy2) - (c1o36 + c1o4*(vvx - vx2)*(vvy - vy2) + c1o12*(-vvx - vvy + vx2 + vy2))*vz2); - //f_SE -= c1over54*drho + (drho + one)*(-(c1o6*(vvx + vx2)*(vvy - vy2)) + c1o18*(vvx - vvy + vx2 + vy2) - (c1o36 - c1o4*(vvx + vx2)*(vvy - vy2) + c1o12*(vvx - vvy + vx2 + vy2))*vz2); - //f_NW -= c1over54*drho + (drho + one)*(-(c1o6*(vvx - vx2)*(vvy + vy2)) + c1o18*(-vvx + vvy + vx2 + vy2) - (c1o36 - c1o4*(vvx - vx2)*(vvy + vy2) + c1o12*(-vvx + vvy + vx2 + vy2))*vz2); - //f_TE -= c1over54*drho + (drho + one)*(c1o6*(vvx + vx2)*(vvz + vz2) + c1o18*(vvx + vvz + vx2 + vz2) - vy2*(c1o36 + c1o4*(vvx + vx2)*(vvz + vz2) + c1o12*(vvx + vvz + vx2 + vz2))); - //f_BW -= c1over54*drho - (drho + one)*(-(c1o6*(vvx - vx2)*(vvz - vz2)) + c1o18*(vvx + vvz - vx2 - vz2) + vy2*(c1o36 + c1o4*(vvx - vx2)*(vvz - vz2) + c1o12*(-vvx - vvz + vx2 + vz2))); - //f_BE -= c1over54*drho + (drho + one)*(-(c1o6*(vvx + vx2)*(vvz - vz2)) + c1o18*(vvx - vvz + vx2 + vz2) - vy2*(c1o36 - c1o4*(vvx + vx2)*(vvz - vz2) + c1o12*(vvx - vvz + vx2 + vz2))); - //f_TW -= c1over54*drho - (drho + one)*(c1o18*(vvx - vvz - vx2 - vz2) + c1o6*(vvx - vx2)*(vvz + vz2) + vy2*(c1o36 - c1o4*(vvx - vx2)*(vvz + vz2) + c1o12*(-vvx + vvz + vx2 + vz2))); - //f_TN -= c1over54*drho + (drho + one)*(c1o6*(vvy + vy2)*(vvz + vz2) + c1o18*(vvy + vvz + vy2 + vz2) - vx2*(c1o36 + c1o4*(vvy + vy2)*(vvz + vz2) + c1o12*(vvy + vvz + vy2 + vz2))); - //f_BS -= c1over54*drho - (drho + one)*(c1o18*(vvy - vvz - vy2 - vz2) + c1o6*(vvy - vy2)*(vvz + vz2) + vx2*(c1o36 - c1o4*(vvy - vy2)*(vvz + vz2) + c1o12*(-vvy + vvz + vy2 + vz2))); - //f_BN -= c1over54*drho + (drho + one)*(-(c1o6*(vvy + vy2)*(vvz - vz2)) + c1o18*(vvy - vvz + vy2 + vz2) - vx2*(c1o36 - c1o4*(vvy + vy2)*(vvz - vz2) + c1o12*(vvy - vvz + vy2 + vz2))); - //f_TS -= c1over54*drho - (drho + one)*(c1o18*(vvy - vvz - vy2 - vz2) + c1o6*(vvy - vy2)*(vvz + vz2) + vx2*(c1o36 - c1o4*(vvy - vy2)*(vvz + vz2) + c1o12*(-vvy + vvz + vy2 + vz2))); - //f_ZERO -= c8over27*drho - (drho + one)*(vx2*vy2*vz2 + c4o9*(vx2 + vy2 + vz2) - c2o3*(vx2*vy2 + (vx2 + vy2)*vz2)); - //f_TNE -= c1over216*drho + (drho + one)*(c1o8*(vvx + vx2)*(vvy + vy2)*(vvz + vz2) + c1o72*(vvx + vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 + vvy*(vvz + vx2 + vz2) + vvx*(vvy + vvz + vy2 + vz2))); - //f_TSW -= c1over216*drho + (drho + one)*(c1o8*(vvx - vx2)*(vvy - vy2)*(vvz + vz2) + c1o72*(-vvx - vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + vvx*(vvy - vvz - vy2 - vz2) + (vx2 + vy2)*vz2 - vvy*(vvz + vx2 + vz2))); - //f_TSE -= c1over216*drho + (drho + one)*(-(c1o8*(vvx + vx2)*(vvy - vy2)*(vvz + vz2)) + c1o72*(vvx - vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 - vvy*(vvz + vx2 + vz2) + vvx*(-vvy + vvz + vy2 + vz2))); - //f_TNW -= c1over216*drho - (drho + one)*(c1o72*(vvx - vvy - vvz - vx2 - vy2 - vz2) + c1o8*(vvx - vx2)*(vvy + vy2)*(vvz + vz2) - c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 + vvy*(vvz + vx2 + vz2) - vvx*(vvy + vvz + vy2 + vz2))); - //f_BNE -= c1over216*drho + (drho + one)*(-(c1o8*(vvx + vx2)*(vvy + vy2)*(vvz - vz2)) + c1o72*(vvx + vvy - vvz + vx2 + vy2 + vz2) + c1o24*(-(vvy*vvz) + vvy*vx2 - vvz*vx2 - vvz*vy2 + vx2*vy2 + (vvy + vx2 + vy2)*vz2 + vvx*(vvy - vvz + vy2 + vz2))); - //f_BSW -= c1over216*drho - (drho + one)*(c1o8*(vvx - vx2)*(vvy - vy2)*(vvz - vz2) + c1o72*(vvx + vvy + vvz - vx2 - vy2 - vz2) + c1o24*(vvz*vx2 + vvz*vy2 - vx2*vy2 - (vx2 + vy2)*vz2 + vvy*(-vvz + vx2 + vz2) + vvx*(-vvy - vvz + vy2 + vz2))); - //f_BSE -= c1over216*drho + (drho + one)*(c1o8*(vvx + vx2)*(vvy - vy2)*(vvz - vz2) + c1o72*(vvx - vvy - vvz + vx2 + vy2 + vz2) + c1o24*(-(vvx*vvy) - vvx*vvz + vvy*vvz - (vvy + vvz)*vx2 + (vvx - vvz + vx2)*vy2 + (vvx - vvy + vx2 + vy2)*vz2)); - //f_BNW -= c1over216*drho - (drho + one)*(-(c1o8*(vvx - vx2)*(vvy + vy2)*(vvz - vz2)) + c1o72*(vvx - vvy + vvz - vx2 - vy2 - vz2) + c1o24*(vvy*vvz - vvy*vx2 + vvz*vx2 + vvz*vy2 - vx2*vy2 - (vvy + vx2 + vy2)*vz2 + vvx*(vvy - vvz + vy2 + vz2))); - - //kxyFromfcNEQ_SEB = -three*omegaS*((((f_SW - f_SE) + (f_NE - f_NW)) + (((f_BSW - f_BSE) + (f_BNE - f_BNW)) + ((f_TSW - f_TSE) + (f_TNE - f_TNW)))) / (one + drho)); - //kyzFromfcNEQ_SEB = -three*omegaS*((((f_BS - f_TS) + (f_TN - f_BN)) + (((f_BSE - f_TSE) + (f_BSW - f_BNW)) + ((f_TNE - f_BNE) + (f_TNW - f_TSW)))) / (one + drho)); - //kxzFromfcNEQ_SEB = -three*omegaS*((((f_BW - f_BE) + (f_TE - f_TW)) + (((f_BSW - f_BSE) + (f_BNW - f_BNE)) + ((f_TSE - f_TSW) + (f_TNE - f_TNW)))) / (one + drho)); - //kxxMyyFromfcNEQ_SEB = -c3o2*omegaS *(((((f_BW - f_BS) + (f_TW - f_TS)) + ((f_BE - f_BN) + (f_TE - f_TN))) + ((f_W - f_S) + (f_E - f_N))) / (one + drho)); - //kxxMzzFromfcNEQ_SEB = -c3o2*omegaS *(((((f_SW - f_BS) + (f_NW - f_BN)) + ((f_SE - f_TS) + (f_NE - f_TN))) + ((f_W - f_B) + (f_E - f_T))) / (one + drho)); - //kyyMzzFromfcNEQ_SEB = -c3o2*omegaS *(((((f_SE - f_BE) + (f_SW - f_BW)) + ((f_NE - f_TE) + (f_NW - f_TW))) + ((f_S - f_B) + (f_N - f_T))) / (one + drho)); + kxyFromfcNEQ_SEB = -c3o1*omegaS*((((f_SW - f_SE) + (f_NE - f_NW)) + (((f_BSW - f_BSE) + (f_BNE - f_BNW)) + ((f_TSW - f_TSE) + (f_TNE - f_TNW)))) / (c1o1 + drho_SEB) - ((vx1_SEB*vx2_SEB))); + kyzFromfcNEQ_SEB = -c3o1*omegaS*((((f_BS - f_TS) + (f_TN - f_BN)) + (((f_BSE - f_TSE) + (f_BSW - f_BNW)) + ((f_TNE - f_BNE) + (f_TNW - f_TSW)))) / (c1o1 + drho_SEB) - ((vx2_SEB*vx3_SEB))); + kxzFromfcNEQ_SEB = -c3o1*omegaS*((((f_BW - f_BE) + (f_TE - f_TW)) + (((f_BSW - f_BSE) + (f_BNW - f_BNE)) + ((f_TSE - f_TSW) + (f_TNE - f_TNW)))) / (c1o1 + drho_SEB) - ((vx1_SEB*vx3_SEB))); + kxxMyyFromfcNEQ_SEB = -c3o2*omegaS *(((((f_BW - f_BS) + (f_TW - f_TS)) + ((f_BE - f_BN) + (f_TE - f_TN))) + ((f_W - f_S) + (f_E - f_N))) / (c1o1 + drho_SEB) - ((vx1_SEB*vx1_SEB - vx2_SEB*vx2_SEB))); + kxxMzzFromfcNEQ_SEB = -c3o2*omegaS *(((((f_SW - f_BS) + (f_NW - f_BN)) + ((f_SE - f_TS) + (f_NE - f_TN))) + ((f_W - f_B) + (f_E - f_T))) / (c1o1 + drho_SEB) - ((vx1_SEB*vx1_SEB - vx3_SEB*vx3_SEB))); + kyyMzzFromfcNEQ_SEB = -c3o2*omegaS *(((((f_SE - f_BE) + (f_SW - f_BW)) + ((f_NE - f_TE) + (f_NW - f_TW))) + ((f_S - f_B) + (f_N - f_T))) / (c1o1 + drho_SEB) - ((vx2_SEB*vx2_SEB - vx3_SEB*vx3_SEB))); + + ////konditioniert + //vvx = vx1_SEB; + //vvy = vx2_SEB; + //vvz = vx3_SEB; + //drho = drho_SEB; + //vx2 = vvx * vvx; + //vy2 = vvy * vvy; + //vz2 = vvz * vvz; + + + //f_E -= c2over27*drho + (drho + one)*(c2o9*(vvx + vx2) + (c1o6 + c1o2*(vvx + vx2))*vy2*vz2 - c1o9*(vy2 + vz2) - c1o3*(vvx + vx2)*(vy2 + vz2)); + //f_W -= c2over27*drho - (drho + one)*((vvx - vx2)*(c2o9 - c1o3*vy2) - (c1o6*vy2 + (vvx - vx2)*(c1o3 - c1o2*vy2))*vz2 + c1o9*(vy2 + vz2)); + //f_N -= c2over27*drho + (drho + one)*(c2o9*(vvy + vy2) + vx2*(c1o6 + c1o2*(vvy + vy2))*vz2 - c1o9*(vx2 + vz2) - c1o3*(vvy + vy2)*(vx2 + vz2)); + //f_S -= c2over27*drho - (drho + one)*((c2o9 - c1o3*vx2)*(vvy - vy2) - (c1o6*vx2 + (c1o3 - c1o2*vx2)*(vvy - vy2))*vz2 + c1o9*(vx2 + vz2)); + //f_T -= c2over27*drho + (drho + one)*(-(c1o9*(vx2 + vy2)) + c2o9*(vvz + vz2) - c1o3*(vx2 + vy2)*(vvz + vz2) + vx2*vy2*(c1o6 + c1o2*(vvz + vz2))); + //f_B -= c2over27*drho - (drho + one)*(c1o9*(vx2 + vy2) + c2o9*(vvz - vz2) - c1o3*(vx2 + vy2)*(vvz - vz2) - vx2*vy2*(c1o6 + c1o2*(-vvz + vz2))); + //f_NE -= c1over54*drho + (drho + one)*(c1o6*(vvx + vx2)*(vvy + vy2) + c1o18*(vvx + vvy + vx2 + vy2) - (c1o36 + c1o4*(vvx + vx2)*(vvy + vy2) + c1o12*(vvx + vvy + vx2 + vy2))*vz2); + //f_SW -= c1over54*drho + (drho + one)*(c1o6*(vvx - vx2)*(vvy - vy2) + c1o18*(-vvx - vvy + vx2 + vy2) - (c1o36 + c1o4*(vvx - vx2)*(vvy - vy2) + c1o12*(-vvx - vvy + vx2 + vy2))*vz2); + //f_SE -= c1over54*drho + (drho + one)*(-(c1o6*(vvx + vx2)*(vvy - vy2)) + c1o18*(vvx - vvy + vx2 + vy2) - (c1o36 - c1o4*(vvx + vx2)*(vvy - vy2) + c1o12*(vvx - vvy + vx2 + vy2))*vz2); + //f_NW -= c1over54*drho + (drho + one)*(-(c1o6*(vvx - vx2)*(vvy + vy2)) + c1o18*(-vvx + vvy + vx2 + vy2) - (c1o36 - c1o4*(vvx - vx2)*(vvy + vy2) + c1o12*(-vvx + vvy + vx2 + vy2))*vz2); + //f_TE -= c1over54*drho + (drho + one)*(c1o6*(vvx + vx2)*(vvz + vz2) + c1o18*(vvx + vvz + vx2 + vz2) - vy2*(c1o36 + c1o4*(vvx + vx2)*(vvz + vz2) + c1o12*(vvx + vvz + vx2 + vz2))); + //f_BW -= c1over54*drho - (drho + one)*(-(c1o6*(vvx - vx2)*(vvz - vz2)) + c1o18*(vvx + vvz - vx2 - vz2) + vy2*(c1o36 + c1o4*(vvx - vx2)*(vvz - vz2) + c1o12*(-vvx - vvz + vx2 + vz2))); + //f_BE -= c1over54*drho + (drho + one)*(-(c1o6*(vvx + vx2)*(vvz - vz2)) + c1o18*(vvx - vvz + vx2 + vz2) - vy2*(c1o36 - c1o4*(vvx + vx2)*(vvz - vz2) + c1o12*(vvx - vvz + vx2 + vz2))); + //f_TW -= c1over54*drho - (drho + one)*(c1o18*(vvx - vvz - vx2 - vz2) + c1o6*(vvx - vx2)*(vvz + vz2) + vy2*(c1o36 - c1o4*(vvx - vx2)*(vvz + vz2) + c1o12*(-vvx + vvz + vx2 + vz2))); + //f_TN -= c1over54*drho + (drho + one)*(c1o6*(vvy + vy2)*(vvz + vz2) + c1o18*(vvy + vvz + vy2 + vz2) - vx2*(c1o36 + c1o4*(vvy + vy2)*(vvz + vz2) + c1o12*(vvy + vvz + vy2 + vz2))); + //f_BS -= c1over54*drho - (drho + one)*(c1o18*(vvy - vvz - vy2 - vz2) + c1o6*(vvy - vy2)*(vvz + vz2) + vx2*(c1o36 - c1o4*(vvy - vy2)*(vvz + vz2) + c1o12*(-vvy + vvz + vy2 + vz2))); + //f_BN -= c1over54*drho + (drho + one)*(-(c1o6*(vvy + vy2)*(vvz - vz2)) + c1o18*(vvy - vvz + vy2 + vz2) - vx2*(c1o36 - c1o4*(vvy + vy2)*(vvz - vz2) + c1o12*(vvy - vvz + vy2 + vz2))); + //f_TS -= c1over54*drho - (drho + one)*(c1o18*(vvy - vvz - vy2 - vz2) + c1o6*(vvy - vy2)*(vvz + vz2) + vx2*(c1o36 - c1o4*(vvy - vy2)*(vvz + vz2) + c1o12*(-vvy + vvz + vy2 + vz2))); + //f_ZERO -= c8over27*drho - (drho + one)*(vx2*vy2*vz2 + c4o9*(vx2 + vy2 + vz2) - c2o3*(vx2*vy2 + (vx2 + vy2)*vz2)); + //f_TNE -= c1over216*drho + (drho + one)*(c1o8*(vvx + vx2)*(vvy + vy2)*(vvz + vz2) + c1o72*(vvx + vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 + vvy*(vvz + vx2 + vz2) + vvx*(vvy + vvz + vy2 + vz2))); + //f_TSW -= c1over216*drho + (drho + one)*(c1o8*(vvx - vx2)*(vvy - vy2)*(vvz + vz2) + c1o72*(-vvx - vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + vvx*(vvy - vvz - vy2 - vz2) + (vx2 + vy2)*vz2 - vvy*(vvz + vx2 + vz2))); + //f_TSE -= c1over216*drho + (drho + one)*(-(c1o8*(vvx + vx2)*(vvy - vy2)*(vvz + vz2)) + c1o72*(vvx - vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 - vvy*(vvz + vx2 + vz2) + vvx*(-vvy + vvz + vy2 + vz2))); + //f_TNW -= c1over216*drho - (drho + one)*(c1o72*(vvx - vvy - vvz - vx2 - vy2 - vz2) + c1o8*(vvx - vx2)*(vvy + vy2)*(vvz + vz2) - c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 + vvy*(vvz + vx2 + vz2) - vvx*(vvy + vvz + vy2 + vz2))); + //f_BNE -= c1over216*drho + (drho + one)*(-(c1o8*(vvx + vx2)*(vvy + vy2)*(vvz - vz2)) + c1o72*(vvx + vvy - vvz + vx2 + vy2 + vz2) + c1o24*(-(vvy*vvz) + vvy*vx2 - vvz*vx2 - vvz*vy2 + vx2*vy2 + (vvy + vx2 + vy2)*vz2 + vvx*(vvy - vvz + vy2 + vz2))); + //f_BSW -= c1over216*drho - (drho + one)*(c1o8*(vvx - vx2)*(vvy - vy2)*(vvz - vz2) + c1o72*(vvx + vvy + vvz - vx2 - vy2 - vz2) + c1o24*(vvz*vx2 + vvz*vy2 - vx2*vy2 - (vx2 + vy2)*vz2 + vvy*(-vvz + vx2 + vz2) + vvx*(-vvy - vvz + vy2 + vz2))); + //f_BSE -= c1over216*drho + (drho + one)*(c1o8*(vvx + vx2)*(vvy - vy2)*(vvz - vz2) + c1o72*(vvx - vvy - vvz + vx2 + vy2 + vz2) + c1o24*(-(vvx*vvy) - vvx*vvz + vvy*vvz - (vvy + vvz)*vx2 + (vvx - vvz + vx2)*vy2 + (vvx - vvy + vx2 + vy2)*vz2)); + //f_BNW -= c1over216*drho - (drho + one)*(-(c1o8*(vvx - vx2)*(vvy + vy2)*(vvz - vz2)) + c1o72*(vvx - vvy + vvz - vx2 - vy2 - vz2) + c1o24*(vvy*vvz - vvy*vx2 + vvz*vx2 + vvz*vy2 - vx2*vy2 - (vvy + vx2 + vy2)*vz2 + vvx*(vvy - vvz + vy2 + vz2))); + + //kxyFromfcNEQ_SEB = -three*omegaS*((((f_SW - f_SE) + (f_NE - f_NW)) + (((f_BSW - f_BSE) + (f_BNE - f_BNW)) + ((f_TSW - f_TSE) + (f_TNE - f_TNW)))) / (one + drho)); + //kyzFromfcNEQ_SEB = -three*omegaS*((((f_BS - f_TS) + (f_TN - f_BN)) + (((f_BSE - f_TSE) + (f_BSW - f_BNW)) + ((f_TNE - f_BNE) + (f_TNW - f_TSW)))) / (one + drho)); + //kxzFromfcNEQ_SEB = -three*omegaS*((((f_BW - f_BE) + (f_TE - f_TW)) + (((f_BSW - f_BSE) + (f_BNW - f_BNE)) + ((f_TSE - f_TSW) + (f_TNE - f_TNW)))) / (one + drho)); + //kxxMyyFromfcNEQ_SEB = -c3o2*omegaS *(((((f_BW - f_BS) + (f_TW - f_TS)) + ((f_BE - f_BN) + (f_TE - f_TN))) + ((f_W - f_S) + (f_E - f_N))) / (one + drho)); + //kxxMzzFromfcNEQ_SEB = -c3o2*omegaS *(((((f_SW - f_BS) + (f_NW - f_BN)) + ((f_SE - f_TS) + (f_NE - f_TN))) + ((f_W - f_B) + (f_E - f_T))) / (one + drho)); + //kyyMzzFromfcNEQ_SEB = -c3o2*omegaS *(((((f_SE - f_BE) + (f_SW - f_BW)) + ((f_NE - f_TE) + (f_NW - f_TW))) + ((f_S - f_B) + (f_N - f_T))) / (one + drho)); ////////////////////////////////////////////////////////////////////////// @@ -13128,8 +13128,8 @@ __global__ void scaleFC_Fix_comp_27( real* DC, drho_NWB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; vx1_NWB = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_NWB); - vx2_NWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NWB); - vx3_NWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NWB); + vx2_NWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NWB); + vx3_NWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NWB); //kxyFromfcNEQ_NWB = -three*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (one + drho_NWB) - ((vx1_NWB*vx2_NWB))); //kyzFromfcNEQ_NWB = -three*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (one + drho_NWB) - ((vx2_NWB*vx3_NWB))); @@ -13137,61 +13137,61 @@ __global__ void scaleFC_Fix_comp_27( real* DC, //kxxMyyFromfcNEQ_NWB = -c3o2*omegaS *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (one + drho_NWB) - ((vx1_NWB*vx1_NWB-vx2_NWB*vx2_NWB))); //kxxMzzFromfcNEQ_NWB = -c3o2*omegaS *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (one + drho_NWB) - ((vx1_NWB*vx1_NWB-vx3_NWB*vx3_NWB))); - kxyFromfcNEQ_NWB = -c3o1*omegaS* ((((f_SW - f_SE) + (f_NE - f_NW)) + (((f_BSW - f_BSE) + (f_BNE - f_BNW)) + ((f_TSW - f_TSE) + (f_TNE - f_TNW)))) / (c1o1 + drho_NWB) - ((vx1_NWB*vx2_NWB))); - kyzFromfcNEQ_NWB = -c3o1*omegaS* ((((f_BS - f_TS) + (f_TN - f_BN)) + (((f_BSE - f_TSE) + (f_BSW - f_BNW)) + ((f_TNE - f_BNE) + (f_TNW - f_TSW)))) / (c1o1 + drho_NWB) - ((vx2_NWB*vx3_NWB))); - kxzFromfcNEQ_NWB = -c3o1*omegaS* ((((f_BW - f_BE) + (f_TE - f_TW)) + (((f_BSW - f_BSE) + (f_BNW - f_BNE)) + ((f_TSE - f_TSW) + (f_TNE - f_TNW)))) / (c1o1 + drho_NWB) - ((vx1_NWB*vx3_NWB))); - kxxMyyFromfcNEQ_NWB = -c3o2*omegaS *(((((f_BW - f_BS) + (f_TW - f_TS)) + ((f_BE - f_BN) + (f_TE - f_TN))) + ((f_W - f_S) + (f_E - f_N))) / (c1o1 + drho_NWB) - ((vx1_NWB*vx1_NWB - vx2_NWB*vx2_NWB))); - kxxMzzFromfcNEQ_NWB = -c3o2*omegaS *(((((f_SW - f_BS) + (f_NW - f_BN)) + ((f_SE - f_TS) + (f_NE - f_TN))) + ((f_W - f_B) + (f_E - f_T))) / (c1o1 + drho_NWB) - ((vx1_NWB*vx1_NWB - vx3_NWB*vx3_NWB))); - kyyMzzFromfcNEQ_NWB = -c3o2*omegaS *(((((f_SE - f_BE) + (f_SW - f_BW)) + ((f_NE - f_TE) + (f_NW - f_TW))) + ((f_S - f_B) + (f_N - f_T))) / (c1o1 + drho_NWB) - ((vx2_NWB*vx2_NWB - vx3_NWB*vx3_NWB))); - - //konditioniert - //vvx = vx1_NWB; - //vvy = vx2_NWB; - //vvz = vx3_NWB; - //drho = drho_NWB; - //vx2 = vvx * vvx; - //vy2 = vvy * vvy; - //vz2 = vvz * vvz; - - - //f_E -= c2over27*drho + (drho + one)*(c2o9*(vvx + vx2) + (c1o6 + c1o2*(vvx + vx2))*vy2*vz2 - c1o9*(vy2 + vz2) - c1o3*(vvx + vx2)*(vy2 + vz2)); - //f_W -= c2over27*drho - (drho + one)*((vvx - vx2)*(c2o9 - c1o3*vy2) - (c1o6*vy2 + (vvx - vx2)*(c1o3 - c1o2*vy2))*vz2 + c1o9*(vy2 + vz2)); - //f_N -= c2over27*drho + (drho + one)*(c2o9*(vvy + vy2) + vx2*(c1o6 + c1o2*(vvy + vy2))*vz2 - c1o9*(vx2 + vz2) - c1o3*(vvy + vy2)*(vx2 + vz2)); - //f_S -= c2over27*drho - (drho + one)*((c2o9 - c1o3*vx2)*(vvy - vy2) - (c1o6*vx2 + (c1o3 - c1o2*vx2)*(vvy - vy2))*vz2 + c1o9*(vx2 + vz2)); - //f_T -= c2over27*drho + (drho + one)*(-(c1o9*(vx2 + vy2)) + c2o9*(vvz + vz2) - c1o3*(vx2 + vy2)*(vvz + vz2) + vx2*vy2*(c1o6 + c1o2*(vvz + vz2))); - //f_B -= c2over27*drho - (drho + one)*(c1o9*(vx2 + vy2) + c2o9*(vvz - vz2) - c1o3*(vx2 + vy2)*(vvz - vz2) - vx2*vy2*(c1o6 + c1o2*(-vvz + vz2))); - //f_NE -= c1over54*drho + (drho + one)*(c1o6*(vvx + vx2)*(vvy + vy2) + c1o18*(vvx + vvy + vx2 + vy2) - (c1o36 + c1o4*(vvx + vx2)*(vvy + vy2) + c1o12*(vvx + vvy + vx2 + vy2))*vz2); - //f_SW -= c1over54*drho + (drho + one)*(c1o6*(vvx - vx2)*(vvy - vy2) + c1o18*(-vvx - vvy + vx2 + vy2) - (c1o36 + c1o4*(vvx - vx2)*(vvy - vy2) + c1o12*(-vvx - vvy + vx2 + vy2))*vz2); - //f_SE -= c1over54*drho + (drho + one)*(-(c1o6*(vvx + vx2)*(vvy - vy2)) + c1o18*(vvx - vvy + vx2 + vy2) - (c1o36 - c1o4*(vvx + vx2)*(vvy - vy2) + c1o12*(vvx - vvy + vx2 + vy2))*vz2); - //f_NW -= c1over54*drho + (drho + one)*(-(c1o6*(vvx - vx2)*(vvy + vy2)) + c1o18*(-vvx + vvy + vx2 + vy2) - (c1o36 - c1o4*(vvx - vx2)*(vvy + vy2) + c1o12*(-vvx + vvy + vx2 + vy2))*vz2); - //f_TE -= c1over54*drho + (drho + one)*(c1o6*(vvx + vx2)*(vvz + vz2) + c1o18*(vvx + vvz + vx2 + vz2) - vy2*(c1o36 + c1o4*(vvx + vx2)*(vvz + vz2) + c1o12*(vvx + vvz + vx2 + vz2))); - //f_BW -= c1over54*drho - (drho + one)*(-(c1o6*(vvx - vx2)*(vvz - vz2)) + c1o18*(vvx + vvz - vx2 - vz2) + vy2*(c1o36 + c1o4*(vvx - vx2)*(vvz - vz2) + c1o12*(-vvx - vvz + vx2 + vz2))); - //f_BE -= c1over54*drho + (drho + one)*(-(c1o6*(vvx + vx2)*(vvz - vz2)) + c1o18*(vvx - vvz + vx2 + vz2) - vy2*(c1o36 - c1o4*(vvx + vx2)*(vvz - vz2) + c1o12*(vvx - vvz + vx2 + vz2))); - //f_TW -= c1over54*drho - (drho + one)*(c1o18*(vvx - vvz - vx2 - vz2) + c1o6*(vvx - vx2)*(vvz + vz2) + vy2*(c1o36 - c1o4*(vvx - vx2)*(vvz + vz2) + c1o12*(-vvx + vvz + vx2 + vz2))); - //f_TN -= c1over54*drho + (drho + one)*(c1o6*(vvy + vy2)*(vvz + vz2) + c1o18*(vvy + vvz + vy2 + vz2) - vx2*(c1o36 + c1o4*(vvy + vy2)*(vvz + vz2) + c1o12*(vvy + vvz + vy2 + vz2))); - //f_BS -= c1over54*drho - (drho + one)*(c1o18*(vvy - vvz - vy2 - vz2) + c1o6*(vvy - vy2)*(vvz + vz2) + vx2*(c1o36 - c1o4*(vvy - vy2)*(vvz + vz2) + c1o12*(-vvy + vvz + vy2 + vz2))); - //f_BN -= c1over54*drho + (drho + one)*(-(c1o6*(vvy + vy2)*(vvz - vz2)) + c1o18*(vvy - vvz + vy2 + vz2) - vx2*(c1o36 - c1o4*(vvy + vy2)*(vvz - vz2) + c1o12*(vvy - vvz + vy2 + vz2))); - //f_TS -= c1over54*drho - (drho + one)*(c1o18*(vvy - vvz - vy2 - vz2) + c1o6*(vvy - vy2)*(vvz + vz2) + vx2*(c1o36 - c1o4*(vvy - vy2)*(vvz + vz2) + c1o12*(-vvy + vvz + vy2 + vz2))); - //f_ZERO -= c8over27*drho - (drho + one)*(vx2*vy2*vz2 + c4o9*(vx2 + vy2 + vz2) - c2o3*(vx2*vy2 + (vx2 + vy2)*vz2)); - //f_TNE -= c1over216*drho + (drho + one)*(c1o8*(vvx + vx2)*(vvy + vy2)*(vvz + vz2) + c1o72*(vvx + vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 + vvy*(vvz + vx2 + vz2) + vvx*(vvy + vvz + vy2 + vz2))); - //f_TSW -= c1over216*drho + (drho + one)*(c1o8*(vvx - vx2)*(vvy - vy2)*(vvz + vz2) + c1o72*(-vvx - vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + vvx*(vvy - vvz - vy2 - vz2) + (vx2 + vy2)*vz2 - vvy*(vvz + vx2 + vz2))); - //f_TSE -= c1over216*drho + (drho + one)*(-(c1o8*(vvx + vx2)*(vvy - vy2)*(vvz + vz2)) + c1o72*(vvx - vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 - vvy*(vvz + vx2 + vz2) + vvx*(-vvy + vvz + vy2 + vz2))); - //f_TNW -= c1over216*drho - (drho + one)*(c1o72*(vvx - vvy - vvz - vx2 - vy2 - vz2) + c1o8*(vvx - vx2)*(vvy + vy2)*(vvz + vz2) - c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 + vvy*(vvz + vx2 + vz2) - vvx*(vvy + vvz + vy2 + vz2))); - //f_BNE -= c1over216*drho + (drho + one)*(-(c1o8*(vvx + vx2)*(vvy + vy2)*(vvz - vz2)) + c1o72*(vvx + vvy - vvz + vx2 + vy2 + vz2) + c1o24*(-(vvy*vvz) + vvy*vx2 - vvz*vx2 - vvz*vy2 + vx2*vy2 + (vvy + vx2 + vy2)*vz2 + vvx*(vvy - vvz + vy2 + vz2))); - //f_BSW -= c1over216*drho - (drho + one)*(c1o8*(vvx - vx2)*(vvy - vy2)*(vvz - vz2) + c1o72*(vvx + vvy + vvz - vx2 - vy2 - vz2) + c1o24*(vvz*vx2 + vvz*vy2 - vx2*vy2 - (vx2 + vy2)*vz2 + vvy*(-vvz + vx2 + vz2) + vvx*(-vvy - vvz + vy2 + vz2))); - //f_BSE -= c1over216*drho + (drho + one)*(c1o8*(vvx + vx2)*(vvy - vy2)*(vvz - vz2) + c1o72*(vvx - vvy - vvz + vx2 + vy2 + vz2) + c1o24*(-(vvx*vvy) - vvx*vvz + vvy*vvz - (vvy + vvz)*vx2 + (vvx - vvz + vx2)*vy2 + (vvx - vvy + vx2 + vy2)*vz2)); - //f_BNW -= c1over216*drho - (drho + one)*(-(c1o8*(vvx - vx2)*(vvy + vy2)*(vvz - vz2)) + c1o72*(vvx - vvy + vvz - vx2 - vy2 - vz2) + c1o24*(vvy*vvz - vvy*vx2 + vvz*vx2 + vvz*vy2 - vx2*vy2 - (vvy + vx2 + vy2)*vz2 + vvx*(vvy - vvz + vy2 + vz2))); - - //kxyFromfcNEQ_NWB = -three*omegaS*((((f_SW - f_SE) + (f_NE - f_NW)) + (((f_BSW - f_BSE) + (f_BNE - f_BNW)) + ((f_TSW - f_TSE) + (f_TNE - f_TNW)))) / (one + drho)); - //kyzFromfcNEQ_NWB = -three*omegaS*((((f_BS - f_TS) + (f_TN - f_BN)) + (((f_BSE - f_TSE) + (f_BSW - f_BNW)) + ((f_TNE - f_BNE) + (f_TNW - f_TSW)))) / (one + drho)); - //kxzFromfcNEQ_NWB = -three*omegaS*((((f_BW - f_BE) + (f_TE - f_TW)) + (((f_BSW - f_BSE) + (f_BNW - f_BNE)) + ((f_TSE - f_TSW) + (f_TNE - f_TNW)))) / (one + drho)); - //kxxMyyFromfcNEQ_NWB = -c3o2*omegaS *(((((f_BW - f_BS) + (f_TW - f_TS)) + ((f_BE - f_BN) + (f_TE - f_TN))) + ((f_W - f_S) + (f_E - f_N))) / (one + drho)); - //kxxMzzFromfcNEQ_NWB = -c3o2*omegaS *(((((f_SW - f_BS) + (f_NW - f_BN)) + ((f_SE - f_TS) + (f_NE - f_TN))) + ((f_W - f_B) + (f_E - f_T))) / (one + drho)); - //kyyMzzFromfcNEQ_NWB = -c3o2*omegaS *(((((f_SE - f_BE) + (f_SW - f_BW)) + ((f_NE - f_TE) + (f_NW - f_TW))) + ((f_S - f_B) + (f_N - f_T))) / (one + drho)); - - - - ////////////////////////////////////////////////////////////////////////// + kxyFromfcNEQ_NWB = -c3o1*omegaS* ((((f_SW - f_SE) + (f_NE - f_NW)) + (((f_BSW - f_BSE) + (f_BNE - f_BNW)) + ((f_TSW - f_TSE) + (f_TNE - f_TNW)))) / (c1o1 + drho_NWB) - ((vx1_NWB*vx2_NWB))); + kyzFromfcNEQ_NWB = -c3o1*omegaS* ((((f_BS - f_TS) + (f_TN - f_BN)) + (((f_BSE - f_TSE) + (f_BSW - f_BNW)) + ((f_TNE - f_BNE) + (f_TNW - f_TSW)))) / (c1o1 + drho_NWB) - ((vx2_NWB*vx3_NWB))); + kxzFromfcNEQ_NWB = -c3o1*omegaS* ((((f_BW - f_BE) + (f_TE - f_TW)) + (((f_BSW - f_BSE) + (f_BNW - f_BNE)) + ((f_TSE - f_TSW) + (f_TNE - f_TNW)))) / (c1o1 + drho_NWB) - ((vx1_NWB*vx3_NWB))); + kxxMyyFromfcNEQ_NWB = -c3o2*omegaS *(((((f_BW - f_BS) + (f_TW - f_TS)) + ((f_BE - f_BN) + (f_TE - f_TN))) + ((f_W - f_S) + (f_E - f_N))) / (c1o1 + drho_NWB) - ((vx1_NWB*vx1_NWB - vx2_NWB*vx2_NWB))); + kxxMzzFromfcNEQ_NWB = -c3o2*omegaS *(((((f_SW - f_BS) + (f_NW - f_BN)) + ((f_SE - f_TS) + (f_NE - f_TN))) + ((f_W - f_B) + (f_E - f_T))) / (c1o1 + drho_NWB) - ((vx1_NWB*vx1_NWB - vx3_NWB*vx3_NWB))); + kyyMzzFromfcNEQ_NWB = -c3o2*omegaS *(((((f_SE - f_BE) + (f_SW - f_BW)) + ((f_NE - f_TE) + (f_NW - f_TW))) + ((f_S - f_B) + (f_N - f_T))) / (c1o1 + drho_NWB) - ((vx2_NWB*vx2_NWB - vx3_NWB*vx3_NWB))); + + //konditioniert + //vvx = vx1_NWB; + //vvy = vx2_NWB; + //vvz = vx3_NWB; + //drho = drho_NWB; + //vx2 = vvx * vvx; + //vy2 = vvy * vvy; + //vz2 = vvz * vvz; + + + //f_E -= c2over27*drho + (drho + one)*(c2o9*(vvx + vx2) + (c1o6 + c1o2*(vvx + vx2))*vy2*vz2 - c1o9*(vy2 + vz2) - c1o3*(vvx + vx2)*(vy2 + vz2)); + //f_W -= c2over27*drho - (drho + one)*((vvx - vx2)*(c2o9 - c1o3*vy2) - (c1o6*vy2 + (vvx - vx2)*(c1o3 - c1o2*vy2))*vz2 + c1o9*(vy2 + vz2)); + //f_N -= c2over27*drho + (drho + one)*(c2o9*(vvy + vy2) + vx2*(c1o6 + c1o2*(vvy + vy2))*vz2 - c1o9*(vx2 + vz2) - c1o3*(vvy + vy2)*(vx2 + vz2)); + //f_S -= c2over27*drho - (drho + one)*((c2o9 - c1o3*vx2)*(vvy - vy2) - (c1o6*vx2 + (c1o3 - c1o2*vx2)*(vvy - vy2))*vz2 + c1o9*(vx2 + vz2)); + //f_T -= c2over27*drho + (drho + one)*(-(c1o9*(vx2 + vy2)) + c2o9*(vvz + vz2) - c1o3*(vx2 + vy2)*(vvz + vz2) + vx2*vy2*(c1o6 + c1o2*(vvz + vz2))); + //f_B -= c2over27*drho - (drho + one)*(c1o9*(vx2 + vy2) + c2o9*(vvz - vz2) - c1o3*(vx2 + vy2)*(vvz - vz2) - vx2*vy2*(c1o6 + c1o2*(-vvz + vz2))); + //f_NE -= c1over54*drho + (drho + one)*(c1o6*(vvx + vx2)*(vvy + vy2) + c1o18*(vvx + vvy + vx2 + vy2) - (c1o36 + c1o4*(vvx + vx2)*(vvy + vy2) + c1o12*(vvx + vvy + vx2 + vy2))*vz2); + //f_SW -= c1over54*drho + (drho + one)*(c1o6*(vvx - vx2)*(vvy - vy2) + c1o18*(-vvx - vvy + vx2 + vy2) - (c1o36 + c1o4*(vvx - vx2)*(vvy - vy2) + c1o12*(-vvx - vvy + vx2 + vy2))*vz2); + //f_SE -= c1over54*drho + (drho + one)*(-(c1o6*(vvx + vx2)*(vvy - vy2)) + c1o18*(vvx - vvy + vx2 + vy2) - (c1o36 - c1o4*(vvx + vx2)*(vvy - vy2) + c1o12*(vvx - vvy + vx2 + vy2))*vz2); + //f_NW -= c1over54*drho + (drho + one)*(-(c1o6*(vvx - vx2)*(vvy + vy2)) + c1o18*(-vvx + vvy + vx2 + vy2) - (c1o36 - c1o4*(vvx - vx2)*(vvy + vy2) + c1o12*(-vvx + vvy + vx2 + vy2))*vz2); + //f_TE -= c1over54*drho + (drho + one)*(c1o6*(vvx + vx2)*(vvz + vz2) + c1o18*(vvx + vvz + vx2 + vz2) - vy2*(c1o36 + c1o4*(vvx + vx2)*(vvz + vz2) + c1o12*(vvx + vvz + vx2 + vz2))); + //f_BW -= c1over54*drho - (drho + one)*(-(c1o6*(vvx - vx2)*(vvz - vz2)) + c1o18*(vvx + vvz - vx2 - vz2) + vy2*(c1o36 + c1o4*(vvx - vx2)*(vvz - vz2) + c1o12*(-vvx - vvz + vx2 + vz2))); + //f_BE -= c1over54*drho + (drho + one)*(-(c1o6*(vvx + vx2)*(vvz - vz2)) + c1o18*(vvx - vvz + vx2 + vz2) - vy2*(c1o36 - c1o4*(vvx + vx2)*(vvz - vz2) + c1o12*(vvx - vvz + vx2 + vz2))); + //f_TW -= c1over54*drho - (drho + one)*(c1o18*(vvx - vvz - vx2 - vz2) + c1o6*(vvx - vx2)*(vvz + vz2) + vy2*(c1o36 - c1o4*(vvx - vx2)*(vvz + vz2) + c1o12*(-vvx + vvz + vx2 + vz2))); + //f_TN -= c1over54*drho + (drho + one)*(c1o6*(vvy + vy2)*(vvz + vz2) + c1o18*(vvy + vvz + vy2 + vz2) - vx2*(c1o36 + c1o4*(vvy + vy2)*(vvz + vz2) + c1o12*(vvy + vvz + vy2 + vz2))); + //f_BS -= c1over54*drho - (drho + one)*(c1o18*(vvy - vvz - vy2 - vz2) + c1o6*(vvy - vy2)*(vvz + vz2) + vx2*(c1o36 - c1o4*(vvy - vy2)*(vvz + vz2) + c1o12*(-vvy + vvz + vy2 + vz2))); + //f_BN -= c1over54*drho + (drho + one)*(-(c1o6*(vvy + vy2)*(vvz - vz2)) + c1o18*(vvy - vvz + vy2 + vz2) - vx2*(c1o36 - c1o4*(vvy + vy2)*(vvz - vz2) + c1o12*(vvy - vvz + vy2 + vz2))); + //f_TS -= c1over54*drho - (drho + one)*(c1o18*(vvy - vvz - vy2 - vz2) + c1o6*(vvy - vy2)*(vvz + vz2) + vx2*(c1o36 - c1o4*(vvy - vy2)*(vvz + vz2) + c1o12*(-vvy + vvz + vy2 + vz2))); + //f_ZERO -= c8over27*drho - (drho + one)*(vx2*vy2*vz2 + c4o9*(vx2 + vy2 + vz2) - c2o3*(vx2*vy2 + (vx2 + vy2)*vz2)); + //f_TNE -= c1over216*drho + (drho + one)*(c1o8*(vvx + vx2)*(vvy + vy2)*(vvz + vz2) + c1o72*(vvx + vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 + vvy*(vvz + vx2 + vz2) + vvx*(vvy + vvz + vy2 + vz2))); + //f_TSW -= c1over216*drho + (drho + one)*(c1o8*(vvx - vx2)*(vvy - vy2)*(vvz + vz2) + c1o72*(-vvx - vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + vvx*(vvy - vvz - vy2 - vz2) + (vx2 + vy2)*vz2 - vvy*(vvz + vx2 + vz2))); + //f_TSE -= c1over216*drho + (drho + one)*(-(c1o8*(vvx + vx2)*(vvy - vy2)*(vvz + vz2)) + c1o72*(vvx - vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 - vvy*(vvz + vx2 + vz2) + vvx*(-vvy + vvz + vy2 + vz2))); + //f_TNW -= c1over216*drho - (drho + one)*(c1o72*(vvx - vvy - vvz - vx2 - vy2 - vz2) + c1o8*(vvx - vx2)*(vvy + vy2)*(vvz + vz2) - c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 + vvy*(vvz + vx2 + vz2) - vvx*(vvy + vvz + vy2 + vz2))); + //f_BNE -= c1over216*drho + (drho + one)*(-(c1o8*(vvx + vx2)*(vvy + vy2)*(vvz - vz2)) + c1o72*(vvx + vvy - vvz + vx2 + vy2 + vz2) + c1o24*(-(vvy*vvz) + vvy*vx2 - vvz*vx2 - vvz*vy2 + vx2*vy2 + (vvy + vx2 + vy2)*vz2 + vvx*(vvy - vvz + vy2 + vz2))); + //f_BSW -= c1over216*drho - (drho + one)*(c1o8*(vvx - vx2)*(vvy - vy2)*(vvz - vz2) + c1o72*(vvx + vvy + vvz - vx2 - vy2 - vz2) + c1o24*(vvz*vx2 + vvz*vy2 - vx2*vy2 - (vx2 + vy2)*vz2 + vvy*(-vvz + vx2 + vz2) + vvx*(-vvy - vvz + vy2 + vz2))); + //f_BSE -= c1over216*drho + (drho + one)*(c1o8*(vvx + vx2)*(vvy - vy2)*(vvz - vz2) + c1o72*(vvx - vvy - vvz + vx2 + vy2 + vz2) + c1o24*(-(vvx*vvy) - vvx*vvz + vvy*vvz - (vvy + vvz)*vx2 + (vvx - vvz + vx2)*vy2 + (vvx - vvy + vx2 + vy2)*vz2)); + //f_BNW -= c1over216*drho - (drho + one)*(-(c1o8*(vvx - vx2)*(vvy + vy2)*(vvz - vz2)) + c1o72*(vvx - vvy + vvz - vx2 - vy2 - vz2) + c1o24*(vvy*vvz - vvy*vx2 + vvz*vx2 + vvz*vy2 - vx2*vy2 - (vvy + vx2 + vy2)*vz2 + vvx*(vvy - vvz + vy2 + vz2))); + + //kxyFromfcNEQ_NWB = -three*omegaS*((((f_SW - f_SE) + (f_NE - f_NW)) + (((f_BSW - f_BSE) + (f_BNE - f_BNW)) + ((f_TSW - f_TSE) + (f_TNE - f_TNW)))) / (one + drho)); + //kyzFromfcNEQ_NWB = -three*omegaS*((((f_BS - f_TS) + (f_TN - f_BN)) + (((f_BSE - f_TSE) + (f_BSW - f_BNW)) + ((f_TNE - f_BNE) + (f_TNW - f_TSW)))) / (one + drho)); + //kxzFromfcNEQ_NWB = -three*omegaS*((((f_BW - f_BE) + (f_TE - f_TW)) + (((f_BSW - f_BSE) + (f_BNW - f_BNE)) + ((f_TSE - f_TSW) + (f_TNE - f_TNW)))) / (one + drho)); + //kxxMyyFromfcNEQ_NWB = -c3o2*omegaS *(((((f_BW - f_BS) + (f_TW - f_TS)) + ((f_BE - f_BN) + (f_TE - f_TN))) + ((f_W - f_S) + (f_E - f_N))) / (one + drho)); + //kxxMzzFromfcNEQ_NWB = -c3o2*omegaS *(((((f_SW - f_BS) + (f_NW - f_BN)) + ((f_SE - f_TS) + (f_NE - f_TN))) + ((f_W - f_B) + (f_E - f_T))) / (one + drho)); + //kyyMzzFromfcNEQ_NWB = -c3o2*omegaS *(((((f_SE - f_BE) + (f_SW - f_BW)) + ((f_NE - f_TE) + (f_NW - f_TW))) + ((f_S - f_B) + (f_N - f_T))) / (one + drho)); + + + + ////////////////////////////////////////////////////////////////////////// //NWT// ////////////////////////////////////////////////////////////////////////// //index @@ -13234,67 +13234,67 @@ __global__ void scaleFC_Fix_comp_27( real* DC, drho_NWT = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; vx1_NWT = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_NWT); - vx2_NWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NWT); - vx3_NWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NWT); + vx2_NWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NWT); + vx3_NWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NWT); - //nicht konditioniert - //kxyFromfcNEQ_NWT = -three*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (one + drho_NWT) - ((vx1_NWT*vx2_NWT))); + //nicht konditioniert + //kxyFromfcNEQ_NWT = -three*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (one + drho_NWT) - ((vx1_NWT*vx2_NWT))); //kyzFromfcNEQ_NWT = -three*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (one + drho_NWT) - ((vx2_NWT*vx3_NWT))); //kxzFromfcNEQ_NWT = -three*omegaS*((f_BW+f_BSW+f_BNW-f_TW-f_TSW-f_TNW-f_BE-f_BSE-f_BNE+f_TE+f_TSE+f_TNE ) / (one + drho_NWT) - ((vx1_NWT*vx3_NWT))); //kxxMyyFromfcNEQ_NWT = -c3o2*omegaS *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (one + drho_NWT) - ((vx1_NWT*vx1_NWT-vx2_NWT*vx2_NWT))); //kxxMzzFromfcNEQ_NWT = -c3o2*omegaS *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (one + drho_NWT) - ((vx1_NWT*vx1_NWT-vx3_NWT*vx3_NWT))); - kxyFromfcNEQ_NWT = -c3o1*omegaS*((((f_SW - f_SE) + (f_NE - f_NW)) + (((f_BSW - f_BSE) + (f_BNE - f_BNW)) + ((f_TSW - f_TSE) + (f_TNE - f_TNW)))) / (c1o1 + drho_NWT) - ((vx1_NWT*vx2_NWT))); - kyzFromfcNEQ_NWT = -c3o1*omegaS*((((f_BS - f_TS) + (f_TN - f_BN)) + (((f_BSE - f_TSE) + (f_BSW - f_BNW)) + ((f_TNE - f_BNE) + (f_TNW - f_TSW)))) / (c1o1 + drho_NWT) - ((vx2_NWT*vx3_NWT))); - kxzFromfcNEQ_NWT = -c3o1*omegaS*((((f_BW - f_BE) + (f_TE - f_TW)) + (((f_BSW - f_BSE) + (f_BNW - f_BNE)) + ((f_TSE - f_TSW) + (f_TNE - f_TNW)))) / (c1o1 + drho_NWT) - ((vx1_NWT*vx3_NWT))); - kxxMyyFromfcNEQ_NWT = -c3o2*omegaS *(((((f_BW - f_BS) + (f_TW - f_TS)) + ((f_BE - f_BN) + (f_TE - f_TN))) + ((f_W - f_S) + (f_E - f_N))) / (c1o1 + drho_NWT) - ((vx1_NWT*vx1_NWT - vx2_NWT*vx2_NWT))); - kxxMzzFromfcNEQ_NWT = -c3o2*omegaS *(((((f_SW - f_BS) + (f_NW - f_BN)) + ((f_SE - f_TS) + (f_NE - f_TN))) + ((f_W - f_B) + (f_E - f_T))) / (c1o1 + drho_NWT) - ((vx1_NWT*vx1_NWT - vx3_NWT*vx3_NWT))); - kyyMzzFromfcNEQ_NWT = -c3o2*omegaS *(((((f_SE - f_BE) + (f_SW - f_BW)) + ((f_NE - f_TE) + (f_NW - f_TW))) + ((f_S - f_B) + (f_N - f_T))) / (c1o1 + drho_NWT) - ((vx2_NWT*vx2_NWT - vx3_NWT*vx3_NWT))); - - //konditioniert - //vvx = vx1_NWT; - //vvy = vx2_NWT; - //vvz = vx3_NWT; - //drho = drho_NWT; - //vx2 = vvx * vvx; - //vy2 = vvy * vvy; - //vz2 = vvz * vvz; - - - //f_E -= c2over27*drho + (drho + one)*(c2o9*(vvx + vx2) + (c1o6 + c1o2*(vvx + vx2))*vy2*vz2 - c1o9*(vy2 + vz2) - c1o3*(vvx + vx2)*(vy2 + vz2)); - //f_W -= c2over27*drho - (drho + one)*((vvx - vx2)*(c2o9 - c1o3*vy2) - (c1o6*vy2 + (vvx - vx2)*(c1o3 - c1o2*vy2))*vz2 + c1o9*(vy2 + vz2)); - //f_N -= c2over27*drho + (drho + one)*(c2o9*(vvy + vy2) + vx2*(c1o6 + c1o2*(vvy + vy2))*vz2 - c1o9*(vx2 + vz2) - c1o3*(vvy + vy2)*(vx2 + vz2)); - //f_S -= c2over27*drho - (drho + one)*((c2o9 - c1o3*vx2)*(vvy - vy2) - (c1o6*vx2 + (c1o3 - c1o2*vx2)*(vvy - vy2))*vz2 + c1o9*(vx2 + vz2)); - //f_T -= c2over27*drho + (drho + one)*(-(c1o9*(vx2 + vy2)) + c2o9*(vvz + vz2) - c1o3*(vx2 + vy2)*(vvz + vz2) + vx2*vy2*(c1o6 + c1o2*(vvz + vz2))); - //f_B -= c2over27*drho - (drho + one)*(c1o9*(vx2 + vy2) + c2o9*(vvz - vz2) - c1o3*(vx2 + vy2)*(vvz - vz2) - vx2*vy2*(c1o6 + c1o2*(-vvz + vz2))); - //f_NE -= c1over54*drho + (drho + one)*(c1o6*(vvx + vx2)*(vvy + vy2) + c1o18*(vvx + vvy + vx2 + vy2) - (c1o36 + c1o4*(vvx + vx2)*(vvy + vy2) + c1o12*(vvx + vvy + vx2 + vy2))*vz2); - //f_SW -= c1over54*drho + (drho + one)*(c1o6*(vvx - vx2)*(vvy - vy2) + c1o18*(-vvx - vvy + vx2 + vy2) - (c1o36 + c1o4*(vvx - vx2)*(vvy - vy2) + c1o12*(-vvx - vvy + vx2 + vy2))*vz2); - //f_SE -= c1over54*drho + (drho + one)*(-(c1o6*(vvx + vx2)*(vvy - vy2)) + c1o18*(vvx - vvy + vx2 + vy2) - (c1o36 - c1o4*(vvx + vx2)*(vvy - vy2) + c1o12*(vvx - vvy + vx2 + vy2))*vz2); - //f_NW -= c1over54*drho + (drho + one)*(-(c1o6*(vvx - vx2)*(vvy + vy2)) + c1o18*(-vvx + vvy + vx2 + vy2) - (c1o36 - c1o4*(vvx - vx2)*(vvy + vy2) + c1o12*(-vvx + vvy + vx2 + vy2))*vz2); - //f_TE -= c1over54*drho + (drho + one)*(c1o6*(vvx + vx2)*(vvz + vz2) + c1o18*(vvx + vvz + vx2 + vz2) - vy2*(c1o36 + c1o4*(vvx + vx2)*(vvz + vz2) + c1o12*(vvx + vvz + vx2 + vz2))); - //f_BW -= c1over54*drho - (drho + one)*(-(c1o6*(vvx - vx2)*(vvz - vz2)) + c1o18*(vvx + vvz - vx2 - vz2) + vy2*(c1o36 + c1o4*(vvx - vx2)*(vvz - vz2) + c1o12*(-vvx - vvz + vx2 + vz2))); - //f_BE -= c1over54*drho + (drho + one)*(-(c1o6*(vvx + vx2)*(vvz - vz2)) + c1o18*(vvx - vvz + vx2 + vz2) - vy2*(c1o36 - c1o4*(vvx + vx2)*(vvz - vz2) + c1o12*(vvx - vvz + vx2 + vz2))); - //f_TW -= c1over54*drho - (drho + one)*(c1o18*(vvx - vvz - vx2 - vz2) + c1o6*(vvx - vx2)*(vvz + vz2) + vy2*(c1o36 - c1o4*(vvx - vx2)*(vvz + vz2) + c1o12*(-vvx + vvz + vx2 + vz2))); - //f_TN -= c1over54*drho + (drho + one)*(c1o6*(vvy + vy2)*(vvz + vz2) + c1o18*(vvy + vvz + vy2 + vz2) - vx2*(c1o36 + c1o4*(vvy + vy2)*(vvz + vz2) + c1o12*(vvy + vvz + vy2 + vz2))); - //f_BS -= c1over54*drho - (drho + one)*(c1o18*(vvy - vvz - vy2 - vz2) + c1o6*(vvy - vy2)*(vvz + vz2) + vx2*(c1o36 - c1o4*(vvy - vy2)*(vvz + vz2) + c1o12*(-vvy + vvz + vy2 + vz2))); - //f_BN -= c1over54*drho + (drho + one)*(-(c1o6*(vvy + vy2)*(vvz - vz2)) + c1o18*(vvy - vvz + vy2 + vz2) - vx2*(c1o36 - c1o4*(vvy + vy2)*(vvz - vz2) + c1o12*(vvy - vvz + vy2 + vz2))); - //f_TS -= c1over54*drho - (drho + one)*(c1o18*(vvy - vvz - vy2 - vz2) + c1o6*(vvy - vy2)*(vvz + vz2) + vx2*(c1o36 - c1o4*(vvy - vy2)*(vvz + vz2) + c1o12*(-vvy + vvz + vy2 + vz2))); - //f_ZERO -= c8over27*drho - (drho + one)*(vx2*vy2*vz2 + c4o9*(vx2 + vy2 + vz2) - c2o3*(vx2*vy2 + (vx2 + vy2)*vz2)); - //f_TNE -= c1over216*drho + (drho + one)*(c1o8*(vvx + vx2)*(vvy + vy2)*(vvz + vz2) + c1o72*(vvx + vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 + vvy*(vvz + vx2 + vz2) + vvx*(vvy + vvz + vy2 + vz2))); - //f_TSW -= c1over216*drho + (drho + one)*(c1o8*(vvx - vx2)*(vvy - vy2)*(vvz + vz2) + c1o72*(-vvx - vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + vvx*(vvy - vvz - vy2 - vz2) + (vx2 + vy2)*vz2 - vvy*(vvz + vx2 + vz2))); - //f_TSE -= c1over216*drho + (drho + one)*(-(c1o8*(vvx + vx2)*(vvy - vy2)*(vvz + vz2)) + c1o72*(vvx - vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 - vvy*(vvz + vx2 + vz2) + vvx*(-vvy + vvz + vy2 + vz2))); - //f_TNW -= c1over216*drho - (drho + one)*(c1o72*(vvx - vvy - vvz - vx2 - vy2 - vz2) + c1o8*(vvx - vx2)*(vvy + vy2)*(vvz + vz2) - c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 + vvy*(vvz + vx2 + vz2) - vvx*(vvy + vvz + vy2 + vz2))); - //f_BNE -= c1over216*drho + (drho + one)*(-(c1o8*(vvx + vx2)*(vvy + vy2)*(vvz - vz2)) + c1o72*(vvx + vvy - vvz + vx2 + vy2 + vz2) + c1o24*(-(vvy*vvz) + vvy*vx2 - vvz*vx2 - vvz*vy2 + vx2*vy2 + (vvy + vx2 + vy2)*vz2 + vvx*(vvy - vvz + vy2 + vz2))); - //f_BSW -= c1over216*drho - (drho + one)*(c1o8*(vvx - vx2)*(vvy - vy2)*(vvz - vz2) + c1o72*(vvx + vvy + vvz - vx2 - vy2 - vz2) + c1o24*(vvz*vx2 + vvz*vy2 - vx2*vy2 - (vx2 + vy2)*vz2 + vvy*(-vvz + vx2 + vz2) + vvx*(-vvy - vvz + vy2 + vz2))); - //f_BSE -= c1over216*drho + (drho + one)*(c1o8*(vvx + vx2)*(vvy - vy2)*(vvz - vz2) + c1o72*(vvx - vvy - vvz + vx2 + vy2 + vz2) + c1o24*(-(vvx*vvy) - vvx*vvz + vvy*vvz - (vvy + vvz)*vx2 + (vvx - vvz + vx2)*vy2 + (vvx - vvy + vx2 + vy2)*vz2)); - //f_BNW -= c1over216*drho - (drho + one)*(-(c1o8*(vvx - vx2)*(vvy + vy2)*(vvz - vz2)) + c1o72*(vvx - vvy + vvz - vx2 - vy2 - vz2) + c1o24*(vvy*vvz - vvy*vx2 + vvz*vx2 + vvz*vy2 - vx2*vy2 - (vvy + vx2 + vy2)*vz2 + vvx*(vvy - vvz + vy2 + vz2))); - - //kxyFromfcNEQ_NWT = -three*omegaS*((((f_SW - f_SE) + (f_NE - f_NW)) + (((f_BSW - f_BSE) + (f_BNE - f_BNW)) + ((f_TSW - f_TSE) + (f_TNE - f_TNW)))) / (one + drho)); - //kyzFromfcNEQ_NWT = -three*omegaS*((((f_BS - f_TS) + (f_TN - f_BN)) + (((f_BSE - f_TSE) + (f_BSW - f_BNW)) + ((f_TNE - f_BNE) + (f_TNW - f_TSW)))) / (one + drho)); - //kxzFromfcNEQ_NWT = -three*omegaS*((((f_BW - f_BE) + (f_TE - f_TW)) + (((f_BSW - f_BSE) + (f_BNW - f_BNE)) + ((f_TSE - f_TSW) + (f_TNE - f_TNW)))) / (one + drho)); - //kxxMyyFromfcNEQ_NWT = -c3o2*omegaS *(((((f_BW - f_BS) + (f_TW - f_TS)) + ((f_BE - f_BN) + (f_TE - f_TN))) + ((f_W - f_S) + (f_E - f_N))) / (one + drho)); - //kxxMzzFromfcNEQ_NWT = -c3o2*omegaS *(((((f_SW - f_BS) + (f_NW - f_BN)) + ((f_SE - f_TS) + (f_NE - f_TN))) + ((f_W - f_B) + (f_E - f_T))) / (one + drho)); - //kyyMzzFromfcNEQ_NWT = -c3o2*omegaS *(((((f_SE - f_BE) + (f_SW - f_BW)) + ((f_NE - f_TE) + (f_NW - f_TW))) + ((f_S - f_B) + (f_N - f_T))) / (one + drho)); + kxyFromfcNEQ_NWT = -c3o1*omegaS*((((f_SW - f_SE) + (f_NE - f_NW)) + (((f_BSW - f_BSE) + (f_BNE - f_BNW)) + ((f_TSW - f_TSE) + (f_TNE - f_TNW)))) / (c1o1 + drho_NWT) - ((vx1_NWT*vx2_NWT))); + kyzFromfcNEQ_NWT = -c3o1*omegaS*((((f_BS - f_TS) + (f_TN - f_BN)) + (((f_BSE - f_TSE) + (f_BSW - f_BNW)) + ((f_TNE - f_BNE) + (f_TNW - f_TSW)))) / (c1o1 + drho_NWT) - ((vx2_NWT*vx3_NWT))); + kxzFromfcNEQ_NWT = -c3o1*omegaS*((((f_BW - f_BE) + (f_TE - f_TW)) + (((f_BSW - f_BSE) + (f_BNW - f_BNE)) + ((f_TSE - f_TSW) + (f_TNE - f_TNW)))) / (c1o1 + drho_NWT) - ((vx1_NWT*vx3_NWT))); + kxxMyyFromfcNEQ_NWT = -c3o2*omegaS *(((((f_BW - f_BS) + (f_TW - f_TS)) + ((f_BE - f_BN) + (f_TE - f_TN))) + ((f_W - f_S) + (f_E - f_N))) / (c1o1 + drho_NWT) - ((vx1_NWT*vx1_NWT - vx2_NWT*vx2_NWT))); + kxxMzzFromfcNEQ_NWT = -c3o2*omegaS *(((((f_SW - f_BS) + (f_NW - f_BN)) + ((f_SE - f_TS) + (f_NE - f_TN))) + ((f_W - f_B) + (f_E - f_T))) / (c1o1 + drho_NWT) - ((vx1_NWT*vx1_NWT - vx3_NWT*vx3_NWT))); + kyyMzzFromfcNEQ_NWT = -c3o2*omegaS *(((((f_SE - f_BE) + (f_SW - f_BW)) + ((f_NE - f_TE) + (f_NW - f_TW))) + ((f_S - f_B) + (f_N - f_T))) / (c1o1 + drho_NWT) - ((vx2_NWT*vx2_NWT - vx3_NWT*vx3_NWT))); + + //konditioniert + //vvx = vx1_NWT; + //vvy = vx2_NWT; + //vvz = vx3_NWT; + //drho = drho_NWT; + //vx2 = vvx * vvx; + //vy2 = vvy * vvy; + //vz2 = vvz * vvz; + + + //f_E -= c2over27*drho + (drho + one)*(c2o9*(vvx + vx2) + (c1o6 + c1o2*(vvx + vx2))*vy2*vz2 - c1o9*(vy2 + vz2) - c1o3*(vvx + vx2)*(vy2 + vz2)); + //f_W -= c2over27*drho - (drho + one)*((vvx - vx2)*(c2o9 - c1o3*vy2) - (c1o6*vy2 + (vvx - vx2)*(c1o3 - c1o2*vy2))*vz2 + c1o9*(vy2 + vz2)); + //f_N -= c2over27*drho + (drho + one)*(c2o9*(vvy + vy2) + vx2*(c1o6 + c1o2*(vvy + vy2))*vz2 - c1o9*(vx2 + vz2) - c1o3*(vvy + vy2)*(vx2 + vz2)); + //f_S -= c2over27*drho - (drho + one)*((c2o9 - c1o3*vx2)*(vvy - vy2) - (c1o6*vx2 + (c1o3 - c1o2*vx2)*(vvy - vy2))*vz2 + c1o9*(vx2 + vz2)); + //f_T -= c2over27*drho + (drho + one)*(-(c1o9*(vx2 + vy2)) + c2o9*(vvz + vz2) - c1o3*(vx2 + vy2)*(vvz + vz2) + vx2*vy2*(c1o6 + c1o2*(vvz + vz2))); + //f_B -= c2over27*drho - (drho + one)*(c1o9*(vx2 + vy2) + c2o9*(vvz - vz2) - c1o3*(vx2 + vy2)*(vvz - vz2) - vx2*vy2*(c1o6 + c1o2*(-vvz + vz2))); + //f_NE -= c1over54*drho + (drho + one)*(c1o6*(vvx + vx2)*(vvy + vy2) + c1o18*(vvx + vvy + vx2 + vy2) - (c1o36 + c1o4*(vvx + vx2)*(vvy + vy2) + c1o12*(vvx + vvy + vx2 + vy2))*vz2); + //f_SW -= c1over54*drho + (drho + one)*(c1o6*(vvx - vx2)*(vvy - vy2) + c1o18*(-vvx - vvy + vx2 + vy2) - (c1o36 + c1o4*(vvx - vx2)*(vvy - vy2) + c1o12*(-vvx - vvy + vx2 + vy2))*vz2); + //f_SE -= c1over54*drho + (drho + one)*(-(c1o6*(vvx + vx2)*(vvy - vy2)) + c1o18*(vvx - vvy + vx2 + vy2) - (c1o36 - c1o4*(vvx + vx2)*(vvy - vy2) + c1o12*(vvx - vvy + vx2 + vy2))*vz2); + //f_NW -= c1over54*drho + (drho + one)*(-(c1o6*(vvx - vx2)*(vvy + vy2)) + c1o18*(-vvx + vvy + vx2 + vy2) - (c1o36 - c1o4*(vvx - vx2)*(vvy + vy2) + c1o12*(-vvx + vvy + vx2 + vy2))*vz2); + //f_TE -= c1over54*drho + (drho + one)*(c1o6*(vvx + vx2)*(vvz + vz2) + c1o18*(vvx + vvz + vx2 + vz2) - vy2*(c1o36 + c1o4*(vvx + vx2)*(vvz + vz2) + c1o12*(vvx + vvz + vx2 + vz2))); + //f_BW -= c1over54*drho - (drho + one)*(-(c1o6*(vvx - vx2)*(vvz - vz2)) + c1o18*(vvx + vvz - vx2 - vz2) + vy2*(c1o36 + c1o4*(vvx - vx2)*(vvz - vz2) + c1o12*(-vvx - vvz + vx2 + vz2))); + //f_BE -= c1over54*drho + (drho + one)*(-(c1o6*(vvx + vx2)*(vvz - vz2)) + c1o18*(vvx - vvz + vx2 + vz2) - vy2*(c1o36 - c1o4*(vvx + vx2)*(vvz - vz2) + c1o12*(vvx - vvz + vx2 + vz2))); + //f_TW -= c1over54*drho - (drho + one)*(c1o18*(vvx - vvz - vx2 - vz2) + c1o6*(vvx - vx2)*(vvz + vz2) + vy2*(c1o36 - c1o4*(vvx - vx2)*(vvz + vz2) + c1o12*(-vvx + vvz + vx2 + vz2))); + //f_TN -= c1over54*drho + (drho + one)*(c1o6*(vvy + vy2)*(vvz + vz2) + c1o18*(vvy + vvz + vy2 + vz2) - vx2*(c1o36 + c1o4*(vvy + vy2)*(vvz + vz2) + c1o12*(vvy + vvz + vy2 + vz2))); + //f_BS -= c1over54*drho - (drho + one)*(c1o18*(vvy - vvz - vy2 - vz2) + c1o6*(vvy - vy2)*(vvz + vz2) + vx2*(c1o36 - c1o4*(vvy - vy2)*(vvz + vz2) + c1o12*(-vvy + vvz + vy2 + vz2))); + //f_BN -= c1over54*drho + (drho + one)*(-(c1o6*(vvy + vy2)*(vvz - vz2)) + c1o18*(vvy - vvz + vy2 + vz2) - vx2*(c1o36 - c1o4*(vvy + vy2)*(vvz - vz2) + c1o12*(vvy - vvz + vy2 + vz2))); + //f_TS -= c1over54*drho - (drho + one)*(c1o18*(vvy - vvz - vy2 - vz2) + c1o6*(vvy - vy2)*(vvz + vz2) + vx2*(c1o36 - c1o4*(vvy - vy2)*(vvz + vz2) + c1o12*(-vvy + vvz + vy2 + vz2))); + //f_ZERO -= c8over27*drho - (drho + one)*(vx2*vy2*vz2 + c4o9*(vx2 + vy2 + vz2) - c2o3*(vx2*vy2 + (vx2 + vy2)*vz2)); + //f_TNE -= c1over216*drho + (drho + one)*(c1o8*(vvx + vx2)*(vvy + vy2)*(vvz + vz2) + c1o72*(vvx + vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 + vvy*(vvz + vx2 + vz2) + vvx*(vvy + vvz + vy2 + vz2))); + //f_TSW -= c1over216*drho + (drho + one)*(c1o8*(vvx - vx2)*(vvy - vy2)*(vvz + vz2) + c1o72*(-vvx - vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + vvx*(vvy - vvz - vy2 - vz2) + (vx2 + vy2)*vz2 - vvy*(vvz + vx2 + vz2))); + //f_TSE -= c1over216*drho + (drho + one)*(-(c1o8*(vvx + vx2)*(vvy - vy2)*(vvz + vz2)) + c1o72*(vvx - vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 - vvy*(vvz + vx2 + vz2) + vvx*(-vvy + vvz + vy2 + vz2))); + //f_TNW -= c1over216*drho - (drho + one)*(c1o72*(vvx - vvy - vvz - vx2 - vy2 - vz2) + c1o8*(vvx - vx2)*(vvy + vy2)*(vvz + vz2) - c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 + vvy*(vvz + vx2 + vz2) - vvx*(vvy + vvz + vy2 + vz2))); + //f_BNE -= c1over216*drho + (drho + one)*(-(c1o8*(vvx + vx2)*(vvy + vy2)*(vvz - vz2)) + c1o72*(vvx + vvy - vvz + vx2 + vy2 + vz2) + c1o24*(-(vvy*vvz) + vvy*vx2 - vvz*vx2 - vvz*vy2 + vx2*vy2 + (vvy + vx2 + vy2)*vz2 + vvx*(vvy - vvz + vy2 + vz2))); + //f_BSW -= c1over216*drho - (drho + one)*(c1o8*(vvx - vx2)*(vvy - vy2)*(vvz - vz2) + c1o72*(vvx + vvy + vvz - vx2 - vy2 - vz2) + c1o24*(vvz*vx2 + vvz*vy2 - vx2*vy2 - (vx2 + vy2)*vz2 + vvy*(-vvz + vx2 + vz2) + vvx*(-vvy - vvz + vy2 + vz2))); + //f_BSE -= c1over216*drho + (drho + one)*(c1o8*(vvx + vx2)*(vvy - vy2)*(vvz - vz2) + c1o72*(vvx - vvy - vvz + vx2 + vy2 + vz2) + c1o24*(-(vvx*vvy) - vvx*vvz + vvy*vvz - (vvy + vvz)*vx2 + (vvx - vvz + vx2)*vy2 + (vvx - vvy + vx2 + vy2)*vz2)); + //f_BNW -= c1over216*drho - (drho + one)*(-(c1o8*(vvx - vx2)*(vvy + vy2)*(vvz - vz2)) + c1o72*(vvx - vvy + vvz - vx2 - vy2 - vz2) + c1o24*(vvy*vvz - vvy*vx2 + vvz*vx2 + vvz*vy2 - vx2*vy2 - (vvy + vx2 + vy2)*vz2 + vvx*(vvy - vvz + vy2 + vz2))); + + //kxyFromfcNEQ_NWT = -three*omegaS*((((f_SW - f_SE) + (f_NE - f_NW)) + (((f_BSW - f_BSE) + (f_BNE - f_BNW)) + ((f_TSW - f_TSE) + (f_TNE - f_TNW)))) / (one + drho)); + //kyzFromfcNEQ_NWT = -three*omegaS*((((f_BS - f_TS) + (f_TN - f_BN)) + (((f_BSE - f_TSE) + (f_BSW - f_BNW)) + ((f_TNE - f_BNE) + (f_TNW - f_TSW)))) / (one + drho)); + //kxzFromfcNEQ_NWT = -three*omegaS*((((f_BW - f_BE) + (f_TE - f_TW)) + (((f_BSW - f_BSE) + (f_BNW - f_BNE)) + ((f_TSE - f_TSW) + (f_TNE - f_TNW)))) / (one + drho)); + //kxxMyyFromfcNEQ_NWT = -c3o2*omegaS *(((((f_BW - f_BS) + (f_TW - f_TS)) + ((f_BE - f_BN) + (f_TE - f_TN))) + ((f_W - f_S) + (f_E - f_N))) / (one + drho)); + //kxxMzzFromfcNEQ_NWT = -c3o2*omegaS *(((((f_SW - f_BS) + (f_NW - f_BN)) + ((f_SE - f_TS) + (f_NE - f_TN))) + ((f_W - f_B) + (f_E - f_T))) / (one + drho)); + //kyyMzzFromfcNEQ_NWT = -c3o2*omegaS *(((((f_SE - f_BE) + (f_SW - f_BW)) + ((f_NE - f_TE) + (f_NW - f_TW))) + ((f_S - f_B) + (f_N - f_T))) / (one + drho)); @@ -13341,67 +13341,67 @@ __global__ void scaleFC_Fix_comp_27( real* DC, drho_NET = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; vx1_NET = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_NET); - vx2_NET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NET); - vx3_NET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NET); + vx2_NET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NET); + vx3_NET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NET); - //nicht konditioniert - //kxyFromfcNEQ_NET = -three*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (one + drho_NET) - ((vx1_NET*vx2_NET))); + //nicht konditioniert + //kxyFromfcNEQ_NET = -three*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (one + drho_NET) - ((vx1_NET*vx2_NET))); //kyzFromfcNEQ_NET = -three*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (one + drho_NET) - ((vx2_NET*vx3_NET))); //kxzFromfcNEQ_NET = -three*omegaS*((f_BW+f_BSW+f_BNW-f_TW-f_TSW-f_TNW-f_BE-f_BSE-f_BNE+f_TE+f_TSE+f_TNE ) / (one + drho_NET) - ((vx1_NET*vx3_NET))); //kxxMyyFromfcNEQ_NET = -c3o2*omegaS *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (one + drho_NET) - ((vx1_NET*vx1_NET-vx2_NET*vx2_NET))); //kxxMzzFromfcNEQ_NET = -c3o2*omegaS *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (one + drho_NET) - ((vx1_NET*vx1_NET-vx3_NET*vx3_NET))); - kxyFromfcNEQ_NET = -c3o1*omegaS*((((f_SW - f_SE) + (f_NE - f_NW)) + (((f_BSW - f_BSE) + (f_BNE - f_BNW)) + ((f_TSW - f_TSE) + (f_TNE - f_TNW)))) / (c1o1 + drho_NET) - ((vx1_NET*vx2_NET))); - kyzFromfcNEQ_NET = -c3o1*omegaS*((((f_BS - f_TS) + (f_TN - f_BN)) + (((f_BSE - f_TSE) + (f_BSW - f_BNW)) + ((f_TNE - f_BNE) + (f_TNW - f_TSW)))) / (c1o1 + drho_NET) - ((vx2_NET*vx3_NET))); - kxzFromfcNEQ_NET = -c3o1*omegaS*((((f_BW - f_BE) + (f_TE - f_TW)) + (((f_BSW - f_BSE) + (f_BNW - f_BNE)) + ((f_TSE - f_TSW) + (f_TNE - f_TNW)))) / (c1o1 + drho_NET) - ((vx1_NET*vx3_NET))); - kxxMyyFromfcNEQ_NET = -c3o2*omegaS *(((((f_BW - f_BS) + (f_TW - f_TS)) + ((f_BE - f_BN) + (f_TE - f_TN))) + ((f_W - f_S) + (f_E - f_N))) / (c1o1 + drho_NET) - ((vx1_NET*vx1_NET - vx2_NET*vx2_NET))); - kxxMzzFromfcNEQ_NET = -c3o2*omegaS *(((((f_SW - f_BS) + (f_NW - f_BN)) + ((f_SE - f_TS) + (f_NE - f_TN))) + ((f_W - f_B) + (f_E - f_T))) / (c1o1 + drho_NET) - ((vx1_NET*vx1_NET - vx3_NET*vx3_NET))); - kyyMzzFromfcNEQ_NET = -c3o2*omegaS *(((((f_SE - f_BE) + (f_SW - f_BW)) + ((f_NE - f_TE) + (f_NW - f_TW))) + ((f_S - f_B) + (f_N - f_T))) / (c1o1 + drho_NET) - ((vx2_NET*vx2_NET - vx3_NET*vx3_NET))); - - //konditioniert - //vvx = vx1_NET; - //vvy = vx2_NET; - //vvz = vx3_NET; - //drho = drho_NET; - //vx2 = vvx * vvx; - //vy2 = vvy * vvy; - //vz2 = vvz * vvz; - - - //f_E -= c2over27*drho + (drho + one)*(c2o9*(vvx + vx2) + (c1o6 + c1o2*(vvx + vx2))*vy2*vz2 - c1o9*(vy2 + vz2) - c1o3*(vvx + vx2)*(vy2 + vz2)); - //f_W -= c2over27*drho - (drho + one)*((vvx - vx2)*(c2o9 - c1o3*vy2) - (c1o6*vy2 + (vvx - vx2)*(c1o3 - c1o2*vy2))*vz2 + c1o9*(vy2 + vz2)); - //f_N -= c2over27*drho + (drho + one)*(c2o9*(vvy + vy2) + vx2*(c1o6 + c1o2*(vvy + vy2))*vz2 - c1o9*(vx2 + vz2) - c1o3*(vvy + vy2)*(vx2 + vz2)); - //f_S -= c2over27*drho - (drho + one)*((c2o9 - c1o3*vx2)*(vvy - vy2) - (c1o6*vx2 + (c1o3 - c1o2*vx2)*(vvy - vy2))*vz2 + c1o9*(vx2 + vz2)); - //f_T -= c2over27*drho + (drho + one)*(-(c1o9*(vx2 + vy2)) + c2o9*(vvz + vz2) - c1o3*(vx2 + vy2)*(vvz + vz2) + vx2*vy2*(c1o6 + c1o2*(vvz + vz2))); - //f_B -= c2over27*drho - (drho + one)*(c1o9*(vx2 + vy2) + c2o9*(vvz - vz2) - c1o3*(vx2 + vy2)*(vvz - vz2) - vx2*vy2*(c1o6 + c1o2*(-vvz + vz2))); - //f_NE -= c1over54*drho + (drho + one)*(c1o6*(vvx + vx2)*(vvy + vy2) + c1o18*(vvx + vvy + vx2 + vy2) - (c1o36 + c1o4*(vvx + vx2)*(vvy + vy2) + c1o12*(vvx + vvy + vx2 + vy2))*vz2); - //f_SW -= c1over54*drho + (drho + one)*(c1o6*(vvx - vx2)*(vvy - vy2) + c1o18*(-vvx - vvy + vx2 + vy2) - (c1o36 + c1o4*(vvx - vx2)*(vvy - vy2) + c1o12*(-vvx - vvy + vx2 + vy2))*vz2); - //f_SE -= c1over54*drho + (drho + one)*(-(c1o6*(vvx + vx2)*(vvy - vy2)) + c1o18*(vvx - vvy + vx2 + vy2) - (c1o36 - c1o4*(vvx + vx2)*(vvy - vy2) + c1o12*(vvx - vvy + vx2 + vy2))*vz2); - //f_NW -= c1over54*drho + (drho + one)*(-(c1o6*(vvx - vx2)*(vvy + vy2)) + c1o18*(-vvx + vvy + vx2 + vy2) - (c1o36 - c1o4*(vvx - vx2)*(vvy + vy2) + c1o12*(-vvx + vvy + vx2 + vy2))*vz2); - //f_TE -= c1over54*drho + (drho + one)*(c1o6*(vvx + vx2)*(vvz + vz2) + c1o18*(vvx + vvz + vx2 + vz2) - vy2*(c1o36 + c1o4*(vvx + vx2)*(vvz + vz2) + c1o12*(vvx + vvz + vx2 + vz2))); - //f_BW -= c1over54*drho - (drho + one)*(-(c1o6*(vvx - vx2)*(vvz - vz2)) + c1o18*(vvx + vvz - vx2 - vz2) + vy2*(c1o36 + c1o4*(vvx - vx2)*(vvz - vz2) + c1o12*(-vvx - vvz + vx2 + vz2))); - //f_BE -= c1over54*drho + (drho + one)*(-(c1o6*(vvx + vx2)*(vvz - vz2)) + c1o18*(vvx - vvz + vx2 + vz2) - vy2*(c1o36 - c1o4*(vvx + vx2)*(vvz - vz2) + c1o12*(vvx - vvz + vx2 + vz2))); - //f_TW -= c1over54*drho - (drho + one)*(c1o18*(vvx - vvz - vx2 - vz2) + c1o6*(vvx - vx2)*(vvz + vz2) + vy2*(c1o36 - c1o4*(vvx - vx2)*(vvz + vz2) + c1o12*(-vvx + vvz + vx2 + vz2))); - //f_TN -= c1over54*drho + (drho + one)*(c1o6*(vvy + vy2)*(vvz + vz2) + c1o18*(vvy + vvz + vy2 + vz2) - vx2*(c1o36 + c1o4*(vvy + vy2)*(vvz + vz2) + c1o12*(vvy + vvz + vy2 + vz2))); - //f_BS -= c1over54*drho - (drho + one)*(c1o18*(vvy - vvz - vy2 - vz2) + c1o6*(vvy - vy2)*(vvz + vz2) + vx2*(c1o36 - c1o4*(vvy - vy2)*(vvz + vz2) + c1o12*(-vvy + vvz + vy2 + vz2))); - //f_BN -= c1over54*drho + (drho + one)*(-(c1o6*(vvy + vy2)*(vvz - vz2)) + c1o18*(vvy - vvz + vy2 + vz2) - vx2*(c1o36 - c1o4*(vvy + vy2)*(vvz - vz2) + c1o12*(vvy - vvz + vy2 + vz2))); - //f_TS -= c1over54*drho - (drho + one)*(c1o18*(vvy - vvz - vy2 - vz2) + c1o6*(vvy - vy2)*(vvz + vz2) + vx2*(c1o36 - c1o4*(vvy - vy2)*(vvz + vz2) + c1o12*(-vvy + vvz + vy2 + vz2))); - //f_ZERO -= c8over27*drho - (drho + one)*(vx2*vy2*vz2 + c4o9*(vx2 + vy2 + vz2) - c2o3*(vx2*vy2 + (vx2 + vy2)*vz2)); - //f_TNE -= c1over216*drho + (drho + one)*(c1o8*(vvx + vx2)*(vvy + vy2)*(vvz + vz2) + c1o72*(vvx + vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 + vvy*(vvz + vx2 + vz2) + vvx*(vvy + vvz + vy2 + vz2))); - //f_TSW -= c1over216*drho + (drho + one)*(c1o8*(vvx - vx2)*(vvy - vy2)*(vvz + vz2) + c1o72*(-vvx - vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + vvx*(vvy - vvz - vy2 - vz2) + (vx2 + vy2)*vz2 - vvy*(vvz + vx2 + vz2))); - //f_TSE -= c1over216*drho + (drho + one)*(-(c1o8*(vvx + vx2)*(vvy - vy2)*(vvz + vz2)) + c1o72*(vvx - vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 - vvy*(vvz + vx2 + vz2) + vvx*(-vvy + vvz + vy2 + vz2))); - //f_TNW -= c1over216*drho - (drho + one)*(c1o72*(vvx - vvy - vvz - vx2 - vy2 - vz2) + c1o8*(vvx - vx2)*(vvy + vy2)*(vvz + vz2) - c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 + vvy*(vvz + vx2 + vz2) - vvx*(vvy + vvz + vy2 + vz2))); - //f_BNE -= c1over216*drho + (drho + one)*(-(c1o8*(vvx + vx2)*(vvy + vy2)*(vvz - vz2)) + c1o72*(vvx + vvy - vvz + vx2 + vy2 + vz2) + c1o24*(-(vvy*vvz) + vvy*vx2 - vvz*vx2 - vvz*vy2 + vx2*vy2 + (vvy + vx2 + vy2)*vz2 + vvx*(vvy - vvz + vy2 + vz2))); - //f_BSW -= c1over216*drho - (drho + one)*(c1o8*(vvx - vx2)*(vvy - vy2)*(vvz - vz2) + c1o72*(vvx + vvy + vvz - vx2 - vy2 - vz2) + c1o24*(vvz*vx2 + vvz*vy2 - vx2*vy2 - (vx2 + vy2)*vz2 + vvy*(-vvz + vx2 + vz2) + vvx*(-vvy - vvz + vy2 + vz2))); - //f_BSE -= c1over216*drho + (drho + one)*(c1o8*(vvx + vx2)*(vvy - vy2)*(vvz - vz2) + c1o72*(vvx - vvy - vvz + vx2 + vy2 + vz2) + c1o24*(-(vvx*vvy) - vvx*vvz + vvy*vvz - (vvy + vvz)*vx2 + (vvx - vvz + vx2)*vy2 + (vvx - vvy + vx2 + vy2)*vz2)); - //f_BNW -= c1over216*drho - (drho + one)*(-(c1o8*(vvx - vx2)*(vvy + vy2)*(vvz - vz2)) + c1o72*(vvx - vvy + vvz - vx2 - vy2 - vz2) + c1o24*(vvy*vvz - vvy*vx2 + vvz*vx2 + vvz*vy2 - vx2*vy2 - (vvy + vx2 + vy2)*vz2 + vvx*(vvy - vvz + vy2 + vz2))); - - //kxyFromfcNEQ_NET = -three*omegaS*((((f_SW - f_SE) + (f_NE - f_NW)) + (((f_BSW - f_BSE) + (f_BNE - f_BNW)) + ((f_TSW - f_TSE) + (f_TNE - f_TNW)))) / (one + drho)); - //kyzFromfcNEQ_NET = -three*omegaS*((((f_BS - f_TS) + (f_TN - f_BN)) + (((f_BSE - f_TSE) + (f_BSW - f_BNW)) + ((f_TNE - f_BNE) + (f_TNW - f_TSW)))) / (one + drho)); - //kxzFromfcNEQ_NET = -three*omegaS*((((f_BW - f_BE) + (f_TE - f_TW)) + (((f_BSW - f_BSE) + (f_BNW - f_BNE)) + ((f_TSE - f_TSW) + (f_TNE - f_TNW)))) / (one + drho)); - //kxxMyyFromfcNEQ_NET = -c3o2*omegaS *(((((f_BW - f_BS) + (f_TW - f_TS)) + ((f_BE - f_BN) + (f_TE - f_TN))) + ((f_W - f_S) + (f_E - f_N))) / (one + drho)); - //kxxMzzFromfcNEQ_NET = -c3o2*omegaS *(((((f_SW - f_BS) + (f_NW - f_BN)) + ((f_SE - f_TS) + (f_NE - f_TN))) + ((f_W - f_B) + (f_E - f_T))) / (one + drho)); - //kyyMzzFromfcNEQ_NET = -c3o2*omegaS *(((((f_SE - f_BE) + (f_SW - f_BW)) + ((f_NE - f_TE) + (f_NW - f_TW))) + ((f_S - f_B) + (f_N - f_T))) / (one + drho)); + kxyFromfcNEQ_NET = -c3o1*omegaS*((((f_SW - f_SE) + (f_NE - f_NW)) + (((f_BSW - f_BSE) + (f_BNE - f_BNW)) + ((f_TSW - f_TSE) + (f_TNE - f_TNW)))) / (c1o1 + drho_NET) - ((vx1_NET*vx2_NET))); + kyzFromfcNEQ_NET = -c3o1*omegaS*((((f_BS - f_TS) + (f_TN - f_BN)) + (((f_BSE - f_TSE) + (f_BSW - f_BNW)) + ((f_TNE - f_BNE) + (f_TNW - f_TSW)))) / (c1o1 + drho_NET) - ((vx2_NET*vx3_NET))); + kxzFromfcNEQ_NET = -c3o1*omegaS*((((f_BW - f_BE) + (f_TE - f_TW)) + (((f_BSW - f_BSE) + (f_BNW - f_BNE)) + ((f_TSE - f_TSW) + (f_TNE - f_TNW)))) / (c1o1 + drho_NET) - ((vx1_NET*vx3_NET))); + kxxMyyFromfcNEQ_NET = -c3o2*omegaS *(((((f_BW - f_BS) + (f_TW - f_TS)) + ((f_BE - f_BN) + (f_TE - f_TN))) + ((f_W - f_S) + (f_E - f_N))) / (c1o1 + drho_NET) - ((vx1_NET*vx1_NET - vx2_NET*vx2_NET))); + kxxMzzFromfcNEQ_NET = -c3o2*omegaS *(((((f_SW - f_BS) + (f_NW - f_BN)) + ((f_SE - f_TS) + (f_NE - f_TN))) + ((f_W - f_B) + (f_E - f_T))) / (c1o1 + drho_NET) - ((vx1_NET*vx1_NET - vx3_NET*vx3_NET))); + kyyMzzFromfcNEQ_NET = -c3o2*omegaS *(((((f_SE - f_BE) + (f_SW - f_BW)) + ((f_NE - f_TE) + (f_NW - f_TW))) + ((f_S - f_B) + (f_N - f_T))) / (c1o1 + drho_NET) - ((vx2_NET*vx2_NET - vx3_NET*vx3_NET))); + + //konditioniert + //vvx = vx1_NET; + //vvy = vx2_NET; + //vvz = vx3_NET; + //drho = drho_NET; + //vx2 = vvx * vvx; + //vy2 = vvy * vvy; + //vz2 = vvz * vvz; + + + //f_E -= c2over27*drho + (drho + one)*(c2o9*(vvx + vx2) + (c1o6 + c1o2*(vvx + vx2))*vy2*vz2 - c1o9*(vy2 + vz2) - c1o3*(vvx + vx2)*(vy2 + vz2)); + //f_W -= c2over27*drho - (drho + one)*((vvx - vx2)*(c2o9 - c1o3*vy2) - (c1o6*vy2 + (vvx - vx2)*(c1o3 - c1o2*vy2))*vz2 + c1o9*(vy2 + vz2)); + //f_N -= c2over27*drho + (drho + one)*(c2o9*(vvy + vy2) + vx2*(c1o6 + c1o2*(vvy + vy2))*vz2 - c1o9*(vx2 + vz2) - c1o3*(vvy + vy2)*(vx2 + vz2)); + //f_S -= c2over27*drho - (drho + one)*((c2o9 - c1o3*vx2)*(vvy - vy2) - (c1o6*vx2 + (c1o3 - c1o2*vx2)*(vvy - vy2))*vz2 + c1o9*(vx2 + vz2)); + //f_T -= c2over27*drho + (drho + one)*(-(c1o9*(vx2 + vy2)) + c2o9*(vvz + vz2) - c1o3*(vx2 + vy2)*(vvz + vz2) + vx2*vy2*(c1o6 + c1o2*(vvz + vz2))); + //f_B -= c2over27*drho - (drho + one)*(c1o9*(vx2 + vy2) + c2o9*(vvz - vz2) - c1o3*(vx2 + vy2)*(vvz - vz2) - vx2*vy2*(c1o6 + c1o2*(-vvz + vz2))); + //f_NE -= c1over54*drho + (drho + one)*(c1o6*(vvx + vx2)*(vvy + vy2) + c1o18*(vvx + vvy + vx2 + vy2) - (c1o36 + c1o4*(vvx + vx2)*(vvy + vy2) + c1o12*(vvx + vvy + vx2 + vy2))*vz2); + //f_SW -= c1over54*drho + (drho + one)*(c1o6*(vvx - vx2)*(vvy - vy2) + c1o18*(-vvx - vvy + vx2 + vy2) - (c1o36 + c1o4*(vvx - vx2)*(vvy - vy2) + c1o12*(-vvx - vvy + vx2 + vy2))*vz2); + //f_SE -= c1over54*drho + (drho + one)*(-(c1o6*(vvx + vx2)*(vvy - vy2)) + c1o18*(vvx - vvy + vx2 + vy2) - (c1o36 - c1o4*(vvx + vx2)*(vvy - vy2) + c1o12*(vvx - vvy + vx2 + vy2))*vz2); + //f_NW -= c1over54*drho + (drho + one)*(-(c1o6*(vvx - vx2)*(vvy + vy2)) + c1o18*(-vvx + vvy + vx2 + vy2) - (c1o36 - c1o4*(vvx - vx2)*(vvy + vy2) + c1o12*(-vvx + vvy + vx2 + vy2))*vz2); + //f_TE -= c1over54*drho + (drho + one)*(c1o6*(vvx + vx2)*(vvz + vz2) + c1o18*(vvx + vvz + vx2 + vz2) - vy2*(c1o36 + c1o4*(vvx + vx2)*(vvz + vz2) + c1o12*(vvx + vvz + vx2 + vz2))); + //f_BW -= c1over54*drho - (drho + one)*(-(c1o6*(vvx - vx2)*(vvz - vz2)) + c1o18*(vvx + vvz - vx2 - vz2) + vy2*(c1o36 + c1o4*(vvx - vx2)*(vvz - vz2) + c1o12*(-vvx - vvz + vx2 + vz2))); + //f_BE -= c1over54*drho + (drho + one)*(-(c1o6*(vvx + vx2)*(vvz - vz2)) + c1o18*(vvx - vvz + vx2 + vz2) - vy2*(c1o36 - c1o4*(vvx + vx2)*(vvz - vz2) + c1o12*(vvx - vvz + vx2 + vz2))); + //f_TW -= c1over54*drho - (drho + one)*(c1o18*(vvx - vvz - vx2 - vz2) + c1o6*(vvx - vx2)*(vvz + vz2) + vy2*(c1o36 - c1o4*(vvx - vx2)*(vvz + vz2) + c1o12*(-vvx + vvz + vx2 + vz2))); + //f_TN -= c1over54*drho + (drho + one)*(c1o6*(vvy + vy2)*(vvz + vz2) + c1o18*(vvy + vvz + vy2 + vz2) - vx2*(c1o36 + c1o4*(vvy + vy2)*(vvz + vz2) + c1o12*(vvy + vvz + vy2 + vz2))); + //f_BS -= c1over54*drho - (drho + one)*(c1o18*(vvy - vvz - vy2 - vz2) + c1o6*(vvy - vy2)*(vvz + vz2) + vx2*(c1o36 - c1o4*(vvy - vy2)*(vvz + vz2) + c1o12*(-vvy + vvz + vy2 + vz2))); + //f_BN -= c1over54*drho + (drho + one)*(-(c1o6*(vvy + vy2)*(vvz - vz2)) + c1o18*(vvy - vvz + vy2 + vz2) - vx2*(c1o36 - c1o4*(vvy + vy2)*(vvz - vz2) + c1o12*(vvy - vvz + vy2 + vz2))); + //f_TS -= c1over54*drho - (drho + one)*(c1o18*(vvy - vvz - vy2 - vz2) + c1o6*(vvy - vy2)*(vvz + vz2) + vx2*(c1o36 - c1o4*(vvy - vy2)*(vvz + vz2) + c1o12*(-vvy + vvz + vy2 + vz2))); + //f_ZERO -= c8over27*drho - (drho + one)*(vx2*vy2*vz2 + c4o9*(vx2 + vy2 + vz2) - c2o3*(vx2*vy2 + (vx2 + vy2)*vz2)); + //f_TNE -= c1over216*drho + (drho + one)*(c1o8*(vvx + vx2)*(vvy + vy2)*(vvz + vz2) + c1o72*(vvx + vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 + vvy*(vvz + vx2 + vz2) + vvx*(vvy + vvz + vy2 + vz2))); + //f_TSW -= c1over216*drho + (drho + one)*(c1o8*(vvx - vx2)*(vvy - vy2)*(vvz + vz2) + c1o72*(-vvx - vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + vvx*(vvy - vvz - vy2 - vz2) + (vx2 + vy2)*vz2 - vvy*(vvz + vx2 + vz2))); + //f_TSE -= c1over216*drho + (drho + one)*(-(c1o8*(vvx + vx2)*(vvy - vy2)*(vvz + vz2)) + c1o72*(vvx - vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 - vvy*(vvz + vx2 + vz2) + vvx*(-vvy + vvz + vy2 + vz2))); + //f_TNW -= c1over216*drho - (drho + one)*(c1o72*(vvx - vvy - vvz - vx2 - vy2 - vz2) + c1o8*(vvx - vx2)*(vvy + vy2)*(vvz + vz2) - c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 + vvy*(vvz + vx2 + vz2) - vvx*(vvy + vvz + vy2 + vz2))); + //f_BNE -= c1over216*drho + (drho + one)*(-(c1o8*(vvx + vx2)*(vvy + vy2)*(vvz - vz2)) + c1o72*(vvx + vvy - vvz + vx2 + vy2 + vz2) + c1o24*(-(vvy*vvz) + vvy*vx2 - vvz*vx2 - vvz*vy2 + vx2*vy2 + (vvy + vx2 + vy2)*vz2 + vvx*(vvy - vvz + vy2 + vz2))); + //f_BSW -= c1over216*drho - (drho + one)*(c1o8*(vvx - vx2)*(vvy - vy2)*(vvz - vz2) + c1o72*(vvx + vvy + vvz - vx2 - vy2 - vz2) + c1o24*(vvz*vx2 + vvz*vy2 - vx2*vy2 - (vx2 + vy2)*vz2 + vvy*(-vvz + vx2 + vz2) + vvx*(-vvy - vvz + vy2 + vz2))); + //f_BSE -= c1over216*drho + (drho + one)*(c1o8*(vvx + vx2)*(vvy - vy2)*(vvz - vz2) + c1o72*(vvx - vvy - vvz + vx2 + vy2 + vz2) + c1o24*(-(vvx*vvy) - vvx*vvz + vvy*vvz - (vvy + vvz)*vx2 + (vvx - vvz + vx2)*vy2 + (vvx - vvy + vx2 + vy2)*vz2)); + //f_BNW -= c1over216*drho - (drho + one)*(-(c1o8*(vvx - vx2)*(vvy + vy2)*(vvz - vz2)) + c1o72*(vvx - vvy + vvz - vx2 - vy2 - vz2) + c1o24*(vvy*vvz - vvy*vx2 + vvz*vx2 + vvz*vy2 - vx2*vy2 - (vvy + vx2 + vy2)*vz2 + vvx*(vvy - vvz + vy2 + vz2))); + + //kxyFromfcNEQ_NET = -three*omegaS*((((f_SW - f_SE) + (f_NE - f_NW)) + (((f_BSW - f_BSE) + (f_BNE - f_BNW)) + ((f_TSW - f_TSE) + (f_TNE - f_TNW)))) / (one + drho)); + //kyzFromfcNEQ_NET = -three*omegaS*((((f_BS - f_TS) + (f_TN - f_BN)) + (((f_BSE - f_TSE) + (f_BSW - f_BNW)) + ((f_TNE - f_BNE) + (f_TNW - f_TSW)))) / (one + drho)); + //kxzFromfcNEQ_NET = -three*omegaS*((((f_BW - f_BE) + (f_TE - f_TW)) + (((f_BSW - f_BSE) + (f_BNW - f_BNE)) + ((f_TSE - f_TSW) + (f_TNE - f_TNW)))) / (one + drho)); + //kxxMyyFromfcNEQ_NET = -c3o2*omegaS *(((((f_BW - f_BS) + (f_TW - f_TS)) + ((f_BE - f_BN) + (f_TE - f_TN))) + ((f_W - f_S) + (f_E - f_N))) / (one + drho)); + //kxxMzzFromfcNEQ_NET = -c3o2*omegaS *(((((f_SW - f_BS) + (f_NW - f_BN)) + ((f_SE - f_TS) + (f_NE - f_TN))) + ((f_W - f_B) + (f_E - f_T))) / (one + drho)); + //kyyMzzFromfcNEQ_NET = -c3o2*omegaS *(((((f_SE - f_BE) + (f_SW - f_BW)) + ((f_NE - f_TE) + (f_NW - f_TW))) + ((f_S - f_B) + (f_N - f_T))) / (one + drho)); ////////////////////////////////////////////////////////////////////////// //NEB// @@ -13446,271 +13446,271 @@ __global__ void scaleFC_Fix_comp_27( real* DC, drho_NEB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; vx1_NEB = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_NEB); - vx2_NEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NEB); - vx3_NEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NEB); - - //nicht konditioniert - //kxyFromfcNEQ_NEB = -three*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (one + drho_NEB) - ((vx1_NEB*vx2_NEB))); - //kyzFromfcNEQ_NEB = -three*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (one + drho_NEB) - ((vx2_NEB*vx3_NEB))); - //kxzFromfcNEQ_NEB = -three*omegaS*((f_BW+f_BSW+f_BNW-f_TW-f_TSW-f_TNW-f_BE-f_BSE-f_BNE+f_TE+f_TSE+f_TNE ) / (one + drho_NEB) - ((vx1_NEB*vx3_NEB))); - //kxxMyyFromfcNEQ_NEB = -c3o2*omegaS *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (one + drho_NEB) - ((vx1_NEB*vx1_NEB-vx2_NEB*vx2_NEB))); - //kxxMzzFromfcNEQ_NEB = -c3o2*omegaS *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (one + drho_NEB) - ((vx1_NEB*vx1_NEB-vx3_NEB*vx3_NEB))); - - kxyFromfcNEQ_NEB = -c3o1*omegaS*((((f_SW - f_SE) + (f_NE - f_NW)) + (((f_BSW - f_BSE) + (f_BNE - f_BNW)) + ((f_TSW - f_TSE) + (f_TNE - f_TNW)))) / (c1o1 + drho_NEB) - ((vx1_NEB*vx2_NEB))); - kyzFromfcNEQ_NEB = -c3o1*omegaS*((((f_BS - f_TS) + (f_TN - f_BN)) + (((f_BSE - f_TSE) + (f_BSW - f_BNW)) + ((f_TNE - f_BNE) + (f_TNW - f_TSW)))) / (c1o1 + drho_NEB) - ((vx2_NEB*vx3_NEB))); - kxzFromfcNEQ_NEB = -c3o1*omegaS*((((f_BW - f_BE) + (f_TE - f_TW)) + (((f_BSW - f_BSE) + (f_BNW - f_BNE)) + ((f_TSE - f_TSW) + (f_TNE - f_TNW)))) / (c1o1 + drho_NEB) - ((vx1_NEB*vx3_NEB))); - kxxMyyFromfcNEQ_NEB = -c3o2*omegaS *(((((f_BW - f_BS) + (f_TW - f_TS)) + ((f_BE - f_BN) + (f_TE - f_TN))) + ((f_W - f_S) + (f_E - f_N))) / (c1o1 + drho_NEB) - ((vx1_NEB*vx1_NEB - vx2_NEB*vx2_NEB))); - kxxMzzFromfcNEQ_NEB = -c3o2*omegaS *(((((f_SW - f_BS) + (f_NW - f_BN)) + ((f_SE - f_TS) + (f_NE - f_TN))) + ((f_W - f_B) + (f_E - f_T))) / (c1o1 + drho_NEB) - ((vx1_NEB*vx1_NEB - vx3_NEB*vx3_NEB))); - kyyMzzFromfcNEQ_NEB = -c3o2*omegaS *(((((f_SE - f_BE) + (f_SW - f_BW)) + ((f_NE - f_TE) + (f_NW - f_TW))) + ((f_S - f_B) + (f_N - f_T))) / (c1o1 + drho_NEB) - ((vx2_NEB*vx2_NEB - vx3_NEB*vx3_NEB))); - - //konditioniert - //vvx = vx1_NEB; - //vvy = vx2_NEB; - //vvz = vx3_NEB; - //drho = drho_NEB; - //vx2 = vvx * vvx; - //vy2 = vvy * vvy; - //vz2 = vvz * vvz; - - - //f_E -= c2over27*drho + (drho + one)*(c2o9*(vvx + vx2) + (c1o6 + c1o2*(vvx + vx2))*vy2*vz2 - c1o9*(vy2 + vz2) - c1o3*(vvx + vx2)*(vy2 + vz2)); - //f_W -= c2over27*drho - (drho + one)*((vvx - vx2)*(c2o9 - c1o3*vy2) - (c1o6*vy2 + (vvx - vx2)*(c1o3 - c1o2*vy2))*vz2 + c1o9*(vy2 + vz2)); - //f_N -= c2over27*drho + (drho + one)*(c2o9*(vvy + vy2) + vx2*(c1o6 + c1o2*(vvy + vy2))*vz2 - c1o9*(vx2 + vz2) - c1o3*(vvy + vy2)*(vx2 + vz2)); - //f_S -= c2over27*drho - (drho + one)*((c2o9 - c1o3*vx2)*(vvy - vy2) - (c1o6*vx2 + (c1o3 - c1o2*vx2)*(vvy - vy2))*vz2 + c1o9*(vx2 + vz2)); - //f_T -= c2over27*drho + (drho + one)*(-(c1o9*(vx2 + vy2)) + c2o9*(vvz + vz2) - c1o3*(vx2 + vy2)*(vvz + vz2) + vx2*vy2*(c1o6 + c1o2*(vvz + vz2))); - //f_B -= c2over27*drho - (drho + one)*(c1o9*(vx2 + vy2) + c2o9*(vvz - vz2) - c1o3*(vx2 + vy2)*(vvz - vz2) - vx2*vy2*(c1o6 + c1o2*(-vvz + vz2))); - //f_NE -= c1over54*drho + (drho + one)*(c1o6*(vvx + vx2)*(vvy + vy2) + c1o18*(vvx + vvy + vx2 + vy2) - (c1o36 + c1o4*(vvx + vx2)*(vvy + vy2) + c1o12*(vvx + vvy + vx2 + vy2))*vz2); - //f_SW -= c1over54*drho + (drho + one)*(c1o6*(vvx - vx2)*(vvy - vy2) + c1o18*(-vvx - vvy + vx2 + vy2) - (c1o36 + c1o4*(vvx - vx2)*(vvy - vy2) + c1o12*(-vvx - vvy + vx2 + vy2))*vz2); - //f_SE -= c1over54*drho + (drho + one)*(-(c1o6*(vvx + vx2)*(vvy - vy2)) + c1o18*(vvx - vvy + vx2 + vy2) - (c1o36 - c1o4*(vvx + vx2)*(vvy - vy2) + c1o12*(vvx - vvy + vx2 + vy2))*vz2); - //f_NW -= c1over54*drho + (drho + one)*(-(c1o6*(vvx - vx2)*(vvy + vy2)) + c1o18*(-vvx + vvy + vx2 + vy2) - (c1o36 - c1o4*(vvx - vx2)*(vvy + vy2) + c1o12*(-vvx + vvy + vx2 + vy2))*vz2); - //f_TE -= c1over54*drho + (drho + one)*(c1o6*(vvx + vx2)*(vvz + vz2) + c1o18*(vvx + vvz + vx2 + vz2) - vy2*(c1o36 + c1o4*(vvx + vx2)*(vvz + vz2) + c1o12*(vvx + vvz + vx2 + vz2))); - //f_BW -= c1over54*drho - (drho + one)*(-(c1o6*(vvx - vx2)*(vvz - vz2)) + c1o18*(vvx + vvz - vx2 - vz2) + vy2*(c1o36 + c1o4*(vvx - vx2)*(vvz - vz2) + c1o12*(-vvx - vvz + vx2 + vz2))); - //f_BE -= c1over54*drho + (drho + one)*(-(c1o6*(vvx + vx2)*(vvz - vz2)) + c1o18*(vvx - vvz + vx2 + vz2) - vy2*(c1o36 - c1o4*(vvx + vx2)*(vvz - vz2) + c1o12*(vvx - vvz + vx2 + vz2))); - //f_TW -= c1over54*drho - (drho + one)*(c1o18*(vvx - vvz - vx2 - vz2) + c1o6*(vvx - vx2)*(vvz + vz2) + vy2*(c1o36 - c1o4*(vvx - vx2)*(vvz + vz2) + c1o12*(-vvx + vvz + vx2 + vz2))); - //f_TN -= c1over54*drho + (drho + one)*(c1o6*(vvy + vy2)*(vvz + vz2) + c1o18*(vvy + vvz + vy2 + vz2) - vx2*(c1o36 + c1o4*(vvy + vy2)*(vvz + vz2) + c1o12*(vvy + vvz + vy2 + vz2))); - //f_BS -= c1over54*drho - (drho + one)*(c1o18*(vvy - vvz - vy2 - vz2) + c1o6*(vvy - vy2)*(vvz + vz2) + vx2*(c1o36 - c1o4*(vvy - vy2)*(vvz + vz2) + c1o12*(-vvy + vvz + vy2 + vz2))); - //f_BN -= c1over54*drho + (drho + one)*(-(c1o6*(vvy + vy2)*(vvz - vz2)) + c1o18*(vvy - vvz + vy2 + vz2) - vx2*(c1o36 - c1o4*(vvy + vy2)*(vvz - vz2) + c1o12*(vvy - vvz + vy2 + vz2))); - //f_TS -= c1over54*drho - (drho + one)*(c1o18*(vvy - vvz - vy2 - vz2) + c1o6*(vvy - vy2)*(vvz + vz2) + vx2*(c1o36 - c1o4*(vvy - vy2)*(vvz + vz2) + c1o12*(-vvy + vvz + vy2 + vz2))); - //f_ZERO -= c8over27*drho - (drho + one)*(vx2*vy2*vz2 + c4o9*(vx2 + vy2 + vz2) - c2o3*(vx2*vy2 + (vx2 + vy2)*vz2)); - //f_TNE -= c1over216*drho + (drho + one)*(c1o8*(vvx + vx2)*(vvy + vy2)*(vvz + vz2) + c1o72*(vvx + vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 + vvy*(vvz + vx2 + vz2) + vvx*(vvy + vvz + vy2 + vz2))); - //f_TSW -= c1over216*drho + (drho + one)*(c1o8*(vvx - vx2)*(vvy - vy2)*(vvz + vz2) + c1o72*(-vvx - vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + vvx*(vvy - vvz - vy2 - vz2) + (vx2 + vy2)*vz2 - vvy*(vvz + vx2 + vz2))); - //f_TSE -= c1over216*drho + (drho + one)*(-(c1o8*(vvx + vx2)*(vvy - vy2)*(vvz + vz2)) + c1o72*(vvx - vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 - vvy*(vvz + vx2 + vz2) + vvx*(-vvy + vvz + vy2 + vz2))); - //f_TNW -= c1over216*drho - (drho + one)*(c1o72*(vvx - vvy - vvz - vx2 - vy2 - vz2) + c1o8*(vvx - vx2)*(vvy + vy2)*(vvz + vz2) - c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 + vvy*(vvz + vx2 + vz2) - vvx*(vvy + vvz + vy2 + vz2))); - //f_BNE -= c1over216*drho + (drho + one)*(-(c1o8*(vvx + vx2)*(vvy + vy2)*(vvz - vz2)) + c1o72*(vvx + vvy - vvz + vx2 + vy2 + vz2) + c1o24*(-(vvy*vvz) + vvy*vx2 - vvz*vx2 - vvz*vy2 + vx2*vy2 + (vvy + vx2 + vy2)*vz2 + vvx*(vvy - vvz + vy2 + vz2))); - //f_BSW -= c1over216*drho - (drho + one)*(c1o8*(vvx - vx2)*(vvy - vy2)*(vvz - vz2) + c1o72*(vvx + vvy + vvz - vx2 - vy2 - vz2) + c1o24*(vvz*vx2 + vvz*vy2 - vx2*vy2 - (vx2 + vy2)*vz2 + vvy*(-vvz + vx2 + vz2) + vvx*(-vvy - vvz + vy2 + vz2))); - //f_BSE -= c1over216*drho + (drho + one)*(c1o8*(vvx + vx2)*(vvy - vy2)*(vvz - vz2) + c1o72*(vvx - vvy - vvz + vx2 + vy2 + vz2) + c1o24*(-(vvx*vvy) - vvx*vvz + vvy*vvz - (vvy + vvz)*vx2 + (vvx - vvz + vx2)*vy2 + (vvx - vvy + vx2 + vy2)*vz2)); - //f_BNW -= c1over216*drho - (drho + one)*(-(c1o8*(vvx - vx2)*(vvy + vy2)*(vvz - vz2)) + c1o72*(vvx - vvy + vvz - vx2 - vy2 - vz2) + c1o24*(vvy*vvz - vvy*vx2 + vvz*vx2 + vvz*vy2 - vx2*vy2 - (vvy + vx2 + vy2)*vz2 + vvx*(vvy - vvz + vy2 + vz2))); - - //kxyFromfcNEQ_NEB = -three*omegaS*((((f_SW - f_SE) + (f_NE - f_NW)) + (((f_BSW - f_BSE) + (f_BNE - f_BNW)) + ((f_TSW - f_TSE) + (f_TNE - f_TNW))) ) / (one + drho)); - //kyzFromfcNEQ_NEB = -three*omegaS*((((f_BS - f_TS) + (f_TN - f_BN)) + (((f_BSE - f_TSE) + (f_BSW - f_BNW)) + ((f_TNE - f_BNE) + (f_TNW - f_TSW))) ) / (one + drho)); - //kxzFromfcNEQ_NEB = -three*omegaS*((((f_BW - f_BE) + (f_TE - f_TW)) + (((f_BSW - f_BSE) + (f_BNW - f_BNE)) + ((f_TSE - f_TSW) + (f_TNE - f_TNW))) ) / (one + drho)); - //kxxMyyFromfcNEQ_NEB = -c3o2*omegaS *(((((f_BW - f_BS) + (f_TW - f_TS)) + ((f_BE - f_BN) + (f_TE - f_TN))) + ((f_W - f_S) + (f_E - f_N))) / (one + drho)); - //kxxMzzFromfcNEQ_NEB = -c3o2*omegaS *(((((f_SW - f_BS) + (f_NW - f_BN)) + ((f_SE - f_TS) + (f_NE - f_TN))) + ((f_W - f_B) + (f_E - f_T))) / (one + drho)); - //kyyMzzFromfcNEQ_NEB = -c3o2*omegaS *(((((f_SE - f_BE) + (f_SW - f_BW)) + ((f_NE - f_TE) + (f_NW - f_TW))) + ((f_S - f_B) + (f_N - f_T))) / (one + drho)); + vx2_NEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NEB); + vx3_NEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NEB); + + //nicht konditioniert + //kxyFromfcNEQ_NEB = -three*omegaS*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (one + drho_NEB) - ((vx1_NEB*vx2_NEB))); + //kyzFromfcNEQ_NEB = -three*omegaS*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (one + drho_NEB) - ((vx2_NEB*vx3_NEB))); + //kxzFromfcNEQ_NEB = -three*omegaS*((f_BW+f_BSW+f_BNW-f_TW-f_TSW-f_TNW-f_BE-f_BSE-f_BNE+f_TE+f_TSE+f_TNE ) / (one + drho_NEB) - ((vx1_NEB*vx3_NEB))); + //kxxMyyFromfcNEQ_NEB = -c3o2*omegaS *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (one + drho_NEB) - ((vx1_NEB*vx1_NEB-vx2_NEB*vx2_NEB))); + //kxxMzzFromfcNEQ_NEB = -c3o2*omegaS *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (one + drho_NEB) - ((vx1_NEB*vx1_NEB-vx3_NEB*vx3_NEB))); + + kxyFromfcNEQ_NEB = -c3o1*omegaS*((((f_SW - f_SE) + (f_NE - f_NW)) + (((f_BSW - f_BSE) + (f_BNE - f_BNW)) + ((f_TSW - f_TSE) + (f_TNE - f_TNW)))) / (c1o1 + drho_NEB) - ((vx1_NEB*vx2_NEB))); + kyzFromfcNEQ_NEB = -c3o1*omegaS*((((f_BS - f_TS) + (f_TN - f_BN)) + (((f_BSE - f_TSE) + (f_BSW - f_BNW)) + ((f_TNE - f_BNE) + (f_TNW - f_TSW)))) / (c1o1 + drho_NEB) - ((vx2_NEB*vx3_NEB))); + kxzFromfcNEQ_NEB = -c3o1*omegaS*((((f_BW - f_BE) + (f_TE - f_TW)) + (((f_BSW - f_BSE) + (f_BNW - f_BNE)) + ((f_TSE - f_TSW) + (f_TNE - f_TNW)))) / (c1o1 + drho_NEB) - ((vx1_NEB*vx3_NEB))); + kxxMyyFromfcNEQ_NEB = -c3o2*omegaS *(((((f_BW - f_BS) + (f_TW - f_TS)) + ((f_BE - f_BN) + (f_TE - f_TN))) + ((f_W - f_S) + (f_E - f_N))) / (c1o1 + drho_NEB) - ((vx1_NEB*vx1_NEB - vx2_NEB*vx2_NEB))); + kxxMzzFromfcNEQ_NEB = -c3o2*omegaS *(((((f_SW - f_BS) + (f_NW - f_BN)) + ((f_SE - f_TS) + (f_NE - f_TN))) + ((f_W - f_B) + (f_E - f_T))) / (c1o1 + drho_NEB) - ((vx1_NEB*vx1_NEB - vx3_NEB*vx3_NEB))); + kyyMzzFromfcNEQ_NEB = -c3o2*omegaS *(((((f_SE - f_BE) + (f_SW - f_BW)) + ((f_NE - f_TE) + (f_NW - f_TW))) + ((f_S - f_B) + (f_N - f_T))) / (c1o1 + drho_NEB) - ((vx2_NEB*vx2_NEB - vx3_NEB*vx3_NEB))); + + //konditioniert + //vvx = vx1_NEB; + //vvy = vx2_NEB; + //vvz = vx3_NEB; + //drho = drho_NEB; + //vx2 = vvx * vvx; + //vy2 = vvy * vvy; + //vz2 = vvz * vvz; + + + //f_E -= c2over27*drho + (drho + one)*(c2o9*(vvx + vx2) + (c1o6 + c1o2*(vvx + vx2))*vy2*vz2 - c1o9*(vy2 + vz2) - c1o3*(vvx + vx2)*(vy2 + vz2)); + //f_W -= c2over27*drho - (drho + one)*((vvx - vx2)*(c2o9 - c1o3*vy2) - (c1o6*vy2 + (vvx - vx2)*(c1o3 - c1o2*vy2))*vz2 + c1o9*(vy2 + vz2)); + //f_N -= c2over27*drho + (drho + one)*(c2o9*(vvy + vy2) + vx2*(c1o6 + c1o2*(vvy + vy2))*vz2 - c1o9*(vx2 + vz2) - c1o3*(vvy + vy2)*(vx2 + vz2)); + //f_S -= c2over27*drho - (drho + one)*((c2o9 - c1o3*vx2)*(vvy - vy2) - (c1o6*vx2 + (c1o3 - c1o2*vx2)*(vvy - vy2))*vz2 + c1o9*(vx2 + vz2)); + //f_T -= c2over27*drho + (drho + one)*(-(c1o9*(vx2 + vy2)) + c2o9*(vvz + vz2) - c1o3*(vx2 + vy2)*(vvz + vz2) + vx2*vy2*(c1o6 + c1o2*(vvz + vz2))); + //f_B -= c2over27*drho - (drho + one)*(c1o9*(vx2 + vy2) + c2o9*(vvz - vz2) - c1o3*(vx2 + vy2)*(vvz - vz2) - vx2*vy2*(c1o6 + c1o2*(-vvz + vz2))); + //f_NE -= c1over54*drho + (drho + one)*(c1o6*(vvx + vx2)*(vvy + vy2) + c1o18*(vvx + vvy + vx2 + vy2) - (c1o36 + c1o4*(vvx + vx2)*(vvy + vy2) + c1o12*(vvx + vvy + vx2 + vy2))*vz2); + //f_SW -= c1over54*drho + (drho + one)*(c1o6*(vvx - vx2)*(vvy - vy2) + c1o18*(-vvx - vvy + vx2 + vy2) - (c1o36 + c1o4*(vvx - vx2)*(vvy - vy2) + c1o12*(-vvx - vvy + vx2 + vy2))*vz2); + //f_SE -= c1over54*drho + (drho + one)*(-(c1o6*(vvx + vx2)*(vvy - vy2)) + c1o18*(vvx - vvy + vx2 + vy2) - (c1o36 - c1o4*(vvx + vx2)*(vvy - vy2) + c1o12*(vvx - vvy + vx2 + vy2))*vz2); + //f_NW -= c1over54*drho + (drho + one)*(-(c1o6*(vvx - vx2)*(vvy + vy2)) + c1o18*(-vvx + vvy + vx2 + vy2) - (c1o36 - c1o4*(vvx - vx2)*(vvy + vy2) + c1o12*(-vvx + vvy + vx2 + vy2))*vz2); + //f_TE -= c1over54*drho + (drho + one)*(c1o6*(vvx + vx2)*(vvz + vz2) + c1o18*(vvx + vvz + vx2 + vz2) - vy2*(c1o36 + c1o4*(vvx + vx2)*(vvz + vz2) + c1o12*(vvx + vvz + vx2 + vz2))); + //f_BW -= c1over54*drho - (drho + one)*(-(c1o6*(vvx - vx2)*(vvz - vz2)) + c1o18*(vvx + vvz - vx2 - vz2) + vy2*(c1o36 + c1o4*(vvx - vx2)*(vvz - vz2) + c1o12*(-vvx - vvz + vx2 + vz2))); + //f_BE -= c1over54*drho + (drho + one)*(-(c1o6*(vvx + vx2)*(vvz - vz2)) + c1o18*(vvx - vvz + vx2 + vz2) - vy2*(c1o36 - c1o4*(vvx + vx2)*(vvz - vz2) + c1o12*(vvx - vvz + vx2 + vz2))); + //f_TW -= c1over54*drho - (drho + one)*(c1o18*(vvx - vvz - vx2 - vz2) + c1o6*(vvx - vx2)*(vvz + vz2) + vy2*(c1o36 - c1o4*(vvx - vx2)*(vvz + vz2) + c1o12*(-vvx + vvz + vx2 + vz2))); + //f_TN -= c1over54*drho + (drho + one)*(c1o6*(vvy + vy2)*(vvz + vz2) + c1o18*(vvy + vvz + vy2 + vz2) - vx2*(c1o36 + c1o4*(vvy + vy2)*(vvz + vz2) + c1o12*(vvy + vvz + vy2 + vz2))); + //f_BS -= c1over54*drho - (drho + one)*(c1o18*(vvy - vvz - vy2 - vz2) + c1o6*(vvy - vy2)*(vvz + vz2) + vx2*(c1o36 - c1o4*(vvy - vy2)*(vvz + vz2) + c1o12*(-vvy + vvz + vy2 + vz2))); + //f_BN -= c1over54*drho + (drho + one)*(-(c1o6*(vvy + vy2)*(vvz - vz2)) + c1o18*(vvy - vvz + vy2 + vz2) - vx2*(c1o36 - c1o4*(vvy + vy2)*(vvz - vz2) + c1o12*(vvy - vvz + vy2 + vz2))); + //f_TS -= c1over54*drho - (drho + one)*(c1o18*(vvy - vvz - vy2 - vz2) + c1o6*(vvy - vy2)*(vvz + vz2) + vx2*(c1o36 - c1o4*(vvy - vy2)*(vvz + vz2) + c1o12*(-vvy + vvz + vy2 + vz2))); + //f_ZERO -= c8over27*drho - (drho + one)*(vx2*vy2*vz2 + c4o9*(vx2 + vy2 + vz2) - c2o3*(vx2*vy2 + (vx2 + vy2)*vz2)); + //f_TNE -= c1over216*drho + (drho + one)*(c1o8*(vvx + vx2)*(vvy + vy2)*(vvz + vz2) + c1o72*(vvx + vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 + vvy*(vvz + vx2 + vz2) + vvx*(vvy + vvz + vy2 + vz2))); + //f_TSW -= c1over216*drho + (drho + one)*(c1o8*(vvx - vx2)*(vvy - vy2)*(vvz + vz2) + c1o72*(-vvx - vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + vvx*(vvy - vvz - vy2 - vz2) + (vx2 + vy2)*vz2 - vvy*(vvz + vx2 + vz2))); + //f_TSE -= c1over216*drho + (drho + one)*(-(c1o8*(vvx + vx2)*(vvy - vy2)*(vvz + vz2)) + c1o72*(vvx - vvy + vvz + vx2 + vy2 + vz2) + c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 - vvy*(vvz + vx2 + vz2) + vvx*(-vvy + vvz + vy2 + vz2))); + //f_TNW -= c1over216*drho - (drho + one)*(c1o72*(vvx - vvy - vvz - vx2 - vy2 - vz2) + c1o8*(vvx - vx2)*(vvy + vy2)*(vvz + vz2) - c1o24*(vvz*vx2 + vvz*vy2 + vx2*vy2 + (vx2 + vy2)*vz2 + vvy*(vvz + vx2 + vz2) - vvx*(vvy + vvz + vy2 + vz2))); + //f_BNE -= c1over216*drho + (drho + one)*(-(c1o8*(vvx + vx2)*(vvy + vy2)*(vvz - vz2)) + c1o72*(vvx + vvy - vvz + vx2 + vy2 + vz2) + c1o24*(-(vvy*vvz) + vvy*vx2 - vvz*vx2 - vvz*vy2 + vx2*vy2 + (vvy + vx2 + vy2)*vz2 + vvx*(vvy - vvz + vy2 + vz2))); + //f_BSW -= c1over216*drho - (drho + one)*(c1o8*(vvx - vx2)*(vvy - vy2)*(vvz - vz2) + c1o72*(vvx + vvy + vvz - vx2 - vy2 - vz2) + c1o24*(vvz*vx2 + vvz*vy2 - vx2*vy2 - (vx2 + vy2)*vz2 + vvy*(-vvz + vx2 + vz2) + vvx*(-vvy - vvz + vy2 + vz2))); + //f_BSE -= c1over216*drho + (drho + one)*(c1o8*(vvx + vx2)*(vvy - vy2)*(vvz - vz2) + c1o72*(vvx - vvy - vvz + vx2 + vy2 + vz2) + c1o24*(-(vvx*vvy) - vvx*vvz + vvy*vvz - (vvy + vvz)*vx2 + (vvx - vvz + vx2)*vy2 + (vvx - vvy + vx2 + vy2)*vz2)); + //f_BNW -= c1over216*drho - (drho + one)*(-(c1o8*(vvx - vx2)*(vvy + vy2)*(vvz - vz2)) + c1o72*(vvx - vvy + vvz - vx2 - vy2 - vz2) + c1o24*(vvy*vvz - vvy*vx2 + vvz*vx2 + vvz*vy2 - vx2*vy2 - (vvy + vx2 + vy2)*vz2 + vvx*(vvy - vvz + vy2 + vz2))); + + //kxyFromfcNEQ_NEB = -three*omegaS*((((f_SW - f_SE) + (f_NE - f_NW)) + (((f_BSW - f_BSE) + (f_BNE - f_BNW)) + ((f_TSW - f_TSE) + (f_TNE - f_TNW))) ) / (one + drho)); + //kyzFromfcNEQ_NEB = -three*omegaS*((((f_BS - f_TS) + (f_TN - f_BN)) + (((f_BSE - f_TSE) + (f_BSW - f_BNW)) + ((f_TNE - f_BNE) + (f_TNW - f_TSW))) ) / (one + drho)); + //kxzFromfcNEQ_NEB = -three*omegaS*((((f_BW - f_BE) + (f_TE - f_TW)) + (((f_BSW - f_BSE) + (f_BNW - f_BNE)) + ((f_TSE - f_TSW) + (f_TNE - f_TNW))) ) / (one + drho)); + //kxxMyyFromfcNEQ_NEB = -c3o2*omegaS *(((((f_BW - f_BS) + (f_TW - f_TS)) + ((f_BE - f_BN) + (f_TE - f_TN))) + ((f_W - f_S) + (f_E - f_N))) / (one + drho)); + //kxxMzzFromfcNEQ_NEB = -c3o2*omegaS *(((((f_SW - f_BS) + (f_NW - f_BN)) + ((f_SE - f_TS) + (f_NE - f_TN))) + ((f_W - f_B) + (f_E - f_T))) / (one + drho)); + //kyyMzzFromfcNEQ_NEB = -c3o2*omegaS *(((((f_SE - f_BE) + (f_SW - f_BW)) + ((f_NE - f_TE) + (f_NW - f_TW))) + ((f_S - f_B) + (f_N - f_T))) / (one + drho)); ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //kxyFromfcNEQ_SWB = zero; - //kyzFromfcNEQ_SWB = zero; - //kxzFromfcNEQ_SWB = zero; - //kxxMyyFromfcNEQ_SWB = zero; - //kxxMzzFromfcNEQ_SWB = zero; - //kxyFromfcNEQ_SWT = zero; - //kyzFromfcNEQ_SWT = zero; - //kxzFromfcNEQ_SWT = zero; - //kxxMyyFromfcNEQ_SWT = zero; - //kxxMzzFromfcNEQ_SWT = zero; - //kxyFromfcNEQ_SET = zero; - //kyzFromfcNEQ_SET = zero; - //kxzFromfcNEQ_SET = zero; - //kxxMyyFromfcNEQ_SET = zero; - //kxxMzzFromfcNEQ_SET = zero; - //kxyFromfcNEQ_SEB = zero; - //kyzFromfcNEQ_SEB = zero; - //kxzFromfcNEQ_SEB = zero; - //kxxMyyFromfcNEQ_SEB = zero; - //kxxMzzFromfcNEQ_SEB = zero; - //kxyFromfcNEQ_NWB = zero; - //kyzFromfcNEQ_NWB = zero; - //kxzFromfcNEQ_NWB = zero; - //kxxMyyFromfcNEQ_NWB = zero; - //kxxMzzFromfcNEQ_NWB = zero; - //kxyFromfcNEQ_NWT = zero; - //kyzFromfcNEQ_NWT = zero; - //kxzFromfcNEQ_NWT = zero; - //kxxMyyFromfcNEQ_NWT = zero; - //kxxMzzFromfcNEQ_NWT = zero; - //kxyFromfcNEQ_NET = zero; - //kyzFromfcNEQ_NET = zero; - //kxzFromfcNEQ_NET = zero; - //kxxMyyFromfcNEQ_NET = zero; - //kxxMzzFromfcNEQ_NET = zero; - //kxyFromfcNEQ_NEB = zero; - //kyzFromfcNEQ_NEB = zero; - //kxzFromfcNEQ_NEB = zero; - //kxxMyyFromfcNEQ_NEB = zero; - //kxxMzzFromfcNEQ_NEB = zero; + //kxyFromfcNEQ_SWB = zero; + //kyzFromfcNEQ_SWB = zero; + //kxzFromfcNEQ_SWB = zero; + //kxxMyyFromfcNEQ_SWB = zero; + //kxxMzzFromfcNEQ_SWB = zero; + //kxyFromfcNEQ_SWT = zero; + //kyzFromfcNEQ_SWT = zero; + //kxzFromfcNEQ_SWT = zero; + //kxxMyyFromfcNEQ_SWT = zero; + //kxxMzzFromfcNEQ_SWT = zero; + //kxyFromfcNEQ_SET = zero; + //kyzFromfcNEQ_SET = zero; + //kxzFromfcNEQ_SET = zero; + //kxxMyyFromfcNEQ_SET = zero; + //kxxMzzFromfcNEQ_SET = zero; + //kxyFromfcNEQ_SEB = zero; + //kyzFromfcNEQ_SEB = zero; + //kxzFromfcNEQ_SEB = zero; + //kxxMyyFromfcNEQ_SEB = zero; + //kxxMzzFromfcNEQ_SEB = zero; + //kxyFromfcNEQ_NWB = zero; + //kyzFromfcNEQ_NWB = zero; + //kxzFromfcNEQ_NWB = zero; + //kxxMyyFromfcNEQ_NWB = zero; + //kxxMzzFromfcNEQ_NWB = zero; + //kxyFromfcNEQ_NWT = zero; + //kyzFromfcNEQ_NWT = zero; + //kxzFromfcNEQ_NWT = zero; + //kxxMyyFromfcNEQ_NWT = zero; + //kxxMzzFromfcNEQ_NWT = zero; + //kxyFromfcNEQ_NET = zero; + //kyzFromfcNEQ_NET = zero; + //kxzFromfcNEQ_NET = zero; + //kxxMyyFromfcNEQ_NET = zero; + //kxxMzzFromfcNEQ_NET = zero; + //kxyFromfcNEQ_NEB = zero; + //kyzFromfcNEQ_NEB = zero; + //kxzFromfcNEQ_NEB = zero; + //kxxMyyFromfcNEQ_NEB = zero; + //kxxMzzFromfcNEQ_NEB = zero; ////////////////////////////////////////////////////////////////////////// //3 ////////////////////////////////////////////////////////////////////////// - a0 = c1o8*(((vx1_NEB + vx1_SWT) + (vx1_NWB + vx1_SET)) + ((vx1_SEB + vx1_NWT) + (vx1_SWB + vx1_NET))); - ax = c1o4*(((vx1_NEB - vx1_SWT) + (vx1_NET - vx1_SWB)) + ((vx1_SET - vx1_NWB) + (vx1_SEB - vx1_NWT))); - ay = c1o4*(((vx1_NEB - vx1_SWT) + (vx1_NET - vx1_SWB)) + ((vx1_NWB - vx1_SET) + (vx1_NWT - vx1_SEB))); - az = c1o4*(((vx1_SWT - vx1_NEB) + (vx1_NET - vx1_SWB)) + ((vx1_SET - vx1_NWB) + (vx1_NWT - vx1_SEB))); - axy = c1o2*(((vx1_NEB - vx1_SET) + (vx1_SWB - vx1_NWT)) + ((vx1_SWT - vx1_NWB) + (vx1_NET - vx1_SEB))); - axz = c1o2*(((vx1_SET - vx1_NEB) + (vx1_SWB - vx1_NWT)) + ((vx1_NWB - vx1_SWT) + (vx1_NET - vx1_SEB))); - ayz = c1o2*(((vx1_NET - vx1_NWB) + (vx1_SEB - vx1_SWT)) + ((vx1_NWT - vx1_NEB) + (vx1_SWB - vx1_SET))); - //axyz= ((vx1_SWT - vx1_NEB) + (vx1_NET - vx1_SWB)) + ((vx1_NWB - vx1_SET) + (vx1_SEB - vx1_NWT)) ; - b0 = c1o8*(((vx2_NEB + vx2_SWT) + (vx2_NWB + vx2_SET)) + ((vx2_SEB + vx2_NWT) + (vx2_SWB + vx2_NET))); - bx = c1o4*(((vx2_NEB - vx2_SWT) + (vx2_NET - vx2_SWB)) + ((vx2_SET - vx2_NWB) + (vx2_SEB - vx2_NWT))); - by = c1o4*(((vx2_NEB - vx2_SWT) + (vx2_NET - vx2_SWB)) + ((vx2_NWB - vx2_SET) + (vx2_NWT - vx2_SEB))); - bz = c1o4*(((vx2_SWT - vx2_NEB) + (vx2_NET - vx2_SWB)) + ((vx2_SET - vx2_NWB) + (vx2_NWT - vx2_SEB))); - bxy = c1o2*(((vx2_NEB - vx2_NWT) + (vx2_SWB - vx2_SET)) + ((vx2_SWT - vx2_SEB) + (vx2_NET - vx2_NWB))); - bxz = c1o2*(((vx2_SWB - vx2_NEB) + (vx2_SET - vx2_NWT)) + ((vx2_NWB - vx2_SEB) + (vx2_NET - vx2_SWT))); - byz = c1o2*(((vx2_NWT - vx2_NEB) + (vx2_SWB - vx2_SET)) + ((vx2_SEB - vx2_SWT) + (vx2_NET - vx2_NWB))); - //bxyz= ((vx2_SWT - vx2_NEB) + (vx2_NET - vx2_SWB)) + ((vx2_NWB - vx2_SET) + (vx2_SEB - vx2_NWT)) ; - c0 = c1o8*(((vx3_NEB + vx3_SWT) + (vx3_NWB + vx3_SET)) + ((vx3_SEB + vx3_NWT) + (vx3_SWB + vx3_NET))); - cx = c1o4*(((vx3_NEB - vx3_SWT) + (vx3_NET - vx3_SWB)) + ((vx3_SET - vx3_NWB) + (vx3_SEB - vx3_NWT))); - cy = c1o4*(((vx3_NEB - vx3_SWT) + (vx3_NET - vx3_SWB)) + ((vx3_NWB - vx3_SET) + (vx3_NWT - vx3_SEB))); - cz = c1o4*(((vx3_SWT - vx3_NEB) + (vx3_NET - vx3_SWB)) + ((vx3_SET - vx3_NWB) + (vx3_NWT - vx3_SEB))); - cxy = c1o2*(((vx3_NEB - vx3_SET) + (vx3_SWB - vx3_NWT)) + ((vx3_SWT - vx3_NWB) + (vx3_NET - vx3_SEB))); - cxz = c1o2*(((vx3_SWB - vx3_NEB) + (vx3_SET - vx3_NWT)) + ((vx3_NWB - vx3_SEB) + (vx3_NET - vx3_SWT))); - cyz = c1o2*(((vx3_SWB - vx3_NEB) + (vx3_NWT - vx3_SET)) + ((vx3_SEB - vx3_NWB) + (vx3_NET - vx3_SWT))); - //cxyz= ((vx3_SWT - vx3_NEB) + (vx3_NET - vx3_SWB)) + ((vx3_NWB - vx3_SET) + (vx3_SEB - vx3_NWT)) ; - - //bxx = zero; - //cxx = zero; - //ayy = zero; - //cyy = zero; - //azz = zero; - //bzz = zero; - //axx = zero; - //byy = zero; - //czz = zero; - - bxx = c1o8*(((kxyFromfcNEQ_NET - kxyFromfcNEQ_SWB) + (kxyFromfcNEQ_SEB - kxyFromfcNEQ_NWT)) + ((kxyFromfcNEQ_SET - kxyFromfcNEQ_NWB) + (kxyFromfcNEQ_NEB - kxyFromfcNEQ_SWT))) - c1o2*axy; - cxx = c1o8*(((kxzFromfcNEQ_NET - kxzFromfcNEQ_SWB) + (kxzFromfcNEQ_SEB - kxzFromfcNEQ_NWT)) + ((kxzFromfcNEQ_SET - kxzFromfcNEQ_NWB) + (kxzFromfcNEQ_NEB - kxzFromfcNEQ_SWT))) - c1o2*axz; - - ayy = c1o8*(((kxyFromfcNEQ_NET - kxyFromfcNEQ_SWB) + (kxyFromfcNEQ_NEB - kxyFromfcNEQ_SWT)) - ((kxyFromfcNEQ_SEB - kxyFromfcNEQ_NWT) + (kxyFromfcNEQ_SET - kxyFromfcNEQ_NWB))) - c1o2*bxy; - cyy = c1o8*(((kyzFromfcNEQ_NET - kyzFromfcNEQ_SWB) + (kyzFromfcNEQ_NEB - kyzFromfcNEQ_SWT)) - ((kyzFromfcNEQ_SEB - kyzFromfcNEQ_NWT) + (kyzFromfcNEQ_SET - kyzFromfcNEQ_NWB))) - c1o2*byz; - - azz = c1o8*(((kxzFromfcNEQ_NET - kxzFromfcNEQ_SWB) - (kxzFromfcNEQ_SEB - kxzFromfcNEQ_NWT)) + ((kxzFromfcNEQ_SET - kxzFromfcNEQ_NWB) - (kxzFromfcNEQ_NEB - kxzFromfcNEQ_SWT))) - c1o2*cxz; - bzz = c1o8*(((kyzFromfcNEQ_NET - kyzFromfcNEQ_SWB) - (kyzFromfcNEQ_SEB - kyzFromfcNEQ_NWT)) + ((kyzFromfcNEQ_SET - kyzFromfcNEQ_NWB) - (kyzFromfcNEQ_NEB - kyzFromfcNEQ_SWT))) - c1o2*cyz; - - axx = ( c1o16*(((kxxMyyFromfcNEQ_NET - kxxMyyFromfcNEQ_SWB) + (kxxMyyFromfcNEQ_SEB - kxxMyyFromfcNEQ_NWT)) + ((kxxMyyFromfcNEQ_SET - kxxMyyFromfcNEQ_NWB) + (kxxMyyFromfcNEQ_NEB - kxxMyyFromfcNEQ_SWT))) - c1o4*bxy) - + ( c1o16*(((kxxMzzFromfcNEQ_NET - kxxMzzFromfcNEQ_SWB) + (kxxMzzFromfcNEQ_SEB - kxxMzzFromfcNEQ_NWT)) + ((kxxMzzFromfcNEQ_SET - kxxMzzFromfcNEQ_NWB) + (kxxMzzFromfcNEQ_NEB - kxxMzzFromfcNEQ_SWT))) - c1o4*cxz); - - byy = (-c1o16*(((kxxMyyFromfcNEQ_NET - kxxMyyFromfcNEQ_SWB) - (kxxMyyFromfcNEQ_SEB - kxxMyyFromfcNEQ_NWT)) + ((kxxMyyFromfcNEQ_NEB - kxxMyyFromfcNEQ_SWT) - (kxxMyyFromfcNEQ_SET - kxxMyyFromfcNEQ_NWB))) - c1o4*axy) - + ( c1o16*(((kyyMzzFromfcNEQ_NET - kyyMzzFromfcNEQ_SWB) - (kyyMzzFromfcNEQ_SEB - kyyMzzFromfcNEQ_NWT)) + ((kyyMzzFromfcNEQ_NEB - kyyMzzFromfcNEQ_SWT) - (kyyMzzFromfcNEQ_SET - kyyMzzFromfcNEQ_NWB))) - c1o4*cyz); - - czz = (-c1o16*(((kxxMzzFromfcNEQ_NET - kxxMzzFromfcNEQ_SWB) - (kxxMzzFromfcNEQ_SEB - kxxMzzFromfcNEQ_NWT)) - ((kxxMzzFromfcNEQ_NEB - kxxMzzFromfcNEQ_SWT) - (kxxMzzFromfcNEQ_SET - kxxMzzFromfcNEQ_NWB))) - c1o4*axz) - + ( c1o16*(((kyyMzzFromfcNEQ_NET - kyyMzzFromfcNEQ_SWB) - (kyyMzzFromfcNEQ_SEB - kyyMzzFromfcNEQ_NWT)) - ((kyyMzzFromfcNEQ_NEB - kyyMzzFromfcNEQ_SWT) - (kyyMzzFromfcNEQ_SET - kyyMzzFromfcNEQ_NWB))) - c1o4*byz); - - a0 -= c1o4*(axx + ayy + azz); - b0 -= c1o4*(bxx + byy + bzz); - c0 -= c1o4*(cxx + cyy + czz); - - - - - ////////// + a0 = c1o8*(((vx1_NEB + vx1_SWT) + (vx1_NWB + vx1_SET)) + ((vx1_SEB + vx1_NWT) + (vx1_SWB + vx1_NET))); + ax = c1o4*(((vx1_NEB - vx1_SWT) + (vx1_NET - vx1_SWB)) + ((vx1_SET - vx1_NWB) + (vx1_SEB - vx1_NWT))); + ay = c1o4*(((vx1_NEB - vx1_SWT) + (vx1_NET - vx1_SWB)) + ((vx1_NWB - vx1_SET) + (vx1_NWT - vx1_SEB))); + az = c1o4*(((vx1_SWT - vx1_NEB) + (vx1_NET - vx1_SWB)) + ((vx1_SET - vx1_NWB) + (vx1_NWT - vx1_SEB))); + axy = c1o2*(((vx1_NEB - vx1_SET) + (vx1_SWB - vx1_NWT)) + ((vx1_SWT - vx1_NWB) + (vx1_NET - vx1_SEB))); + axz = c1o2*(((vx1_SET - vx1_NEB) + (vx1_SWB - vx1_NWT)) + ((vx1_NWB - vx1_SWT) + (vx1_NET - vx1_SEB))); + ayz = c1o2*(((vx1_NET - vx1_NWB) + (vx1_SEB - vx1_SWT)) + ((vx1_NWT - vx1_NEB) + (vx1_SWB - vx1_SET))); + //axyz= ((vx1_SWT - vx1_NEB) + (vx1_NET - vx1_SWB)) + ((vx1_NWB - vx1_SET) + (vx1_SEB - vx1_NWT)) ; + b0 = c1o8*(((vx2_NEB + vx2_SWT) + (vx2_NWB + vx2_SET)) + ((vx2_SEB + vx2_NWT) + (vx2_SWB + vx2_NET))); + bx = c1o4*(((vx2_NEB - vx2_SWT) + (vx2_NET - vx2_SWB)) + ((vx2_SET - vx2_NWB) + (vx2_SEB - vx2_NWT))); + by = c1o4*(((vx2_NEB - vx2_SWT) + (vx2_NET - vx2_SWB)) + ((vx2_NWB - vx2_SET) + (vx2_NWT - vx2_SEB))); + bz = c1o4*(((vx2_SWT - vx2_NEB) + (vx2_NET - vx2_SWB)) + ((vx2_SET - vx2_NWB) + (vx2_NWT - vx2_SEB))); + bxy = c1o2*(((vx2_NEB - vx2_NWT) + (vx2_SWB - vx2_SET)) + ((vx2_SWT - vx2_SEB) + (vx2_NET - vx2_NWB))); + bxz = c1o2*(((vx2_SWB - vx2_NEB) + (vx2_SET - vx2_NWT)) + ((vx2_NWB - vx2_SEB) + (vx2_NET - vx2_SWT))); + byz = c1o2*(((vx2_NWT - vx2_NEB) + (vx2_SWB - vx2_SET)) + ((vx2_SEB - vx2_SWT) + (vx2_NET - vx2_NWB))); + //bxyz= ((vx2_SWT - vx2_NEB) + (vx2_NET - vx2_SWB)) + ((vx2_NWB - vx2_SET) + (vx2_SEB - vx2_NWT)) ; + c0 = c1o8*(((vx3_NEB + vx3_SWT) + (vx3_NWB + vx3_SET)) + ((vx3_SEB + vx3_NWT) + (vx3_SWB + vx3_NET))); + cx = c1o4*(((vx3_NEB - vx3_SWT) + (vx3_NET - vx3_SWB)) + ((vx3_SET - vx3_NWB) + (vx3_SEB - vx3_NWT))); + cy = c1o4*(((vx3_NEB - vx3_SWT) + (vx3_NET - vx3_SWB)) + ((vx3_NWB - vx3_SET) + (vx3_NWT - vx3_SEB))); + cz = c1o4*(((vx3_SWT - vx3_NEB) + (vx3_NET - vx3_SWB)) + ((vx3_SET - vx3_NWB) + (vx3_NWT - vx3_SEB))); + cxy = c1o2*(((vx3_NEB - vx3_SET) + (vx3_SWB - vx3_NWT)) + ((vx3_SWT - vx3_NWB) + (vx3_NET - vx3_SEB))); + cxz = c1o2*(((vx3_SWB - vx3_NEB) + (vx3_SET - vx3_NWT)) + ((vx3_NWB - vx3_SEB) + (vx3_NET - vx3_SWT))); + cyz = c1o2*(((vx3_SWB - vx3_NEB) + (vx3_NWT - vx3_SET)) + ((vx3_SEB - vx3_NWB) + (vx3_NET - vx3_SWT))); + //cxyz= ((vx3_SWT - vx3_NEB) + (vx3_NET - vx3_SWB)) + ((vx3_NWB - vx3_SET) + (vx3_SEB - vx3_NWT)) ; + + //bxx = zero; + //cxx = zero; + //ayy = zero; + //cyy = zero; + //azz = zero; + //bzz = zero; + //axx = zero; + //byy = zero; + //czz = zero; + + bxx = c1o8*(((kxyFromfcNEQ_NET - kxyFromfcNEQ_SWB) + (kxyFromfcNEQ_SEB - kxyFromfcNEQ_NWT)) + ((kxyFromfcNEQ_SET - kxyFromfcNEQ_NWB) + (kxyFromfcNEQ_NEB - kxyFromfcNEQ_SWT))) - c1o2*axy; + cxx = c1o8*(((kxzFromfcNEQ_NET - kxzFromfcNEQ_SWB) + (kxzFromfcNEQ_SEB - kxzFromfcNEQ_NWT)) + ((kxzFromfcNEQ_SET - kxzFromfcNEQ_NWB) + (kxzFromfcNEQ_NEB - kxzFromfcNEQ_SWT))) - c1o2*axz; + + ayy = c1o8*(((kxyFromfcNEQ_NET - kxyFromfcNEQ_SWB) + (kxyFromfcNEQ_NEB - kxyFromfcNEQ_SWT)) - ((kxyFromfcNEQ_SEB - kxyFromfcNEQ_NWT) + (kxyFromfcNEQ_SET - kxyFromfcNEQ_NWB))) - c1o2*bxy; + cyy = c1o8*(((kyzFromfcNEQ_NET - kyzFromfcNEQ_SWB) + (kyzFromfcNEQ_NEB - kyzFromfcNEQ_SWT)) - ((kyzFromfcNEQ_SEB - kyzFromfcNEQ_NWT) + (kyzFromfcNEQ_SET - kyzFromfcNEQ_NWB))) - c1o2*byz; + + azz = c1o8*(((kxzFromfcNEQ_NET - kxzFromfcNEQ_SWB) - (kxzFromfcNEQ_SEB - kxzFromfcNEQ_NWT)) + ((kxzFromfcNEQ_SET - kxzFromfcNEQ_NWB) - (kxzFromfcNEQ_NEB - kxzFromfcNEQ_SWT))) - c1o2*cxz; + bzz = c1o8*(((kyzFromfcNEQ_NET - kyzFromfcNEQ_SWB) - (kyzFromfcNEQ_SEB - kyzFromfcNEQ_NWT)) + ((kyzFromfcNEQ_SET - kyzFromfcNEQ_NWB) - (kyzFromfcNEQ_NEB - kyzFromfcNEQ_SWT))) - c1o2*cyz; + + axx = ( c1o16*(((kxxMyyFromfcNEQ_NET - kxxMyyFromfcNEQ_SWB) + (kxxMyyFromfcNEQ_SEB - kxxMyyFromfcNEQ_NWT)) + ((kxxMyyFromfcNEQ_SET - kxxMyyFromfcNEQ_NWB) + (kxxMyyFromfcNEQ_NEB - kxxMyyFromfcNEQ_SWT))) - c1o4*bxy) + + ( c1o16*(((kxxMzzFromfcNEQ_NET - kxxMzzFromfcNEQ_SWB) + (kxxMzzFromfcNEQ_SEB - kxxMzzFromfcNEQ_NWT)) + ((kxxMzzFromfcNEQ_SET - kxxMzzFromfcNEQ_NWB) + (kxxMzzFromfcNEQ_NEB - kxxMzzFromfcNEQ_SWT))) - c1o4*cxz); + + byy = (-c1o16*(((kxxMyyFromfcNEQ_NET - kxxMyyFromfcNEQ_SWB) - (kxxMyyFromfcNEQ_SEB - kxxMyyFromfcNEQ_NWT)) + ((kxxMyyFromfcNEQ_NEB - kxxMyyFromfcNEQ_SWT) - (kxxMyyFromfcNEQ_SET - kxxMyyFromfcNEQ_NWB))) - c1o4*axy) + + ( c1o16*(((kyyMzzFromfcNEQ_NET - kyyMzzFromfcNEQ_SWB) - (kyyMzzFromfcNEQ_SEB - kyyMzzFromfcNEQ_NWT)) + ((kyyMzzFromfcNEQ_NEB - kyyMzzFromfcNEQ_SWT) - (kyyMzzFromfcNEQ_SET - kyyMzzFromfcNEQ_NWB))) - c1o4*cyz); + + czz = (-c1o16*(((kxxMzzFromfcNEQ_NET - kxxMzzFromfcNEQ_SWB) - (kxxMzzFromfcNEQ_SEB - kxxMzzFromfcNEQ_NWT)) - ((kxxMzzFromfcNEQ_NEB - kxxMzzFromfcNEQ_SWT) - (kxxMzzFromfcNEQ_SET - kxxMzzFromfcNEQ_NWB))) - c1o4*axz) + + ( c1o16*(((kyyMzzFromfcNEQ_NET - kyyMzzFromfcNEQ_SWB) - (kyyMzzFromfcNEQ_SEB - kyyMzzFromfcNEQ_NWT)) - ((kyyMzzFromfcNEQ_NEB - kyyMzzFromfcNEQ_SWT) - (kyyMzzFromfcNEQ_SET - kyyMzzFromfcNEQ_NWB))) - c1o4*byz); + + a0 -= c1o4*(axx + ayy + azz); + b0 -= c1o4*(bxx + byy + bzz); + c0 -= c1o4*(cxx + cyy + czz); + + + + + ////////// // a0 = (-kxxMyyFromfcNEQ_NEB - kxxMyyFromfcNEQ_NET + kxxMyyFromfcNEQ_NWB + kxxMyyFromfcNEQ_NWT - - //kxxMyyFromfcNEQ_SEB - kxxMyyFromfcNEQ_SET + kxxMyyFromfcNEQ_SWB + kxxMyyFromfcNEQ_SWT - - //kxxMzzFromfcNEQ_NEB - kxxMzzFromfcNEQ_NET + kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_NWT - - //kxxMzzFromfcNEQ_SEB - kxxMzzFromfcNEQ_SET + kxxMzzFromfcNEQ_SWB + kxxMzzFromfcNEQ_SWT - - //two*kxyFromfcNEQ_NEB - two*kxyFromfcNEQ_NET - two*kxyFromfcNEQ_NWB - two*kxyFromfcNEQ_NWT + - //two*kxyFromfcNEQ_SEB + two*kxyFromfcNEQ_SET + two*kxyFromfcNEQ_SWB + two*kxyFromfcNEQ_SWT + - //two*kxzFromfcNEQ_NEB - two*kxzFromfcNEQ_NET + two*kxzFromfcNEQ_NWB - two*kxzFromfcNEQ_NWT + - //two*kxzFromfcNEQ_SEB - two*kxzFromfcNEQ_SET + two*kxzFromfcNEQ_SWB - two*kxzFromfcNEQ_SWT + - //eight*vx1_NEB + eight*vx1_NET + eight*vx1_NWB + eight*vx1_NWT + eight*vx1_SEB + - //eight*vx1_SET + eight*vx1_SWB + eight*vx1_SWT + two*vx2_NEB + two*vx2_NET - - //two*vx2_NWB - two*vx2_NWT - two*vx2_SEB - two*vx2_SET + two*vx2_SWB + - //two*vx2_SWT - two*vx3_NEB + two*vx3_NET + two*vx3_NWB - two*vx3_NWT - - //two*vx3_SEB + two*vx3_SET + two*vx3_SWB - two*vx3_SWT)/sixtyfour; + //kxxMyyFromfcNEQ_SEB - kxxMyyFromfcNEQ_SET + kxxMyyFromfcNEQ_SWB + kxxMyyFromfcNEQ_SWT - + //kxxMzzFromfcNEQ_NEB - kxxMzzFromfcNEQ_NET + kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_NWT - + //kxxMzzFromfcNEQ_SEB - kxxMzzFromfcNEQ_SET + kxxMzzFromfcNEQ_SWB + kxxMzzFromfcNEQ_SWT - + //two*kxyFromfcNEQ_NEB - two*kxyFromfcNEQ_NET - two*kxyFromfcNEQ_NWB - two*kxyFromfcNEQ_NWT + + //two*kxyFromfcNEQ_SEB + two*kxyFromfcNEQ_SET + two*kxyFromfcNEQ_SWB + two*kxyFromfcNEQ_SWT + + //two*kxzFromfcNEQ_NEB - two*kxzFromfcNEQ_NET + two*kxzFromfcNEQ_NWB - two*kxzFromfcNEQ_NWT + + //two*kxzFromfcNEQ_SEB - two*kxzFromfcNEQ_SET + two*kxzFromfcNEQ_SWB - two*kxzFromfcNEQ_SWT + + //eight*vx1_NEB + eight*vx1_NET + eight*vx1_NWB + eight*vx1_NWT + eight*vx1_SEB + + //eight*vx1_SET + eight*vx1_SWB + eight*vx1_SWT + two*vx2_NEB + two*vx2_NET - + //two*vx2_NWB - two*vx2_NWT - two*vx2_SEB - two*vx2_SET + two*vx2_SWB + + //two*vx2_SWT - two*vx3_NEB + two*vx3_NET + two*vx3_NWB - two*vx3_NWT - + //two*vx3_SEB + two*vx3_SET + two*vx3_SWB - two*vx3_SWT)/sixtyfour; // b0 = (two*kxxMyyFromfcNEQ_NEB + two*kxxMyyFromfcNEQ_NET + two*kxxMyyFromfcNEQ_NWB + two*kxxMyyFromfcNEQ_NWT - - //two*kxxMyyFromfcNEQ_SEB - two*kxxMyyFromfcNEQ_SET - two*kxxMyyFromfcNEQ_SWB - two*kxxMyyFromfcNEQ_SWT - - //kxxMzzFromfcNEQ_NEB - kxxMzzFromfcNEQ_NET - kxxMzzFromfcNEQ_NWB - kxxMzzFromfcNEQ_NWT + - //kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_SET + kxxMzzFromfcNEQ_SWB + kxxMzzFromfcNEQ_SWT - - //two*kxyFromfcNEQ_NEB - two*kxyFromfcNEQ_NET + two*kxyFromfcNEQ_NWB + two*kxyFromfcNEQ_NWT - - //two*kxyFromfcNEQ_SEB - two*kxyFromfcNEQ_SET + two*kxyFromfcNEQ_SWB + two*kxyFromfcNEQ_SWT + - //two*kyzFromfcNEQ_NEB - two*kyzFromfcNEQ_NET + two*kyzFromfcNEQ_NWB - two*kyzFromfcNEQ_NWT + - //two*kyzFromfcNEQ_SEB - two*kyzFromfcNEQ_SET + two*kyzFromfcNEQ_SWB - two*kyzFromfcNEQ_SWT + - //two*vx1_NEB + two*vx1_NET - two*vx1_NWB - two*vx1_NWT - - //two*vx1_SEB - two*vx1_SET + two*vx1_SWB + two*vx1_SWT + - //eight*vx2_NEB + eight*vx2_NET + eight*vx2_NWB + eight*vx2_NWT + - //eight*vx2_SEB + eight*vx2_SET + eight*vx2_SWB + eight*vx2_SWT - - //two*vx3_NEB + two*vx3_NET - two*vx3_NWB + two*vx3_NWT + - //two*vx3_SEB - two*vx3_SET + two*vx3_SWB - two*vx3_SWT)/sixtyfour; + //two*kxxMyyFromfcNEQ_SEB - two*kxxMyyFromfcNEQ_SET - two*kxxMyyFromfcNEQ_SWB - two*kxxMyyFromfcNEQ_SWT - + //kxxMzzFromfcNEQ_NEB - kxxMzzFromfcNEQ_NET - kxxMzzFromfcNEQ_NWB - kxxMzzFromfcNEQ_NWT + + //kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_SET + kxxMzzFromfcNEQ_SWB + kxxMzzFromfcNEQ_SWT - + //two*kxyFromfcNEQ_NEB - two*kxyFromfcNEQ_NET + two*kxyFromfcNEQ_NWB + two*kxyFromfcNEQ_NWT - + //two*kxyFromfcNEQ_SEB - two*kxyFromfcNEQ_SET + two*kxyFromfcNEQ_SWB + two*kxyFromfcNEQ_SWT + + //two*kyzFromfcNEQ_NEB - two*kyzFromfcNEQ_NET + two*kyzFromfcNEQ_NWB - two*kyzFromfcNEQ_NWT + + //two*kyzFromfcNEQ_SEB - two*kyzFromfcNEQ_SET + two*kyzFromfcNEQ_SWB - two*kyzFromfcNEQ_SWT + + //two*vx1_NEB + two*vx1_NET - two*vx1_NWB - two*vx1_NWT - + //two*vx1_SEB - two*vx1_SET + two*vx1_SWB + two*vx1_SWT + + //eight*vx2_NEB + eight*vx2_NET + eight*vx2_NWB + eight*vx2_NWT + + //eight*vx2_SEB + eight*vx2_SET + eight*vx2_SWB + eight*vx2_SWT - + //two*vx3_NEB + two*vx3_NET - two*vx3_NWB + two*vx3_NWT + + //two*vx3_SEB - two*vx3_SET + two*vx3_SWB - two*vx3_SWT)/sixtyfour; // c0 = (kxxMyyFromfcNEQ_NEB - kxxMyyFromfcNEQ_NET + kxxMyyFromfcNEQ_NWB - kxxMyyFromfcNEQ_NWT + - //kxxMyyFromfcNEQ_SEB - kxxMyyFromfcNEQ_SET + kxxMyyFromfcNEQ_SWB - kxxMyyFromfcNEQ_SWT - - //two*kxxMzzFromfcNEQ_NEB + two*kxxMzzFromfcNEQ_NET - two*kxxMzzFromfcNEQ_NWB + two*kxxMzzFromfcNEQ_NWT - - //two*kxxMzzFromfcNEQ_SEB + two*kxxMzzFromfcNEQ_SET - two*kxxMzzFromfcNEQ_SWB + two*kxxMzzFromfcNEQ_SWT - - //two*kxzFromfcNEQ_NEB - two*kxzFromfcNEQ_NET + two*kxzFromfcNEQ_NWB + two*kxzFromfcNEQ_NWT - - //two*kxzFromfcNEQ_SEB - two*kxzFromfcNEQ_SET + two*kxzFromfcNEQ_SWB + two*kxzFromfcNEQ_SWT - - //two*kyzFromfcNEQ_NEB - two*kyzFromfcNEQ_NET - two*kyzFromfcNEQ_NWB - two*kyzFromfcNEQ_NWT + - //two*kyzFromfcNEQ_SEB + two*kyzFromfcNEQ_SET + two*kyzFromfcNEQ_SWB + two*kyzFromfcNEQ_SWT - - //two*vx1_NEB + two*vx1_NET + two*vx1_NWB - two*vx1_NWT - - //two*vx1_SEB + two*vx1_SET + two*vx1_SWB - two*vx1_SWT - - //two*vx2_NEB + two*vx2_NET - two*vx2_NWB + two*vx2_NWT + - //two*vx2_SEB - two*vx2_SET + two*vx2_SWB - two*vx2_SWT + - //eight*vx3_NEB + eight*vx3_NET + eight*vx3_NWB + eight*vx3_NWT + - //eight*vx3_SEB + eight*vx3_SET + eight*vx3_SWB + eight*vx3_SWT)/sixtyfour; + //kxxMyyFromfcNEQ_SEB - kxxMyyFromfcNEQ_SET + kxxMyyFromfcNEQ_SWB - kxxMyyFromfcNEQ_SWT - + //two*kxxMzzFromfcNEQ_NEB + two*kxxMzzFromfcNEQ_NET - two*kxxMzzFromfcNEQ_NWB + two*kxxMzzFromfcNEQ_NWT - + //two*kxxMzzFromfcNEQ_SEB + two*kxxMzzFromfcNEQ_SET - two*kxxMzzFromfcNEQ_SWB + two*kxxMzzFromfcNEQ_SWT - + //two*kxzFromfcNEQ_NEB - two*kxzFromfcNEQ_NET + two*kxzFromfcNEQ_NWB + two*kxzFromfcNEQ_NWT - + //two*kxzFromfcNEQ_SEB - two*kxzFromfcNEQ_SET + two*kxzFromfcNEQ_SWB + two*kxzFromfcNEQ_SWT - + //two*kyzFromfcNEQ_NEB - two*kyzFromfcNEQ_NET - two*kyzFromfcNEQ_NWB - two*kyzFromfcNEQ_NWT + + //two*kyzFromfcNEQ_SEB + two*kyzFromfcNEQ_SET + two*kyzFromfcNEQ_SWB + two*kyzFromfcNEQ_SWT - + //two*vx1_NEB + two*vx1_NET + two*vx1_NWB - two*vx1_NWT - + //two*vx1_SEB + two*vx1_SET + two*vx1_SWB - two*vx1_SWT - + //two*vx2_NEB + two*vx2_NET - two*vx2_NWB + two*vx2_NWT + + //two*vx2_SEB - two*vx2_SET + two*vx2_SWB - two*vx2_SWT + + //eight*vx3_NEB + eight*vx3_NET + eight*vx3_NWB + eight*vx3_NWT + + //eight*vx3_SEB + eight*vx3_SET + eight*vx3_SWB + eight*vx3_SWT)/sixtyfour; // ax = (vx1_NEB + vx1_NET - vx1_NWB - vx1_NWT + vx1_SEB + vx1_SET - vx1_SWB - vx1_SWT)/four; // bx = (vx2_NEB + vx2_NET - vx2_NWB - vx2_NWT + vx2_SEB + vx2_SET - vx2_SWB - vx2_SWT)/four; // cx = (vx3_NEB + vx3_NET - vx3_NWB - vx3_NWT + vx3_SEB + vx3_SET - vx3_SWB - vx3_SWT)/four; // axx= (kxxMyyFromfcNEQ_NEB + kxxMyyFromfcNEQ_NET - kxxMyyFromfcNEQ_NWB - kxxMyyFromfcNEQ_NWT + - //kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_SET - kxxMyyFromfcNEQ_SWB - kxxMyyFromfcNEQ_SWT + - //kxxMzzFromfcNEQ_NEB + kxxMzzFromfcNEQ_NET - kxxMzzFromfcNEQ_NWB - kxxMzzFromfcNEQ_NWT + - //kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_SET - kxxMzzFromfcNEQ_SWB - kxxMzzFromfcNEQ_SWT + - //two*vx2_NEB + two*vx2_NET - two*vx2_NWB - two*vx2_NWT - - //two*vx2_SEB - two*vx2_SET + two*vx2_SWB + two*vx2_SWT - - //two*vx3_NEB + two*vx3_NET + two*vx3_NWB - two*vx3_NWT - - //two*vx3_SEB + two*vx3_SET + two*vx3_SWB - two*vx3_SWT)/sixteen; + //kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_SET - kxxMyyFromfcNEQ_SWB - kxxMyyFromfcNEQ_SWT + + //kxxMzzFromfcNEQ_NEB + kxxMzzFromfcNEQ_NET - kxxMzzFromfcNEQ_NWB - kxxMzzFromfcNEQ_NWT + + //kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_SET - kxxMzzFromfcNEQ_SWB - kxxMzzFromfcNEQ_SWT + + //two*vx2_NEB + two*vx2_NET - two*vx2_NWB - two*vx2_NWT - + //two*vx2_SEB - two*vx2_SET + two*vx2_SWB + two*vx2_SWT - + //two*vx3_NEB + two*vx3_NET + two*vx3_NWB - two*vx3_NWT - + //two*vx3_SEB + two*vx3_SET + two*vx3_SWB - two*vx3_SWT)/sixteen; // bxx= (kxyFromfcNEQ_NEB + kxyFromfcNEQ_NET - kxyFromfcNEQ_NWB - kxyFromfcNEQ_NWT + - //kxyFromfcNEQ_SEB + kxyFromfcNEQ_SET - kxyFromfcNEQ_SWB - kxyFromfcNEQ_SWT - - //two*vx1_NEB - two*vx1_NET + two*vx1_NWB + two*vx1_NWT + - //two*vx1_SEB + two*vx1_SET - two*vx1_SWB - two*vx1_SWT)/eight; + //kxyFromfcNEQ_SEB + kxyFromfcNEQ_SET - kxyFromfcNEQ_SWB - kxyFromfcNEQ_SWT - + //two*vx1_NEB - two*vx1_NET + two*vx1_NWB + two*vx1_NWT + + //two*vx1_SEB + two*vx1_SET - two*vx1_SWB - two*vx1_SWT)/eight; // cxx= (kxzFromfcNEQ_NEB + kxzFromfcNEQ_NET - kxzFromfcNEQ_NWB - kxzFromfcNEQ_NWT + - //kxzFromfcNEQ_SEB + kxzFromfcNEQ_SET - kxzFromfcNEQ_SWB - kxzFromfcNEQ_SWT + - //two*vx1_NEB - two*vx1_NET - two*vx1_NWB + two*vx1_NWT + - //two*vx1_SEB - two*vx1_SET - two*vx1_SWB + two*vx1_SWT)/eight; + //kxzFromfcNEQ_SEB + kxzFromfcNEQ_SET - kxzFromfcNEQ_SWB - kxzFromfcNEQ_SWT + + //two*vx1_NEB - two*vx1_NET - two*vx1_NWB + two*vx1_NWT + + //two*vx1_SEB - two*vx1_SET - two*vx1_SWB + two*vx1_SWT)/eight; // ay = (vx1_NEB + vx1_NET + vx1_NWB + vx1_NWT - vx1_SEB - vx1_SET - vx1_SWB - vx1_SWT)/four; // by = (vx2_NEB + vx2_NET + vx2_NWB + vx2_NWT - vx2_SEB - vx2_SET - vx2_SWB - vx2_SWT)/four; // cy = (vx3_NEB + vx3_NET + vx3_NWB + vx3_NWT - vx3_SEB - vx3_SET - vx3_SWB - vx3_SWT)/four; // ayy= (kxyFromfcNEQ_NEB + kxyFromfcNEQ_NET + kxyFromfcNEQ_NWB + kxyFromfcNEQ_NWT - - //kxyFromfcNEQ_SEB - kxyFromfcNEQ_SET - kxyFromfcNEQ_SWB - kxyFromfcNEQ_SWT - - //two*vx2_NEB - two*vx2_NET + two*vx2_NWB + two*vx2_NWT + - //two*vx2_SEB + two*vx2_SET - two*vx2_SWB - two*vx2_SWT)/eight; + //kxyFromfcNEQ_SEB - kxyFromfcNEQ_SET - kxyFromfcNEQ_SWB - kxyFromfcNEQ_SWT - + //two*vx2_NEB - two*vx2_NET + two*vx2_NWB + two*vx2_NWT + + //two*vx2_SEB + two*vx2_SET - two*vx2_SWB - two*vx2_SWT)/eight; // byy= (-two*kxxMyyFromfcNEQ_NEB - two*kxxMyyFromfcNEQ_NET - two*kxxMyyFromfcNEQ_NWB - two*kxxMyyFromfcNEQ_NWT + - //two*kxxMyyFromfcNEQ_SEB + two*kxxMyyFromfcNEQ_SET + two*kxxMyyFromfcNEQ_SWB + two*kxxMyyFromfcNEQ_SWT + - //kxxMzzFromfcNEQ_NEB + kxxMzzFromfcNEQ_NET + kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_NWT - - //kxxMzzFromfcNEQ_SEB - kxxMzzFromfcNEQ_SET - kxxMzzFromfcNEQ_SWB - kxxMzzFromfcNEQ_SWT + - //two*vx1_NEB + two*vx1_NET - two*vx1_NWB - two*vx1_NWT - - //two*vx1_SEB - two*vx1_SET + two*vx1_SWB + two*vx1_SWT - - //two*vx3_NEB + two*vx3_NET - two*vx3_NWB + two*vx3_NWT + - //two*vx3_SEB - two*vx3_SET + two*vx3_SWB - two*vx3_SWT)/sixteen; + //two*kxxMyyFromfcNEQ_SEB + two*kxxMyyFromfcNEQ_SET + two*kxxMyyFromfcNEQ_SWB + two*kxxMyyFromfcNEQ_SWT + + //kxxMzzFromfcNEQ_NEB + kxxMzzFromfcNEQ_NET + kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_NWT - + //kxxMzzFromfcNEQ_SEB - kxxMzzFromfcNEQ_SET - kxxMzzFromfcNEQ_SWB - kxxMzzFromfcNEQ_SWT + + //two*vx1_NEB + two*vx1_NET - two*vx1_NWB - two*vx1_NWT - + //two*vx1_SEB - two*vx1_SET + two*vx1_SWB + two*vx1_SWT - + //two*vx3_NEB + two*vx3_NET - two*vx3_NWB + two*vx3_NWT + + //two*vx3_SEB - two*vx3_SET + two*vx3_SWB - two*vx3_SWT)/sixteen; // cyy= (kyzFromfcNEQ_NEB + kyzFromfcNEQ_NET + kyzFromfcNEQ_NWB + kyzFromfcNEQ_NWT - - //kyzFromfcNEQ_SEB - kyzFromfcNEQ_SET - kyzFromfcNEQ_SWB - kyzFromfcNEQ_SWT + - //two*vx2_NEB - two*vx2_NET + two*vx2_NWB - two*vx2_NWT - - //two*vx2_SEB + two*vx2_SET - two*vx2_SWB + two*vx2_SWT)/eight; + //kyzFromfcNEQ_SEB - kyzFromfcNEQ_SET - kyzFromfcNEQ_SWB - kyzFromfcNEQ_SWT + + //two*vx2_NEB - two*vx2_NET + two*vx2_NWB - two*vx2_NWT - + //two*vx2_SEB + two*vx2_SET - two*vx2_SWB + two*vx2_SWT)/eight; // az = (-vx1_NEB + vx1_NET - vx1_NWB + vx1_NWT - vx1_SEB + vx1_SET - vx1_SWB + vx1_SWT)/four; // bz = (-vx2_NEB + vx2_NET - vx2_NWB + vx2_NWT - vx2_SEB + vx2_SET - vx2_SWB + vx2_SWT)/four; // cz = (-vx3_NEB + vx3_NET - vx3_NWB + vx3_NWT - vx3_SEB + vx3_SET - vx3_SWB + vx3_SWT)/four; // azz= (-kxzFromfcNEQ_NEB + kxzFromfcNEQ_NET - kxzFromfcNEQ_NWB + kxzFromfcNEQ_NWT - - //kxzFromfcNEQ_SEB + kxzFromfcNEQ_SET - kxzFromfcNEQ_SWB + kxzFromfcNEQ_SWT + - //two*vx3_NEB - two*vx3_NET - two*vx3_NWB + two*vx3_NWT + - //two*vx3_SEB - two*vx3_SET - two*vx3_SWB + two*vx3_SWT)/eight; + //kxzFromfcNEQ_SEB + kxzFromfcNEQ_SET - kxzFromfcNEQ_SWB + kxzFromfcNEQ_SWT + + //two*vx3_NEB - two*vx3_NET - two*vx3_NWB + two*vx3_NWT + + //two*vx3_SEB - two*vx3_SET - two*vx3_SWB + two*vx3_SWT)/eight; // bzz= (-kyzFromfcNEQ_NEB + kyzFromfcNEQ_NET - kyzFromfcNEQ_NWB + kyzFromfcNEQ_NWT - - //kyzFromfcNEQ_SEB + kyzFromfcNEQ_SET - kyzFromfcNEQ_SWB + kyzFromfcNEQ_SWT + - //two*vx3_NEB - two*vx3_NET + two*vx3_NWB - two*vx3_NWT - - //two*vx3_SEB + two*vx3_SET - two*vx3_SWB + two*vx3_SWT)/eight; + //kyzFromfcNEQ_SEB + kyzFromfcNEQ_SET - kyzFromfcNEQ_SWB + kyzFromfcNEQ_SWT + + //two*vx3_NEB - two*vx3_NET + two*vx3_NWB - two*vx3_NWT - + //two*vx3_SEB + two*vx3_SET - two*vx3_SWB + two*vx3_SWT)/eight; // czz= (-kxxMyyFromfcNEQ_NEB + kxxMyyFromfcNEQ_NET - kxxMyyFromfcNEQ_NWB + kxxMyyFromfcNEQ_NWT - - //kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_SET - kxxMyyFromfcNEQ_SWB + kxxMyyFromfcNEQ_SWT + - //two*kxxMzzFromfcNEQ_NEB - two*kxxMzzFromfcNEQ_NET + two*kxxMzzFromfcNEQ_NWB - two*kxxMzzFromfcNEQ_NWT + - //two*kxxMzzFromfcNEQ_SEB - two*kxxMzzFromfcNEQ_SET + two*kxxMzzFromfcNEQ_SWB - two*kxxMzzFromfcNEQ_SWT - - //two*vx1_NEB + two*vx1_NET + two*vx1_NWB - two*vx1_NWT - - //two*vx1_SEB + two*vx1_SET + two*vx1_SWB - two*vx1_SWT - - //two*vx2_NEB + two*vx2_NET - two*vx2_NWB + two*vx2_NWT + - //two*vx2_SEB - two*vx2_SET + two*vx2_SWB - two*vx2_SWT)/sixteen; + //kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_SET - kxxMyyFromfcNEQ_SWB + kxxMyyFromfcNEQ_SWT + + //two*kxxMzzFromfcNEQ_NEB - two*kxxMzzFromfcNEQ_NET + two*kxxMzzFromfcNEQ_NWB - two*kxxMzzFromfcNEQ_NWT + + //two*kxxMzzFromfcNEQ_SEB - two*kxxMzzFromfcNEQ_SET + two*kxxMzzFromfcNEQ_SWB - two*kxxMzzFromfcNEQ_SWT - + //two*vx1_NEB + two*vx1_NET + two*vx1_NWB - two*vx1_NWT - + //two*vx1_SEB + two*vx1_SET + two*vx1_SWB - two*vx1_SWT - + //two*vx2_NEB + two*vx2_NET - two*vx2_NWB + two*vx2_NWT + + //two*vx2_SEB - two*vx2_SET + two*vx2_SWB - two*vx2_SWT)/sixteen; // axy= (vx1_NEB + vx1_NET - vx1_NWB - vx1_NWT - vx1_SEB - vx1_SET + vx1_SWB + vx1_SWT)/two; // bxy= (vx2_NEB + vx2_NET - vx2_NWB - vx2_NWT - vx2_SEB - vx2_SET + vx2_SWB + vx2_SWT)/two; // cxy= (vx3_NEB + vx3_NET - vx3_NWB - vx3_NWT - vx3_SEB - vx3_SET + vx3_SWB + vx3_SWT)/two; @@ -13724,102 +13724,102 @@ __global__ void scaleFC_Fix_comp_27( real* DC, //bxyz=-vx2_NEB + vx2_NET + vx2_NWB - vx2_NWT + vx2_SEB - vx2_SET - vx2_SWB + vx2_SWT; //cxyz=-vx3_NEB + vx3_NET + vx3_NWB - vx3_NWT + vx3_SEB - vx3_SET - vx3_SWB + vx3_SWT; ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real kxyAverage = c0o1; - real kyzAverage = c0o1; - real kxzAverage = c0o1; - real kxxMyyAverage = c0o1; - real kxxMzzAverage = c0o1; - - - //real kxyAverage =(kxyFromfcNEQ_SWB+ - // kxyFromfcNEQ_SWT+ - // kxyFromfcNEQ_SET+ - // kxyFromfcNEQ_SEB+ - // kxyFromfcNEQ_NWB+ - // kxyFromfcNEQ_NWT+ - // kxyFromfcNEQ_NET+ - // kxyFromfcNEQ_NEB)*c1o8-(ay+bx); - //real kyzAverage =(kyzFromfcNEQ_SWB+ - // kyzFromfcNEQ_SWT+ - // kyzFromfcNEQ_SET+ - // kyzFromfcNEQ_SEB+ - // kyzFromfcNEQ_NWB+ - // kyzFromfcNEQ_NWT+ - // kyzFromfcNEQ_NET+ - // kyzFromfcNEQ_NEB)*c1o8-(bz+cy); - //real kxzAverage =(kxzFromfcNEQ_SWB+ - // kxzFromfcNEQ_SWT+ - // kxzFromfcNEQ_SET+ - // kxzFromfcNEQ_SEB+ - // kxzFromfcNEQ_NWB+ - // kxzFromfcNEQ_NWT+ - // kxzFromfcNEQ_NET+ - // kxzFromfcNEQ_NEB)*c1o8-(az+cx); - //real kxxMyyAverage =(kxxMyyFromfcNEQ_SWB+ - // kxxMyyFromfcNEQ_SWT+ - // kxxMyyFromfcNEQ_SET+ - // kxxMyyFromfcNEQ_SEB+ - // kxxMyyFromfcNEQ_NWB+ - // kxxMyyFromfcNEQ_NWT+ - // kxxMyyFromfcNEQ_NET+ - // kxxMyyFromfcNEQ_NEB)*c1o8-(ax-by); - //real kxxMzzAverage =(kxxMzzFromfcNEQ_SWB+ - // kxxMzzFromfcNEQ_SWT+ - // kxxMzzFromfcNEQ_SET+ - // kxxMzzFromfcNEQ_SEB+ - // kxxMzzFromfcNEQ_NWB+ - // kxxMzzFromfcNEQ_NWT+ - // kxxMzzFromfcNEQ_NET+ - // kxxMzzFromfcNEQ_NEB)*c1o8-(ax-cz); - - - - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - ////Press - //d0 = ( press_NEB + press_NET + press_NWB + press_NWT + press_SEB + press_SET + press_SWB + press_SWT) * c1o8; - //dx = ( press_NEB + press_NET - press_NWB - press_NWT + press_SEB + press_SET - press_SWB - press_SWT) * c1o4; - //dy = ( press_NEB + press_NET + press_NWB + press_NWT - press_SEB - press_SET - press_SWB - press_SWT) * c1o4; - //dz = (-press_NEB + press_NET - press_NWB + press_NWT - press_SEB + press_SET - press_SWB + press_SWT) * c1o4; - //dxy = ( press_NEB + press_NET - press_NWB - press_NWT - press_SEB - press_SET + press_SWB + press_SWT) * c1o2; - //dxz = (-press_NEB + press_NET + press_NWB - press_NWT - press_SEB + press_SET + press_SWB - press_SWT) * c1o2; - //dyz = (-press_NEB + press_NET - press_NWB + press_NWT + press_SEB - press_SET + press_SWB - press_SWT) * c1o2; - //dxyz = -press_NEB + press_NET + press_NWB - press_NWT + press_SEB - press_SET - press_SWB + press_SWT; - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho - d0 = ( ((drho_NEB + drho_SWT) + (drho_NWB + drho_SET)) + ((drho_SEB + drho_NWT) + (drho_SWB + drho_NET))) * c1o8; - dx = ( ((drho_NEB - drho_SWT) + (drho_SEB - drho_NWT)) + ((drho_SET - drho_NWB) + (drho_NET - drho_SWB))) * c1o4; - dy = ( ((drho_NEB - drho_SWT) + (drho_NWT - drho_SEB)) + ((drho_NWB - drho_SET) + (drho_NET - drho_SWB))) * c1o4; - dz = ( ((drho_SWT - drho_NEB) + (drho_NET - drho_SWB)) + ((drho_SET - drho_NWB) + (drho_NWT - drho_SEB))) * c1o4; - dxy = ( ((drho_NEB - drho_SET) + (drho_NET - drho_SEB)) + ((drho_SWT - drho_NWB) + (drho_SWB - drho_NWT))) * c1o2; - dxz = ( ((drho_SWB - drho_NEB) + (drho_NET - drho_SWT)) + ((drho_NWB - drho_SEB) + (drho_SET - drho_NWT))) * c1o2; - dyz = ( ((drho_NWT - drho_NEB) + (drho_NET - drho_NWB)) + ((drho_SEB - drho_SWT) + (drho_SWB - drho_SET))) * c1o2; - //d0 = ( drho_NEB + drho_NET + drho_NWB + drho_NWT + drho_SEB + drho_SET + drho_SWB + drho_SWT) * c1o8; - //dx = ( drho_NEB + drho_NET - drho_NWB - drho_NWT + drho_SEB + drho_SET - drho_SWB - drho_SWT) * c1o4; - //dy = ( drho_NEB + drho_NET + drho_NWB + drho_NWT - drho_SEB - drho_SET - drho_SWB - drho_SWT) * c1o4; - //dz = (-drho_NEB + drho_NET - drho_NWB + drho_NWT - drho_SEB + drho_SET - drho_SWB + drho_SWT) * c1o4; - //dxy = ( drho_NEB + drho_NET - drho_NWB - drho_NWT - drho_SEB - drho_SET + drho_SWB + drho_SWT) * c1o2; - //dxz = (-drho_NEB + drho_NET + drho_NWB - drho_NWT - drho_SEB + drho_SET + drho_SWB - drho_SWT) * c1o2; - //dyz = (-drho_NEB + drho_NET - drho_NWB + drho_NWT + drho_SEB - drho_SET + drho_SWB - drho_SWT) * c1o2; - //dxyz = -drho_NEB + drho_NET + drho_NWB - drho_NWT + drho_SEB - drho_SET - drho_SWB + drho_SWT; - //d0 = zero; - //dx = zero; - //dy = zero; - //dz = zero; - //dxy = zero; - //dxz = zero; - //dyz = zero; - //dxyz = zero; + real kxyAverage = c0o1; + real kyzAverage = c0o1; + real kxzAverage = c0o1; + real kxxMyyAverage = c0o1; + real kxxMzzAverage = c0o1; + + + //real kxyAverage =(kxyFromfcNEQ_SWB+ + // kxyFromfcNEQ_SWT+ + // kxyFromfcNEQ_SET+ + // kxyFromfcNEQ_SEB+ + // kxyFromfcNEQ_NWB+ + // kxyFromfcNEQ_NWT+ + // kxyFromfcNEQ_NET+ + // kxyFromfcNEQ_NEB)*c1o8-(ay+bx); + //real kyzAverage =(kyzFromfcNEQ_SWB+ + // kyzFromfcNEQ_SWT+ + // kyzFromfcNEQ_SET+ + // kyzFromfcNEQ_SEB+ + // kyzFromfcNEQ_NWB+ + // kyzFromfcNEQ_NWT+ + // kyzFromfcNEQ_NET+ + // kyzFromfcNEQ_NEB)*c1o8-(bz+cy); + //real kxzAverage =(kxzFromfcNEQ_SWB+ + // kxzFromfcNEQ_SWT+ + // kxzFromfcNEQ_SET+ + // kxzFromfcNEQ_SEB+ + // kxzFromfcNEQ_NWB+ + // kxzFromfcNEQ_NWT+ + // kxzFromfcNEQ_NET+ + // kxzFromfcNEQ_NEB)*c1o8-(az+cx); + //real kxxMyyAverage =(kxxMyyFromfcNEQ_SWB+ + // kxxMyyFromfcNEQ_SWT+ + // kxxMyyFromfcNEQ_SET+ + // kxxMyyFromfcNEQ_SEB+ + // kxxMyyFromfcNEQ_NWB+ + // kxxMyyFromfcNEQ_NWT+ + // kxxMyyFromfcNEQ_NET+ + // kxxMyyFromfcNEQ_NEB)*c1o8-(ax-by); + //real kxxMzzAverage =(kxxMzzFromfcNEQ_SWB+ + // kxxMzzFromfcNEQ_SWT+ + // kxxMzzFromfcNEQ_SET+ + // kxxMzzFromfcNEQ_SEB+ + // kxxMzzFromfcNEQ_NWB+ + // kxxMzzFromfcNEQ_NWT+ + // kxxMzzFromfcNEQ_NET+ + // kxxMzzFromfcNEQ_NEB)*c1o8-(ax-cz); + + + + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + ////Press + //d0 = ( press_NEB + press_NET + press_NWB + press_NWT + press_SEB + press_SET + press_SWB + press_SWT) * c1o8; + //dx = ( press_NEB + press_NET - press_NWB - press_NWT + press_SEB + press_SET - press_SWB - press_SWT) * c1o4; + //dy = ( press_NEB + press_NET + press_NWB + press_NWT - press_SEB - press_SET - press_SWB - press_SWT) * c1o4; + //dz = (-press_NEB + press_NET - press_NWB + press_NWT - press_SEB + press_SET - press_SWB + press_SWT) * c1o4; + //dxy = ( press_NEB + press_NET - press_NWB - press_NWT - press_SEB - press_SET + press_SWB + press_SWT) * c1o2; + //dxz = (-press_NEB + press_NET + press_NWB - press_NWT - press_SEB + press_SET + press_SWB - press_SWT) * c1o2; + //dyz = (-press_NEB + press_NET - press_NWB + press_NWT + press_SEB - press_SET + press_SWB - press_SWT) * c1o2; + //dxyz = -press_NEB + press_NET + press_NWB - press_NWT + press_SEB - press_SET - press_SWB + press_SWT; + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho + d0 = ( ((drho_NEB + drho_SWT) + (drho_NWB + drho_SET)) + ((drho_SEB + drho_NWT) + (drho_SWB + drho_NET))) * c1o8; + dx = ( ((drho_NEB - drho_SWT) + (drho_SEB - drho_NWT)) + ((drho_SET - drho_NWB) + (drho_NET - drho_SWB))) * c1o4; + dy = ( ((drho_NEB - drho_SWT) + (drho_NWT - drho_SEB)) + ((drho_NWB - drho_SET) + (drho_NET - drho_SWB))) * c1o4; + dz = ( ((drho_SWT - drho_NEB) + (drho_NET - drho_SWB)) + ((drho_SET - drho_NWB) + (drho_NWT - drho_SEB))) * c1o4; + dxy = ( ((drho_NEB - drho_SET) + (drho_NET - drho_SEB)) + ((drho_SWT - drho_NWB) + (drho_SWB - drho_NWT))) * c1o2; + dxz = ( ((drho_SWB - drho_NEB) + (drho_NET - drho_SWT)) + ((drho_NWB - drho_SEB) + (drho_SET - drho_NWT))) * c1o2; + dyz = ( ((drho_NWT - drho_NEB) + (drho_NET - drho_NWB)) + ((drho_SEB - drho_SWT) + (drho_SWB - drho_SET))) * c1o2; + //d0 = ( drho_NEB + drho_NET + drho_NWB + drho_NWT + drho_SEB + drho_SET + drho_SWB + drho_SWT) * c1o8; + //dx = ( drho_NEB + drho_NET - drho_NWB - drho_NWT + drho_SEB + drho_SET - drho_SWB - drho_SWT) * c1o4; + //dy = ( drho_NEB + drho_NET + drho_NWB + drho_NWT - drho_SEB - drho_SET - drho_SWB - drho_SWT) * c1o4; + //dz = (-drho_NEB + drho_NET - drho_NWB + drho_NWT - drho_SEB + drho_SET - drho_SWB + drho_SWT) * c1o4; + //dxy = ( drho_NEB + drho_NET - drho_NWB - drho_NWT - drho_SEB - drho_SET + drho_SWB + drho_SWT) * c1o2; + //dxz = (-drho_NEB + drho_NET + drho_NWB - drho_NWT - drho_SEB + drho_SET + drho_SWB - drho_SWT) * c1o2; + //dyz = (-drho_NEB + drho_NET - drho_NWB + drho_NWT + drho_SEB - drho_SET + drho_SWB - drho_SWT) * c1o2; + //dxyz = -drho_NEB + drho_NET + drho_NWB - drho_NWT + drho_SEB - drho_SET - drho_SWB + drho_SWT; + //d0 = zero; + //dx = zero; + //dy = zero; + //dz = zero; + //dxy = zero; + //dxz = zero; + //dyz = zero; + //dxyz = zero; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // // Bernd das Brot - // // - // x------x - // | | - // | ---+--->X - // | | \ - // x------x \ - // off-vector + // + // x------x + // | | + // | ---+--->X + // | | \ + // x------x \ + // off-vector //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// a0 = a0 + xoff * ax + yoff * ay + zoff * az + xoff_sq * axx + yoff_sq * ayy + zoff_sq * azz + xoff*yoff*axy + xoff*zoff*axz + yoff*zoff*ayz; ax = ax + c2o1 * xoff * axx + yoff * axy + zoff * axz; @@ -13833,441 +13833,441 @@ __global__ void scaleFC_Fix_comp_27( real* DC, cx = cx + c2o1 * xoff * cxx + yoff * cxy + zoff * cxz; cy = cy + c2o1 * yoff * cyy + xoff * cxy + zoff * cyz; cz = cz + c2o1 * zoff * czz + xoff * cxz + yoff * cyz; - d0 = d0 + xoff * dx + yoff * dy + zoff * dz + xoff*yoff*dxy + xoff*zoff*dxz + yoff*zoff*dyz; + d0 = d0 + xoff * dx + yoff * dy + zoff * dz + xoff*yoff*dxy + xoff*zoff*dxz + yoff*zoff*dyz; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // FIX /////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //AAAAAAAAAAAAHHHHHHHHHHHH!!!!! Mieser Test!!! + //b0= bx= by= bz= bxx= byy= bzz= bxy= bxz= byz= c0= cx= cy= cz= cxx= cyy= czz= cxy= cxz= cyz= axyz= bxyz= cxyz=zero; + //b0=zero; + //bx=zero; + //by=zero; + //bz=zero; + //bxx=zero; + //byy=zero; + //bzz=zero; + //bxy=zero; + //bxz=zero; + //byz=zero; + //c0=zero; + //cx=zero; + //cy=zero; + //cz=zero; + //cxx=zero; + //cyy=zero; + //czz=zero; + //cxy=zero; + //cxz=zero; + //cyz=zero; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + real mfcbb = c0o1; + real mfabb = c0o1; + real mfbcb = c0o1; + real mfbab = c0o1; + real mfbbc = c0o1; + real mfbba = c0o1; + real mfccb = c0o1; + real mfaab = c0o1; + real mfcab = c0o1; + real mfacb = c0o1; + real mfcbc = c0o1; + real mfaba = c0o1; + real mfcba = c0o1; + real mfabc = c0o1; + real mfbcc = c0o1; + real mfbaa = c0o1; + real mfbca = c0o1; + real mfbac = c0o1; + real mfbbb = c0o1; + real mfccc = c0o1; + real mfaac = c0o1; + real mfcac = c0o1; + real mfacc = c0o1; + real mfcca = c0o1; + real mfaaa = c0o1; + real mfcaa = c0o1; + real mfaca = c0o1; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // FIX /////////////////////////////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //AAAAAAAAAAAAHHHHHHHHHHHH!!!!! Mieser Test!!! - //b0= bx= by= bz= bxx= byy= bzz= bxy= bxz= byz= c0= cx= cy= cz= cxx= cyy= czz= cxy= cxz= cyz= axyz= bxyz= cxyz=zero; - //b0=zero; - //bx=zero; - //by=zero; - //bz=zero; - //bxx=zero; - //byy=zero; - //bzz=zero; - //bxy=zero; - //bxz=zero; - //byz=zero; - //c0=zero; - //cx=zero; - //cy=zero; - //cz=zero; - //cxx=zero; - //cyy=zero; - //czz=zero; - //cxy=zero; - //cxz=zero; - //cyz=zero; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real mfcbb = c0o1; - real mfabb = c0o1; - real mfbcb = c0o1; - real mfbab = c0o1; - real mfbbc = c0o1; - real mfbba = c0o1; - real mfccb = c0o1; - real mfaab = c0o1; - real mfcab = c0o1; - real mfacb = c0o1; - real mfcbc = c0o1; - real mfaba = c0o1; - real mfcba = c0o1; - real mfabc = c0o1; - real mfbcc = c0o1; - real mfbaa = c0o1; - real mfbca = c0o1; - real mfbac = c0o1; - real mfbbb = c0o1; - real mfccc = c0o1; - real mfaac = c0o1; - real mfcac = c0o1; - real mfacc = c0o1; - real mfcca = c0o1; - real mfaaa = c0o1; - real mfcaa = c0o1; - real mfaca = c0o1; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real m0, m1, m2, oMdrho; - real mxxPyyPzz, mxxMyy, mxxMzz, mxxyPyzz, mxxyMyzz, mxxzPyyz, mxxzMyyz, mxyyPxzz, mxyyMxzz; - //real qudricLimit = c1o100;//ganz schlechte Idee -> muss global sein - //real O3 = c2o1 - o; - //real residu, residutmp; - //residutmp = c0o1;///*-*/ c2o9 * (1./o - c1o2) * eps_new * eps_new; - real NeqOn = c1o1;//zero;//one; //.... one = on ..... zero = off - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position C 0., 0., 0. - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //x = 0.; - //y = 0.; - //z = 0.; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //real mxoff = -xoff; - //real myoff = -yoff; - //real mzoff = -zoff; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //press = press_NET * (c1o8 - c1o4 * mxoff - c1o4 * myoff - c1o4 * mzoff) + - // press_NWT * (c1o8 + c1o4 * mxoff - c1o4 * myoff - c1o4 * mzoff) + - // press_SET * (c1o8 - c1o4 * mxoff + c1o4 * myoff - c1o4 * mzoff) + - // press_SWT * (c1o8 + c1o4 * mxoff + c1o4 * myoff - c1o4 * mzoff) + - // press_NEB * (c1o8 - c1o4 * mxoff - c1o4 * myoff + c1o4 * mzoff) + - // press_NWB * (c1o8 + c1o4 * mxoff - c1o4 * myoff + c1o4 * mzoff) + - // press_SEB * (c1o8 - c1o4 * mxoff + c1o4 * myoff + c1o4 * mzoff) + - // press_SWB * (c1o8 + c1o4 * mxoff + c1o4 * myoff + c1o4 * mzoff); - //drho = drho_NET * (c1o8 - c1o4 * xoff - c1o4 * yoff - c1o4 * zoff) + - // drho_NWT * (c1o8 + c1o4 * xoff - c1o4 * yoff - c1o4 * zoff) + - // drho_SET * (c1o8 - c1o4 * xoff + c1o4 * yoff - c1o4 * zoff) + - // drho_SWT * (c1o8 + c1o4 * xoff + c1o4 * yoff - c1o4 * zoff) + - // drho_NEB * (c1o8 - c1o4 * xoff - c1o4 * yoff + c1o4 * zoff) + - // drho_NWB * (c1o8 + c1o4 * xoff - c1o4 * yoff + c1o4 * zoff) + - // drho_SEB * (c1o8 - c1o4 * xoff + c1o4 * yoff + c1o4 * zoff) + - // drho_SWB * (c1o8 + c1o4 * xoff + c1o4 * yoff + c1o4 * zoff); - press = d0; - vvx = a0; - vvy = b0; - vvz = c0; - - //mfaaa = drho; - //mfaaa = press + (ax+by+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //two - // linear combinations - real oP = o;// :( - mxxPyyPzz = mfaaa -c2o3*(ax+by+cz)*eps_new/oP*(c1o1+press); - //mxxMyy = -c2o3*(ax - by)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy)*eps_new/o; - //mfbab = -c1o3 * (az + cx)*eps_new/o; - //mfbba = -c1o3 * (ay + bx)*eps_new/o; - mxxMyy = -c2o3*((ax - by)+kxxMyyAverage)*eps_new/o * (c1o1 + press); - mxxMzz = -c2o3*((ax - cz)+kxxMzzAverage)*eps_new/o * (c1o1 + press); - - mfabb = -c1o3 * ((bz + cy)+kyzAverage)*eps_new/o * (c1o1 + press); - mfbab = -c1o3 * ((az + cx)+kxzAverage)*eps_new/o * (c1o1 + press); - mfbba = -c1o3 * ((ay + bx)+kxyAverage)*eps_new/o * (c1o1 + press); - - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //3. - // linear combinations - //residu = residutmp * (ayz + bxz + cxy ); - //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mfbbb = c0o1; - - //residu = residutmp * (axy + two*bxx + two*bzz + cyz ); - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz )); - //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyPyzz = c0o1; - - //residu = residutmp * (axy + two*bxx - two*bzz - cyz ); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz ); - //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyMyzz = c0o1; - - //residu = residutmp * (axz + byz + two*cxx + two*cyy ); - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy )); - //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzPyyz = c0o1; - - //residu = residutmp * (axz - byz + two*cxx - two*cyy ); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy ); - //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzMyyz = c0o1; - - //residu = residutmp * (two*ayy + two*azz + bxy + cxz ); - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz ); - //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyPxzz = c0o1; - - //residu = residutmp * (two*ayy - two*azz + bxy - cxz ); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz ); - //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyMxzz = c0o1; - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4. - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - //index 0 - kzero= posC[k]; - kw = neighborCX[kzero]; - ks = neighborCY[kzero]; - kb = neighborCZ[kzero]; - ksw = neighborCY[kw]; - kbw = neighborCZ[kw]; - kbs = neighborCZ[ks]; - kbsw = neighborCZ[ksw]; - //////////////////////////////////////////////////////////////////////////////////// - - - //////////////////////////////////////////////////////////////////////////////////// - feC[kzero] = mfcbb; - fwC[kw] = mfabb; - fnC[kzero] = mfbcb; - fsC[ks] = mfbab; - ftC[kzero] = mfbbc; - fbC[kb] = mfbba; - fneC[kzero] = mfccb; - fswC[ksw] = mfaab; - fseC[ks] = mfcab; - fnwC[kw] = mfacb; - fteC[kzero] = mfcbc; - fbwC[kbw] = mfaba; - fbeC[kb] = mfcba; - ftwC[kw] = mfabc; - ftnC[kzero] = mfbcc; - fbsC[kbs] = mfbaa; - fbnC[kb] = mfbca; - ftsC[ks] = mfbac; - fzeroC[kzero] = mfbbb; - ftneC[kzero] = mfccc; - ftseC[ks] = mfcac; - fbneC[kb] = mfcca; - fbseC[kbs] = mfcaa; - ftnwC[kw] = mfacc; - ftswC[ksw] = mfaac; - fbnwC[kbw] = mfaca; - fbswC[kbsw] = mfaaa; - //////////////////////////////////////////////////////////////////////////////////// + real m0, m1, m2, oMdrho; + real mxxPyyPzz, mxxMyy, mxxMzz, mxxyPyzz, mxxyMyzz, mxxzPyyz, mxxzMyyz, mxyyPxzz, mxyyMxzz; + //real qudricLimit = c1o100;//ganz schlechte Idee -> muss global sein + //real O3 = c2o1 - o; + //real residu, residutmp; + //residutmp = c0o1;///*-*/ c2o9 * (1./o - c1o2) * eps_new * eps_new; + real NeqOn = c1o1;//zero;//one; //.... one = on ..... zero = off + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position C 0., 0., 0. + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //x = 0.; + //y = 0.; + //z = 0.; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //real mxoff = -xoff; + //real myoff = -yoff; + //real mzoff = -zoff; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //press = press_NET * (c1o8 - c1o4 * mxoff - c1o4 * myoff - c1o4 * mzoff) + + // press_NWT * (c1o8 + c1o4 * mxoff - c1o4 * myoff - c1o4 * mzoff) + + // press_SET * (c1o8 - c1o4 * mxoff + c1o4 * myoff - c1o4 * mzoff) + + // press_SWT * (c1o8 + c1o4 * mxoff + c1o4 * myoff - c1o4 * mzoff) + + // press_NEB * (c1o8 - c1o4 * mxoff - c1o4 * myoff + c1o4 * mzoff) + + // press_NWB * (c1o8 + c1o4 * mxoff - c1o4 * myoff + c1o4 * mzoff) + + // press_SEB * (c1o8 - c1o4 * mxoff + c1o4 * myoff + c1o4 * mzoff) + + // press_SWB * (c1o8 + c1o4 * mxoff + c1o4 * myoff + c1o4 * mzoff); + //drho = drho_NET * (c1o8 - c1o4 * xoff - c1o4 * yoff - c1o4 * zoff) + + // drho_NWT * (c1o8 + c1o4 * xoff - c1o4 * yoff - c1o4 * zoff) + + // drho_SET * (c1o8 - c1o4 * xoff + c1o4 * yoff - c1o4 * zoff) + + // drho_SWT * (c1o8 + c1o4 * xoff + c1o4 * yoff - c1o4 * zoff) + + // drho_NEB * (c1o8 - c1o4 * xoff - c1o4 * yoff + c1o4 * zoff) + + // drho_NWB * (c1o8 + c1o4 * xoff - c1o4 * yoff + c1o4 * zoff) + + // drho_SEB * (c1o8 - c1o4 * xoff + c1o4 * yoff + c1o4 * zoff) + + // drho_SWB * (c1o8 + c1o4 * xoff + c1o4 * yoff + c1o4 * zoff); + press = d0; + vvx = a0; + vvy = b0; + vvz = c0; + + //mfaaa = drho; + //mfaaa = press + (ax+by+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1; + //oMdrho = one - mfaaa; + + //two + // linear combinations + real oP = o;// :( + mxxPyyPzz = mfaaa -c2o3*(ax+by+cz)*eps_new/oP*(c1o1+press); + //mxxMyy = -c2o3*(ax - by)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy)*eps_new/o; + //mfbab = -c1o3 * (az + cx)*eps_new/o; + //mfbba = -c1o3 * (ay + bx)*eps_new/o; + mxxMyy = -c2o3*((ax - by)+kxxMyyAverage)*eps_new/o * (c1o1 + press); + mxxMzz = -c2o3*((ax - cz)+kxxMzzAverage)*eps_new/o * (c1o1 + press); + + mfabb = -c1o3 * ((bz + cy)+kyzAverage)*eps_new/o * (c1o1 + press); + mfbab = -c1o3 * ((az + cx)+kxzAverage)*eps_new/o * (c1o1 + press); + mfbba = -c1o3 * ((ay + bx)+kxyAverage)*eps_new/o * (c1o1 + press); + + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //3. + // linear combinations + //residu = residutmp * (ayz + bxz + cxy ); + //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mfbbb = c0o1; + + //residu = residutmp * (axy + two*bxx + two*bzz + cyz ); + //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz )); + //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyPyzz = c0o1; + + //residu = residutmp * (axy + two*bxx - two*bzz - cyz ); + //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz ); + //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyMyzz = c0o1; + + //residu = residutmp * (axz + byz + two*cxx + two*cyy ); + //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy )); + //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzPyyz = c0o1; + + //residu = residutmp * (axz - byz + two*cxx - two*cyy ); + //residu = c1o9*(axz - byz - 2*cxx + 2*cyy ); + //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzMyyz = c0o1; + + //residu = residutmp * (two*ayy + two*azz + bxy + cxz ); + //residu = c1o9*(2*ayy + 2*azz - bxy - cxz ); + //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyPxzz = c0o1; + + //residu = residutmp * (two*ayy - two*azz + bxy - cxz ); + //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz ); + //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyMxzz = c0o1; + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4. + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + //index 0 + kzero= posC[k]; + kw = neighborCX[kzero]; + ks = neighborCY[kzero]; + kb = neighborCZ[kzero]; + ksw = neighborCY[kw]; + kbw = neighborCZ[kw]; + kbs = neighborCZ[ks]; + kbsw = neighborCZ[ksw]; + //////////////////////////////////////////////////////////////////////////////////// + + + //////////////////////////////////////////////////////////////////////////////////// + feC[kzero] = mfcbb; + fwC[kw] = mfabb; + fnC[kzero] = mfbcb; + fsC[ks] = mfbab; + ftC[kzero] = mfbbc; + fbC[kb] = mfbba; + fneC[kzero] = mfccb; + fswC[ksw] = mfaab; + fseC[ks] = mfcab; + fnwC[kw] = mfacb; + fteC[kzero] = mfcbc; + fbwC[kbw] = mfaba; + fbeC[kb] = mfcba; + ftwC[kw] = mfabc; + ftnC[kzero] = mfbcc; + fbsC[kbs] = mfbaa; + fbnC[kb] = mfbca; + ftsC[ks] = mfbac; + fzeroC[kzero] = mfbbb; + ftneC[kzero] = mfccc; + ftseC[ks] = mfcac; + fbneC[kb] = mfcca; + fbseC[kbs] = mfcaa; + ftnwC[kw] = mfacc; + ftswC[ksw] = mfaac; + fbnwC[kbw] = mfaca; + fbswC[kbsw] = mfaaa; + //////////////////////////////////////////////////////////////////////////////////// } } ////////////////////////////////////////////////////////////////////////// @@ -14327,27 +14327,27 @@ __global__ void scaleFC_Fix_comp_27( real* DC, ////////////////////////////////////////////////////////////////////////// __global__ void scaleFC_NSPress_27( real* DC, - real* DF, - unsigned int* neighborCX, - unsigned int* neighborCY, - unsigned int* neighborCZ, - unsigned int* neighborFX, - unsigned int* neighborFY, - unsigned int* neighborFZ, - unsigned long long numberOfLBnodesCoarse, - unsigned long long numberOfLBnodesFine, - bool isEvenTimestep, - unsigned int* posC, - unsigned int* posFSWB, - unsigned int kFC, - real omCoarse, - real omFine, - real nu, - unsigned int nxC, - unsigned int nyC, - unsigned int nxF, - unsigned int nyF, - ICellNeigh offFC) + real* DF, + unsigned int* neighborCX, + unsigned int* neighborCY, + unsigned int* neighborCZ, + unsigned int* neighborFX, + unsigned int* neighborFY, + unsigned int* neighborFZ, + unsigned long long numberOfLBnodesCoarse, + unsigned long long numberOfLBnodesFine, + bool isEvenTimestep, + unsigned int* posC, + unsigned int* posFSWB, + unsigned int kFC, + real omCoarse, + real omFine, + real nu, + unsigned int nxC, + unsigned int nyC, + unsigned int nxF, + unsigned int nyF, + ICellNeigh offFC) { real *feF, *fwF, *fnF, *fsF, *ftF, *fbF, *fneF, *fswF, *fseF, *fnwF, *fteF, *fbwF, *fbeF, *ftwF, *ftnF, *fbsF, *fbnF, *ftsF, *fzeroF, *ftneF, *ftswF, *ftseF, *ftnwF, *fbneF, *fbswF, *fbseF, *fbnwF; @@ -14547,13 +14547,13 @@ __global__ void scaleFC_NSPress_27( real* DC, //vx1_SWB = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_SWB = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_SWB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_SWB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_SWB = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_SWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_SWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_SWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_SWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_SWB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; - press_SWB = (f_E+f_W+f_N+f_S+f_T+f_B+c2o1*(f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS)+c3o1*(f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW)- - drho_SWB-(vx1_SWB*vx1_SWB+vx2_SWB*vx2_SWB+vx3_SWB*vx3_SWB)* (c1o1+drho_SWB)) * c1o2+drho_SWB; + press_SWB = (f_E+f_W+f_N+f_S+f_T+f_B+c2o1*(f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS)+c3o1*(f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW)- + drho_SWB-(vx1_SWB*vx1_SWB+vx2_SWB*vx2_SWB+vx3_SWB*vx3_SWB)* (c1o1+drho_SWB)) * c1o2+drho_SWB; kxyFromfcNEQ_SWB = -c3o1*omegaS*(f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE-(vx1_SWB*vx2_SWB)); kyzFromfcNEQ_SWB = -c3o1*omegaS*(f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW-(vx2_SWB*vx3_SWB)); @@ -14604,10 +14604,10 @@ __global__ void scaleFC_NSPress_27( real* DC, //vx1_SWT = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_SWT = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_SWT = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_SWT = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_SWT = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_SWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_SWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_SWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_SWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_SWT = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; press_SWT= (f_E+f_W+f_N+f_S+f_T+f_B+c2o1*(f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS)+c3o1*(f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW)- drho_SWT-(vx1_SWT*vx1_SWT+vx2_SWT*vx2_SWT+vx3_SWT*vx3_SWT)* (c1o1+drho_SWT)) * c1o2+drho_SWT; @@ -14661,10 +14661,10 @@ __global__ void scaleFC_NSPress_27( real* DC, //vx1_SET = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_SET = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_SET = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_SET = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_SET = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_SET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_SET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_SET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_SET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_SET = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; press_SET= (f_E+f_W+f_N+f_S+f_T+f_B+c2o1*(f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS)+c3o1*(f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW)- drho_SET-(vx1_SET*vx1_SET+vx2_SET*vx2_SET+vx3_SET*vx3_SET)* (c1o1+drho_SET)) * c1o2+drho_SET; @@ -14718,10 +14718,10 @@ __global__ void scaleFC_NSPress_27( real* DC, //vx1_SEB = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_SEB = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_SEB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_SEB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_SEB = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_SEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_SEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_SEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_SEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_SEB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; press_SEB= (f_E+f_W+f_N+f_S+f_T+f_B+c2o1*(f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS)+c3o1*(f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW)- drho_SEB-(vx1_SEB*vx1_SEB+vx2_SEB*vx2_SEB+vx3_SEB*vx3_SEB)* (c1o1+drho_SEB)) * c1o2+drho_SEB; @@ -14785,10 +14785,10 @@ __global__ void scaleFC_NSPress_27( real* DC, //vx1_NWB = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_NWB = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_NWB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_NWB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_NWB = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_NWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_NWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_NWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_NWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_NWB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; press_NWB= (f_E+f_W+f_N+f_S+f_T+f_B+c2o1*(f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS)+c3o1*(f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW)- drho_NWB-(vx1_NWB*vx1_NWB+vx2_NWB*vx2_NWB+vx3_NWB*vx3_NWB)* (c1o1+drho_NWB)) * c1o2+drho_NWB; @@ -14842,10 +14842,10 @@ __global__ void scaleFC_NSPress_27( real* DC, //vx1_NWT = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_NWT = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_NWT = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_NWT = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_NWT = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_NWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_NWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_NWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_NWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_NWT = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; press_NWT= (f_E+f_W+f_N+f_S+f_T+f_B+c2o1*(f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS)+c3o1*(f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW)- drho_NWT-(vx1_NWT*vx1_NWT+vx2_NWT*vx2_NWT+vx3_NWT*vx3_NWT)* (c1o1+drho_NWT)) * c1o2+drho_NWT; @@ -14899,10 +14899,10 @@ __global__ void scaleFC_NSPress_27( real* DC, //vx1_NET = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_NET = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_NET = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_NET = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_NET = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_NET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_NET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_NET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_NET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_NET = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; press_NET= (f_E+f_W+f_N+f_S+f_T+f_B+c2o1*(f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS)+c3o1*(f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW)- drho_NET-(vx1_NET*vx1_NET+vx2_NET*vx2_NET+vx3_NET*vx3_NET)* (c1o1+drho_NET)) * c1o2+drho_NET; @@ -14956,10 +14956,10 @@ __global__ void scaleFC_NSPress_27( real* DC, //vx1_NEB = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_NEB = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_NEB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_NEB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_NEB = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_NEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_NEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_NEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_NEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_NEB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; press_NEB= (f_E+f_W+f_N+f_S+f_T+f_B+c2o1*(f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS)+c3o1*(f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW)- drho_NEB-(vx1_NEB*vx1_NEB+vx2_NEB*vx2_NEB+vx3_NEB*vx3_NEB)* (c1o1+drho_NEB)) * c1o2+drho_NEB; @@ -14975,103 +14975,103 @@ __global__ void scaleFC_NSPress_27( real* DC, //3 ////////////////////////////////////////////////////////////////////////// a0 = (-kxxMyyFromfcNEQ_NEB - kxxMyyFromfcNEQ_NET + kxxMyyFromfcNEQ_NWB + kxxMyyFromfcNEQ_NWT - - kxxMyyFromfcNEQ_SEB - kxxMyyFromfcNEQ_SET + kxxMyyFromfcNEQ_SWB + kxxMyyFromfcNEQ_SWT - - kxxMzzFromfcNEQ_NEB - kxxMzzFromfcNEQ_NET + kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_NWT - - kxxMzzFromfcNEQ_SEB - kxxMzzFromfcNEQ_SET + kxxMzzFromfcNEQ_SWB + kxxMzzFromfcNEQ_SWT - - c2o1*kxyFromfcNEQ_NEB - c2o1*kxyFromfcNEQ_NET - c2o1*kxyFromfcNEQ_NWB - c2o1*kxyFromfcNEQ_NWT + - c2o1*kxyFromfcNEQ_SEB + c2o1*kxyFromfcNEQ_SET + c2o1*kxyFromfcNEQ_SWB + c2o1*kxyFromfcNEQ_SWT + - c2o1*kxzFromfcNEQ_NEB - c2o1*kxzFromfcNEQ_NET + c2o1*kxzFromfcNEQ_NWB - c2o1*kxzFromfcNEQ_NWT + - c2o1*kxzFromfcNEQ_SEB - c2o1*kxzFromfcNEQ_SET + c2o1*kxzFromfcNEQ_SWB - c2o1*kxzFromfcNEQ_SWT + - c8o1*vx1_NEB + c8o1*vx1_NET + c8o1*vx1_NWB + c8o1*vx1_NWT + c8o1*vx1_SEB + - c8o1*vx1_SET + c8o1*vx1_SWB + c8o1*vx1_SWT + c2o1*vx2_NEB + c2o1*vx2_NET - - c2o1*vx2_NWB - c2o1*vx2_NWT - c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB + - c2o1*vx2_SWT - c2o1*vx3_NEB + c2o1*vx3_NET + c2o1*vx3_NWB - c2o1*vx3_NWT - - c2o1*vx3_SEB + c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)/c64o1; + kxxMyyFromfcNEQ_SEB - kxxMyyFromfcNEQ_SET + kxxMyyFromfcNEQ_SWB + kxxMyyFromfcNEQ_SWT - + kxxMzzFromfcNEQ_NEB - kxxMzzFromfcNEQ_NET + kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_NWT - + kxxMzzFromfcNEQ_SEB - kxxMzzFromfcNEQ_SET + kxxMzzFromfcNEQ_SWB + kxxMzzFromfcNEQ_SWT - + c2o1*kxyFromfcNEQ_NEB - c2o1*kxyFromfcNEQ_NET - c2o1*kxyFromfcNEQ_NWB - c2o1*kxyFromfcNEQ_NWT + + c2o1*kxyFromfcNEQ_SEB + c2o1*kxyFromfcNEQ_SET + c2o1*kxyFromfcNEQ_SWB + c2o1*kxyFromfcNEQ_SWT + + c2o1*kxzFromfcNEQ_NEB - c2o1*kxzFromfcNEQ_NET + c2o1*kxzFromfcNEQ_NWB - c2o1*kxzFromfcNEQ_NWT + + c2o1*kxzFromfcNEQ_SEB - c2o1*kxzFromfcNEQ_SET + c2o1*kxzFromfcNEQ_SWB - c2o1*kxzFromfcNEQ_SWT + + c8o1*vx1_NEB + c8o1*vx1_NET + c8o1*vx1_NWB + c8o1*vx1_NWT + c8o1*vx1_SEB + + c8o1*vx1_SET + c8o1*vx1_SWB + c8o1*vx1_SWT + c2o1*vx2_NEB + c2o1*vx2_NET - + c2o1*vx2_NWB - c2o1*vx2_NWT - c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB + + c2o1*vx2_SWT - c2o1*vx3_NEB + c2o1*vx3_NET + c2o1*vx3_NWB - c2o1*vx3_NWT - + c2o1*vx3_SEB + c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)/c64o1; b0 = (c2o1*kxxMyyFromfcNEQ_NEB + c2o1*kxxMyyFromfcNEQ_NET + c2o1*kxxMyyFromfcNEQ_NWB + c2o1*kxxMyyFromfcNEQ_NWT - - c2o1*kxxMyyFromfcNEQ_SEB - c2o1*kxxMyyFromfcNEQ_SET - c2o1*kxxMyyFromfcNEQ_SWB - c2o1*kxxMyyFromfcNEQ_SWT - - kxxMzzFromfcNEQ_NEB - kxxMzzFromfcNEQ_NET - kxxMzzFromfcNEQ_NWB - kxxMzzFromfcNEQ_NWT + - kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_SET + kxxMzzFromfcNEQ_SWB + kxxMzzFromfcNEQ_SWT - - c2o1*kxyFromfcNEQ_NEB - c2o1*kxyFromfcNEQ_NET + c2o1*kxyFromfcNEQ_NWB + c2o1*kxyFromfcNEQ_NWT - - c2o1*kxyFromfcNEQ_SEB - c2o1*kxyFromfcNEQ_SET + c2o1*kxyFromfcNEQ_SWB + c2o1*kxyFromfcNEQ_SWT + - c2o1*kyzFromfcNEQ_NEB - c2o1*kyzFromfcNEQ_NET + c2o1*kyzFromfcNEQ_NWB - c2o1*kyzFromfcNEQ_NWT + - c2o1*kyzFromfcNEQ_SEB - c2o1*kyzFromfcNEQ_SET + c2o1*kyzFromfcNEQ_SWB - c2o1*kyzFromfcNEQ_SWT + - c2o1*vx1_NEB + c2o1*vx1_NET - c2o1*vx1_NWB - c2o1*vx1_NWT - - c2o1*vx1_SEB - c2o1*vx1_SET + c2o1*vx1_SWB + c2o1*vx1_SWT + - c8o1*vx2_NEB + c8o1*vx2_NET + c8o1*vx2_NWB + c8o1*vx2_NWT + - c8o1*vx2_SEB + c8o1*vx2_SET + c8o1*vx2_SWB + c8o1*vx2_SWT - - c2o1*vx3_NEB + c2o1*vx3_NET - c2o1*vx3_NWB + c2o1*vx3_NWT + - c2o1*vx3_SEB - c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)/c64o1; + c2o1*kxxMyyFromfcNEQ_SEB - c2o1*kxxMyyFromfcNEQ_SET - c2o1*kxxMyyFromfcNEQ_SWB - c2o1*kxxMyyFromfcNEQ_SWT - + kxxMzzFromfcNEQ_NEB - kxxMzzFromfcNEQ_NET - kxxMzzFromfcNEQ_NWB - kxxMzzFromfcNEQ_NWT + + kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_SET + kxxMzzFromfcNEQ_SWB + kxxMzzFromfcNEQ_SWT - + c2o1*kxyFromfcNEQ_NEB - c2o1*kxyFromfcNEQ_NET + c2o1*kxyFromfcNEQ_NWB + c2o1*kxyFromfcNEQ_NWT - + c2o1*kxyFromfcNEQ_SEB - c2o1*kxyFromfcNEQ_SET + c2o1*kxyFromfcNEQ_SWB + c2o1*kxyFromfcNEQ_SWT + + c2o1*kyzFromfcNEQ_NEB - c2o1*kyzFromfcNEQ_NET + c2o1*kyzFromfcNEQ_NWB - c2o1*kyzFromfcNEQ_NWT + + c2o1*kyzFromfcNEQ_SEB - c2o1*kyzFromfcNEQ_SET + c2o1*kyzFromfcNEQ_SWB - c2o1*kyzFromfcNEQ_SWT + + c2o1*vx1_NEB + c2o1*vx1_NET - c2o1*vx1_NWB - c2o1*vx1_NWT - + c2o1*vx1_SEB - c2o1*vx1_SET + c2o1*vx1_SWB + c2o1*vx1_SWT + + c8o1*vx2_NEB + c8o1*vx2_NET + c8o1*vx2_NWB + c8o1*vx2_NWT + + c8o1*vx2_SEB + c8o1*vx2_SET + c8o1*vx2_SWB + c8o1*vx2_SWT - + c2o1*vx3_NEB + c2o1*vx3_NET - c2o1*vx3_NWB + c2o1*vx3_NWT + + c2o1*vx3_SEB - c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)/c64o1; c0 = (kxxMyyFromfcNEQ_NEB - kxxMyyFromfcNEQ_NET + kxxMyyFromfcNEQ_NWB - kxxMyyFromfcNEQ_NWT + - kxxMyyFromfcNEQ_SEB - kxxMyyFromfcNEQ_SET + kxxMyyFromfcNEQ_SWB - kxxMyyFromfcNEQ_SWT - - c2o1*kxxMzzFromfcNEQ_NEB + c2o1*kxxMzzFromfcNEQ_NET - c2o1*kxxMzzFromfcNEQ_NWB + c2o1*kxxMzzFromfcNEQ_NWT - - c2o1*kxxMzzFromfcNEQ_SEB + c2o1*kxxMzzFromfcNEQ_SET - c2o1*kxxMzzFromfcNEQ_SWB + c2o1*kxxMzzFromfcNEQ_SWT - - c2o1*kxzFromfcNEQ_NEB - c2o1*kxzFromfcNEQ_NET + c2o1*kxzFromfcNEQ_NWB + c2o1*kxzFromfcNEQ_NWT - - c2o1*kxzFromfcNEQ_SEB - c2o1*kxzFromfcNEQ_SET + c2o1*kxzFromfcNEQ_SWB + c2o1*kxzFromfcNEQ_SWT - - c2o1*kyzFromfcNEQ_NEB - c2o1*kyzFromfcNEQ_NET - c2o1*kyzFromfcNEQ_NWB - c2o1*kyzFromfcNEQ_NWT + - c2o1*kyzFromfcNEQ_SEB + c2o1*kyzFromfcNEQ_SET + c2o1*kyzFromfcNEQ_SWB + c2o1*kyzFromfcNEQ_SWT - - c2o1*vx1_NEB + c2o1*vx1_NET + c2o1*vx1_NWB - c2o1*vx1_NWT - - c2o1*vx1_SEB + c2o1*vx1_SET + c2o1*vx1_SWB - c2o1*vx1_SWT - - c2o1*vx2_NEB + c2o1*vx2_NET - c2o1*vx2_NWB + c2o1*vx2_NWT + - c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB - c2o1*vx2_SWT + - c8o1*vx3_NEB + c8o1*vx3_NET + c8o1*vx3_NWB + c8o1*vx3_NWT + - c8o1*vx3_SEB + c8o1*vx3_SET + c8o1*vx3_SWB + c8o1*vx3_SWT)/c64o1; + kxxMyyFromfcNEQ_SEB - kxxMyyFromfcNEQ_SET + kxxMyyFromfcNEQ_SWB - kxxMyyFromfcNEQ_SWT - + c2o1*kxxMzzFromfcNEQ_NEB + c2o1*kxxMzzFromfcNEQ_NET - c2o1*kxxMzzFromfcNEQ_NWB + c2o1*kxxMzzFromfcNEQ_NWT - + c2o1*kxxMzzFromfcNEQ_SEB + c2o1*kxxMzzFromfcNEQ_SET - c2o1*kxxMzzFromfcNEQ_SWB + c2o1*kxxMzzFromfcNEQ_SWT - + c2o1*kxzFromfcNEQ_NEB - c2o1*kxzFromfcNEQ_NET + c2o1*kxzFromfcNEQ_NWB + c2o1*kxzFromfcNEQ_NWT - + c2o1*kxzFromfcNEQ_SEB - c2o1*kxzFromfcNEQ_SET + c2o1*kxzFromfcNEQ_SWB + c2o1*kxzFromfcNEQ_SWT - + c2o1*kyzFromfcNEQ_NEB - c2o1*kyzFromfcNEQ_NET - c2o1*kyzFromfcNEQ_NWB - c2o1*kyzFromfcNEQ_NWT + + c2o1*kyzFromfcNEQ_SEB + c2o1*kyzFromfcNEQ_SET + c2o1*kyzFromfcNEQ_SWB + c2o1*kyzFromfcNEQ_SWT - + c2o1*vx1_NEB + c2o1*vx1_NET + c2o1*vx1_NWB - c2o1*vx1_NWT - + c2o1*vx1_SEB + c2o1*vx1_SET + c2o1*vx1_SWB - c2o1*vx1_SWT - + c2o1*vx2_NEB + c2o1*vx2_NET - c2o1*vx2_NWB + c2o1*vx2_NWT + + c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB - c2o1*vx2_SWT + + c8o1*vx3_NEB + c8o1*vx3_NET + c8o1*vx3_NWB + c8o1*vx3_NWT + + c8o1*vx3_SEB + c8o1*vx3_SET + c8o1*vx3_SWB + c8o1*vx3_SWT)/c64o1; ax = (vx1_NEB + vx1_NET - vx1_NWB - vx1_NWT + vx1_SEB + vx1_SET - vx1_SWB - vx1_SWT)/c4o1; bx = (vx2_NEB + vx2_NET - vx2_NWB - vx2_NWT + vx2_SEB + vx2_SET - vx2_SWB - vx2_SWT)/c4o1; cx = (vx3_NEB + vx3_NET - vx3_NWB - vx3_NWT + vx3_SEB + vx3_SET - vx3_SWB - vx3_SWT)/c4o1; axx= (kxxMyyFromfcNEQ_NEB + kxxMyyFromfcNEQ_NET - kxxMyyFromfcNEQ_NWB - kxxMyyFromfcNEQ_NWT + - kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_SET - kxxMyyFromfcNEQ_SWB - kxxMyyFromfcNEQ_SWT + - kxxMzzFromfcNEQ_NEB + kxxMzzFromfcNEQ_NET - kxxMzzFromfcNEQ_NWB - kxxMzzFromfcNEQ_NWT + - kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_SET - kxxMzzFromfcNEQ_SWB - kxxMzzFromfcNEQ_SWT + - c2o1*vx2_NEB + c2o1*vx2_NET - c2o1*vx2_NWB - c2o1*vx2_NWT - - c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB + c2o1*vx2_SWT - - c2o1*vx3_NEB + c2o1*vx3_NET + c2o1*vx3_NWB - c2o1*vx3_NWT - - c2o1*vx3_SEB + c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)/c16o1; + kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_SET - kxxMyyFromfcNEQ_SWB - kxxMyyFromfcNEQ_SWT + + kxxMzzFromfcNEQ_NEB + kxxMzzFromfcNEQ_NET - kxxMzzFromfcNEQ_NWB - kxxMzzFromfcNEQ_NWT + + kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_SET - kxxMzzFromfcNEQ_SWB - kxxMzzFromfcNEQ_SWT + + c2o1*vx2_NEB + c2o1*vx2_NET - c2o1*vx2_NWB - c2o1*vx2_NWT - + c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB + c2o1*vx2_SWT - + c2o1*vx3_NEB + c2o1*vx3_NET + c2o1*vx3_NWB - c2o1*vx3_NWT - + c2o1*vx3_SEB + c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)/c16o1; bxx= (kxyFromfcNEQ_NEB + kxyFromfcNEQ_NET - kxyFromfcNEQ_NWB - kxyFromfcNEQ_NWT + - kxyFromfcNEQ_SEB + kxyFromfcNEQ_SET - kxyFromfcNEQ_SWB - kxyFromfcNEQ_SWT - - c2o1*vx1_NEB - c2o1*vx1_NET + c2o1*vx1_NWB + c2o1*vx1_NWT + - c2o1*vx1_SEB + c2o1*vx1_SET - c2o1*vx1_SWB - c2o1*vx1_SWT)/c8o1; + kxyFromfcNEQ_SEB + kxyFromfcNEQ_SET - kxyFromfcNEQ_SWB - kxyFromfcNEQ_SWT - + c2o1*vx1_NEB - c2o1*vx1_NET + c2o1*vx1_NWB + c2o1*vx1_NWT + + c2o1*vx1_SEB + c2o1*vx1_SET - c2o1*vx1_SWB - c2o1*vx1_SWT)/c8o1; cxx= (kxzFromfcNEQ_NEB + kxzFromfcNEQ_NET - kxzFromfcNEQ_NWB - kxzFromfcNEQ_NWT + - kxzFromfcNEQ_SEB + kxzFromfcNEQ_SET - kxzFromfcNEQ_SWB - kxzFromfcNEQ_SWT + - c2o1*vx1_NEB - c2o1*vx1_NET - c2o1*vx1_NWB + c2o1*vx1_NWT + - c2o1*vx1_SEB - c2o1*vx1_SET - c2o1*vx1_SWB + c2o1*vx1_SWT)/c8o1; + kxzFromfcNEQ_SEB + kxzFromfcNEQ_SET - kxzFromfcNEQ_SWB - kxzFromfcNEQ_SWT + + c2o1*vx1_NEB - c2o1*vx1_NET - c2o1*vx1_NWB + c2o1*vx1_NWT + + c2o1*vx1_SEB - c2o1*vx1_SET - c2o1*vx1_SWB + c2o1*vx1_SWT)/c8o1; ay = (vx1_NEB + vx1_NET + vx1_NWB + vx1_NWT - vx1_SEB - vx1_SET - vx1_SWB - vx1_SWT)/c4o1; by = (vx2_NEB + vx2_NET + vx2_NWB + vx2_NWT - vx2_SEB - vx2_SET - vx2_SWB - vx2_SWT)/c4o1; cy = (vx3_NEB + vx3_NET + vx3_NWB + vx3_NWT - vx3_SEB - vx3_SET - vx3_SWB - vx3_SWT)/c4o1; ayy= (kxyFromfcNEQ_NEB + kxyFromfcNEQ_NET + kxyFromfcNEQ_NWB + kxyFromfcNEQ_NWT - - kxyFromfcNEQ_SEB - kxyFromfcNEQ_SET - kxyFromfcNEQ_SWB - kxyFromfcNEQ_SWT - - c2o1*vx2_NEB - c2o1*vx2_NET + c2o1*vx2_NWB + c2o1*vx2_NWT + - c2o1*vx2_SEB + c2o1*vx2_SET - c2o1*vx2_SWB - c2o1*vx2_SWT)/c8o1; + kxyFromfcNEQ_SEB - kxyFromfcNEQ_SET - kxyFromfcNEQ_SWB - kxyFromfcNEQ_SWT - + c2o1*vx2_NEB - c2o1*vx2_NET + c2o1*vx2_NWB + c2o1*vx2_NWT + + c2o1*vx2_SEB + c2o1*vx2_SET - c2o1*vx2_SWB - c2o1*vx2_SWT)/c8o1; byy= (-c2o1*kxxMyyFromfcNEQ_NEB - c2o1*kxxMyyFromfcNEQ_NET - c2o1*kxxMyyFromfcNEQ_NWB - c2o1*kxxMyyFromfcNEQ_NWT + - c2o1*kxxMyyFromfcNEQ_SEB + c2o1*kxxMyyFromfcNEQ_SET + c2o1*kxxMyyFromfcNEQ_SWB + c2o1*kxxMyyFromfcNEQ_SWT + - kxxMzzFromfcNEQ_NEB + kxxMzzFromfcNEQ_NET + kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_NWT - - kxxMzzFromfcNEQ_SEB - kxxMzzFromfcNEQ_SET - kxxMzzFromfcNEQ_SWB - kxxMzzFromfcNEQ_SWT + - c2o1*vx1_NEB + c2o1*vx1_NET - c2o1*vx1_NWB - c2o1*vx1_NWT - - c2o1*vx1_SEB - c2o1*vx1_SET + c2o1*vx1_SWB + c2o1*vx1_SWT - - c2o1*vx3_NEB + c2o1*vx3_NET - c2o1*vx3_NWB + c2o1*vx3_NWT + - c2o1*vx3_SEB - c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)/c16o1; + c2o1*kxxMyyFromfcNEQ_SEB + c2o1*kxxMyyFromfcNEQ_SET + c2o1*kxxMyyFromfcNEQ_SWB + c2o1*kxxMyyFromfcNEQ_SWT + + kxxMzzFromfcNEQ_NEB + kxxMzzFromfcNEQ_NET + kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_NWT - + kxxMzzFromfcNEQ_SEB - kxxMzzFromfcNEQ_SET - kxxMzzFromfcNEQ_SWB - kxxMzzFromfcNEQ_SWT + + c2o1*vx1_NEB + c2o1*vx1_NET - c2o1*vx1_NWB - c2o1*vx1_NWT - + c2o1*vx1_SEB - c2o1*vx1_SET + c2o1*vx1_SWB + c2o1*vx1_SWT - + c2o1*vx3_NEB + c2o1*vx3_NET - c2o1*vx3_NWB + c2o1*vx3_NWT + + c2o1*vx3_SEB - c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)/c16o1; cyy= (kyzFromfcNEQ_NEB + kyzFromfcNEQ_NET + kyzFromfcNEQ_NWB + kyzFromfcNEQ_NWT - - kyzFromfcNEQ_SEB - kyzFromfcNEQ_SET - kyzFromfcNEQ_SWB - kyzFromfcNEQ_SWT + - c2o1*vx2_NEB - c2o1*vx2_NET + c2o1*vx2_NWB - c2o1*vx2_NWT - - c2o1*vx2_SEB + c2o1*vx2_SET - c2o1*vx2_SWB + c2o1*vx2_SWT)/c8o1; + kyzFromfcNEQ_SEB - kyzFromfcNEQ_SET - kyzFromfcNEQ_SWB - kyzFromfcNEQ_SWT + + c2o1*vx2_NEB - c2o1*vx2_NET + c2o1*vx2_NWB - c2o1*vx2_NWT - + c2o1*vx2_SEB + c2o1*vx2_SET - c2o1*vx2_SWB + c2o1*vx2_SWT)/c8o1; az = (-vx1_NEB + vx1_NET - vx1_NWB + vx1_NWT - vx1_SEB + vx1_SET - vx1_SWB + vx1_SWT)/c4o1; bz = (-vx2_NEB + vx2_NET - vx2_NWB + vx2_NWT - vx2_SEB + vx2_SET - vx2_SWB + vx2_SWT)/c4o1; cz = (-vx3_NEB + vx3_NET - vx3_NWB + vx3_NWT - vx3_SEB + vx3_SET - vx3_SWB + vx3_SWT)/c4o1; azz= (-kxzFromfcNEQ_NEB + kxzFromfcNEQ_NET - kxzFromfcNEQ_NWB + kxzFromfcNEQ_NWT - - kxzFromfcNEQ_SEB + kxzFromfcNEQ_SET - kxzFromfcNEQ_SWB + kxzFromfcNEQ_SWT + - c2o1*vx3_NEB - c2o1*vx3_NET - c2o1*vx3_NWB + c2o1*vx3_NWT + - c2o1*vx3_SEB - c2o1*vx3_SET - c2o1*vx3_SWB + c2o1*vx3_SWT)/c8o1; + kxzFromfcNEQ_SEB + kxzFromfcNEQ_SET - kxzFromfcNEQ_SWB + kxzFromfcNEQ_SWT + + c2o1*vx3_NEB - c2o1*vx3_NET - c2o1*vx3_NWB + c2o1*vx3_NWT + + c2o1*vx3_SEB - c2o1*vx3_SET - c2o1*vx3_SWB + c2o1*vx3_SWT)/c8o1; bzz= (-kyzFromfcNEQ_NEB + kyzFromfcNEQ_NET - kyzFromfcNEQ_NWB + kyzFromfcNEQ_NWT - - kyzFromfcNEQ_SEB + kyzFromfcNEQ_SET - kyzFromfcNEQ_SWB + kyzFromfcNEQ_SWT + - c2o1*vx3_NEB - c2o1*vx3_NET + c2o1*vx3_NWB - c2o1*vx3_NWT - - c2o1*vx3_SEB + c2o1*vx3_SET - c2o1*vx3_SWB + c2o1*vx3_SWT)/c8o1; + kyzFromfcNEQ_SEB + kyzFromfcNEQ_SET - kyzFromfcNEQ_SWB + kyzFromfcNEQ_SWT + + c2o1*vx3_NEB - c2o1*vx3_NET + c2o1*vx3_NWB - c2o1*vx3_NWT - + c2o1*vx3_SEB + c2o1*vx3_SET - c2o1*vx3_SWB + c2o1*vx3_SWT)/c8o1; czz= (-kxxMyyFromfcNEQ_NEB + kxxMyyFromfcNEQ_NET - kxxMyyFromfcNEQ_NWB + kxxMyyFromfcNEQ_NWT - - kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_SET - kxxMyyFromfcNEQ_SWB + kxxMyyFromfcNEQ_SWT + - c2o1*kxxMzzFromfcNEQ_NEB - c2o1*kxxMzzFromfcNEQ_NET + c2o1*kxxMzzFromfcNEQ_NWB - c2o1*kxxMzzFromfcNEQ_NWT + - c2o1*kxxMzzFromfcNEQ_SEB - c2o1*kxxMzzFromfcNEQ_SET + c2o1*kxxMzzFromfcNEQ_SWB - c2o1*kxxMzzFromfcNEQ_SWT - - c2o1*vx1_NEB + c2o1*vx1_NET + c2o1*vx1_NWB - c2o1*vx1_NWT - - c2o1*vx1_SEB + c2o1*vx1_SET + c2o1*vx1_SWB - c2o1*vx1_SWT - - c2o1*vx2_NEB + c2o1*vx2_NET - c2o1*vx2_NWB + c2o1*vx2_NWT + - c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB - c2o1*vx2_SWT)/c16o1; + kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_SET - kxxMyyFromfcNEQ_SWB + kxxMyyFromfcNEQ_SWT + + c2o1*kxxMzzFromfcNEQ_NEB - c2o1*kxxMzzFromfcNEQ_NET + c2o1*kxxMzzFromfcNEQ_NWB - c2o1*kxxMzzFromfcNEQ_NWT + + c2o1*kxxMzzFromfcNEQ_SEB - c2o1*kxxMzzFromfcNEQ_SET + c2o1*kxxMzzFromfcNEQ_SWB - c2o1*kxxMzzFromfcNEQ_SWT - + c2o1*vx1_NEB + c2o1*vx1_NET + c2o1*vx1_NWB - c2o1*vx1_NWT - + c2o1*vx1_SEB + c2o1*vx1_SET + c2o1*vx1_SWB - c2o1*vx1_SWT - + c2o1*vx2_NEB + c2o1*vx2_NET - c2o1*vx2_NWB + c2o1*vx2_NWT + + c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB - c2o1*vx2_SWT)/c16o1; axy= (vx1_NEB + vx1_NET - vx1_NWB - vx1_NWT - vx1_SEB - vx1_SET + vx1_SWB + vx1_SWT)/c2o1; bxy= (vx2_NEB + vx2_NET - vx2_NWB - vx2_NWT - vx2_SEB - vx2_SET + vx2_SWB + vx2_SWT)/c2o1; cxy= (vx3_NEB + vx3_NET - vx3_NWB - vx3_NWT - vx3_SEB - vx3_SET + vx3_SWB + vx3_SWT)/c2o1; @@ -15105,394 +15105,394 @@ __global__ void scaleFC_NSPress_27( real* DC, cy = cy + c2o1 * yoff * cyy + xoff * cxy + zoff * cyz; cz = cz + c2o1 * zoff * czz + xoff * cxz + yoff * cyz; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // FIX /////////////////////////////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real mfcbb = c0o1; - real mfabb = c0o1; - real mfbcb = c0o1; - real mfbab = c0o1; - real mfbbc = c0o1; - real mfbba = c0o1; - real mfccb = c0o1; - real mfaab = c0o1; - real mfcab = c0o1; - real mfacb = c0o1; - real mfcbc = c0o1; - real mfaba = c0o1; - real mfcba = c0o1; - real mfabc = c0o1; - real mfbcc = c0o1; - real mfbaa = c0o1; - real mfbca = c0o1; - real mfbac = c0o1; - real mfbbb = c0o1; - real mfccc = c0o1; - real mfaac = c0o1; - real mfcac = c0o1; - real mfacc = c0o1; - real mfcca = c0o1; - real mfaaa = c0o1; - real mfcaa = c0o1; - real mfaca = c0o1; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real m0, m1, m2, vvx, vvy, vvz, vx2, vy2, vz2, oMdrho; - real mxxPyyPzz, mxxMyy, mxxMzz, mxxyPyzz, mxxyMyzz, mxxzPyyz, mxxzMyyz, mxyyPxzz, mxyyMxzz; - real qudricLimit = c1o100;//ganz schlechte Idee -> muss global sein - real O3 = c2o1 - o; - real residu, residutmp; - residutmp = c0o1;///*-*/ c2o9 * (1./o - c1o2) * eps_new * eps_new; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position C 0., 0., 0. - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //x = 0.; - //y = 0.; - //z = 0.; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - press = (press_NET + press_NWT + press_SET + press_SWT + press_NEB + press_NWB + press_SEB + press_SWB) * c1o8; - - if(xoff!=c0o1 || yoff!=c0o1 || zoff!=c0o1){ - real dx, dy, dz; - dx=c2o1*nu*(axx+ayy+azz); - dy=c2o1*nu*(bxx+byy+bzz); - dz=c2o1*nu*(cxx+cyy+czz); - press = press + xoff * dx + yoff * dy + zoff * dz; - } - //drho = drho_NET * (c1o8 - c1o4 * xoff - c1o4 * yoff - c1o4 * zoff) + - // drho_NWT * (c1o8 + c1o4 * xoff - c1o4 * yoff - c1o4 * zoff) + - // drho_SET * (c1o8 - c1o4 * xoff + c1o4 * yoff - c1o4 * zoff) + - // drho_SWT * (c1o8 + c1o4 * xoff + c1o4 * yoff - c1o4 * zoff) + - // drho_NEB * (c1o8 - c1o4 * xoff - c1o4 * yoff + c1o4 * zoff) + - // drho_NWB * (c1o8 + c1o4 * xoff - c1o4 * yoff + c1o4 * zoff) + - // drho_SEB * (c1o8 - c1o4 * xoff + c1o4 * yoff + c1o4 * zoff) + - // drho_SWB * (c1o8 + c1o4 * xoff + c1o4 * yoff + c1o4 * zoff); - vvx = a0; - vvy = b0; - vvz = c0; - - //mfaaa = drho; - mfaaa = press + (ax+by+cz)/c3o1; // 1/3 = 2/3*(1/op-1/2) - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1 - mfaaa; - - //two - // linear combinations - mxxPyyPzz = mfaaa; - mxxMyy = -c2o3*(ax - by)*eps_new/o; - mxxMzz = -c2o3*(ax - cz)*eps_new/o; - - mfabb = -c1o3 * (bz + cy)*eps_new/o; - mfbab = -c1o3 * (az + cx)*eps_new/o; - mfbba = -c1o3 * (ay + bx)*eps_new/o; - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz); - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz); - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz); - - //3. - // linear combinations - residu = residutmp * (ayz + bxz + cxy ); - mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - - residu = residutmp * (axy + c2o1*bxx + c2o1*bzz + cyz ); - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz )); - mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - - residu = residutmp * (axy + c2o1*bxx - c2o1*bzz - cyz ); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz ); - mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - - residu = residutmp * (axz + byz + c2o1*cxx + c2o1*cyy ); - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy )); - mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - - residu = residutmp * (axz - byz + c2o1*cxx - c2o1*cyy ); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy ); - mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - - residu = residutmp * (c2o1*ayy + c2o1*azz + bxy + cxz ); - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz ); - mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - - residu = residutmp * (c2o1*ayy - c2o1*azz + bxy - cxz ); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz ); - mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4. - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - //index 0 - kzero= posC[k]; - kw = neighborCX[kzero]; - ks = neighborCY[kzero]; - kb = neighborCZ[kzero]; - ksw = neighborCY[kw]; - kbw = neighborCZ[kw]; - kbs = neighborCZ[ks]; - kbsw = neighborCZ[ksw]; - //////////////////////////////////////////////////////////////////////////////////// - - - //////////////////////////////////////////////////////////////////////////////////// - feC[kzero] = mfcbb; - fwC[kw] = mfabb; - fnC[kzero] = mfbcb; - fsC[ks] = mfbab; - ftC[kzero] = mfbbc; - fbC[kb] = mfbba; - fneC[kzero] = mfccb; - fswC[ksw] = mfaab; - fseC[ks] = mfcab; - fnwC[kw] = mfacb; - fteC[kzero] = mfcbc; - fbwC[kbw] = mfaba; - fbeC[kb] = mfcba; - ftwC[kw] = mfabc; - ftnC[kzero] = mfbcc; - fbsC[kbs] = mfbaa; - fbnC[kb] = mfbca; - ftsC[ks] = mfbac; - fzeroC[kzero] = mfbbb; - ftneC[kzero] = mfccc; - ftseC[ks] = mfcac; - fbneC[kb] = mfcca; - fbseC[kbs] = mfcaa; - ftnwC[kw] = mfacc; - ftswC[ksw] = mfaac; - fbnwC[kbw] = mfaca; - fbswC[kbsw] = mfaaa; - //////////////////////////////////////////////////////////////////////////////////// + // FIX /////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + real mfcbb = c0o1; + real mfabb = c0o1; + real mfbcb = c0o1; + real mfbab = c0o1; + real mfbbc = c0o1; + real mfbba = c0o1; + real mfccb = c0o1; + real mfaab = c0o1; + real mfcab = c0o1; + real mfacb = c0o1; + real mfcbc = c0o1; + real mfaba = c0o1; + real mfcba = c0o1; + real mfabc = c0o1; + real mfbcc = c0o1; + real mfbaa = c0o1; + real mfbca = c0o1; + real mfbac = c0o1; + real mfbbb = c0o1; + real mfccc = c0o1; + real mfaac = c0o1; + real mfcac = c0o1; + real mfacc = c0o1; + real mfcca = c0o1; + real mfaaa = c0o1; + real mfcaa = c0o1; + real mfaca = c0o1; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + real m0, m1, m2, vvx, vvy, vvz, vx2, vy2, vz2, oMdrho; + real mxxPyyPzz, mxxMyy, mxxMzz, mxxyPyzz, mxxyMyzz, mxxzPyyz, mxxzMyyz, mxyyPxzz, mxyyMxzz; + real qudricLimit = c1o100;//ganz schlechte Idee -> muss global sein + real O3 = c2o1 - o; + real residu, residutmp; + residutmp = c0o1;///*-*/ c2o9 * (1./o - c1o2) * eps_new * eps_new; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position C 0., 0., 0. + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //x = 0.; + //y = 0.; + //z = 0.; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + press = (press_NET + press_NWT + press_SET + press_SWT + press_NEB + press_NWB + press_SEB + press_SWB) * c1o8; + + if(xoff!=c0o1 || yoff!=c0o1 || zoff!=c0o1){ + real dx, dy, dz; + dx=c2o1*nu*(axx+ayy+azz); + dy=c2o1*nu*(bxx+byy+bzz); + dz=c2o1*nu*(cxx+cyy+czz); + press = press + xoff * dx + yoff * dy + zoff * dz; + } + //drho = drho_NET * (c1o8 - c1o4 * xoff - c1o4 * yoff - c1o4 * zoff) + + // drho_NWT * (c1o8 + c1o4 * xoff - c1o4 * yoff - c1o4 * zoff) + + // drho_SET * (c1o8 - c1o4 * xoff + c1o4 * yoff - c1o4 * zoff) + + // drho_SWT * (c1o8 + c1o4 * xoff + c1o4 * yoff - c1o4 * zoff) + + // drho_NEB * (c1o8 - c1o4 * xoff - c1o4 * yoff + c1o4 * zoff) + + // drho_NWB * (c1o8 + c1o4 * xoff - c1o4 * yoff + c1o4 * zoff) + + // drho_SEB * (c1o8 - c1o4 * xoff + c1o4 * yoff + c1o4 * zoff) + + // drho_SWB * (c1o8 + c1o4 * xoff + c1o4 * yoff + c1o4 * zoff); + vvx = a0; + vvy = b0; + vvz = c0; + + //mfaaa = drho; + mfaaa = press + (ax+by+cz)/c3o1; // 1/3 = 2/3*(1/op-1/2) + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1 - mfaaa; + + //two + // linear combinations + mxxPyyPzz = mfaaa; + mxxMyy = -c2o3*(ax - by)*eps_new/o; + mxxMzz = -c2o3*(ax - cz)*eps_new/o; + + mfabb = -c1o3 * (bz + cy)*eps_new/o; + mfbab = -c1o3 * (az + cx)*eps_new/o; + mfbba = -c1o3 * (ay + bx)*eps_new/o; + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz); + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz); + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz); + + //3. + // linear combinations + residu = residutmp * (ayz + bxz + cxy ); + mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + + residu = residutmp * (axy + c2o1*bxx + c2o1*bzz + cyz ); + //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz )); + mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + + residu = residutmp * (axy + c2o1*bxx - c2o1*bzz - cyz ); + //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz ); + mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + + residu = residutmp * (axz + byz + c2o1*cxx + c2o1*cyy ); + //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy )); + mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + + residu = residutmp * (axz - byz + c2o1*cxx - c2o1*cyy ); + //residu = c1o9*(axz - byz - 2*cxx + 2*cyy ); + mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + + residu = residutmp * (c2o1*ayy + c2o1*azz + bxy + cxz ); + //residu = c1o9*(2*ayy + 2*azz - bxy - cxz ); + mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + + residu = residutmp * (c2o1*ayy - c2o1*azz + bxy - cxz ); + //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz ); + mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4. + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + //index 0 + kzero= posC[k]; + kw = neighborCX[kzero]; + ks = neighborCY[kzero]; + kb = neighborCZ[kzero]; + ksw = neighborCY[kw]; + kbw = neighborCZ[kw]; + kbs = neighborCZ[ks]; + kbsw = neighborCZ[ksw]; + //////////////////////////////////////////////////////////////////////////////////// + + + //////////////////////////////////////////////////////////////////////////////////// + feC[kzero] = mfcbb; + fwC[kw] = mfabb; + fnC[kzero] = mfbcb; + fsC[ks] = mfbab; + ftC[kzero] = mfbbc; + fbC[kb] = mfbba; + fneC[kzero] = mfccb; + fswC[ksw] = mfaab; + fseC[ks] = mfcab; + fnwC[kw] = mfacb; + fteC[kzero] = mfcbc; + fbwC[kbw] = mfaba; + fbeC[kb] = mfcba; + ftwC[kw] = mfabc; + ftnC[kzero] = mfbcc; + fbsC[kbs] = mfbaa; + fbnC[kb] = mfbca; + ftsC[ks] = mfbac; + fzeroC[kzero] = mfbbb; + ftneC[kzero] = mfccc; + ftseC[ks] = mfcac; + fbneC[kb] = mfcca; + fbseC[kbs] = mfcaa; + ftnwC[kw] = mfacc; + ftswC[ksw] = mfaac; + fbnwC[kbw] = mfaca; + fbswC[kbsw] = mfaaa; + //////////////////////////////////////////////////////////////////////////////////// } } ////////////////////////////////////////////////////////////////////////// @@ -15754,13 +15754,13 @@ __global__ void scaleFC_Fix_27( real* DC, //vx1_SWB = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_SWB = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_SWB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_SWB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_SWB = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_SWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_SWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_SWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_SWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_SWB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; - //press_SWB = (f_E+f_W+f_N+f_S+f_T+f_B+two*(f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS)+three*(f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW)- - // drho_SWB-(vx1_SWB*vx1_SWB+vx2_SWB*vx2_SWB+vx3_SWB*vx3_SWB)* (one+drho_SWB)) * c1o2+drho_SWB; + //press_SWB = (f_E+f_W+f_N+f_S+f_T+f_B+two*(f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS)+three*(f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW)- + // drho_SWB-(vx1_SWB*vx1_SWB+vx2_SWB*vx2_SWB+vx3_SWB*vx3_SWB)* (one+drho_SWB)) * c1o2+drho_SWB; kxyFromfcNEQ_SWB = -c3o1*omegaS*(f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE-(vx1_SWB*vx2_SWB)); kyzFromfcNEQ_SWB = -c3o1*omegaS*(f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW-(vx2_SWB*vx3_SWB)); @@ -15811,10 +15811,10 @@ __global__ void scaleFC_Fix_27( real* DC, //vx1_SWT = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_SWT = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_SWT = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_SWT = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_SWT = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_SWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_SWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_SWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_SWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_SWT = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; //press_SWT= (f_E+f_W+f_N+f_S+f_T+f_B+two*(f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS)+three*(f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW)- // drho_SWT-(vx1_SWT*vx1_SWT+vx2_SWT*vx2_SWT+vx3_SWT*vx3_SWT)* (one+drho_SWT)) * c1o2+drho_SWT; @@ -15868,10 +15868,10 @@ __global__ void scaleFC_Fix_27( real* DC, //vx1_SET = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_SET = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_SET = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_SET = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_SET = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_SET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_SET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_SET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_SET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_SET = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; //press_SET= (f_E+f_W+f_N+f_S+f_T+f_B+two*(f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS)+three*(f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW)- // drho_SET-(vx1_SET*vx1_SET+vx2_SET*vx2_SET+vx3_SET*vx3_SET)* (one+drho_SET)) * c1o2+drho_SET; @@ -15925,10 +15925,10 @@ __global__ void scaleFC_Fix_27( real* DC, //vx1_SEB = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_SEB = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_SEB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_SEB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_SEB = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_SEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_SEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_SEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_SEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_SEB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; //press_SEB= (f_E+f_W+f_N+f_S+f_T+f_B+two*(f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS)+three*(f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW)- // drho_SEB-(vx1_SEB*vx1_SEB+vx2_SEB*vx2_SEB+vx3_SEB*vx3_SEB)* (one+drho_SEB)) * c1o2+drho_SEB; @@ -15992,10 +15992,10 @@ __global__ void scaleFC_Fix_27( real* DC, //vx1_NWB = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_NWB = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_NWB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_NWB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_NWB = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_NWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_NWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_NWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_NWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_NWB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; //press_NWB= (f_E+f_W+f_N+f_S+f_T+f_B+two*(f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS)+three*(f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW)- // drho_NWB-(vx1_NWB*vx1_NWB+vx2_NWB*vx2_NWB+vx3_NWB*vx3_NWB)* (one+drho_NWB)) * c1o2+drho_NWB; @@ -16049,10 +16049,10 @@ __global__ void scaleFC_Fix_27( real* DC, //vx1_NWT = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_NWT = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_NWT = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_NWT = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_NWT = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_NWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_NWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_NWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_NWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_NWT = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; //press_NWT= (f_E+f_W+f_N+f_S+f_T+f_B+two*(f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS)+three*(f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW)- // drho_NWT-(vx1_NWT*vx1_NWT+vx2_NWT*vx2_NWT+vx3_NWT*vx3_NWT)* (one+drho_NWT)) * c1o2+drho_NWT; @@ -16106,10 +16106,10 @@ __global__ void scaleFC_Fix_27( real* DC, //vx1_NET = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_NET = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_NET = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_NET = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_NET = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_NET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_NET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_NET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_NET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_NET = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; //press_NET= (f_E+f_W+f_N+f_S+f_T+f_B+two*(f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS)+three*(f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW)- // drho_NET-(vx1_NET*vx1_NET+vx2_NET*vx2_NET+vx3_NET*vx3_NET)* (one+drho_NET)) * c1o2+drho_NET; @@ -16163,10 +16163,10 @@ __global__ void scaleFC_Fix_27( real* DC, //vx1_NEB = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_NEB = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_NEB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_NEB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_NEB = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_NEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_NEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_NEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_NEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_NEB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; //press_NEB= (f_E+f_W+f_N+f_S+f_T+f_B+two*(f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS)+three*(f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW)- // drho_NEB-(vx1_NEB*vx1_NEB+vx2_NEB*vx2_NEB+vx3_NEB*vx3_NEB)* (one+drho_NEB)) * c1o2+drho_NEB; @@ -16178,147 +16178,147 @@ __global__ void scaleFC_Fix_27( real* DC, kxxMzzFromfcNEQ_NEB = -c3o2*omegaS*(f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE-(vx1_NEB*vx1_NEB-vx3_NEB*vx3_NEB)); ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //kxyFromfcNEQ_SWB = zero; - //kyzFromfcNEQ_SWB = zero; - //kxzFromfcNEQ_SWB = zero; - //kxxMyyFromfcNEQ_SWB = zero; - //kxxMzzFromfcNEQ_SWB = zero; - //kxyFromfcNEQ_SWT = zero; - //kyzFromfcNEQ_SWT = zero; - //kxzFromfcNEQ_SWT = zero; - //kxxMyyFromfcNEQ_SWT = zero; - //kxxMzzFromfcNEQ_SWT = zero; - //kxyFromfcNEQ_SET = zero; - //kyzFromfcNEQ_SET = zero; - //kxzFromfcNEQ_SET = zero; - //kxxMyyFromfcNEQ_SET = zero; - //kxxMzzFromfcNEQ_SET = zero; - //kxyFromfcNEQ_SEB = zero; - //kyzFromfcNEQ_SEB = zero; - //kxzFromfcNEQ_SEB = zero; - //kxxMyyFromfcNEQ_SEB = zero; - //kxxMzzFromfcNEQ_SEB = zero; - //kxyFromfcNEQ_NWB = zero; - //kyzFromfcNEQ_NWB = zero; - //kxzFromfcNEQ_NWB = zero; - //kxxMyyFromfcNEQ_NWB = zero; - //kxxMzzFromfcNEQ_NWB = zero; - //kxyFromfcNEQ_NWT = zero; - //kyzFromfcNEQ_NWT = zero; - //kxzFromfcNEQ_NWT = zero; - //kxxMyyFromfcNEQ_NWT = zero; - //kxxMzzFromfcNEQ_NWT = zero; - //kxyFromfcNEQ_NET = zero; - //kyzFromfcNEQ_NET = zero; - //kxzFromfcNEQ_NET = zero; - //kxxMyyFromfcNEQ_NET = zero; - //kxxMzzFromfcNEQ_NET = zero; - //kxyFromfcNEQ_NEB = zero; - //kyzFromfcNEQ_NEB = zero; - //kxzFromfcNEQ_NEB = zero; - //kxxMyyFromfcNEQ_NEB = zero; - //kxxMzzFromfcNEQ_NEB = zero; + //kxyFromfcNEQ_SWB = zero; + //kyzFromfcNEQ_SWB = zero; + //kxzFromfcNEQ_SWB = zero; + //kxxMyyFromfcNEQ_SWB = zero; + //kxxMzzFromfcNEQ_SWB = zero; + //kxyFromfcNEQ_SWT = zero; + //kyzFromfcNEQ_SWT = zero; + //kxzFromfcNEQ_SWT = zero; + //kxxMyyFromfcNEQ_SWT = zero; + //kxxMzzFromfcNEQ_SWT = zero; + //kxyFromfcNEQ_SET = zero; + //kyzFromfcNEQ_SET = zero; + //kxzFromfcNEQ_SET = zero; + //kxxMyyFromfcNEQ_SET = zero; + //kxxMzzFromfcNEQ_SET = zero; + //kxyFromfcNEQ_SEB = zero; + //kyzFromfcNEQ_SEB = zero; + //kxzFromfcNEQ_SEB = zero; + //kxxMyyFromfcNEQ_SEB = zero; + //kxxMzzFromfcNEQ_SEB = zero; + //kxyFromfcNEQ_NWB = zero; + //kyzFromfcNEQ_NWB = zero; + //kxzFromfcNEQ_NWB = zero; + //kxxMyyFromfcNEQ_NWB = zero; + //kxxMzzFromfcNEQ_NWB = zero; + //kxyFromfcNEQ_NWT = zero; + //kyzFromfcNEQ_NWT = zero; + //kxzFromfcNEQ_NWT = zero; + //kxxMyyFromfcNEQ_NWT = zero; + //kxxMzzFromfcNEQ_NWT = zero; + //kxyFromfcNEQ_NET = zero; + //kyzFromfcNEQ_NET = zero; + //kxzFromfcNEQ_NET = zero; + //kxxMyyFromfcNEQ_NET = zero; + //kxxMzzFromfcNEQ_NET = zero; + //kxyFromfcNEQ_NEB = zero; + //kyzFromfcNEQ_NEB = zero; + //kxzFromfcNEQ_NEB = zero; + //kxxMyyFromfcNEQ_NEB = zero; + //kxxMzzFromfcNEQ_NEB = zero; ////////////////////////////////////////////////////////////////////////// //3 ////////////////////////////////////////////////////////////////////////// a0 = (-kxxMyyFromfcNEQ_NEB - kxxMyyFromfcNEQ_NET + kxxMyyFromfcNEQ_NWB + kxxMyyFromfcNEQ_NWT - - kxxMyyFromfcNEQ_SEB - kxxMyyFromfcNEQ_SET + kxxMyyFromfcNEQ_SWB + kxxMyyFromfcNEQ_SWT - - kxxMzzFromfcNEQ_NEB - kxxMzzFromfcNEQ_NET + kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_NWT - - kxxMzzFromfcNEQ_SEB - kxxMzzFromfcNEQ_SET + kxxMzzFromfcNEQ_SWB + kxxMzzFromfcNEQ_SWT - - c2o1*kxyFromfcNEQ_NEB - c2o1*kxyFromfcNEQ_NET - c2o1*kxyFromfcNEQ_NWB - c2o1*kxyFromfcNEQ_NWT + - c2o1*kxyFromfcNEQ_SEB + c2o1*kxyFromfcNEQ_SET + c2o1*kxyFromfcNEQ_SWB + c2o1*kxyFromfcNEQ_SWT + - c2o1*kxzFromfcNEQ_NEB - c2o1*kxzFromfcNEQ_NET + c2o1*kxzFromfcNEQ_NWB - c2o1*kxzFromfcNEQ_NWT + - c2o1*kxzFromfcNEQ_SEB - c2o1*kxzFromfcNEQ_SET + c2o1*kxzFromfcNEQ_SWB - c2o1*kxzFromfcNEQ_SWT + - c8o1*vx1_NEB + c8o1*vx1_NET + c8o1*vx1_NWB + c8o1*vx1_NWT + c8o1*vx1_SEB + - c8o1*vx1_SET + c8o1*vx1_SWB + c8o1*vx1_SWT + c2o1*vx2_NEB + c2o1*vx2_NET - - c2o1*vx2_NWB - c2o1*vx2_NWT - c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB + - c2o1*vx2_SWT - c2o1*vx3_NEB + c2o1*vx3_NET + c2o1*vx3_NWB - c2o1*vx3_NWT - - c2o1*vx3_SEB + c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)/c64o1; + kxxMyyFromfcNEQ_SEB - kxxMyyFromfcNEQ_SET + kxxMyyFromfcNEQ_SWB + kxxMyyFromfcNEQ_SWT - + kxxMzzFromfcNEQ_NEB - kxxMzzFromfcNEQ_NET + kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_NWT - + kxxMzzFromfcNEQ_SEB - kxxMzzFromfcNEQ_SET + kxxMzzFromfcNEQ_SWB + kxxMzzFromfcNEQ_SWT - + c2o1*kxyFromfcNEQ_NEB - c2o1*kxyFromfcNEQ_NET - c2o1*kxyFromfcNEQ_NWB - c2o1*kxyFromfcNEQ_NWT + + c2o1*kxyFromfcNEQ_SEB + c2o1*kxyFromfcNEQ_SET + c2o1*kxyFromfcNEQ_SWB + c2o1*kxyFromfcNEQ_SWT + + c2o1*kxzFromfcNEQ_NEB - c2o1*kxzFromfcNEQ_NET + c2o1*kxzFromfcNEQ_NWB - c2o1*kxzFromfcNEQ_NWT + + c2o1*kxzFromfcNEQ_SEB - c2o1*kxzFromfcNEQ_SET + c2o1*kxzFromfcNEQ_SWB - c2o1*kxzFromfcNEQ_SWT + + c8o1*vx1_NEB + c8o1*vx1_NET + c8o1*vx1_NWB + c8o1*vx1_NWT + c8o1*vx1_SEB + + c8o1*vx1_SET + c8o1*vx1_SWB + c8o1*vx1_SWT + c2o1*vx2_NEB + c2o1*vx2_NET - + c2o1*vx2_NWB - c2o1*vx2_NWT - c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB + + c2o1*vx2_SWT - c2o1*vx3_NEB + c2o1*vx3_NET + c2o1*vx3_NWB - c2o1*vx3_NWT - + c2o1*vx3_SEB + c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)/c64o1; b0 = (c2o1*kxxMyyFromfcNEQ_NEB + c2o1*kxxMyyFromfcNEQ_NET + c2o1*kxxMyyFromfcNEQ_NWB + c2o1*kxxMyyFromfcNEQ_NWT - - c2o1*kxxMyyFromfcNEQ_SEB - c2o1*kxxMyyFromfcNEQ_SET - c2o1*kxxMyyFromfcNEQ_SWB - c2o1*kxxMyyFromfcNEQ_SWT - - kxxMzzFromfcNEQ_NEB - kxxMzzFromfcNEQ_NET - kxxMzzFromfcNEQ_NWB - kxxMzzFromfcNEQ_NWT + - kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_SET + kxxMzzFromfcNEQ_SWB + kxxMzzFromfcNEQ_SWT - - c2o1*kxyFromfcNEQ_NEB - c2o1*kxyFromfcNEQ_NET + c2o1*kxyFromfcNEQ_NWB + c2o1*kxyFromfcNEQ_NWT - - c2o1*kxyFromfcNEQ_SEB - c2o1*kxyFromfcNEQ_SET + c2o1*kxyFromfcNEQ_SWB + c2o1*kxyFromfcNEQ_SWT + - c2o1*kyzFromfcNEQ_NEB - c2o1*kyzFromfcNEQ_NET + c2o1*kyzFromfcNEQ_NWB - c2o1*kyzFromfcNEQ_NWT + - c2o1*kyzFromfcNEQ_SEB - c2o1*kyzFromfcNEQ_SET + c2o1*kyzFromfcNEQ_SWB - c2o1*kyzFromfcNEQ_SWT + - c2o1*vx1_NEB + c2o1*vx1_NET - c2o1*vx1_NWB - c2o1*vx1_NWT - - c2o1*vx1_SEB - c2o1*vx1_SET + c2o1*vx1_SWB + c2o1*vx1_SWT + - c8o1*vx2_NEB + c8o1*vx2_NET + c8o1*vx2_NWB + c8o1*vx2_NWT + - c8o1*vx2_SEB + c8o1*vx2_SET + c8o1*vx2_SWB + c8o1*vx2_SWT - - c2o1*vx3_NEB + c2o1*vx3_NET - c2o1*vx3_NWB + c2o1*vx3_NWT + - c2o1*vx3_SEB - c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)/c64o1; + c2o1*kxxMyyFromfcNEQ_SEB - c2o1*kxxMyyFromfcNEQ_SET - c2o1*kxxMyyFromfcNEQ_SWB - c2o1*kxxMyyFromfcNEQ_SWT - + kxxMzzFromfcNEQ_NEB - kxxMzzFromfcNEQ_NET - kxxMzzFromfcNEQ_NWB - kxxMzzFromfcNEQ_NWT + + kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_SET + kxxMzzFromfcNEQ_SWB + kxxMzzFromfcNEQ_SWT - + c2o1*kxyFromfcNEQ_NEB - c2o1*kxyFromfcNEQ_NET + c2o1*kxyFromfcNEQ_NWB + c2o1*kxyFromfcNEQ_NWT - + c2o1*kxyFromfcNEQ_SEB - c2o1*kxyFromfcNEQ_SET + c2o1*kxyFromfcNEQ_SWB + c2o1*kxyFromfcNEQ_SWT + + c2o1*kyzFromfcNEQ_NEB - c2o1*kyzFromfcNEQ_NET + c2o1*kyzFromfcNEQ_NWB - c2o1*kyzFromfcNEQ_NWT + + c2o1*kyzFromfcNEQ_SEB - c2o1*kyzFromfcNEQ_SET + c2o1*kyzFromfcNEQ_SWB - c2o1*kyzFromfcNEQ_SWT + + c2o1*vx1_NEB + c2o1*vx1_NET - c2o1*vx1_NWB - c2o1*vx1_NWT - + c2o1*vx1_SEB - c2o1*vx1_SET + c2o1*vx1_SWB + c2o1*vx1_SWT + + c8o1*vx2_NEB + c8o1*vx2_NET + c8o1*vx2_NWB + c8o1*vx2_NWT + + c8o1*vx2_SEB + c8o1*vx2_SET + c8o1*vx2_SWB + c8o1*vx2_SWT - + c2o1*vx3_NEB + c2o1*vx3_NET - c2o1*vx3_NWB + c2o1*vx3_NWT + + c2o1*vx3_SEB - c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)/c64o1; c0 = (kxxMyyFromfcNEQ_NEB - kxxMyyFromfcNEQ_NET + kxxMyyFromfcNEQ_NWB - kxxMyyFromfcNEQ_NWT + - kxxMyyFromfcNEQ_SEB - kxxMyyFromfcNEQ_SET + kxxMyyFromfcNEQ_SWB - kxxMyyFromfcNEQ_SWT - - c2o1*kxxMzzFromfcNEQ_NEB + c2o1*kxxMzzFromfcNEQ_NET - c2o1*kxxMzzFromfcNEQ_NWB + c2o1*kxxMzzFromfcNEQ_NWT - - c2o1*kxxMzzFromfcNEQ_SEB + c2o1*kxxMzzFromfcNEQ_SET - c2o1*kxxMzzFromfcNEQ_SWB + c2o1*kxxMzzFromfcNEQ_SWT - - c2o1*kxzFromfcNEQ_NEB - c2o1*kxzFromfcNEQ_NET + c2o1*kxzFromfcNEQ_NWB + c2o1*kxzFromfcNEQ_NWT - - c2o1*kxzFromfcNEQ_SEB - c2o1*kxzFromfcNEQ_SET + c2o1*kxzFromfcNEQ_SWB + c2o1*kxzFromfcNEQ_SWT - - c2o1*kyzFromfcNEQ_NEB - c2o1*kyzFromfcNEQ_NET - c2o1*kyzFromfcNEQ_NWB - c2o1*kyzFromfcNEQ_NWT + - c2o1*kyzFromfcNEQ_SEB + c2o1*kyzFromfcNEQ_SET + c2o1*kyzFromfcNEQ_SWB + c2o1*kyzFromfcNEQ_SWT - - c2o1*vx1_NEB + c2o1*vx1_NET + c2o1*vx1_NWB - c2o1*vx1_NWT - - c2o1*vx1_SEB + c2o1*vx1_SET + c2o1*vx1_SWB - c2o1*vx1_SWT - - c2o1*vx2_NEB + c2o1*vx2_NET - c2o1*vx2_NWB + c2o1*vx2_NWT + - c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB - c2o1*vx2_SWT + - c8o1*vx3_NEB + c8o1*vx3_NET + c8o1*vx3_NWB + c8o1*vx3_NWT + - c8o1*vx3_SEB + c8o1*vx3_SET + c8o1*vx3_SWB + c8o1*vx3_SWT)/c64o1; + kxxMyyFromfcNEQ_SEB - kxxMyyFromfcNEQ_SET + kxxMyyFromfcNEQ_SWB - kxxMyyFromfcNEQ_SWT - + c2o1*kxxMzzFromfcNEQ_NEB + c2o1*kxxMzzFromfcNEQ_NET - c2o1*kxxMzzFromfcNEQ_NWB + c2o1*kxxMzzFromfcNEQ_NWT - + c2o1*kxxMzzFromfcNEQ_SEB + c2o1*kxxMzzFromfcNEQ_SET - c2o1*kxxMzzFromfcNEQ_SWB + c2o1*kxxMzzFromfcNEQ_SWT - + c2o1*kxzFromfcNEQ_NEB - c2o1*kxzFromfcNEQ_NET + c2o1*kxzFromfcNEQ_NWB + c2o1*kxzFromfcNEQ_NWT - + c2o1*kxzFromfcNEQ_SEB - c2o1*kxzFromfcNEQ_SET + c2o1*kxzFromfcNEQ_SWB + c2o1*kxzFromfcNEQ_SWT - + c2o1*kyzFromfcNEQ_NEB - c2o1*kyzFromfcNEQ_NET - c2o1*kyzFromfcNEQ_NWB - c2o1*kyzFromfcNEQ_NWT + + c2o1*kyzFromfcNEQ_SEB + c2o1*kyzFromfcNEQ_SET + c2o1*kyzFromfcNEQ_SWB + c2o1*kyzFromfcNEQ_SWT - + c2o1*vx1_NEB + c2o1*vx1_NET + c2o1*vx1_NWB - c2o1*vx1_NWT - + c2o1*vx1_SEB + c2o1*vx1_SET + c2o1*vx1_SWB - c2o1*vx1_SWT - + c2o1*vx2_NEB + c2o1*vx2_NET - c2o1*vx2_NWB + c2o1*vx2_NWT + + c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB - c2o1*vx2_SWT + + c8o1*vx3_NEB + c8o1*vx3_NET + c8o1*vx3_NWB + c8o1*vx3_NWT + + c8o1*vx3_SEB + c8o1*vx3_SET + c8o1*vx3_SWB + c8o1*vx3_SWT)/c64o1; ax = (vx1_NEB + vx1_NET - vx1_NWB - vx1_NWT + vx1_SEB + vx1_SET - vx1_SWB - vx1_SWT)/c4o1; bx = (vx2_NEB + vx2_NET - vx2_NWB - vx2_NWT + vx2_SEB + vx2_SET - vx2_SWB - vx2_SWT)/c4o1; cx = (vx3_NEB + vx3_NET - vx3_NWB - vx3_NWT + vx3_SEB + vx3_SET - vx3_SWB - vx3_SWT)/c4o1; axx= (kxxMyyFromfcNEQ_NEB + kxxMyyFromfcNEQ_NET - kxxMyyFromfcNEQ_NWB - kxxMyyFromfcNEQ_NWT + - kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_SET - kxxMyyFromfcNEQ_SWB - kxxMyyFromfcNEQ_SWT + - kxxMzzFromfcNEQ_NEB + kxxMzzFromfcNEQ_NET - kxxMzzFromfcNEQ_NWB - kxxMzzFromfcNEQ_NWT + - kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_SET - kxxMzzFromfcNEQ_SWB - kxxMzzFromfcNEQ_SWT + - c2o1*vx2_NEB + c2o1*vx2_NET - c2o1*vx2_NWB - c2o1*vx2_NWT - - c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB + c2o1*vx2_SWT - - c2o1*vx3_NEB + c2o1*vx3_NET + c2o1*vx3_NWB - c2o1*vx3_NWT - - c2o1*vx3_SEB + c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)/c16o1; + kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_SET - kxxMyyFromfcNEQ_SWB - kxxMyyFromfcNEQ_SWT + + kxxMzzFromfcNEQ_NEB + kxxMzzFromfcNEQ_NET - kxxMzzFromfcNEQ_NWB - kxxMzzFromfcNEQ_NWT + + kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_SET - kxxMzzFromfcNEQ_SWB - kxxMzzFromfcNEQ_SWT + + c2o1*vx2_NEB + c2o1*vx2_NET - c2o1*vx2_NWB - c2o1*vx2_NWT - + c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB + c2o1*vx2_SWT - + c2o1*vx3_NEB + c2o1*vx3_NET + c2o1*vx3_NWB - c2o1*vx3_NWT - + c2o1*vx3_SEB + c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)/c16o1; bxx= (kxyFromfcNEQ_NEB + kxyFromfcNEQ_NET - kxyFromfcNEQ_NWB - kxyFromfcNEQ_NWT + - kxyFromfcNEQ_SEB + kxyFromfcNEQ_SET - kxyFromfcNEQ_SWB - kxyFromfcNEQ_SWT - - c2o1*vx1_NEB - c2o1*vx1_NET + c2o1*vx1_NWB + c2o1*vx1_NWT + - c2o1*vx1_SEB + c2o1*vx1_SET - c2o1*vx1_SWB - c2o1*vx1_SWT)/c8o1; + kxyFromfcNEQ_SEB + kxyFromfcNEQ_SET - kxyFromfcNEQ_SWB - kxyFromfcNEQ_SWT - + c2o1*vx1_NEB - c2o1*vx1_NET + c2o1*vx1_NWB + c2o1*vx1_NWT + + c2o1*vx1_SEB + c2o1*vx1_SET - c2o1*vx1_SWB - c2o1*vx1_SWT)/c8o1; cxx= (kxzFromfcNEQ_NEB + kxzFromfcNEQ_NET - kxzFromfcNEQ_NWB - kxzFromfcNEQ_NWT + - kxzFromfcNEQ_SEB + kxzFromfcNEQ_SET - kxzFromfcNEQ_SWB - kxzFromfcNEQ_SWT + - c2o1*vx1_NEB - c2o1*vx1_NET - c2o1*vx1_NWB + c2o1*vx1_NWT + - c2o1*vx1_SEB - c2o1*vx1_SET - c2o1*vx1_SWB + c2o1*vx1_SWT)/c8o1; + kxzFromfcNEQ_SEB + kxzFromfcNEQ_SET - kxzFromfcNEQ_SWB - kxzFromfcNEQ_SWT + + c2o1*vx1_NEB - c2o1*vx1_NET - c2o1*vx1_NWB + c2o1*vx1_NWT + + c2o1*vx1_SEB - c2o1*vx1_SET - c2o1*vx1_SWB + c2o1*vx1_SWT)/c8o1; ay = (vx1_NEB + vx1_NET + vx1_NWB + vx1_NWT - vx1_SEB - vx1_SET - vx1_SWB - vx1_SWT)/c4o1; by = (vx2_NEB + vx2_NET + vx2_NWB + vx2_NWT - vx2_SEB - vx2_SET - vx2_SWB - vx2_SWT)/c4o1; cy = (vx3_NEB + vx3_NET + vx3_NWB + vx3_NWT - vx3_SEB - vx3_SET - vx3_SWB - vx3_SWT)/c4o1; ayy= (kxyFromfcNEQ_NEB + kxyFromfcNEQ_NET + kxyFromfcNEQ_NWB + kxyFromfcNEQ_NWT - - kxyFromfcNEQ_SEB - kxyFromfcNEQ_SET - kxyFromfcNEQ_SWB - kxyFromfcNEQ_SWT - - c2o1*vx2_NEB - c2o1*vx2_NET + c2o1*vx2_NWB + c2o1*vx2_NWT + - c2o1*vx2_SEB + c2o1*vx2_SET - c2o1*vx2_SWB - c2o1*vx2_SWT)/c8o1; + kxyFromfcNEQ_SEB - kxyFromfcNEQ_SET - kxyFromfcNEQ_SWB - kxyFromfcNEQ_SWT - + c2o1*vx2_NEB - c2o1*vx2_NET + c2o1*vx2_NWB + c2o1*vx2_NWT + + c2o1*vx2_SEB + c2o1*vx2_SET - c2o1*vx2_SWB - c2o1*vx2_SWT)/c8o1; byy= (-c2o1*kxxMyyFromfcNEQ_NEB - c2o1*kxxMyyFromfcNEQ_NET - c2o1*kxxMyyFromfcNEQ_NWB - c2o1*kxxMyyFromfcNEQ_NWT + - c2o1*kxxMyyFromfcNEQ_SEB + c2o1*kxxMyyFromfcNEQ_SET + c2o1*kxxMyyFromfcNEQ_SWB + c2o1*kxxMyyFromfcNEQ_SWT + - kxxMzzFromfcNEQ_NEB + kxxMzzFromfcNEQ_NET + kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_NWT - - kxxMzzFromfcNEQ_SEB - kxxMzzFromfcNEQ_SET - kxxMzzFromfcNEQ_SWB - kxxMzzFromfcNEQ_SWT + - c2o1*vx1_NEB + c2o1*vx1_NET - c2o1*vx1_NWB - c2o1*vx1_NWT - - c2o1*vx1_SEB - c2o1*vx1_SET + c2o1*vx1_SWB + c2o1*vx1_SWT - - c2o1*vx3_NEB + c2o1*vx3_NET - c2o1*vx3_NWB + c2o1*vx3_NWT + - c2o1*vx3_SEB - c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)/c16o1; + c2o1*kxxMyyFromfcNEQ_SEB + c2o1*kxxMyyFromfcNEQ_SET + c2o1*kxxMyyFromfcNEQ_SWB + c2o1*kxxMyyFromfcNEQ_SWT + + kxxMzzFromfcNEQ_NEB + kxxMzzFromfcNEQ_NET + kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_NWT - + kxxMzzFromfcNEQ_SEB - kxxMzzFromfcNEQ_SET - kxxMzzFromfcNEQ_SWB - kxxMzzFromfcNEQ_SWT + + c2o1*vx1_NEB + c2o1*vx1_NET - c2o1*vx1_NWB - c2o1*vx1_NWT - + c2o1*vx1_SEB - c2o1*vx1_SET + c2o1*vx1_SWB + c2o1*vx1_SWT - + c2o1*vx3_NEB + c2o1*vx3_NET - c2o1*vx3_NWB + c2o1*vx3_NWT + + c2o1*vx3_SEB - c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)/c16o1; cyy= (kyzFromfcNEQ_NEB + kyzFromfcNEQ_NET + kyzFromfcNEQ_NWB + kyzFromfcNEQ_NWT - - kyzFromfcNEQ_SEB - kyzFromfcNEQ_SET - kyzFromfcNEQ_SWB - kyzFromfcNEQ_SWT + - c2o1*vx2_NEB - c2o1*vx2_NET + c2o1*vx2_NWB - c2o1*vx2_NWT - - c2o1*vx2_SEB + c2o1*vx2_SET - c2o1*vx2_SWB + c2o1*vx2_SWT)/c8o1; + kyzFromfcNEQ_SEB - kyzFromfcNEQ_SET - kyzFromfcNEQ_SWB - kyzFromfcNEQ_SWT + + c2o1*vx2_NEB - c2o1*vx2_NET + c2o1*vx2_NWB - c2o1*vx2_NWT - + c2o1*vx2_SEB + c2o1*vx2_SET - c2o1*vx2_SWB + c2o1*vx2_SWT)/c8o1; az = (-vx1_NEB + vx1_NET - vx1_NWB + vx1_NWT - vx1_SEB + vx1_SET - vx1_SWB + vx1_SWT)/c4o1; bz = (-vx2_NEB + vx2_NET - vx2_NWB + vx2_NWT - vx2_SEB + vx2_SET - vx2_SWB + vx2_SWT)/c4o1; cz = (-vx3_NEB + vx3_NET - vx3_NWB + vx3_NWT - vx3_SEB + vx3_SET - vx3_SWB + vx3_SWT)/c4o1; azz= (-kxzFromfcNEQ_NEB + kxzFromfcNEQ_NET - kxzFromfcNEQ_NWB + kxzFromfcNEQ_NWT - - kxzFromfcNEQ_SEB + kxzFromfcNEQ_SET - kxzFromfcNEQ_SWB + kxzFromfcNEQ_SWT + - c2o1*vx3_NEB - c2o1*vx3_NET - c2o1*vx3_NWB + c2o1*vx3_NWT + - c2o1*vx3_SEB - c2o1*vx3_SET - c2o1*vx3_SWB + c2o1*vx3_SWT)/c8o1; + kxzFromfcNEQ_SEB + kxzFromfcNEQ_SET - kxzFromfcNEQ_SWB + kxzFromfcNEQ_SWT + + c2o1*vx3_NEB - c2o1*vx3_NET - c2o1*vx3_NWB + c2o1*vx3_NWT + + c2o1*vx3_SEB - c2o1*vx3_SET - c2o1*vx3_SWB + c2o1*vx3_SWT)/c8o1; bzz= (-kyzFromfcNEQ_NEB + kyzFromfcNEQ_NET - kyzFromfcNEQ_NWB + kyzFromfcNEQ_NWT - - kyzFromfcNEQ_SEB + kyzFromfcNEQ_SET - kyzFromfcNEQ_SWB + kyzFromfcNEQ_SWT + - c2o1*vx3_NEB - c2o1*vx3_NET + c2o1*vx3_NWB - c2o1*vx3_NWT - - c2o1*vx3_SEB + c2o1*vx3_SET - c2o1*vx3_SWB + c2o1*vx3_SWT)/c8o1; + kyzFromfcNEQ_SEB + kyzFromfcNEQ_SET - kyzFromfcNEQ_SWB + kyzFromfcNEQ_SWT + + c2o1*vx3_NEB - c2o1*vx3_NET + c2o1*vx3_NWB - c2o1*vx3_NWT - + c2o1*vx3_SEB + c2o1*vx3_SET - c2o1*vx3_SWB + c2o1*vx3_SWT)/c8o1; czz= (-kxxMyyFromfcNEQ_NEB + kxxMyyFromfcNEQ_NET - kxxMyyFromfcNEQ_NWB + kxxMyyFromfcNEQ_NWT - - kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_SET - kxxMyyFromfcNEQ_SWB + kxxMyyFromfcNEQ_SWT + - c2o1*kxxMzzFromfcNEQ_NEB - c2o1*kxxMzzFromfcNEQ_NET + c2o1*kxxMzzFromfcNEQ_NWB - c2o1*kxxMzzFromfcNEQ_NWT + - c2o1*kxxMzzFromfcNEQ_SEB - c2o1*kxxMzzFromfcNEQ_SET + c2o1*kxxMzzFromfcNEQ_SWB - c2o1*kxxMzzFromfcNEQ_SWT - - c2o1*vx1_NEB + c2o1*vx1_NET + c2o1*vx1_NWB - c2o1*vx1_NWT - - c2o1*vx1_SEB + c2o1*vx1_SET + c2o1*vx1_SWB - c2o1*vx1_SWT - - c2o1*vx2_NEB + c2o1*vx2_NET - c2o1*vx2_NWB + c2o1*vx2_NWT + - c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB - c2o1*vx2_SWT)/c16o1; + kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_SET - kxxMyyFromfcNEQ_SWB + kxxMyyFromfcNEQ_SWT + + c2o1*kxxMzzFromfcNEQ_NEB - c2o1*kxxMzzFromfcNEQ_NET + c2o1*kxxMzzFromfcNEQ_NWB - c2o1*kxxMzzFromfcNEQ_NWT + + c2o1*kxxMzzFromfcNEQ_SEB - c2o1*kxxMzzFromfcNEQ_SET + c2o1*kxxMzzFromfcNEQ_SWB - c2o1*kxxMzzFromfcNEQ_SWT - + c2o1*vx1_NEB + c2o1*vx1_NET + c2o1*vx1_NWB - c2o1*vx1_NWT - + c2o1*vx1_SEB + c2o1*vx1_SET + c2o1*vx1_SWB - c2o1*vx1_SWT - + c2o1*vx2_NEB + c2o1*vx2_NET - c2o1*vx2_NWB + c2o1*vx2_NWT + + c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB - c2o1*vx2_SWT)/c16o1; axy= (vx1_NEB + vx1_NET - vx1_NWB - vx1_NWT - vx1_SEB - vx1_SET + vx1_SWB + vx1_SWT)/c2o1; bxy= (vx2_NEB + vx2_NET - vx2_NWB - vx2_NWT - vx2_SEB - vx2_SET + vx2_SWB + vx2_SWT)/c2o1; cxy= (vx3_NEB + vx3_NET - vx3_NWB - vx3_NWT - vx3_SEB - vx3_SET + vx3_SWB + vx3_SWT)/c2o1; @@ -16332,88 +16332,88 @@ __global__ void scaleFC_Fix_27( real* DC, //bxyz=-vx2_NEB + vx2_NET + vx2_NWB - vx2_NWT + vx2_SEB - vx2_SET - vx2_SWB + vx2_SWT; //cxyz=-vx3_NEB + vx3_NET + vx3_NWB - vx3_NWT + vx3_SEB - vx3_SET - vx3_SWB + vx3_SWT; ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real kxyAverage =(kxyFromfcNEQ_SWB+ - kxyFromfcNEQ_SWT+ - kxyFromfcNEQ_SET+ - kxyFromfcNEQ_SEB+ - kxyFromfcNEQ_NWB+ - kxyFromfcNEQ_NWT+ - kxyFromfcNEQ_NET+ - kxyFromfcNEQ_NEB)*c1o8-(ay+bx); - real kyzAverage =(kyzFromfcNEQ_SWB+ - kyzFromfcNEQ_SWT+ - kyzFromfcNEQ_SET+ - kyzFromfcNEQ_SEB+ - kyzFromfcNEQ_NWB+ - kyzFromfcNEQ_NWT+ - kyzFromfcNEQ_NET+ - kyzFromfcNEQ_NEB)*c1o8-(bz+cy); - real kxzAverage =(kxzFromfcNEQ_SWB+ - kxzFromfcNEQ_SWT+ - kxzFromfcNEQ_SET+ - kxzFromfcNEQ_SEB+ - kxzFromfcNEQ_NWB+ - kxzFromfcNEQ_NWT+ - kxzFromfcNEQ_NET+ - kxzFromfcNEQ_NEB)*c1o8-(az+cx); - real kxxMyyAverage =(kxxMyyFromfcNEQ_SWB+ - kxxMyyFromfcNEQ_SWT+ - kxxMyyFromfcNEQ_SET+ - kxxMyyFromfcNEQ_SEB+ - kxxMyyFromfcNEQ_NWB+ - kxxMyyFromfcNEQ_NWT+ - kxxMyyFromfcNEQ_NET+ - kxxMyyFromfcNEQ_NEB)*c1o8-(ax-by); - real kxxMzzAverage =(kxxMzzFromfcNEQ_SWB+ - kxxMzzFromfcNEQ_SWT+ - kxxMzzFromfcNEQ_SET+ - kxxMzzFromfcNEQ_SEB+ - kxxMzzFromfcNEQ_NWB+ - kxxMzzFromfcNEQ_NWT+ - kxxMzzFromfcNEQ_NET+ - kxxMzzFromfcNEQ_NEB)*c1o8-(ax-cz); - - - - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - ////Press - //d0 = ( press_NEB + press_NET + press_NWB + press_NWT + press_SEB + press_SET + press_SWB + press_SWT) * c1o8; - //dx = ( press_NEB + press_NET - press_NWB - press_NWT + press_SEB + press_SET - press_SWB - press_SWT) * c1o4; - //dy = ( press_NEB + press_NET + press_NWB + press_NWT - press_SEB - press_SET - press_SWB - press_SWT) * c1o4; - //dz = (-press_NEB + press_NET - press_NWB + press_NWT - press_SEB + press_SET - press_SWB + press_SWT) * c1o4; - //dxy = ( press_NEB + press_NET - press_NWB - press_NWT - press_SEB - press_SET + press_SWB + press_SWT) * c1o2; - //dxz = (-press_NEB + press_NET + press_NWB - press_NWT - press_SEB + press_SET + press_SWB - press_SWT) * c1o2; - //dyz = (-press_NEB + press_NET - press_NWB + press_NWT + press_SEB - press_SET + press_SWB - press_SWT) * c1o2; - //dxyz = -press_NEB + press_NET + press_NWB - press_NWT + press_SEB - press_SET - press_SWB + press_SWT; - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho - d0 = ( drho_NEB + drho_NET + drho_NWB + drho_NWT + drho_SEB + drho_SET + drho_SWB + drho_SWT) * c1o8; - dx = ( drho_NEB + drho_NET - drho_NWB - drho_NWT + drho_SEB + drho_SET - drho_SWB - drho_SWT) * c1o4; - dy = ( drho_NEB + drho_NET + drho_NWB + drho_NWT - drho_SEB - drho_SET - drho_SWB - drho_SWT) * c1o4; - dz = (-drho_NEB + drho_NET - drho_NWB + drho_NWT - drho_SEB + drho_SET - drho_SWB + drho_SWT) * c1o4; - dxy = ( drho_NEB + drho_NET - drho_NWB - drho_NWT - drho_SEB - drho_SET + drho_SWB + drho_SWT) * c1o2; - dxz = (-drho_NEB + drho_NET + drho_NWB - drho_NWT - drho_SEB + drho_SET + drho_SWB - drho_SWT) * c1o2; - dyz = (-drho_NEB + drho_NET - drho_NWB + drho_NWT + drho_SEB - drho_SET + drho_SWB - drho_SWT) * c1o2; - //dxyz = -drho_NEB + drho_NET + drho_NWB - drho_NWT + drho_SEB - drho_SET - drho_SWB + drho_SWT; - //d0 = zero; - //dx = zero; - //dy = zero; - //dz = zero; - //dxy = zero; - //dxz = zero; - //dyz = zero; - //dxyz = zero; + real kxyAverage =(kxyFromfcNEQ_SWB+ + kxyFromfcNEQ_SWT+ + kxyFromfcNEQ_SET+ + kxyFromfcNEQ_SEB+ + kxyFromfcNEQ_NWB+ + kxyFromfcNEQ_NWT+ + kxyFromfcNEQ_NET+ + kxyFromfcNEQ_NEB)*c1o8-(ay+bx); + real kyzAverage =(kyzFromfcNEQ_SWB+ + kyzFromfcNEQ_SWT+ + kyzFromfcNEQ_SET+ + kyzFromfcNEQ_SEB+ + kyzFromfcNEQ_NWB+ + kyzFromfcNEQ_NWT+ + kyzFromfcNEQ_NET+ + kyzFromfcNEQ_NEB)*c1o8-(bz+cy); + real kxzAverage =(kxzFromfcNEQ_SWB+ + kxzFromfcNEQ_SWT+ + kxzFromfcNEQ_SET+ + kxzFromfcNEQ_SEB+ + kxzFromfcNEQ_NWB+ + kxzFromfcNEQ_NWT+ + kxzFromfcNEQ_NET+ + kxzFromfcNEQ_NEB)*c1o8-(az+cx); + real kxxMyyAverage =(kxxMyyFromfcNEQ_SWB+ + kxxMyyFromfcNEQ_SWT+ + kxxMyyFromfcNEQ_SET+ + kxxMyyFromfcNEQ_SEB+ + kxxMyyFromfcNEQ_NWB+ + kxxMyyFromfcNEQ_NWT+ + kxxMyyFromfcNEQ_NET+ + kxxMyyFromfcNEQ_NEB)*c1o8-(ax-by); + real kxxMzzAverage =(kxxMzzFromfcNEQ_SWB+ + kxxMzzFromfcNEQ_SWT+ + kxxMzzFromfcNEQ_SET+ + kxxMzzFromfcNEQ_SEB+ + kxxMzzFromfcNEQ_NWB+ + kxxMzzFromfcNEQ_NWT+ + kxxMzzFromfcNEQ_NET+ + kxxMzzFromfcNEQ_NEB)*c1o8-(ax-cz); + + + + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + ////Press + //d0 = ( press_NEB + press_NET + press_NWB + press_NWT + press_SEB + press_SET + press_SWB + press_SWT) * c1o8; + //dx = ( press_NEB + press_NET - press_NWB - press_NWT + press_SEB + press_SET - press_SWB - press_SWT) * c1o4; + //dy = ( press_NEB + press_NET + press_NWB + press_NWT - press_SEB - press_SET - press_SWB - press_SWT) * c1o4; + //dz = (-press_NEB + press_NET - press_NWB + press_NWT - press_SEB + press_SET - press_SWB + press_SWT) * c1o4; + //dxy = ( press_NEB + press_NET - press_NWB - press_NWT - press_SEB - press_SET + press_SWB + press_SWT) * c1o2; + //dxz = (-press_NEB + press_NET + press_NWB - press_NWT - press_SEB + press_SET + press_SWB - press_SWT) * c1o2; + //dyz = (-press_NEB + press_NET - press_NWB + press_NWT + press_SEB - press_SET + press_SWB - press_SWT) * c1o2; + //dxyz = -press_NEB + press_NET + press_NWB - press_NWT + press_SEB - press_SET - press_SWB + press_SWT; + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho + d0 = ( drho_NEB + drho_NET + drho_NWB + drho_NWT + drho_SEB + drho_SET + drho_SWB + drho_SWT) * c1o8; + dx = ( drho_NEB + drho_NET - drho_NWB - drho_NWT + drho_SEB + drho_SET - drho_SWB - drho_SWT) * c1o4; + dy = ( drho_NEB + drho_NET + drho_NWB + drho_NWT - drho_SEB - drho_SET - drho_SWB - drho_SWT) * c1o4; + dz = (-drho_NEB + drho_NET - drho_NWB + drho_NWT - drho_SEB + drho_SET - drho_SWB + drho_SWT) * c1o4; + dxy = ( drho_NEB + drho_NET - drho_NWB - drho_NWT - drho_SEB - drho_SET + drho_SWB + drho_SWT) * c1o2; + dxz = (-drho_NEB + drho_NET + drho_NWB - drho_NWT - drho_SEB + drho_SET + drho_SWB - drho_SWT) * c1o2; + dyz = (-drho_NEB + drho_NET - drho_NWB + drho_NWT + drho_SEB - drho_SET + drho_SWB - drho_SWT) * c1o2; + //dxyz = -drho_NEB + drho_NET + drho_NWB - drho_NWT + drho_SEB - drho_SET - drho_SWB + drho_SWT; + //d0 = zero; + //dx = zero; + //dy = zero; + //dz = zero; + //dxy = zero; + //dxz = zero; + //dyz = zero; + //dxyz = zero; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // // Bernd das Brot - // // - // x------x - // | | - // | ---+--->X - // | | \ - // x------x \ - // off-vector + // + // x------x + // | | + // | ---+--->X + // | | \ + // x------x \ + // off-vector //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// a0 = a0 + xoff * ax + yoff * ay + zoff * az + xoff_sq * axx + yoff_sq * ayy + zoff_sq * azz + xoff*yoff*axy + xoff*zoff*axz + yoff*zoff*ayz; ax = ax + c2o1 * xoff * axx + yoff * axy + zoff * axz; @@ -16427,432 +16427,432 @@ __global__ void scaleFC_Fix_27( real* DC, cx = cx + c2o1 * xoff * cxx + yoff * cxy + zoff * cxz; cy = cy + c2o1 * yoff * cyy + xoff * cxy + zoff * cyz; cz = cz + c2o1 * zoff * czz + xoff * cxz + yoff * cyz; - d0 = d0 + xoff * dx + yoff * dy + zoff * dz + xoff*yoff*dxy + xoff*zoff*dxz + yoff*zoff*dyz; + d0 = d0 + xoff * dx + yoff * dy + zoff * dz + xoff*yoff*dxy + xoff*zoff*dxz + yoff*zoff*dyz; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // FIX /////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //AAAAAAAAAAAAHHHHHHHHHHHH!!!!! Mieser Test!!! + //b0= bx= by= bz= bxx= byy= bzz= bxy= bxz= byz= c0= cx= cy= cz= cxx= cyy= czz= cxy= cxz= cyz= axyz= bxyz= cxyz=zero; + //b0=zero; + //bx=zero; + //by=zero; + //bz=zero; + //bxx=zero; + //byy=zero; + //bzz=zero; + //bxy=zero; + //bxz=zero; + //byz=zero; + //c0=zero; + //cx=zero; + //cy=zero; + //cz=zero; + //cxx=zero; + //cyy=zero; + //czz=zero; + //cxy=zero; + //cxz=zero; + //cyz=zero; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + real mfcbb = c0o1; + real mfabb = c0o1; + real mfbcb = c0o1; + real mfbab = c0o1; + real mfbbc = c0o1; + real mfbba = c0o1; + real mfccb = c0o1; + real mfaab = c0o1; + real mfcab = c0o1; + real mfacb = c0o1; + real mfcbc = c0o1; + real mfaba = c0o1; + real mfcba = c0o1; + real mfabc = c0o1; + real mfbcc = c0o1; + real mfbaa = c0o1; + real mfbca = c0o1; + real mfbac = c0o1; + real mfbbb = c0o1; + real mfccc = c0o1; + real mfaac = c0o1; + real mfcac = c0o1; + real mfacc = c0o1; + real mfcca = c0o1; + real mfaaa = c0o1; + real mfcaa = c0o1; + real mfaca = c0o1; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + real m0, m1, m2, vvx, vvy, vvz, vx2, vy2, vz2, oMdrho; + real mxxPyyPzz, mxxMyy, mxxMzz, mxxyPyzz, mxxyMyzz, mxxzPyyz, mxxzMyyz, mxyyPxzz, mxyyMxzz; + real qudricLimit = c1o100;//ganz schlechte Idee -> muss global sein + real O3 = c2o1 - o; + real residu, residutmp; + residutmp = c0o1;///*-*/ c2o9 * (1./o - c1o2) * eps_new * eps_new; + real NeqOn = c1o1;//zero;//one; //.... one = on ..... zero = off //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // FIX /////////////////////////////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //AAAAAAAAAAAAHHHHHHHHHHHH!!!!! Mieser Test!!! - //b0= bx= by= bz= bxx= byy= bzz= bxy= bxz= byz= c0= cx= cy= cz= cxx= cyy= czz= cxy= cxz= cyz= axyz= bxyz= cxyz=zero; - //b0=zero; - //bx=zero; - //by=zero; - //bz=zero; - //bxx=zero; - //byy=zero; - //bzz=zero; - //bxy=zero; - //bxz=zero; - //byz=zero; - //c0=zero; - //cx=zero; - //cy=zero; - //cz=zero; - //cxx=zero; - //cyy=zero; - //czz=zero; - //cxy=zero; - //cxz=zero; - //cyz=zero; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real mfcbb = c0o1; - real mfabb = c0o1; - real mfbcb = c0o1; - real mfbab = c0o1; - real mfbbc = c0o1; - real mfbba = c0o1; - real mfccb = c0o1; - real mfaab = c0o1; - real mfcab = c0o1; - real mfacb = c0o1; - real mfcbc = c0o1; - real mfaba = c0o1; - real mfcba = c0o1; - real mfabc = c0o1; - real mfbcc = c0o1; - real mfbaa = c0o1; - real mfbca = c0o1; - real mfbac = c0o1; - real mfbbb = c0o1; - real mfccc = c0o1; - real mfaac = c0o1; - real mfcac = c0o1; - real mfacc = c0o1; - real mfcca = c0o1; - real mfaaa = c0o1; - real mfcaa = c0o1; - real mfaca = c0o1; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real m0, m1, m2, vvx, vvy, vvz, vx2, vy2, vz2, oMdrho; - real mxxPyyPzz, mxxMyy, mxxMzz, mxxyPyzz, mxxyMyzz, mxxzPyyz, mxxzMyyz, mxyyPxzz, mxyyMxzz; - real qudricLimit = c1o100;//ganz schlechte Idee -> muss global sein - real O3 = c2o1 - o; - real residu, residutmp; - residutmp = c0o1;///*-*/ c2o9 * (1./o - c1o2) * eps_new * eps_new; - real NeqOn = c1o1;//zero;//one; //.... one = on ..... zero = off - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position C 0., 0., 0. - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //x = 0.; - //y = 0.; - //z = 0.; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //real mxoff = -xoff; - //real myoff = -yoff; - //real mzoff = -zoff; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //press = press_NET * (c1o8 - c1o4 * mxoff - c1o4 * myoff - c1o4 * mzoff) + - // press_NWT * (c1o8 + c1o4 * mxoff - c1o4 * myoff - c1o4 * mzoff) + - // press_SET * (c1o8 - c1o4 * mxoff + c1o4 * myoff - c1o4 * mzoff) + - // press_SWT * (c1o8 + c1o4 * mxoff + c1o4 * myoff - c1o4 * mzoff) + - // press_NEB * (c1o8 - c1o4 * mxoff - c1o4 * myoff + c1o4 * mzoff) + - // press_NWB * (c1o8 + c1o4 * mxoff - c1o4 * myoff + c1o4 * mzoff) + - // press_SEB * (c1o8 - c1o4 * mxoff + c1o4 * myoff + c1o4 * mzoff) + - // press_SWB * (c1o8 + c1o4 * mxoff + c1o4 * myoff + c1o4 * mzoff); - //drho = drho_NET * (c1o8 - c1o4 * xoff - c1o4 * yoff - c1o4 * zoff) + - // drho_NWT * (c1o8 + c1o4 * xoff - c1o4 * yoff - c1o4 * zoff) + - // drho_SET * (c1o8 - c1o4 * xoff + c1o4 * yoff - c1o4 * zoff) + - // drho_SWT * (c1o8 + c1o4 * xoff + c1o4 * yoff - c1o4 * zoff) + - // drho_NEB * (c1o8 - c1o4 * xoff - c1o4 * yoff + c1o4 * zoff) + - // drho_NWB * (c1o8 + c1o4 * xoff - c1o4 * yoff + c1o4 * zoff) + - // drho_SEB * (c1o8 - c1o4 * xoff + c1o4 * yoff + c1o4 * zoff) + - // drho_SWB * (c1o8 + c1o4 * xoff + c1o4 * yoff + c1o4 * zoff); - press = d0; - vvx = a0; - vvy = b0; - vvz = c0; - - //mfaaa = drho; - //mfaaa = press + (ax+by+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1 - mfaaa; - - //two - // linear combinations - mxxPyyPzz = mfaaa; - //mxxMyy = -c2o3*(ax - by)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy)*eps_new/o; - //mfbab = -c1o3 * (az + cx)*eps_new/o; - //mfbba = -c1o3 * (ay + bx)*eps_new/o; - mxxMyy = -c2o3*((ax - by)+kxxMyyAverage)*eps_new/o; - mxxMzz = -c2o3*((ax - cz)+kxxMzzAverage)*eps_new/o; - - mfabb = -c1o3 * ((bz + cy)+kyzAverage)*eps_new/o; - mfbab = -c1o3 * ((az + cx)+kxzAverage)*eps_new/o; - mfbba = -c1o3 * ((ay + bx)+kxyAverage)*eps_new/o; - - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //3. - // linear combinations - residu = residutmp * (ayz + bxz + cxy ); - mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - - residu = residutmp * (axy + c2o1*bxx + c2o1*bzz + cyz ); - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz )); - mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - - residu = residutmp * (axy + c2o1*bxx - c2o1*bzz - cyz ); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz ); - mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - - residu = residutmp * (axz + byz + c2o1*cxx + c2o1*cyy ); - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy )); - mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - - residu = residutmp * (axz - byz + c2o1*cxx - c2o1*cyy ); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy ); - mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - - residu = residutmp * (c2o1*ayy + c2o1*azz + bxy + cxz ); - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz ); - mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - - residu = residutmp * (c2o1*ayy - c2o1*azz + bxy - cxz ); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz ); - mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4. - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - //index 0 - kzero= posC[k]; - kw = neighborCX[kzero]; - ks = neighborCY[kzero]; - kb = neighborCZ[kzero]; - ksw = neighborCY[kw]; - kbw = neighborCZ[kw]; - kbs = neighborCZ[ks]; - kbsw = neighborCZ[ksw]; - //////////////////////////////////////////////////////////////////////////////////// - - - //////////////////////////////////////////////////////////////////////////////////// - feC[kzero] = mfcbb; - fwC[kw] = mfabb; - fnC[kzero] = mfbcb; - fsC[ks] = mfbab; - ftC[kzero] = mfbbc; - fbC[kb] = mfbba; - fneC[kzero] = mfccb; - fswC[ksw] = mfaab; - fseC[ks] = mfcab; - fnwC[kw] = mfacb; - fteC[kzero] = mfcbc; - fbwC[kbw] = mfaba; - fbeC[kb] = mfcba; - ftwC[kw] = mfabc; - ftnC[kzero] = mfbcc; - fbsC[kbs] = mfbaa; - fbnC[kb] = mfbca; - ftsC[ks] = mfbac; - fzeroC[kzero] = mfbbb; - ftneC[kzero] = mfccc; - ftseC[ks] = mfcac; - fbneC[kb] = mfcca; - fbseC[kbs] = mfcaa; - ftnwC[kw] = mfacc; - ftswC[ksw] = mfaac; - fbnwC[kbw] = mfaca; - fbswC[kbsw] = mfaaa; - //////////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position C 0., 0., 0. + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //x = 0.; + //y = 0.; + //z = 0.; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //real mxoff = -xoff; + //real myoff = -yoff; + //real mzoff = -zoff; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //press = press_NET * (c1o8 - c1o4 * mxoff - c1o4 * myoff - c1o4 * mzoff) + + // press_NWT * (c1o8 + c1o4 * mxoff - c1o4 * myoff - c1o4 * mzoff) + + // press_SET * (c1o8 - c1o4 * mxoff + c1o4 * myoff - c1o4 * mzoff) + + // press_SWT * (c1o8 + c1o4 * mxoff + c1o4 * myoff - c1o4 * mzoff) + + // press_NEB * (c1o8 - c1o4 * mxoff - c1o4 * myoff + c1o4 * mzoff) + + // press_NWB * (c1o8 + c1o4 * mxoff - c1o4 * myoff + c1o4 * mzoff) + + // press_SEB * (c1o8 - c1o4 * mxoff + c1o4 * myoff + c1o4 * mzoff) + + // press_SWB * (c1o8 + c1o4 * mxoff + c1o4 * myoff + c1o4 * mzoff); + //drho = drho_NET * (c1o8 - c1o4 * xoff - c1o4 * yoff - c1o4 * zoff) + + // drho_NWT * (c1o8 + c1o4 * xoff - c1o4 * yoff - c1o4 * zoff) + + // drho_SET * (c1o8 - c1o4 * xoff + c1o4 * yoff - c1o4 * zoff) + + // drho_SWT * (c1o8 + c1o4 * xoff + c1o4 * yoff - c1o4 * zoff) + + // drho_NEB * (c1o8 - c1o4 * xoff - c1o4 * yoff + c1o4 * zoff) + + // drho_NWB * (c1o8 + c1o4 * xoff - c1o4 * yoff + c1o4 * zoff) + + // drho_SEB * (c1o8 - c1o4 * xoff + c1o4 * yoff + c1o4 * zoff) + + // drho_SWB * (c1o8 + c1o4 * xoff + c1o4 * yoff + c1o4 * zoff); + press = d0; + vvx = a0; + vvy = b0; + vvz = c0; + + //mfaaa = drho; + //mfaaa = press + (ax+by+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1 - mfaaa; + + //two + // linear combinations + mxxPyyPzz = mfaaa; + //mxxMyy = -c2o3*(ax - by)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy)*eps_new/o; + //mfbab = -c1o3 * (az + cx)*eps_new/o; + //mfbba = -c1o3 * (ay + bx)*eps_new/o; + mxxMyy = -c2o3*((ax - by)+kxxMyyAverage)*eps_new/o; + mxxMzz = -c2o3*((ax - cz)+kxxMzzAverage)*eps_new/o; + + mfabb = -c1o3 * ((bz + cy)+kyzAverage)*eps_new/o; + mfbab = -c1o3 * ((az + cx)+kxzAverage)*eps_new/o; + mfbba = -c1o3 * ((ay + bx)+kxyAverage)*eps_new/o; + + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //3. + // linear combinations + residu = residutmp * (ayz + bxz + cxy ); + mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + + residu = residutmp * (axy + c2o1*bxx + c2o1*bzz + cyz ); + //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz )); + mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + + residu = residutmp * (axy + c2o1*bxx - c2o1*bzz - cyz ); + //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz ); + mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + + residu = residutmp * (axz + byz + c2o1*cxx + c2o1*cyy ); + //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy )); + mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + + residu = residutmp * (axz - byz + c2o1*cxx - c2o1*cyy ); + //residu = c1o9*(axz - byz - 2*cxx + 2*cyy ); + mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + + residu = residutmp * (c2o1*ayy + c2o1*azz + bxy + cxz ); + //residu = c1o9*(2*ayy + 2*azz - bxy - cxz ); + mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + + residu = residutmp * (c2o1*ayy - c2o1*azz + bxy - cxz ); + //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz ); + mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4. + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + //index 0 + kzero= posC[k]; + kw = neighborCX[kzero]; + ks = neighborCY[kzero]; + kb = neighborCZ[kzero]; + ksw = neighborCY[kw]; + kbw = neighborCZ[kw]; + kbs = neighborCZ[ks]; + kbsw = neighborCZ[ksw]; + //////////////////////////////////////////////////////////////////////////////////// + + + //////////////////////////////////////////////////////////////////////////////////// + feC[kzero] = mfcbb; + fwC[kw] = mfabb; + fnC[kzero] = mfbcb; + fsC[ks] = mfbab; + ftC[kzero] = mfbbc; + fbC[kb] = mfbba; + fneC[kzero] = mfccb; + fswC[ksw] = mfaab; + fseC[ks] = mfcab; + fnwC[kw] = mfacb; + fteC[kzero] = mfcbc; + fbwC[kbw] = mfaba; + fbeC[kb] = mfcba; + ftwC[kw] = mfabc; + ftnC[kzero] = mfbcc; + fbsC[kbs] = mfbaa; + fbnC[kb] = mfbca; + ftsC[ks] = mfbac; + fzeroC[kzero] = mfbbb; + ftneC[kzero] = mfccc; + ftseC[ks] = mfcac; + fbneC[kb] = mfcca; + fbseC[kbs] = mfcaa; + ftnwC[kw] = mfacc; + ftswC[ksw] = mfaac; + fbnwC[kbw] = mfaca; + fbswC[kbsw] = mfaaa; + //////////////////////////////////////////////////////////////////////////////////// } } ////////////////////////////////////////////////////////////////////////// @@ -17116,13 +17116,13 @@ __global__ void scaleFCpress27(real* DC, //vx1_SWB = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_SWB = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_SWB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_SWB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_SWB = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_SWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_SWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_SWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_SWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_SWB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; - press_SWB = (f_E+f_W+f_N+f_S+f_T+f_B+c2o1*(f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS)+c3o1*(f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW)- - drho_SWB-(vx1_SWB*vx1_SWB+vx2_SWB*vx2_SWB+vx3_SWB*vx3_SWB)* (c1o1+drho_SWB)) * c1o2+drho_SWB; + press_SWB = (f_E+f_W+f_N+f_S+f_T+f_B+c2o1*(f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS)+c3o1*(f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW)- + drho_SWB-(vx1_SWB*vx1_SWB+vx2_SWB*vx2_SWB+vx3_SWB*vx3_SWB)* (c1o1+drho_SWB)) * c1o2+drho_SWB; kxyFromfcNEQ_SWB = -c3o1*omegaS*(f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE-(vx1_SWB*vx2_SWB)); kyzFromfcNEQ_SWB = -c3o1*omegaS*(f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW-(vx2_SWB*vx3_SWB)); @@ -17173,10 +17173,10 @@ __global__ void scaleFCpress27(real* DC, //vx1_SWT = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_SWT = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_SWT = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_SWT = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_SWT = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_SWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_SWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_SWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_SWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_SWT = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; press_SWT= (f_E+f_W+f_N+f_S+f_T+f_B+c2o1*(f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS)+c3o1*(f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW)- drho_SWT-(vx1_SWT*vx1_SWT+vx2_SWT*vx2_SWT+vx3_SWT*vx3_SWT)* (c1o1+drho_SWT)) * c1o2+drho_SWT; @@ -17230,10 +17230,10 @@ __global__ void scaleFCpress27(real* DC, //vx1_SET = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_SET = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_SET = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_SET = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_SET = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_SET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_SET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_SET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_SET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_SET = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; press_SET= (f_E+f_W+f_N+f_S+f_T+f_B+c2o1*(f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS)+c3o1*(f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW)- drho_SET-(vx1_SET*vx1_SET+vx2_SET*vx2_SET+vx3_SET*vx3_SET)* (c1o1+drho_SET)) * c1o2+drho_SET; @@ -17287,10 +17287,10 @@ __global__ void scaleFCpress27(real* DC, //vx1_SEB = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_SEB = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_SEB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_SEB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_SEB = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_SEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_SEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_SEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_SEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_SEB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; press_SEB= (f_E+f_W+f_N+f_S+f_T+f_B+c2o1*(f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS)+c3o1*(f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW)- drho_SEB-(vx1_SEB*vx1_SEB+vx2_SEB*vx2_SEB+vx3_SEB*vx3_SEB)* (c1o1+drho_SEB)) * c1o2+drho_SEB; @@ -17354,10 +17354,10 @@ __global__ void scaleFCpress27(real* DC, //vx1_NWB = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_NWB = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_NWB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_NWB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_NWB = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_NWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_NWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_NWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_NWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_NWB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; press_NWB= (f_E+f_W+f_N+f_S+f_T+f_B+c2o1*(f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS)+c3o1*(f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW)- drho_NWB-(vx1_NWB*vx1_NWB+vx2_NWB*vx2_NWB+vx3_NWB*vx3_NWB)* (c1o1+drho_NWB)) * c1o2+drho_NWB; @@ -17411,10 +17411,10 @@ __global__ void scaleFCpress27(real* DC, //vx1_NWT = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_NWT = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_NWT = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_NWT = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_NWT = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_NWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_NWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_NWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_NWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_NWT = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; press_NWT= (f_E+f_W+f_N+f_S+f_T+f_B+c2o1*(f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS)+c3o1*(f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW)- drho_NWT-(vx1_NWT*vx1_NWT+vx2_NWT*vx2_NWT+vx3_NWT*vx3_NWT)* (c1o1+drho_NWT)) * c1o2+drho_NWT; @@ -17468,10 +17468,10 @@ __global__ void scaleFCpress27(real* DC, //vx1_NET = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_NET = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_NET = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_NET = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_NET = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_NET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_NET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_NET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_NET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_NET = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; press_NET= (f_E+f_W+f_N+f_S+f_T+f_B+c2o1*(f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS)+c3o1*(f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW)- drho_NET-(vx1_NET*vx1_NET+vx2_NET*vx2_NET+vx3_NET*vx3_NET)* (c1o1+drho_NET)) * c1o2+drho_NET; @@ -17525,10 +17525,10 @@ __global__ void scaleFCpress27(real* DC, //vx1_NEB = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_NEB = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_NEB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_NEB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_NEB = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_NEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_NEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_NEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_NEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_NEB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; press_NEB= (f_E+f_W+f_N+f_S+f_T+f_B+c2o1*(f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS)+c3o1*(f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW)- drho_NEB-(vx1_NEB*vx1_NEB+vx2_NEB*vx2_NEB+vx3_NEB*vx3_NEB)* (c1o1+drho_NEB)) * c1o2+drho_NEB; @@ -18041,10 +18041,10 @@ __global__ void scaleFCLast27( real* DC, //vx1_SWB = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_SWB = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_SWB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_SWB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_SWB = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_SWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_SWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_SWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_SWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_SWB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; kxyFromfcNEQ_SWB = -c3o1*omegaS*(f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE-(vx1_SWB*vx2_SWB)); @@ -18096,10 +18096,10 @@ __global__ void scaleFCLast27( real* DC, //vx1_SWT = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_SWT = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_SWT = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_SWT = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_SWT = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_SWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_SWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_SWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_SWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_SWT = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; kxyFromfcNEQ_SWT = -c3o1*omegaS*(f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE-(vx1_SWT*vx2_SWT)); @@ -18151,10 +18151,10 @@ __global__ void scaleFCLast27( real* DC, //vx1_SET = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_SET = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_SET = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_SET = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_SET = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_SET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_SET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_SET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_SET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_SET = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; kxyFromfcNEQ_SET = -c3o1*omegaS*(f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE-(vx1_SET*vx2_SET)); @@ -18206,10 +18206,10 @@ __global__ void scaleFCLast27( real* DC, //vx1_SEB = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_SEB = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_SEB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_SEB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_SEB = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_SEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_SEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_SEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_SEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_SEB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; kxyFromfcNEQ_SEB = -c3o1*omegaS*(f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE-(vx1_SEB*vx2_SEB)); @@ -18271,10 +18271,10 @@ __global__ void scaleFCLast27( real* DC, //vx1_NWB = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_NWB = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_NWB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_NWB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_NWB = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_NWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_NWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_NWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_NWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_NWB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; kxyFromfcNEQ_NWB = -c3o1*omegaS*(f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE-(vx1_NWB*vx2_NWB)); @@ -18326,10 +18326,10 @@ __global__ void scaleFCLast27( real* DC, //vx1_NWT = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_NWT = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_NWT = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_NWT = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_NWT = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_NWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_NWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_NWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_NWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_NWT = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; kxyFromfcNEQ_NWT = -c3o1*omegaS*(f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE-(vx1_NWT*vx2_NWT)); @@ -18381,10 +18381,10 @@ __global__ void scaleFCLast27( real* DC, //vx1_NET = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_NET = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_NET = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_NET = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_NET = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_NET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_NET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_NET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_NET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_NET = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; kxyFromfcNEQ_NET = -c3o1*omegaS*(f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE-(vx1_NET*vx2_NET)); @@ -18436,10 +18436,10 @@ __global__ void scaleFCLast27( real* DC, //vx1_NEB = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_NEB = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_NEB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_NEB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_NEB = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_NEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_NEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_NEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_NEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_NEB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; kxyFromfcNEQ_NEB = -c3o1*omegaS*(f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE-(vx1_NEB*vx2_NEB)); @@ -20889,7 +20889,7 @@ __global__ void scaleFCThS27( real* DC, unsigned int kFC, real nu, real diffusivity_coarse, - ICellNeigh offFC) + ICellNeigh offFC) { real *feF, *fwF, *fnF, *fsF, *ftF, *fbF, *fneF, *fswF, *fseF, *fnwF, *fteF, *fbwF, *fbeF, *ftwF, *ftnF, *fbsF, *fbnF, *ftsF, //*fzeroF, *ftneF, *ftswF, *ftseF, *ftnwF, *fbneF, *fbswF, *fbseF, *fbnwF; @@ -21853,34 +21853,34 @@ __global__ void scaleFCThS27( real* DC, real Diff_Conc_ZZ = ((Diff_Conc_Z_FSET + Diff_Conc_Z_FSWT + Diff_Conc_Z_FNET + Diff_Conc_Z_FNWT) - (Diff_Conc_Z_FSEB + Diff_Conc_Z_FSWB + Diff_Conc_Z_FNEB + Diff_Conc_Z_FNWB)) * c1o4; - real dx = c1o4 * (Conc_F_NEB + Conc_F_NET - Conc_F_NWB - Conc_F_NWT + Conc_F_SEB + Conc_F_SET - Conc_F_SWB - Conc_F_SWT); - real dy = c1o4 * (Conc_F_NEB + Conc_F_NET + Conc_F_NWB + Conc_F_NWT - Conc_F_SEB - Conc_F_SET - Conc_F_SWB - Conc_F_SWT); - real dz = c1o4 * (-Conc_F_NEB + Conc_F_NET - Conc_F_NWB + Conc_F_NWT - Conc_F_SEB + Conc_F_SET - Conc_F_SWB + Conc_F_SWT); - real dxx = Diff_Conc_XX * c1o2; - real dyy = Diff_Conc_YY * c1o2; - real dzz = Diff_Conc_ZZ * c1o2; - real dxy = c1o2 * (Conc_F_NEB + Conc_F_NET - Conc_F_NWB - Conc_F_NWT - Conc_F_SEB - Conc_F_SET + Conc_F_SWB + Conc_F_SWT); - real dyz = c1o2 * (-Conc_F_NEB + Conc_F_NET - Conc_F_NWB + Conc_F_NWT + Conc_F_SEB - Conc_F_SET + Conc_F_SWB - Conc_F_SWT); - real dxz = c1o2 * (-Conc_F_NEB + Conc_F_NET + Conc_F_NWB - Conc_F_NWT - Conc_F_SEB + Conc_F_SET + Conc_F_SWB - Conc_F_SWT); - //real dxyz = -Conc_F_NEB + Conc_F_NET + Conc_F_NWB - Conc_F_NWT + Conc_F_SEB - Conc_F_SET - Conc_F_SWB + Conc_F_SWT; - real d0 = c1o8 * (-c2o1 * dxx - c2o1 * dyy - c2o1 * dzz + Conc_F_NEB + Conc_F_NET + Conc_F_NWB + Conc_F_NWT + Conc_F_SEB + Conc_F_SET + Conc_F_SWB + Conc_F_SWT); + real dx = c1o4 * (Conc_F_NEB + Conc_F_NET - Conc_F_NWB - Conc_F_NWT + Conc_F_SEB + Conc_F_SET - Conc_F_SWB - Conc_F_SWT); + real dy = c1o4 * (Conc_F_NEB + Conc_F_NET + Conc_F_NWB + Conc_F_NWT - Conc_F_SEB - Conc_F_SET - Conc_F_SWB - Conc_F_SWT); + real dz = c1o4 * (-Conc_F_NEB + Conc_F_NET - Conc_F_NWB + Conc_F_NWT - Conc_F_SEB + Conc_F_SET - Conc_F_SWB + Conc_F_SWT); + real dxx = Diff_Conc_XX * c1o2; + real dyy = Diff_Conc_YY * c1o2; + real dzz = Diff_Conc_ZZ * c1o2; + real dxy = c1o2 * (Conc_F_NEB + Conc_F_NET - Conc_F_NWB - Conc_F_NWT - Conc_F_SEB - Conc_F_SET + Conc_F_SWB + Conc_F_SWT); + real dyz = c1o2 * (-Conc_F_NEB + Conc_F_NET - Conc_F_NWB + Conc_F_NWT + Conc_F_SEB - Conc_F_SET + Conc_F_SWB - Conc_F_SWT); + real dxz = c1o2 * (-Conc_F_NEB + Conc_F_NET + Conc_F_NWB - Conc_F_NWT - Conc_F_SEB + Conc_F_SET + Conc_F_SWB - Conc_F_SWT); + //real dxyz = -Conc_F_NEB + Conc_F_NET + Conc_F_NWB - Conc_F_NWT + Conc_F_SEB - Conc_F_SET - Conc_F_SWB + Conc_F_SWT; + real d0 = c1o8 * (-c2o1 * dxx - c2o1 * dyy - c2o1 * dzz + Conc_F_NEB + Conc_F_NET + Conc_F_NWB + Conc_F_NWT + Conc_F_SEB + Conc_F_SET + Conc_F_SWB + Conc_F_SWT); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // // Bernd das Brot // - // X------X - // | | - // | ---+-->X ----> off-vector - // | | - // X------X - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // X------X + // | | + // | ---+-->X ----> off-vector + // | | + // X------X + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// d0 = d0 + xoff * dx + yoff * dy + zoff * dz + xoff_sq * dxx + yoff_sq * dyy + zoff_sq * dzz + xoff*yoff*dxy + xoff*zoff*dxz + yoff*zoff*dyz; dx = dx + c2o1 * xoff * dxx + yoff * dxy + zoff * dxz; dy = dy + c2o1 * yoff * dyy + xoff * dxy + zoff * dyz; dz = dz + c2o1 * zoff * dzz + xoff * dxz + yoff * dyz; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -22215,10 +22215,10 @@ __global__ void scaleFCEff27(real* DC, //vx1_SWB = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_SWB = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_SWB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_SWB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_SWB = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_SWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_SWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_SWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_SWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_SWB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; kxyFromfcNEQ_SWB = -c3o1*omegaS*(f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE-(vx1_SWB*vx2_SWB)); @@ -22270,10 +22270,10 @@ __global__ void scaleFCEff27(real* DC, //vx1_SWT = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_SWT = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_SWT = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_SWT = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_SWT = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_SWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_SWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_SWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_SWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_SWT = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; kxyFromfcNEQ_SWT = -c3o1*omegaS*(f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE-(vx1_SWT*vx2_SWT)); @@ -22325,10 +22325,10 @@ __global__ void scaleFCEff27(real* DC, //vx1_SET = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_SET = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_SET = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_SET = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_SET = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_SET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_SET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_SET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_SET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_SET = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; kxyFromfcNEQ_SET = -c3o1*omegaS*(f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE-(vx1_SET*vx2_SET)); @@ -22380,10 +22380,10 @@ __global__ void scaleFCEff27(real* DC, //vx1_SEB = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_SEB = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_SEB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_SEB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_SEB = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_SEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_SEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_SEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_SEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_SEB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; kxyFromfcNEQ_SEB = -c3o1*omegaS*(f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE-(vx1_SEB*vx2_SEB)); @@ -22445,10 +22445,10 @@ __global__ void scaleFCEff27(real* DC, //vx1_NWB = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_NWB = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_NWB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_NWB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_NWB = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_NWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_NWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_NWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_NWB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_NWB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; kxyFromfcNEQ_NWB = -c3o1*omegaS*(f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE-(vx1_NWB*vx2_NWB)); @@ -22500,10 +22500,10 @@ __global__ void scaleFCEff27(real* DC, //vx1_NWT = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_NWT = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_NWT = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_NWT = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_NWT = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_NWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_NWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_NWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_NWT = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_NWT = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; kxyFromfcNEQ_NWT = -c3o1*omegaS*(f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE-(vx1_NWT*vx2_NWT)); @@ -22555,10 +22555,10 @@ __global__ void scaleFCEff27(real* DC, //vx1_NET = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_NET = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_NET = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_NET = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_NET = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_NET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_NET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_NET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_NET = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_NET = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; kxyFromfcNEQ_NET = -c3o1*omegaS*(f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE-(vx1_NET*vx2_NET)); @@ -22610,10 +22610,10 @@ __global__ void scaleFCEff27(real* DC, //vx1_NEB = f_E+f_NE+f_SE+f_TE+f_BE-f_W-f_NW-f_SW-f_TW-f_BW+f_TNE-f_TSW+f_TSE-f_TNW+f_BNE-f_BSW+f_BSE-f_BNW; //vx2_NEB = f_N+f_NE+f_NW+f_TN+f_BN-f_S-f_SE-f_SW-f_TS-f_BS+f_TNE-f_TSW-f_TSE+f_TNW+f_BNE-f_BSW-f_BSE+f_BNW; - //vx3_NEB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; + //vx3_NEB = f_T+f_TE+f_TW+f_TN+f_TS-f_B-f_BE-f_BW-f_BN-f_BS+f_TNE+f_TSW+f_TSE+f_TNW-f_BNE-f_BSW-f_BSE-f_BNW; vx1_NEB = ((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - vx2_NEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - vx3_NEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + vx2_NEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + vx3_NEB = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); drho_NEB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; kxyFromfcNEQ_NEB = -c3o1*omegaS*(f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE-(vx1_NEB*vx2_NEB)); @@ -22978,19 +22978,19 @@ __global__ void scaleFC27(real* DC, unsigned int* neighborFX, unsigned int* neighborFY, unsigned int* neighborFZ, - unsigned long long numberOfLBnodesCoarse, - unsigned long long numberOfLBnodesFine, - bool isEvenTimestep, + unsigned long long numberOfLBnodesCoarse, + unsigned long long numberOfLBnodesFine, + bool isEvenTimestep, unsigned int* posC, unsigned int* posFSWB, unsigned int kFC, - real omCoarse, - real omFine, - real nu, - unsigned int nxC, - unsigned int nyC, - unsigned int nxF, - unsigned int nyF) + real omCoarse, + real omFine, + real nu, + unsigned int nxC, + unsigned int nyC, + unsigned int nxF, + unsigned int nyF) { real *feF, *fwF, *fnF, *fsF, *ftF, *fbF, *fneF, *fswF, *fseF, *fnwF, *fteF, *fbwF, *fbeF, *ftwF, *ftnF, *fbsF, *fbnF, *ftsF, *fzeroF, *ftneF, *ftswF, *ftseF, *ftnwF, *fbneF, *fbswF, *fbseF, *fbnwF; @@ -24076,100 +24076,100 @@ __global__ void scaleFC27(real* DC, //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //for all //Version 1 - a0 = c8o1*vx1_SWB + c8o1*vx1_NWT + c8o1*vx1_SET + c8o1*vx1_NEB + c2o1*vx2_SWB - c2o1*vx2_NWT - c2o1*vx2_SET + c2o1*vx2_NEB + c2o1*vx3_SWB - c2o1*vx3_NWT + c2o1*vx3_SET - c2o1*vx3_NEB + kxxMyyFromfcNEQ_SWB + kxxMyyFromfcNEQ_NWT - kxxMyyFromfcNEQ_SET - kxxMyyFromfcNEQ_NEB + kxxMzzFromfcNEQ_SWB + kxxMzzFromfcNEQ_NWT - kxxMzzFromfcNEQ_SET - kxxMzzFromfcNEQ_NEB + c2o1*kxyFromfcNEQ_SWB - c2o1*kxyFromfcNEQ_NWT + c2o1*kxyFromfcNEQ_SET - c2o1*kxyFromfcNEQ_NEB + c2o1*kxzFromfcNEQ_SWB - c2o1*kxzFromfcNEQ_NWT - c2o1*kxzFromfcNEQ_SET + c2o1*kxzFromfcNEQ_NEB + kyzFromfcNEQ_SWB + kyzFromfcNEQ_NWT + kyzFromfcNEQ_SET + kyzFromfcNEQ_NEB; - ax = (-c4o1*vx1_SWB - c4o1*vx1_NWT + c4o1*vx1_SET + c4o1*vx1_NEB - kxyFromfcNEQ_SWB + kxyFromfcNEQ_NWT + kxyFromfcNEQ_SET - kxyFromfcNEQ_NEB - kxzFromfcNEQ_SWB + kxzFromfcNEQ_NWT - kxzFromfcNEQ_SET + kxzFromfcNEQ_NEB + kyzFromfcNEQ_SWB + kyzFromfcNEQ_NWT - kyzFromfcNEQ_SET - kyzFromfcNEQ_NEB)/epsylon; - ay = (-c2o1*vx1_SWB + c2o1*vx1_NWT - c2o1*vx1_SET + c2o1*vx1_NEB + c2o1*vx2_SWB + c2o1*vx2_NWT - c2o1*vx2_SET - c2o1*vx2_NEB - kxxMyyFromfcNEQ_SWB + kxxMyyFromfcNEQ_NWT + kxxMyyFromfcNEQ_SET - kxxMyyFromfcNEQ_NEB + kxyFromfcNEQ_SWB + kxyFromfcNEQ_NWT + kxyFromfcNEQ_SET + kxyFromfcNEQ_NEB)/epsylon; - az = (-c2o1*vx1_SWB + c2o1*vx1_NWT + c2o1*vx1_SET - c2o1*vx1_NEB + c2o1*vx3_SWB + c2o1*vx3_NWT - c2o1*vx3_SET - c2o1*vx3_NEB - kxxMzzFromfcNEQ_SWB + kxxMzzFromfcNEQ_NWT - kxxMzzFromfcNEQ_SET + kxxMzzFromfcNEQ_NEB + kxzFromfcNEQ_SWB + kxzFromfcNEQ_NWT + kxzFromfcNEQ_SET + kxzFromfcNEQ_NEB)/epsylon; - axx= (c2o1*vx2_SWB - c2o1*vx2_NWT - c2o1*vx2_SET + c2o1*vx2_NEB + c2o1*vx3_SWB - c2o1*vx3_NWT + c2o1*vx3_SET - c2o1*vx3_NEB - kxxMyyFromfcNEQ_SWB - kxxMyyFromfcNEQ_NWT + kxxMyyFromfcNEQ_SET + kxxMyyFromfcNEQ_NEB - kxxMzzFromfcNEQ_SWB - kxxMzzFromfcNEQ_NWT + kxxMzzFromfcNEQ_SET + kxxMzzFromfcNEQ_NEB + kyzFromfcNEQ_SWB + kyzFromfcNEQ_NWT + kyzFromfcNEQ_SET + kyzFromfcNEQ_NEB)/(epsylon*epsylon); - ayy= (-c2o1*vx2_SWB + c2o1*vx2_NWT + c2o1*vx2_SET - c2o1*vx2_NEB - c2o1*vx3_SWB + c2o1*vx3_NWT - c2o1*vx3_SET + c2o1*vx3_NEB - kxxMyyFromfcNEQ_SWB - kxxMyyFromfcNEQ_NWT + kxxMyyFromfcNEQ_SET + kxxMyyFromfcNEQ_NEB + kxxMzzFromfcNEQ_SWB + kxxMzzFromfcNEQ_NWT - kxxMzzFromfcNEQ_SET - kxxMzzFromfcNEQ_NEB - c2o1*kxyFromfcNEQ_SWB + c2o1*kxyFromfcNEQ_NWT - c2o1*kxyFromfcNEQ_SET + c2o1*kxyFromfcNEQ_NEB - kyzFromfcNEQ_SWB - kyzFromfcNEQ_NWT - kyzFromfcNEQ_SET - kyzFromfcNEQ_NEB)/(epsylon*epsylon); - azz= (-c2o1*vx2_SWB + c2o1*vx2_NWT + c2o1*vx2_SET - c2o1*vx2_NEB - c2o1*vx3_SWB + c2o1*vx3_NWT - c2o1*vx3_SET + c2o1*vx3_NEB + kxxMyyFromfcNEQ_SWB + kxxMyyFromfcNEQ_NWT - kxxMyyFromfcNEQ_SET - kxxMyyFromfcNEQ_NEB - kxxMzzFromfcNEQ_SWB - kxxMzzFromfcNEQ_NWT + kxxMzzFromfcNEQ_SET + kxxMzzFromfcNEQ_NEB - c2o1*kxzFromfcNEQ_SWB + c2o1*kxzFromfcNEQ_NWT + c2o1*kxzFromfcNEQ_SET - c2o1*kxzFromfcNEQ_NEB - kyzFromfcNEQ_SWB - kyzFromfcNEQ_NWT - kyzFromfcNEQ_SET - kyzFromfcNEQ_NEB)/(epsylon*epsylon); - axy= (c2o1*vx1_SWB - c2o1*vx1_NWT - c2o1*vx1_SET + c2o1*vx1_NEB + c2o1*vx3_SWB + c2o1*vx3_NWT - c2o1*vx3_SET - c2o1*vx3_NEB - kxxMzzFromfcNEQ_SWB + kxxMzzFromfcNEQ_NWT - kxxMzzFromfcNEQ_SET + kxxMzzFromfcNEQ_NEB + kxzFromfcNEQ_SWB + kxzFromfcNEQ_NWT + kxzFromfcNEQ_SET + kxzFromfcNEQ_NEB)/(epsylon*epsylon); - axz= (c2o1*vx1_SWB - c2o1*vx1_NWT + c2o1*vx1_SET - c2o1*vx1_NEB + c2o1*vx2_SWB + c2o1*vx2_NWT - c2o1*vx2_SET - c2o1*vx2_NEB - kxxMyyFromfcNEQ_SWB + kxxMyyFromfcNEQ_NWT + kxxMyyFromfcNEQ_SET - kxxMyyFromfcNEQ_NEB + kxyFromfcNEQ_SWB + kxyFromfcNEQ_NWT + kxyFromfcNEQ_SET + kxyFromfcNEQ_NEB)/(epsylon*epsylon); - ayz= (-kxyFromfcNEQ_SWB + kxyFromfcNEQ_NWT + kxyFromfcNEQ_SET - kxyFromfcNEQ_NEB - kxzFromfcNEQ_SWB + kxzFromfcNEQ_NWT - kxzFromfcNEQ_SET + kxzFromfcNEQ_NEB + kyzFromfcNEQ_SWB + kyzFromfcNEQ_NWT - kyzFromfcNEQ_SET - kyzFromfcNEQ_NEB)/(epsylon*epsylon); - b0 = c2o1*vx1_SWB - c2o1*vx1_NWT - c2o1*vx1_SET + c2o1*vx1_NEB + c8o1*vx2_SWB + c8o1*vx2_NWT + c8o1*vx2_SET + c8o1*vx2_NEB + c2o1*vx3_SWB + c2o1*vx3_NWT - c2o1*vx3_SET - c2o1*vx3_NEB - c2o1*kxxMyyFromfcNEQ_SWB + c2o1*kxxMyyFromfcNEQ_NWT - c2o1*kxxMyyFromfcNEQ_SET + c2o1*kxxMyyFromfcNEQ_NEB + kxxMzzFromfcNEQ_SWB - kxxMzzFromfcNEQ_NWT + kxxMzzFromfcNEQ_SET - kxxMzzFromfcNEQ_NEB + c2o1*kxyFromfcNEQ_SWB + c2o1*kxyFromfcNEQ_NWT - c2o1*kxyFromfcNEQ_SET - c2o1*kxyFromfcNEQ_NEB + kxzFromfcNEQ_SWB + kxzFromfcNEQ_NWT + kxzFromfcNEQ_SET + kxzFromfcNEQ_NEB + c2o1*kyzFromfcNEQ_SWB - c2o1*kyzFromfcNEQ_NWT - c2o1*kyzFromfcNEQ_SET + c2o1*kyzFromfcNEQ_NEB; - bx = (c2o1*vx1_SWB - c2o1*vx1_NWT + c2o1*vx1_SET - c2o1*vx1_NEB - c2o1*vx2_SWB - c2o1*vx2_NWT + c2o1*vx2_SET + c2o1*vx2_NEB + kxxMyyFromfcNEQ_SWB - kxxMyyFromfcNEQ_NWT - kxxMyyFromfcNEQ_SET + kxxMyyFromfcNEQ_NEB + kxyFromfcNEQ_SWB + kxyFromfcNEQ_NWT + kxyFromfcNEQ_SET + kxyFromfcNEQ_NEB)/epsylon; - by = (-c4o1*vx2_SWB + c4o1*vx2_NWT - c4o1*vx2_SET + c4o1*vx2_NEB - kxyFromfcNEQ_SWB + kxyFromfcNEQ_NWT + kxyFromfcNEQ_SET - kxyFromfcNEQ_NEB + kxzFromfcNEQ_SWB - kxzFromfcNEQ_NWT + kxzFromfcNEQ_SET - kxzFromfcNEQ_NEB - kyzFromfcNEQ_SWB - kyzFromfcNEQ_NWT + kyzFromfcNEQ_SET + kyzFromfcNEQ_NEB)/epsylon; - bz = (-c2o1*vx2_SWB + c2o1*vx2_NWT + c2o1*vx2_SET - c2o1*vx2_NEB + c2o1*vx3_SWB - c2o1*vx3_NWT + c2o1*vx3_SET - c2o1*vx3_NEB + kxxMyyFromfcNEQ_SWB + kxxMyyFromfcNEQ_NWT - kxxMyyFromfcNEQ_SET - kxxMyyFromfcNEQ_NEB - kxxMzzFromfcNEQ_SWB - kxxMzzFromfcNEQ_NWT + kxxMzzFromfcNEQ_SET + kxxMzzFromfcNEQ_NEB + kyzFromfcNEQ_SWB + kyzFromfcNEQ_NWT + kyzFromfcNEQ_SET + kyzFromfcNEQ_NEB)/epsylon; - bxx= (-c2o1*vx1_SWB + c2o1*vx1_NWT + c2o1*vx1_SET - c2o1*vx1_NEB - c2o1*vx3_SWB - c2o1*vx3_NWT + c2o1*vx3_SET + c2o1*vx3_NEB + kxxMzzFromfcNEQ_SWB - kxxMzzFromfcNEQ_NWT + kxxMzzFromfcNEQ_SET - kxxMzzFromfcNEQ_NEB - c2o1*kxyFromfcNEQ_SWB - c2o1*kxyFromfcNEQ_NWT + c2o1*kxyFromfcNEQ_SET + c2o1*kxyFromfcNEQ_NEB - kxzFromfcNEQ_SWB - kxzFromfcNEQ_NWT - kxzFromfcNEQ_SET - kxzFromfcNEQ_NEB)/(epsylon*epsylon); - byy= (c2o1*vx1_SWB - c2o1*vx1_NWT - c2o1*vx1_SET + c2o1*vx1_NEB + c2o1*vx3_SWB + c2o1*vx3_NWT - c2o1*vx3_SET - c2o1*vx3_NEB + c2o1*kxxMyyFromfcNEQ_SWB - c2o1*kxxMyyFromfcNEQ_NWT + c2o1*kxxMyyFromfcNEQ_SET - c2o1*kxxMyyFromfcNEQ_NEB - kxxMzzFromfcNEQ_SWB + kxxMzzFromfcNEQ_NWT - kxxMzzFromfcNEQ_SET + kxxMzzFromfcNEQ_NEB + kxzFromfcNEQ_SWB + kxzFromfcNEQ_NWT + kxzFromfcNEQ_SET + kxzFromfcNEQ_NEB)/(epsylon*epsylon); - bzz= (-c2o1*vx1_SWB + c2o1*vx1_NWT + c2o1*vx1_SET - c2o1*vx1_NEB - c2o1*vx3_SWB - c2o1*vx3_NWT + c2o1*vx3_SET + c2o1*vx3_NEB - kxxMzzFromfcNEQ_SWB + kxxMzzFromfcNEQ_NWT - kxxMzzFromfcNEQ_SET + kxxMzzFromfcNEQ_NEB - kxzFromfcNEQ_SWB - kxzFromfcNEQ_NWT - kxzFromfcNEQ_SET - kxzFromfcNEQ_NEB - c2o1*kyzFromfcNEQ_SWB + c2o1*kyzFromfcNEQ_NWT + c2o1*kyzFromfcNEQ_SET - c2o1*kyzFromfcNEQ_NEB)/(epsylon*epsylon); - bxy= (c2o1*vx2_SWB - c2o1*vx2_NWT - c2o1*vx2_SET + c2o1*vx2_NEB + c2o1*vx3_SWB - c2o1*vx3_NWT + c2o1*vx3_SET - c2o1*vx3_NEB + kxxMyyFromfcNEQ_SWB + kxxMyyFromfcNEQ_NWT - kxxMyyFromfcNEQ_SET - kxxMyyFromfcNEQ_NEB - kxxMzzFromfcNEQ_SWB - kxxMzzFromfcNEQ_NWT + kxxMzzFromfcNEQ_SET + kxxMzzFromfcNEQ_NEB + kyzFromfcNEQ_SWB + kyzFromfcNEQ_NWT + kyzFromfcNEQ_SET + kyzFromfcNEQ_NEB)/(epsylon*epsylon); - bxz= (-kxyFromfcNEQ_SWB + kxyFromfcNEQ_NWT + kxyFromfcNEQ_SET - kxyFromfcNEQ_NEB + kxzFromfcNEQ_SWB - kxzFromfcNEQ_NWT + kxzFromfcNEQ_SET - kxzFromfcNEQ_NEB - kyzFromfcNEQ_SWB - kyzFromfcNEQ_NWT + kyzFromfcNEQ_SET + kyzFromfcNEQ_NEB)/(epsylon*epsylon); - byz= (c2o1*vx1_SWB - c2o1*vx1_NWT + c2o1*vx1_SET - c2o1*vx1_NEB + c2o1*vx2_SWB + c2o1*vx2_NWT - c2o1*vx2_SET - c2o1*vx2_NEB + kxxMyyFromfcNEQ_SWB - kxxMyyFromfcNEQ_NWT - kxxMyyFromfcNEQ_SET + kxxMyyFromfcNEQ_NEB + kxyFromfcNEQ_SWB + kxyFromfcNEQ_NWT + kxyFromfcNEQ_SET + kxyFromfcNEQ_NEB)/(epsylon*epsylon); - c0 = c2o1*vx1_SWB - c2o1*vx1_NWT + c2o1*vx1_SET - c2o1*vx1_NEB + c2o1*vx2_SWB + c2o1*vx2_NWT - c2o1*vx2_SET - c2o1*vx2_NEB + c8o1*vx3_SWB + c8o1*vx3_NWT + c8o1*vx3_SET + c8o1*vx3_NEB + kxxMyyFromfcNEQ_SWB - kxxMyyFromfcNEQ_NWT - kxxMyyFromfcNEQ_SET + kxxMyyFromfcNEQ_NEB - c2o1*kxxMzzFromfcNEQ_SWB + c2o1*kxxMzzFromfcNEQ_NWT + c2o1*kxxMzzFromfcNEQ_SET - c2o1*kxxMzzFromfcNEQ_NEB + kxyFromfcNEQ_SWB + kxyFromfcNEQ_NWT + kxyFromfcNEQ_SET + kxyFromfcNEQ_NEB + c2o1*kxzFromfcNEQ_SWB + c2o1*kxzFromfcNEQ_NWT - c2o1*kxzFromfcNEQ_SET - c2o1*kxzFromfcNEQ_NEB + c2o1*kyzFromfcNEQ_SWB - c2o1*kyzFromfcNEQ_NWT + c2o1*kyzFromfcNEQ_SET - c2o1*kyzFromfcNEQ_NEB; - cx = (c2o1*vx1_SWB - c2o1*vx1_NWT - c2o1*vx1_SET + c2o1*vx1_NEB - c2o1*vx3_SWB - c2o1*vx3_NWT + c2o1*vx3_SET + c2o1*vx3_NEB + kxxMzzFromfcNEQ_SWB - kxxMzzFromfcNEQ_NWT + kxxMzzFromfcNEQ_SET - kxxMzzFromfcNEQ_NEB + kxzFromfcNEQ_SWB + kxzFromfcNEQ_NWT + kxzFromfcNEQ_SET + kxzFromfcNEQ_NEB)/epsylon; - cy = (c2o1*vx2_SWB - c2o1*vx2_NWT - c2o1*vx2_SET + c2o1*vx2_NEB - c2o1*vx3_SWB + c2o1*vx3_NWT - c2o1*vx3_SET + c2o1*vx3_NEB - kxxMyyFromfcNEQ_SWB - kxxMyyFromfcNEQ_NWT + kxxMyyFromfcNEQ_SET + kxxMyyFromfcNEQ_NEB + kxxMzzFromfcNEQ_SWB + kxxMzzFromfcNEQ_NWT - kxxMzzFromfcNEQ_SET - kxxMzzFromfcNEQ_NEB + kyzFromfcNEQ_SWB + kyzFromfcNEQ_NWT + kyzFromfcNEQ_SET + kyzFromfcNEQ_NEB)/epsylon; - cz = (-c4o1*vx3_SWB + c4o1*vx3_NWT + c4o1*vx3_SET - c4o1*vx3_NEB + kxyFromfcNEQ_SWB - kxyFromfcNEQ_NWT - kxyFromfcNEQ_SET + kxyFromfcNEQ_NEB - kxzFromfcNEQ_SWB + kxzFromfcNEQ_NWT - kxzFromfcNEQ_SET + kxzFromfcNEQ_NEB - kyzFromfcNEQ_SWB - kyzFromfcNEQ_NWT + kyzFromfcNEQ_SET + kyzFromfcNEQ_NEB)/epsylon; - cxx= (-c2o1*vx1_SWB + c2o1*vx1_NWT - c2o1*vx1_SET + c2o1*vx1_NEB - c2o1*vx2_SWB - c2o1*vx2_NWT + c2o1*vx2_SET + c2o1*vx2_NEB + kxxMyyFromfcNEQ_SWB - kxxMyyFromfcNEQ_NWT - kxxMyyFromfcNEQ_SET + kxxMyyFromfcNEQ_NEB - kxyFromfcNEQ_SWB - kxyFromfcNEQ_NWT - kxyFromfcNEQ_SET - kxyFromfcNEQ_NEB - c2o1*kxzFromfcNEQ_SWB - c2o1*kxzFromfcNEQ_NWT + c2o1*kxzFromfcNEQ_SET + c2o1*kxzFromfcNEQ_NEB)/(epsylon*epsylon); - cyy= (-c2o1*vx1_SWB + c2o1*vx1_NWT - c2o1*vx1_SET + c2o1*vx1_NEB - c2o1*vx2_SWB - c2o1*vx2_NWT + c2o1*vx2_SET + c2o1*vx2_NEB - kxxMyyFromfcNEQ_SWB + kxxMyyFromfcNEQ_NWT + kxxMyyFromfcNEQ_SET - kxxMyyFromfcNEQ_NEB - kxyFromfcNEQ_SWB - kxyFromfcNEQ_NWT - kxyFromfcNEQ_SET - kxyFromfcNEQ_NEB - c2o1*kyzFromfcNEQ_SWB + c2o1*kyzFromfcNEQ_NWT - c2o1*kyzFromfcNEQ_SET + c2o1*kyzFromfcNEQ_NEB)/(epsylon*epsylon); - czz= (c2o1*vx1_SWB - c2o1*vx1_NWT + c2o1*vx1_SET - c2o1*vx1_NEB + c2o1*vx2_SWB + c2o1*vx2_NWT - c2o1*vx2_SET - c2o1*vx2_NEB - kxxMyyFromfcNEQ_SWB + kxxMyyFromfcNEQ_NWT + kxxMyyFromfcNEQ_SET - kxxMyyFromfcNEQ_NEB + c2o1*kxxMzzFromfcNEQ_SWB - c2o1*kxxMzzFromfcNEQ_NWT - c2o1*kxxMzzFromfcNEQ_SET + c2o1*kxxMzzFromfcNEQ_NEB + kxyFromfcNEQ_SWB + kxyFromfcNEQ_NWT + kxyFromfcNEQ_SET + kxyFromfcNEQ_NEB)/(epsylon*epsylon); - cxy= (kxyFromfcNEQ_SWB - kxyFromfcNEQ_NWT - kxyFromfcNEQ_SET + kxyFromfcNEQ_NEB - kxzFromfcNEQ_SWB + kxzFromfcNEQ_NWT - kxzFromfcNEQ_SET + kxzFromfcNEQ_NEB - kyzFromfcNEQ_SWB - kyzFromfcNEQ_NWT + kyzFromfcNEQ_SET + kyzFromfcNEQ_NEB)/(epsylon*epsylon); - cxz= (c2o1*vx2_SWB - c2o1*vx2_NWT - c2o1*vx2_SET + c2o1*vx2_NEB + c2o1*vx3_SWB - c2o1*vx3_NWT + c2o1*vx3_SET - c2o1*vx3_NEB - kxxMyyFromfcNEQ_SWB - kxxMyyFromfcNEQ_NWT + kxxMyyFromfcNEQ_SET + kxxMyyFromfcNEQ_NEB + kxxMzzFromfcNEQ_SWB + kxxMzzFromfcNEQ_NWT - kxxMzzFromfcNEQ_SET - kxxMzzFromfcNEQ_NEB + kyzFromfcNEQ_SWB + kyzFromfcNEQ_NWT + kyzFromfcNEQ_SET + kyzFromfcNEQ_NEB)/(epsylon*epsylon); - cyz= (c2o1*vx1_SWB - c2o1*vx1_NWT - c2o1*vx1_SET + c2o1*vx1_NEB + c2o1*vx3_SWB + c2o1*vx3_NWT - c2o1*vx3_SET - c2o1*vx3_NEB + kxxMzzFromfcNEQ_SWB - kxxMzzFromfcNEQ_NWT + kxxMzzFromfcNEQ_SET - kxxMzzFromfcNEQ_NEB + kxzFromfcNEQ_SWB + kxzFromfcNEQ_NWT + kxzFromfcNEQ_SET + kxzFromfcNEQ_NEB)/(epsylon*epsylon); + a0 = c8o1*vx1_SWB + c8o1*vx1_NWT + c8o1*vx1_SET + c8o1*vx1_NEB + c2o1*vx2_SWB - c2o1*vx2_NWT - c2o1*vx2_SET + c2o1*vx2_NEB + c2o1*vx3_SWB - c2o1*vx3_NWT + c2o1*vx3_SET - c2o1*vx3_NEB + kxxMyyFromfcNEQ_SWB + kxxMyyFromfcNEQ_NWT - kxxMyyFromfcNEQ_SET - kxxMyyFromfcNEQ_NEB + kxxMzzFromfcNEQ_SWB + kxxMzzFromfcNEQ_NWT - kxxMzzFromfcNEQ_SET - kxxMzzFromfcNEQ_NEB + c2o1*kxyFromfcNEQ_SWB - c2o1*kxyFromfcNEQ_NWT + c2o1*kxyFromfcNEQ_SET - c2o1*kxyFromfcNEQ_NEB + c2o1*kxzFromfcNEQ_SWB - c2o1*kxzFromfcNEQ_NWT - c2o1*kxzFromfcNEQ_SET + c2o1*kxzFromfcNEQ_NEB + kyzFromfcNEQ_SWB + kyzFromfcNEQ_NWT + kyzFromfcNEQ_SET + kyzFromfcNEQ_NEB; + ax = (-c4o1*vx1_SWB - c4o1*vx1_NWT + c4o1*vx1_SET + c4o1*vx1_NEB - kxyFromfcNEQ_SWB + kxyFromfcNEQ_NWT + kxyFromfcNEQ_SET - kxyFromfcNEQ_NEB - kxzFromfcNEQ_SWB + kxzFromfcNEQ_NWT - kxzFromfcNEQ_SET + kxzFromfcNEQ_NEB + kyzFromfcNEQ_SWB + kyzFromfcNEQ_NWT - kyzFromfcNEQ_SET - kyzFromfcNEQ_NEB)/epsylon; + ay = (-c2o1*vx1_SWB + c2o1*vx1_NWT - c2o1*vx1_SET + c2o1*vx1_NEB + c2o1*vx2_SWB + c2o1*vx2_NWT - c2o1*vx2_SET - c2o1*vx2_NEB - kxxMyyFromfcNEQ_SWB + kxxMyyFromfcNEQ_NWT + kxxMyyFromfcNEQ_SET - kxxMyyFromfcNEQ_NEB + kxyFromfcNEQ_SWB + kxyFromfcNEQ_NWT + kxyFromfcNEQ_SET + kxyFromfcNEQ_NEB)/epsylon; + az = (-c2o1*vx1_SWB + c2o1*vx1_NWT + c2o1*vx1_SET - c2o1*vx1_NEB + c2o1*vx3_SWB + c2o1*vx3_NWT - c2o1*vx3_SET - c2o1*vx3_NEB - kxxMzzFromfcNEQ_SWB + kxxMzzFromfcNEQ_NWT - kxxMzzFromfcNEQ_SET + kxxMzzFromfcNEQ_NEB + kxzFromfcNEQ_SWB + kxzFromfcNEQ_NWT + kxzFromfcNEQ_SET + kxzFromfcNEQ_NEB)/epsylon; + axx= (c2o1*vx2_SWB - c2o1*vx2_NWT - c2o1*vx2_SET + c2o1*vx2_NEB + c2o1*vx3_SWB - c2o1*vx3_NWT + c2o1*vx3_SET - c2o1*vx3_NEB - kxxMyyFromfcNEQ_SWB - kxxMyyFromfcNEQ_NWT + kxxMyyFromfcNEQ_SET + kxxMyyFromfcNEQ_NEB - kxxMzzFromfcNEQ_SWB - kxxMzzFromfcNEQ_NWT + kxxMzzFromfcNEQ_SET + kxxMzzFromfcNEQ_NEB + kyzFromfcNEQ_SWB + kyzFromfcNEQ_NWT + kyzFromfcNEQ_SET + kyzFromfcNEQ_NEB)/(epsylon*epsylon); + ayy= (-c2o1*vx2_SWB + c2o1*vx2_NWT + c2o1*vx2_SET - c2o1*vx2_NEB - c2o1*vx3_SWB + c2o1*vx3_NWT - c2o1*vx3_SET + c2o1*vx3_NEB - kxxMyyFromfcNEQ_SWB - kxxMyyFromfcNEQ_NWT + kxxMyyFromfcNEQ_SET + kxxMyyFromfcNEQ_NEB + kxxMzzFromfcNEQ_SWB + kxxMzzFromfcNEQ_NWT - kxxMzzFromfcNEQ_SET - kxxMzzFromfcNEQ_NEB - c2o1*kxyFromfcNEQ_SWB + c2o1*kxyFromfcNEQ_NWT - c2o1*kxyFromfcNEQ_SET + c2o1*kxyFromfcNEQ_NEB - kyzFromfcNEQ_SWB - kyzFromfcNEQ_NWT - kyzFromfcNEQ_SET - kyzFromfcNEQ_NEB)/(epsylon*epsylon); + azz= (-c2o1*vx2_SWB + c2o1*vx2_NWT + c2o1*vx2_SET - c2o1*vx2_NEB - c2o1*vx3_SWB + c2o1*vx3_NWT - c2o1*vx3_SET + c2o1*vx3_NEB + kxxMyyFromfcNEQ_SWB + kxxMyyFromfcNEQ_NWT - kxxMyyFromfcNEQ_SET - kxxMyyFromfcNEQ_NEB - kxxMzzFromfcNEQ_SWB - kxxMzzFromfcNEQ_NWT + kxxMzzFromfcNEQ_SET + kxxMzzFromfcNEQ_NEB - c2o1*kxzFromfcNEQ_SWB + c2o1*kxzFromfcNEQ_NWT + c2o1*kxzFromfcNEQ_SET - c2o1*kxzFromfcNEQ_NEB - kyzFromfcNEQ_SWB - kyzFromfcNEQ_NWT - kyzFromfcNEQ_SET - kyzFromfcNEQ_NEB)/(epsylon*epsylon); + axy= (c2o1*vx1_SWB - c2o1*vx1_NWT - c2o1*vx1_SET + c2o1*vx1_NEB + c2o1*vx3_SWB + c2o1*vx3_NWT - c2o1*vx3_SET - c2o1*vx3_NEB - kxxMzzFromfcNEQ_SWB + kxxMzzFromfcNEQ_NWT - kxxMzzFromfcNEQ_SET + kxxMzzFromfcNEQ_NEB + kxzFromfcNEQ_SWB + kxzFromfcNEQ_NWT + kxzFromfcNEQ_SET + kxzFromfcNEQ_NEB)/(epsylon*epsylon); + axz= (c2o1*vx1_SWB - c2o1*vx1_NWT + c2o1*vx1_SET - c2o1*vx1_NEB + c2o1*vx2_SWB + c2o1*vx2_NWT - c2o1*vx2_SET - c2o1*vx2_NEB - kxxMyyFromfcNEQ_SWB + kxxMyyFromfcNEQ_NWT + kxxMyyFromfcNEQ_SET - kxxMyyFromfcNEQ_NEB + kxyFromfcNEQ_SWB + kxyFromfcNEQ_NWT + kxyFromfcNEQ_SET + kxyFromfcNEQ_NEB)/(epsylon*epsylon); + ayz= (-kxyFromfcNEQ_SWB + kxyFromfcNEQ_NWT + kxyFromfcNEQ_SET - kxyFromfcNEQ_NEB - kxzFromfcNEQ_SWB + kxzFromfcNEQ_NWT - kxzFromfcNEQ_SET + kxzFromfcNEQ_NEB + kyzFromfcNEQ_SWB + kyzFromfcNEQ_NWT - kyzFromfcNEQ_SET - kyzFromfcNEQ_NEB)/(epsylon*epsylon); + b0 = c2o1*vx1_SWB - c2o1*vx1_NWT - c2o1*vx1_SET + c2o1*vx1_NEB + c8o1*vx2_SWB + c8o1*vx2_NWT + c8o1*vx2_SET + c8o1*vx2_NEB + c2o1*vx3_SWB + c2o1*vx3_NWT - c2o1*vx3_SET - c2o1*vx3_NEB - c2o1*kxxMyyFromfcNEQ_SWB + c2o1*kxxMyyFromfcNEQ_NWT - c2o1*kxxMyyFromfcNEQ_SET + c2o1*kxxMyyFromfcNEQ_NEB + kxxMzzFromfcNEQ_SWB - kxxMzzFromfcNEQ_NWT + kxxMzzFromfcNEQ_SET - kxxMzzFromfcNEQ_NEB + c2o1*kxyFromfcNEQ_SWB + c2o1*kxyFromfcNEQ_NWT - c2o1*kxyFromfcNEQ_SET - c2o1*kxyFromfcNEQ_NEB + kxzFromfcNEQ_SWB + kxzFromfcNEQ_NWT + kxzFromfcNEQ_SET + kxzFromfcNEQ_NEB + c2o1*kyzFromfcNEQ_SWB - c2o1*kyzFromfcNEQ_NWT - c2o1*kyzFromfcNEQ_SET + c2o1*kyzFromfcNEQ_NEB; + bx = (c2o1*vx1_SWB - c2o1*vx1_NWT + c2o1*vx1_SET - c2o1*vx1_NEB - c2o1*vx2_SWB - c2o1*vx2_NWT + c2o1*vx2_SET + c2o1*vx2_NEB + kxxMyyFromfcNEQ_SWB - kxxMyyFromfcNEQ_NWT - kxxMyyFromfcNEQ_SET + kxxMyyFromfcNEQ_NEB + kxyFromfcNEQ_SWB + kxyFromfcNEQ_NWT + kxyFromfcNEQ_SET + kxyFromfcNEQ_NEB)/epsylon; + by = (-c4o1*vx2_SWB + c4o1*vx2_NWT - c4o1*vx2_SET + c4o1*vx2_NEB - kxyFromfcNEQ_SWB + kxyFromfcNEQ_NWT + kxyFromfcNEQ_SET - kxyFromfcNEQ_NEB + kxzFromfcNEQ_SWB - kxzFromfcNEQ_NWT + kxzFromfcNEQ_SET - kxzFromfcNEQ_NEB - kyzFromfcNEQ_SWB - kyzFromfcNEQ_NWT + kyzFromfcNEQ_SET + kyzFromfcNEQ_NEB)/epsylon; + bz = (-c2o1*vx2_SWB + c2o1*vx2_NWT + c2o1*vx2_SET - c2o1*vx2_NEB + c2o1*vx3_SWB - c2o1*vx3_NWT + c2o1*vx3_SET - c2o1*vx3_NEB + kxxMyyFromfcNEQ_SWB + kxxMyyFromfcNEQ_NWT - kxxMyyFromfcNEQ_SET - kxxMyyFromfcNEQ_NEB - kxxMzzFromfcNEQ_SWB - kxxMzzFromfcNEQ_NWT + kxxMzzFromfcNEQ_SET + kxxMzzFromfcNEQ_NEB + kyzFromfcNEQ_SWB + kyzFromfcNEQ_NWT + kyzFromfcNEQ_SET + kyzFromfcNEQ_NEB)/epsylon; + bxx= (-c2o1*vx1_SWB + c2o1*vx1_NWT + c2o1*vx1_SET - c2o1*vx1_NEB - c2o1*vx3_SWB - c2o1*vx3_NWT + c2o1*vx3_SET + c2o1*vx3_NEB + kxxMzzFromfcNEQ_SWB - kxxMzzFromfcNEQ_NWT + kxxMzzFromfcNEQ_SET - kxxMzzFromfcNEQ_NEB - c2o1*kxyFromfcNEQ_SWB - c2o1*kxyFromfcNEQ_NWT + c2o1*kxyFromfcNEQ_SET + c2o1*kxyFromfcNEQ_NEB - kxzFromfcNEQ_SWB - kxzFromfcNEQ_NWT - kxzFromfcNEQ_SET - kxzFromfcNEQ_NEB)/(epsylon*epsylon); + byy= (c2o1*vx1_SWB - c2o1*vx1_NWT - c2o1*vx1_SET + c2o1*vx1_NEB + c2o1*vx3_SWB + c2o1*vx3_NWT - c2o1*vx3_SET - c2o1*vx3_NEB + c2o1*kxxMyyFromfcNEQ_SWB - c2o1*kxxMyyFromfcNEQ_NWT + c2o1*kxxMyyFromfcNEQ_SET - c2o1*kxxMyyFromfcNEQ_NEB - kxxMzzFromfcNEQ_SWB + kxxMzzFromfcNEQ_NWT - kxxMzzFromfcNEQ_SET + kxxMzzFromfcNEQ_NEB + kxzFromfcNEQ_SWB + kxzFromfcNEQ_NWT + kxzFromfcNEQ_SET + kxzFromfcNEQ_NEB)/(epsylon*epsylon); + bzz= (-c2o1*vx1_SWB + c2o1*vx1_NWT + c2o1*vx1_SET - c2o1*vx1_NEB - c2o1*vx3_SWB - c2o1*vx3_NWT + c2o1*vx3_SET + c2o1*vx3_NEB - kxxMzzFromfcNEQ_SWB + kxxMzzFromfcNEQ_NWT - kxxMzzFromfcNEQ_SET + kxxMzzFromfcNEQ_NEB - kxzFromfcNEQ_SWB - kxzFromfcNEQ_NWT - kxzFromfcNEQ_SET - kxzFromfcNEQ_NEB - c2o1*kyzFromfcNEQ_SWB + c2o1*kyzFromfcNEQ_NWT + c2o1*kyzFromfcNEQ_SET - c2o1*kyzFromfcNEQ_NEB)/(epsylon*epsylon); + bxy= (c2o1*vx2_SWB - c2o1*vx2_NWT - c2o1*vx2_SET + c2o1*vx2_NEB + c2o1*vx3_SWB - c2o1*vx3_NWT + c2o1*vx3_SET - c2o1*vx3_NEB + kxxMyyFromfcNEQ_SWB + kxxMyyFromfcNEQ_NWT - kxxMyyFromfcNEQ_SET - kxxMyyFromfcNEQ_NEB - kxxMzzFromfcNEQ_SWB - kxxMzzFromfcNEQ_NWT + kxxMzzFromfcNEQ_SET + kxxMzzFromfcNEQ_NEB + kyzFromfcNEQ_SWB + kyzFromfcNEQ_NWT + kyzFromfcNEQ_SET + kyzFromfcNEQ_NEB)/(epsylon*epsylon); + bxz= (-kxyFromfcNEQ_SWB + kxyFromfcNEQ_NWT + kxyFromfcNEQ_SET - kxyFromfcNEQ_NEB + kxzFromfcNEQ_SWB - kxzFromfcNEQ_NWT + kxzFromfcNEQ_SET - kxzFromfcNEQ_NEB - kyzFromfcNEQ_SWB - kyzFromfcNEQ_NWT + kyzFromfcNEQ_SET + kyzFromfcNEQ_NEB)/(epsylon*epsylon); + byz= (c2o1*vx1_SWB - c2o1*vx1_NWT + c2o1*vx1_SET - c2o1*vx1_NEB + c2o1*vx2_SWB + c2o1*vx2_NWT - c2o1*vx2_SET - c2o1*vx2_NEB + kxxMyyFromfcNEQ_SWB - kxxMyyFromfcNEQ_NWT - kxxMyyFromfcNEQ_SET + kxxMyyFromfcNEQ_NEB + kxyFromfcNEQ_SWB + kxyFromfcNEQ_NWT + kxyFromfcNEQ_SET + kxyFromfcNEQ_NEB)/(epsylon*epsylon); + c0 = c2o1*vx1_SWB - c2o1*vx1_NWT + c2o1*vx1_SET - c2o1*vx1_NEB + c2o1*vx2_SWB + c2o1*vx2_NWT - c2o1*vx2_SET - c2o1*vx2_NEB + c8o1*vx3_SWB + c8o1*vx3_NWT + c8o1*vx3_SET + c8o1*vx3_NEB + kxxMyyFromfcNEQ_SWB - kxxMyyFromfcNEQ_NWT - kxxMyyFromfcNEQ_SET + kxxMyyFromfcNEQ_NEB - c2o1*kxxMzzFromfcNEQ_SWB + c2o1*kxxMzzFromfcNEQ_NWT + c2o1*kxxMzzFromfcNEQ_SET - c2o1*kxxMzzFromfcNEQ_NEB + kxyFromfcNEQ_SWB + kxyFromfcNEQ_NWT + kxyFromfcNEQ_SET + kxyFromfcNEQ_NEB + c2o1*kxzFromfcNEQ_SWB + c2o1*kxzFromfcNEQ_NWT - c2o1*kxzFromfcNEQ_SET - c2o1*kxzFromfcNEQ_NEB + c2o1*kyzFromfcNEQ_SWB - c2o1*kyzFromfcNEQ_NWT + c2o1*kyzFromfcNEQ_SET - c2o1*kyzFromfcNEQ_NEB; + cx = (c2o1*vx1_SWB - c2o1*vx1_NWT - c2o1*vx1_SET + c2o1*vx1_NEB - c2o1*vx3_SWB - c2o1*vx3_NWT + c2o1*vx3_SET + c2o1*vx3_NEB + kxxMzzFromfcNEQ_SWB - kxxMzzFromfcNEQ_NWT + kxxMzzFromfcNEQ_SET - kxxMzzFromfcNEQ_NEB + kxzFromfcNEQ_SWB + kxzFromfcNEQ_NWT + kxzFromfcNEQ_SET + kxzFromfcNEQ_NEB)/epsylon; + cy = (c2o1*vx2_SWB - c2o1*vx2_NWT - c2o1*vx2_SET + c2o1*vx2_NEB - c2o1*vx3_SWB + c2o1*vx3_NWT - c2o1*vx3_SET + c2o1*vx3_NEB - kxxMyyFromfcNEQ_SWB - kxxMyyFromfcNEQ_NWT + kxxMyyFromfcNEQ_SET + kxxMyyFromfcNEQ_NEB + kxxMzzFromfcNEQ_SWB + kxxMzzFromfcNEQ_NWT - kxxMzzFromfcNEQ_SET - kxxMzzFromfcNEQ_NEB + kyzFromfcNEQ_SWB + kyzFromfcNEQ_NWT + kyzFromfcNEQ_SET + kyzFromfcNEQ_NEB)/epsylon; + cz = (-c4o1*vx3_SWB + c4o1*vx3_NWT + c4o1*vx3_SET - c4o1*vx3_NEB + kxyFromfcNEQ_SWB - kxyFromfcNEQ_NWT - kxyFromfcNEQ_SET + kxyFromfcNEQ_NEB - kxzFromfcNEQ_SWB + kxzFromfcNEQ_NWT - kxzFromfcNEQ_SET + kxzFromfcNEQ_NEB - kyzFromfcNEQ_SWB - kyzFromfcNEQ_NWT + kyzFromfcNEQ_SET + kyzFromfcNEQ_NEB)/epsylon; + cxx= (-c2o1*vx1_SWB + c2o1*vx1_NWT - c2o1*vx1_SET + c2o1*vx1_NEB - c2o1*vx2_SWB - c2o1*vx2_NWT + c2o1*vx2_SET + c2o1*vx2_NEB + kxxMyyFromfcNEQ_SWB - kxxMyyFromfcNEQ_NWT - kxxMyyFromfcNEQ_SET + kxxMyyFromfcNEQ_NEB - kxyFromfcNEQ_SWB - kxyFromfcNEQ_NWT - kxyFromfcNEQ_SET - kxyFromfcNEQ_NEB - c2o1*kxzFromfcNEQ_SWB - c2o1*kxzFromfcNEQ_NWT + c2o1*kxzFromfcNEQ_SET + c2o1*kxzFromfcNEQ_NEB)/(epsylon*epsylon); + cyy= (-c2o1*vx1_SWB + c2o1*vx1_NWT - c2o1*vx1_SET + c2o1*vx1_NEB - c2o1*vx2_SWB - c2o1*vx2_NWT + c2o1*vx2_SET + c2o1*vx2_NEB - kxxMyyFromfcNEQ_SWB + kxxMyyFromfcNEQ_NWT + kxxMyyFromfcNEQ_SET - kxxMyyFromfcNEQ_NEB - kxyFromfcNEQ_SWB - kxyFromfcNEQ_NWT - kxyFromfcNEQ_SET - kxyFromfcNEQ_NEB - c2o1*kyzFromfcNEQ_SWB + c2o1*kyzFromfcNEQ_NWT - c2o1*kyzFromfcNEQ_SET + c2o1*kyzFromfcNEQ_NEB)/(epsylon*epsylon); + czz= (c2o1*vx1_SWB - c2o1*vx1_NWT + c2o1*vx1_SET - c2o1*vx1_NEB + c2o1*vx2_SWB + c2o1*vx2_NWT - c2o1*vx2_SET - c2o1*vx2_NEB - kxxMyyFromfcNEQ_SWB + kxxMyyFromfcNEQ_NWT + kxxMyyFromfcNEQ_SET - kxxMyyFromfcNEQ_NEB + c2o1*kxxMzzFromfcNEQ_SWB - c2o1*kxxMzzFromfcNEQ_NWT - c2o1*kxxMzzFromfcNEQ_SET + c2o1*kxxMzzFromfcNEQ_NEB + kxyFromfcNEQ_SWB + kxyFromfcNEQ_NWT + kxyFromfcNEQ_SET + kxyFromfcNEQ_NEB)/(epsylon*epsylon); + cxy= (kxyFromfcNEQ_SWB - kxyFromfcNEQ_NWT - kxyFromfcNEQ_SET + kxyFromfcNEQ_NEB - kxzFromfcNEQ_SWB + kxzFromfcNEQ_NWT - kxzFromfcNEQ_SET + kxzFromfcNEQ_NEB - kyzFromfcNEQ_SWB - kyzFromfcNEQ_NWT + kyzFromfcNEQ_SET + kyzFromfcNEQ_NEB)/(epsylon*epsylon); + cxz= (c2o1*vx2_SWB - c2o1*vx2_NWT - c2o1*vx2_SET + c2o1*vx2_NEB + c2o1*vx3_SWB - c2o1*vx3_NWT + c2o1*vx3_SET - c2o1*vx3_NEB - kxxMyyFromfcNEQ_SWB - kxxMyyFromfcNEQ_NWT + kxxMyyFromfcNEQ_SET + kxxMyyFromfcNEQ_NEB + kxxMzzFromfcNEQ_SWB + kxxMzzFromfcNEQ_NWT - kxxMzzFromfcNEQ_SET - kxxMzzFromfcNEQ_NEB + kyzFromfcNEQ_SWB + kyzFromfcNEQ_NWT + kyzFromfcNEQ_SET + kyzFromfcNEQ_NEB)/(epsylon*epsylon); + cyz= (c2o1*vx1_SWB - c2o1*vx1_NWT - c2o1*vx1_SET + c2o1*vx1_NEB + c2o1*vx3_SWB + c2o1*vx3_NWT - c2o1*vx3_SET - c2o1*vx3_NEB + kxxMzzFromfcNEQ_SWB - kxxMzzFromfcNEQ_NWT + kxxMzzFromfcNEQ_SET - kxxMzzFromfcNEQ_NEB + kxzFromfcNEQ_SWB + kxzFromfcNEQ_NWT + kxzFromfcNEQ_SET + kxzFromfcNEQ_NEB)/(epsylon*epsylon); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //Version2 - //a0 = eight*vx1_SWT + eight*vx1_NWB + eight*vx1_SEB + eight*vx1_NET + two*vx2_SWT - two*vx2_NWB - two*vx2_SEB + two*vx2_NET - two*vx3_SWT + two*vx3_NWB - two*vx3_SEB + two*vx3_NET + kxxMyyFromfcNEQ_SWT + kxxMyyFromfcNEQ_NWB - one*kxxMyyFromfcNEQ_SEB - one*kxxMyyFromfcNEQ_NET + kxxMzzFromfcNEQ_SWT + kxxMzzFromfcNEQ_NWB - one*kxxMzzFromfcNEQ_SEB - one*kxxMzzFromfcNEQ_NET + two*kxyFromfcNEQ_SWT - two*kxyFromfcNEQ_NWB + two*kxyFromfcNEQ_SEB - two*kxyFromfcNEQ_NET - two*kxzFromfcNEQ_SWT + two*kxzFromfcNEQ_NWB + two*kxzFromfcNEQ_SEB - two*kxzFromfcNEQ_NET - one*kyzFromfcNEQ_SWT - one*kyzFromfcNEQ_NWB - one*kyzFromfcNEQ_SEB - one*kyzFromfcNEQ_NET; - //ax = (-four*vx1_SWT - four*vx1_NWB + four*vx1_SEB + four*vx1_NET - one*kxyFromfcNEQ_SWT + kxyFromfcNEQ_NWB + kxyFromfcNEQ_SEB - one*kxyFromfcNEQ_NET + kxzFromfcNEQ_SWT - one*kxzFromfcNEQ_NWB + kxzFromfcNEQ_SEB - one*kxzFromfcNEQ_NET - one*kyzFromfcNEQ_SWT - one*kyzFromfcNEQ_NWB + kyzFromfcNEQ_SEB + kyzFromfcNEQ_NET)/epsylon; - //ay = (-two*vx1_SWT + two*vx1_NWB - two*vx1_SEB + two*vx1_NET + two*vx2_SWT + two*vx2_NWB - two*vx2_SEB - two*vx2_NET - one*kxxMyyFromfcNEQ_SWT + kxxMyyFromfcNEQ_NWB + kxxMyyFromfcNEQ_SEB - one*kxxMyyFromfcNEQ_NET + kxyFromfcNEQ_SWT + kxyFromfcNEQ_NWB + kxyFromfcNEQ_SEB + kxyFromfcNEQ_NET)/epsylon; - //az = (two*vx1_SWT - two*vx1_NWB - two*vx1_SEB + two*vx1_NET + two*vx3_SWT + two*vx3_NWB - two*vx3_SEB - two*vx3_NET + kxxMzzFromfcNEQ_SWT - one*kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_SEB - one*kxxMzzFromfcNEQ_NET + kxzFromfcNEQ_SWT + kxzFromfcNEQ_NWB + kxzFromfcNEQ_SEB + kxzFromfcNEQ_NET)/epsylon; - //axx = (two*vx2_SWT - two*vx2_NWB - two*vx2_SEB + two*vx2_NET - two*vx3_SWT + two*vx3_NWB - two*vx3_SEB + two*vx3_NET - one*kxxMyyFromfcNEQ_SWT - one*kxxMyyFromfcNEQ_NWB + kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_NET - one*kxxMzzFromfcNEQ_SWT - one*kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_NET - one*kyzFromfcNEQ_SWT - one*kyzFromfcNEQ_NWB - one*kyzFromfcNEQ_SEB - one*kyzFromfcNEQ_NET)/(epsylon*epsylon); - //ayy = (-two*vx2_SWT + two*vx2_NWB + two*vx2_SEB - two*vx2_NET + two*vx3_SWT - two*vx3_NWB + two*vx3_SEB - two*vx3_NET - one*kxxMyyFromfcNEQ_SWT - one*kxxMyyFromfcNEQ_NWB + kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_NET + kxxMzzFromfcNEQ_SWT + kxxMzzFromfcNEQ_NWB - one*kxxMzzFromfcNEQ_SEB - one*kxxMzzFromfcNEQ_NET - two*kxyFromfcNEQ_SWT + two*kxyFromfcNEQ_NWB - two*kxyFromfcNEQ_SEB + two*kxyFromfcNEQ_NET + kyzFromfcNEQ_SWT + kyzFromfcNEQ_NWB + kyzFromfcNEQ_SEB + kyzFromfcNEQ_NET)/(epsylon*epsylon); - //azz = (-two*vx2_SWT + two*vx2_NWB + two*vx2_SEB - two*vx2_NET + two*vx3_SWT - two*vx3_NWB + two*vx3_SEB - two*vx3_NET + kxxMyyFromfcNEQ_SWT + kxxMyyFromfcNEQ_NWB - one*kxxMyyFromfcNEQ_SEB - one*kxxMyyFromfcNEQ_NET - one*kxxMzzFromfcNEQ_SWT - one*kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_NET + two*kxzFromfcNEQ_SWT - two*kxzFromfcNEQ_NWB - two*kxzFromfcNEQ_SEB + two*kxzFromfcNEQ_NET + kyzFromfcNEQ_SWT + kyzFromfcNEQ_NWB + kyzFromfcNEQ_SEB + kyzFromfcNEQ_NET)/(epsylon*epsylon); - //axy = (two*vx1_SWT - two*vx1_NWB - two*vx1_SEB + two*vx1_NET - two*vx3_SWT - two*vx3_NWB + two*vx3_SEB + two*vx3_NET - one*kxxMzzFromfcNEQ_SWT + kxxMzzFromfcNEQ_NWB - one*kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_NET - one*kxzFromfcNEQ_SWT - one*kxzFromfcNEQ_NWB - one*kxzFromfcNEQ_SEB - one*kxzFromfcNEQ_NET)/(epsylon*epsylon); - //axz = (-two*vx1_SWT + two*vx1_NWB - two*vx1_SEB + two*vx1_NET - two*vx2_SWT - two*vx2_NWB + two*vx2_SEB + two*vx2_NET + kxxMyyFromfcNEQ_SWT - one*kxxMyyFromfcNEQ_NWB - one*kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_NET - one*kxyFromfcNEQ_SWT - one*kxyFromfcNEQ_NWB - one*kxyFromfcNEQ_SEB - one*kxyFromfcNEQ_NET)/(epsylon*epsylon); - //ayz = (kxyFromfcNEQ_SWT - one*kxyFromfcNEQ_NWB - one*kxyFromfcNEQ_SEB + kxyFromfcNEQ_NET - one*kxzFromfcNEQ_SWT + kxzFromfcNEQ_NWB - one*kxzFromfcNEQ_SEB + kxzFromfcNEQ_NET + kyzFromfcNEQ_SWT + kyzFromfcNEQ_NWB - one*kyzFromfcNEQ_SEB - one*kyzFromfcNEQ_NET)/(epsylon*epsylon); - //b0 = two*vx1_SWT - two*vx1_NWB - two*vx1_SEB + two*vx1_NET + eight*vx2_SWT + eight*vx2_NWB + eight*vx2_SEB + eight*vx2_NET - two*vx3_SWT - two*vx3_NWB + two*vx3_SEB + two*vx3_NET - two*kxxMyyFromfcNEQ_SWT + two*kxxMyyFromfcNEQ_NWB - two*kxxMyyFromfcNEQ_SEB + two*kxxMyyFromfcNEQ_NET + kxxMzzFromfcNEQ_SWT - one*kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_SEB - one*kxxMzzFromfcNEQ_NET + two*kxyFromfcNEQ_SWT + two*kxyFromfcNEQ_NWB - two*kxyFromfcNEQ_SEB - two*kxyFromfcNEQ_NET - one*kxzFromfcNEQ_SWT - one*kxzFromfcNEQ_NWB - one*kxzFromfcNEQ_SEB - one*kxzFromfcNEQ_NET - two*kyzFromfcNEQ_SWT + two*kyzFromfcNEQ_NWB + two*kyzFromfcNEQ_SEB - two*kyzFromfcNEQ_NET; - //bx = (two*vx1_SWT - two*vx1_NWB + two*vx1_SEB - two*vx1_NET - two*vx2_SWT - two*vx2_NWB + two*vx2_SEB + two*vx2_NET + kxxMyyFromfcNEQ_SWT - one*kxxMyyFromfcNEQ_NWB - one*kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_NET + kxyFromfcNEQ_SWT + kxyFromfcNEQ_NWB + kxyFromfcNEQ_SEB + kxyFromfcNEQ_NET)/epsylon; - //by = (-four*vx2_SWT + four*vx2_NWB - four*vx2_SEB + four*vx2_NET - one*kxyFromfcNEQ_SWT + kxyFromfcNEQ_NWB + kxyFromfcNEQ_SEB - one*kxyFromfcNEQ_NET - one*kxzFromfcNEQ_SWT + kxzFromfcNEQ_NWB - one*kxzFromfcNEQ_SEB + kxzFromfcNEQ_NET + kyzFromfcNEQ_SWT + kyzFromfcNEQ_NWB - one*kyzFromfcNEQ_SEB - one*kyzFromfcNEQ_NET)/epsylon; - //bz = (two*vx2_SWT - two*vx2_NWB - two*vx2_SEB + two*vx2_NET + two*vx3_SWT - two*vx3_NWB + two*vx3_SEB - two*vx3_NET - one*kxxMyyFromfcNEQ_SWT - one*kxxMyyFromfcNEQ_NWB + kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_NET + kxxMzzFromfcNEQ_SWT + kxxMzzFromfcNEQ_NWB - one*kxxMzzFromfcNEQ_SEB - one*kxxMzzFromfcNEQ_NET + kyzFromfcNEQ_SWT + kyzFromfcNEQ_NWB + kyzFromfcNEQ_SEB + kyzFromfcNEQ_NET)/epsylon; - //bxx = (-two*vx1_SWT + two*vx1_NWB + two*vx1_SEB - two*vx1_NET + two*vx3_SWT + two*vx3_NWB - two*vx3_SEB - two*vx3_NET + kxxMzzFromfcNEQ_SWT - one*kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_SEB - one*kxxMzzFromfcNEQ_NET - two*kxyFromfcNEQ_SWT - two*kxyFromfcNEQ_NWB + two*kxyFromfcNEQ_SEB + two*kxyFromfcNEQ_NET + kxzFromfcNEQ_SWT + kxzFromfcNEQ_NWB + kxzFromfcNEQ_SEB + kxzFromfcNEQ_NET)/(epsylon*epsylon); - //byy = (two*vx1_SWT - two*vx1_NWB - two*vx1_SEB + two*vx1_NET - two*vx3_SWT - two*vx3_NWB + two*vx3_SEB + two*vx3_NET + two*kxxMyyFromfcNEQ_SWT - two*kxxMyyFromfcNEQ_NWB + two*kxxMyyFromfcNEQ_SEB - two*kxxMyyFromfcNEQ_NET - one*kxxMzzFromfcNEQ_SWT + kxxMzzFromfcNEQ_NWB - one*kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_NET - one*kxzFromfcNEQ_SWT - one*kxzFromfcNEQ_NWB - one*kxzFromfcNEQ_SEB - one*kxzFromfcNEQ_NET)/(epsylon*epsylon); - //bzz = (-two*vx1_SWT + two*vx1_NWB + two*vx1_SEB - two*vx1_NET + two*vx3_SWT + two*vx3_NWB - two*vx3_SEB - two*vx3_NET - one*kxxMzzFromfcNEQ_SWT + kxxMzzFromfcNEQ_NWB - one*kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_NET + kxzFromfcNEQ_SWT + kxzFromfcNEQ_NWB + kxzFromfcNEQ_SEB + kxzFromfcNEQ_NET + two*kyzFromfcNEQ_SWT - two*kyzFromfcNEQ_NWB - two*kyzFromfcNEQ_SEB + two*kyzFromfcNEQ_NET)/(epsylon*epsylon); - //bxy = (two*vx2_SWT - two*vx2_NWB - two*vx2_SEB + two*vx2_NET - two*vx3_SWT + two*vx3_NWB - two*vx3_SEB + two*vx3_NET + kxxMyyFromfcNEQ_SWT + kxxMyyFromfcNEQ_NWB - one*kxxMyyFromfcNEQ_SEB - one*kxxMyyFromfcNEQ_NET - one*kxxMzzFromfcNEQ_SWT - one*kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_NET - one*kyzFromfcNEQ_SWT - one*kyzFromfcNEQ_NWB - one*kyzFromfcNEQ_SEB - one*kyzFromfcNEQ_NET)/(epsylon*epsylon); - //bxz = (kxyFromfcNEQ_SWT - one*kxyFromfcNEQ_NWB - one*kxyFromfcNEQ_SEB + kxyFromfcNEQ_NET + kxzFromfcNEQ_SWT - one*kxzFromfcNEQ_NWB + kxzFromfcNEQ_SEB - one*kxzFromfcNEQ_NET - one*kyzFromfcNEQ_SWT - one*kyzFromfcNEQ_NWB + kyzFromfcNEQ_SEB + kyzFromfcNEQ_NET)/(epsylon*epsylon); - //byz = (-two*vx1_SWT + two*vx1_NWB - two*vx1_SEB + two*vx1_NET - two*vx2_SWT - two*vx2_NWB + two*vx2_SEB + two*vx2_NET - one*kxxMyyFromfcNEQ_SWT + kxxMyyFromfcNEQ_NWB + kxxMyyFromfcNEQ_SEB - one*kxxMyyFromfcNEQ_NET - one*kxyFromfcNEQ_SWT - one*kxyFromfcNEQ_NWB - one*kxyFromfcNEQ_SEB - one*kxyFromfcNEQ_NET)/(epsylon*epsylon); - //c0 = -two*vx1_SWT + two*vx1_NWB - two*vx1_SEB + two*vx1_NET - two*vx2_SWT - two*vx2_NWB + two*vx2_SEB + two*vx2_NET + eight*vx3_SWT + eight*vx3_NWB + eight*vx3_SEB + eight*vx3_NET - one*kxxMyyFromfcNEQ_SWT + kxxMyyFromfcNEQ_NWB + kxxMyyFromfcNEQ_SEB - one*kxxMyyFromfcNEQ_NET + two*kxxMzzFromfcNEQ_SWT - two*kxxMzzFromfcNEQ_NWB - two*kxxMzzFromfcNEQ_SEB + two*kxxMzzFromfcNEQ_NET - one*kxyFromfcNEQ_SWT - one*kxyFromfcNEQ_NWB - one*kxyFromfcNEQ_SEB - one*kxyFromfcNEQ_NET + two*kxzFromfcNEQ_SWT + two*kxzFromfcNEQ_NWB - two*kxzFromfcNEQ_SEB - two*kxzFromfcNEQ_NET + two*kyzFromfcNEQ_SWT - two*kyzFromfcNEQ_NWB + two*kyzFromfcNEQ_SEB - two*kyzFromfcNEQ_NET; - //cx = (-two*vx1_SWT + two*vx1_NWB + two*vx1_SEB - two*vx1_NET - two*vx3_SWT - two*vx3_NWB + two*vx3_SEB + two*vx3_NET - one*kxxMzzFromfcNEQ_SWT + kxxMzzFromfcNEQ_NWB - one*kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_NET + kxzFromfcNEQ_SWT + kxzFromfcNEQ_NWB + kxzFromfcNEQ_SEB + kxzFromfcNEQ_NET)/epsylon; - //cy = (-two*vx2_SWT + two*vx2_NWB + two*vx2_SEB - two*vx2_NET - two*vx3_SWT + two*vx3_NWB - two*vx3_SEB + two*vx3_NET + kxxMyyFromfcNEQ_SWT + kxxMyyFromfcNEQ_NWB - one*kxxMyyFromfcNEQ_SEB - one*kxxMyyFromfcNEQ_NET - one*kxxMzzFromfcNEQ_SWT - one*kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_NET + kyzFromfcNEQ_SWT + kyzFromfcNEQ_NWB + kyzFromfcNEQ_SEB + kyzFromfcNEQ_NET)/epsylon; - //cz = (four*vx3_SWT - four*vx3_NWB - four*vx3_SEB + four*vx3_NET + kxyFromfcNEQ_SWT - one*kxyFromfcNEQ_NWB - one*kxyFromfcNEQ_SEB + kxyFromfcNEQ_NET + kxzFromfcNEQ_SWT - one*kxzFromfcNEQ_NWB + kxzFromfcNEQ_SEB - one*kxzFromfcNEQ_NET + kyzFromfcNEQ_SWT + kyzFromfcNEQ_NWB - one*kyzFromfcNEQ_SEB - one*kyzFromfcNEQ_NET)/epsylon; - //cxx = (two*vx1_SWT - two*vx1_NWB + two*vx1_SEB - two*vx1_NET + two*vx2_SWT + two*vx2_NWB - two*vx2_SEB - two*vx2_NET - one*kxxMyyFromfcNEQ_SWT + kxxMyyFromfcNEQ_NWB + kxxMyyFromfcNEQ_SEB - one*kxxMyyFromfcNEQ_NET + kxyFromfcNEQ_SWT + kxyFromfcNEQ_NWB + kxyFromfcNEQ_SEB + kxyFromfcNEQ_NET - two*kxzFromfcNEQ_SWT - two*kxzFromfcNEQ_NWB + two*kxzFromfcNEQ_SEB + two*kxzFromfcNEQ_NET)/(epsylon*epsylon); - //cyy = (two*vx1_SWT - two*vx1_NWB + two*vx1_SEB - two*vx1_NET + two*vx2_SWT + two*vx2_NWB - two*vx2_SEB - two*vx2_NET + kxxMyyFromfcNEQ_SWT - one*kxxMyyFromfcNEQ_NWB - one*kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_NET + kxyFromfcNEQ_SWT + kxyFromfcNEQ_NWB + kxyFromfcNEQ_SEB + kxyFromfcNEQ_NET - two*kyzFromfcNEQ_SWT + two*kyzFromfcNEQ_NWB - two*kyzFromfcNEQ_SEB + two*kyzFromfcNEQ_NET)/(epsylon*epsylon); - //czz = (-two*vx1_SWT + two*vx1_NWB - two*vx1_SEB + two*vx1_NET - two*vx2_SWT - two*vx2_NWB + two*vx2_SEB + two*vx2_NET + kxxMyyFromfcNEQ_SWT - one*kxxMyyFromfcNEQ_NWB - one*kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_NET - two*kxxMzzFromfcNEQ_SWT + two*kxxMzzFromfcNEQ_NWB + two*kxxMzzFromfcNEQ_SEB - two*kxxMzzFromfcNEQ_NET - one*kxyFromfcNEQ_SWT - one*kxyFromfcNEQ_NWB - one*kxyFromfcNEQ_SEB - one*kxyFromfcNEQ_NET)/(epsylon*epsylon); - //cxy = (-one*kxyFromfcNEQ_SWT + kxyFromfcNEQ_NWB + kxyFromfcNEQ_SEB - one*kxyFromfcNEQ_NET - one*kxzFromfcNEQ_SWT + kxzFromfcNEQ_NWB - one*kxzFromfcNEQ_SEB + kxzFromfcNEQ_NET - one*kyzFromfcNEQ_SWT - one*kyzFromfcNEQ_NWB + kyzFromfcNEQ_SEB + kyzFromfcNEQ_NET)/(epsylon*epsylon); - //cxz = (two*vx2_SWT - two*vx2_NWB - two*vx2_SEB + two*vx2_NET - two*vx3_SWT + two*vx3_NWB - two*vx3_SEB + two*vx3_NET - one*kxxMyyFromfcNEQ_SWT - one*kxxMyyFromfcNEQ_NWB + kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_NET + kxxMzzFromfcNEQ_SWT + kxxMzzFromfcNEQ_NWB - one*kxxMzzFromfcNEQ_SEB - one*kxxMzzFromfcNEQ_NET - one*kyzFromfcNEQ_SWT - one*kyzFromfcNEQ_NWB - one*kyzFromfcNEQ_SEB - one*kyzFromfcNEQ_NET)/(epsylon*epsylon); - //cyz = (two*vx1_SWT - two*vx1_NWB - two*vx1_SEB + two*vx1_NET - two*vx3_SWT - two*vx3_NWB + two*vx3_SEB + two*vx3_NET + kxxMzzFromfcNEQ_SWT - one*kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_SEB - one*kxxMzzFromfcNEQ_NET - one*kxzFromfcNEQ_SWT - one*kxzFromfcNEQ_NWB - one*kxzFromfcNEQ_SEB - one*kxzFromfcNEQ_NET)/(epsylon*epsylon); + //a0 = eight*vx1_SWT + eight*vx1_NWB + eight*vx1_SEB + eight*vx1_NET + two*vx2_SWT - two*vx2_NWB - two*vx2_SEB + two*vx2_NET - two*vx3_SWT + two*vx3_NWB - two*vx3_SEB + two*vx3_NET + kxxMyyFromfcNEQ_SWT + kxxMyyFromfcNEQ_NWB - one*kxxMyyFromfcNEQ_SEB - one*kxxMyyFromfcNEQ_NET + kxxMzzFromfcNEQ_SWT + kxxMzzFromfcNEQ_NWB - one*kxxMzzFromfcNEQ_SEB - one*kxxMzzFromfcNEQ_NET + two*kxyFromfcNEQ_SWT - two*kxyFromfcNEQ_NWB + two*kxyFromfcNEQ_SEB - two*kxyFromfcNEQ_NET - two*kxzFromfcNEQ_SWT + two*kxzFromfcNEQ_NWB + two*kxzFromfcNEQ_SEB - two*kxzFromfcNEQ_NET - one*kyzFromfcNEQ_SWT - one*kyzFromfcNEQ_NWB - one*kyzFromfcNEQ_SEB - one*kyzFromfcNEQ_NET; + //ax = (-four*vx1_SWT - four*vx1_NWB + four*vx1_SEB + four*vx1_NET - one*kxyFromfcNEQ_SWT + kxyFromfcNEQ_NWB + kxyFromfcNEQ_SEB - one*kxyFromfcNEQ_NET + kxzFromfcNEQ_SWT - one*kxzFromfcNEQ_NWB + kxzFromfcNEQ_SEB - one*kxzFromfcNEQ_NET - one*kyzFromfcNEQ_SWT - one*kyzFromfcNEQ_NWB + kyzFromfcNEQ_SEB + kyzFromfcNEQ_NET)/epsylon; + //ay = (-two*vx1_SWT + two*vx1_NWB - two*vx1_SEB + two*vx1_NET + two*vx2_SWT + two*vx2_NWB - two*vx2_SEB - two*vx2_NET - one*kxxMyyFromfcNEQ_SWT + kxxMyyFromfcNEQ_NWB + kxxMyyFromfcNEQ_SEB - one*kxxMyyFromfcNEQ_NET + kxyFromfcNEQ_SWT + kxyFromfcNEQ_NWB + kxyFromfcNEQ_SEB + kxyFromfcNEQ_NET)/epsylon; + //az = (two*vx1_SWT - two*vx1_NWB - two*vx1_SEB + two*vx1_NET + two*vx3_SWT + two*vx3_NWB - two*vx3_SEB - two*vx3_NET + kxxMzzFromfcNEQ_SWT - one*kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_SEB - one*kxxMzzFromfcNEQ_NET + kxzFromfcNEQ_SWT + kxzFromfcNEQ_NWB + kxzFromfcNEQ_SEB + kxzFromfcNEQ_NET)/epsylon; + //axx = (two*vx2_SWT - two*vx2_NWB - two*vx2_SEB + two*vx2_NET - two*vx3_SWT + two*vx3_NWB - two*vx3_SEB + two*vx3_NET - one*kxxMyyFromfcNEQ_SWT - one*kxxMyyFromfcNEQ_NWB + kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_NET - one*kxxMzzFromfcNEQ_SWT - one*kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_NET - one*kyzFromfcNEQ_SWT - one*kyzFromfcNEQ_NWB - one*kyzFromfcNEQ_SEB - one*kyzFromfcNEQ_NET)/(epsylon*epsylon); + //ayy = (-two*vx2_SWT + two*vx2_NWB + two*vx2_SEB - two*vx2_NET + two*vx3_SWT - two*vx3_NWB + two*vx3_SEB - two*vx3_NET - one*kxxMyyFromfcNEQ_SWT - one*kxxMyyFromfcNEQ_NWB + kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_NET + kxxMzzFromfcNEQ_SWT + kxxMzzFromfcNEQ_NWB - one*kxxMzzFromfcNEQ_SEB - one*kxxMzzFromfcNEQ_NET - two*kxyFromfcNEQ_SWT + two*kxyFromfcNEQ_NWB - two*kxyFromfcNEQ_SEB + two*kxyFromfcNEQ_NET + kyzFromfcNEQ_SWT + kyzFromfcNEQ_NWB + kyzFromfcNEQ_SEB + kyzFromfcNEQ_NET)/(epsylon*epsylon); + //azz = (-two*vx2_SWT + two*vx2_NWB + two*vx2_SEB - two*vx2_NET + two*vx3_SWT - two*vx3_NWB + two*vx3_SEB - two*vx3_NET + kxxMyyFromfcNEQ_SWT + kxxMyyFromfcNEQ_NWB - one*kxxMyyFromfcNEQ_SEB - one*kxxMyyFromfcNEQ_NET - one*kxxMzzFromfcNEQ_SWT - one*kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_NET + two*kxzFromfcNEQ_SWT - two*kxzFromfcNEQ_NWB - two*kxzFromfcNEQ_SEB + two*kxzFromfcNEQ_NET + kyzFromfcNEQ_SWT + kyzFromfcNEQ_NWB + kyzFromfcNEQ_SEB + kyzFromfcNEQ_NET)/(epsylon*epsylon); + //axy = (two*vx1_SWT - two*vx1_NWB - two*vx1_SEB + two*vx1_NET - two*vx3_SWT - two*vx3_NWB + two*vx3_SEB + two*vx3_NET - one*kxxMzzFromfcNEQ_SWT + kxxMzzFromfcNEQ_NWB - one*kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_NET - one*kxzFromfcNEQ_SWT - one*kxzFromfcNEQ_NWB - one*kxzFromfcNEQ_SEB - one*kxzFromfcNEQ_NET)/(epsylon*epsylon); + //axz = (-two*vx1_SWT + two*vx1_NWB - two*vx1_SEB + two*vx1_NET - two*vx2_SWT - two*vx2_NWB + two*vx2_SEB + two*vx2_NET + kxxMyyFromfcNEQ_SWT - one*kxxMyyFromfcNEQ_NWB - one*kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_NET - one*kxyFromfcNEQ_SWT - one*kxyFromfcNEQ_NWB - one*kxyFromfcNEQ_SEB - one*kxyFromfcNEQ_NET)/(epsylon*epsylon); + //ayz = (kxyFromfcNEQ_SWT - one*kxyFromfcNEQ_NWB - one*kxyFromfcNEQ_SEB + kxyFromfcNEQ_NET - one*kxzFromfcNEQ_SWT + kxzFromfcNEQ_NWB - one*kxzFromfcNEQ_SEB + kxzFromfcNEQ_NET + kyzFromfcNEQ_SWT + kyzFromfcNEQ_NWB - one*kyzFromfcNEQ_SEB - one*kyzFromfcNEQ_NET)/(epsylon*epsylon); + //b0 = two*vx1_SWT - two*vx1_NWB - two*vx1_SEB + two*vx1_NET + eight*vx2_SWT + eight*vx2_NWB + eight*vx2_SEB + eight*vx2_NET - two*vx3_SWT - two*vx3_NWB + two*vx3_SEB + two*vx3_NET - two*kxxMyyFromfcNEQ_SWT + two*kxxMyyFromfcNEQ_NWB - two*kxxMyyFromfcNEQ_SEB + two*kxxMyyFromfcNEQ_NET + kxxMzzFromfcNEQ_SWT - one*kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_SEB - one*kxxMzzFromfcNEQ_NET + two*kxyFromfcNEQ_SWT + two*kxyFromfcNEQ_NWB - two*kxyFromfcNEQ_SEB - two*kxyFromfcNEQ_NET - one*kxzFromfcNEQ_SWT - one*kxzFromfcNEQ_NWB - one*kxzFromfcNEQ_SEB - one*kxzFromfcNEQ_NET - two*kyzFromfcNEQ_SWT + two*kyzFromfcNEQ_NWB + two*kyzFromfcNEQ_SEB - two*kyzFromfcNEQ_NET; + //bx = (two*vx1_SWT - two*vx1_NWB + two*vx1_SEB - two*vx1_NET - two*vx2_SWT - two*vx2_NWB + two*vx2_SEB + two*vx2_NET + kxxMyyFromfcNEQ_SWT - one*kxxMyyFromfcNEQ_NWB - one*kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_NET + kxyFromfcNEQ_SWT + kxyFromfcNEQ_NWB + kxyFromfcNEQ_SEB + kxyFromfcNEQ_NET)/epsylon; + //by = (-four*vx2_SWT + four*vx2_NWB - four*vx2_SEB + four*vx2_NET - one*kxyFromfcNEQ_SWT + kxyFromfcNEQ_NWB + kxyFromfcNEQ_SEB - one*kxyFromfcNEQ_NET - one*kxzFromfcNEQ_SWT + kxzFromfcNEQ_NWB - one*kxzFromfcNEQ_SEB + kxzFromfcNEQ_NET + kyzFromfcNEQ_SWT + kyzFromfcNEQ_NWB - one*kyzFromfcNEQ_SEB - one*kyzFromfcNEQ_NET)/epsylon; + //bz = (two*vx2_SWT - two*vx2_NWB - two*vx2_SEB + two*vx2_NET + two*vx3_SWT - two*vx3_NWB + two*vx3_SEB - two*vx3_NET - one*kxxMyyFromfcNEQ_SWT - one*kxxMyyFromfcNEQ_NWB + kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_NET + kxxMzzFromfcNEQ_SWT + kxxMzzFromfcNEQ_NWB - one*kxxMzzFromfcNEQ_SEB - one*kxxMzzFromfcNEQ_NET + kyzFromfcNEQ_SWT + kyzFromfcNEQ_NWB + kyzFromfcNEQ_SEB + kyzFromfcNEQ_NET)/epsylon; + //bxx = (-two*vx1_SWT + two*vx1_NWB + two*vx1_SEB - two*vx1_NET + two*vx3_SWT + two*vx3_NWB - two*vx3_SEB - two*vx3_NET + kxxMzzFromfcNEQ_SWT - one*kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_SEB - one*kxxMzzFromfcNEQ_NET - two*kxyFromfcNEQ_SWT - two*kxyFromfcNEQ_NWB + two*kxyFromfcNEQ_SEB + two*kxyFromfcNEQ_NET + kxzFromfcNEQ_SWT + kxzFromfcNEQ_NWB + kxzFromfcNEQ_SEB + kxzFromfcNEQ_NET)/(epsylon*epsylon); + //byy = (two*vx1_SWT - two*vx1_NWB - two*vx1_SEB + two*vx1_NET - two*vx3_SWT - two*vx3_NWB + two*vx3_SEB + two*vx3_NET + two*kxxMyyFromfcNEQ_SWT - two*kxxMyyFromfcNEQ_NWB + two*kxxMyyFromfcNEQ_SEB - two*kxxMyyFromfcNEQ_NET - one*kxxMzzFromfcNEQ_SWT + kxxMzzFromfcNEQ_NWB - one*kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_NET - one*kxzFromfcNEQ_SWT - one*kxzFromfcNEQ_NWB - one*kxzFromfcNEQ_SEB - one*kxzFromfcNEQ_NET)/(epsylon*epsylon); + //bzz = (-two*vx1_SWT + two*vx1_NWB + two*vx1_SEB - two*vx1_NET + two*vx3_SWT + two*vx3_NWB - two*vx3_SEB - two*vx3_NET - one*kxxMzzFromfcNEQ_SWT + kxxMzzFromfcNEQ_NWB - one*kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_NET + kxzFromfcNEQ_SWT + kxzFromfcNEQ_NWB + kxzFromfcNEQ_SEB + kxzFromfcNEQ_NET + two*kyzFromfcNEQ_SWT - two*kyzFromfcNEQ_NWB - two*kyzFromfcNEQ_SEB + two*kyzFromfcNEQ_NET)/(epsylon*epsylon); + //bxy = (two*vx2_SWT - two*vx2_NWB - two*vx2_SEB + two*vx2_NET - two*vx3_SWT + two*vx3_NWB - two*vx3_SEB + two*vx3_NET + kxxMyyFromfcNEQ_SWT + kxxMyyFromfcNEQ_NWB - one*kxxMyyFromfcNEQ_SEB - one*kxxMyyFromfcNEQ_NET - one*kxxMzzFromfcNEQ_SWT - one*kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_NET - one*kyzFromfcNEQ_SWT - one*kyzFromfcNEQ_NWB - one*kyzFromfcNEQ_SEB - one*kyzFromfcNEQ_NET)/(epsylon*epsylon); + //bxz = (kxyFromfcNEQ_SWT - one*kxyFromfcNEQ_NWB - one*kxyFromfcNEQ_SEB + kxyFromfcNEQ_NET + kxzFromfcNEQ_SWT - one*kxzFromfcNEQ_NWB + kxzFromfcNEQ_SEB - one*kxzFromfcNEQ_NET - one*kyzFromfcNEQ_SWT - one*kyzFromfcNEQ_NWB + kyzFromfcNEQ_SEB + kyzFromfcNEQ_NET)/(epsylon*epsylon); + //byz = (-two*vx1_SWT + two*vx1_NWB - two*vx1_SEB + two*vx1_NET - two*vx2_SWT - two*vx2_NWB + two*vx2_SEB + two*vx2_NET - one*kxxMyyFromfcNEQ_SWT + kxxMyyFromfcNEQ_NWB + kxxMyyFromfcNEQ_SEB - one*kxxMyyFromfcNEQ_NET - one*kxyFromfcNEQ_SWT - one*kxyFromfcNEQ_NWB - one*kxyFromfcNEQ_SEB - one*kxyFromfcNEQ_NET)/(epsylon*epsylon); + //c0 = -two*vx1_SWT + two*vx1_NWB - two*vx1_SEB + two*vx1_NET - two*vx2_SWT - two*vx2_NWB + two*vx2_SEB + two*vx2_NET + eight*vx3_SWT + eight*vx3_NWB + eight*vx3_SEB + eight*vx3_NET - one*kxxMyyFromfcNEQ_SWT + kxxMyyFromfcNEQ_NWB + kxxMyyFromfcNEQ_SEB - one*kxxMyyFromfcNEQ_NET + two*kxxMzzFromfcNEQ_SWT - two*kxxMzzFromfcNEQ_NWB - two*kxxMzzFromfcNEQ_SEB + two*kxxMzzFromfcNEQ_NET - one*kxyFromfcNEQ_SWT - one*kxyFromfcNEQ_NWB - one*kxyFromfcNEQ_SEB - one*kxyFromfcNEQ_NET + two*kxzFromfcNEQ_SWT + two*kxzFromfcNEQ_NWB - two*kxzFromfcNEQ_SEB - two*kxzFromfcNEQ_NET + two*kyzFromfcNEQ_SWT - two*kyzFromfcNEQ_NWB + two*kyzFromfcNEQ_SEB - two*kyzFromfcNEQ_NET; + //cx = (-two*vx1_SWT + two*vx1_NWB + two*vx1_SEB - two*vx1_NET - two*vx3_SWT - two*vx3_NWB + two*vx3_SEB + two*vx3_NET - one*kxxMzzFromfcNEQ_SWT + kxxMzzFromfcNEQ_NWB - one*kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_NET + kxzFromfcNEQ_SWT + kxzFromfcNEQ_NWB + kxzFromfcNEQ_SEB + kxzFromfcNEQ_NET)/epsylon; + //cy = (-two*vx2_SWT + two*vx2_NWB + two*vx2_SEB - two*vx2_NET - two*vx3_SWT + two*vx3_NWB - two*vx3_SEB + two*vx3_NET + kxxMyyFromfcNEQ_SWT + kxxMyyFromfcNEQ_NWB - one*kxxMyyFromfcNEQ_SEB - one*kxxMyyFromfcNEQ_NET - one*kxxMzzFromfcNEQ_SWT - one*kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_NET + kyzFromfcNEQ_SWT + kyzFromfcNEQ_NWB + kyzFromfcNEQ_SEB + kyzFromfcNEQ_NET)/epsylon; + //cz = (four*vx3_SWT - four*vx3_NWB - four*vx3_SEB + four*vx3_NET + kxyFromfcNEQ_SWT - one*kxyFromfcNEQ_NWB - one*kxyFromfcNEQ_SEB + kxyFromfcNEQ_NET + kxzFromfcNEQ_SWT - one*kxzFromfcNEQ_NWB + kxzFromfcNEQ_SEB - one*kxzFromfcNEQ_NET + kyzFromfcNEQ_SWT + kyzFromfcNEQ_NWB - one*kyzFromfcNEQ_SEB - one*kyzFromfcNEQ_NET)/epsylon; + //cxx = (two*vx1_SWT - two*vx1_NWB + two*vx1_SEB - two*vx1_NET + two*vx2_SWT + two*vx2_NWB - two*vx2_SEB - two*vx2_NET - one*kxxMyyFromfcNEQ_SWT + kxxMyyFromfcNEQ_NWB + kxxMyyFromfcNEQ_SEB - one*kxxMyyFromfcNEQ_NET + kxyFromfcNEQ_SWT + kxyFromfcNEQ_NWB + kxyFromfcNEQ_SEB + kxyFromfcNEQ_NET - two*kxzFromfcNEQ_SWT - two*kxzFromfcNEQ_NWB + two*kxzFromfcNEQ_SEB + two*kxzFromfcNEQ_NET)/(epsylon*epsylon); + //cyy = (two*vx1_SWT - two*vx1_NWB + two*vx1_SEB - two*vx1_NET + two*vx2_SWT + two*vx2_NWB - two*vx2_SEB - two*vx2_NET + kxxMyyFromfcNEQ_SWT - one*kxxMyyFromfcNEQ_NWB - one*kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_NET + kxyFromfcNEQ_SWT + kxyFromfcNEQ_NWB + kxyFromfcNEQ_SEB + kxyFromfcNEQ_NET - two*kyzFromfcNEQ_SWT + two*kyzFromfcNEQ_NWB - two*kyzFromfcNEQ_SEB + two*kyzFromfcNEQ_NET)/(epsylon*epsylon); + //czz = (-two*vx1_SWT + two*vx1_NWB - two*vx1_SEB + two*vx1_NET - two*vx2_SWT - two*vx2_NWB + two*vx2_SEB + two*vx2_NET + kxxMyyFromfcNEQ_SWT - one*kxxMyyFromfcNEQ_NWB - one*kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_NET - two*kxxMzzFromfcNEQ_SWT + two*kxxMzzFromfcNEQ_NWB + two*kxxMzzFromfcNEQ_SEB - two*kxxMzzFromfcNEQ_NET - one*kxyFromfcNEQ_SWT - one*kxyFromfcNEQ_NWB - one*kxyFromfcNEQ_SEB - one*kxyFromfcNEQ_NET)/(epsylon*epsylon); + //cxy = (-one*kxyFromfcNEQ_SWT + kxyFromfcNEQ_NWB + kxyFromfcNEQ_SEB - one*kxyFromfcNEQ_NET - one*kxzFromfcNEQ_SWT + kxzFromfcNEQ_NWB - one*kxzFromfcNEQ_SEB + kxzFromfcNEQ_NET - one*kyzFromfcNEQ_SWT - one*kyzFromfcNEQ_NWB + kyzFromfcNEQ_SEB + kyzFromfcNEQ_NET)/(epsylon*epsylon); + //cxz = (two*vx2_SWT - two*vx2_NWB - two*vx2_SEB + two*vx2_NET - two*vx3_SWT + two*vx3_NWB - two*vx3_SEB + two*vx3_NET - one*kxxMyyFromfcNEQ_SWT - one*kxxMyyFromfcNEQ_NWB + kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_NET + kxxMzzFromfcNEQ_SWT + kxxMzzFromfcNEQ_NWB - one*kxxMzzFromfcNEQ_SEB - one*kxxMzzFromfcNEQ_NET - one*kyzFromfcNEQ_SWT - one*kyzFromfcNEQ_NWB - one*kyzFromfcNEQ_SEB - one*kyzFromfcNEQ_NET)/(epsylon*epsylon); + //cyz = (two*vx1_SWT - two*vx1_NWB - two*vx1_SEB + two*vx1_NET - two*vx3_SWT - two*vx3_NWB + two*vx3_SEB + two*vx3_NET + kxxMzzFromfcNEQ_SWT - one*kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_SEB - one*kxxMzzFromfcNEQ_NET - one*kxzFromfcNEQ_SWT - one*kxzFromfcNEQ_NWB - one*kxzFromfcNEQ_SEB - one*kxzFromfcNEQ_NET)/(epsylon*epsylon); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //merged - a0 += c8o1*vx1_SWT + c8o1*vx1_NWB + c8o1*vx1_SEB + c8o1*vx1_NET + c2o1*vx2_SWT - c2o1*vx2_NWB - c2o1*vx2_SEB + c2o1*vx2_NET - c2o1*vx3_SWT + c2o1*vx3_NWB - c2o1*vx3_SEB + c2o1*vx3_NET + kxxMyyFromfcNEQ_SWT + kxxMyyFromfcNEQ_NWB - c1o1*kxxMyyFromfcNEQ_SEB - c1o1*kxxMyyFromfcNEQ_NET + kxxMzzFromfcNEQ_SWT + kxxMzzFromfcNEQ_NWB - c1o1*kxxMzzFromfcNEQ_SEB - c1o1*kxxMzzFromfcNEQ_NET + c2o1*kxyFromfcNEQ_SWT - c2o1*kxyFromfcNEQ_NWB + c2o1*kxyFromfcNEQ_SEB - c2o1*kxyFromfcNEQ_NET - c2o1*kxzFromfcNEQ_SWT + c2o1*kxzFromfcNEQ_NWB + c2o1*kxzFromfcNEQ_SEB - c2o1*kxzFromfcNEQ_NET - c1o1*kyzFromfcNEQ_SWT - c1o1*kyzFromfcNEQ_NWB - c1o1*kyzFromfcNEQ_SEB - c1o1*kyzFromfcNEQ_NET; - ax += (-c4o1*vx1_SWT - c4o1*vx1_NWB + c4o1*vx1_SEB + c4o1*vx1_NET - c1o1*kxyFromfcNEQ_SWT + kxyFromfcNEQ_NWB + kxyFromfcNEQ_SEB - c1o1*kxyFromfcNEQ_NET + kxzFromfcNEQ_SWT - c1o1*kxzFromfcNEQ_NWB + kxzFromfcNEQ_SEB - c1o1*kxzFromfcNEQ_NET - c1o1*kyzFromfcNEQ_SWT - c1o1*kyzFromfcNEQ_NWB + kyzFromfcNEQ_SEB + kyzFromfcNEQ_NET)/epsylon; - ay += (-c2o1*vx1_SWT + c2o1*vx1_NWB - c2o1*vx1_SEB + c2o1*vx1_NET + c2o1*vx2_SWT + c2o1*vx2_NWB - c2o1*vx2_SEB - c2o1*vx2_NET - c1o1*kxxMyyFromfcNEQ_SWT + kxxMyyFromfcNEQ_NWB + kxxMyyFromfcNEQ_SEB - c1o1*kxxMyyFromfcNEQ_NET + kxyFromfcNEQ_SWT + kxyFromfcNEQ_NWB + kxyFromfcNEQ_SEB + kxyFromfcNEQ_NET)/epsylon; - az += (c2o1*vx1_SWT - c2o1*vx1_NWB - c2o1*vx1_SEB + c2o1*vx1_NET + c2o1*vx3_SWT + c2o1*vx3_NWB - c2o1*vx3_SEB - c2o1*vx3_NET + kxxMzzFromfcNEQ_SWT - c1o1*kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_SEB - c1o1*kxxMzzFromfcNEQ_NET + kxzFromfcNEQ_SWT + kxzFromfcNEQ_NWB + kxzFromfcNEQ_SEB + kxzFromfcNEQ_NET)/epsylon; - axx += (c2o1*vx2_SWT - c2o1*vx2_NWB - c2o1*vx2_SEB + c2o1*vx2_NET - c2o1*vx3_SWT + c2o1*vx3_NWB - c2o1*vx3_SEB + c2o1*vx3_NET - c1o1*kxxMyyFromfcNEQ_SWT - c1o1*kxxMyyFromfcNEQ_NWB + kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_NET - c1o1*kxxMzzFromfcNEQ_SWT - c1o1*kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_NET - c1o1*kyzFromfcNEQ_SWT - c1o1*kyzFromfcNEQ_NWB - c1o1*kyzFromfcNEQ_SEB - c1o1*kyzFromfcNEQ_NET)/(epsylon*epsylon); - ayy += (-c2o1*vx2_SWT + c2o1*vx2_NWB + c2o1*vx2_SEB - c2o1*vx2_NET + c2o1*vx3_SWT - c2o1*vx3_NWB + c2o1*vx3_SEB - c2o1*vx3_NET - c1o1*kxxMyyFromfcNEQ_SWT - c1o1*kxxMyyFromfcNEQ_NWB + kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_NET + kxxMzzFromfcNEQ_SWT + kxxMzzFromfcNEQ_NWB - c1o1*kxxMzzFromfcNEQ_SEB - c1o1*kxxMzzFromfcNEQ_NET - c2o1*kxyFromfcNEQ_SWT + c2o1*kxyFromfcNEQ_NWB - c2o1*kxyFromfcNEQ_SEB + c2o1*kxyFromfcNEQ_NET + kyzFromfcNEQ_SWT + kyzFromfcNEQ_NWB + kyzFromfcNEQ_SEB + kyzFromfcNEQ_NET)/(epsylon*epsylon); - azz += (-c2o1*vx2_SWT + c2o1*vx2_NWB + c2o1*vx2_SEB - c2o1*vx2_NET + c2o1*vx3_SWT - c2o1*vx3_NWB + c2o1*vx3_SEB - c2o1*vx3_NET + kxxMyyFromfcNEQ_SWT + kxxMyyFromfcNEQ_NWB - c1o1*kxxMyyFromfcNEQ_SEB - c1o1*kxxMyyFromfcNEQ_NET - c1o1*kxxMzzFromfcNEQ_SWT - c1o1*kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_NET + c2o1*kxzFromfcNEQ_SWT - c2o1*kxzFromfcNEQ_NWB - c2o1*kxzFromfcNEQ_SEB + c2o1*kxzFromfcNEQ_NET + kyzFromfcNEQ_SWT + kyzFromfcNEQ_NWB + kyzFromfcNEQ_SEB + kyzFromfcNEQ_NET)/(epsylon*epsylon); - axy += (c2o1*vx1_SWT - c2o1*vx1_NWB - c2o1*vx1_SEB + c2o1*vx1_NET - c2o1*vx3_SWT - c2o1*vx3_NWB + c2o1*vx3_SEB + c2o1*vx3_NET - c1o1*kxxMzzFromfcNEQ_SWT + kxxMzzFromfcNEQ_NWB - c1o1*kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_NET - c1o1*kxzFromfcNEQ_SWT - c1o1*kxzFromfcNEQ_NWB - c1o1*kxzFromfcNEQ_SEB - c1o1*kxzFromfcNEQ_NET)/(epsylon*epsylon); - axz += (-c2o1*vx1_SWT + c2o1*vx1_NWB - c2o1*vx1_SEB + c2o1*vx1_NET - c2o1*vx2_SWT - c2o1*vx2_NWB + c2o1*vx2_SEB + c2o1*vx2_NET + kxxMyyFromfcNEQ_SWT - c1o1*kxxMyyFromfcNEQ_NWB - c1o1*kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_NET - c1o1*kxyFromfcNEQ_SWT - c1o1*kxyFromfcNEQ_NWB - c1o1*kxyFromfcNEQ_SEB - c1o1*kxyFromfcNEQ_NET)/(epsylon*epsylon); - ayz += (kxyFromfcNEQ_SWT - c1o1*kxyFromfcNEQ_NWB - c1o1*kxyFromfcNEQ_SEB + kxyFromfcNEQ_NET - c1o1*kxzFromfcNEQ_SWT + kxzFromfcNEQ_NWB - c1o1*kxzFromfcNEQ_SEB + kxzFromfcNEQ_NET + kyzFromfcNEQ_SWT + kyzFromfcNEQ_NWB - c1o1*kyzFromfcNEQ_SEB - c1o1*kyzFromfcNEQ_NET)/(epsylon*epsylon); - b0 += c2o1*vx1_SWT - c2o1*vx1_NWB - c2o1*vx1_SEB + c2o1*vx1_NET + c8o1*vx2_SWT + c8o1*vx2_NWB + c8o1*vx2_SEB + c8o1*vx2_NET - c2o1*vx3_SWT - c2o1*vx3_NWB + c2o1*vx3_SEB + c2o1*vx3_NET - c2o1*kxxMyyFromfcNEQ_SWT + c2o1*kxxMyyFromfcNEQ_NWB - c2o1*kxxMyyFromfcNEQ_SEB + c2o1*kxxMyyFromfcNEQ_NET + kxxMzzFromfcNEQ_SWT - c1o1*kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_SEB - c1o1*kxxMzzFromfcNEQ_NET + c2o1*kxyFromfcNEQ_SWT + c2o1*kxyFromfcNEQ_NWB - c2o1*kxyFromfcNEQ_SEB - c2o1*kxyFromfcNEQ_NET - c1o1*kxzFromfcNEQ_SWT - c1o1*kxzFromfcNEQ_NWB - c1o1*kxzFromfcNEQ_SEB - c1o1*kxzFromfcNEQ_NET - c2o1*kyzFromfcNEQ_SWT + c2o1*kyzFromfcNEQ_NWB + c2o1*kyzFromfcNEQ_SEB - c2o1*kyzFromfcNEQ_NET; - bx += (c2o1*vx1_SWT - c2o1*vx1_NWB + c2o1*vx1_SEB - c2o1*vx1_NET - c2o1*vx2_SWT - c2o1*vx2_NWB + c2o1*vx2_SEB + c2o1*vx2_NET + kxxMyyFromfcNEQ_SWT - c1o1*kxxMyyFromfcNEQ_NWB - c1o1*kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_NET + kxyFromfcNEQ_SWT + kxyFromfcNEQ_NWB + kxyFromfcNEQ_SEB + kxyFromfcNEQ_NET)/epsylon; - by += (-c4o1*vx2_SWT + c4o1*vx2_NWB - c4o1*vx2_SEB + c4o1*vx2_NET - c1o1*kxyFromfcNEQ_SWT + kxyFromfcNEQ_NWB + kxyFromfcNEQ_SEB - c1o1*kxyFromfcNEQ_NET - c1o1*kxzFromfcNEQ_SWT + kxzFromfcNEQ_NWB - c1o1*kxzFromfcNEQ_SEB + kxzFromfcNEQ_NET + kyzFromfcNEQ_SWT + kyzFromfcNEQ_NWB - c1o1*kyzFromfcNEQ_SEB - c1o1*kyzFromfcNEQ_NET)/epsylon; - bz += (c2o1*vx2_SWT - c2o1*vx2_NWB - c2o1*vx2_SEB + c2o1*vx2_NET + c2o1*vx3_SWT - c2o1*vx3_NWB + c2o1*vx3_SEB - c2o1*vx3_NET - c1o1*kxxMyyFromfcNEQ_SWT - c1o1*kxxMyyFromfcNEQ_NWB + kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_NET + kxxMzzFromfcNEQ_SWT + kxxMzzFromfcNEQ_NWB - c1o1*kxxMzzFromfcNEQ_SEB - c1o1*kxxMzzFromfcNEQ_NET + kyzFromfcNEQ_SWT + kyzFromfcNEQ_NWB + kyzFromfcNEQ_SEB + kyzFromfcNEQ_NET)/epsylon; - bxx += (-c2o1*vx1_SWT + c2o1*vx1_NWB + c2o1*vx1_SEB - c2o1*vx1_NET + c2o1*vx3_SWT + c2o1*vx3_NWB - c2o1*vx3_SEB - c2o1*vx3_NET + kxxMzzFromfcNEQ_SWT - c1o1*kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_SEB - c1o1*kxxMzzFromfcNEQ_NET - c2o1*kxyFromfcNEQ_SWT - c2o1*kxyFromfcNEQ_NWB + c2o1*kxyFromfcNEQ_SEB + c2o1*kxyFromfcNEQ_NET + kxzFromfcNEQ_SWT + kxzFromfcNEQ_NWB + kxzFromfcNEQ_SEB + kxzFromfcNEQ_NET)/(epsylon*epsylon); - byy += (c2o1*vx1_SWT - c2o1*vx1_NWB - c2o1*vx1_SEB + c2o1*vx1_NET - c2o1*vx3_SWT - c2o1*vx3_NWB + c2o1*vx3_SEB + c2o1*vx3_NET + c2o1*kxxMyyFromfcNEQ_SWT - c2o1*kxxMyyFromfcNEQ_NWB + c2o1*kxxMyyFromfcNEQ_SEB - c2o1*kxxMyyFromfcNEQ_NET - c1o1*kxxMzzFromfcNEQ_SWT + kxxMzzFromfcNEQ_NWB - c1o1*kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_NET - c1o1*kxzFromfcNEQ_SWT - c1o1*kxzFromfcNEQ_NWB - c1o1*kxzFromfcNEQ_SEB - c1o1*kxzFromfcNEQ_NET)/(epsylon*epsylon); - bzz += (-c2o1*vx1_SWT + c2o1*vx1_NWB + c2o1*vx1_SEB - c2o1*vx1_NET + c2o1*vx3_SWT + c2o1*vx3_NWB - c2o1*vx3_SEB - c2o1*vx3_NET - c1o1*kxxMzzFromfcNEQ_SWT + kxxMzzFromfcNEQ_NWB - c1o1*kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_NET + kxzFromfcNEQ_SWT + kxzFromfcNEQ_NWB + kxzFromfcNEQ_SEB + kxzFromfcNEQ_NET + c2o1*kyzFromfcNEQ_SWT - c2o1*kyzFromfcNEQ_NWB - c2o1*kyzFromfcNEQ_SEB + c2o1*kyzFromfcNEQ_NET)/(epsylon*epsylon); - bxy += (c2o1*vx2_SWT - c2o1*vx2_NWB - c2o1*vx2_SEB + c2o1*vx2_NET - c2o1*vx3_SWT + c2o1*vx3_NWB - c2o1*vx3_SEB + c2o1*vx3_NET + kxxMyyFromfcNEQ_SWT + kxxMyyFromfcNEQ_NWB - c1o1*kxxMyyFromfcNEQ_SEB - c1o1*kxxMyyFromfcNEQ_NET - c1o1*kxxMzzFromfcNEQ_SWT - c1o1*kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_NET - c1o1*kyzFromfcNEQ_SWT - c1o1*kyzFromfcNEQ_NWB - c1o1*kyzFromfcNEQ_SEB - c1o1*kyzFromfcNEQ_NET)/(epsylon*epsylon); - bxz += (kxyFromfcNEQ_SWT - c1o1*kxyFromfcNEQ_NWB - c1o1*kxyFromfcNEQ_SEB + kxyFromfcNEQ_NET + kxzFromfcNEQ_SWT - c1o1*kxzFromfcNEQ_NWB + kxzFromfcNEQ_SEB - c1o1*kxzFromfcNEQ_NET - c1o1*kyzFromfcNEQ_SWT - c1o1*kyzFromfcNEQ_NWB + kyzFromfcNEQ_SEB + kyzFromfcNEQ_NET)/(epsylon*epsylon); - byz += (-c2o1*vx1_SWT + c2o1*vx1_NWB - c2o1*vx1_SEB + c2o1*vx1_NET - c2o1*vx2_SWT - c2o1*vx2_NWB + c2o1*vx2_SEB + c2o1*vx2_NET - c1o1*kxxMyyFromfcNEQ_SWT + kxxMyyFromfcNEQ_NWB + kxxMyyFromfcNEQ_SEB - c1o1*kxxMyyFromfcNEQ_NET - c1o1*kxyFromfcNEQ_SWT - c1o1*kxyFromfcNEQ_NWB - c1o1*kxyFromfcNEQ_SEB - c1o1*kxyFromfcNEQ_NET)/(epsylon*epsylon); - c0 += -c2o1*vx1_SWT + c2o1*vx1_NWB - c2o1*vx1_SEB + c2o1*vx1_NET - c2o1*vx2_SWT - c2o1*vx2_NWB + c2o1*vx2_SEB + c2o1*vx2_NET + c8o1*vx3_SWT + c8o1*vx3_NWB + c8o1*vx3_SEB + c8o1*vx3_NET - c1o1*kxxMyyFromfcNEQ_SWT + kxxMyyFromfcNEQ_NWB + kxxMyyFromfcNEQ_SEB - c1o1*kxxMyyFromfcNEQ_NET + c2o1*kxxMzzFromfcNEQ_SWT - c2o1*kxxMzzFromfcNEQ_NWB - c2o1*kxxMzzFromfcNEQ_SEB + c2o1*kxxMzzFromfcNEQ_NET - c1o1*kxyFromfcNEQ_SWT - c1o1*kxyFromfcNEQ_NWB - c1o1*kxyFromfcNEQ_SEB - c1o1*kxyFromfcNEQ_NET + c2o1*kxzFromfcNEQ_SWT + c2o1*kxzFromfcNEQ_NWB - c2o1*kxzFromfcNEQ_SEB - c2o1*kxzFromfcNEQ_NET + c2o1*kyzFromfcNEQ_SWT - c2o1*kyzFromfcNEQ_NWB + c2o1*kyzFromfcNEQ_SEB - c2o1*kyzFromfcNEQ_NET; - cx += (-c2o1*vx1_SWT + c2o1*vx1_NWB + c2o1*vx1_SEB - c2o1*vx1_NET - c2o1*vx3_SWT - c2o1*vx3_NWB + c2o1*vx3_SEB + c2o1*vx3_NET - c1o1*kxxMzzFromfcNEQ_SWT + kxxMzzFromfcNEQ_NWB - c1o1*kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_NET + kxzFromfcNEQ_SWT + kxzFromfcNEQ_NWB + kxzFromfcNEQ_SEB + kxzFromfcNEQ_NET)/epsylon; - cy += (-c2o1*vx2_SWT + c2o1*vx2_NWB + c2o1*vx2_SEB - c2o1*vx2_NET - c2o1*vx3_SWT + c2o1*vx3_NWB - c2o1*vx3_SEB + c2o1*vx3_NET + kxxMyyFromfcNEQ_SWT + kxxMyyFromfcNEQ_NWB - c1o1*kxxMyyFromfcNEQ_SEB - c1o1*kxxMyyFromfcNEQ_NET - c1o1*kxxMzzFromfcNEQ_SWT - c1o1*kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_NET + kyzFromfcNEQ_SWT + kyzFromfcNEQ_NWB + kyzFromfcNEQ_SEB + kyzFromfcNEQ_NET)/epsylon; - cz += (c4o1*vx3_SWT - c4o1*vx3_NWB - c4o1*vx3_SEB + c4o1*vx3_NET + kxyFromfcNEQ_SWT - c1o1*kxyFromfcNEQ_NWB - c1o1*kxyFromfcNEQ_SEB + kxyFromfcNEQ_NET + kxzFromfcNEQ_SWT - c1o1*kxzFromfcNEQ_NWB + kxzFromfcNEQ_SEB - c1o1*kxzFromfcNEQ_NET + kyzFromfcNEQ_SWT + kyzFromfcNEQ_NWB - c1o1*kyzFromfcNEQ_SEB - c1o1*kyzFromfcNEQ_NET)/epsylon; - cxx += (c2o1*vx1_SWT - c2o1*vx1_NWB + c2o1*vx1_SEB - c2o1*vx1_NET + c2o1*vx2_SWT + c2o1*vx2_NWB - c2o1*vx2_SEB - c2o1*vx2_NET - c1o1*kxxMyyFromfcNEQ_SWT + kxxMyyFromfcNEQ_NWB + kxxMyyFromfcNEQ_SEB - c1o1*kxxMyyFromfcNEQ_NET + kxyFromfcNEQ_SWT + kxyFromfcNEQ_NWB + kxyFromfcNEQ_SEB + kxyFromfcNEQ_NET - c2o1*kxzFromfcNEQ_SWT - c2o1*kxzFromfcNEQ_NWB + c2o1*kxzFromfcNEQ_SEB + c2o1*kxzFromfcNEQ_NET)/(epsylon*epsylon); - cyy += (c2o1*vx1_SWT - c2o1*vx1_NWB + c2o1*vx1_SEB - c2o1*vx1_NET + c2o1*vx2_SWT + c2o1*vx2_NWB - c2o1*vx2_SEB - c2o1*vx2_NET + kxxMyyFromfcNEQ_SWT - c1o1*kxxMyyFromfcNEQ_NWB - c1o1*kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_NET + kxyFromfcNEQ_SWT + kxyFromfcNEQ_NWB + kxyFromfcNEQ_SEB + kxyFromfcNEQ_NET - c2o1*kyzFromfcNEQ_SWT + c2o1*kyzFromfcNEQ_NWB - c2o1*kyzFromfcNEQ_SEB + c2o1*kyzFromfcNEQ_NET)/(epsylon*epsylon); - czz += (-c2o1*vx1_SWT + c2o1*vx1_NWB - c2o1*vx1_SEB + c2o1*vx1_NET - c2o1*vx2_SWT - c2o1*vx2_NWB + c2o1*vx2_SEB + c2o1*vx2_NET + kxxMyyFromfcNEQ_SWT - c1o1*kxxMyyFromfcNEQ_NWB - c1o1*kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_NET - c2o1*kxxMzzFromfcNEQ_SWT + c2o1*kxxMzzFromfcNEQ_NWB + c2o1*kxxMzzFromfcNEQ_SEB - c2o1*kxxMzzFromfcNEQ_NET - c1o1*kxyFromfcNEQ_SWT - c1o1*kxyFromfcNEQ_NWB - c1o1*kxyFromfcNEQ_SEB - c1o1*kxyFromfcNEQ_NET)/(epsylon*epsylon); - cxy += (-c1o1*kxyFromfcNEQ_SWT + kxyFromfcNEQ_NWB + kxyFromfcNEQ_SEB - c1o1*kxyFromfcNEQ_NET - c1o1*kxzFromfcNEQ_SWT + kxzFromfcNEQ_NWB - c1o1*kxzFromfcNEQ_SEB + kxzFromfcNEQ_NET - c1o1*kyzFromfcNEQ_SWT - c1o1*kyzFromfcNEQ_NWB + kyzFromfcNEQ_SEB + kyzFromfcNEQ_NET)/(epsylon*epsylon); - cxz += (c2o1*vx2_SWT - c2o1*vx2_NWB - c2o1*vx2_SEB + c2o1*vx2_NET - c2o1*vx3_SWT + c2o1*vx3_NWB - c2o1*vx3_SEB + c2o1*vx3_NET - c1o1*kxxMyyFromfcNEQ_SWT - c1o1*kxxMyyFromfcNEQ_NWB + kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_NET + kxxMzzFromfcNEQ_SWT + kxxMzzFromfcNEQ_NWB - c1o1*kxxMzzFromfcNEQ_SEB - c1o1*kxxMzzFromfcNEQ_NET - c1o1*kyzFromfcNEQ_SWT - c1o1*kyzFromfcNEQ_NWB - c1o1*kyzFromfcNEQ_SEB - c1o1*kyzFromfcNEQ_NET)/(epsylon*epsylon); - cyz += (c2o1*vx1_SWT - c2o1*vx1_NWB - c2o1*vx1_SEB + c2o1*vx1_NET - c2o1*vx3_SWT - c2o1*vx3_NWB + c2o1*vx3_SEB + c2o1*vx3_NET + kxxMzzFromfcNEQ_SWT - c1o1*kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_SEB - c1o1*kxxMzzFromfcNEQ_NET - c1o1*kxzFromfcNEQ_SWT - c1o1*kxzFromfcNEQ_NWB - c1o1*kxzFromfcNEQ_SEB - c1o1*kxzFromfcNEQ_NET)/(epsylon*epsylon); + a0 += c8o1*vx1_SWT + c8o1*vx1_NWB + c8o1*vx1_SEB + c8o1*vx1_NET + c2o1*vx2_SWT - c2o1*vx2_NWB - c2o1*vx2_SEB + c2o1*vx2_NET - c2o1*vx3_SWT + c2o1*vx3_NWB - c2o1*vx3_SEB + c2o1*vx3_NET + kxxMyyFromfcNEQ_SWT + kxxMyyFromfcNEQ_NWB - c1o1*kxxMyyFromfcNEQ_SEB - c1o1*kxxMyyFromfcNEQ_NET + kxxMzzFromfcNEQ_SWT + kxxMzzFromfcNEQ_NWB - c1o1*kxxMzzFromfcNEQ_SEB - c1o1*kxxMzzFromfcNEQ_NET + c2o1*kxyFromfcNEQ_SWT - c2o1*kxyFromfcNEQ_NWB + c2o1*kxyFromfcNEQ_SEB - c2o1*kxyFromfcNEQ_NET - c2o1*kxzFromfcNEQ_SWT + c2o1*kxzFromfcNEQ_NWB + c2o1*kxzFromfcNEQ_SEB - c2o1*kxzFromfcNEQ_NET - c1o1*kyzFromfcNEQ_SWT - c1o1*kyzFromfcNEQ_NWB - c1o1*kyzFromfcNEQ_SEB - c1o1*kyzFromfcNEQ_NET; + ax += (-c4o1*vx1_SWT - c4o1*vx1_NWB + c4o1*vx1_SEB + c4o1*vx1_NET - c1o1*kxyFromfcNEQ_SWT + kxyFromfcNEQ_NWB + kxyFromfcNEQ_SEB - c1o1*kxyFromfcNEQ_NET + kxzFromfcNEQ_SWT - c1o1*kxzFromfcNEQ_NWB + kxzFromfcNEQ_SEB - c1o1*kxzFromfcNEQ_NET - c1o1*kyzFromfcNEQ_SWT - c1o1*kyzFromfcNEQ_NWB + kyzFromfcNEQ_SEB + kyzFromfcNEQ_NET)/epsylon; + ay += (-c2o1*vx1_SWT + c2o1*vx1_NWB - c2o1*vx1_SEB + c2o1*vx1_NET + c2o1*vx2_SWT + c2o1*vx2_NWB - c2o1*vx2_SEB - c2o1*vx2_NET - c1o1*kxxMyyFromfcNEQ_SWT + kxxMyyFromfcNEQ_NWB + kxxMyyFromfcNEQ_SEB - c1o1*kxxMyyFromfcNEQ_NET + kxyFromfcNEQ_SWT + kxyFromfcNEQ_NWB + kxyFromfcNEQ_SEB + kxyFromfcNEQ_NET)/epsylon; + az += (c2o1*vx1_SWT - c2o1*vx1_NWB - c2o1*vx1_SEB + c2o1*vx1_NET + c2o1*vx3_SWT + c2o1*vx3_NWB - c2o1*vx3_SEB - c2o1*vx3_NET + kxxMzzFromfcNEQ_SWT - c1o1*kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_SEB - c1o1*kxxMzzFromfcNEQ_NET + kxzFromfcNEQ_SWT + kxzFromfcNEQ_NWB + kxzFromfcNEQ_SEB + kxzFromfcNEQ_NET)/epsylon; + axx += (c2o1*vx2_SWT - c2o1*vx2_NWB - c2o1*vx2_SEB + c2o1*vx2_NET - c2o1*vx3_SWT + c2o1*vx3_NWB - c2o1*vx3_SEB + c2o1*vx3_NET - c1o1*kxxMyyFromfcNEQ_SWT - c1o1*kxxMyyFromfcNEQ_NWB + kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_NET - c1o1*kxxMzzFromfcNEQ_SWT - c1o1*kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_NET - c1o1*kyzFromfcNEQ_SWT - c1o1*kyzFromfcNEQ_NWB - c1o1*kyzFromfcNEQ_SEB - c1o1*kyzFromfcNEQ_NET)/(epsylon*epsylon); + ayy += (-c2o1*vx2_SWT + c2o1*vx2_NWB + c2o1*vx2_SEB - c2o1*vx2_NET + c2o1*vx3_SWT - c2o1*vx3_NWB + c2o1*vx3_SEB - c2o1*vx3_NET - c1o1*kxxMyyFromfcNEQ_SWT - c1o1*kxxMyyFromfcNEQ_NWB + kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_NET + kxxMzzFromfcNEQ_SWT + kxxMzzFromfcNEQ_NWB - c1o1*kxxMzzFromfcNEQ_SEB - c1o1*kxxMzzFromfcNEQ_NET - c2o1*kxyFromfcNEQ_SWT + c2o1*kxyFromfcNEQ_NWB - c2o1*kxyFromfcNEQ_SEB + c2o1*kxyFromfcNEQ_NET + kyzFromfcNEQ_SWT + kyzFromfcNEQ_NWB + kyzFromfcNEQ_SEB + kyzFromfcNEQ_NET)/(epsylon*epsylon); + azz += (-c2o1*vx2_SWT + c2o1*vx2_NWB + c2o1*vx2_SEB - c2o1*vx2_NET + c2o1*vx3_SWT - c2o1*vx3_NWB + c2o1*vx3_SEB - c2o1*vx3_NET + kxxMyyFromfcNEQ_SWT + kxxMyyFromfcNEQ_NWB - c1o1*kxxMyyFromfcNEQ_SEB - c1o1*kxxMyyFromfcNEQ_NET - c1o1*kxxMzzFromfcNEQ_SWT - c1o1*kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_NET + c2o1*kxzFromfcNEQ_SWT - c2o1*kxzFromfcNEQ_NWB - c2o1*kxzFromfcNEQ_SEB + c2o1*kxzFromfcNEQ_NET + kyzFromfcNEQ_SWT + kyzFromfcNEQ_NWB + kyzFromfcNEQ_SEB + kyzFromfcNEQ_NET)/(epsylon*epsylon); + axy += (c2o1*vx1_SWT - c2o1*vx1_NWB - c2o1*vx1_SEB + c2o1*vx1_NET - c2o1*vx3_SWT - c2o1*vx3_NWB + c2o1*vx3_SEB + c2o1*vx3_NET - c1o1*kxxMzzFromfcNEQ_SWT + kxxMzzFromfcNEQ_NWB - c1o1*kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_NET - c1o1*kxzFromfcNEQ_SWT - c1o1*kxzFromfcNEQ_NWB - c1o1*kxzFromfcNEQ_SEB - c1o1*kxzFromfcNEQ_NET)/(epsylon*epsylon); + axz += (-c2o1*vx1_SWT + c2o1*vx1_NWB - c2o1*vx1_SEB + c2o1*vx1_NET - c2o1*vx2_SWT - c2o1*vx2_NWB + c2o1*vx2_SEB + c2o1*vx2_NET + kxxMyyFromfcNEQ_SWT - c1o1*kxxMyyFromfcNEQ_NWB - c1o1*kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_NET - c1o1*kxyFromfcNEQ_SWT - c1o1*kxyFromfcNEQ_NWB - c1o1*kxyFromfcNEQ_SEB - c1o1*kxyFromfcNEQ_NET)/(epsylon*epsylon); + ayz += (kxyFromfcNEQ_SWT - c1o1*kxyFromfcNEQ_NWB - c1o1*kxyFromfcNEQ_SEB + kxyFromfcNEQ_NET - c1o1*kxzFromfcNEQ_SWT + kxzFromfcNEQ_NWB - c1o1*kxzFromfcNEQ_SEB + kxzFromfcNEQ_NET + kyzFromfcNEQ_SWT + kyzFromfcNEQ_NWB - c1o1*kyzFromfcNEQ_SEB - c1o1*kyzFromfcNEQ_NET)/(epsylon*epsylon); + b0 += c2o1*vx1_SWT - c2o1*vx1_NWB - c2o1*vx1_SEB + c2o1*vx1_NET + c8o1*vx2_SWT + c8o1*vx2_NWB + c8o1*vx2_SEB + c8o1*vx2_NET - c2o1*vx3_SWT - c2o1*vx3_NWB + c2o1*vx3_SEB + c2o1*vx3_NET - c2o1*kxxMyyFromfcNEQ_SWT + c2o1*kxxMyyFromfcNEQ_NWB - c2o1*kxxMyyFromfcNEQ_SEB + c2o1*kxxMyyFromfcNEQ_NET + kxxMzzFromfcNEQ_SWT - c1o1*kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_SEB - c1o1*kxxMzzFromfcNEQ_NET + c2o1*kxyFromfcNEQ_SWT + c2o1*kxyFromfcNEQ_NWB - c2o1*kxyFromfcNEQ_SEB - c2o1*kxyFromfcNEQ_NET - c1o1*kxzFromfcNEQ_SWT - c1o1*kxzFromfcNEQ_NWB - c1o1*kxzFromfcNEQ_SEB - c1o1*kxzFromfcNEQ_NET - c2o1*kyzFromfcNEQ_SWT + c2o1*kyzFromfcNEQ_NWB + c2o1*kyzFromfcNEQ_SEB - c2o1*kyzFromfcNEQ_NET; + bx += (c2o1*vx1_SWT - c2o1*vx1_NWB + c2o1*vx1_SEB - c2o1*vx1_NET - c2o1*vx2_SWT - c2o1*vx2_NWB + c2o1*vx2_SEB + c2o1*vx2_NET + kxxMyyFromfcNEQ_SWT - c1o1*kxxMyyFromfcNEQ_NWB - c1o1*kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_NET + kxyFromfcNEQ_SWT + kxyFromfcNEQ_NWB + kxyFromfcNEQ_SEB + kxyFromfcNEQ_NET)/epsylon; + by += (-c4o1*vx2_SWT + c4o1*vx2_NWB - c4o1*vx2_SEB + c4o1*vx2_NET - c1o1*kxyFromfcNEQ_SWT + kxyFromfcNEQ_NWB + kxyFromfcNEQ_SEB - c1o1*kxyFromfcNEQ_NET - c1o1*kxzFromfcNEQ_SWT + kxzFromfcNEQ_NWB - c1o1*kxzFromfcNEQ_SEB + kxzFromfcNEQ_NET + kyzFromfcNEQ_SWT + kyzFromfcNEQ_NWB - c1o1*kyzFromfcNEQ_SEB - c1o1*kyzFromfcNEQ_NET)/epsylon; + bz += (c2o1*vx2_SWT - c2o1*vx2_NWB - c2o1*vx2_SEB + c2o1*vx2_NET + c2o1*vx3_SWT - c2o1*vx3_NWB + c2o1*vx3_SEB - c2o1*vx3_NET - c1o1*kxxMyyFromfcNEQ_SWT - c1o1*kxxMyyFromfcNEQ_NWB + kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_NET + kxxMzzFromfcNEQ_SWT + kxxMzzFromfcNEQ_NWB - c1o1*kxxMzzFromfcNEQ_SEB - c1o1*kxxMzzFromfcNEQ_NET + kyzFromfcNEQ_SWT + kyzFromfcNEQ_NWB + kyzFromfcNEQ_SEB + kyzFromfcNEQ_NET)/epsylon; + bxx += (-c2o1*vx1_SWT + c2o1*vx1_NWB + c2o1*vx1_SEB - c2o1*vx1_NET + c2o1*vx3_SWT + c2o1*vx3_NWB - c2o1*vx3_SEB - c2o1*vx3_NET + kxxMzzFromfcNEQ_SWT - c1o1*kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_SEB - c1o1*kxxMzzFromfcNEQ_NET - c2o1*kxyFromfcNEQ_SWT - c2o1*kxyFromfcNEQ_NWB + c2o1*kxyFromfcNEQ_SEB + c2o1*kxyFromfcNEQ_NET + kxzFromfcNEQ_SWT + kxzFromfcNEQ_NWB + kxzFromfcNEQ_SEB + kxzFromfcNEQ_NET)/(epsylon*epsylon); + byy += (c2o1*vx1_SWT - c2o1*vx1_NWB - c2o1*vx1_SEB + c2o1*vx1_NET - c2o1*vx3_SWT - c2o1*vx3_NWB + c2o1*vx3_SEB + c2o1*vx3_NET + c2o1*kxxMyyFromfcNEQ_SWT - c2o1*kxxMyyFromfcNEQ_NWB + c2o1*kxxMyyFromfcNEQ_SEB - c2o1*kxxMyyFromfcNEQ_NET - c1o1*kxxMzzFromfcNEQ_SWT + kxxMzzFromfcNEQ_NWB - c1o1*kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_NET - c1o1*kxzFromfcNEQ_SWT - c1o1*kxzFromfcNEQ_NWB - c1o1*kxzFromfcNEQ_SEB - c1o1*kxzFromfcNEQ_NET)/(epsylon*epsylon); + bzz += (-c2o1*vx1_SWT + c2o1*vx1_NWB + c2o1*vx1_SEB - c2o1*vx1_NET + c2o1*vx3_SWT + c2o1*vx3_NWB - c2o1*vx3_SEB - c2o1*vx3_NET - c1o1*kxxMzzFromfcNEQ_SWT + kxxMzzFromfcNEQ_NWB - c1o1*kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_NET + kxzFromfcNEQ_SWT + kxzFromfcNEQ_NWB + kxzFromfcNEQ_SEB + kxzFromfcNEQ_NET + c2o1*kyzFromfcNEQ_SWT - c2o1*kyzFromfcNEQ_NWB - c2o1*kyzFromfcNEQ_SEB + c2o1*kyzFromfcNEQ_NET)/(epsylon*epsylon); + bxy += (c2o1*vx2_SWT - c2o1*vx2_NWB - c2o1*vx2_SEB + c2o1*vx2_NET - c2o1*vx3_SWT + c2o1*vx3_NWB - c2o1*vx3_SEB + c2o1*vx3_NET + kxxMyyFromfcNEQ_SWT + kxxMyyFromfcNEQ_NWB - c1o1*kxxMyyFromfcNEQ_SEB - c1o1*kxxMyyFromfcNEQ_NET - c1o1*kxxMzzFromfcNEQ_SWT - c1o1*kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_NET - c1o1*kyzFromfcNEQ_SWT - c1o1*kyzFromfcNEQ_NWB - c1o1*kyzFromfcNEQ_SEB - c1o1*kyzFromfcNEQ_NET)/(epsylon*epsylon); + bxz += (kxyFromfcNEQ_SWT - c1o1*kxyFromfcNEQ_NWB - c1o1*kxyFromfcNEQ_SEB + kxyFromfcNEQ_NET + kxzFromfcNEQ_SWT - c1o1*kxzFromfcNEQ_NWB + kxzFromfcNEQ_SEB - c1o1*kxzFromfcNEQ_NET - c1o1*kyzFromfcNEQ_SWT - c1o1*kyzFromfcNEQ_NWB + kyzFromfcNEQ_SEB + kyzFromfcNEQ_NET)/(epsylon*epsylon); + byz += (-c2o1*vx1_SWT + c2o1*vx1_NWB - c2o1*vx1_SEB + c2o1*vx1_NET - c2o1*vx2_SWT - c2o1*vx2_NWB + c2o1*vx2_SEB + c2o1*vx2_NET - c1o1*kxxMyyFromfcNEQ_SWT + kxxMyyFromfcNEQ_NWB + kxxMyyFromfcNEQ_SEB - c1o1*kxxMyyFromfcNEQ_NET - c1o1*kxyFromfcNEQ_SWT - c1o1*kxyFromfcNEQ_NWB - c1o1*kxyFromfcNEQ_SEB - c1o1*kxyFromfcNEQ_NET)/(epsylon*epsylon); + c0 += -c2o1*vx1_SWT + c2o1*vx1_NWB - c2o1*vx1_SEB + c2o1*vx1_NET - c2o1*vx2_SWT - c2o1*vx2_NWB + c2o1*vx2_SEB + c2o1*vx2_NET + c8o1*vx3_SWT + c8o1*vx3_NWB + c8o1*vx3_SEB + c8o1*vx3_NET - c1o1*kxxMyyFromfcNEQ_SWT + kxxMyyFromfcNEQ_NWB + kxxMyyFromfcNEQ_SEB - c1o1*kxxMyyFromfcNEQ_NET + c2o1*kxxMzzFromfcNEQ_SWT - c2o1*kxxMzzFromfcNEQ_NWB - c2o1*kxxMzzFromfcNEQ_SEB + c2o1*kxxMzzFromfcNEQ_NET - c1o1*kxyFromfcNEQ_SWT - c1o1*kxyFromfcNEQ_NWB - c1o1*kxyFromfcNEQ_SEB - c1o1*kxyFromfcNEQ_NET + c2o1*kxzFromfcNEQ_SWT + c2o1*kxzFromfcNEQ_NWB - c2o1*kxzFromfcNEQ_SEB - c2o1*kxzFromfcNEQ_NET + c2o1*kyzFromfcNEQ_SWT - c2o1*kyzFromfcNEQ_NWB + c2o1*kyzFromfcNEQ_SEB - c2o1*kyzFromfcNEQ_NET; + cx += (-c2o1*vx1_SWT + c2o1*vx1_NWB + c2o1*vx1_SEB - c2o1*vx1_NET - c2o1*vx3_SWT - c2o1*vx3_NWB + c2o1*vx3_SEB + c2o1*vx3_NET - c1o1*kxxMzzFromfcNEQ_SWT + kxxMzzFromfcNEQ_NWB - c1o1*kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_NET + kxzFromfcNEQ_SWT + kxzFromfcNEQ_NWB + kxzFromfcNEQ_SEB + kxzFromfcNEQ_NET)/epsylon; + cy += (-c2o1*vx2_SWT + c2o1*vx2_NWB + c2o1*vx2_SEB - c2o1*vx2_NET - c2o1*vx3_SWT + c2o1*vx3_NWB - c2o1*vx3_SEB + c2o1*vx3_NET + kxxMyyFromfcNEQ_SWT + kxxMyyFromfcNEQ_NWB - c1o1*kxxMyyFromfcNEQ_SEB - c1o1*kxxMyyFromfcNEQ_NET - c1o1*kxxMzzFromfcNEQ_SWT - c1o1*kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_NET + kyzFromfcNEQ_SWT + kyzFromfcNEQ_NWB + kyzFromfcNEQ_SEB + kyzFromfcNEQ_NET)/epsylon; + cz += (c4o1*vx3_SWT - c4o1*vx3_NWB - c4o1*vx3_SEB + c4o1*vx3_NET + kxyFromfcNEQ_SWT - c1o1*kxyFromfcNEQ_NWB - c1o1*kxyFromfcNEQ_SEB + kxyFromfcNEQ_NET + kxzFromfcNEQ_SWT - c1o1*kxzFromfcNEQ_NWB + kxzFromfcNEQ_SEB - c1o1*kxzFromfcNEQ_NET + kyzFromfcNEQ_SWT + kyzFromfcNEQ_NWB - c1o1*kyzFromfcNEQ_SEB - c1o1*kyzFromfcNEQ_NET)/epsylon; + cxx += (c2o1*vx1_SWT - c2o1*vx1_NWB + c2o1*vx1_SEB - c2o1*vx1_NET + c2o1*vx2_SWT + c2o1*vx2_NWB - c2o1*vx2_SEB - c2o1*vx2_NET - c1o1*kxxMyyFromfcNEQ_SWT + kxxMyyFromfcNEQ_NWB + kxxMyyFromfcNEQ_SEB - c1o1*kxxMyyFromfcNEQ_NET + kxyFromfcNEQ_SWT + kxyFromfcNEQ_NWB + kxyFromfcNEQ_SEB + kxyFromfcNEQ_NET - c2o1*kxzFromfcNEQ_SWT - c2o1*kxzFromfcNEQ_NWB + c2o1*kxzFromfcNEQ_SEB + c2o1*kxzFromfcNEQ_NET)/(epsylon*epsylon); + cyy += (c2o1*vx1_SWT - c2o1*vx1_NWB + c2o1*vx1_SEB - c2o1*vx1_NET + c2o1*vx2_SWT + c2o1*vx2_NWB - c2o1*vx2_SEB - c2o1*vx2_NET + kxxMyyFromfcNEQ_SWT - c1o1*kxxMyyFromfcNEQ_NWB - c1o1*kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_NET + kxyFromfcNEQ_SWT + kxyFromfcNEQ_NWB + kxyFromfcNEQ_SEB + kxyFromfcNEQ_NET - c2o1*kyzFromfcNEQ_SWT + c2o1*kyzFromfcNEQ_NWB - c2o1*kyzFromfcNEQ_SEB + c2o1*kyzFromfcNEQ_NET)/(epsylon*epsylon); + czz += (-c2o1*vx1_SWT + c2o1*vx1_NWB - c2o1*vx1_SEB + c2o1*vx1_NET - c2o1*vx2_SWT - c2o1*vx2_NWB + c2o1*vx2_SEB + c2o1*vx2_NET + kxxMyyFromfcNEQ_SWT - c1o1*kxxMyyFromfcNEQ_NWB - c1o1*kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_NET - c2o1*kxxMzzFromfcNEQ_SWT + c2o1*kxxMzzFromfcNEQ_NWB + c2o1*kxxMzzFromfcNEQ_SEB - c2o1*kxxMzzFromfcNEQ_NET - c1o1*kxyFromfcNEQ_SWT - c1o1*kxyFromfcNEQ_NWB - c1o1*kxyFromfcNEQ_SEB - c1o1*kxyFromfcNEQ_NET)/(epsylon*epsylon); + cxy += (-c1o1*kxyFromfcNEQ_SWT + kxyFromfcNEQ_NWB + kxyFromfcNEQ_SEB - c1o1*kxyFromfcNEQ_NET - c1o1*kxzFromfcNEQ_SWT + kxzFromfcNEQ_NWB - c1o1*kxzFromfcNEQ_SEB + kxzFromfcNEQ_NET - c1o1*kyzFromfcNEQ_SWT - c1o1*kyzFromfcNEQ_NWB + kyzFromfcNEQ_SEB + kyzFromfcNEQ_NET)/(epsylon*epsylon); + cxz += (c2o1*vx2_SWT - c2o1*vx2_NWB - c2o1*vx2_SEB + c2o1*vx2_NET - c2o1*vx3_SWT + c2o1*vx3_NWB - c2o1*vx3_SEB + c2o1*vx3_NET - c1o1*kxxMyyFromfcNEQ_SWT - c1o1*kxxMyyFromfcNEQ_NWB + kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_NET + kxxMzzFromfcNEQ_SWT + kxxMzzFromfcNEQ_NWB - c1o1*kxxMzzFromfcNEQ_SEB - c1o1*kxxMzzFromfcNEQ_NET - c1o1*kyzFromfcNEQ_SWT - c1o1*kyzFromfcNEQ_NWB - c1o1*kyzFromfcNEQ_SEB - c1o1*kyzFromfcNEQ_NET)/(epsylon*epsylon); + cyz += (c2o1*vx1_SWT - c2o1*vx1_NWB - c2o1*vx1_SEB + c2o1*vx1_NET - c2o1*vx3_SWT - c2o1*vx3_NWB + c2o1*vx3_SEB + c2o1*vx3_NET + kxxMzzFromfcNEQ_SWT - c1o1*kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_SEB - c1o1*kxxMzzFromfcNEQ_NET - c1o1*kxzFromfcNEQ_SWT - c1o1*kxzFromfcNEQ_NWB - c1o1*kxzFromfcNEQ_SEB - c1o1*kxzFromfcNEQ_NET)/(epsylon*epsylon); a0 /= c2o1; ax /= c2o1; ay /= c2o1; @@ -24239,14 +24239,14 @@ __global__ void scaleFC27(real* DC, z = c0o1; //drho = (drho_SWB + drho_NWB + drho_NEB + drho_SEB + drho_SWT + drho_NWT + drho_NET + drho_SET)/8.; - drho = (drho_NEB*(c1o1 + c2o1*x + c2o1*y + c4o1*x*y - c2o1*z - c4o1*x*z - c4o1*y*z - c8o1*x*y*z) + - drho_SET*(c1o1 + c2o1*x - c2o1*y - c4o1*x*y + c2o1*z + c4o1*x*z - c4o1*y*z - c8o1*x*y*z) + - drho_NWT*(c1o1 - c2o1*x + c2o1*y - c4o1*x*y + c2o1*z - c4o1*x*z + c4o1*y*z - c8o1*x*y*z) + - drho_SWB*(c1o1 - c2o1*x - c2o1*y + c4o1*x*y - c2o1*z + c4o1*x*z + c4o1*y*z - c8o1*x*y*z) + - drho_SWT*(c1o1 - c2o1*x - c2o1*y + c4o1*x*y + c2o1*z - c4o1*x*z - c4o1*y*z + c8o1*x*y*z) + - drho_NWB*(c1o1 - c2o1*x + c2o1*y - c4o1*x*y - c2o1*z + c4o1*x*z - c4o1*y*z + c8o1*x*y*z) + - drho_SEB*(c1o1 + c2o1*x - c2o1*y - c4o1*x*y - c2o1*z - c4o1*x*z + c4o1*y*z + c8o1*x*y*z) + - drho_NET*(c1o1 + c2o1*x + c2o1*y + c4o1*x*y + c2o1*z + c4o1*x*z + c4o1*y*z + c8o1*x*y*z))/c8o1; + drho = (drho_NEB*(c1o1 + c2o1*x + c2o1*y + c4o1*x*y - c2o1*z - c4o1*x*z - c4o1*y*z - c8o1*x*y*z) + + drho_SET*(c1o1 + c2o1*x - c2o1*y - c4o1*x*y + c2o1*z + c4o1*x*z - c4o1*y*z - c8o1*x*y*z) + + drho_NWT*(c1o1 - c2o1*x + c2o1*y - c4o1*x*y + c2o1*z - c4o1*x*z + c4o1*y*z - c8o1*x*y*z) + + drho_SWB*(c1o1 - c2o1*x - c2o1*y + c4o1*x*y - c2o1*z + c4o1*x*z + c4o1*y*z - c8o1*x*y*z) + + drho_SWT*(c1o1 - c2o1*x - c2o1*y + c4o1*x*y + c2o1*z - c4o1*x*z - c4o1*y*z + c8o1*x*y*z) + + drho_NWB*(c1o1 - c2o1*x + c2o1*y - c4o1*x*y - c2o1*z + c4o1*x*z - c4o1*y*z + c8o1*x*y*z) + + drho_SEB*(c1o1 + c2o1*x - c2o1*y - c4o1*x*y - c2o1*z - c4o1*x*z + c4o1*y*z + c8o1*x*y*z) + + drho_NET*(c1o1 + c2o1*x + c2o1*y + c4o1*x*y + c2o1*z + c4o1*x*z + c4o1*y*z + c8o1*x*y*z))/c8o1; vx1 = a0 + ax*x + ay*y + az*z + axx*x*x + ayy*y*y + azz*z*z + axy*x*y + axz*x*z + ayz*y*z; vx2 = b0 + bx*x + by*y + bz*z + bxx*x*x + byy*y*y + bzz*z*z + bxy*x*y + bxz*x*z + byz*y*z; vx3 = c0 + cx*x + cy*y + cz*z + cxx*x*x + cyy*y*y + czz*z*z + cxy*x*y + cxz*x*z + cyz*y*z; diff --git a/src/gpu/core/GPU/GridScaling/ScaleFC_F3_27.cu b/src/gpu/core/GPU/GridScaling/ScaleFC_F3_27.cu index 296c80c5c1a876a4453e6c53228af066b3ec6e22..63338605323ce730ada0e26008784cce39d7c0e6 100644 --- a/src/gpu/core/GPU/GridScaling/ScaleFC_F3_27.cu +++ b/src/gpu/core/GPU/GridScaling/ScaleFC_F3_27.cu @@ -15,33 +15,33 @@ using namespace vf::lbm::dir; ////////////////////////////////////////////////////////////////////////// __global__ void scaleFC_comp_D3Q27F3_2018(real* DC, - real* DF, - real* G6, - unsigned int* neighborCX, - unsigned int* neighborCY, - unsigned int* neighborCZ, - unsigned int* neighborFX, - unsigned int* neighborFY, - unsigned int* neighborFZ, - unsigned long long numberOfLBnodesCoarse, - unsigned long long numberOfLBnodesFine, - bool isEvenTimestep, - unsigned int* posC, - unsigned int* posFSWB, - unsigned int kFC, - real omCoarse, - real omFine, - real nu, - unsigned int nxC, - unsigned int nyC, - unsigned int nxF, - unsigned int nyF, - ICellNeigh offFC) + real* DF, + real* G6, + unsigned int* neighborCX, + unsigned int* neighborCY, + unsigned int* neighborCZ, + unsigned int* neighborFX, + unsigned int* neighborFY, + unsigned int* neighborFZ, + unsigned long long numberOfLBnodesCoarse, + unsigned long long numberOfLBnodesFine, + bool isEvenTimestep, + unsigned int* posC, + unsigned int* posFSWB, + unsigned int kFC, + real omCoarse, + real omFine, + real nu, + unsigned int nxC, + unsigned int nyC, + unsigned int nxF, + unsigned int nyF, + ICellNeigh offFC) { real - *fP00source, *fM00source, *f0P0source, *f0M0source, *f00Psource, *f00Msource, *fPP0source, *fMM0source, *fPM0source, - *fMP0source, *fP0Psource, *fM0Msource, *fP0Msource, *fM0Psource, *f0PPsource, *f0MMsource, *f0PMsource, *f0MPsource, - *f000source, *fMMMsource, *fMMPsource, *fMPPsource, *fMPMsource, *fPPMsource, *fPPPsource, *fPMPsource, *fPMMsource; + *fP00source, *fM00source, *f0P0source, *f0M0source, *f00Psource, *f00Msource, *fPP0source, *fMM0source, *fPM0source, + *fMP0source, *fP0Psource, *fM0Msource, *fP0Msource, *fM0Psource, *f0PPsource, *f0MMsource, *f0PMsource, *f0MPsource, + *f000source, *fMMMsource, *fMMPsource, *fMPPsource, *fMPMsource, *fPPMsource, *fPPPsource, *fPMPsource, *fPMMsource; fP00source = &DF[dP00 * numberOfLBnodesFine]; @@ -73,89 +73,89 @@ __global__ void scaleFC_comp_D3Q27F3_2018(real* DC, fPMMsource = &DF[dPMM * numberOfLBnodesFine]; real - *fP00dest, *fM00dest, *f0P0dest, *f0M0dest, *f00Pdest, *f00Mdest, *fPP0dest, *fMM0dest, *fPM0dest, - *fMP0dest, *fP0Pdest, *fM0Mdest, *fP0Mdest, *fM0Pdest, *f0PPdest, *f0MMdest, *f0PMdest, *f0MPdest, - *f000dest, *fMMMdest, *fMMPdest, *fMPPdest, *fMPMdest, *fPPMdest, *fPPPdest, *fPMPdest, *fPMMdest; + *fP00dest, *fM00dest, *f0P0dest, *f0M0dest, *f00Pdest, *f00Mdest, *fPP0dest, *fMM0dest, *fPM0dest, + *fMP0dest, *fP0Pdest, *fM0Mdest, *fP0Mdest, *fM0Pdest, *f0PPdest, *f0MMdest, *f0PMdest, *f0MPdest, + *f000dest, *fMMMdest, *fMMPdest, *fMPPdest, *fMPMdest, *fPPMdest, *fPPPdest, *fPMPdest, *fPMMdest; if (isEvenTimestep==true) { - fP00dest = &DC[dP00 * numberOfLBnodesCoarse]; - fM00dest = &DC[dM00 * numberOfLBnodesCoarse]; - f0P0dest = &DC[d0P0 * numberOfLBnodesCoarse]; - f0M0dest = &DC[d0M0 * numberOfLBnodesCoarse]; - f00Pdest = &DC[d00P * numberOfLBnodesCoarse]; - f00Mdest = &DC[d00M * numberOfLBnodesCoarse]; - fPP0dest = &DC[dPP0 * numberOfLBnodesCoarse]; - fMM0dest = &DC[dMM0 * numberOfLBnodesCoarse]; - fPM0dest = &DC[dPM0 * numberOfLBnodesCoarse]; - fMP0dest = &DC[dMP0 * numberOfLBnodesCoarse]; - fP0Pdest = &DC[dP0P * numberOfLBnodesCoarse]; - fM0Mdest = &DC[dM0M * numberOfLBnodesCoarse]; - fP0Mdest = &DC[dP0M * numberOfLBnodesCoarse]; - fM0Pdest = &DC[dM0P * numberOfLBnodesCoarse]; - f0PPdest = &DC[d0PP * numberOfLBnodesCoarse]; - f0MMdest = &DC[d0MM * numberOfLBnodesCoarse]; - f0PMdest = &DC[d0PM * numberOfLBnodesCoarse]; - f0MPdest = &DC[d0MP * numberOfLBnodesCoarse]; - f000dest = &DC[d000 * numberOfLBnodesCoarse]; - fMMMdest = &DC[dMMM * numberOfLBnodesCoarse]; - fMMPdest = &DC[dMMP * numberOfLBnodesCoarse]; - fMPPdest = &DC[dMPP * numberOfLBnodesCoarse]; - fMPMdest = &DC[dMPM * numberOfLBnodesCoarse]; - fPPMdest = &DC[dPPM * numberOfLBnodesCoarse]; - fPPPdest = &DC[dPPP * numberOfLBnodesCoarse]; - fPMPdest = &DC[dPMP * numberOfLBnodesCoarse]; - fPMMdest = &DC[dPMM * numberOfLBnodesCoarse]; + fP00dest = &DC[dP00 * numberOfLBnodesCoarse]; + fM00dest = &DC[dM00 * numberOfLBnodesCoarse]; + f0P0dest = &DC[d0P0 * numberOfLBnodesCoarse]; + f0M0dest = &DC[d0M0 * numberOfLBnodesCoarse]; + f00Pdest = &DC[d00P * numberOfLBnodesCoarse]; + f00Mdest = &DC[d00M * numberOfLBnodesCoarse]; + fPP0dest = &DC[dPP0 * numberOfLBnodesCoarse]; + fMM0dest = &DC[dMM0 * numberOfLBnodesCoarse]; + fPM0dest = &DC[dPM0 * numberOfLBnodesCoarse]; + fMP0dest = &DC[dMP0 * numberOfLBnodesCoarse]; + fP0Pdest = &DC[dP0P * numberOfLBnodesCoarse]; + fM0Mdest = &DC[dM0M * numberOfLBnodesCoarse]; + fP0Mdest = &DC[dP0M * numberOfLBnodesCoarse]; + fM0Pdest = &DC[dM0P * numberOfLBnodesCoarse]; + f0PPdest = &DC[d0PP * numberOfLBnodesCoarse]; + f0MMdest = &DC[d0MM * numberOfLBnodesCoarse]; + f0PMdest = &DC[d0PM * numberOfLBnodesCoarse]; + f0MPdest = &DC[d0MP * numberOfLBnodesCoarse]; + f000dest = &DC[d000 * numberOfLBnodesCoarse]; + fMMMdest = &DC[dMMM * numberOfLBnodesCoarse]; + fMMPdest = &DC[dMMP * numberOfLBnodesCoarse]; + fMPPdest = &DC[dMPP * numberOfLBnodesCoarse]; + fMPMdest = &DC[dMPM * numberOfLBnodesCoarse]; + fPPMdest = &DC[dPPM * numberOfLBnodesCoarse]; + fPPPdest = &DC[dPPP * numberOfLBnodesCoarse]; + fPMPdest = &DC[dPMP * numberOfLBnodesCoarse]; + fPMMdest = &DC[dPMM * numberOfLBnodesCoarse]; } else { - fP00dest = &DC[dM00 * numberOfLBnodesCoarse]; - fM00dest = &DC[dP00 * numberOfLBnodesCoarse]; - f0P0dest = &DC[d0M0 * numberOfLBnodesCoarse]; - f0M0dest = &DC[d0P0 * numberOfLBnodesCoarse]; - f00Pdest = &DC[d00M * numberOfLBnodesCoarse]; - f00Mdest = &DC[d00P * numberOfLBnodesCoarse]; - fPP0dest = &DC[dMM0 * numberOfLBnodesCoarse]; - fMM0dest = &DC[dPP0 * numberOfLBnodesCoarse]; - fPM0dest = &DC[dMP0 * numberOfLBnodesCoarse]; - fMP0dest = &DC[dPM0 * numberOfLBnodesCoarse]; - fP0Pdest = &DC[dM0M * numberOfLBnodesCoarse]; - fM0Mdest = &DC[dP0P * numberOfLBnodesCoarse]; - fP0Mdest = &DC[dM0P * numberOfLBnodesCoarse]; - fM0Pdest = &DC[dP0M * numberOfLBnodesCoarse]; - f0PPdest = &DC[d0MM * numberOfLBnodesCoarse]; - f0MMdest = &DC[d0PP * numberOfLBnodesCoarse]; - f0PMdest = &DC[d0MP * numberOfLBnodesCoarse]; - f0MPdest = &DC[d0PM * numberOfLBnodesCoarse]; - f000dest = &DC[d000 * numberOfLBnodesCoarse]; - fMMMdest = &DC[dPPP * numberOfLBnodesCoarse]; - fMMPdest = &DC[dPPM * numberOfLBnodesCoarse]; - fMPPdest = &DC[dPMM * numberOfLBnodesCoarse]; - fMPMdest = &DC[dPMP * numberOfLBnodesCoarse]; - fPPMdest = &DC[dMMP * numberOfLBnodesCoarse]; - fPPPdest = &DC[dMMM * numberOfLBnodesCoarse]; - fPMPdest = &DC[dMPM * numberOfLBnodesCoarse]; - fPMMdest = &DC[dMPP * numberOfLBnodesCoarse]; + fP00dest = &DC[dM00 * numberOfLBnodesCoarse]; + fM00dest = &DC[dP00 * numberOfLBnodesCoarse]; + f0P0dest = &DC[d0M0 * numberOfLBnodesCoarse]; + f0M0dest = &DC[d0P0 * numberOfLBnodesCoarse]; + f00Pdest = &DC[d00M * numberOfLBnodesCoarse]; + f00Mdest = &DC[d00P * numberOfLBnodesCoarse]; + fPP0dest = &DC[dMM0 * numberOfLBnodesCoarse]; + fMM0dest = &DC[dPP0 * numberOfLBnodesCoarse]; + fPM0dest = &DC[dMP0 * numberOfLBnodesCoarse]; + fMP0dest = &DC[dPM0 * numberOfLBnodesCoarse]; + fP0Pdest = &DC[dM0M * numberOfLBnodesCoarse]; + fM0Mdest = &DC[dP0P * numberOfLBnodesCoarse]; + fP0Mdest = &DC[dM0P * numberOfLBnodesCoarse]; + fM0Pdest = &DC[dP0M * numberOfLBnodesCoarse]; + f0PPdest = &DC[d0MM * numberOfLBnodesCoarse]; + f0MMdest = &DC[d0PP * numberOfLBnodesCoarse]; + f0PMdest = &DC[d0MP * numberOfLBnodesCoarse]; + f0MPdest = &DC[d0PM * numberOfLBnodesCoarse]; + f000dest = &DC[d000 * numberOfLBnodesCoarse]; + fMMMdest = &DC[dPPP * numberOfLBnodesCoarse]; + fMMPdest = &DC[dPPM * numberOfLBnodesCoarse]; + fMPPdest = &DC[dPMM * numberOfLBnodesCoarse]; + fMPMdest = &DC[dPMP * numberOfLBnodesCoarse]; + fPPMdest = &DC[dMMP * numberOfLBnodesCoarse]; + fPPPdest = &DC[dMMM * numberOfLBnodesCoarse]; + fPMPdest = &DC[dMPM * numberOfLBnodesCoarse]; + fPMMdest = &DC[dMPP * numberOfLBnodesCoarse]; } Distributions6 G; if (isEvenTimestep == true) { - G.g[dP00] = &G6[dP00 * numberOfLBnodesCoarse]; - G.g[dM00] = &G6[dM00 * numberOfLBnodesCoarse]; - G.g[d0P0] = &G6[d0P0 * numberOfLBnodesCoarse]; - G.g[d0M0] = &G6[d0M0 * numberOfLBnodesCoarse]; - G.g[d00P] = &G6[d00P * numberOfLBnodesCoarse]; - G.g[d00M] = &G6[d00M * numberOfLBnodesCoarse]; + G.g[dP00] = &G6[dP00 * numberOfLBnodesCoarse]; + G.g[dM00] = &G6[dM00 * numberOfLBnodesCoarse]; + G.g[d0P0] = &G6[d0P0 * numberOfLBnodesCoarse]; + G.g[d0M0] = &G6[d0M0 * numberOfLBnodesCoarse]; + G.g[d00P] = &G6[d00P * numberOfLBnodesCoarse]; + G.g[d00M] = &G6[d00M * numberOfLBnodesCoarse]; } else { - G.g[dM00] = &G6[dP00 * numberOfLBnodesCoarse]; - G.g[dP00] = &G6[dM00 * numberOfLBnodesCoarse]; - G.g[d0M0] = &G6[d0P0 * numberOfLBnodesCoarse]; - G.g[d0P0] = &G6[d0M0 * numberOfLBnodesCoarse]; - G.g[d00M] = &G6[d00P * numberOfLBnodesCoarse]; - G.g[d00P] = &G6[d00M * numberOfLBnodesCoarse]; + G.g[dM00] = &G6[dP00 * numberOfLBnodesCoarse]; + G.g[dP00] = &G6[dM00 * numberOfLBnodesCoarse]; + G.g[d0M0] = &G6[d0P0 * numberOfLBnodesCoarse]; + G.g[d0P0] = &G6[d0M0 * numberOfLBnodesCoarse]; + G.g[d00M] = &G6[d00P * numberOfLBnodesCoarse]; + G.g[d00P] = &G6[d00M * numberOfLBnodesCoarse]; } //////////////////////////////////////////////////////////////////////////////// @@ -253,26 +253,26 @@ __global__ void scaleFC_comp_D3Q27F3_2018(real* DC, f0PM = f0PMsource[k00M]; f0MP = f0MPsource[k0M0]; f000 = f000source[k000]; - fMMM = fMMMsource[kMMM]; - fMMP = fMMPsource[kMM0]; - fMPP = fMPPsource[kM00]; - fMPM = fMPMsource[kM0M]; - fPPM = fPPMsource[k00M]; - fPPP = fPPPsource[k000]; + fMMM = fMMMsource[kMMM]; + fMMP = fMMPsource[kMM0]; + fMPP = fMPPsource[kM00]; + fMPM = fMPMsource[kM0M]; + fPPM = fPPMsource[k00M]; + fPPP = fPPPsource[k000]; fPMP = fPMPsource[k0M0]; fPMM = fPMMsource[k0MM]; drhoMMM = fP00+fM00+f0P0+f0M0+f00P+f00M+fPP0+fMM0+fPM0+fMP0+fP0P+fM0M+fP0M+fM0P+f0PP+f0MM+f0PM+f0MP+f000+fPPP+fMMP+fPMP+fMPP+fPPM+fMMM+fPMM+fMPM; vx1MMM = (((fPPP-fMMM)+(fPMP-fMPM)+(fPPM-fMMP)+(fPMM-fMPP)) + (((fPP0-fMM0)+(fP0P-fM0M))+((fPM0-fMP0)+(fP0M-fM0P))) + (fP00-fM00))/(c1o1 + drhoMMM); - vx2MMM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoMMM); - vx3MMM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoMMM); + vx2MMM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoMMM); + vx3MMM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoMMM); - kxyFromfcNEQMMM = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoMMM) - ((vx1MMM*vx2MMM))); - kyzFromfcNEQMMM = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoMMM) - ((vx2MMM*vx3MMM))); - kxzFromfcNEQMMM = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoMMM) - ((vx1MMM*vx3MMM))); - kxxMyyFromfcNEQMMM = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoMMM) - ((vx1MMM*vx1MMM - vx2MMM*vx2MMM))); - kxxMzzFromfcNEQMMM = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoMMM) - ((vx1MMM*vx1MMM - vx3MMM*vx3MMM))); - kyyMzzFromfcNEQMMM = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoMMM) - ((vx2MMM*vx2MMM - vx3MMM*vx3MMM))); + kxyFromfcNEQMMM = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoMMM) - ((vx1MMM*vx2MMM))); + kyzFromfcNEQMMM = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoMMM) - ((vx2MMM*vx3MMM))); + kxzFromfcNEQMMM = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoMMM) - ((vx1MMM*vx3MMM))); + kxxMyyFromfcNEQMMM = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoMMM) - ((vx1MMM*vx1MMM - vx2MMM*vx2MMM))); + kxxMzzFromfcNEQMMM = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoMMM) - ((vx1MMM*vx1MMM - vx3MMM*vx3MMM))); + kyyMzzFromfcNEQMMM = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoMMM) - ((vx2MMM*vx2MMM - vx3MMM*vx3MMM))); ////////////////////////////////////////////////////////////////////////// //SWT// @@ -287,45 +287,45 @@ __global__ void scaleFC_comp_D3Q27F3_2018(real* DC, k0MM = neighborFZ[k0MM]; kMMM = neighborFZ[kMMM]; //////////////////////////////////////////////////////////////////////////////// - fP00 = fP00source[k000]; - fM00 = fM00source[kM00]; - f0P0 = f0P0source[k000]; - f0M0 = f0M0source[k0M0]; - f00P = f00Psource[k000]; - f00M = f00Msource[k00M]; - fPP0 = fPP0source[k000]; - fMM0 = fMM0source[kMM0]; - fPM0 = fPM0source[k0M0]; - fMP0 = fMP0source[kM00]; - fP0P = fP0Psource[k000]; - fM0M = fM0Msource[kM0M]; - fP0M = fP0Msource[k00M]; - fM0P = fM0Psource[kM00]; - f0PP = f0PPsource[k000]; - f0MM = f0MMsource[k0MM]; - f0PM = f0PMsource[k00M]; - f0MP = f0MPsource[k0M0]; - f000 = f000source[k000]; - fMMM = fMMMsource[kMMM]; - fMMP = fMMPsource[kMM0]; - fMPP = fMPPsource[kM00]; - fMPM = fMPMsource[kM0M]; - fPPM = fPPMsource[k00M]; - fPPP = fPPPsource[k000]; - fPMP = fPMPsource[k0M0]; - fPMM = fPMMsource[k0MM]; + fP00 = fP00source[k000]; + fM00 = fM00source[kM00]; + f0P0 = f0P0source[k000]; + f0M0 = f0M0source[k0M0]; + f00P = f00Psource[k000]; + f00M = f00Msource[k00M]; + fPP0 = fPP0source[k000]; + fMM0 = fMM0source[kMM0]; + fPM0 = fPM0source[k0M0]; + fMP0 = fMP0source[kM00]; + fP0P = fP0Psource[k000]; + fM0M = fM0Msource[kM0M]; + fP0M = fP0Msource[k00M]; + fM0P = fM0Psource[kM00]; + f0PP = f0PPsource[k000]; + f0MM = f0MMsource[k0MM]; + f0PM = f0PMsource[k00M]; + f0MP = f0MPsource[k0M0]; + f000 = f000source[k000]; + fMMM = fMMMsource[kMMM]; + fMMP = fMMPsource[kMM0]; + fMPP = fMPPsource[kM00]; + fMPM = fMPMsource[kM0M]; + fPPM = fPPMsource[k00M]; + fPPP = fPPPsource[k000]; + fPMP = fPMPsource[k0M0]; + fPMM = fPMMsource[k0MM]; drhoMMP = fP00+fM00+f0P0+f0M0+f00P+f00M+fPP0+fMM0+fPM0+fMP0+fP0P+fM0M+fP0M+fM0P+f0PP+f0MM+f0PM+f0MP+f000+fPPP+fMMP+fPMP+fMPP+fPPM+fMMM+fPMM+fMPM; vx1MMP = (((fPPP-fMMM)+(fPMP-fMPM)+(fPPM-fMMP)+(fPMM-fMPP)) + (((fPP0-fMM0)+(fP0P-fM0M))+((fPM0-fMP0)+(fP0M-fM0P))) + (fP00-fM00))/(c1o1 + drhoMMP); - vx2MMP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoMMP); - vx3MMP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoMMP); + vx2MMP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoMMP); + vx3MMP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoMMP); - kxyFromfcNEQMMP = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoMMP) - ((vx1MMP*vx2MMP))); - kyzFromfcNEQMMP = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoMMP) - ((vx2MMP*vx3MMP))); - kxzFromfcNEQMMP = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoMMP) - ((vx1MMP*vx3MMP))); - kxxMyyFromfcNEQMMP = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoMMP) - ((vx1MMP*vx1MMP - vx2MMP*vx2MMP))); - kxxMzzFromfcNEQMMP = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoMMP) - ((vx1MMP*vx1MMP - vx3MMP*vx3MMP))); - kyyMzzFromfcNEQMMP = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoMMP) - ((vx2MMP*vx2MMP - vx3MMP*vx3MMP))); + kxyFromfcNEQMMP = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoMMP) - ((vx1MMP*vx2MMP))); + kyzFromfcNEQMMP = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoMMP) - ((vx2MMP*vx3MMP))); + kxzFromfcNEQMMP = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoMMP) - ((vx1MMP*vx3MMP))); + kxxMyyFromfcNEQMMP = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoMMP) - ((vx1MMP*vx1MMP - vx2MMP*vx2MMP))); + kxxMzzFromfcNEQMMP = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoMMP) - ((vx1MMP*vx1MMP - vx3MMP*vx3MMP))); + kyyMzzFromfcNEQMMP = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoMMP) - ((vx2MMP*vx2MMP - vx3MMP*vx3MMP))); ////////////////////////////////////////////////////////////////////////// //SET// @@ -340,45 +340,45 @@ __global__ void scaleFC_comp_D3Q27F3_2018(real* DC, k0MM = kMMM; kMMM = neighborFX[kMMM]; //////////////////////////////////////////////////////////////////////////////// - fP00 = fP00source[k000]; - fM00 = fM00source[kM00]; - f0P0 = f0P0source[k000]; - f0M0 = f0M0source[k0M0]; - f00P = f00Psource[k000]; - f00M = f00Msource[k00M]; - fPP0 = fPP0source[k000]; - fMM0 = fMM0source[kMM0]; - fPM0 = fPM0source[k0M0]; - fMP0 = fMP0source[kM00]; - fP0P = fP0Psource[k000]; - fM0M = fM0Msource[kM0M]; - fP0M = fP0Msource[k00M]; - fM0P = fM0Psource[kM00]; - f0PP = f0PPsource[k000]; - f0MM = f0MMsource[k0MM]; - f0PM = f0PMsource[k00M]; - f0MP = f0MPsource[k0M0]; - f000 = f000source[k000]; - fMMM = fMMMsource[kMMM]; - fMMP = fMMPsource[kMM0]; - fMPP = fMPPsource[kM00]; - fMPM = fMPMsource[kM0M]; - fPPM = fPPMsource[k00M]; - fPPP = fPPPsource[k000]; - fPMP = fPMPsource[k0M0]; - fPMM = fPMMsource[k0MM]; + fP00 = fP00source[k000]; + fM00 = fM00source[kM00]; + f0P0 = f0P0source[k000]; + f0M0 = f0M0source[k0M0]; + f00P = f00Psource[k000]; + f00M = f00Msource[k00M]; + fPP0 = fPP0source[k000]; + fMM0 = fMM0source[kMM0]; + fPM0 = fPM0source[k0M0]; + fMP0 = fMP0source[kM00]; + fP0P = fP0Psource[k000]; + fM0M = fM0Msource[kM0M]; + fP0M = fP0Msource[k00M]; + fM0P = fM0Psource[kM00]; + f0PP = f0PPsource[k000]; + f0MM = f0MMsource[k0MM]; + f0PM = f0PMsource[k00M]; + f0MP = f0MPsource[k0M0]; + f000 = f000source[k000]; + fMMM = fMMMsource[kMMM]; + fMMP = fMMPsource[kMM0]; + fMPP = fMPPsource[kM00]; + fMPM = fMPMsource[kM0M]; + fPPM = fPPMsource[k00M]; + fPPP = fPPPsource[k000]; + fPMP = fPMPsource[k0M0]; + fPMM = fPMMsource[k0MM]; drhoPMP = fP00+fM00+f0P0+f0M0+f00P+f00M+fPP0+fMM0+fPM0+fMP0+fP0P+fM0M+fP0M+fM0P+f0PP+f0MM+f0PM+f0MP+f000+fPPP+fMMP+fPMP+fMPP+fPPM+fMMM+fPMM+fMPM; vx1PMP = (((fPPP-fMMM)+(fPMP-fMPM)+(fPPM-fMMP)+(fPMM-fMPP)) + (((fPP0-fMM0)+(fP0P-fM0M))+((fPM0-fMP0)+(fP0M-fM0P))) + (fP00-fM00))/(c1o1 + drhoPMP); - vx2PMP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoPMP); - vx3PMP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoPMP); + vx2PMP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoPMP); + vx3PMP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoPMP); - kxyFromfcNEQPMP = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoPMP) - ((vx1PMP*vx2PMP))); - kyzFromfcNEQPMP = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoPMP) - ((vx2PMP*vx3PMP))); - kxzFromfcNEQPMP = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoPMP) - ((vx1PMP*vx3PMP))); - kxxMyyFromfcNEQPMP = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoPMP) - ((vx1PMP*vx1PMP - vx2PMP*vx2PMP))); - kxxMzzFromfcNEQPMP = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoPMP) - ((vx1PMP*vx1PMP - vx3PMP*vx3PMP))); - kyyMzzFromfcNEQPMP = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoPMP) - ((vx2PMP*vx2PMP - vx3PMP*vx3PMP))); + kxyFromfcNEQPMP = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoPMP) - ((vx1PMP*vx2PMP))); + kyzFromfcNEQPMP = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoPMP) - ((vx2PMP*vx3PMP))); + kxzFromfcNEQPMP = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoPMP) - ((vx1PMP*vx3PMP))); + kxxMyyFromfcNEQPMP = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoPMP) - ((vx1PMP*vx1PMP - vx2PMP*vx2PMP))); + kxxMzzFromfcNEQPMP = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoPMP) - ((vx1PMP*vx1PMP - vx3PMP*vx3PMP))); + kyyMzzFromfcNEQPMP = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoPMP) - ((vx2PMP*vx2PMP - vx3PMP*vx3PMP))); ////////////////////////////////////////////////////////////////////////// //SEB// @@ -393,45 +393,45 @@ __global__ void scaleFC_comp_D3Q27F3_2018(real* DC, k0M0 = kMM0base; kMM0 = neighborFX[kMM0base]; //////////////////////////////////////////////////////////////////////////////// - fP00 = fP00source[k000]; - fM00 = fM00source[kM00]; - f0P0 = f0P0source[k000]; - f0M0 = f0M0source[k0M0]; - f00P = f00Psource[k000]; - f00M = f00Msource[k00M]; - fPP0 = fPP0source[k000]; - fMM0 = fMM0source[kMM0]; - fPM0 = fPM0source[k0M0]; - fMP0 = fMP0source[kM00]; - fP0P = fP0Psource[k000]; - fM0M = fM0Msource[kM0M]; - fP0M = fP0Msource[k00M]; - fM0P = fM0Psource[kM00]; - f0PP = f0PPsource[k000]; - f0MM = f0MMsource[k0MM]; - f0PM = f0PMsource[k00M]; - f0MP = f0MPsource[k0M0]; - f000 = f000source[k000]; - fMMM = fMMMsource[kMMM]; - fMMP = fMMPsource[kMM0]; - fMPP = fMPPsource[kM00]; - fMPM = fMPMsource[kM0M]; - fPPM = fPPMsource[k00M]; - fPPP = fPPPsource[k000]; - fPMP = fPMPsource[k0M0]; - fPMM = fPMMsource[k0MM]; + fP00 = fP00source[k000]; + fM00 = fM00source[kM00]; + f0P0 = f0P0source[k000]; + f0M0 = f0M0source[k0M0]; + f00P = f00Psource[k000]; + f00M = f00Msource[k00M]; + fPP0 = fPP0source[k000]; + fMM0 = fMM0source[kMM0]; + fPM0 = fPM0source[k0M0]; + fMP0 = fMP0source[kM00]; + fP0P = fP0Psource[k000]; + fM0M = fM0Msource[kM0M]; + fP0M = fP0Msource[k00M]; + fM0P = fM0Psource[kM00]; + f0PP = f0PPsource[k000]; + f0MM = f0MMsource[k0MM]; + f0PM = f0PMsource[k00M]; + f0MP = f0MPsource[k0M0]; + f000 = f000source[k000]; + fMMM = fMMMsource[kMMM]; + fMMP = fMMPsource[kMM0]; + fMPP = fMPPsource[kM00]; + fMPM = fMPMsource[kM0M]; + fPPM = fPPMsource[k00M]; + fPPP = fPPPsource[k000]; + fPMP = fPMPsource[k0M0]; + fPMM = fPMMsource[k0MM]; drhoPMM = fP00+fM00+f0P0+f0M0+f00P+f00M+fPP0+fMM0+fPM0+fMP0+fP0P+fM0M+fP0M+fM0P+f0PP+f0MM+f0PM+f0MP+f000+fPPP+fMMP+fPMP+fMPP+fPPM+fMMM+fPMM+fMPM; vx1PMM = (((fPPP-fMMM)+(fPMP-fMPM)+(fPPM-fMMP)+(fPMM-fMPP)) + (((fPP0-fMM0)+(fP0P-fM0M))+((fPM0-fMP0)+(fP0M-fM0P))) + (fP00-fM00))/(c1o1 + drhoPMM); - vx2PMM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoPMM); - vx3PMM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoPMM); + vx2PMM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoPMM); + vx3PMM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoPMM); - kxyFromfcNEQPMM = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoPMM) - ((vx1PMM*vx2PMM))); - kyzFromfcNEQPMM = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoPMM) - ((vx2PMM*vx3PMM))); - kxzFromfcNEQPMM = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoPMM) - ((vx1PMM*vx3PMM))); - kxxMyyFromfcNEQPMM = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoPMM) - ((vx1PMM*vx1PMM - vx2PMM*vx2PMM))); - kxxMzzFromfcNEQPMM = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoPMM) - ((vx1PMM*vx1PMM - vx3PMM*vx3PMM))); - kyyMzzFromfcNEQPMM = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoPMM) - ((vx2PMM*vx2PMM - vx3PMM*vx3PMM))); + kxyFromfcNEQPMM = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoPMM) - ((vx1PMM*vx2PMM))); + kyzFromfcNEQPMM = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoPMM) - ((vx2PMM*vx3PMM))); + kxzFromfcNEQPMM = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoPMM) - ((vx1PMM*vx3PMM))); + kxxMyyFromfcNEQPMM = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoPMM) - ((vx1PMM*vx1PMM - vx2PMM*vx2PMM))); + kxxMzzFromfcNEQPMM = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoPMM) - ((vx1PMM*vx1PMM - vx3PMM*vx3PMM))); + kyyMzzFromfcNEQPMM = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoPMM) - ((vx2PMM*vx2PMM - vx3PMM*vx3PMM))); ////////////////////////////////////////////////////////////////////////// //NWB// @@ -456,47 +456,47 @@ __global__ void scaleFC_comp_D3Q27F3_2018(real* DC, k0MM = k0MMbase; kMMM = kMMMbase; //////////////////////////////////////////////////////////////////////////////// - fP00 = fP00source[k000]; - fM00 = fM00source[kM00]; - f0P0 = f0P0source[k000]; - f0M0 = f0M0source[k0M0]; - f00P = f00Psource[k000]; - f00M = f00Msource[k00M]; - fPP0 = fPP0source[k000]; - fMM0 = fMM0source[kMM0]; - fPM0 = fPM0source[k0M0]; - fMP0 = fMP0source[kM00]; - fP0P = fP0Psource[k000]; - fM0M = fM0Msource[kM0M]; - fP0M = fP0Msource[k00M]; - fM0P = fM0Psource[kM00]; - f0PP = f0PPsource[k000]; - f0MM = f0MMsource[k0MM]; - f0PM = f0PMsource[k00M]; - f0MP = f0MPsource[k0M0]; - f000 = f000source[k000]; - fMMM = fMMMsource[kMMM]; - fMMP = fMMPsource[kMM0]; - fMPP = fMPPsource[kM00]; - fMPM = fMPMsource[kM0M]; - fPPM = fPPMsource[k00M]; - fPPP = fPPPsource[k000]; - fPMP = fPMPsource[k0M0]; - fPMM = fPMMsource[k0MM]; + fP00 = fP00source[k000]; + fM00 = fM00source[kM00]; + f0P0 = f0P0source[k000]; + f0M0 = f0M0source[k0M0]; + f00P = f00Psource[k000]; + f00M = f00Msource[k00M]; + fPP0 = fPP0source[k000]; + fMM0 = fMM0source[kMM0]; + fPM0 = fPM0source[k0M0]; + fMP0 = fMP0source[kM00]; + fP0P = fP0Psource[k000]; + fM0M = fM0Msource[kM0M]; + fP0M = fP0Msource[k00M]; + fM0P = fM0Psource[kM00]; + f0PP = f0PPsource[k000]; + f0MM = f0MMsource[k0MM]; + f0PM = f0PMsource[k00M]; + f0MP = f0MPsource[k0M0]; + f000 = f000source[k000]; + fMMM = fMMMsource[kMMM]; + fMMP = fMMPsource[kMM0]; + fMPP = fMPPsource[kM00]; + fMPM = fMPMsource[kM0M]; + fPPM = fPPMsource[k00M]; + fPPP = fPPPsource[k000]; + fPMP = fPMPsource[k0M0]; + fPMM = fPMMsource[k0MM]; drhoMPM = fP00+fM00+f0P0+f0M0+f00P+f00M+fPP0+fMM0+fPM0+fMP0+fP0P+fM0M+fP0M+fM0P+f0PP+f0MM+f0PM+f0MP+f000+fPPP+fMMP+fPMP+fMPP+fPPM+fMMM+fPMM+fMPM; vx1MPM = (((fPPP-fMMM)+(fPMP-fMPM)+(fPPM-fMMP)+(fPMM-fMPP)) + (((fPP0-fMM0)+(fP0P-fM0M))+((fPM0-fMP0)+(fP0M-fM0P))) + (fP00-fM00))/(c1o1 + drhoMPM); - vx2MPM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoMPM); - vx3MPM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoMPM); + vx2MPM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoMPM); + vx3MPM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoMPM); - kxyFromfcNEQMPM = -c3o1*omegaS* ((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoMPM) - ((vx1MPM*vx2MPM))); - kyzFromfcNEQMPM = -c3o1*omegaS* ((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoMPM) - ((vx2MPM*vx3MPM))); - kxzFromfcNEQMPM = -c3o1*omegaS* ((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoMPM) - ((vx1MPM*vx3MPM))); - kxxMyyFromfcNEQMPM = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoMPM) - ((vx1MPM*vx1MPM - vx2MPM*vx2MPM))); - kxxMzzFromfcNEQMPM = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoMPM) - ((vx1MPM*vx1MPM - vx3MPM*vx3MPM))); - kyyMzzFromfcNEQMPM = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoMPM) - ((vx2MPM*vx2MPM - vx3MPM*vx3MPM))); + kxyFromfcNEQMPM = -c3o1*omegaS* ((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoMPM) - ((vx1MPM*vx2MPM))); + kyzFromfcNEQMPM = -c3o1*omegaS* ((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoMPM) - ((vx2MPM*vx3MPM))); + kxzFromfcNEQMPM = -c3o1*omegaS* ((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoMPM) - ((vx1MPM*vx3MPM))); + kxxMyyFromfcNEQMPM = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoMPM) - ((vx1MPM*vx1MPM - vx2MPM*vx2MPM))); + kxxMzzFromfcNEQMPM = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoMPM) - ((vx1MPM*vx1MPM - vx3MPM*vx3MPM))); + kyyMzzFromfcNEQMPM = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoMPM) - ((vx2MPM*vx2MPM - vx3MPM*vx3MPM))); - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// //NWT// ////////////////////////////////////////////////////////////////////////// //index @@ -509,45 +509,45 @@ __global__ void scaleFC_comp_D3Q27F3_2018(real* DC, k0MM = neighborFZ[k0MM]; kMMM = neighborFZ[kMMM]; //////////////////////////////////////////////////////////////////////////////// - fP00 = fP00source[k000]; - fM00 = fM00source[kM00]; - f0P0 = f0P0source[k000]; - f0M0 = f0M0source[k0M0]; - f00P = f00Psource[k000]; - f00M = f00Msource[k00M]; - fPP0 = fPP0source[k000]; - fMM0 = fMM0source[kMM0]; - fPM0 = fPM0source[k0M0]; - fMP0 = fMP0source[kM00]; - fP0P = fP0Psource[k000]; - fM0M = fM0Msource[kM0M]; - fP0M = fP0Msource[k00M]; - fM0P = fM0Psource[kM00]; - f0PP = f0PPsource[k000]; - f0MM = f0MMsource[k0MM]; - f0PM = f0PMsource[k00M]; - f0MP = f0MPsource[k0M0]; - f000 = f000source[k000]; - fMMM = fMMMsource[kMMM]; - fMMP = fMMPsource[kMM0]; - fMPP = fMPPsource[kM00]; - fMPM = fMPMsource[kM0M]; - fPPM = fPPMsource[k00M]; - fPPP = fPPPsource[k000]; - fPMP = fPMPsource[k0M0]; - fPMM = fPMMsource[k0MM]; + fP00 = fP00source[k000]; + fM00 = fM00source[kM00]; + f0P0 = f0P0source[k000]; + f0M0 = f0M0source[k0M0]; + f00P = f00Psource[k000]; + f00M = f00Msource[k00M]; + fPP0 = fPP0source[k000]; + fMM0 = fMM0source[kMM0]; + fPM0 = fPM0source[k0M0]; + fMP0 = fMP0source[kM00]; + fP0P = fP0Psource[k000]; + fM0M = fM0Msource[kM0M]; + fP0M = fP0Msource[k00M]; + fM0P = fM0Psource[kM00]; + f0PP = f0PPsource[k000]; + f0MM = f0MMsource[k0MM]; + f0PM = f0PMsource[k00M]; + f0MP = f0MPsource[k0M0]; + f000 = f000source[k000]; + fMMM = fMMMsource[kMMM]; + fMMP = fMMPsource[kMM0]; + fMPP = fMPPsource[kM00]; + fMPM = fMPMsource[kM0M]; + fPPM = fPPMsource[k00M]; + fPPP = fPPPsource[k000]; + fPMP = fPMPsource[k0M0]; + fPMM = fPMMsource[k0MM]; drhoMPP = fP00+fM00+f0P0+f0M0+f00P+f00M+fPP0+fMM0+fPM0+fMP0+fP0P+fM0M+fP0M+fM0P+f0PP+f0MM+f0PM+f0MP+f000+fPPP+fMMP+fPMP+fMPP+fPPM+fMMM+fPMM+fMPM; vx1MPP = (((fPPP-fMMM)+(fPMP-fMPM)+(fPPM-fMMP)+(fPMM-fMPP)) + (((fPP0-fMM0)+(fP0P-fM0M))+((fPM0-fMP0)+(fP0M-fM0P))) + (fP00-fM00))/(c1o1 + drhoMPP); - vx2MPP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoMPP); - vx3MPP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoMPP); + vx2MPP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoMPP); + vx3MPP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoMPP); - kxyFromfcNEQMPP = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoMPP) - ((vx1MPP*vx2MPP))); - kyzFromfcNEQMPP = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoMPP) - ((vx2MPP*vx3MPP))); - kxzFromfcNEQMPP = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoMPP) - ((vx1MPP*vx3MPP))); - kxxMyyFromfcNEQMPP = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoMPP) - ((vx1MPP*vx1MPP - vx2MPP*vx2MPP))); - kxxMzzFromfcNEQMPP = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoMPP) - ((vx1MPP*vx1MPP - vx3MPP*vx3MPP))); - kyyMzzFromfcNEQMPP = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoMPP) - ((vx2MPP*vx2MPP - vx3MPP*vx3MPP))); + kxyFromfcNEQMPP = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoMPP) - ((vx1MPP*vx2MPP))); + kyzFromfcNEQMPP = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoMPP) - ((vx2MPP*vx3MPP))); + kxzFromfcNEQMPP = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoMPP) - ((vx1MPP*vx3MPP))); + kxxMyyFromfcNEQMPP = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoMPP) - ((vx1MPP*vx1MPP - vx2MPP*vx2MPP))); + kxxMzzFromfcNEQMPP = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoMPP) - ((vx1MPP*vx1MPP - vx3MPP*vx3MPP))); + kyyMzzFromfcNEQMPP = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoMPP) - ((vx2MPP*vx2MPP - vx3MPP*vx3MPP))); ////////////////////////////////////////////////////////////////////////// //NET// @@ -562,45 +562,45 @@ __global__ void scaleFC_comp_D3Q27F3_2018(real* DC, k0MM = kMMM; kMMM = neighborFX[kMMM]; //////////////////////////////////////////////////////////////////////////////// - fP00 = fP00source[k000]; - fM00 = fM00source[kM00]; - f0P0 = f0P0source[k000]; - f0M0 = f0M0source[k0M0]; - f00P = f00Psource[k000]; - f00M = f00Msource[k00M]; - fPP0 = fPP0source[k000]; - fMM0 = fMM0source[kMM0]; - fPM0 = fPM0source[k0M0]; - fMP0 = fMP0source[kM00]; - fP0P = fP0Psource[k000]; - fM0M = fM0Msource[kM0M]; - fP0M = fP0Msource[k00M]; - fM0P = fM0Psource[kM00]; - f0PP = f0PPsource[k000]; - f0MM = f0MMsource[k0MM]; - f0PM = f0PMsource[k00M]; - f0MP = f0MPsource[k0M0]; - f000 = f000source[k000]; - fMMM = fMMMsource[kMMM]; - fMMP = fMMPsource[kMM0]; - fMPP = fMPPsource[kM00]; - fMPM = fMPMsource[kM0M]; - fPPM = fPPMsource[k00M]; - fPPP = fPPPsource[k000]; - fPMP = fPMPsource[k0M0]; - fPMM = fPMMsource[k0MM]; + fP00 = fP00source[k000]; + fM00 = fM00source[kM00]; + f0P0 = f0P0source[k000]; + f0M0 = f0M0source[k0M0]; + f00P = f00Psource[k000]; + f00M = f00Msource[k00M]; + fPP0 = fPP0source[k000]; + fMM0 = fMM0source[kMM0]; + fPM0 = fPM0source[k0M0]; + fMP0 = fMP0source[kM00]; + fP0P = fP0Psource[k000]; + fM0M = fM0Msource[kM0M]; + fP0M = fP0Msource[k00M]; + fM0P = fM0Psource[kM00]; + f0PP = f0PPsource[k000]; + f0MM = f0MMsource[k0MM]; + f0PM = f0PMsource[k00M]; + f0MP = f0MPsource[k0M0]; + f000 = f000source[k000]; + fMMM = fMMMsource[kMMM]; + fMMP = fMMPsource[kMM0]; + fMPP = fMPPsource[kM00]; + fMPM = fMPMsource[kM0M]; + fPPM = fPPMsource[k00M]; + fPPP = fPPPsource[k000]; + fPMP = fPMPsource[k0M0]; + fPMM = fPMMsource[k0MM]; drhoPPP = fP00+fM00+f0P0+f0M0+f00P+f00M+fPP0+fMM0+fPM0+fMP0+fP0P+fM0M+fP0M+fM0P+f0PP+f0MM+f0PM+f0MP+f000+fPPP+fMMP+fPMP+fMPP+fPPM+fMMM+fPMM+fMPM; vx1PPP = (((fPPP-fMMM)+(fPMP-fMPM)+(fPPM-fMMP)+(fPMM-fMPP)) + (((fPP0-fMM0)+(fP0P-fM0M))+((fPM0-fMP0)+(fP0M-fM0P))) + (fP00-fM00))/(c1o1 + drhoPPP); - vx2PPP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoPPP); - vx3PPP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoPPP); + vx2PPP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoPPP); + vx3PPP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoPPP); - kxyFromfcNEQPPP = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoPPP) - ((vx1PPP*vx2PPP))); - kyzFromfcNEQPPP = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoPPP) - ((vx2PPP*vx3PPP))); - kxzFromfcNEQPPP = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoPPP) - ((vx1PPP*vx3PPP))); - kxxMyyFromfcNEQPPP = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoPPP) - ((vx1PPP*vx1PPP - vx2PPP*vx2PPP))); - kxxMzzFromfcNEQPPP = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoPPP) - ((vx1PPP*vx1PPP - vx3PPP*vx3PPP))); - kyyMzzFromfcNEQPPP = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoPPP) - ((vx2PPP*vx2PPP - vx3PPP*vx3PPP))); + kxyFromfcNEQPPP = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoPPP) - ((vx1PPP*vx2PPP))); + kyzFromfcNEQPPP = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoPPP) - ((vx2PPP*vx3PPP))); + kxzFromfcNEQPPP = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoPPP) - ((vx1PPP*vx3PPP))); + kxxMyyFromfcNEQPPP = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoPPP) - ((vx1PPP*vx1PPP - vx2PPP*vx2PPP))); + kxxMzzFromfcNEQPPP = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoPPP) - ((vx1PPP*vx1PPP - vx3PPP*vx3PPP))); + kyyMzzFromfcNEQPPP = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoPPP) - ((vx2PPP*vx2PPP - vx3PPP*vx3PPP))); ////////////////////////////////////////////////////////////////////////// //NEB// @@ -615,142 +615,142 @@ __global__ void scaleFC_comp_D3Q27F3_2018(real* DC, k0M0 = kMM0base; kMM0 = neighborFX[kMM0base]; //////////////////////////////////////////////////////////////////////////////// - fP00 = fP00source[k000]; - fM00 = fM00source[kM00]; - f0P0 = f0P0source[k000]; - f0M0 = f0M0source[k0M0]; - f00P = f00Psource[k000]; - f00M = f00Msource[k00M]; - fPP0 = fPP0source[k000]; - fMM0 = fMM0source[kMM0]; - fPM0 = fPM0source[k0M0]; - fMP0 = fMP0source[kM00]; - fP0P = fP0Psource[k000]; - fM0M = fM0Msource[kM0M]; - fP0M = fP0Msource[k00M]; - fM0P = fM0Psource[kM00]; - f0PP = f0PPsource[k000]; - f0MM = f0MMsource[k0MM]; - f0PM = f0PMsource[k00M]; - f0MP = f0MPsource[k0M0]; - f000 = f000source[k000]; - fMMM = fMMMsource[kMMM]; - fMMP = fMMPsource[kMM0]; - fMPP = fMPPsource[kM00]; - fMPM = fMPMsource[kM0M]; - fPPM = fPPMsource[k00M]; - fPPP = fPPPsource[k000]; - fPMP = fPMPsource[k0M0]; - fPMM = fPMMsource[k0MM]; + fP00 = fP00source[k000]; + fM00 = fM00source[kM00]; + f0P0 = f0P0source[k000]; + f0M0 = f0M0source[k0M0]; + f00P = f00Psource[k000]; + f00M = f00Msource[k00M]; + fPP0 = fPP0source[k000]; + fMM0 = fMM0source[kMM0]; + fPM0 = fPM0source[k0M0]; + fMP0 = fMP0source[kM00]; + fP0P = fP0Psource[k000]; + fM0M = fM0Msource[kM0M]; + fP0M = fP0Msource[k00M]; + fM0P = fM0Psource[kM00]; + f0PP = f0PPsource[k000]; + f0MM = f0MMsource[k0MM]; + f0PM = f0PMsource[k00M]; + f0MP = f0MPsource[k0M0]; + f000 = f000source[k000]; + fMMM = fMMMsource[kMMM]; + fMMP = fMMPsource[kMM0]; + fMPP = fMPPsource[kM00]; + fMPM = fMPMsource[kM0M]; + fPPM = fPPMsource[k00M]; + fPPP = fPPPsource[k000]; + fPMP = fPMPsource[k0M0]; + fPMM = fPMMsource[k0MM]; drhoPPM = fP00+fM00+f0P0+f0M0+f00P+f00M+fPP0+fMM0+fPM0+fMP0+fP0P+fM0M+fP0M+fM0P+f0PP+f0MM+f0PM+f0MP+f000+fPPP+fMMP+fPMP+fMPP+fPPM+fMMM+fPMM+fMPM; vx1PPM = (((fPPP-fMMM)+(fPMP-fMPM)+(fPPM-fMMP)+(fPMM-fMPP)) + (((fPP0-fMM0)+(fP0P-fM0M))+((fPM0-fMP0)+(fP0M-fM0P))) + (fP00-fM00))/(c1o1 + drhoPPM); - vx2PPM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoPPM); - vx3PPM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoPPM); + vx2PPM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoPPM); + vx3PPM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoPPM); - kxyFromfcNEQPPM = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoPPM) - ((vx1PPM*vx2PPM))); - kyzFromfcNEQPPM = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoPPM) - ((vx2PPM*vx3PPM))); - kxzFromfcNEQPPM = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoPPM) - ((vx1PPM*vx3PPM))); - kxxMyyFromfcNEQPPM = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoPPM) - ((vx1PPM*vx1PPM - vx2PPM*vx2PPM))); - kxxMzzFromfcNEQPPM = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoPPM) - ((vx1PPM*vx1PPM - vx3PPM*vx3PPM))); - kyyMzzFromfcNEQPPM = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoPPM) - ((vx2PPM*vx2PPM - vx3PPM*vx3PPM))); + kxyFromfcNEQPPM = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoPPM) - ((vx1PPM*vx2PPM))); + kyzFromfcNEQPPM = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoPPM) - ((vx2PPM*vx3PPM))); + kxzFromfcNEQPPM = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoPPM) - ((vx1PPM*vx3PPM))); + kxxMyyFromfcNEQPPM = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoPPM) - ((vx1PPM*vx1PPM - vx2PPM*vx2PPM))); + kxxMzzFromfcNEQPPM = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoPPM) - ((vx1PPM*vx1PPM - vx3PPM*vx3PPM))); + kyyMzzFromfcNEQPPM = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoPPM) - ((vx2PPM*vx2PPM - vx3PPM*vx3PPM))); ////////////////////////////////////////////////////////////////////////// //3 ////////////////////////////////////////////////////////////////////////// - a0 = c1o8*(((vx1PPM + vx1MMP) + (vx1MPM + vx1PMP)) + ((vx1PMM + vx1MPP) + (vx1MMM + vx1PPP))); - ax = c1o4*(((vx1PPM - vx1MMP) + (vx1PPP - vx1MMM)) + ((vx1PMP - vx1MPM) + (vx1PMM - vx1MPP))); - ay = c1o4*(((vx1PPM - vx1MMP) + (vx1PPP - vx1MMM)) + ((vx1MPM - vx1PMP) + (vx1MPP - vx1PMM))); - az = c1o4*(((vx1MMP - vx1PPM) + (vx1PPP - vx1MMM)) + ((vx1PMP - vx1MPM) + (vx1MPP - vx1PMM))); - axy = c1o2*(((vx1PPM - vx1PMP) + (vx1MMM - vx1MPP)) + ((vx1MMP - vx1MPM) + (vx1PPP - vx1PMM))); - axz = c1o2*(((vx1PMP - vx1PPM) + (vx1MMM - vx1MPP)) + ((vx1MPM - vx1MMP) + (vx1PPP - vx1PMM))); - ayz = c1o2*(((vx1PPP - vx1MPM) + (vx1PMM - vx1MMP)) + ((vx1MPP - vx1PPM) + (vx1MMM - vx1PMP))); - //axyz= ((vx1MMP - vx1PPM) + (vx1PPP - vx1MMM)) + ((vx1MPM - vx1PMP) + (vx1PMM - vx1MPP)) ; - b0 = c1o8*(((vx2PPM + vx2MMP) + (vx2MPM + vx2PMP)) + ((vx2PMM + vx2MPP) + (vx2MMM + vx2PPP))); - bx = c1o4*(((vx2PPM - vx2MMP) + (vx2PPP - vx2MMM)) + ((vx2PMP - vx2MPM) + (vx2PMM - vx2MPP))); - by = c1o4*(((vx2PPM - vx2MMP) + (vx2PPP - vx2MMM)) + ((vx2MPM - vx2PMP) + (vx2MPP - vx2PMM))); - bz = c1o4*(((vx2MMP - vx2PPM) + (vx2PPP - vx2MMM)) + ((vx2PMP - vx2MPM) + (vx2MPP - vx2PMM))); - bxy = c1o2*(((vx2PPM - vx2MPP) + (vx2MMM - vx2PMP)) + ((vx2MMP - vx2PMM) + (vx2PPP - vx2MPM))); - bxz = c1o2*(((vx2MMM - vx2PPM) + (vx2PMP - vx2MPP)) + ((vx2MPM - vx2PMM) + (vx2PPP - vx2MMP))); - byz = c1o2*(((vx2MPP - vx2PPM) + (vx2MMM - vx2PMP)) + ((vx2PMM - vx2MMP) + (vx2PPP - vx2MPM))); - //bxyz= ((vx2MMP - vx2PPM) + (vx2PPP - vx2MMM)) + ((vx2MPM - vx2PMP) + (vx2PMM - vx2MPP)) ; - c0 = c1o8*(((vx3PPM + vx3MMP) + (vx3MPM + vx3PMP)) + ((vx3PMM + vx3MPP) + (vx3MMM + vx3PPP))); - cx = c1o4*(((vx3PPM - vx3MMP) + (vx3PPP - vx3MMM)) + ((vx3PMP - vx3MPM) + (vx3PMM - vx3MPP))); - cy = c1o4*(((vx3PPM - vx3MMP) + (vx3PPP - vx3MMM)) + ((vx3MPM - vx3PMP) + (vx3MPP - vx3PMM))); - cz = c1o4*(((vx3MMP - vx3PPM) + (vx3PPP - vx3MMM)) + ((vx3PMP - vx3MPM) + (vx3MPP - vx3PMM))); - cxy = c1o2*(((vx3PPM - vx3PMP) + (vx3MMM - vx3MPP)) + ((vx3MMP - vx3MPM) + (vx3PPP - vx3PMM))); - cxz = c1o2*(((vx3MMM - vx3PPM) + (vx3PMP - vx3MPP)) + ((vx3MPM - vx3PMM) + (vx3PPP - vx3MMP))); - cyz = c1o2*(((vx3MMM - vx3PPM) + (vx3MPP - vx3PMP)) + ((vx3PMM - vx3MPM) + (vx3PPP - vx3MMP))); - //cxyz= ((vx3MMP - vx3PPM) + (vx3PPP - vx3MMM)) + ((vx3MPM - vx3PMP) + (vx3PMM - vx3MPP)) ; - - //bxx = zero; - //cxx = zero; - //ayy = zero; - //cyy = zero; - //azz = zero; - //bzz = zero; - //axx = zero; - //byy = zero; - //czz = zero; - - bxx = c1o8*(((kxyFromfcNEQPPP - kxyFromfcNEQMMM) + (kxyFromfcNEQPMM - kxyFromfcNEQMPP)) + ((kxyFromfcNEQPMP - kxyFromfcNEQMPM) + (kxyFromfcNEQPPM - kxyFromfcNEQMMP))) - c1o2*axy; - cxx = c1o8*(((kxzFromfcNEQPPP - kxzFromfcNEQMMM) + (kxzFromfcNEQPMM - kxzFromfcNEQMPP)) + ((kxzFromfcNEQPMP - kxzFromfcNEQMPM) + (kxzFromfcNEQPPM - kxzFromfcNEQMMP))) - c1o2*axz; - - ayy = c1o8*(((kxyFromfcNEQPPP - kxyFromfcNEQMMM) + (kxyFromfcNEQPPM - kxyFromfcNEQMMP)) - ((kxyFromfcNEQPMM - kxyFromfcNEQMPP) + (kxyFromfcNEQPMP - kxyFromfcNEQMPM))) - c1o2*bxy; - cyy = c1o8*(((kyzFromfcNEQPPP - kyzFromfcNEQMMM) + (kyzFromfcNEQPPM - kyzFromfcNEQMMP)) - ((kyzFromfcNEQPMM - kyzFromfcNEQMPP) + (kyzFromfcNEQPMP - kyzFromfcNEQMPM))) - c1o2*byz; - - azz = c1o8*(((kxzFromfcNEQPPP - kxzFromfcNEQMMM) - (kxzFromfcNEQPMM - kxzFromfcNEQMPP)) + ((kxzFromfcNEQPMP - kxzFromfcNEQMPM) - (kxzFromfcNEQPPM - kxzFromfcNEQMMP))) - c1o2*cxz; - bzz = c1o8*(((kyzFromfcNEQPPP - kyzFromfcNEQMMM) - (kyzFromfcNEQPMM - kyzFromfcNEQMPP)) + ((kyzFromfcNEQPMP - kyzFromfcNEQMPM) - (kyzFromfcNEQPPM - kyzFromfcNEQMMP))) - c1o2*cyz; - - axx = ( c1o16*(((kxxMyyFromfcNEQPPP - kxxMyyFromfcNEQMMM) + (kxxMyyFromfcNEQPMM - kxxMyyFromfcNEQMPP)) + ((kxxMyyFromfcNEQPMP - kxxMyyFromfcNEQMPM) + (kxxMyyFromfcNEQPPM - kxxMyyFromfcNEQMMP))) - c1o4*bxy) - + ( c1o16*(((kxxMzzFromfcNEQPPP - kxxMzzFromfcNEQMMM) + (kxxMzzFromfcNEQPMM - kxxMzzFromfcNEQMPP)) + ((kxxMzzFromfcNEQPMP - kxxMzzFromfcNEQMPM) + (kxxMzzFromfcNEQPPM - kxxMzzFromfcNEQMMP))) - c1o4*cxz); - - byy = (-c1o16*(((kxxMyyFromfcNEQPPP - kxxMyyFromfcNEQMMM) - (kxxMyyFromfcNEQPMM - kxxMyyFromfcNEQMPP)) + ((kxxMyyFromfcNEQPPM - kxxMyyFromfcNEQMMP) - (kxxMyyFromfcNEQPMP - kxxMyyFromfcNEQMPM))) - c1o4*axy) - + ( c1o16*(((kyyMzzFromfcNEQPPP - kyyMzzFromfcNEQMMM) - (kyyMzzFromfcNEQPMM - kyyMzzFromfcNEQMPP)) + ((kyyMzzFromfcNEQPPM - kyyMzzFromfcNEQMMP) - (kyyMzzFromfcNEQPMP - kyyMzzFromfcNEQMPM))) - c1o4*cyz); - - czz = (-c1o16*(((kxxMzzFromfcNEQPPP - kxxMzzFromfcNEQMMM) - (kxxMzzFromfcNEQPMM - kxxMzzFromfcNEQMPP)) - ((kxxMzzFromfcNEQPPM - kxxMzzFromfcNEQMMP) - (kxxMzzFromfcNEQPMP - kxxMzzFromfcNEQMPM))) - c1o4*axz) - + ( c1o16*(((kyyMzzFromfcNEQPPP - kyyMzzFromfcNEQMMM) - (kyyMzzFromfcNEQPMM - kyyMzzFromfcNEQMPP)) - ((kyyMzzFromfcNEQPPM - kyyMzzFromfcNEQMMP) - (kyyMzzFromfcNEQPMP - kyyMzzFromfcNEQMPM))) - c1o4*byz); - - a0 -= c1o4*(axx + ayy + azz); - b0 -= c1o4*(bxx + byy + bzz); - c0 -= c1o4*(cxx + cyy + czz); - - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real kxyAverage = c0; - real kyzAverage = c0; - real kxzAverage = c0; - real kxxMyyAverage = c0; - real kxxMzzAverage = c0; - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - ////Press - //d0 = ( pressPPM + pressPPP + pressMPM + pressMPP + pressPMM + pressPMP + pressMMM + pressMMP) * c1o8; - //dx = ( pressPPM + pressPPP - pressMPM - pressMPP + pressPMM + pressPMP - pressMMM - pressMMP) * c1o4; - //dy = ( pressPPM + pressPPP + pressMPM + pressMPP - pressPMM - pressPMP - pressMMM - pressMMP) * c1o4; - //dz = (-pressPPM + pressPPP - pressMPM + pressMPP - pressPMM + pressPMP - pressMMM + pressMMP) * c1o4; - //dxy = ( pressPPM + pressPPP - pressMPM - pressMPP - pressPMM - pressPMP + pressMMM + pressMMP) * c1o2; - //dxz = (-pressPPM + pressPPP + pressMPM - pressMPP - pressPMM + pressPMP + pressMMM - pressMMP) * c1o2; - //dyz = (-pressPPM + pressPPP - pressMPM + pressMPP + pressPMM - pressPMP + pressMMM - pressMMP) * c1o2; - //dxyz = -pressPPM + pressPPP + pressMPM - pressMPP + pressPMM - pressPMP - pressMMM + pressMMP; - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho - d0 = ( ((drhoPPM + drhoMMP) + (drhoMPM + drhoPMP)) + ((drhoPMM + drhoMPP) + (drhoMMM + drhoPPP))) * c1o8; - dx = ( ((drhoPPM - drhoMMP) + (drhoPMM - drhoMPP)) + ((drhoPMP - drhoMPM) + (drhoPPP - drhoMMM))) * c1o4; - dy = ( ((drhoPPM - drhoMMP) + (drhoMPP - drhoPMM)) + ((drhoMPM - drhoPMP) + (drhoPPP - drhoMMM))) * c1o4; - dz = ( ((drhoMMP - drhoPPM) + (drhoPPP - drhoMMM)) + ((drhoPMP - drhoMPM) + (drhoMPP - drhoPMM))) * c1o4; - dxy = ( ((drhoPPM - drhoPMP) + (drhoPPP - drhoPMM)) + ((drhoMMP - drhoMPM) + (drhoMMM - drhoMPP))) * c1o2; - dxz = ( ((drhoMMM - drhoPPM) + (drhoPPP - drhoMMP)) + ((drhoMPM - drhoPMM) + (drhoPMP - drhoMPP))) * c1o2; - dyz = ( ((drhoMPP - drhoPPM) + (drhoPPP - drhoMPM)) + ((drhoPMM - drhoMMP) + (drhoMMM - drhoPMP))) * c1o2; + a0 = c1o8*(((vx1PPM + vx1MMP) + (vx1MPM + vx1PMP)) + ((vx1PMM + vx1MPP) + (vx1MMM + vx1PPP))); + ax = c1o4*(((vx1PPM - vx1MMP) + (vx1PPP - vx1MMM)) + ((vx1PMP - vx1MPM) + (vx1PMM - vx1MPP))); + ay = c1o4*(((vx1PPM - vx1MMP) + (vx1PPP - vx1MMM)) + ((vx1MPM - vx1PMP) + (vx1MPP - vx1PMM))); + az = c1o4*(((vx1MMP - vx1PPM) + (vx1PPP - vx1MMM)) + ((vx1PMP - vx1MPM) + (vx1MPP - vx1PMM))); + axy = c1o2*(((vx1PPM - vx1PMP) + (vx1MMM - vx1MPP)) + ((vx1MMP - vx1MPM) + (vx1PPP - vx1PMM))); + axz = c1o2*(((vx1PMP - vx1PPM) + (vx1MMM - vx1MPP)) + ((vx1MPM - vx1MMP) + (vx1PPP - vx1PMM))); + ayz = c1o2*(((vx1PPP - vx1MPM) + (vx1PMM - vx1MMP)) + ((vx1MPP - vx1PPM) + (vx1MMM - vx1PMP))); + //axyz= ((vx1MMP - vx1PPM) + (vx1PPP - vx1MMM)) + ((vx1MPM - vx1PMP) + (vx1PMM - vx1MPP)) ; + b0 = c1o8*(((vx2PPM + vx2MMP) + (vx2MPM + vx2PMP)) + ((vx2PMM + vx2MPP) + (vx2MMM + vx2PPP))); + bx = c1o4*(((vx2PPM - vx2MMP) + (vx2PPP - vx2MMM)) + ((vx2PMP - vx2MPM) + (vx2PMM - vx2MPP))); + by = c1o4*(((vx2PPM - vx2MMP) + (vx2PPP - vx2MMM)) + ((vx2MPM - vx2PMP) + (vx2MPP - vx2PMM))); + bz = c1o4*(((vx2MMP - vx2PPM) + (vx2PPP - vx2MMM)) + ((vx2PMP - vx2MPM) + (vx2MPP - vx2PMM))); + bxy = c1o2*(((vx2PPM - vx2MPP) + (vx2MMM - vx2PMP)) + ((vx2MMP - vx2PMM) + (vx2PPP - vx2MPM))); + bxz = c1o2*(((vx2MMM - vx2PPM) + (vx2PMP - vx2MPP)) + ((vx2MPM - vx2PMM) + (vx2PPP - vx2MMP))); + byz = c1o2*(((vx2MPP - vx2PPM) + (vx2MMM - vx2PMP)) + ((vx2PMM - vx2MMP) + (vx2PPP - vx2MPM))); + //bxyz= ((vx2MMP - vx2PPM) + (vx2PPP - vx2MMM)) + ((vx2MPM - vx2PMP) + (vx2PMM - vx2MPP)) ; + c0 = c1o8*(((vx3PPM + vx3MMP) + (vx3MPM + vx3PMP)) + ((vx3PMM + vx3MPP) + (vx3MMM + vx3PPP))); + cx = c1o4*(((vx3PPM - vx3MMP) + (vx3PPP - vx3MMM)) + ((vx3PMP - vx3MPM) + (vx3PMM - vx3MPP))); + cy = c1o4*(((vx3PPM - vx3MMP) + (vx3PPP - vx3MMM)) + ((vx3MPM - vx3PMP) + (vx3MPP - vx3PMM))); + cz = c1o4*(((vx3MMP - vx3PPM) + (vx3PPP - vx3MMM)) + ((vx3PMP - vx3MPM) + (vx3MPP - vx3PMM))); + cxy = c1o2*(((vx3PPM - vx3PMP) + (vx3MMM - vx3MPP)) + ((vx3MMP - vx3MPM) + (vx3PPP - vx3PMM))); + cxz = c1o2*(((vx3MMM - vx3PPM) + (vx3PMP - vx3MPP)) + ((vx3MPM - vx3PMM) + (vx3PPP - vx3MMP))); + cyz = c1o2*(((vx3MMM - vx3PPM) + (vx3MPP - vx3PMP)) + ((vx3PMM - vx3MPM) + (vx3PPP - vx3MMP))); + //cxyz= ((vx3MMP - vx3PPM) + (vx3PPP - vx3MMM)) + ((vx3MPM - vx3PMP) + (vx3PMM - vx3MPP)) ; + + //bxx = zero; + //cxx = zero; + //ayy = zero; + //cyy = zero; + //azz = zero; + //bzz = zero; + //axx = zero; + //byy = zero; + //czz = zero; + + bxx = c1o8*(((kxyFromfcNEQPPP - kxyFromfcNEQMMM) + (kxyFromfcNEQPMM - kxyFromfcNEQMPP)) + ((kxyFromfcNEQPMP - kxyFromfcNEQMPM) + (kxyFromfcNEQPPM - kxyFromfcNEQMMP))) - c1o2*axy; + cxx = c1o8*(((kxzFromfcNEQPPP - kxzFromfcNEQMMM) + (kxzFromfcNEQPMM - kxzFromfcNEQMPP)) + ((kxzFromfcNEQPMP - kxzFromfcNEQMPM) + (kxzFromfcNEQPPM - kxzFromfcNEQMMP))) - c1o2*axz; + + ayy = c1o8*(((kxyFromfcNEQPPP - kxyFromfcNEQMMM) + (kxyFromfcNEQPPM - kxyFromfcNEQMMP)) - ((kxyFromfcNEQPMM - kxyFromfcNEQMPP) + (kxyFromfcNEQPMP - kxyFromfcNEQMPM))) - c1o2*bxy; + cyy = c1o8*(((kyzFromfcNEQPPP - kyzFromfcNEQMMM) + (kyzFromfcNEQPPM - kyzFromfcNEQMMP)) - ((kyzFromfcNEQPMM - kyzFromfcNEQMPP) + (kyzFromfcNEQPMP - kyzFromfcNEQMPM))) - c1o2*byz; + + azz = c1o8*(((kxzFromfcNEQPPP - kxzFromfcNEQMMM) - (kxzFromfcNEQPMM - kxzFromfcNEQMPP)) + ((kxzFromfcNEQPMP - kxzFromfcNEQMPM) - (kxzFromfcNEQPPM - kxzFromfcNEQMMP))) - c1o2*cxz; + bzz = c1o8*(((kyzFromfcNEQPPP - kyzFromfcNEQMMM) - (kyzFromfcNEQPMM - kyzFromfcNEQMPP)) + ((kyzFromfcNEQPMP - kyzFromfcNEQMPM) - (kyzFromfcNEQPPM - kyzFromfcNEQMMP))) - c1o2*cyz; + + axx = ( c1o16*(((kxxMyyFromfcNEQPPP - kxxMyyFromfcNEQMMM) + (kxxMyyFromfcNEQPMM - kxxMyyFromfcNEQMPP)) + ((kxxMyyFromfcNEQPMP - kxxMyyFromfcNEQMPM) + (kxxMyyFromfcNEQPPM - kxxMyyFromfcNEQMMP))) - c1o4*bxy) + + ( c1o16*(((kxxMzzFromfcNEQPPP - kxxMzzFromfcNEQMMM) + (kxxMzzFromfcNEQPMM - kxxMzzFromfcNEQMPP)) + ((kxxMzzFromfcNEQPMP - kxxMzzFromfcNEQMPM) + (kxxMzzFromfcNEQPPM - kxxMzzFromfcNEQMMP))) - c1o4*cxz); + + byy = (-c1o16*(((kxxMyyFromfcNEQPPP - kxxMyyFromfcNEQMMM) - (kxxMyyFromfcNEQPMM - kxxMyyFromfcNEQMPP)) + ((kxxMyyFromfcNEQPPM - kxxMyyFromfcNEQMMP) - (kxxMyyFromfcNEQPMP - kxxMyyFromfcNEQMPM))) - c1o4*axy) + + ( c1o16*(((kyyMzzFromfcNEQPPP - kyyMzzFromfcNEQMMM) - (kyyMzzFromfcNEQPMM - kyyMzzFromfcNEQMPP)) + ((kyyMzzFromfcNEQPPM - kyyMzzFromfcNEQMMP) - (kyyMzzFromfcNEQPMP - kyyMzzFromfcNEQMPM))) - c1o4*cyz); + + czz = (-c1o16*(((kxxMzzFromfcNEQPPP - kxxMzzFromfcNEQMMM) - (kxxMzzFromfcNEQPMM - kxxMzzFromfcNEQMPP)) - ((kxxMzzFromfcNEQPPM - kxxMzzFromfcNEQMMP) - (kxxMzzFromfcNEQPMP - kxxMzzFromfcNEQMPM))) - c1o4*axz) + + ( c1o16*(((kyyMzzFromfcNEQPPP - kyyMzzFromfcNEQMMM) - (kyyMzzFromfcNEQPMM - kyyMzzFromfcNEQMPP)) - ((kyyMzzFromfcNEQPPM - kyyMzzFromfcNEQMMP) - (kyyMzzFromfcNEQPMP - kyyMzzFromfcNEQMPM))) - c1o4*byz); + + a0 -= c1o4*(axx + ayy + azz); + b0 -= c1o4*(bxx + byy + bzz); + c0 -= c1o4*(cxx + cyy + czz); + + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + real kxyAverage = c0; + real kyzAverage = c0; + real kxzAverage = c0; + real kxxMyyAverage = c0; + real kxxMzzAverage = c0; + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + ////Press + //d0 = ( pressPPM + pressPPP + pressMPM + pressMPP + pressPMM + pressPMP + pressMMM + pressMMP) * c1o8; + //dx = ( pressPPM + pressPPP - pressMPM - pressMPP + pressPMM + pressPMP - pressMMM - pressMMP) * c1o4; + //dy = ( pressPPM + pressPPP + pressMPM + pressMPP - pressPMM - pressPMP - pressMMM - pressMMP) * c1o4; + //dz = (-pressPPM + pressPPP - pressMPM + pressMPP - pressPMM + pressPMP - pressMMM + pressMMP) * c1o4; + //dxy = ( pressPPM + pressPPP - pressMPM - pressMPP - pressPMM - pressPMP + pressMMM + pressMMP) * c1o2; + //dxz = (-pressPPM + pressPPP + pressMPM - pressMPP - pressPMM + pressPMP + pressMMM - pressMMP) * c1o2; + //dyz = (-pressPPM + pressPPP - pressMPM + pressMPP + pressPMM - pressPMP + pressMMM - pressMMP) * c1o2; + //dxyz = -pressPPM + pressPPP + pressMPM - pressMPP + pressPMM - pressPMP - pressMMM + pressMMP; + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho + d0 = ( ((drhoPPM + drhoMMP) + (drhoMPM + drhoPMP)) + ((drhoPMM + drhoMPP) + (drhoMMM + drhoPPP))) * c1o8; + dx = ( ((drhoPPM - drhoMMP) + (drhoPMM - drhoMPP)) + ((drhoPMP - drhoMPM) + (drhoPPP - drhoMMM))) * c1o4; + dy = ( ((drhoPPM - drhoMMP) + (drhoMPP - drhoPMM)) + ((drhoMPM - drhoPMP) + (drhoPPP - drhoMMM))) * c1o4; + dz = ( ((drhoMMP - drhoPPM) + (drhoPPP - drhoMMM)) + ((drhoPMP - drhoMPM) + (drhoMPP - drhoPMM))) * c1o4; + dxy = ( ((drhoPPM - drhoPMP) + (drhoPPP - drhoPMM)) + ((drhoMMP - drhoMPM) + (drhoMMM - drhoMPP))) * c1o2; + dxz = ( ((drhoMMM - drhoPPM) + (drhoPPP - drhoMMP)) + ((drhoMPM - drhoPMM) + (drhoPMP - drhoMPP))) * c1o2; + dyz = ( ((drhoMPP - drhoPPM) + (drhoPPP - drhoMPM)) + ((drhoPMM - drhoMMP) + (drhoMMM - drhoPMP))) * c1o2; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // // Bernd das Brot - // // - // x------x - // | | - // | ---+--->X - // | | \ - // x------x \ - // off-vector + // + // x------x + // | | + // | ---+--->X + // | | \ + // x------x \ + // off-vector //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// a0 = a0 + xoff * ax + yoff * ay + zoff * az + xoff_sq * axx + yoff_sq * ayy + zoff_sq * azz + xoff*yoff*axy + xoff*zoff*axz + yoff*zoff*ayz; ax = ax + c2o1 * xoff * axx + yoff * axy + zoff * axz; @@ -764,445 +764,445 @@ __global__ void scaleFC_comp_D3Q27F3_2018(real* DC, cx = cx + c2o1 * xoff * cxx + yoff * cxy + zoff * cxz; cy = cy + c2o1 * yoff * cyy + xoff * cxy + zoff * cyz; cz = cz + c2o1 * zoff * czz + xoff * cxz + yoff * cyz; - d0 = d0 + xoff * dx + yoff * dy + zoff * dz + xoff*yoff*dxy + xoff*zoff*dxz + yoff*zoff*dyz; + d0 = d0 + xoff * dx + yoff * dy + zoff * dz + xoff*yoff*dxy + xoff*zoff*dxz + yoff*zoff*dyz; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + real mfcbb = c0; + real mfabb = c0; + real mfbcb = c0; + real mfbab = c0; + real mfbbc = c0; + real mfbba = c0; + real mfccb = c0; + real mfaab = c0; + real mfcab = c0; + real mfacb = c0; + real mfcbc = c0; + real mfaba = c0; + real mfcba = c0; + real mfabc = c0; + real mfbcc = c0; + real mfbaa = c0; + real mfbca = c0; + real mfbac = c0; + real mfbbb = c0; + real mfccc = c0; + real mfaac = c0; + real mfcac = c0; + real mfacc = c0; + real mfcca = c0; + real mfaaa = c0; + real mfcaa = c0; + real mfaca = c0; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real mfcbb = c0; - real mfabb = c0; - real mfbcb = c0; - real mfbab = c0; - real mfbbc = c0; - real mfbba = c0; - real mfccb = c0; - real mfaab = c0; - real mfcab = c0; - real mfacb = c0; - real mfcbc = c0; - real mfaba = c0; - real mfcba = c0; - real mfabc = c0; - real mfbcc = c0; - real mfbaa = c0; - real mfbca = c0; - real mfbac = c0; - real mfbbb = c0; - real mfccc = c0; - real mfaac = c0; - real mfcac = c0; - real mfacc = c0; - real mfcca = c0; - real mfaaa = c0; - real mfcaa = c0; - real mfaca = c0; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real mgcbb = c0; - real mgabb = c0; - real mgbcb = c0; - real mgbab = c0; - real mgbbc = c0; - real mgbba = c0; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real m0, m1, m2, oMdrho; - real mxxPyyPzz, mxxMyy, mxxMzz, mxxyPyzz, mxxyMyzz, mxxzPyyz, mxxzMyyz, mxyyPxzz, mxyyMxzz; - //real qudricLimit = c1o100;//ganz schlechte Idee -> muss global sein - //real O3 = c2o1 - o; - //real residu, residutmp; - //residutmp = c0;///*-*/ c2o9 * (1./o - c1o2) * eps_new * eps_new; - real NeqOn = c1o1;//zero;//one; //.... one = on ..... zero = off - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position C 0., 0., 0. - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //x = 0.; - //y = 0.; - //z = 0.; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //real mxoff = -xoff; - //real myoff = -yoff; - //real mzoff = -zoff; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //press = pressPPP * (c1o8 - c1o4 * mxoff - c1o4 * myoff - c1o4 * mzoff) + - // pressMPP * (c1o8 + c1o4 * mxoff - c1o4 * myoff - c1o4 * mzoff) + - // pressPMP * (c1o8 - c1o4 * mxoff + c1o4 * myoff - c1o4 * mzoff) + - // pressMMP * (c1o8 + c1o4 * mxoff + c1o4 * myoff - c1o4 * mzoff) + - // pressPPM * (c1o8 - c1o4 * mxoff - c1o4 * myoff + c1o4 * mzoff) + - // pressMPM * (c1o8 + c1o4 * mxoff - c1o4 * myoff + c1o4 * mzoff) + - // pressPMM * (c1o8 - c1o4 * mxoff + c1o4 * myoff + c1o4 * mzoff) + - // pressMMM * (c1o8 + c1o4 * mxoff + c1o4 * myoff + c1o4 * mzoff); - //drho = drhoPPP * (c1o8 - c1o4 * xoff - c1o4 * yoff - c1o4 * zoff) + - // drhoMPP * (c1o8 + c1o4 * xoff - c1o4 * yoff - c1o4 * zoff) + - // drhoPMP * (c1o8 - c1o4 * xoff + c1o4 * yoff - c1o4 * zoff) + - // drhoMMP * (c1o8 + c1o4 * xoff + c1o4 * yoff - c1o4 * zoff) + - // drhoPPM * (c1o8 - c1o4 * xoff - c1o4 * yoff + c1o4 * zoff) + - // drhoMPM * (c1o8 + c1o4 * xoff - c1o4 * yoff + c1o4 * zoff) + - // drhoPMM * (c1o8 - c1o4 * xoff + c1o4 * yoff + c1o4 * zoff) + - // drhoMMM * (c1o8 + c1o4 * xoff + c1o4 * yoff + c1o4 * zoff); - press = d0; - vvx = a0; - vvy = b0; - vvz = c0; - - //mfaaa = drho; - //mfaaa = press + (ax+by+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //two - // linear combinations - real oP = o;// :( - mxxPyyPzz = mfaaa -c2o3*(ax+by+cz)*eps_new/oP*(c1o1+press); - //mxxMyy = -c2o3*(ax - by)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy)*eps_new/o; - //mfbab = -c1o3 * (az + cx)*eps_new/o; - //mfbba = -c1o3 * (ay + bx)*eps_new/o; - mxxMyy = -c2o3*((ax - by)+kxxMyyAverage)*eps_new/o * (c1o1 + press); - mxxMzz = -c2o3*((ax - cz)+kxxMzzAverage)*eps_new/o * (c1o1 + press); - - mfabb = -c1o3 * ((bz + cy)+kyzAverage)*eps_new/o * (c1o1 + press); - mfbab = -c1o3 * ((az + cx)+kxzAverage)*eps_new/o * (c1o1 + press); - mfbba = -c1o3 * ((ay + bx)+kxyAverage)*eps_new/o * (c1o1 + press); - - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //3. - // linear combinations - //residu = residutmp * (ayz + bxz + cxy ); - //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mfbbb = c0; - - //residu = residutmp * (axy + two*bxx + two*bzz + cyz ); - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz )); - //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyPyzz = c0; - - //residu = residutmp * (axy + two*bxx - two*bzz - cyz ); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz ); - //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyMyzz = c0; - - //residu = residutmp * (axz + byz + two*cxx + two*cyy ); - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy )); - //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzPyyz = c0; - - //residu = residutmp * (axz - byz + two*cxx - two*cyy ); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy ); - //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzMyyz = c0; - - //residu = residutmp * (two*ayy + two*azz + bxy + cxz ); - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz ); - //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyPxzz = c0; - - //residu = residutmp * (two*ayy - two*azz + bxy - cxz ); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz ); - //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyMxzz = c0; - - //////////////////////////////////////////////////////////////////////////////////// - // D3Q27F - mgcbb = (vvx * axx + ax * ax) * (eps_new * eps_new) * (c1o1 + press); - mgabb = -(vvx * axx + ax * ax) * (eps_new * eps_new) * (c1o1 + press); - mgbcb = (vvy * byy + by * by) * (eps_new * eps_new) * (c1o1 + press); - mgbab = -(vvy * byy + by * by) * (eps_new * eps_new) * (c1o1 + press); - mgbbc = (vvz * czz + cz * cz) * (eps_new * eps_new) * (c1o1 + press); - mgbba = -(vvz * czz + cz * cz) * (eps_new * eps_new) * (c1o1 + press); - //mgcbb = zero; - //mgabb = zero; - //mgbcb = zero; - //mgbab = zero; - //mgbbc = zero; - //mgbba = zero; - //////////////////////////////////////////////////////////////////////////////////// - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4. - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - //index 0 - k000 = posC[k]; - kM00 = neighborCX[k000]; - k0M0 = neighborCY[k000]; - k00M = neighborCZ[k000]; - kMM0 = neighborCY[kM00]; - kM0M = neighborCZ[kM00]; - k0MM = neighborCZ[k0M0]; - kMMM = neighborCZ[kMM0]; - //////////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - (G.g[dP00])[k000] = mgcbb; - (G.g[dM00])[kM00] = mgabb; - (G.g[d0P0])[k000] = mgbcb; - (G.g[d0M0])[k0M0] = mgbab; - (G.g[d00P])[k000] = mgbbc; - (G.g[d00M])[k00M] = mgbba; - //////////////////////////////////////////////////////////////////////////////////// - fP00dest[k000] = mfcbb; - fM00dest[kM00] = mfabb; - f0P0dest[k000] = mfbcb; - f0M0dest[k0M0] = mfbab; - f00Pdest[k000] = mfbbc; - f00Mdest[k00M] = mfbba; - fPP0dest[k000] = mfccb; - fMM0dest[kMM0] = mfaab; - fPM0dest[k0M0] = mfcab; - fMP0dest[kM00] = mfacb; - fP0Pdest[k000] = mfcbc; - fM0Mdest[kM0M] = mfaba; - fP0Mdest[k00M] = mfcba; - fM0Pdest[kM00] = mfabc; - f0PPdest[k000] = mfbcc; - f0MMdest[k0MM] = mfbaa; - f0PMdest[k00M] = mfbca; - f0MPdest[k0M0] = mfbac; - f000dest[k000] = mfbbb; - fMMMdest[kMMM] = mfaaa; - fMMPdest[kMM0] = mfaac; - fMPPdest[kM00] = mfacc; - fMPMdest[kM0M] = mfaca; - fPPMdest[k00M] = mfcca; - fPPPdest[k000] = mfccc; - fPMPdest[k0M0] = mfcac; - fPMMdest[k0MM] = mfcaa; - //////////////////////////////////////////////////////////////////////////////////// + real mgcbb = c0; + real mgabb = c0; + real mgbcb = c0; + real mgbab = c0; + real mgbbc = c0; + real mgbba = c0; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + real m0, m1, m2, oMdrho; + real mxxPyyPzz, mxxMyy, mxxMzz, mxxyPyzz, mxxyMyzz, mxxzPyyz, mxxzMyyz, mxyyPxzz, mxyyMxzz; + //real qudricLimit = c1o100;//ganz schlechte Idee -> muss global sein + //real O3 = c2o1 - o; + //real residu, residutmp; + //residutmp = c0;///*-*/ c2o9 * (1./o - c1o2) * eps_new * eps_new; + real NeqOn = c1o1;//zero;//one; //.... one = on ..... zero = off + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position C 0., 0., 0. + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //x = 0.; + //y = 0.; + //z = 0.; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //real mxoff = -xoff; + //real myoff = -yoff; + //real mzoff = -zoff; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //press = pressPPP * (c1o8 - c1o4 * mxoff - c1o4 * myoff - c1o4 * mzoff) + + // pressMPP * (c1o8 + c1o4 * mxoff - c1o4 * myoff - c1o4 * mzoff) + + // pressPMP * (c1o8 - c1o4 * mxoff + c1o4 * myoff - c1o4 * mzoff) + + // pressMMP * (c1o8 + c1o4 * mxoff + c1o4 * myoff - c1o4 * mzoff) + + // pressPPM * (c1o8 - c1o4 * mxoff - c1o4 * myoff + c1o4 * mzoff) + + // pressMPM * (c1o8 + c1o4 * mxoff - c1o4 * myoff + c1o4 * mzoff) + + // pressPMM * (c1o8 - c1o4 * mxoff + c1o4 * myoff + c1o4 * mzoff) + + // pressMMM * (c1o8 + c1o4 * mxoff + c1o4 * myoff + c1o4 * mzoff); + //drho = drhoPPP * (c1o8 - c1o4 * xoff - c1o4 * yoff - c1o4 * zoff) + + // drhoMPP * (c1o8 + c1o4 * xoff - c1o4 * yoff - c1o4 * zoff) + + // drhoPMP * (c1o8 - c1o4 * xoff + c1o4 * yoff - c1o4 * zoff) + + // drhoMMP * (c1o8 + c1o4 * xoff + c1o4 * yoff - c1o4 * zoff) + + // drhoPPM * (c1o8 - c1o4 * xoff - c1o4 * yoff + c1o4 * zoff) + + // drhoMPM * (c1o8 + c1o4 * xoff - c1o4 * yoff + c1o4 * zoff) + + // drhoPMM * (c1o8 - c1o4 * xoff + c1o4 * yoff + c1o4 * zoff) + + // drhoMMM * (c1o8 + c1o4 * xoff + c1o4 * yoff + c1o4 * zoff); + press = d0; + vvx = a0; + vvy = b0; + vvz = c0; + + //mfaaa = drho; + //mfaaa = press + (ax+by+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1; + //oMdrho = one - mfaaa; + + //two + // linear combinations + real oP = o;// :( + mxxPyyPzz = mfaaa -c2o3*(ax+by+cz)*eps_new/oP*(c1o1+press); + //mxxMyy = -c2o3*(ax - by)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy)*eps_new/o; + //mfbab = -c1o3 * (az + cx)*eps_new/o; + //mfbba = -c1o3 * (ay + bx)*eps_new/o; + mxxMyy = -c2o3*((ax - by)+kxxMyyAverage)*eps_new/o * (c1o1 + press); + mxxMzz = -c2o3*((ax - cz)+kxxMzzAverage)*eps_new/o * (c1o1 + press); + + mfabb = -c1o3 * ((bz + cy)+kyzAverage)*eps_new/o * (c1o1 + press); + mfbab = -c1o3 * ((az + cx)+kxzAverage)*eps_new/o * (c1o1 + press); + mfbba = -c1o3 * ((ay + bx)+kxyAverage)*eps_new/o * (c1o1 + press); + + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //3. + // linear combinations + //residu = residutmp * (ayz + bxz + cxy ); + //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mfbbb = c0; + + //residu = residutmp * (axy + two*bxx + two*bzz + cyz ); + //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz )); + //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyPyzz = c0; + + //residu = residutmp * (axy + two*bxx - two*bzz - cyz ); + //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz ); + //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyMyzz = c0; + + //residu = residutmp * (axz + byz + two*cxx + two*cyy ); + //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy )); + //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzPyyz = c0; + + //residu = residutmp * (axz - byz + two*cxx - two*cyy ); + //residu = c1o9*(axz - byz - 2*cxx + 2*cyy ); + //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzMyyz = c0; + + //residu = residutmp * (two*ayy + two*azz + bxy + cxz ); + //residu = c1o9*(2*ayy + 2*azz - bxy - cxz ); + //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyPxzz = c0; + + //residu = residutmp * (two*ayy - two*azz + bxy - cxz ); + //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz ); + //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyMxzz = c0; + + //////////////////////////////////////////////////////////////////////////////////// + // D3Q27F + mgcbb = (vvx * axx + ax * ax) * (eps_new * eps_new) * (c1o1 + press); + mgabb = -(vvx * axx + ax * ax) * (eps_new * eps_new) * (c1o1 + press); + mgbcb = (vvy * byy + by * by) * (eps_new * eps_new) * (c1o1 + press); + mgbab = -(vvy * byy + by * by) * (eps_new * eps_new) * (c1o1 + press); + mgbbc = (vvz * czz + cz * cz) * (eps_new * eps_new) * (c1o1 + press); + mgbba = -(vvz * czz + cz * cz) * (eps_new * eps_new) * (c1o1 + press); + //mgcbb = zero; + //mgabb = zero; + //mgbcb = zero; + //mgbab = zero; + //mgbbc = zero; + //mgbba = zero; + //////////////////////////////////////////////////////////////////////////////////// + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4. + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + //index 0 + k000 = posC[k]; + kM00 = neighborCX[k000]; + k0M0 = neighborCY[k000]; + k00M = neighborCZ[k000]; + kMM0 = neighborCY[kM00]; + kM0M = neighborCZ[kM00]; + k0MM = neighborCZ[k0M0]; + kMMM = neighborCZ[kMM0]; + //////////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + (G.g[dP00])[k000] = mgcbb; + (G.g[dM00])[kM00] = mgabb; + (G.g[d0P0])[k000] = mgbcb; + (G.g[d0M0])[k0M0] = mgbab; + (G.g[d00P])[k000] = mgbbc; + (G.g[d00M])[k00M] = mgbba; + //////////////////////////////////////////////////////////////////////////////////// + fP00dest[k000] = mfcbb; + fM00dest[kM00] = mfabb; + f0P0dest[k000] = mfbcb; + f0M0dest[k0M0] = mfbab; + f00Pdest[k000] = mfbbc; + f00Mdest[k00M] = mfbba; + fPP0dest[k000] = mfccb; + fMM0dest[kMM0] = mfaab; + fPM0dest[k0M0] = mfcab; + fMP0dest[kM00] = mfacb; + fP0Pdest[k000] = mfcbc; + fM0Mdest[kM0M] = mfaba; + fP0Mdest[k00M] = mfcba; + fM0Pdest[kM00] = mfabc; + f0PPdest[k000] = mfbcc; + f0MMdest[k0MM] = mfbaa; + f0PMdest[k00M] = mfbca; + f0MPdest[k0M0] = mfbac; + f000dest[k000] = mfbbb; + fMMMdest[kMMM] = mfaaa; + fMMPdest[kMM0] = mfaac; + fMPPdest[kM00] = mfacc; + fMPMdest[kM0M] = mfaca; + fPPMdest[k00M] = mfcca; + fPPPdest[k000] = mfccc; + fPMPdest[k0M0] = mfcac; + fPMMdest[k0MM] = mfcaa; + //////////////////////////////////////////////////////////////////////////////////// } } ////////////////////////////////////////////////////////////////////////// @@ -1262,33 +1262,33 @@ __global__ void scaleFC_comp_D3Q27F3_2018(real* DC, ////////////////////////////////////////////////////////////////////////// __global__ void scaleFC_comp_D3Q27F3( real* DC, - real* DF, - real* G6, - unsigned int* neighborCX, - unsigned int* neighborCY, - unsigned int* neighborCZ, - unsigned int* neighborFX, - unsigned int* neighborFY, - unsigned int* neighborFZ, - unsigned long long numberOfLBnodesCoarse, - unsigned long long numberOfLBnodesFine, - bool isEvenTimestep, - unsigned int* posC, - unsigned int* posFSWB, - unsigned int kFC, - real omCoarse, - real omFine, - real nu, - unsigned int nxC, - unsigned int nyC, - unsigned int nxF, - unsigned int nyF, - ICellNeigh offFC) + real* DF, + real* G6, + unsigned int* neighborCX, + unsigned int* neighborCY, + unsigned int* neighborCZ, + unsigned int* neighborFX, + unsigned int* neighborFY, + unsigned int* neighborFZ, + unsigned long long numberOfLBnodesCoarse, + unsigned long long numberOfLBnodesFine, + bool isEvenTimestep, + unsigned int* posC, + unsigned int* posFSWB, + unsigned int kFC, + real omCoarse, + real omFine, + real nu, + unsigned int nxC, + unsigned int nyC, + unsigned int nxF, + unsigned int nyF, + ICellNeigh offFC) { real - *fP00source, *fM00source, *f0P0source, *f0M0source, *f00Psource, *f00Msource, *fPP0source, *fMM0source, *fPM0source, - *fMP0source, *fP0Psource, *fM0Msource, *fP0Msource, *fM0Psource, *f0PPsource, *f0MMsource, *f0PMsource, *f0MPsource, - *f000source, *fMMMsource, *fMMPsource, *fMPPsource, *fMPMsource, *fPPMsource, *fPPPsource, *fPMPsource, *fPMMsource; + *fP00source, *fM00source, *f0P0source, *f0M0source, *f00Psource, *f00Msource, *fPP0source, *fMM0source, *fPM0source, + *fMP0source, *fP0Psource, *fM0Msource, *fP0Msource, *fM0Psource, *f0PPsource, *f0MMsource, *f0PMsource, *f0MPsource, + *f000source, *fMMMsource, *fMMPsource, *fMPPsource, *fMPMsource, *fPPMsource, *fPPPsource, *fPMPsource, *fPMMsource; fP00source = &DF[dP00 * numberOfLBnodesFine]; @@ -1320,89 +1320,89 @@ __global__ void scaleFC_comp_D3Q27F3( real* DC, fPMMsource = &DF[dPMM * numberOfLBnodesFine]; real - *fP00dest, *fM00dest, *f0P0dest, *f0M0dest, *f00Pdest, *f00Mdest, *fPP0dest, *fMM0dest, *fPM0dest, - *fMP0dest, *fP0Pdest, *fM0Mdest, *fP0Mdest, *fM0Pdest, *f0PPdest, *f0MMdest, *f0PMdest, *f0MPdest, - *f000dest, *fMMMdest, *fMMPdest, *fMPPdest, *fMPMdest, *fPPMdest, *fPPPdest, *fPMPdest, *fPMMdest; + *fP00dest, *fM00dest, *f0P0dest, *f0M0dest, *f00Pdest, *f00Mdest, *fPP0dest, *fMM0dest, *fPM0dest, + *fMP0dest, *fP0Pdest, *fM0Mdest, *fP0Mdest, *fM0Pdest, *f0PPdest, *f0MMdest, *f0PMdest, *f0MPdest, + *f000dest, *fMMMdest, *fMMPdest, *fMPPdest, *fMPMdest, *fPPMdest, *fPPPdest, *fPMPdest, *fPMMdest; if (isEvenTimestep==true) { - fP00dest = &DC[dP00 * numberOfLBnodesCoarse]; - fM00dest = &DC[dM00 * numberOfLBnodesCoarse]; - f0P0dest = &DC[d0P0 * numberOfLBnodesCoarse]; - f0M0dest = &DC[d0M0 * numberOfLBnodesCoarse]; - f00Pdest = &DC[d00P * numberOfLBnodesCoarse]; - f00Mdest = &DC[d00M * numberOfLBnodesCoarse]; - fPP0dest = &DC[dPP0 * numberOfLBnodesCoarse]; - fMM0dest = &DC[dMM0 * numberOfLBnodesCoarse]; - fPM0dest = &DC[dPM0 * numberOfLBnodesCoarse]; - fMP0dest = &DC[dMP0 * numberOfLBnodesCoarse]; - fP0Pdest = &DC[dP0P * numberOfLBnodesCoarse]; - fM0Mdest = &DC[dM0M * numberOfLBnodesCoarse]; - fP0Mdest = &DC[dP0M * numberOfLBnodesCoarse]; - fM0Pdest = &DC[dM0P * numberOfLBnodesCoarse]; - f0PPdest = &DC[d0PP * numberOfLBnodesCoarse]; - f0MMdest = &DC[d0MM * numberOfLBnodesCoarse]; - f0PMdest = &DC[d0PM * numberOfLBnodesCoarse]; - f0MPdest = &DC[d0MP * numberOfLBnodesCoarse]; - f000dest = &DC[d000 * numberOfLBnodesCoarse]; - fMMMdest = &DC[dMMM * numberOfLBnodesCoarse]; - fMMPdest = &DC[dMMP * numberOfLBnodesCoarse]; - fMPPdest = &DC[dMPP * numberOfLBnodesCoarse]; - fMPMdest = &DC[dMPM * numberOfLBnodesCoarse]; - fPPMdest = &DC[dPPM * numberOfLBnodesCoarse]; - fPPPdest = &DC[dPPP * numberOfLBnodesCoarse]; - fPMPdest = &DC[dPMP * numberOfLBnodesCoarse]; - fPMMdest = &DC[dPMM * numberOfLBnodesCoarse]; + fP00dest = &DC[dP00 * numberOfLBnodesCoarse]; + fM00dest = &DC[dM00 * numberOfLBnodesCoarse]; + f0P0dest = &DC[d0P0 * numberOfLBnodesCoarse]; + f0M0dest = &DC[d0M0 * numberOfLBnodesCoarse]; + f00Pdest = &DC[d00P * numberOfLBnodesCoarse]; + f00Mdest = &DC[d00M * numberOfLBnodesCoarse]; + fPP0dest = &DC[dPP0 * numberOfLBnodesCoarse]; + fMM0dest = &DC[dMM0 * numberOfLBnodesCoarse]; + fPM0dest = &DC[dPM0 * numberOfLBnodesCoarse]; + fMP0dest = &DC[dMP0 * numberOfLBnodesCoarse]; + fP0Pdest = &DC[dP0P * numberOfLBnodesCoarse]; + fM0Mdest = &DC[dM0M * numberOfLBnodesCoarse]; + fP0Mdest = &DC[dP0M * numberOfLBnodesCoarse]; + fM0Pdest = &DC[dM0P * numberOfLBnodesCoarse]; + f0PPdest = &DC[d0PP * numberOfLBnodesCoarse]; + f0MMdest = &DC[d0MM * numberOfLBnodesCoarse]; + f0PMdest = &DC[d0PM * numberOfLBnodesCoarse]; + f0MPdest = &DC[d0MP * numberOfLBnodesCoarse]; + f000dest = &DC[d000 * numberOfLBnodesCoarse]; + fMMMdest = &DC[dMMM * numberOfLBnodesCoarse]; + fMMPdest = &DC[dMMP * numberOfLBnodesCoarse]; + fMPPdest = &DC[dMPP * numberOfLBnodesCoarse]; + fMPMdest = &DC[dMPM * numberOfLBnodesCoarse]; + fPPMdest = &DC[dPPM * numberOfLBnodesCoarse]; + fPPPdest = &DC[dPPP * numberOfLBnodesCoarse]; + fPMPdest = &DC[dPMP * numberOfLBnodesCoarse]; + fPMMdest = &DC[dPMM * numberOfLBnodesCoarse]; } else { - fP00dest = &DC[dM00 * numberOfLBnodesCoarse]; - fM00dest = &DC[dP00 * numberOfLBnodesCoarse]; - f0P0dest = &DC[d0M0 * numberOfLBnodesCoarse]; - f0M0dest = &DC[d0P0 * numberOfLBnodesCoarse]; - f00Pdest = &DC[d00M * numberOfLBnodesCoarse]; - f00Mdest = &DC[d00P * numberOfLBnodesCoarse]; - fPP0dest = &DC[dMM0 * numberOfLBnodesCoarse]; - fMM0dest = &DC[dPP0 * numberOfLBnodesCoarse]; - fPM0dest = &DC[dMP0 * numberOfLBnodesCoarse]; - fMP0dest = &DC[dPM0 * numberOfLBnodesCoarse]; - fP0Pdest = &DC[dM0M * numberOfLBnodesCoarse]; - fM0Mdest = &DC[dP0P * numberOfLBnodesCoarse]; - fP0Mdest = &DC[dM0P * numberOfLBnodesCoarse]; - fM0Pdest = &DC[dP0M * numberOfLBnodesCoarse]; - f0PPdest = &DC[d0MM * numberOfLBnodesCoarse]; - f0MMdest = &DC[d0PP * numberOfLBnodesCoarse]; - f0PMdest = &DC[d0MP * numberOfLBnodesCoarse]; - f0MPdest = &DC[d0PM * numberOfLBnodesCoarse]; - f000dest = &DC[d000 * numberOfLBnodesCoarse]; - fMMMdest = &DC[dPPP * numberOfLBnodesCoarse]; - fMMPdest = &DC[dPPM * numberOfLBnodesCoarse]; - fMPPdest = &DC[dPMM * numberOfLBnodesCoarse]; - fMPMdest = &DC[dPMP * numberOfLBnodesCoarse]; - fPPMdest = &DC[dMMP * numberOfLBnodesCoarse]; - fPPPdest = &DC[dMMM * numberOfLBnodesCoarse]; - fPMPdest = &DC[dMPM * numberOfLBnodesCoarse]; - fPMMdest = &DC[dMPP * numberOfLBnodesCoarse]; + fP00dest = &DC[dM00 * numberOfLBnodesCoarse]; + fM00dest = &DC[dP00 * numberOfLBnodesCoarse]; + f0P0dest = &DC[d0M0 * numberOfLBnodesCoarse]; + f0M0dest = &DC[d0P0 * numberOfLBnodesCoarse]; + f00Pdest = &DC[d00M * numberOfLBnodesCoarse]; + f00Mdest = &DC[d00P * numberOfLBnodesCoarse]; + fPP0dest = &DC[dMM0 * numberOfLBnodesCoarse]; + fMM0dest = &DC[dPP0 * numberOfLBnodesCoarse]; + fPM0dest = &DC[dMP0 * numberOfLBnodesCoarse]; + fMP0dest = &DC[dPM0 * numberOfLBnodesCoarse]; + fP0Pdest = &DC[dM0M * numberOfLBnodesCoarse]; + fM0Mdest = &DC[dP0P * numberOfLBnodesCoarse]; + fP0Mdest = &DC[dM0P * numberOfLBnodesCoarse]; + fM0Pdest = &DC[dP0M * numberOfLBnodesCoarse]; + f0PPdest = &DC[d0MM * numberOfLBnodesCoarse]; + f0MMdest = &DC[d0PP * numberOfLBnodesCoarse]; + f0PMdest = &DC[d0MP * numberOfLBnodesCoarse]; + f0MPdest = &DC[d0PM * numberOfLBnodesCoarse]; + f000dest = &DC[d000 * numberOfLBnodesCoarse]; + fMMMdest = &DC[dPPP * numberOfLBnodesCoarse]; + fMMPdest = &DC[dPPM * numberOfLBnodesCoarse]; + fMPPdest = &DC[dPMM * numberOfLBnodesCoarse]; + fMPMdest = &DC[dPMP * numberOfLBnodesCoarse]; + fPPMdest = &DC[dMMP * numberOfLBnodesCoarse]; + fPPPdest = &DC[dMMM * numberOfLBnodesCoarse]; + fPMPdest = &DC[dMPM * numberOfLBnodesCoarse]; + fPMMdest = &DC[dMPP * numberOfLBnodesCoarse]; } Distributions6 G; if (isEvenTimestep == true) { - G.g[dP00] = &G6[dP00 * numberOfLBnodesCoarse]; - G.g[dM00] = &G6[dM00 * numberOfLBnodesCoarse]; - G.g[d0P0] = &G6[d0P0 * numberOfLBnodesCoarse]; - G.g[d0M0] = &G6[d0M0 * numberOfLBnodesCoarse]; - G.g[d00P] = &G6[d00P * numberOfLBnodesCoarse]; - G.g[d00M] = &G6[d00M * numberOfLBnodesCoarse]; + G.g[dP00] = &G6[dP00 * numberOfLBnodesCoarse]; + G.g[dM00] = &G6[dM00 * numberOfLBnodesCoarse]; + G.g[d0P0] = &G6[d0P0 * numberOfLBnodesCoarse]; + G.g[d0M0] = &G6[d0M0 * numberOfLBnodesCoarse]; + G.g[d00P] = &G6[d00P * numberOfLBnodesCoarse]; + G.g[d00M] = &G6[d00M * numberOfLBnodesCoarse]; } else { - G.g[dM00] = &G6[dP00 * numberOfLBnodesCoarse]; - G.g[dP00] = &G6[dM00 * numberOfLBnodesCoarse]; - G.g[d0M0] = &G6[d0P0 * numberOfLBnodesCoarse]; - G.g[d0P0] = &G6[d0M0 * numberOfLBnodesCoarse]; - G.g[d00M] = &G6[d00P * numberOfLBnodesCoarse]; - G.g[d00P] = &G6[d00M * numberOfLBnodesCoarse]; + G.g[dM00] = &G6[dP00 * numberOfLBnodesCoarse]; + G.g[dP00] = &G6[dM00 * numberOfLBnodesCoarse]; + G.g[d0M0] = &G6[d0P0 * numberOfLBnodesCoarse]; + G.g[d0P0] = &G6[d0M0 * numberOfLBnodesCoarse]; + G.g[d00M] = &G6[d00P * numberOfLBnodesCoarse]; + G.g[d00P] = &G6[d00M * numberOfLBnodesCoarse]; } //////////////////////////////////////////////////////////////////////////////// @@ -1500,26 +1500,26 @@ __global__ void scaleFC_comp_D3Q27F3( real* DC, f0PM = f0PMsource[k00M]; f0MP = f0MPsource[k0M0]; f000 = f000source[k000]; - fMMM = fMMMsource[kMMM]; - fMMP = fMMPsource[kMM0]; - fMPP = fMPPsource[kM00]; - fMPM = fMPMsource[kM0M]; - fPPM = fPPMsource[k00M]; - fPPP = fPPPsource[k000]; + fMMM = fMMMsource[kMMM]; + fMMP = fMMPsource[kMM0]; + fMPP = fMPPsource[kM00]; + fMPM = fMPMsource[kM0M]; + fPPM = fPPMsource[k00M]; + fPPP = fPPPsource[k000]; fPMP = fPMPsource[k0M0]; fPMM = fPMMsource[k0MM]; drhoMMM = fP00+fM00+f0P0+f0M0+f00P+f00M+fPP0+fMM0+fPM0+fMP0+fP0P+fM0M+fP0M+fM0P+f0PP+f0MM+f0PM+f0MP+f000+fPPP+fMMP+fPMP+fMPP+fPPM+fMMM+fPMM+fMPM; vx1MMM = (((fPPP-fMMM)+(fPMP-fMPM)+(fPPM-fMMP)+(fPMM-fMPP)) + (((fPP0-fMM0)+(fP0P-fM0M))+((fPM0-fMP0)+(fP0M-fM0P))) + (fP00-fM00))/(c1o1 + drhoMMM); - vx2MMM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoMMM); - vx3MMM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoMMM); + vx2MMM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoMMM); + vx3MMM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoMMM); - kxyFromfcNEQMMM = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoMMM) - ((vx1MMM*vx2MMM))); - kyzFromfcNEQMMM = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoMMM) - ((vx2MMM*vx3MMM))); - kxzFromfcNEQMMM = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoMMM) - ((vx1MMM*vx3MMM))); - kxxMyyFromfcNEQMMM = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoMMM) - ((vx1MMM*vx1MMM - vx2MMM*vx2MMM))); - kxxMzzFromfcNEQMMM = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoMMM) - ((vx1MMM*vx1MMM - vx3MMM*vx3MMM))); - kyyMzzFromfcNEQMMM = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoMMM) - ((vx2MMM*vx2MMM - vx3MMM*vx3MMM))); + kxyFromfcNEQMMM = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoMMM) - ((vx1MMM*vx2MMM))); + kyzFromfcNEQMMM = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoMMM) - ((vx2MMM*vx3MMM))); + kxzFromfcNEQMMM = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoMMM) - ((vx1MMM*vx3MMM))); + kxxMyyFromfcNEQMMM = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoMMM) - ((vx1MMM*vx1MMM - vx2MMM*vx2MMM))); + kxxMzzFromfcNEQMMM = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoMMM) - ((vx1MMM*vx1MMM - vx3MMM*vx3MMM))); + kyyMzzFromfcNEQMMM = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoMMM) - ((vx2MMM*vx2MMM - vx3MMM*vx3MMM))); ////////////////////////////////////////////////////////////////////////// //SWT// @@ -1534,45 +1534,45 @@ __global__ void scaleFC_comp_D3Q27F3( real* DC, k0MM = neighborFZ[k0MM]; kMMM = neighborFZ[kMMM]; //////////////////////////////////////////////////////////////////////////////// - fP00 = fP00source[k000]; - fM00 = fM00source[kM00]; - f0P0 = f0P0source[k000]; - f0M0 = f0M0source[k0M0]; - f00P = f00Psource[k000]; - f00M = f00Msource[k00M]; - fPP0 = fPP0source[k000]; - fMM0 = fMM0source[kMM0]; - fPM0 = fPM0source[k0M0]; - fMP0 = fMP0source[kM00]; - fP0P = fP0Psource[k000]; - fM0M = fM0Msource[kM0M]; - fP0M = fP0Msource[k00M]; - fM0P = fM0Psource[kM00]; - f0PP = f0PPsource[k000]; - f0MM = f0MMsource[k0MM]; - f0PM = f0PMsource[k00M]; - f0MP = f0MPsource[k0M0]; - f000 = f000source[k000]; - fMMM = fMMMsource[kMMM]; - fMMP = fMMPsource[kMM0]; - fMPP = fMPPsource[kM00]; - fMPM = fMPMsource[kM0M]; - fPPM = fPPMsource[k00M]; - fPPP = fPPPsource[k000]; - fPMP = fPMPsource[k0M0]; - fPMM = fPMMsource[k0MM]; + fP00 = fP00source[k000]; + fM00 = fM00source[kM00]; + f0P0 = f0P0source[k000]; + f0M0 = f0M0source[k0M0]; + f00P = f00Psource[k000]; + f00M = f00Msource[k00M]; + fPP0 = fPP0source[k000]; + fMM0 = fMM0source[kMM0]; + fPM0 = fPM0source[k0M0]; + fMP0 = fMP0source[kM00]; + fP0P = fP0Psource[k000]; + fM0M = fM0Msource[kM0M]; + fP0M = fP0Msource[k00M]; + fM0P = fM0Psource[kM00]; + f0PP = f0PPsource[k000]; + f0MM = f0MMsource[k0MM]; + f0PM = f0PMsource[k00M]; + f0MP = f0MPsource[k0M0]; + f000 = f000source[k000]; + fMMM = fMMMsource[kMMM]; + fMMP = fMMPsource[kMM0]; + fMPP = fMPPsource[kM00]; + fMPM = fMPMsource[kM0M]; + fPPM = fPPMsource[k00M]; + fPPP = fPPPsource[k000]; + fPMP = fPMPsource[k0M0]; + fPMM = fPMMsource[k0MM]; drhoMMP = fP00+fM00+f0P0+f0M0+f00P+f00M+fPP0+fMM0+fPM0+fMP0+fP0P+fM0M+fP0M+fM0P+f0PP+f0MM+f0PM+f0MP+f000+fPPP+fMMP+fPMP+fMPP+fPPM+fMMM+fPMM+fMPM; vx1MMP = (((fPPP-fMMM)+(fPMP-fMPM)+(fPPM-fMMP)+(fPMM-fMPP)) + (((fPP0-fMM0)+(fP0P-fM0M))+((fPM0-fMP0)+(fP0M-fM0P))) + (fP00-fM00))/(c1o1 + drhoMMP); - vx2MMP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoMMP); - vx3MMP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoMMP); + vx2MMP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoMMP); + vx3MMP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoMMP); - kxyFromfcNEQMMP = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoMMP) - ((vx1MMP*vx2MMP))); - kyzFromfcNEQMMP = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoMMP) - ((vx2MMP*vx3MMP))); - kxzFromfcNEQMMP = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoMMP) - ((vx1MMP*vx3MMP))); - kxxMyyFromfcNEQMMP = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoMMP) - ((vx1MMP*vx1MMP - vx2MMP*vx2MMP))); - kxxMzzFromfcNEQMMP = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoMMP) - ((vx1MMP*vx1MMP - vx3MMP*vx3MMP))); - kyyMzzFromfcNEQMMP = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoMMP) - ((vx2MMP*vx2MMP - vx3MMP*vx3MMP))); + kxyFromfcNEQMMP = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoMMP) - ((vx1MMP*vx2MMP))); + kyzFromfcNEQMMP = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoMMP) - ((vx2MMP*vx3MMP))); + kxzFromfcNEQMMP = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoMMP) - ((vx1MMP*vx3MMP))); + kxxMyyFromfcNEQMMP = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoMMP) - ((vx1MMP*vx1MMP - vx2MMP*vx2MMP))); + kxxMzzFromfcNEQMMP = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoMMP) - ((vx1MMP*vx1MMP - vx3MMP*vx3MMP))); + kyyMzzFromfcNEQMMP = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoMMP) - ((vx2MMP*vx2MMP - vx3MMP*vx3MMP))); ////////////////////////////////////////////////////////////////////////// //SET// @@ -1587,45 +1587,45 @@ __global__ void scaleFC_comp_D3Q27F3( real* DC, k0MM = kMMM; kMMM = neighborFX[kMMM]; //////////////////////////////////////////////////////////////////////////////// - fP00 = fP00source[k000]; - fM00 = fM00source[kM00]; - f0P0 = f0P0source[k000]; - f0M0 = f0M0source[k0M0]; - f00P = f00Psource[k000]; - f00M = f00Msource[k00M]; - fPP0 = fPP0source[k000]; - fMM0 = fMM0source[kMM0]; - fPM0 = fPM0source[k0M0]; - fMP0 = fMP0source[kM00]; - fP0P = fP0Psource[k000]; - fM0M = fM0Msource[kM0M]; - fP0M = fP0Msource[k00M]; - fM0P = fM0Psource[kM00]; - f0PP = f0PPsource[k000]; - f0MM = f0MMsource[k0MM]; - f0PM = f0PMsource[k00M]; - f0MP = f0MPsource[k0M0]; - f000 = f000source[k000]; - fMMM = fMMMsource[kMMM]; - fMMP = fMMPsource[kMM0]; - fMPP = fMPPsource[kM00]; - fMPM = fMPMsource[kM0M]; - fPPM = fPPMsource[k00M]; - fPPP = fPPPsource[k000]; - fPMP = fPMPsource[k0M0]; - fPMM = fPMMsource[k0MM]; + fP00 = fP00source[k000]; + fM00 = fM00source[kM00]; + f0P0 = f0P0source[k000]; + f0M0 = f0M0source[k0M0]; + f00P = f00Psource[k000]; + f00M = f00Msource[k00M]; + fPP0 = fPP0source[k000]; + fMM0 = fMM0source[kMM0]; + fPM0 = fPM0source[k0M0]; + fMP0 = fMP0source[kM00]; + fP0P = fP0Psource[k000]; + fM0M = fM0Msource[kM0M]; + fP0M = fP0Msource[k00M]; + fM0P = fM0Psource[kM00]; + f0PP = f0PPsource[k000]; + f0MM = f0MMsource[k0MM]; + f0PM = f0PMsource[k00M]; + f0MP = f0MPsource[k0M0]; + f000 = f000source[k000]; + fMMM = fMMMsource[kMMM]; + fMMP = fMMPsource[kMM0]; + fMPP = fMPPsource[kM00]; + fMPM = fMPMsource[kM0M]; + fPPM = fPPMsource[k00M]; + fPPP = fPPPsource[k000]; + fPMP = fPMPsource[k0M0]; + fPMM = fPMMsource[k0MM]; drhoPMP = fP00+fM00+f0P0+f0M0+f00P+f00M+fPP0+fMM0+fPM0+fMP0+fP0P+fM0M+fP0M+fM0P+f0PP+f0MM+f0PM+f0MP+f000+fPPP+fMMP+fPMP+fMPP+fPPM+fMMM+fPMM+fMPM; vx1PMP = (((fPPP-fMMM)+(fPMP-fMPM)+(fPPM-fMMP)+(fPMM-fMPP)) + (((fPP0-fMM0)+(fP0P-fM0M))+((fPM0-fMP0)+(fP0M-fM0P))) + (fP00-fM00))/(c1o1 + drhoPMP); - vx2PMP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoPMP); - vx3PMP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoPMP); + vx2PMP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoPMP); + vx3PMP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoPMP); - kxyFromfcNEQPMP = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoPMP) - ((vx1PMP*vx2PMP))); - kyzFromfcNEQPMP = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoPMP) - ((vx2PMP*vx3PMP))); - kxzFromfcNEQPMP = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoPMP) - ((vx1PMP*vx3PMP))); - kxxMyyFromfcNEQPMP = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoPMP) - ((vx1PMP*vx1PMP - vx2PMP*vx2PMP))); - kxxMzzFromfcNEQPMP = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoPMP) - ((vx1PMP*vx1PMP - vx3PMP*vx3PMP))); - kyyMzzFromfcNEQPMP = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoPMP) - ((vx2PMP*vx2PMP - vx3PMP*vx3PMP))); + kxyFromfcNEQPMP = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoPMP) - ((vx1PMP*vx2PMP))); + kyzFromfcNEQPMP = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoPMP) - ((vx2PMP*vx3PMP))); + kxzFromfcNEQPMP = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoPMP) - ((vx1PMP*vx3PMP))); + kxxMyyFromfcNEQPMP = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoPMP) - ((vx1PMP*vx1PMP - vx2PMP*vx2PMP))); + kxxMzzFromfcNEQPMP = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoPMP) - ((vx1PMP*vx1PMP - vx3PMP*vx3PMP))); + kyyMzzFromfcNEQPMP = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoPMP) - ((vx2PMP*vx2PMP - vx3PMP*vx3PMP))); ////////////////////////////////////////////////////////////////////////// //SEB// @@ -1640,45 +1640,45 @@ __global__ void scaleFC_comp_D3Q27F3( real* DC, k0M0 = kMM0base; kMM0 = neighborFX[kMM0base]; //////////////////////////////////////////////////////////////////////////////// - fP00 = fP00source[k000]; - fM00 = fM00source[kM00]; - f0P0 = f0P0source[k000]; - f0M0 = f0M0source[k0M0]; - f00P = f00Psource[k000]; - f00M = f00Msource[k00M]; - fPP0 = fPP0source[k000]; - fMM0 = fMM0source[kMM0]; - fPM0 = fPM0source[k0M0]; - fMP0 = fMP0source[kM00]; - fP0P = fP0Psource[k000]; - fM0M = fM0Msource[kM0M]; - fP0M = fP0Msource[k00M]; - fM0P = fM0Psource[kM00]; - f0PP = f0PPsource[k000]; - f0MM = f0MMsource[k0MM]; - f0PM = f0PMsource[k00M]; - f0MP = f0MPsource[k0M0]; - f000 = f000source[k000]; - fMMM = fMMMsource[kMMM]; - fMMP = fMMPsource[kMM0]; - fMPP = fMPPsource[kM00]; - fMPM = fMPMsource[kM0M]; - fPPM = fPPMsource[k00M]; - fPPP = fPPPsource[k000]; - fPMP = fPMPsource[k0M0]; - fPMM = fPMMsource[k0MM]; + fP00 = fP00source[k000]; + fM00 = fM00source[kM00]; + f0P0 = f0P0source[k000]; + f0M0 = f0M0source[k0M0]; + f00P = f00Psource[k000]; + f00M = f00Msource[k00M]; + fPP0 = fPP0source[k000]; + fMM0 = fMM0source[kMM0]; + fPM0 = fPM0source[k0M0]; + fMP0 = fMP0source[kM00]; + fP0P = fP0Psource[k000]; + fM0M = fM0Msource[kM0M]; + fP0M = fP0Msource[k00M]; + fM0P = fM0Psource[kM00]; + f0PP = f0PPsource[k000]; + f0MM = f0MMsource[k0MM]; + f0PM = f0PMsource[k00M]; + f0MP = f0MPsource[k0M0]; + f000 = f000source[k000]; + fMMM = fMMMsource[kMMM]; + fMMP = fMMPsource[kMM0]; + fMPP = fMPPsource[kM00]; + fMPM = fMPMsource[kM0M]; + fPPM = fPPMsource[k00M]; + fPPP = fPPPsource[k000]; + fPMP = fPMPsource[k0M0]; + fPMM = fPMMsource[k0MM]; drhoPMM = fP00+fM00+f0P0+f0M0+f00P+f00M+fPP0+fMM0+fPM0+fMP0+fP0P+fM0M+fP0M+fM0P+f0PP+f0MM+f0PM+f0MP+f000+fPPP+fMMP+fPMP+fMPP+fPPM+fMMM+fPMM+fMPM; vx1PMM = (((fPPP-fMMM)+(fPMP-fMPM)+(fPPM-fMMP)+(fPMM-fMPP)) + (((fPP0-fMM0)+(fP0P-fM0M))+((fPM0-fMP0)+(fP0M-fM0P))) + (fP00-fM00))/(c1o1 + drhoPMM); - vx2PMM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoPMM); - vx3PMM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoPMM); + vx2PMM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoPMM); + vx3PMM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoPMM); - kxyFromfcNEQPMM = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoPMM) - ((vx1PMM*vx2PMM))); - kyzFromfcNEQPMM = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoPMM) - ((vx2PMM*vx3PMM))); - kxzFromfcNEQPMM = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoPMM) - ((vx1PMM*vx3PMM))); - kxxMyyFromfcNEQPMM = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoPMM) - ((vx1PMM*vx1PMM - vx2PMM*vx2PMM))); - kxxMzzFromfcNEQPMM = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoPMM) - ((vx1PMM*vx1PMM - vx3PMM*vx3PMM))); - kyyMzzFromfcNEQPMM = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoPMM) - ((vx2PMM*vx2PMM - vx3PMM*vx3PMM))); + kxyFromfcNEQPMM = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoPMM) - ((vx1PMM*vx2PMM))); + kyzFromfcNEQPMM = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoPMM) - ((vx2PMM*vx3PMM))); + kxzFromfcNEQPMM = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoPMM) - ((vx1PMM*vx3PMM))); + kxxMyyFromfcNEQPMM = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoPMM) - ((vx1PMM*vx1PMM - vx2PMM*vx2PMM))); + kxxMzzFromfcNEQPMM = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoPMM) - ((vx1PMM*vx1PMM - vx3PMM*vx3PMM))); + kyyMzzFromfcNEQPMM = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoPMM) - ((vx2PMM*vx2PMM - vx3PMM*vx3PMM))); ////////////////////////////////////////////////////////////////////////// //NWB// @@ -1703,47 +1703,47 @@ __global__ void scaleFC_comp_D3Q27F3( real* DC, k0MM = k0MMbase; kMMM = kMMMbase; //////////////////////////////////////////////////////////////////////////////// - fP00 = fP00source[k000]; - fM00 = fM00source[kM00]; - f0P0 = f0P0source[k000]; - f0M0 = f0M0source[k0M0]; - f00P = f00Psource[k000]; - f00M = f00Msource[k00M]; - fPP0 = fPP0source[k000]; - fMM0 = fMM0source[kMM0]; - fPM0 = fPM0source[k0M0]; - fMP0 = fMP0source[kM00]; - fP0P = fP0Psource[k000]; - fM0M = fM0Msource[kM0M]; - fP0M = fP0Msource[k00M]; - fM0P = fM0Psource[kM00]; - f0PP = f0PPsource[k000]; - f0MM = f0MMsource[k0MM]; - f0PM = f0PMsource[k00M]; - f0MP = f0MPsource[k0M0]; - f000 = f000source[k000]; - fMMM = fMMMsource[kMMM]; - fMMP = fMMPsource[kMM0]; - fMPP = fMPPsource[kM00]; - fMPM = fMPMsource[kM0M]; - fPPM = fPPMsource[k00M]; - fPPP = fPPPsource[k000]; - fPMP = fPMPsource[k0M0]; - fPMM = fPMMsource[k0MM]; + fP00 = fP00source[k000]; + fM00 = fM00source[kM00]; + f0P0 = f0P0source[k000]; + f0M0 = f0M0source[k0M0]; + f00P = f00Psource[k000]; + f00M = f00Msource[k00M]; + fPP0 = fPP0source[k000]; + fMM0 = fMM0source[kMM0]; + fPM0 = fPM0source[k0M0]; + fMP0 = fMP0source[kM00]; + fP0P = fP0Psource[k000]; + fM0M = fM0Msource[kM0M]; + fP0M = fP0Msource[k00M]; + fM0P = fM0Psource[kM00]; + f0PP = f0PPsource[k000]; + f0MM = f0MMsource[k0MM]; + f0PM = f0PMsource[k00M]; + f0MP = f0MPsource[k0M0]; + f000 = f000source[k000]; + fMMM = fMMMsource[kMMM]; + fMMP = fMMPsource[kMM0]; + fMPP = fMPPsource[kM00]; + fMPM = fMPMsource[kM0M]; + fPPM = fPPMsource[k00M]; + fPPP = fPPPsource[k000]; + fPMP = fPMPsource[k0M0]; + fPMM = fPMMsource[k0MM]; drhoMPM = fP00+fM00+f0P0+f0M0+f00P+f00M+fPP0+fMM0+fPM0+fMP0+fP0P+fM0M+fP0M+fM0P+f0PP+f0MM+f0PM+f0MP+f000+fPPP+fMMP+fPMP+fMPP+fPPM+fMMM+fPMM+fMPM; vx1MPM = (((fPPP-fMMM)+(fPMP-fMPM)+(fPPM-fMMP)+(fPMM-fMPP)) + (((fPP0-fMM0)+(fP0P-fM0M))+((fPM0-fMP0)+(fP0M-fM0P))) + (fP00-fM00))/(c1o1 + drhoMPM); - vx2MPM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoMPM); - vx3MPM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoMPM); + vx2MPM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoMPM); + vx3MPM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoMPM); - kxyFromfcNEQMPM = -c3o1*omegaS* ((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoMPM) - ((vx1MPM*vx2MPM))); - kyzFromfcNEQMPM = -c3o1*omegaS* ((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoMPM) - ((vx2MPM*vx3MPM))); - kxzFromfcNEQMPM = -c3o1*omegaS* ((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoMPM) - ((vx1MPM*vx3MPM))); - kxxMyyFromfcNEQMPM = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoMPM) - ((vx1MPM*vx1MPM - vx2MPM*vx2MPM))); - kxxMzzFromfcNEQMPM = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoMPM) - ((vx1MPM*vx1MPM - vx3MPM*vx3MPM))); - kyyMzzFromfcNEQMPM = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoMPM) - ((vx2MPM*vx2MPM - vx3MPM*vx3MPM))); + kxyFromfcNEQMPM = -c3o1*omegaS* ((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoMPM) - ((vx1MPM*vx2MPM))); + kyzFromfcNEQMPM = -c3o1*omegaS* ((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoMPM) - ((vx2MPM*vx3MPM))); + kxzFromfcNEQMPM = -c3o1*omegaS* ((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoMPM) - ((vx1MPM*vx3MPM))); + kxxMyyFromfcNEQMPM = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoMPM) - ((vx1MPM*vx1MPM - vx2MPM*vx2MPM))); + kxxMzzFromfcNEQMPM = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoMPM) - ((vx1MPM*vx1MPM - vx3MPM*vx3MPM))); + kyyMzzFromfcNEQMPM = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoMPM) - ((vx2MPM*vx2MPM - vx3MPM*vx3MPM))); - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// //NWT// ////////////////////////////////////////////////////////////////////////// //index @@ -1756,45 +1756,45 @@ __global__ void scaleFC_comp_D3Q27F3( real* DC, k0MM = neighborFZ[k0MM]; kMMM = neighborFZ[kMMM]; //////////////////////////////////////////////////////////////////////////////// - fP00 = fP00source[k000]; - fM00 = fM00source[kM00]; - f0P0 = f0P0source[k000]; - f0M0 = f0M0source[k0M0]; - f00P = f00Psource[k000]; - f00M = f00Msource[k00M]; - fPP0 = fPP0source[k000]; - fMM0 = fMM0source[kMM0]; - fPM0 = fPM0source[k0M0]; - fMP0 = fMP0source[kM00]; - fP0P = fP0Psource[k000]; - fM0M = fM0Msource[kM0M]; - fP0M = fP0Msource[k00M]; - fM0P = fM0Psource[kM00]; - f0PP = f0PPsource[k000]; - f0MM = f0MMsource[k0MM]; - f0PM = f0PMsource[k00M]; - f0MP = f0MPsource[k0M0]; - f000 = f000source[k000]; - fMMM = fMMMsource[kMMM]; - fMMP = fMMPsource[kMM0]; - fMPP = fMPPsource[kM00]; - fMPM = fMPMsource[kM0M]; - fPPM = fPPMsource[k00M]; - fPPP = fPPPsource[k000]; - fPMP = fPMPsource[k0M0]; - fPMM = fPMMsource[k0MM]; + fP00 = fP00source[k000]; + fM00 = fM00source[kM00]; + f0P0 = f0P0source[k000]; + f0M0 = f0M0source[k0M0]; + f00P = f00Psource[k000]; + f00M = f00Msource[k00M]; + fPP0 = fPP0source[k000]; + fMM0 = fMM0source[kMM0]; + fPM0 = fPM0source[k0M0]; + fMP0 = fMP0source[kM00]; + fP0P = fP0Psource[k000]; + fM0M = fM0Msource[kM0M]; + fP0M = fP0Msource[k00M]; + fM0P = fM0Psource[kM00]; + f0PP = f0PPsource[k000]; + f0MM = f0MMsource[k0MM]; + f0PM = f0PMsource[k00M]; + f0MP = f0MPsource[k0M0]; + f000 = f000source[k000]; + fMMM = fMMMsource[kMMM]; + fMMP = fMMPsource[kMM0]; + fMPP = fMPPsource[kM00]; + fMPM = fMPMsource[kM0M]; + fPPM = fPPMsource[k00M]; + fPPP = fPPPsource[k000]; + fPMP = fPMPsource[k0M0]; + fPMM = fPMMsource[k0MM]; drhoMPP = fP00+fM00+f0P0+f0M0+f00P+f00M+fPP0+fMM0+fPM0+fMP0+fP0P+fM0M+fP0M+fM0P+f0PP+f0MM+f0PM+f0MP+f000+fPPP+fMMP+fPMP+fMPP+fPPM+fMMM+fPMM+fMPM; vx1MPP = (((fPPP-fMMM)+(fPMP-fMPM)+(fPPM-fMMP)+(fPMM-fMPP)) + (((fPP0-fMM0)+(fP0P-fM0M))+((fPM0-fMP0)+(fP0M-fM0P))) + (fP00-fM00))/(c1o1 + drhoMPP); - vx2MPP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoMPP); - vx3MPP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoMPP); + vx2MPP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoMPP); + vx3MPP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoMPP); - kxyFromfcNEQMPP = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoMPP) - ((vx1MPP*vx2MPP))); - kyzFromfcNEQMPP = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoMPP) - ((vx2MPP*vx3MPP))); - kxzFromfcNEQMPP = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoMPP) - ((vx1MPP*vx3MPP))); - kxxMyyFromfcNEQMPP = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoMPP) - ((vx1MPP*vx1MPP - vx2MPP*vx2MPP))); - kxxMzzFromfcNEQMPP = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoMPP) - ((vx1MPP*vx1MPP - vx3MPP*vx3MPP))); - kyyMzzFromfcNEQMPP = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoMPP) - ((vx2MPP*vx2MPP - vx3MPP*vx3MPP))); + kxyFromfcNEQMPP = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoMPP) - ((vx1MPP*vx2MPP))); + kyzFromfcNEQMPP = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoMPP) - ((vx2MPP*vx3MPP))); + kxzFromfcNEQMPP = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoMPP) - ((vx1MPP*vx3MPP))); + kxxMyyFromfcNEQMPP = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoMPP) - ((vx1MPP*vx1MPP - vx2MPP*vx2MPP))); + kxxMzzFromfcNEQMPP = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoMPP) - ((vx1MPP*vx1MPP - vx3MPP*vx3MPP))); + kyyMzzFromfcNEQMPP = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoMPP) - ((vx2MPP*vx2MPP - vx3MPP*vx3MPP))); ////////////////////////////////////////////////////////////////////////// //NET// @@ -1809,45 +1809,45 @@ __global__ void scaleFC_comp_D3Q27F3( real* DC, k0MM = kMMM; kMMM = neighborFX[kMMM]; //////////////////////////////////////////////////////////////////////////////// - fP00 = fP00source[k000]; - fM00 = fM00source[kM00]; - f0P0 = f0P0source[k000]; - f0M0 = f0M0source[k0M0]; - f00P = f00Psource[k000]; - f00M = f00Msource[k00M]; - fPP0 = fPP0source[k000]; - fMM0 = fMM0source[kMM0]; - fPM0 = fPM0source[k0M0]; - fMP0 = fMP0source[kM00]; - fP0P = fP0Psource[k000]; - fM0M = fM0Msource[kM0M]; - fP0M = fP0Msource[k00M]; - fM0P = fM0Psource[kM00]; - f0PP = f0PPsource[k000]; - f0MM = f0MMsource[k0MM]; - f0PM = f0PMsource[k00M]; - f0MP = f0MPsource[k0M0]; - f000 = f000source[k000]; - fMMM = fMMMsource[kMMM]; - fMMP = fMMPsource[kMM0]; - fMPP = fMPPsource[kM00]; - fMPM = fMPMsource[kM0M]; - fPPM = fPPMsource[k00M]; - fPPP = fPPPsource[k000]; - fPMP = fPMPsource[k0M0]; - fPMM = fPMMsource[k0MM]; + fP00 = fP00source[k000]; + fM00 = fM00source[kM00]; + f0P0 = f0P0source[k000]; + f0M0 = f0M0source[k0M0]; + f00P = f00Psource[k000]; + f00M = f00Msource[k00M]; + fPP0 = fPP0source[k000]; + fMM0 = fMM0source[kMM0]; + fPM0 = fPM0source[k0M0]; + fMP0 = fMP0source[kM00]; + fP0P = fP0Psource[k000]; + fM0M = fM0Msource[kM0M]; + fP0M = fP0Msource[k00M]; + fM0P = fM0Psource[kM00]; + f0PP = f0PPsource[k000]; + f0MM = f0MMsource[k0MM]; + f0PM = f0PMsource[k00M]; + f0MP = f0MPsource[k0M0]; + f000 = f000source[k000]; + fMMM = fMMMsource[kMMM]; + fMMP = fMMPsource[kMM0]; + fMPP = fMPPsource[kM00]; + fMPM = fMPMsource[kM0M]; + fPPM = fPPMsource[k00M]; + fPPP = fPPPsource[k000]; + fPMP = fPMPsource[k0M0]; + fPMM = fPMMsource[k0MM]; drhoPPP = fP00+fM00+f0P0+f0M0+f00P+f00M+fPP0+fMM0+fPM0+fMP0+fP0P+fM0M+fP0M+fM0P+f0PP+f0MM+f0PM+f0MP+f000+fPPP+fMMP+fPMP+fMPP+fPPM+fMMM+fPMM+fMPM; vx1PPP = (((fPPP-fMMM)+(fPMP-fMPM)+(fPPM-fMMP)+(fPMM-fMPP)) + (((fPP0-fMM0)+(fP0P-fM0M))+((fPM0-fMP0)+(fP0M-fM0P))) + (fP00-fM00))/(c1o1 + drhoPPP); - vx2PPP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoPPP); - vx3PPP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoPPP); + vx2PPP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoPPP); + vx3PPP = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoPPP); - kxyFromfcNEQPPP = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoPPP) - ((vx1PPP*vx2PPP))); - kyzFromfcNEQPPP = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoPPP) - ((vx2PPP*vx3PPP))); - kxzFromfcNEQPPP = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoPPP) - ((vx1PPP*vx3PPP))); - kxxMyyFromfcNEQPPP = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoPPP) - ((vx1PPP*vx1PPP - vx2PPP*vx2PPP))); - kxxMzzFromfcNEQPPP = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoPPP) - ((vx1PPP*vx1PPP - vx3PPP*vx3PPP))); - kyyMzzFromfcNEQPPP = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoPPP) - ((vx2PPP*vx2PPP - vx3PPP*vx3PPP))); + kxyFromfcNEQPPP = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoPPP) - ((vx1PPP*vx2PPP))); + kyzFromfcNEQPPP = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoPPP) - ((vx2PPP*vx3PPP))); + kxzFromfcNEQPPP = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoPPP) - ((vx1PPP*vx3PPP))); + kxxMyyFromfcNEQPPP = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoPPP) - ((vx1PPP*vx1PPP - vx2PPP*vx2PPP))); + kxxMzzFromfcNEQPPP = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoPPP) - ((vx1PPP*vx1PPP - vx3PPP*vx3PPP))); + kyyMzzFromfcNEQPPP = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoPPP) - ((vx2PPP*vx2PPP - vx3PPP*vx3PPP))); ////////////////////////////////////////////////////////////////////////// //NEB// @@ -1862,142 +1862,142 @@ __global__ void scaleFC_comp_D3Q27F3( real* DC, k0M0 = kMM0base; kMM0 = neighborFX[kMM0base]; //////////////////////////////////////////////////////////////////////////////// - fP00 = fP00source[k000]; - fM00 = fM00source[kM00]; - f0P0 = f0P0source[k000]; - f0M0 = f0M0source[k0M0]; - f00P = f00Psource[k000]; - f00M = f00Msource[k00M]; - fPP0 = fPP0source[k000]; - fMM0 = fMM0source[kMM0]; - fPM0 = fPM0source[k0M0]; - fMP0 = fMP0source[kM00]; - fP0P = fP0Psource[k000]; - fM0M = fM0Msource[kM0M]; - fP0M = fP0Msource[k00M]; - fM0P = fM0Psource[kM00]; - f0PP = f0PPsource[k000]; - f0MM = f0MMsource[k0MM]; - f0PM = f0PMsource[k00M]; - f0MP = f0MPsource[k0M0]; - f000 = f000source[k000]; - fMMM = fMMMsource[kMMM]; - fMMP = fMMPsource[kMM0]; - fMPP = fMPPsource[kM00]; - fMPM = fMPMsource[kM0M]; - fPPM = fPPMsource[k00M]; - fPPP = fPPPsource[k000]; - fPMP = fPMPsource[k0M0]; - fPMM = fPMMsource[k0MM]; + fP00 = fP00source[k000]; + fM00 = fM00source[kM00]; + f0P0 = f0P0source[k000]; + f0M0 = f0M0source[k0M0]; + f00P = f00Psource[k000]; + f00M = f00Msource[k00M]; + fPP0 = fPP0source[k000]; + fMM0 = fMM0source[kMM0]; + fPM0 = fPM0source[k0M0]; + fMP0 = fMP0source[kM00]; + fP0P = fP0Psource[k000]; + fM0M = fM0Msource[kM0M]; + fP0M = fP0Msource[k00M]; + fM0P = fM0Psource[kM00]; + f0PP = f0PPsource[k000]; + f0MM = f0MMsource[k0MM]; + f0PM = f0PMsource[k00M]; + f0MP = f0MPsource[k0M0]; + f000 = f000source[k000]; + fMMM = fMMMsource[kMMM]; + fMMP = fMMPsource[kMM0]; + fMPP = fMPPsource[kM00]; + fMPM = fMPMsource[kM0M]; + fPPM = fPPMsource[k00M]; + fPPP = fPPPsource[k000]; + fPMP = fPMPsource[k0M0]; + fPMM = fPMMsource[k0MM]; drhoPPM = fP00+fM00+f0P0+f0M0+f00P+f00M+fPP0+fMM0+fPM0+fMP0+fP0P+fM0M+fP0M+fM0P+f0PP+f0MM+f0PM+f0MP+f000+fPPP+fMMP+fPMP+fMPP+fPPM+fMMM+fPMM+fMPM; vx1PPM = (((fPPP-fMMM)+(fPMP-fMPM)+(fPPM-fMMP)+(fPMM-fMPP)) + (((fPP0-fMM0)+(fP0P-fM0M))+((fPM0-fMP0)+(fP0M-fM0P))) + (fP00-fM00))/(c1o1 + drhoPPM); - vx2PPM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoPPM); - vx3PPM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoPPM); + vx2PPM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPPM-fMMP)+(fMPM-fPMP)) + (((fPP0-fMM0)+(f0PP-f0MM))+((f0PM-f0MP)+(fMP0-fPM0))) + (f0P0-f0M0))/(c1o1 + drhoPPM); + vx3PPM = (((fPPP-fMMM)+(fMPP-fPMM)+(fPMP-fMPM)+(fMMP-fPPM)) + (((fP0P-fM0M)+(f0PP-f0MM))+((fM0P-fP0M)+(f0MP-f0PM))) + (f00P-f00M))/(c1o1 + drhoPPM); - kxyFromfcNEQPPM = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoPPM) - ((vx1PPM*vx2PPM))); - kyzFromfcNEQPPM = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoPPM) - ((vx2PPM*vx3PPM))); - kxzFromfcNEQPPM = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoPPM) - ((vx1PPM*vx3PPM))); - kxxMyyFromfcNEQPPM = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoPPM) - ((vx1PPM*vx1PPM - vx2PPM*vx2PPM))); - kxxMzzFromfcNEQPPM = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoPPM) - ((vx1PPM*vx1PPM - vx3PPM*vx3PPM))); - kyyMzzFromfcNEQPPM = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoPPM) - ((vx2PPM*vx2PPM - vx3PPM*vx3PPM))); + kxyFromfcNEQPPM = -c3o1*omegaS*((((fMM0 - fPM0) + (fPP0 - fMP0)) + (((fMMM - fPMM) + (fPPM - fMPM)) + ((fMMP - fPMP) + (fPPP - fMPP)))) / (c1o1 + drhoPPM) - ((vx1PPM*vx2PPM))); + kyzFromfcNEQPPM = -c3o1*omegaS*((((f0MM - f0MP) + (f0PP - f0PM)) + (((fPMM - fPMP) + (fMMM - fMPM)) + ((fPPP - fPPM) + (fMPP - fMMP)))) / (c1o1 + drhoPPM) - ((vx2PPM*vx3PPM))); + kxzFromfcNEQPPM = -c3o1*omegaS*((((fM0M - fP0M) + (fP0P - fM0P)) + (((fMMM - fPMM) + (fMPM - fPPM)) + ((fPMP - fMMP) + (fPPP - fMPP)))) / (c1o1 + drhoPPM) - ((vx1PPM*vx3PPM))); + kxxMyyFromfcNEQPPM = -c3o2*omegaS *(((((fM0M - f0MM) + (fM0P - f0MP)) + ((fP0M - f0PM) + (fP0P - f0PP))) + ((fM00 - f0M0) + (fP00 - f0P0))) / (c1o1 + drhoPPM) - ((vx1PPM*vx1PPM - vx2PPM*vx2PPM))); + kxxMzzFromfcNEQPPM = -c3o2*omegaS *(((((fMM0 - f0MM) + (fMP0 - f0PM)) + ((fPM0 - f0MP) + (fPP0 - f0PP))) + ((fM00 - f00M) + (fP00 - f00P))) / (c1o1 + drhoPPM) - ((vx1PPM*vx1PPM - vx3PPM*vx3PPM))); + kyyMzzFromfcNEQPPM = -c3o2*omegaS *(((((fPM0 - fP0M) + (fMM0 - fM0M)) + ((fPP0 - fP0P) + (fMP0 - fM0P))) + ((f0M0 - f00M) + (f0P0 - f00P))) / (c1o1 + drhoPPM) - ((vx2PPM*vx2PPM - vx3PPM*vx3PPM))); ////////////////////////////////////////////////////////////////////////// //3 ////////////////////////////////////////////////////////////////////////// - a0 = c1o8*(((vx1PPM + vx1MMP) + (vx1MPM + vx1PMP)) + ((vx1PMM + vx1MPP) + (vx1MMM + vx1PPP))); - ax = c1o4*(((vx1PPM - vx1MMP) + (vx1PPP - vx1MMM)) + ((vx1PMP - vx1MPM) + (vx1PMM - vx1MPP))); - ay = c1o4*(((vx1PPM - vx1MMP) + (vx1PPP - vx1MMM)) + ((vx1MPM - vx1PMP) + (vx1MPP - vx1PMM))); - az = c1o4*(((vx1MMP - vx1PPM) + (vx1PPP - vx1MMM)) + ((vx1PMP - vx1MPM) + (vx1MPP - vx1PMM))); - axy = c1o2*(((vx1PPM - vx1PMP) + (vx1MMM - vx1MPP)) + ((vx1MMP - vx1MPM) + (vx1PPP - vx1PMM))); - axz = c1o2*(((vx1PMP - vx1PPM) + (vx1MMM - vx1MPP)) + ((vx1MPM - vx1MMP) + (vx1PPP - vx1PMM))); - ayz = c1o2*(((vx1PPP - vx1MPM) + (vx1PMM - vx1MMP)) + ((vx1MPP - vx1PPM) + (vx1MMM - vx1PMP))); - //axyz= ((vx1MMP - vx1PPM) + (vx1PPP - vx1MMM)) + ((vx1MPM - vx1PMP) + (vx1PMM - vx1MPP)) ; - b0 = c1o8*(((vx2PPM + vx2MMP) + (vx2MPM + vx2PMP)) + ((vx2PMM + vx2MPP) + (vx2MMM + vx2PPP))); - bx = c1o4*(((vx2PPM - vx2MMP) + (vx2PPP - vx2MMM)) + ((vx2PMP - vx2MPM) + (vx2PMM - vx2MPP))); - by = c1o4*(((vx2PPM - vx2MMP) + (vx2PPP - vx2MMM)) + ((vx2MPM - vx2PMP) + (vx2MPP - vx2PMM))); - bz = c1o4*(((vx2MMP - vx2PPM) + (vx2PPP - vx2MMM)) + ((vx2PMP - vx2MPM) + (vx2MPP - vx2PMM))); - bxy = c1o2*(((vx2PPM - vx2MPP) + (vx2MMM - vx2PMP)) + ((vx2MMP - vx2PMM) + (vx2PPP - vx2MPM))); - bxz = c1o2*(((vx2MMM - vx2PPM) + (vx2PMP - vx2MPP)) + ((vx2MPM - vx2PMM) + (vx2PPP - vx2MMP))); - byz = c1o2*(((vx2MPP - vx2PPM) + (vx2MMM - vx2PMP)) + ((vx2PMM - vx2MMP) + (vx2PPP - vx2MPM))); - //bxyz= ((vx2MMP - vx2PPM) + (vx2PPP - vx2MMM)) + ((vx2MPM - vx2PMP) + (vx2PMM - vx2MPP)) ; - c0 = c1o8*(((vx3PPM + vx3MMP) + (vx3MPM + vx3PMP)) + ((vx3PMM + vx3MPP) + (vx3MMM + vx3PPP))); - cx = c1o4*(((vx3PPM - vx3MMP) + (vx3PPP - vx3MMM)) + ((vx3PMP - vx3MPM) + (vx3PMM - vx3MPP))); - cy = c1o4*(((vx3PPM - vx3MMP) + (vx3PPP - vx3MMM)) + ((vx3MPM - vx3PMP) + (vx3MPP - vx3PMM))); - cz = c1o4*(((vx3MMP - vx3PPM) + (vx3PPP - vx3MMM)) + ((vx3PMP - vx3MPM) + (vx3MPP - vx3PMM))); - cxy = c1o2*(((vx3PPM - vx3PMP) + (vx3MMM - vx3MPP)) + ((vx3MMP - vx3MPM) + (vx3PPP - vx3PMM))); - cxz = c1o2*(((vx3MMM - vx3PPM) + (vx3PMP - vx3MPP)) + ((vx3MPM - vx3PMM) + (vx3PPP - vx3MMP))); - cyz = c1o2*(((vx3MMM - vx3PPM) + (vx3MPP - vx3PMP)) + ((vx3PMM - vx3MPM) + (vx3PPP - vx3MMP))); - //cxyz= ((vx3MMP - vx3PPM) + (vx3PPP - vx3MMM)) + ((vx3MPM - vx3PMP) + (vx3PMM - vx3MPP)) ; - - //bxx = zero; - //cxx = zero; - //ayy = zero; - //cyy = zero; - //azz = zero; - //bzz = zero; - //axx = zero; - //byy = zero; - //czz = zero; - - bxx = c1o8*(((kxyFromfcNEQPPP - kxyFromfcNEQMMM) + (kxyFromfcNEQPMM - kxyFromfcNEQMPP)) + ((kxyFromfcNEQPMP - kxyFromfcNEQMPM) + (kxyFromfcNEQPPM - kxyFromfcNEQMMP))) - c1o2*axy; - cxx = c1o8*(((kxzFromfcNEQPPP - kxzFromfcNEQMMM) + (kxzFromfcNEQPMM - kxzFromfcNEQMPP)) + ((kxzFromfcNEQPMP - kxzFromfcNEQMPM) + (kxzFromfcNEQPPM - kxzFromfcNEQMMP))) - c1o2*axz; - - ayy = c1o8*(((kxyFromfcNEQPPP - kxyFromfcNEQMMM) + (kxyFromfcNEQPPM - kxyFromfcNEQMMP)) - ((kxyFromfcNEQPMM - kxyFromfcNEQMPP) + (kxyFromfcNEQPMP - kxyFromfcNEQMPM))) - c1o2*bxy; - cyy = c1o8*(((kyzFromfcNEQPPP - kyzFromfcNEQMMM) + (kyzFromfcNEQPPM - kyzFromfcNEQMMP)) - ((kyzFromfcNEQPMM - kyzFromfcNEQMPP) + (kyzFromfcNEQPMP - kyzFromfcNEQMPM))) - c1o2*byz; - - azz = c1o8*(((kxzFromfcNEQPPP - kxzFromfcNEQMMM) - (kxzFromfcNEQPMM - kxzFromfcNEQMPP)) + ((kxzFromfcNEQPMP - kxzFromfcNEQMPM) - (kxzFromfcNEQPPM - kxzFromfcNEQMMP))) - c1o2*cxz; - bzz = c1o8*(((kyzFromfcNEQPPP - kyzFromfcNEQMMM) - (kyzFromfcNEQPMM - kyzFromfcNEQMPP)) + ((kyzFromfcNEQPMP - kyzFromfcNEQMPM) - (kyzFromfcNEQPPM - kyzFromfcNEQMMP))) - c1o2*cyz; - - axx = ( c1o16*(((kxxMyyFromfcNEQPPP - kxxMyyFromfcNEQMMM) + (kxxMyyFromfcNEQPMM - kxxMyyFromfcNEQMPP)) + ((kxxMyyFromfcNEQPMP - kxxMyyFromfcNEQMPM) + (kxxMyyFromfcNEQPPM - kxxMyyFromfcNEQMMP))) - c1o4*bxy) - + ( c1o16*(((kxxMzzFromfcNEQPPP - kxxMzzFromfcNEQMMM) + (kxxMzzFromfcNEQPMM - kxxMzzFromfcNEQMPP)) + ((kxxMzzFromfcNEQPMP - kxxMzzFromfcNEQMPM) + (kxxMzzFromfcNEQPPM - kxxMzzFromfcNEQMMP))) - c1o4*cxz); - - byy = (-c1o16*(((kxxMyyFromfcNEQPPP - kxxMyyFromfcNEQMMM) - (kxxMyyFromfcNEQPMM - kxxMyyFromfcNEQMPP)) + ((kxxMyyFromfcNEQPPM - kxxMyyFromfcNEQMMP) - (kxxMyyFromfcNEQPMP - kxxMyyFromfcNEQMPM))) - c1o4*axy) - + ( c1o16*(((kyyMzzFromfcNEQPPP - kyyMzzFromfcNEQMMM) - (kyyMzzFromfcNEQPMM - kyyMzzFromfcNEQMPP)) + ((kyyMzzFromfcNEQPPM - kyyMzzFromfcNEQMMP) - (kyyMzzFromfcNEQPMP - kyyMzzFromfcNEQMPM))) - c1o4*cyz); - - czz = (-c1o16*(((kxxMzzFromfcNEQPPP - kxxMzzFromfcNEQMMM) - (kxxMzzFromfcNEQPMM - kxxMzzFromfcNEQMPP)) - ((kxxMzzFromfcNEQPPM - kxxMzzFromfcNEQMMP) - (kxxMzzFromfcNEQPMP - kxxMzzFromfcNEQMPM))) - c1o4*axz) - + ( c1o16*(((kyyMzzFromfcNEQPPP - kyyMzzFromfcNEQMMM) - (kyyMzzFromfcNEQPMM - kyyMzzFromfcNEQMPP)) - ((kyyMzzFromfcNEQPPM - kyyMzzFromfcNEQMMP) - (kyyMzzFromfcNEQPMP - kyyMzzFromfcNEQMPM))) - c1o4*byz); - - a0 -= c1o4*(axx + ayy + azz); - b0 -= c1o4*(bxx + byy + bzz); - c0 -= c1o4*(cxx + cyy + czz); - - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real kxyAverage = c0; - real kyzAverage = c0; - real kxzAverage = c0; - real kxxMyyAverage = c0; - real kxxMzzAverage = c0; - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - ////Press - //d0 = ( pressPPM + pressPPP + pressMPM + pressMPP + pressPMM + pressPMP + pressMMM + pressMMP) * c1o8; - //dx = ( pressPPM + pressPPP - pressMPM - pressMPP + pressPMM + pressPMP - pressMMM - pressMMP) * c1o4; - //dy = ( pressPPM + pressPPP + pressMPM + pressMPP - pressPMM - pressPMP - pressMMM - pressMMP) * c1o4; - //dz = (-pressPPM + pressPPP - pressMPM + pressMPP - pressPMM + pressPMP - pressMMM + pressMMP) * c1o4; - //dxy = ( pressPPM + pressPPP - pressMPM - pressMPP - pressPMM - pressPMP + pressMMM + pressMMP) * c1o2; - //dxz = (-pressPPM + pressPPP + pressMPM - pressMPP - pressPMM + pressPMP + pressMMM - pressMMP) * c1o2; - //dyz = (-pressPPM + pressPPP - pressMPM + pressMPP + pressPMM - pressPMP + pressMMM - pressMMP) * c1o2; - //dxyz = -pressPPM + pressPPP + pressMPM - pressMPP + pressPMM - pressPMP - pressMMM + pressMMP; - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho - d0 = ( ((drhoPPM + drhoMMP) + (drhoMPM + drhoPMP)) + ((drhoPMM + drhoMPP) + (drhoMMM + drhoPPP))) * c1o8; - dx = ( ((drhoPPM - drhoMMP) + (drhoPMM - drhoMPP)) + ((drhoPMP - drhoMPM) + (drhoPPP - drhoMMM))) * c1o4; - dy = ( ((drhoPPM - drhoMMP) + (drhoMPP - drhoPMM)) + ((drhoMPM - drhoPMP) + (drhoPPP - drhoMMM))) * c1o4; - dz = ( ((drhoMMP - drhoPPM) + (drhoPPP - drhoMMM)) + ((drhoPMP - drhoMPM) + (drhoMPP - drhoPMM))) * c1o4; - dxy = ( ((drhoPPM - drhoPMP) + (drhoPPP - drhoPMM)) + ((drhoMMP - drhoMPM) + (drhoMMM - drhoMPP))) * c1o2; - dxz = ( ((drhoMMM - drhoPPM) + (drhoPPP - drhoMMP)) + ((drhoMPM - drhoPMM) + (drhoPMP - drhoMPP))) * c1o2; - dyz = ( ((drhoMPP - drhoPPM) + (drhoPPP - drhoMPM)) + ((drhoPMM - drhoMMP) + (drhoMMM - drhoPMP))) * c1o2; + a0 = c1o8*(((vx1PPM + vx1MMP) + (vx1MPM + vx1PMP)) + ((vx1PMM + vx1MPP) + (vx1MMM + vx1PPP))); + ax = c1o4*(((vx1PPM - vx1MMP) + (vx1PPP - vx1MMM)) + ((vx1PMP - vx1MPM) + (vx1PMM - vx1MPP))); + ay = c1o4*(((vx1PPM - vx1MMP) + (vx1PPP - vx1MMM)) + ((vx1MPM - vx1PMP) + (vx1MPP - vx1PMM))); + az = c1o4*(((vx1MMP - vx1PPM) + (vx1PPP - vx1MMM)) + ((vx1PMP - vx1MPM) + (vx1MPP - vx1PMM))); + axy = c1o2*(((vx1PPM - vx1PMP) + (vx1MMM - vx1MPP)) + ((vx1MMP - vx1MPM) + (vx1PPP - vx1PMM))); + axz = c1o2*(((vx1PMP - vx1PPM) + (vx1MMM - vx1MPP)) + ((vx1MPM - vx1MMP) + (vx1PPP - vx1PMM))); + ayz = c1o2*(((vx1PPP - vx1MPM) + (vx1PMM - vx1MMP)) + ((vx1MPP - vx1PPM) + (vx1MMM - vx1PMP))); + //axyz= ((vx1MMP - vx1PPM) + (vx1PPP - vx1MMM)) + ((vx1MPM - vx1PMP) + (vx1PMM - vx1MPP)) ; + b0 = c1o8*(((vx2PPM + vx2MMP) + (vx2MPM + vx2PMP)) + ((vx2PMM + vx2MPP) + (vx2MMM + vx2PPP))); + bx = c1o4*(((vx2PPM - vx2MMP) + (vx2PPP - vx2MMM)) + ((vx2PMP - vx2MPM) + (vx2PMM - vx2MPP))); + by = c1o4*(((vx2PPM - vx2MMP) + (vx2PPP - vx2MMM)) + ((vx2MPM - vx2PMP) + (vx2MPP - vx2PMM))); + bz = c1o4*(((vx2MMP - vx2PPM) + (vx2PPP - vx2MMM)) + ((vx2PMP - vx2MPM) + (vx2MPP - vx2PMM))); + bxy = c1o2*(((vx2PPM - vx2MPP) + (vx2MMM - vx2PMP)) + ((vx2MMP - vx2PMM) + (vx2PPP - vx2MPM))); + bxz = c1o2*(((vx2MMM - vx2PPM) + (vx2PMP - vx2MPP)) + ((vx2MPM - vx2PMM) + (vx2PPP - vx2MMP))); + byz = c1o2*(((vx2MPP - vx2PPM) + (vx2MMM - vx2PMP)) + ((vx2PMM - vx2MMP) + (vx2PPP - vx2MPM))); + //bxyz= ((vx2MMP - vx2PPM) + (vx2PPP - vx2MMM)) + ((vx2MPM - vx2PMP) + (vx2PMM - vx2MPP)) ; + c0 = c1o8*(((vx3PPM + vx3MMP) + (vx3MPM + vx3PMP)) + ((vx3PMM + vx3MPP) + (vx3MMM + vx3PPP))); + cx = c1o4*(((vx3PPM - vx3MMP) + (vx3PPP - vx3MMM)) + ((vx3PMP - vx3MPM) + (vx3PMM - vx3MPP))); + cy = c1o4*(((vx3PPM - vx3MMP) + (vx3PPP - vx3MMM)) + ((vx3MPM - vx3PMP) + (vx3MPP - vx3PMM))); + cz = c1o4*(((vx3MMP - vx3PPM) + (vx3PPP - vx3MMM)) + ((vx3PMP - vx3MPM) + (vx3MPP - vx3PMM))); + cxy = c1o2*(((vx3PPM - vx3PMP) + (vx3MMM - vx3MPP)) + ((vx3MMP - vx3MPM) + (vx3PPP - vx3PMM))); + cxz = c1o2*(((vx3MMM - vx3PPM) + (vx3PMP - vx3MPP)) + ((vx3MPM - vx3PMM) + (vx3PPP - vx3MMP))); + cyz = c1o2*(((vx3MMM - vx3PPM) + (vx3MPP - vx3PMP)) + ((vx3PMM - vx3MPM) + (vx3PPP - vx3MMP))); + //cxyz= ((vx3MMP - vx3PPM) + (vx3PPP - vx3MMM)) + ((vx3MPM - vx3PMP) + (vx3PMM - vx3MPP)) ; + + //bxx = zero; + //cxx = zero; + //ayy = zero; + //cyy = zero; + //azz = zero; + //bzz = zero; + //axx = zero; + //byy = zero; + //czz = zero; + + bxx = c1o8*(((kxyFromfcNEQPPP - kxyFromfcNEQMMM) + (kxyFromfcNEQPMM - kxyFromfcNEQMPP)) + ((kxyFromfcNEQPMP - kxyFromfcNEQMPM) + (kxyFromfcNEQPPM - kxyFromfcNEQMMP))) - c1o2*axy; + cxx = c1o8*(((kxzFromfcNEQPPP - kxzFromfcNEQMMM) + (kxzFromfcNEQPMM - kxzFromfcNEQMPP)) + ((kxzFromfcNEQPMP - kxzFromfcNEQMPM) + (kxzFromfcNEQPPM - kxzFromfcNEQMMP))) - c1o2*axz; + + ayy = c1o8*(((kxyFromfcNEQPPP - kxyFromfcNEQMMM) + (kxyFromfcNEQPPM - kxyFromfcNEQMMP)) - ((kxyFromfcNEQPMM - kxyFromfcNEQMPP) + (kxyFromfcNEQPMP - kxyFromfcNEQMPM))) - c1o2*bxy; + cyy = c1o8*(((kyzFromfcNEQPPP - kyzFromfcNEQMMM) + (kyzFromfcNEQPPM - kyzFromfcNEQMMP)) - ((kyzFromfcNEQPMM - kyzFromfcNEQMPP) + (kyzFromfcNEQPMP - kyzFromfcNEQMPM))) - c1o2*byz; + + azz = c1o8*(((kxzFromfcNEQPPP - kxzFromfcNEQMMM) - (kxzFromfcNEQPMM - kxzFromfcNEQMPP)) + ((kxzFromfcNEQPMP - kxzFromfcNEQMPM) - (kxzFromfcNEQPPM - kxzFromfcNEQMMP))) - c1o2*cxz; + bzz = c1o8*(((kyzFromfcNEQPPP - kyzFromfcNEQMMM) - (kyzFromfcNEQPMM - kyzFromfcNEQMPP)) + ((kyzFromfcNEQPMP - kyzFromfcNEQMPM) - (kyzFromfcNEQPPM - kyzFromfcNEQMMP))) - c1o2*cyz; + + axx = ( c1o16*(((kxxMyyFromfcNEQPPP - kxxMyyFromfcNEQMMM) + (kxxMyyFromfcNEQPMM - kxxMyyFromfcNEQMPP)) + ((kxxMyyFromfcNEQPMP - kxxMyyFromfcNEQMPM) + (kxxMyyFromfcNEQPPM - kxxMyyFromfcNEQMMP))) - c1o4*bxy) + + ( c1o16*(((kxxMzzFromfcNEQPPP - kxxMzzFromfcNEQMMM) + (kxxMzzFromfcNEQPMM - kxxMzzFromfcNEQMPP)) + ((kxxMzzFromfcNEQPMP - kxxMzzFromfcNEQMPM) + (kxxMzzFromfcNEQPPM - kxxMzzFromfcNEQMMP))) - c1o4*cxz); + + byy = (-c1o16*(((kxxMyyFromfcNEQPPP - kxxMyyFromfcNEQMMM) - (kxxMyyFromfcNEQPMM - kxxMyyFromfcNEQMPP)) + ((kxxMyyFromfcNEQPPM - kxxMyyFromfcNEQMMP) - (kxxMyyFromfcNEQPMP - kxxMyyFromfcNEQMPM))) - c1o4*axy) + + ( c1o16*(((kyyMzzFromfcNEQPPP - kyyMzzFromfcNEQMMM) - (kyyMzzFromfcNEQPMM - kyyMzzFromfcNEQMPP)) + ((kyyMzzFromfcNEQPPM - kyyMzzFromfcNEQMMP) - (kyyMzzFromfcNEQPMP - kyyMzzFromfcNEQMPM))) - c1o4*cyz); + + czz = (-c1o16*(((kxxMzzFromfcNEQPPP - kxxMzzFromfcNEQMMM) - (kxxMzzFromfcNEQPMM - kxxMzzFromfcNEQMPP)) - ((kxxMzzFromfcNEQPPM - kxxMzzFromfcNEQMMP) - (kxxMzzFromfcNEQPMP - kxxMzzFromfcNEQMPM))) - c1o4*axz) + + ( c1o16*(((kyyMzzFromfcNEQPPP - kyyMzzFromfcNEQMMM) - (kyyMzzFromfcNEQPMM - kyyMzzFromfcNEQMPP)) - ((kyyMzzFromfcNEQPPM - kyyMzzFromfcNEQMMP) - (kyyMzzFromfcNEQPMP - kyyMzzFromfcNEQMPM))) - c1o4*byz); + + a0 -= c1o4*(axx + ayy + azz); + b0 -= c1o4*(bxx + byy + bzz); + c0 -= c1o4*(cxx + cyy + czz); + + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + real kxyAverage = c0; + real kyzAverage = c0; + real kxzAverage = c0; + real kxxMyyAverage = c0; + real kxxMzzAverage = c0; + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + ////Press + //d0 = ( pressPPM + pressPPP + pressMPM + pressMPP + pressPMM + pressPMP + pressMMM + pressMMP) * c1o8; + //dx = ( pressPPM + pressPPP - pressMPM - pressMPP + pressPMM + pressPMP - pressMMM - pressMMP) * c1o4; + //dy = ( pressPPM + pressPPP + pressMPM + pressMPP - pressPMM - pressPMP - pressMMM - pressMMP) * c1o4; + //dz = (-pressPPM + pressPPP - pressMPM + pressMPP - pressPMM + pressPMP - pressMMM + pressMMP) * c1o4; + //dxy = ( pressPPM + pressPPP - pressMPM - pressMPP - pressPMM - pressPMP + pressMMM + pressMMP) * c1o2; + //dxz = (-pressPPM + pressPPP + pressMPM - pressMPP - pressPMM + pressPMP + pressMMM - pressMMP) * c1o2; + //dyz = (-pressPPM + pressPPP - pressMPM + pressMPP + pressPMM - pressPMP + pressMMM - pressMMP) * c1o2; + //dxyz = -pressPPM + pressPPP + pressMPM - pressMPP + pressPMM - pressPMP - pressMMM + pressMMP; + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho + d0 = ( ((drhoPPM + drhoMMP) + (drhoMPM + drhoPMP)) + ((drhoPMM + drhoMPP) + (drhoMMM + drhoPPP))) * c1o8; + dx = ( ((drhoPPM - drhoMMP) + (drhoPMM - drhoMPP)) + ((drhoPMP - drhoMPM) + (drhoPPP - drhoMMM))) * c1o4; + dy = ( ((drhoPPM - drhoMMP) + (drhoMPP - drhoPMM)) + ((drhoMPM - drhoPMP) + (drhoPPP - drhoMMM))) * c1o4; + dz = ( ((drhoMMP - drhoPPM) + (drhoPPP - drhoMMM)) + ((drhoPMP - drhoMPM) + (drhoMPP - drhoPMM))) * c1o4; + dxy = ( ((drhoPPM - drhoPMP) + (drhoPPP - drhoPMM)) + ((drhoMMP - drhoMPM) + (drhoMMM - drhoMPP))) * c1o2; + dxz = ( ((drhoMMM - drhoPPM) + (drhoPPP - drhoMMP)) + ((drhoMPM - drhoPMM) + (drhoPMP - drhoMPP))) * c1o2; + dyz = ( ((drhoMPP - drhoPPM) + (drhoPPP - drhoMPM)) + ((drhoPMM - drhoMMP) + (drhoMMM - drhoPMP))) * c1o2; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // // Bernd das Brot - // // - // x------x - // | | - // | ---+--->X - // | | \ - // x------x \ - // off-vector + // + // x------x + // | | + // | ---+--->X + // | | \ + // x------x \ + // off-vector //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// a0 = a0 + xoff * ax + yoff * ay + zoff * az + xoff_sq * axx + yoff_sq * ayy + zoff_sq * azz + xoff*yoff*axy + xoff*zoff*axz + yoff*zoff*ayz; ax = ax + c2o1 * xoff * axx + yoff * axy + zoff * axz; @@ -2011,439 +2011,439 @@ __global__ void scaleFC_comp_D3Q27F3( real* DC, cx = cx + c2o1 * xoff * cxx + yoff * cxy + zoff * cxz; cy = cy + c2o1 * yoff * cyy + xoff * cxy + zoff * cyz; cz = cz + c2o1 * zoff * czz + xoff * cxz + yoff * cyz; - d0 = d0 + xoff * dx + yoff * dy + zoff * dz + xoff*yoff*dxy + xoff*zoff*dxz + yoff*zoff*dyz; + d0 = d0 + xoff * dx + yoff * dy + zoff * dz + xoff*yoff*dxy + xoff*zoff*dxz + yoff*zoff*dyz; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + real mfcbb = c0; + real mfabb = c0; + real mfbcb = c0; + real mfbab = c0; + real mfbbc = c0; + real mfbba = c0; + real mfccb = c0; + real mfaab = c0; + real mfcab = c0; + real mfacb = c0; + real mfcbc = c0; + real mfaba = c0; + real mfcba = c0; + real mfabc = c0; + real mfbcc = c0; + real mfbaa = c0; + real mfbca = c0; + real mfbac = c0; + real mfbbb = c0; + real mfccc = c0; + real mfaac = c0; + real mfcac = c0; + real mfacc = c0; + real mfcca = c0; + real mfaaa = c0; + real mfcaa = c0; + real mfaca = c0; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real mfcbb = c0; - real mfabb = c0; - real mfbcb = c0; - real mfbab = c0; - real mfbbc = c0; - real mfbba = c0; - real mfccb = c0; - real mfaab = c0; - real mfcab = c0; - real mfacb = c0; - real mfcbc = c0; - real mfaba = c0; - real mfcba = c0; - real mfabc = c0; - real mfbcc = c0; - real mfbaa = c0; - real mfbca = c0; - real mfbac = c0; - real mfbbb = c0; - real mfccc = c0; - real mfaac = c0; - real mfcac = c0; - real mfacc = c0; - real mfcca = c0; - real mfaaa = c0; - real mfcaa = c0; - real mfaca = c0; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real mgcbb = c0; - real mgabb = c0; - real mgbcb = c0; - real mgbab = c0; - real mgbbc = c0; - real mgbba = c0; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real m0, m1, m2, oMdrho; - real mxxPyyPzz, mxxMyy, mxxMzz, mxxyPyzz, mxxyMyzz, mxxzPyyz, mxxzMyyz, mxyyPxzz, mxyyMxzz; - //real qudricLimit = c1o100;//ganz schlechte Idee -> muss global sein - //real O3 = c2o1 - o; - //real residu, residutmp; - //residutmp = c0;///*-*/ c2o9 * (1./o - c1o2) * eps_new * eps_new; - real NeqOn = c1o1;//zero;//one; //.... one = on ..... zero = off - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //Position C 0., 0., 0. - // - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //x = 0.; - //y = 0.; - //z = 0.; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //real mxoff = -xoff; - //real myoff = -yoff; - //real mzoff = -zoff; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //press = pressPPP * (c1o8 - c1o4 * mxoff - c1o4 * myoff - c1o4 * mzoff) + - // pressMPP * (c1o8 + c1o4 * mxoff - c1o4 * myoff - c1o4 * mzoff) + - // pressPMP * (c1o8 - c1o4 * mxoff + c1o4 * myoff - c1o4 * mzoff) + - // pressMMP * (c1o8 + c1o4 * mxoff + c1o4 * myoff - c1o4 * mzoff) + - // pressPPM * (c1o8 - c1o4 * mxoff - c1o4 * myoff + c1o4 * mzoff) + - // pressMPM * (c1o8 + c1o4 * mxoff - c1o4 * myoff + c1o4 * mzoff) + - // pressPMM * (c1o8 - c1o4 * mxoff + c1o4 * myoff + c1o4 * mzoff) + - // pressMMM * (c1o8 + c1o4 * mxoff + c1o4 * myoff + c1o4 * mzoff); - //drho = drhoPPP * (c1o8 - c1o4 * xoff - c1o4 * yoff - c1o4 * zoff) + - // drhoMPP * (c1o8 + c1o4 * xoff - c1o4 * yoff - c1o4 * zoff) + - // drhoPMP * (c1o8 - c1o4 * xoff + c1o4 * yoff - c1o4 * zoff) + - // drhoMMP * (c1o8 + c1o4 * xoff + c1o4 * yoff - c1o4 * zoff) + - // drhoPPM * (c1o8 - c1o4 * xoff - c1o4 * yoff + c1o4 * zoff) + - // drhoMPM * (c1o8 + c1o4 * xoff - c1o4 * yoff + c1o4 * zoff) + - // drhoPMM * (c1o8 - c1o4 * xoff + c1o4 * yoff + c1o4 * zoff) + - // drhoMMM * (c1o8 + c1o4 * xoff + c1o4 * yoff + c1o4 * zoff); - press = d0; - vvx = a0; - vvy = b0; - vvz = c0; - - //mfaaa = drho; - //mfaaa = press + (ax+by+cz)/three; // 1/3 = 2/3*(1/op-1/2) - mfaaa = press; // if drho is interpolated directly - - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - oMdrho = c1o1; - //oMdrho = one - mfaaa; - - //two - // linear combinations - real oP = o;// :( - mxxPyyPzz = mfaaa -c2o3*(ax+by+cz)*eps_new/oP*(c1o1+press); - //mxxMyy = -c2o3*(ax - by)*eps_new/o; - //mxxMzz = -c2o3*(ax - cz)*eps_new/o; - - //mfabb = -c1o3 * (bz + cy)*eps_new/o; - //mfbab = -c1o3 * (az + cx)*eps_new/o; - //mfbba = -c1o3 * (ay + bx)*eps_new/o; - mxxMyy = -c2o3*((ax - by)+kxxMyyAverage)*eps_new/o * (c1o1 + press); - mxxMzz = -c2o3*((ax - cz)+kxxMzzAverage)*eps_new/o * (c1o1 + press); - - mfabb = -c1o3 * ((bz + cy)+kyzAverage)*eps_new/o * (c1o1 + press); - mfbab = -c1o3 * ((az + cx)+kxzAverage)*eps_new/o * (c1o1 + press); - mfbba = -c1o3 * ((ay + bx)+kxyAverage)*eps_new/o * (c1o1 + press); - - - // linear combinations back - mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; - mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; - - //3. - // linear combinations - //residu = residutmp * (ayz + bxz + cxy ); - //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mfbbb = c0; - - //residu = residutmp * (axy + two*bxx + two*bzz + cyz ); - //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz )); - //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyPyzz = c0; - - //residu = residutmp * (axy + two*bxx - two*bzz - cyz ); - //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz ); - //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxyMyzz = c0; - - //residu = residutmp * (axz + byz + two*cxx + two*cyy ); - //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy )); - //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzPyyz = c0; - - //residu = residutmp * (axz - byz + two*cxx - two*cyy ); - //residu = c1o9*(axz - byz - 2*cxx + 2*cyy ); - //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxxzMyyz = c0; - - //residu = residutmp * (two*ayy + two*azz + bxy + cxz ); - //residu = c1o9*(2*ayy + 2*azz - bxy - cxz ); - //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyPxzz = c0; - - //residu = residutmp * (two*ayy - two*azz + bxy - cxz ); - //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz ); - //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); - mxyyMxzz = c0; - - //////////////////////////////////////////////////////////////////////////////////// - // D3Q27F - mgcbb = (ax - c4o1 * axx) * eps_new; - mgabb = (ax + c4o1 * axx) * eps_new; - mgbcb = (by - c4o1 * byy) * eps_new; - mgbab = (by + c4o1 * byy) * eps_new; - mgbbc = (cz - c4o1 * czz) * eps_new; - mgbba = (cz + c4o1 * czz) * eps_new; - //////////////////////////////////////////////////////////////////////////////////// - - // linear combinations back - mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4. - mfacc = mfaaa*c1o9; - mfcac = mfacc; - mfcca = mfacc; - //5. - - //6. - mfccc = mfaaa*c1o27; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - //index 0 - k000 = posC[k]; - kM00 = neighborCX[k000]; - k0M0 = neighborCY[k000]; - k00M = neighborCZ[k000]; - kMM0 = neighborCY[kM00]; - kM0M = neighborCZ[kM00]; - k0MM = neighborCZ[k0M0]; - kMMM = neighborCZ[kMM0]; - //////////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - (G.g[dP00])[k000] = mgcbb; - (G.g[dM00])[kM00] = mgabb; - (G.g[d0P0])[k000] = mgbcb; - (G.g[d0M0])[k0M0] = mgbab; - (G.g[d00P])[k000] = mgbbc; - (G.g[d00M])[k00M] = mgbba; - //////////////////////////////////////////////////////////////////////////////////// - fP00dest[k000] = mfcbb; - fM00dest[kM00] = mfabb; - f0P0dest[k000] = mfbcb; - f0M0dest[k0M0] = mfbab; - f00Pdest[k000] = mfbbc; - f00Mdest[k00M] = mfbba; - fPP0dest[k000] = mfccb; - fMM0dest[kMM0] = mfaab; - fPM0dest[k0M0] = mfcab; - fMP0dest[kM00] = mfacb; - fP0Pdest[k000] = mfcbc; - fM0Mdest[kM0M] = mfaba; - fP0Mdest[k00M] = mfcba; - fM0Pdest[kM00] = mfabc; - f0PPdest[k000] = mfbcc; - f0MMdest[k0MM] = mfbaa; - f0PMdest[k00M] = mfbca; - f0MPdest[k0M0] = mfbac; - f000dest[k000] = mfbbb; - fMMMdest[kMMM] = mfaaa; - fMMPdest[kMM0] = mfaac; - fMPPdest[kM00] = mfacc; - fMPMdest[kM0M] = mfaca; - fPPMdest[k00M] = mfcca; - fPPPdest[k000] = mfccc; - fPMPdest[k0M0] = mfcac; - fPMMdest[k0MM] = mfcaa; - //////////////////////////////////////////////////////////////////////////////////// + real mgcbb = c0; + real mgabb = c0; + real mgbcb = c0; + real mgbab = c0; + real mgbbc = c0; + real mgbba = c0; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + real m0, m1, m2, oMdrho; + real mxxPyyPzz, mxxMyy, mxxMzz, mxxyPyzz, mxxyMyzz, mxxzPyyz, mxxzMyyz, mxyyPxzz, mxyyMxzz; + //real qudricLimit = c1o100;//ganz schlechte Idee -> muss global sein + //real O3 = c2o1 - o; + //real residu, residutmp; + //residutmp = c0;///*-*/ c2o9 * (1./o - c1o2) * eps_new * eps_new; + real NeqOn = c1o1;//zero;//one; //.... one = on ..... zero = off + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //Position C 0., 0., 0. + // + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //x = 0.; + //y = 0.; + //z = 0.; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //real mxoff = -xoff; + //real myoff = -yoff; + //real mzoff = -zoff; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //press = pressPPP * (c1o8 - c1o4 * mxoff - c1o4 * myoff - c1o4 * mzoff) + + // pressMPP * (c1o8 + c1o4 * mxoff - c1o4 * myoff - c1o4 * mzoff) + + // pressPMP * (c1o8 - c1o4 * mxoff + c1o4 * myoff - c1o4 * mzoff) + + // pressMMP * (c1o8 + c1o4 * mxoff + c1o4 * myoff - c1o4 * mzoff) + + // pressPPM * (c1o8 - c1o4 * mxoff - c1o4 * myoff + c1o4 * mzoff) + + // pressMPM * (c1o8 + c1o4 * mxoff - c1o4 * myoff + c1o4 * mzoff) + + // pressPMM * (c1o8 - c1o4 * mxoff + c1o4 * myoff + c1o4 * mzoff) + + // pressMMM * (c1o8 + c1o4 * mxoff + c1o4 * myoff + c1o4 * mzoff); + //drho = drhoPPP * (c1o8 - c1o4 * xoff - c1o4 * yoff - c1o4 * zoff) + + // drhoMPP * (c1o8 + c1o4 * xoff - c1o4 * yoff - c1o4 * zoff) + + // drhoPMP * (c1o8 - c1o4 * xoff + c1o4 * yoff - c1o4 * zoff) + + // drhoMMP * (c1o8 + c1o4 * xoff + c1o4 * yoff - c1o4 * zoff) + + // drhoPPM * (c1o8 - c1o4 * xoff - c1o4 * yoff + c1o4 * zoff) + + // drhoMPM * (c1o8 + c1o4 * xoff - c1o4 * yoff + c1o4 * zoff) + + // drhoPMM * (c1o8 - c1o4 * xoff + c1o4 * yoff + c1o4 * zoff) + + // drhoMMM * (c1o8 + c1o4 * xoff + c1o4 * yoff + c1o4 * zoff); + press = d0; + vvx = a0; + vvy = b0; + vvz = c0; + + //mfaaa = drho; + //mfaaa = press + (ax+by+cz)/three; // 1/3 = 2/3*(1/op-1/2) + mfaaa = press; // if drho is interpolated directly + + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + oMdrho = c1o1; + //oMdrho = one - mfaaa; + + //two + // linear combinations + real oP = o;// :( + mxxPyyPzz = mfaaa -c2o3*(ax+by+cz)*eps_new/oP*(c1o1+press); + //mxxMyy = -c2o3*(ax - by)*eps_new/o; + //mxxMzz = -c2o3*(ax - cz)*eps_new/o; + + //mfabb = -c1o3 * (bz + cy)*eps_new/o; + //mfbab = -c1o3 * (az + cx)*eps_new/o; + //mfbba = -c1o3 * (ay + bx)*eps_new/o; + mxxMyy = -c2o3*((ax - by)+kxxMyyAverage)*eps_new/o * (c1o1 + press); + mxxMzz = -c2o3*((ax - cz)+kxxMzzAverage)*eps_new/o * (c1o1 + press); + + mfabb = -c1o3 * ((bz + cy)+kyzAverage)*eps_new/o * (c1o1 + press); + mfbab = -c1o3 * ((az + cx)+kxzAverage)*eps_new/o * (c1o1 + press); + mfbba = -c1o3 * ((ay + bx)+kxyAverage)*eps_new/o * (c1o1 + press); + + + // linear combinations back + mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaca = c1o3 * (-c2o1 * mxxMyy + mxxMzz + mxxPyyPzz) * NeqOn; + mfaac = c1o3 * ( mxxMyy - c2o1 * mxxMzz + mxxPyyPzz) * NeqOn; + + //3. + // linear combinations + //residu = residutmp * (ayz + bxz + cxy ); + //mfbbb = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mfbbb = c0; + + //residu = residutmp * (axy + two*bxx + two*bzz + cyz ); + //residu = -(c1o9*(axy - 2*bxx - 2*bzz + cyz )); + //mxxyPyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyPyzz = c0; + + //residu = residutmp * (axy + two*bxx - two*bzz - cyz ); + //residu = c1o9*(axy - 2*bxx + 2*bzz - cyz ); + //mxxyMyzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxyMyzz = c0; + + //residu = residutmp * (axz + byz + two*cxx + two*cyy ); + //residu = -(c1o9*(axz + byz - 2*cxx - 2*cyy )); + //mxxzPyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzPyyz = c0; + + //residu = residutmp * (axz - byz + two*cxx - two*cyy ); + //residu = c1o9*(axz - byz - 2*cxx + 2*cyy ); + //mxxzMyyz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxxzMyyz = c0; + + //residu = residutmp * (two*ayy + two*azz + bxy + cxz ); + //residu = c1o9*(2*ayy + 2*azz - bxy - cxz ); + //mxyyPxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyPxzz = c0; + + //residu = residutmp * (two*ayy - two*azz + bxy - cxz ); + //residu = c1o9*(-2*ayy + 2*azz + bxy - cxz ); + //mxyyMxzz = (abs(residu)+qudricLimit) * residu / (qudricLimit * O3 + abs(residu)); + mxyyMxzz = c0; + + //////////////////////////////////////////////////////////////////////////////////// + // D3Q27F + mgcbb = (ax - c4o1 * axx) * eps_new; + mgabb = (ax + c4o1 * axx) * eps_new; + mgbcb = (by - c4o1 * byy) * eps_new; + mgbab = (by + c4o1 * byy) * eps_new; + mgbbc = (cz - c4o1 * czz) * eps_new; + mgbba = (cz + c4o1 * czz) * eps_new; + //////////////////////////////////////////////////////////////////////////////////// + + // linear combinations back + mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4. + mfacc = mfaaa*c1o9; + mfcac = mfacc; + mfcca = mfacc; + //5. + + //6. + mfccc = mfaaa*c1o27; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1 * mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1 * oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1 * mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1 * mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1 * mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1 * mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1 * mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1 * mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1 * mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1 * mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1 * mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1 * mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1 * mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1 * mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1 * mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1 * mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1 * mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1 * mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1 * mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1 * mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1 * mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1 * mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1 * mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1 * mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1 * mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1 * mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1 * mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1 * mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + //index 0 + k000 = posC[k]; + kM00 = neighborCX[k000]; + k0M0 = neighborCY[k000]; + k00M = neighborCZ[k000]; + kMM0 = neighborCY[kM00]; + kM0M = neighborCZ[kM00]; + k0MM = neighborCZ[k0M0]; + kMMM = neighborCZ[kMM0]; + //////////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + (G.g[dP00])[k000] = mgcbb; + (G.g[dM00])[kM00] = mgabb; + (G.g[d0P0])[k000] = mgbcb; + (G.g[d0M0])[k0M0] = mgbab; + (G.g[d00P])[k000] = mgbbc; + (G.g[d00M])[k00M] = mgbba; + //////////////////////////////////////////////////////////////////////////////////// + fP00dest[k000] = mfcbb; + fM00dest[kM00] = mfabb; + f0P0dest[k000] = mfbcb; + f0M0dest[k0M0] = mfbab; + f00Pdest[k000] = mfbbc; + f00Mdest[k00M] = mfbba; + fPP0dest[k000] = mfccb; + fMM0dest[kMM0] = mfaab; + fPM0dest[k0M0] = mfcab; + fMP0dest[kM00] = mfacb; + fP0Pdest[k000] = mfcbc; + fM0Mdest[kM0M] = mfaba; + fP0Mdest[k00M] = mfcba; + fM0Pdest[kM00] = mfabc; + f0PPdest[k000] = mfbcc; + f0MMdest[k0MM] = mfbaa; + f0PMdest[k00M] = mfbca; + f0MPdest[k0M0] = mfbac; + f000dest[k000] = mfbbb; + fMMMdest[kMMM] = mfaaa; + fMMPdest[kMM0] = mfaac; + fMPPdest[kM00] = mfacc; + fMPMdest[kM0M] = mfaca; + fPPMdest[k00M] = mfcca; + fPPPdest[k000] = mfccc; + fPMPdest[k0M0] = mfcac; + fPMMdest[k0MM] = mfcaa; + //////////////////////////////////////////////////////////////////////////////////// } } ////////////////////////////////////////////////////////////////////////// diff --git a/src/gpu/core/GPU/GridScaling/scaleCF_compressible.cu b/src/gpu/core/GPU/GridScaling/scaleCF_compressible.cu index c14def2e9d0749ade216482556cc2a47b04d4b5b..9a4b4e2cf1cc95d43dae915d85aab0aebf3da82d 100644 --- a/src/gpu/core/GPU/GridScaling/scaleCF_compressible.cu +++ b/src/gpu/core/GPU/GridScaling/scaleCF_compressible.cu @@ -33,7 +33,6 @@ #include <basics/DataTypes.h> #include "LBM/GPUHelperFunctions/KernelUtilities.h" -#include "LBM/GPUHelperFunctions/ChimeraTransformation.h" #include "LBM/GPUHelperFunctions/ScalingUtilities.h" #include <lbm/refinement/InterpolationCF.h> diff --git a/src/gpu/core/GPU/GridScaling/scaleFC_compressible.cu b/src/gpu/core/GPU/GridScaling/scaleFC_compressible.cu index c6f22270852ec1709e3986b276990f502efa90db..4c202a9efb648dbf1b0af1eb1cd9c170d5b6e1a4 100644 --- a/src/gpu/core/GPU/GridScaling/scaleFC_compressible.cu +++ b/src/gpu/core/GPU/GridScaling/scaleFC_compressible.cu @@ -31,7 +31,6 @@ //! \author Martin Schoenherr, Anna Wellmann //======================================================================================= -#include "LBM/GPUHelperFunctions/ChimeraTransformation.h" #include "LBM/GPUHelperFunctions/KernelUtilities.h" #include "LBM/GPUHelperFunctions/ScalingUtilities.h" diff --git a/src/gpu/core/GPU/Init27.cu b/src/gpu/core/GPU/Init27.cu deleted file mode 100644 index a2197f6024114e885fca458ebcd082b43ab53cdb..0000000000000000000000000000000000000000 --- a/src/gpu/core/GPU/Init27.cu +++ /dev/null @@ -1,512 +0,0 @@ -/* Device code */ -#include "LBM/LB.h" -#include "lbm/constants/D3Q27.h" -#include <basics/constants/NumericConstants.h> - -using namespace vf::basics::constant; -using namespace vf::lbm::dir; - -//////////////////////////////////////////////////////////////////////////////// -__global__ void LBInit27( int myid, - int numprocs, - real u0, - unsigned int* geoD, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - real* vParabel, - unsigned long long numberOfLBnodes, - unsigned int grid_nx, - unsigned int grid_ny, - unsigned int grid_nz, - real* DD, - int lev, - int maxlev) -{ - Distributions27 D; - D.f[dP00] = &DD[dP00 * numberOfLBnodes]; - D.f[dM00] = &DD[dM00 * numberOfLBnodes]; - D.f[d0P0] = &DD[d0P0 * numberOfLBnodes]; - D.f[d0M0] = &DD[d0M0 * numberOfLBnodes]; - D.f[d00P] = &DD[d00P * numberOfLBnodes]; - D.f[d00M] = &DD[d00M * numberOfLBnodes]; - D.f[dPP0] = &DD[dPP0 * numberOfLBnodes]; - D.f[dMM0] = &DD[dMM0 * numberOfLBnodes]; - D.f[dPM0] = &DD[dPM0 * numberOfLBnodes]; - D.f[dMP0] = &DD[dMP0 * numberOfLBnodes]; - D.f[dP0P] = &DD[dP0P * numberOfLBnodes]; - D.f[dM0M] = &DD[dM0M * numberOfLBnodes]; - D.f[dP0M] = &DD[dP0M * numberOfLBnodes]; - D.f[dM0P] = &DD[dM0P * numberOfLBnodes]; - D.f[d0PP] = &DD[d0PP * numberOfLBnodes]; - D.f[d0MM] = &DD[d0MM * numberOfLBnodes]; - D.f[d0PM] = &DD[d0PM * numberOfLBnodes]; - D.f[d0MP] = &DD[d0MP * numberOfLBnodes]; - D.f[d000] = &DD[d000 * numberOfLBnodes]; - D.f[dPPP] = &DD[dPPP * numberOfLBnodes]; - D.f[dMMP] = &DD[dMMP * numberOfLBnodes]; - D.f[dPMP] = &DD[dPMP * numberOfLBnodes]; - D.f[dMPP] = &DD[dMPP * numberOfLBnodes]; - D.f[dPPM] = &DD[dPPM * numberOfLBnodes]; - D.f[dMMM] = &DD[dMMM * numberOfLBnodes]; - D.f[dPMM] = &DD[dPMM * numberOfLBnodes]; - D.f[dMPM] = &DD[dMPM * numberOfLBnodes]; - //////////////////////////////////////////////////////////////////////////////// - unsigned int k; // Zugriff auf arrays im device - // - unsigned int tx = threadIdx.x; // Thread index = lokaler i index - unsigned int by = blockIdx.x; // Block index x - unsigned int bz = blockIdx.y; // Block index y - unsigned int x = tx + STARTOFFX; // Globaler x-Index - unsigned int y = by + STARTOFFY; // Globaler y-Index - unsigned int z = bz + STARTOFFZ; // Globaler z-Index - - const unsigned sizeX = blockDim.x; - const unsigned sizeY = gridDim.x; - const unsigned nx = sizeX + 2 * STARTOFFX; - const unsigned ny = sizeY + 2 * STARTOFFY; - - k = nx*(ny*z + y) + x; - ////////////////////////////////////////////////////////////////////////// - geoD[k] = GEO_FLUID; - if (lev==0) - { - if( by == 0 || by == grid_ny-1 || tx == 0 || tx == grid_nx-1 ) - geoD[k] = GEO_SOLID; - else if( bz == grid_nz-1 && myid == numprocs - 1 && geoD[k] != GEO_SOLID ) - geoD[k] = GEO_PRESS; - else if( bz == 0 && myid == 0 && geoD[k] != GEO_SOLID) - geoD[k] = GEO_SOLID;//GEO_VELO; - } - else if (lev==maxlev-1) - { - unsigned int centerX = grid_nx / 2; - unsigned int centerY = grid_ny / 2; - unsigned int centerZ = grid_nz / 2; - real radius = grid_ny / 2.56; - - unsigned int distSq = (centerX-tx)*(centerX-tx)+(centerY-by)*(centerY-by)+(centerZ-bz)*(centerZ-bz); - real radiSq = radius*radius; - - if( distSq < radiSq) geoD[k] = GEO_SOLID; - } - ////////////////////////////////////////////////////////////////////////// - real drho = c0o1; - real vx1 = c0o1; - real vx2 = c0o1; - real vx3 = u0; - vParabel[k] = vx3; - //////////////////////////////////////////////////////////////////////////////// - //index - unsigned int nxny = nx*ny; - //////////////////////////////////////////////////////////////////////////////// - //neighborX[k] = k+1; - //neighborY[k+1] = k+nx+1; - //neighborZ[k+1] = k+nxny+1; - //neighborY[k] = k+nx; - //neighborX[k+nx] = k+nx+1; - //neighborZ[k+nx] = k+nx+nxny; - //neighborZ[k] = k+nxny; - //neighborX[k+nxny] = k+nxny+1; - //neighborY[k+nxny] = k+nxny+nx; - //////////////////////////////////////////////////////////////////////////////// - unsigned int kzero= k; - unsigned int ke = k; - unsigned int kw = k + 1; - unsigned int kn = k; - unsigned int ks = k + nx; - unsigned int kt = k; - unsigned int kb = k + nxny; - unsigned int ksw = k + nx + 1; - unsigned int kne = k; - unsigned int kse = k + nx; - unsigned int knw = k + 1; - unsigned int kbw = k + nxny + 1; - unsigned int kte = k; - unsigned int kbe = k + nxny; - unsigned int ktw = k + 1; - unsigned int kbs = k + nxny + nx; - unsigned int ktn = k; - unsigned int kbn = k + nxny; - unsigned int kts = k + nx; - unsigned int ktse = k + nx; - unsigned int kbnw = k + nxny + 1; - unsigned int ktnw = k + 1; - unsigned int kbse = k + nxny + nx; - unsigned int ktsw = k + nx + 1; - unsigned int kbne = k + nxny; - unsigned int ktne = k; - unsigned int kbsw = k + nxny + nx + 1; - ////////////////////////////////////////////////////////////////////////// - - real cu_sq=c3o2*(vx1*vx1+vx2*vx2+vx3*vx3); - - (D.f[d000])[kzero] = c8o27* (drho-cu_sq); - (D.f[dP00])[ke ] = c2o27* (drho+c3o1*( vx1 )+c9o2*( vx1 )*( vx1 )-cu_sq); - (D.f[dM00])[kw ] = c2o27* (drho+c3o1*(-vx1 )+c9o2*(-vx1 )*(-vx1 )-cu_sq); - (D.f[d0P0])[kn ] = c2o27* (drho+c3o1*( vx2 )+c9o2*( vx2 )*( vx2 )-cu_sq); - (D.f[d0M0])[ks ] = c2o27* (drho+c3o1*( -vx2 )+c9o2*( -vx2 )*( -vx2 )-cu_sq); - (D.f[d00P])[kt ] = c2o27* (drho+c3o1*( vx3)+c9o2*( vx3)*( vx3)-cu_sq); - (D.f[d00M])[kb ] = c2o27* (drho+c3o1*( -vx3)+c9o2*( -vx3)*( -vx3)-cu_sq); - (D.f[dPP0])[kne ] = c1o54* (drho+c3o1*( vx1+vx2 )+c9o2*( vx1+vx2 )*( vx1+vx2 )-cu_sq); - (D.f[dMM0])[ksw ] = c1o54* (drho+c3o1*(-vx1-vx2 )+c9o2*(-vx1-vx2 )*(-vx1-vx2 )-cu_sq); - (D.f[dPM0])[kse ] = c1o54* (drho+c3o1*( vx1-vx2 )+c9o2*( vx1-vx2 )*( vx1-vx2 )-cu_sq); - (D.f[dMP0])[knw ] = c1o54* (drho+c3o1*(-vx1+vx2 )+c9o2*(-vx1+vx2 )*(-vx1+vx2 )-cu_sq); - (D.f[dP0P])[kte ] = c1o54* (drho+c3o1*( vx1 +vx3)+c9o2*( vx1 +vx3)*( vx1 +vx3)-cu_sq); - (D.f[dM0M])[kbw ] = c1o54* (drho+c3o1*(-vx1 -vx3)+c9o2*(-vx1 -vx3)*(-vx1 -vx3)-cu_sq); - (D.f[dP0M])[kbe ] = c1o54* (drho+c3o1*( vx1 -vx3)+c9o2*( vx1 -vx3)*( vx1 -vx3)-cu_sq); - (D.f[dM0P])[ktw ] = c1o54* (drho+c3o1*(-vx1 +vx3)+c9o2*(-vx1 +vx3)*(-vx1 +vx3)-cu_sq); - (D.f[d0PP])[ktn ] = c1o54* (drho+c3o1*( vx2+vx3)+c9o2*( vx2+vx3)*( vx2+vx3)-cu_sq); - (D.f[d0MM])[kbs ] = c1o54* (drho+c3o1*( -vx2-vx3)+c9o2*( -vx2-vx3)*( -vx2-vx3)-cu_sq); - (D.f[d0PM])[kbn ] = c1o54* (drho+c3o1*( vx2-vx3)+c9o2*( vx2-vx3)*( vx2-vx3)-cu_sq); - (D.f[d0MP])[kts ] = c1o54* (drho+c3o1*( -vx2+vx3)+c9o2*( -vx2+vx3)*( -vx2+vx3)-cu_sq); - (D.f[dPPP])[ktne ] = c1o216*(drho+c3o1*( vx1+vx2+vx3)+c9o2*( vx1+vx2+vx3)*( vx1+vx2+vx3)-cu_sq); - (D.f[dMMM])[kbsw ] = c1o216*(drho+c3o1*(-vx1-vx2-vx3)+c9o2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3)-cu_sq); - (D.f[dPPM])[kbne ] = c1o216*(drho+c3o1*( vx1+vx2-vx3)+c9o2*( vx1+vx2-vx3)*( vx1+vx2-vx3)-cu_sq); - (D.f[dMMP])[ktsw ] = c1o216*(drho+c3o1*(-vx1-vx2+vx3)+c9o2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3)-cu_sq); - (D.f[dPMP])[ktse ] = c1o216*(drho+c3o1*( vx1-vx2+vx3)+c9o2*( vx1-vx2+vx3)*( vx1-vx2+vx3)-cu_sq); - (D.f[dMPM])[kbnw ] = c1o216*(drho+c3o1*(-vx1+vx2-vx3)+c9o2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3)-cu_sq); - (D.f[dPMM])[kbse ] = c1o216*(drho+c3o1*( vx1-vx2-vx3)+c9o2*( vx1-vx2-vx3)*( vx1-vx2-vx3)-cu_sq); - (D.f[dMPP])[ktnw ] = c1o216*(drho+c3o1*(-vx1+vx2+vx3)+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cu_sq); - -} -//////////////////////////////////////////////////////////////////////////////// - - - - - - - - - - -//////////////////////////////////////////////////////////////////////////////// -__global__ void LBInitNonEqPartSP27( unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned int* neighborWSB, - unsigned int* geoD, - real* rho, - real* ux, - real* uy, - real* uz, - unsigned long long numberOfLBnodes, - real* DD, - real omega, - bool EvenOrOdd) -{ - //////////////////////////////////////////////////////////////////////////////// - const unsigned x = threadIdx.x; // Globaler x-Index - const unsigned y = blockIdx.x; // Globaler y-Index - const unsigned z = blockIdx.y; // Globaler z-Index - - const unsigned nx = blockDim.x; - const unsigned ny = gridDim.x; - - const unsigned k = nx*(ny*z + y) + x; - ////////////////////////////////////////////////////////////////////////// - - if(k<numberOfLBnodes) - { - //////////////////////////////////////////////////////////////////////////////// - unsigned int BC; - BC = geoD[k]; - - if( BC != GEO_SOLID && BC != GEO_VOID) - { - Distributions27 D; - if (EvenOrOdd==true) - { - D.f[dP00] = &DD[dP00 * numberOfLBnodes]; - D.f[dM00] = &DD[dM00 * numberOfLBnodes]; - D.f[d0P0] = &DD[d0P0 * numberOfLBnodes]; - D.f[d0M0] = &DD[d0M0 * numberOfLBnodes]; - D.f[d00P] = &DD[d00P * numberOfLBnodes]; - D.f[d00M] = &DD[d00M * numberOfLBnodes]; - D.f[dPP0] = &DD[dPP0 * numberOfLBnodes]; - D.f[dMM0] = &DD[dMM0 * numberOfLBnodes]; - D.f[dPM0] = &DD[dPM0 * numberOfLBnodes]; - D.f[dMP0] = &DD[dMP0 * numberOfLBnodes]; - D.f[dP0P] = &DD[dP0P * numberOfLBnodes]; - D.f[dM0M] = &DD[dM0M * numberOfLBnodes]; - D.f[dP0M] = &DD[dP0M * numberOfLBnodes]; - D.f[dM0P] = &DD[dM0P * numberOfLBnodes]; - D.f[d0PP] = &DD[d0PP * numberOfLBnodes]; - D.f[d0MM] = &DD[d0MM * numberOfLBnodes]; - D.f[d0PM] = &DD[d0PM * numberOfLBnodes]; - D.f[d0MP] = &DD[d0MP * numberOfLBnodes]; - D.f[d000] = &DD[d000 * numberOfLBnodes]; - D.f[dPPP] = &DD[dPPP * numberOfLBnodes]; - D.f[dMMP] = &DD[dMMP * numberOfLBnodes]; - D.f[dPMP] = &DD[dPMP * numberOfLBnodes]; - D.f[dMPP] = &DD[dMPP * numberOfLBnodes]; - D.f[dPPM] = &DD[dPPM * numberOfLBnodes]; - D.f[dMMM] = &DD[dMMM * numberOfLBnodes]; - D.f[dPMM] = &DD[dPMM * numberOfLBnodes]; - D.f[dMPM] = &DD[dMPM * numberOfLBnodes]; - } - else - { - D.f[dM00] = &DD[dP00 * numberOfLBnodes]; - D.f[dP00] = &DD[dM00 * numberOfLBnodes]; - D.f[d0M0] = &DD[d0P0 * numberOfLBnodes]; - D.f[d0P0] = &DD[d0M0 * numberOfLBnodes]; - D.f[d00M] = &DD[d00P * numberOfLBnodes]; - D.f[d00P] = &DD[d00M * numberOfLBnodes]; - D.f[dMM0] = &DD[dPP0 * numberOfLBnodes]; - D.f[dPP0] = &DD[dMM0 * numberOfLBnodes]; - D.f[dMP0] = &DD[dPM0 * numberOfLBnodes]; - D.f[dPM0] = &DD[dMP0 * numberOfLBnodes]; - D.f[dM0M] = &DD[dP0P * numberOfLBnodes]; - D.f[dP0P] = &DD[dM0M * numberOfLBnodes]; - D.f[dM0P] = &DD[dP0M * numberOfLBnodes]; - D.f[dP0M] = &DD[dM0P * numberOfLBnodes]; - D.f[d0MM] = &DD[d0PP * numberOfLBnodes]; - D.f[d0PP] = &DD[d0MM * numberOfLBnodes]; - D.f[d0MP] = &DD[d0PM * numberOfLBnodes]; - D.f[d0PM] = &DD[d0MP * numberOfLBnodes]; - D.f[d000] = &DD[d000 * numberOfLBnodes]; - D.f[dMMM] = &DD[dPPP * numberOfLBnodes]; - D.f[dPPM] = &DD[dMMP * numberOfLBnodes]; - D.f[dMPM] = &DD[dPMP * numberOfLBnodes]; - D.f[dPMM] = &DD[dMPP * numberOfLBnodes]; - D.f[dMMP] = &DD[dPPM * numberOfLBnodes]; - D.f[dPPP] = &DD[dMMM * numberOfLBnodes]; - D.f[dMPP] = &DD[dPMM * numberOfLBnodes]; - D.f[dPMP] = &DD[dMPM * numberOfLBnodes]; - } - ////////////////////////////////////////////////////////////////////////// - real drho = rho[k];//0.0f;// - real vx1 = ux[k]; //0.0f;// - real vx2 = uy[k]; //0.0f;// - real vx3 = uz[k]; //0.0f;// - ////////////////////////////////////////////////////////////////////////// - //index - ////////////////////////////////////////////////////////////////////////// - unsigned int kzero= k; - unsigned int ke = k; - unsigned int kw = neighborX[k]; - unsigned int kn = k; - unsigned int ks = neighborY[k]; - unsigned int kt = k; - unsigned int kb = neighborZ[k]; - unsigned int ksw = neighborY[kw]; - unsigned int kne = k; - unsigned int kse = ks; - unsigned int knw = kw; - unsigned int kbw = neighborZ[kw]; - unsigned int kte = k; - unsigned int kbe = kb; - unsigned int ktw = kw; - unsigned int kbs = neighborZ[ks]; - unsigned int ktn = k; - unsigned int kbn = kb; - unsigned int kts = ks; - unsigned int ktse = ks; - unsigned int kbnw = kbw; - unsigned int ktnw = kw; - unsigned int kbse = kbs; - unsigned int ktsw = ksw; - unsigned int kbne = kb; - unsigned int ktne = k; - unsigned int kbsw = neighborZ[ksw]; - ////////////////////////////////////////////////////////////////////////////// - //neighbor index - uint kPx = neighborX[k]; - uint kPy = neighborY[k]; - uint kPz = neighborZ[k]; - uint kMxyz = neighborWSB[k]; - uint kMx = neighborZ[neighborY[kMxyz]]; - uint kMy = neighborZ[neighborX[kMxyz]]; - uint kMz = neighborY[neighborX[kMxyz]]; - ////////////////////////////////////////////////////////////////////////// - //getVeloX// - real vx1NeighborPx = ux[kPx]; - real vx1NeighborMx = ux[kMx]; - real vx1NeighborPy = ux[kPy]; - real vx1NeighborMy = ux[kMy]; - real vx1NeighborPz = ux[kPz]; - real vx1NeighborMz = ux[kMz]; - //getVeloY// - real vx2NeighborPx = uy[kPx]; - real vx2NeighborMx = uy[kMx]; - real vx2NeighborPy = uy[kPy]; - real vx2NeighborMy = uy[kMy]; - real vx2NeighborPz = uy[kPz]; - real vx2NeighborMz = uy[kMz]; - //getVeloZ// - real vx3NeighborPx = uz[kPx]; - real vx3NeighborMx = uz[kMx]; - real vx3NeighborPy = uz[kPy]; - real vx3NeighborMy = uz[kMy]; - real vx3NeighborPz = uz[kPz]; - real vx3NeighborMz = uz[kMz]; - ////////////////////////////////////////////////////////////////////////// - - real dvx1dx = (vx1NeighborPx - vx1NeighborMx) / c2o1; - real dvx1dy = (vx1NeighborPy - vx1NeighborMy) / c2o1; - real dvx1dz = (vx1NeighborPz - vx1NeighborMz) / c2o1; - - real dvx2dx = (vx2NeighborPx - vx2NeighborMx) / c2o1; - real dvx2dy = (vx2NeighborPy - vx2NeighborMy) / c2o1; - real dvx2dz = (vx2NeighborPz - vx2NeighborMz) / c2o1; - - real dvx3dx = (vx3NeighborPx - vx3NeighborMx) / c2o1; - real dvx3dy = (vx3NeighborPy - vx3NeighborMy) / c2o1; - real dvx3dz = (vx3NeighborPz - vx3NeighborMz) / c2o1; - - ////////////////////////////////////////////////////////////////////////// - - // the following code is copy and pasted from VirtualFluidsVisitors/InitDistributionsBlockVisitor.cpp - // i.e. Konstantins code - - real ax = dvx1dx; - real ay = dvx1dy; - real az = dvx1dz; - - real bx = dvx2dx; - real by = dvx2dy; - real bz = dvx2dz; - - real cx = dvx3dx; - real cy = dvx3dy; - real cz = dvx3dz; - - real eps_new = c1o1; - real op = c1o1; - real o = omega; - - real f_E = eps_new *((5.*ax*omega + 5.*by*o + 5.*cz*o - 8.*ax*op + 4.*by*op + 4.*cz*op)/(54.*o*op)); - - real f_N = f_E + eps_new *((2.*(ax - by))/(9.*o)); - real f_T = f_E + eps_new *((2.*(ax - cz))/(9.*o)); - real f_NE = eps_new *(-(5.*cz*o + 3.*(ay + bx)*op - 2.*cz*op + ax*(5.*o + op) + by*(5.*o + op))/(54.*o*op)); - real f_SE = f_NE + eps_new *(( ay + bx )/(9.*o)); - real f_TE = eps_new *(-(5.*cz*o + by*(5.*o - 2.*op) + 3.*(az + cx)*op + cz*op + ax*(5.*o + op))/(54.*o*op)); - real f_BE = f_TE + eps_new *(( az + cx )/(9.*o)); - real f_TN = eps_new *(-(5.*ax*o + 5.*by*o + 5.*cz*o - 2.*ax*op + by*op + 3.*bz*op + 3.*cy*op + cz*op)/(54.*o*op)); - real f_BN = f_TN + eps_new *(( bz + cy )/(9.*o)); - real f_ZERO = eps_new *((5.*(ax + by + cz))/(9.*op)); - real f_TNE = eps_new *(-(ay + az + bx + bz + cx + cy)/(72.*o)); - real f_TSW = - f_TNE - eps_new *((ay + bx)/(36.*o)); - real f_TSE = - f_TNE - eps_new *((az + cx)/(36.*o)); - real f_TNW = - f_TNE - eps_new *((bz + cy)/(36.*o)); - - ////////////////////////////////////////////////////////////////////////// - real cu_sq=c3o2*(vx1*vx1+vx2*vx2+vx3*vx3); - - (D.f[d000])[kzero] = c8o27* (drho-cu_sq); - (D.f[dP00])[ke ] = c2o27* (drho+c3o1*( vx1 )+c9o2*( vx1 )*( vx1 )-cu_sq); - (D.f[dM00])[kw ] = c2o27* (drho+c3o1*(-vx1 )+c9o2*(-vx1 )*(-vx1 )-cu_sq); - (D.f[d0P0])[kn ] = c2o27* (drho+c3o1*( vx2 )+c9o2*( vx2 )*( vx2 )-cu_sq); - (D.f[d0M0])[ks ] = c2o27* (drho+c3o1*( -vx2 )+c9o2*( -vx2 )*( -vx2 )-cu_sq); - (D.f[d00P])[kt ] = c2o27* (drho+c3o1*( vx3)+c9o2*( vx3)*( vx3)-cu_sq); - (D.f[d00M])[kb ] = c2o27* (drho+c3o1*( -vx3)+c9o2*( -vx3)*( -vx3)-cu_sq); - (D.f[dPP0])[kne ] = c1o54* (drho+c3o1*( vx1+vx2 )+c9o2*( vx1+vx2 )*( vx1+vx2 )-cu_sq); - (D.f[dMM0])[ksw ] = c1o54* (drho+c3o1*(-vx1-vx2 )+c9o2*(-vx1-vx2 )*(-vx1-vx2 )-cu_sq); - (D.f[dPM0])[kse ] = c1o54* (drho+c3o1*( vx1-vx2 )+c9o2*( vx1-vx2 )*( vx1-vx2 )-cu_sq); - (D.f[dMP0])[knw ] = c1o54* (drho+c3o1*(-vx1+vx2 )+c9o2*(-vx1+vx2 )*(-vx1+vx2 )-cu_sq); - (D.f[dP0P])[kte ] = c1o54* (drho+c3o1*( vx1 +vx3)+c9o2*( vx1 +vx3)*( vx1 +vx3)-cu_sq); - (D.f[dM0M])[kbw ] = c1o54* (drho+c3o1*(-vx1 -vx3)+c9o2*(-vx1 -vx3)*(-vx1 -vx3)-cu_sq); - (D.f[dP0M])[kbe ] = c1o54* (drho+c3o1*( vx1 -vx3)+c9o2*( vx1 -vx3)*( vx1 -vx3)-cu_sq); - (D.f[dM0P])[ktw ] = c1o54* (drho+c3o1*(-vx1 +vx3)+c9o2*(-vx1 +vx3)*(-vx1 +vx3)-cu_sq); - (D.f[d0PP])[ktn ] = c1o54* (drho+c3o1*( vx2+vx3)+c9o2*( vx2+vx3)*( vx2+vx3)-cu_sq); - (D.f[d0MM])[kbs ] = c1o54* (drho+c3o1*( -vx2-vx3)+c9o2*( -vx2-vx3)*( -vx2-vx3)-cu_sq); - (D.f[d0PM])[kbn ] = c1o54* (drho+c3o1*( vx2-vx3)+c9o2*( vx2-vx3)*( vx2-vx3)-cu_sq); - (D.f[d0MP])[kts ] = c1o54* (drho+c3o1*( -vx2+vx3)+c9o2*( -vx2+vx3)*( -vx2+vx3)-cu_sq); - (D.f[dPPP])[ktne ] = c1o216*(drho+c3o1*( vx1+vx2+vx3)+c9o2*( vx1+vx2+vx3)*( vx1+vx2+vx3)-cu_sq); - (D.f[dMMM])[kbsw ] = c1o216*(drho+c3o1*(-vx1-vx2-vx3)+c9o2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3)-cu_sq); - (D.f[dPPM])[kbne ] = c1o216*(drho+c3o1*( vx1+vx2-vx3)+c9o2*( vx1+vx2-vx3)*( vx1+vx2-vx3)-cu_sq); - (D.f[dMMP])[ktsw ] = c1o216*(drho+c3o1*(-vx1-vx2+vx3)+c9o2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3)-cu_sq); - (D.f[dPMP])[ktse ] = c1o216*(drho+c3o1*( vx1-vx2+vx3)+c9o2*( vx1-vx2+vx3)*( vx1-vx2+vx3)-cu_sq); - (D.f[dMPM])[kbnw ] = c1o216*(drho+c3o1*(-vx1+vx2-vx3)+c9o2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3)-cu_sq); - (D.f[dPMM])[kbse ] = c1o216*(drho+c3o1*( vx1-vx2-vx3)+c9o2*( vx1-vx2-vx3)*( vx1-vx2-vx3)-cu_sq); - (D.f[dMPP])[ktnw ] = c1o216*(drho+c3o1*(-vx1+vx2+vx3)+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cu_sq); - - ////////////////////////////////////////////////////////////////////////// - - (D.f[d000])[kzero] += f_ZERO; - (D.f[dP00])[ke ] += f_E ; - (D.f[dM00])[kw ] += f_E ; - (D.f[d0P0])[kn ] += f_N ; - (D.f[d0M0])[ks ] += f_N ; - (D.f[d00P])[kt ] += f_T ; - (D.f[d00M])[kb ] += f_T ; - (D.f[dPP0])[kne ] += f_NE ; - (D.f[dMM0])[ksw ] += f_NE ; - (D.f[dPM0])[kse ] += f_SE ; - (D.f[dMP0])[knw ] += f_SE ; - (D.f[dP0P])[kte ] += f_TE ; - (D.f[dM0M])[kbw ] += f_TE ; - (D.f[dP0M])[kbe ] += f_BE ; - (D.f[dM0P])[ktw ] += f_BE ; - (D.f[d0PP])[ktn ] += f_TN ; - (D.f[d0MM])[kbs ] += f_TN ; - (D.f[d0PM])[kbn ] += f_BN ; - (D.f[d0MP])[kts ] += f_BN ; - (D.f[dPPP])[ktne ] += f_TNE ; - (D.f[dMMM])[kbsw ] += f_TNE ; - (D.f[dPPM])[kbne ] += f_TSW ; - (D.f[dMMP])[ktsw ] += f_TSW ; - (D.f[dPMP])[ktse ] += f_TSE ; - (D.f[dMPM])[kbnw ] += f_TSE ; - (D.f[dPMM])[kbse ] += f_TNW ; - (D.f[dMPP])[ktnw ] += f_TNW ; - - ////////////////////////////////////////////////////////////////////////// - } - else - { - ////////////////////////////////////////////////////////////////////////// - Distributions27 D; - D.f[d000] = &DD[d000 * numberOfLBnodes]; - ////////////////////////////////////////////////////////////////////////// - (D.f[d000])[k] = c96o1; - ////////////////////////////////////////////////////////////////////////// - } - } -} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/gpu/core/GPU/InitAdvectionDiffusion27.cu b/src/gpu/core/GPU/InitAdvectionDiffusion27.cu deleted file mode 100644 index c58e4fd5a710562ad26d6bb74b3f0bb26749cb9b..0000000000000000000000000000000000000000 --- a/src/gpu/core/GPU/InitAdvectionDiffusion27.cu +++ /dev/null @@ -1,529 +0,0 @@ -//======================================================================================= -// ____ ____ __ ______ __________ __ __ __ __ -// \ \ | | | | | _ \ |___ ___| | | | | / \ | | -// \ \ | | | | | |_) | | | | | | | / \ | | -// \ \ | | | | | _ / | | | | | | / /\ \ | | -// \ \ | | | | | | \ \ | | | \__/ | / ____ \ | |____ -// \ \ | | |__| |__| \__\ |__| \________/ /__/ \__\ |_______| -// \ \ | | ________________________________________________________________ -// \ \ | | | ______________________________________________________________| -// \ \| | | | __ __ __ __ ______ _______ -// \ | | |_____ | | | | | | | | | _ \ / _____) -// \ | | _____| | | | | | | | | | | \ \ \_______ -// \ | | | | |_____ | \_/ | | | | |_/ / _____ | -// \ _____| |__| |________| \_______/ |__| |______/ (_______/ -// -// This file is part of VirtualFluids. VirtualFluids is free software: you can -// redistribute it and/or modify it under the terms of the GNU General Public -// License as published by the Free Software Foundation, either version 3 of -// the License, or (at your option) any later version. -// -// VirtualFluids is distributed in the hope that it will be useful, but WITHOUT -// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -// for more details. -// -// You should have received a copy of the GNU General Public License along -// with VirtualFluids (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>. -// -//! \file InitAdvectionDiffusion.cu -//! \ingroup GPU -//! \author Martin Schoenherr -//======================================================================================= -/* Device code */ -#include "LBM/LB.h" -#include "lbm/constants/D3Q27.h" -#include <basics/constants/NumericConstants.h> - -using namespace vf::basics::constant; -using namespace vf::lbm::dir; - -__global__ void InitAD27( - uint* neighborX, - uint* neighborY, - uint* neighborZ, - uint* typeOfGridNode, - real* concentration, - real* velocityX, - real* velocityY, - real* velocityZ, - unsigned long long numberOfLBnodes, - real* distributionsAD, - bool isEvenTimestep) -{ - ////////////////////////////////////////////////////////////////////////// - //! The initialization is executed in the following steps - //! - //////////////////////////////////////////////////////////////////////////////// - //! - Get node index coordinates from threadIdx, blockIdx, blockDim and gridDim. - //! - const unsigned x = threadIdx.x; // Globaler x-Index - const unsigned y = blockIdx.x; // Globaler y-Index - const unsigned z = blockIdx.y; // Globaler z-Index - - const unsigned nx = blockDim.x; - const unsigned ny = gridDim.x; - - const unsigned k = nx*(ny*z + y) + x; - - ////////////////////////////////////////////////////////////////////////// - // run for all indices in size_Mat and fluid nodes - if ((k < numberOfLBnodes) && (typeOfGridNode[k] == GEO_FLUID)) - { - ////////////////////////////////////////////////////////////////////////// - //! - Read distributions: style of reading and writing the distributions from/to stored arrays dependent on timestep is based on the esoteric twist algorithm \ref - //! <a href="https://doi.org/10.3390/computation5020019"><b>[ M. Geier et al. (2017), DOI:10.3390/computation5020019 ]</b></a> - //! - Distributions27 distAD; - if (isEvenTimestep) - { - distAD.f[dP00] = &distributionsAD[dP00 * numberOfLBnodes]; - distAD.f[dM00] = &distributionsAD[dM00 * numberOfLBnodes]; - distAD.f[d0P0] = &distributionsAD[d0P0 * numberOfLBnodes]; - distAD.f[d0M0] = &distributionsAD[d0M0 * numberOfLBnodes]; - distAD.f[d00P] = &distributionsAD[d00P * numberOfLBnodes]; - distAD.f[d00M] = &distributionsAD[d00M * numberOfLBnodes]; - distAD.f[dPP0] = &distributionsAD[dPP0 * numberOfLBnodes]; - distAD.f[dMM0] = &distributionsAD[dMM0 * numberOfLBnodes]; - distAD.f[dPM0] = &distributionsAD[dPM0 * numberOfLBnodes]; - distAD.f[dMP0] = &distributionsAD[dMP0 * numberOfLBnodes]; - distAD.f[dP0P] = &distributionsAD[dP0P * numberOfLBnodes]; - distAD.f[dM0M] = &distributionsAD[dM0M * numberOfLBnodes]; - distAD.f[dP0M] = &distributionsAD[dP0M * numberOfLBnodes]; - distAD.f[dM0P] = &distributionsAD[dM0P * numberOfLBnodes]; - distAD.f[d0PP] = &distributionsAD[d0PP * numberOfLBnodes]; - distAD.f[d0MM] = &distributionsAD[d0MM * numberOfLBnodes]; - distAD.f[d0PM] = &distributionsAD[d0PM * numberOfLBnodes]; - distAD.f[d0MP] = &distributionsAD[d0MP * numberOfLBnodes]; - distAD.f[d000] = &distributionsAD[d000 * numberOfLBnodes]; - distAD.f[dPPP] = &distributionsAD[dPPP * numberOfLBnodes]; - distAD.f[dMMP] = &distributionsAD[dMMP * numberOfLBnodes]; - distAD.f[dPMP] = &distributionsAD[dPMP * numberOfLBnodes]; - distAD.f[dMPP] = &distributionsAD[dMPP * numberOfLBnodes]; - distAD.f[dPPM] = &distributionsAD[dPPM * numberOfLBnodes]; - distAD.f[dMMM] = &distributionsAD[dMMM * numberOfLBnodes]; - distAD.f[dPMM] = &distributionsAD[dPMM * numberOfLBnodes]; - distAD.f[dMPM] = &distributionsAD[dMPM * numberOfLBnodes]; - } - else - { - distAD.f[dM00] = &distributionsAD[dP00 * numberOfLBnodes]; - distAD.f[dP00] = &distributionsAD[dM00 * numberOfLBnodes]; - distAD.f[d0M0] = &distributionsAD[d0P0 * numberOfLBnodes]; - distAD.f[d0P0] = &distributionsAD[d0M0 * numberOfLBnodes]; - distAD.f[d00M] = &distributionsAD[d00P * numberOfLBnodes]; - distAD.f[d00P] = &distributionsAD[d00M * numberOfLBnodes]; - distAD.f[dMM0] = &distributionsAD[dPP0 * numberOfLBnodes]; - distAD.f[dPP0] = &distributionsAD[dMM0 * numberOfLBnodes]; - distAD.f[dMP0] = &distributionsAD[dPM0 * numberOfLBnodes]; - distAD.f[dPM0] = &distributionsAD[dMP0 * numberOfLBnodes]; - distAD.f[dM0M] = &distributionsAD[dP0P * numberOfLBnodes]; - distAD.f[dP0P] = &distributionsAD[dM0M * numberOfLBnodes]; - distAD.f[dM0P] = &distributionsAD[dP0M * numberOfLBnodes]; - distAD.f[dP0M] = &distributionsAD[dM0P * numberOfLBnodes]; - distAD.f[d0MM] = &distributionsAD[d0PP * numberOfLBnodes]; - distAD.f[d0PP] = &distributionsAD[d0MM * numberOfLBnodes]; - distAD.f[d0MP] = &distributionsAD[d0PM * numberOfLBnodes]; - distAD.f[d0PM] = &distributionsAD[d0MP * numberOfLBnodes]; - distAD.f[d000] = &distributionsAD[d000 * numberOfLBnodes]; - distAD.f[dMMM] = &distributionsAD[dPPP * numberOfLBnodes]; - distAD.f[dPPM] = &distributionsAD[dMMP * numberOfLBnodes]; - distAD.f[dMPM] = &distributionsAD[dPMP * numberOfLBnodes]; - distAD.f[dPMM] = &distributionsAD[dMPP * numberOfLBnodes]; - distAD.f[dMMP] = &distributionsAD[dPPM * numberOfLBnodes]; - distAD.f[dPPP] = &distributionsAD[dMMM * numberOfLBnodes]; - distAD.f[dMPP] = &distributionsAD[dPMM * numberOfLBnodes]; - distAD.f[dPMP] = &distributionsAD[dMPM * numberOfLBnodes]; - } - ////////////////////////////////////////////////////////////////////////// - //! - Set local velocities and concetration - //! - real conc = concentration[k]; - real vx1 = velocityX[k]; - real vx2 = velocityY[k]; - real vx3 = velocityZ[k]; - ////////////////////////////////////////////////////////////////////////// - //! - Set neighbor indices (necessary for indirect addressing) - //! - uint kzero = k; - uint ke = k; - uint kw = neighborX[k]; - uint kn = k; - uint ks = neighborY[k]; - uint kt = k; - uint kb = neighborZ[k]; - uint ksw = neighborY[kw]; - uint kne = k; - uint kse = ks; - uint knw = kw; - uint kbw = neighborZ[kw]; - uint kte = k; - uint kbe = kb; - uint ktw = kw; - uint kbs = neighborZ[ks]; - uint ktn = k; - uint kbn = kb; - uint kts = ks; - uint ktse = ks; - uint kbnw = kbw; - uint ktnw = kw; - uint kbse = kbs; - uint ktsw = ksw; - uint kbne = kb; - uint ktne = k; - uint kbsw = neighborZ[ksw]; - ////////////////////////////////////////////////////////////////////////// - //! - Calculate the equilibrium and set the distributions - //! - real cu_sq = c3o2*(vx1*vx1 + vx2*vx2 + vx3*vx3); - - (distAD.f[d000])[kzero] = c8o27 * conc * (c1o1 - cu_sq); - (distAD.f[dP00])[ke ] = c2o27 * conc * (c1o1 + c3o1 * ( vx1 ) + c9o2 * ( vx1 ) * ( vx1 ) - cu_sq); - (distAD.f[dM00])[kw ] = c2o27 * conc * (c1o1 + c3o1 * (-vx1 ) + c9o2 * (-vx1 ) * (-vx1 ) - cu_sq); - (distAD.f[d0P0])[kn ] = c2o27 * conc * (c1o1 + c3o1 * ( vx2 ) + c9o2 * ( vx2 ) * ( vx2 ) - cu_sq); - (distAD.f[d0M0])[ks ] = c2o27 * conc * (c1o1 + c3o1 * ( - vx2 ) + c9o2 * ( - vx2 ) * ( - vx2 ) - cu_sq); - (distAD.f[d00P])[kt ] = c2o27 * conc * (c1o1 + c3o1 * ( vx3) + c9o2 * ( vx3) * ( vx3) - cu_sq); - (distAD.f[d00M])[kb ] = c2o27 * conc * (c1o1 + c3o1 * ( - vx3) + c9o2 * ( - vx3) * ( - vx3) - cu_sq); - (distAD.f[dPP0])[kne ] = c1o54 * conc * (c1o1 + c3o1 * ( vx1 + vx2 ) + c9o2 * ( vx1 + vx2 ) * ( vx1 + vx2 ) - cu_sq); - (distAD.f[dMM0])[ksw ] = c1o54 * conc * (c1o1 + c3o1 * (-vx1 - vx2 ) + c9o2 * (-vx1 - vx2 ) * (-vx1 - vx2 ) - cu_sq); - (distAD.f[dPM0])[kse ] = c1o54 * conc * (c1o1 + c3o1 * ( vx1 - vx2 ) + c9o2 * ( vx1 - vx2 ) * ( vx1 - vx2 ) - cu_sq); - (distAD.f[dMP0])[knw ] = c1o54 * conc * (c1o1 + c3o1 * (-vx1 + vx2 ) + c9o2 * (-vx1 + vx2 ) * (-vx1 + vx2 ) - cu_sq); - (distAD.f[dP0P])[kte ] = c1o54 * conc * (c1o1 + c3o1 * ( vx1 + vx3) + c9o2 * ( vx1 + vx3) * ( vx1 + vx3) - cu_sq); - (distAD.f[dM0M])[kbw ] = c1o54 * conc * (c1o1 + c3o1 * (-vx1 - vx3) + c9o2 * (-vx1 - vx3) * (-vx1 - vx3) - cu_sq); - (distAD.f[dP0M])[kbe ] = c1o54 * conc * (c1o1 + c3o1 * ( vx1 - vx3) + c9o2 * ( vx1 - vx3) * ( vx1 - vx3) - cu_sq); - (distAD.f[dM0P])[ktw ] = c1o54 * conc * (c1o1 + c3o1 * (-vx1 + vx3) + c9o2 * (-vx1 + vx3) * (-vx1 + vx3) - cu_sq); - (distAD.f[d0PP])[ktn ] = c1o54 * conc * (c1o1 + c3o1 * ( vx2 + vx3) + c9o2 * ( vx2 + vx3) * ( vx2 + vx3) - cu_sq); - (distAD.f[d0MM])[kbs ] = c1o54 * conc * (c1o1 + c3o1 * ( - vx2 - vx3) + c9o2 * ( - vx2 - vx3) * ( - vx2 - vx3) - cu_sq); - (distAD.f[d0PM])[kbn ] = c1o54 * conc * (c1o1 + c3o1 * ( vx2 - vx3) + c9o2 * ( vx2 - vx3) * ( vx2 - vx3) - cu_sq); - (distAD.f[d0MP])[kts ] = c1o54 * conc * (c1o1 + c3o1 * ( - vx2 + vx3) + c9o2 * ( - vx2 + vx3) * ( - vx2 + vx3) - cu_sq); - (distAD.f[dPPP])[ktne ] = c1o216 * conc * (c1o1 + c3o1 * ( vx1 + vx2 + vx3) + c9o2 * ( vx1 + vx2 + vx3) * ( vx1 + vx2 + vx3) - cu_sq); - (distAD.f[dMMM])[kbsw ] = c1o216 * conc * (c1o1 + c3o1 * (-vx1 - vx2 - vx3) + c9o2 * (-vx1 - vx2 - vx3) * (-vx1 - vx2 - vx3) - cu_sq); - (distAD.f[dPPM])[kbne ] = c1o216 * conc * (c1o1 + c3o1 * ( vx1 + vx2 - vx3) + c9o2 * ( vx1 + vx2 - vx3) * ( vx1 + vx2 - vx3) - cu_sq); - (distAD.f[dMMP])[ktsw ] = c1o216 * conc * (c1o1 + c3o1 * (-vx1 - vx2 + vx3) + c9o2 * (-vx1 - vx2 + vx3) * (-vx1 - vx2 + vx3) - cu_sq); - (distAD.f[dPMP])[ktse ] = c1o216 * conc * (c1o1 + c3o1 * ( vx1 - vx2 + vx3) + c9o2 * ( vx1 - vx2 + vx3) * ( vx1 - vx2 + vx3) - cu_sq); - (distAD.f[dMPM])[kbnw ] = c1o216 * conc * (c1o1 + c3o1 * (-vx1 + vx2 - vx3) + c9o2 * (-vx1 + vx2 - vx3) * (-vx1 + vx2 - vx3) - cu_sq); - (distAD.f[dPMM])[kbse ] = c1o216 * conc * (c1o1 + c3o1 * ( vx1 - vx2 - vx3) + c9o2 * ( vx1 - vx2 - vx3) * ( vx1 - vx2 - vx3) - cu_sq); - (distAD.f[dMPP])[ktnw ] = c1o216 * conc * (c1o1 + c3o1 * (-vx1 + vx2 + vx3) + c9o2 * (-vx1 + vx2 + vx3) * (-vx1 + vx2 + vx3) - cu_sq); - } -} - - - - - - - - - - - - - - - - - - - - -// DEPRECATED (2022) - -// //////////////////////////////////////////////////////////////////////////////// -// __global__ void InitAD27(unsigned int* neighborX, -// unsigned int* neighborY, -// unsigned int* neighborZ, -// unsigned int* geoD, -// real* Conc, -// real* ux, -// real* uy, -// real* uz, -// unsigned int size_Mat, -// real* DD27, -// bool EvenOrOdd) -// { -// //////////////////////////////////////////////////////////////////////////////// -// const unsigned x = threadIdx.x; // Globaler x-Index -// const unsigned y = blockIdx.x; // Globaler y-Index -// const unsigned z = blockIdx.y; // Globaler z-Index - -// const unsigned nx = blockDim.x; -// const unsigned ny = gridDim.x; - -// const unsigned k = nx*(ny*z + y) + x; -// ////////////////////////////////////////////////////////////////////////// - -// if(k<size_Mat) -// { -// //////////////////////////////////////////////////////////////////////////////// -// unsigned int BC; -// BC = geoD[k]; - -// if( BC != GEO_SOLID && BC != GEO_VOID) -// { -// Distributions27 D27; -// if (EvenOrOdd==true) -// { -// D27.f[dP00] = &DD27[dP00 * size_Mat]; -// D27.f[dM00] = &DD27[dM00 * size_Mat]; -// D27.f[d0P0] = &DD27[d0P0 * size_Mat]; -// D27.f[d0M0] = &DD27[d0M0 * size_Mat]; -// D27.f[d00P] = &DD27[d00P * size_Mat]; -// D27.f[d00M] = &DD27[d00M * size_Mat]; -// D27.f[dPP0] = &DD27[dPP0 * size_Mat]; -// D27.f[dMM0] = &DD27[dMM0 * size_Mat]; -// D27.f[dPM0] = &DD27[dPM0 * size_Mat]; -// D27.f[dMP0] = &DD27[dMP0 * size_Mat]; -// D27.f[dP0P] = &DD27[dP0P * size_Mat]; -// D27.f[dM0M] = &DD27[dM0M * size_Mat]; -// D27.f[dP0M] = &DD27[dP0M * size_Mat]; -// D27.f[dM0P] = &DD27[dM0P * size_Mat]; -// D27.f[d0PP] = &DD27[d0PP * size_Mat]; -// D27.f[d0MM] = &DD27[d0MM * size_Mat]; -// D27.f[d0PM] = &DD27[d0PM * size_Mat]; -// D27.f[d0MP] = &DD27[d0MP * size_Mat]; -// D27.f[d000] = &DD27[d000 * size_Mat]; -// D27.f[dPPP] = &DD27[dPPP * size_Mat]; -// D27.f[dMMP] = &DD27[dMMP * size_Mat]; -// D27.f[dPMP] = &DD27[dPMP * size_Mat]; -// D27.f[dMPP] = &DD27[dMPP * size_Mat]; -// D27.f[dPPM] = &DD27[dPPM * size_Mat]; -// D27.f[dMMM] = &DD27[dMMM * size_Mat]; -// D27.f[dPMM] = &DD27[dPMM * size_Mat]; -// D27.f[dMPM] = &DD27[dMPM * size_Mat]; -// } -// else -// { -// D27.f[dM00] = &DD27[dP00 * size_Mat]; -// D27.f[dP00] = &DD27[dM00 * size_Mat]; -// D27.f[d0M0] = &DD27[d0P0 * size_Mat]; -// D27.f[d0P0] = &DD27[d0M0 * size_Mat]; -// D27.f[d00M] = &DD27[d00P * size_Mat]; -// D27.f[d00P] = &DD27[d00M * size_Mat]; -// D27.f[dMM0] = &DD27[dPP0 * size_Mat]; -// D27.f[dPP0] = &DD27[dMM0 * size_Mat]; -// D27.f[dMP0] = &DD27[dPM0 * size_Mat]; -// D27.f[dPM0] = &DD27[dMP0 * size_Mat]; -// D27.f[dM0M] = &DD27[dP0P * size_Mat]; -// D27.f[dP0P] = &DD27[dM0M * size_Mat]; -// D27.f[dM0P] = &DD27[dP0M * size_Mat]; -// D27.f[dP0M] = &DD27[dM0P * size_Mat]; -// D27.f[d0MM] = &DD27[d0PP * size_Mat]; -// D27.f[d0PP] = &DD27[d0MM * size_Mat]; -// D27.f[d0MP] = &DD27[d0PM * size_Mat]; -// D27.f[d0PM] = &DD27[d0MP * size_Mat]; -// D27.f[d000] = &DD27[d000 * size_Mat]; -// D27.f[dMMM] = &DD27[dPPP * size_Mat]; -// D27.f[dPPM] = &DD27[dMMP * size_Mat]; -// D27.f[dMPM] = &DD27[dPMP * size_Mat]; -// D27.f[dPMM] = &DD27[dMPP * size_Mat]; -// D27.f[dMMP] = &DD27[dPPM * size_Mat]; -// D27.f[dPPP] = &DD27[dMMM * size_Mat]; -// D27.f[dMPP] = &DD27[dPMM * size_Mat]; -// D27.f[dPMP] = &DD27[dMPM * size_Mat]; -// } -// ////////////////////////////////////////////////////////////////////////// -// real ConcD = Conc[k]; -// real vx1 = ux[k]; -// real vx2 = uy[k]; -// real vx3 = uz[k]; -// //real lambdaD = -three + sqrt(three); -// //real Diffusivity = c1o20; -// //real Lam = -(c1o2+one/lambdaD); -// //real nue_d = Lam/three; -// //real ae = Diffusivity/nue_d - one; -// //real ux_sq = vx1 * vx1; -// //real uy_sq = vx2 * vx2; -// //real uz_sq = vx3 * vx3; -// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// //D3Q7 -// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// //index -// //unsigned int kzero= k; -// //unsigned int ke = k; -// //unsigned int kw = neighborX[k]; -// //unsigned int kn = k; -// //unsigned int ks = neighborY[k]; -// //unsigned int kt = k; -// //unsigned int kb = neighborZ[k]; -// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// //(D7.f[0])[kzero] = ConcD*(c1o3*(ae*(-three))-(ux_sq+uy_sq+uz_sq)); -// //(D7.f[1])[ke ] = ConcD*(c1o6*(ae+one)+c1o2*(ux_sq)+vx1*c1o2); -// //(D7.f[2])[kw ] = ConcD*(c1o6*(ae+one)+c1o2*(ux_sq)-vx1*c1o2); -// //(D7.f[3])[kn ] = ConcD*(c1o6*(ae+one)+c1o2*(uy_sq)+vx2*c1o2); -// //(D7.f[4])[ks ] = ConcD*(c1o6*(ae+one)+c1o2*(uy_sq)-vx2*c1o2); -// //(D7.f[5])[kt ] = ConcD*(c1o6*(ae+one)+c1o2*(uz_sq)+vx3*c1o2); -// //(D7.f[6])[kb ] = ConcD*(c1o6*(ae+one)+c1o2*(uz_sq)-vx3*c1o2); -// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - -// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// //D3Q27 -// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// //index -// unsigned int kzero= k; -// unsigned int ke = k; -// unsigned int kw = neighborX[k]; -// unsigned int kn = k; -// unsigned int ks = neighborY[k]; -// unsigned int kt = k; -// unsigned int kb = neighborZ[k]; -// unsigned int ksw = neighborY[kw]; -// unsigned int kne = k; -// unsigned int kse = ks; -// unsigned int knw = kw; -// unsigned int kbw = neighborZ[kw]; -// unsigned int kte = k; -// unsigned int kbe = kb; -// unsigned int ktw = kw; -// unsigned int kbs = neighborZ[ks]; -// unsigned int ktn = k; -// unsigned int kbn = kb; -// unsigned int kts = ks; -// unsigned int ktse = ks; -// unsigned int kbnw = kbw; -// unsigned int ktnw = kw; -// unsigned int kbse = kbs; -// unsigned int ktsw = ksw; -// unsigned int kbne = kb; -// unsigned int ktne = k; -// unsigned int kbsw = neighborZ[ksw]; -// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// real cu_sq=c3o2*(vx1*vx1+vx2*vx2+vx3*vx3); - -// (D27.f[d000])[kzero] = c8o27* ConcD*(c1o1-cu_sq); -// (D27.f[dP00])[ke ] = c2o27* ConcD*(c1o1+c3o1*( vx1 )+c9o2*( vx1 )*( vx1 )-cu_sq); -// (D27.f[dM00])[kw ] = c2o27* ConcD*(c1o1+c3o1*(-vx1 )+c9o2*(-vx1 )*(-vx1 )-cu_sq); -// (D27.f[d0P0])[kn ] = c2o27* ConcD*(c1o1+c3o1*( vx2 )+c9o2*( vx2 )*( vx2 )-cu_sq); -// (D27.f[d0M0])[ks ] = c2o27* ConcD*(c1o1+c3o1*( -vx2 )+c9o2*( -vx2 )*( -vx2 )-cu_sq); -// (D27.f[d00P])[kt ] = c2o27* ConcD*(c1o1+c3o1*( vx3)+c9o2*( vx3)*( vx3)-cu_sq); -// (D27.f[d00M])[kb ] = c2o27* ConcD*(c1o1+c3o1*( -vx3)+c9o2*( -vx3)*( -vx3)-cu_sq); -// (D27.f[dPP0])[kne ] = c1o54* ConcD*(c1o1+c3o1*( vx1+vx2 )+c9o2*( vx1+vx2 )*( vx1+vx2 )-cu_sq); -// (D27.f[dMM0])[ksw ] = c1o54* ConcD*(c1o1+c3o1*(-vx1-vx2 )+c9o2*(-vx1-vx2 )*(-vx1-vx2 )-cu_sq); -// (D27.f[dPM0])[kse ] = c1o54* ConcD*(c1o1+c3o1*( vx1-vx2 )+c9o2*( vx1-vx2 )*( vx1-vx2 )-cu_sq); -// (D27.f[dMP0])[knw ] = c1o54* ConcD*(c1o1+c3o1*(-vx1+vx2 )+c9o2*(-vx1+vx2 )*(-vx1+vx2 )-cu_sq); -// (D27.f[dP0P])[kte ] = c1o54* ConcD*(c1o1+c3o1*( vx1 +vx3)+c9o2*( vx1 +vx3)*( vx1 +vx3)-cu_sq); -// (D27.f[dM0M])[kbw ] = c1o54* ConcD*(c1o1+c3o1*(-vx1 -vx3)+c9o2*(-vx1 -vx3)*(-vx1 -vx3)-cu_sq); -// (D27.f[dP0M])[kbe ] = c1o54* ConcD*(c1o1+c3o1*( vx1 -vx3)+c9o2*( vx1 -vx3)*( vx1 -vx3)-cu_sq); -// (D27.f[dM0P])[ktw ] = c1o54* ConcD*(c1o1+c3o1*(-vx1 +vx3)+c9o2*(-vx1 +vx3)*(-vx1 +vx3)-cu_sq); -// (D27.f[d0PP])[ktn ] = c1o54* ConcD*(c1o1+c3o1*( vx2+vx3)+c9o2*( vx2+vx3)*( vx2+vx3)-cu_sq); -// (D27.f[d0MM])[kbs ] = c1o54* ConcD*(c1o1+c3o1*( -vx2-vx3)+c9o2*( -vx2-vx3)*( -vx2-vx3)-cu_sq); -// (D27.f[d0PM])[kbn ] = c1o54* ConcD*(c1o1+c3o1*( vx2-vx3)+c9o2*( vx2-vx3)*( vx2-vx3)-cu_sq); -// (D27.f[d0MP])[kts ] = c1o54* ConcD*(c1o1+c3o1*( -vx2+vx3)+c9o2*( -vx2+vx3)*( -vx2+vx3)-cu_sq); -// (D27.f[dPPP])[ktne ] = c1o216*ConcD*(c1o1+c3o1*( vx1+vx2+vx3)+c9o2*( vx1+vx2+vx3)*( vx1+vx2+vx3)-cu_sq); -// (D27.f[dMMM])[kbsw ] = c1o216*ConcD*(c1o1+c3o1*(-vx1-vx2-vx3)+c9o2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3)-cu_sq); -// (D27.f[dPPM])[kbne ] = c1o216*ConcD*(c1o1+c3o1*( vx1+vx2-vx3)+c9o2*( vx1+vx2-vx3)*( vx1+vx2-vx3)-cu_sq); -// (D27.f[dMMP])[ktsw ] = c1o216*ConcD*(c1o1+c3o1*(-vx1-vx2+vx3)+c9o2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3)-cu_sq); -// (D27.f[dPMP])[ktse ] = c1o216*ConcD*(c1o1+c3o1*( vx1-vx2+vx3)+c9o2*( vx1-vx2+vx3)*( vx1-vx2+vx3)-cu_sq); -// (D27.f[dMPM])[kbnw ] = c1o216*ConcD*(c1o1+c3o1*(-vx1+vx2-vx3)+c9o2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3)-cu_sq); -// (D27.f[dPMM])[kbse ] = c1o216*ConcD*(c1o1+c3o1*( vx1-vx2-vx3)+c9o2*( vx1-vx2-vx3)*( vx1-vx2-vx3)-cu_sq); -// (D27.f[dMPP])[ktnw ] = c1o216*ConcD*(c1o1+c3o1*(-vx1+vx2+vx3)+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cu_sq); -// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// } -// } -// } - - - - - - - - - - - - - - - - - - -//////////////////////////////////////////////////////////////////////////////// -__global__ void InitAD7( unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned int* geoD, - real* Conc, - real* ux, - real* uy, - real* uz, - unsigned long long numberOfLBnodes, - real* DD7, - bool EvenOrOdd) -{ - //////////////////////////////////////////////////////////////////////////////// - const unsigned x = threadIdx.x; // Globaler x-Index - const unsigned y = blockIdx.x; // Globaler y-Index - const unsigned z = blockIdx.y; // Globaler z-Index - - const unsigned nx = blockDim.x; - const unsigned ny = gridDim.x; - - const unsigned k = nx*(ny*z + y) + x; - ////////////////////////////////////////////////////////////////////////// - - if(k<numberOfLBnodes) - { - //////////////////////////////////////////////////////////////////////////////// - unsigned int BC; - BC = geoD[k]; - - if( BC != GEO_SOLID && BC != GEO_VOID) - { - Distributions7 D7; - if (EvenOrOdd==true) - { - D7.f[0] = &DD7[0*numberOfLBnodes]; - D7.f[1] = &DD7[1*numberOfLBnodes]; - D7.f[2] = &DD7[2*numberOfLBnodes]; - D7.f[3] = &DD7[3*numberOfLBnodes]; - D7.f[4] = &DD7[4*numberOfLBnodes]; - D7.f[5] = &DD7[5*numberOfLBnodes]; - D7.f[6] = &DD7[6*numberOfLBnodes]; - } - else - { - D7.f[0] = &DD7[0*numberOfLBnodes]; - D7.f[2] = &DD7[1*numberOfLBnodes]; - D7.f[1] = &DD7[2*numberOfLBnodes]; - D7.f[4] = &DD7[3*numberOfLBnodes]; - D7.f[3] = &DD7[4*numberOfLBnodes]; - D7.f[6] = &DD7[5*numberOfLBnodes]; - D7.f[5] = &DD7[6*numberOfLBnodes]; - } - ////////////////////////////////////////////////////////////////////////// - real ConcD = Conc[k]; - real vx1 = ux[k]; - real vx2 = uy[k]; - real vx3 = uz[k]; - real lambdaD = -c3o1 + sqrt(c3o1); - real Diffusivity = c1o20; - real Lam = -(c1o2+c1o1/lambdaD); - real nue_d = Lam/c3o1; - real ae = Diffusivity/nue_d - c1o1; - real ux_sq = vx1 * vx1; - real uy_sq = vx2 * vx2; - real uz_sq = vx3 * vx3; - ////////////////////////////////////////////////////////////////////////// - //index - ////////////////////////////////////////////////////////////////////////// - unsigned int kzero= k; - unsigned int ke = k; - unsigned int kw = neighborX[k]; - unsigned int kn = k; - unsigned int ks = neighborY[k]; - unsigned int kt = k; - unsigned int kb = neighborZ[k]; - ////////////////////////////////////////////////////////////////////////// - - (D7.f[0])[kzero] = ConcD*(c1o3*(ae*(-c3o1))-(ux_sq+uy_sq+uz_sq)); - (D7.f[1])[ke ] = ConcD*(c1o6*(ae+c1o1)+c1o2*(ux_sq)+vx1*c1o2); - (D7.f[2])[kw ] = ConcD*(c1o6*(ae+c1o1)+c1o2*(ux_sq)-vx1*c1o2); - (D7.f[3])[kn ] = ConcD*(c1o6*(ae+c1o1)+c1o2*(uy_sq)+vx2*c1o2); - (D7.f[4])[ks ] = ConcD*(c1o6*(ae+c1o1)+c1o2*(uy_sq)-vx2*c1o2); - (D7.f[5])[kt ] = ConcD*(c1o6*(ae+c1o1)+c1o2*(uz_sq)+vx3*c1o2); - (D7.f[6])[kb ] = ConcD*(c1o6*(ae+c1o1)+c1o2*(uz_sq)-vx3*c1o2); - } - } -} \ No newline at end of file diff --git a/src/gpu/core/GPU/KineticEnergyAnalyzer.cu b/src/gpu/core/GPU/KineticEnergyAnalyzer.cu index 59b1b6494479e256e910d750e239d707573e2f71..05633b8a8acb4fa63a20b7cf30624dd15bb742e9 100644 --- a/src/gpu/core/GPU/KineticEnergyAnalyzer.cu +++ b/src/gpu/core/GPU/KineticEnergyAnalyzer.cu @@ -34,7 +34,7 @@ bool KineticEnergyAnalyzer::run(uint iter) { if( iter % this->analyzeIter != 0 ) return false; - int lev = 0; + int lev = 0; vf::cuda::CudaGrid grid = vf::cuda::CudaGrid(para->getParD(lev)->numberofthreads, para->getParD(lev)->numberOfNodes); thrust::device_vector<real> kineticEnergy( this->para->getParD(lev)->numberOfNodes, c0o1); @@ -72,7 +72,7 @@ bool KineticEnergyAnalyzer::run(uint iter) getLastCudaError("kineticEnergyKernel execution failed"); - real EKin = thrust::reduce(kineticEnergy.begin(), kineticEnergy.end(), c0o1, thrust::plus<real>()); + real EKin = thrust::reduce(kineticEnergy.begin(), kineticEnergy.end(), c0o1, thrust::plus<real>()); uint numberOfFluidNodes = thrust::reduce(isFluid.begin(), isFluid.end(), 0, thrust::plus<uint>()); //std::cout << "EKin " << EKin << " " << numberOfFluidNodes << std::endl; @@ -96,16 +96,16 @@ __global__ void kineticEnergyKernel(real* vx, real* vy, real* vz, real* rho, uin const uint ny = gridDim.x; const uint index = nx*(ny*z + y) + x; - //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// //printf("%d\n", index); //if( index % 34 == 0 || index % 34 == 33 ) return; if( index >= (uint)numberOfLBnodes) return; - unsigned int BC; - BC = geo[index]; - if (BC != GEO_FLUID) return; + unsigned int BC; + BC = geo[index]; + if (BC != GEO_FLUID) return; kineticEnergyFunction( vx, vy, vz, rho, neighborX, neighborY, neighborZ, neighborWSB, geo, kineticEnergy, isFluid, index ); } @@ -113,15 +113,15 @@ __global__ void kineticEnergyKernel(real* vx, real* vy, real* vz, real* rho, uin __host__ __device__ void kineticEnergyFunction(real* vx, real* vy, real* vz, real* rho, uint* neighborX, uint* neighborY, uint* neighborZ, uint* neighborWSB, uint* geo, real* kineticEnergy, uint* isFluid, uint index) { ////////////////////////////////////////////////////////////////////////////// - //neighbor index - uint k = index; - uint kPx = neighborX[k]; if( geo[ kPx ] != GEO_FLUID ) return; - uint kPy = neighborY[k]; if( geo[ kPy ] != GEO_FLUID ) return; - uint kPz = neighborZ[k]; if( geo[ kPz ] != GEO_FLUID ) return; - uint kMxyz = neighborWSB[k]; if( geo[ kMxyz ] != GEO_FLUID ) return; - uint kMx = neighborZ[neighborY[kMxyz]]; if( geo[ kMx ] != GEO_FLUID ) return; - uint kMy = neighborZ[neighborX[kMxyz]]; if( geo[ kMy ] != GEO_FLUID ) return; - uint kMz = neighborY[neighborX[kMxyz]]; if( geo[ kMz ] != GEO_FLUID ) return; + //neighbor index + uint k = index; + uint kPx = neighborX[k]; if( geo[ kPx ] != GEO_FLUID ) return; + uint kPy = neighborY[k]; if( geo[ kPy ] != GEO_FLUID ) return; + uint kPz = neighborZ[k]; if( geo[ kPz ] != GEO_FLUID ) return; + uint kMxyz = neighborWSB[k]; if( geo[ kMxyz ] != GEO_FLUID ) return; + uint kMx = neighborZ[neighborY[kMxyz]]; if( geo[ kMx ] != GEO_FLUID ) return; + uint kMy = neighborZ[neighborX[kMxyz]]; if( geo[ kMy ] != GEO_FLUID ) return; + uint kMz = neighborY[neighborX[kMxyz]]; if( geo[ kMz ] != GEO_FLUID ) return; ////////////////////////////////////////////////////////////////////////// isFluid[ index ] = 1; @@ -139,7 +139,7 @@ KineticEnergyAnalyzer::KineticEnergyAnalyzer(SPtr<Parameter> para, uint analyzeI void KineticEnergyAnalyzer::writeToFile(std::string filename) { - std::cout << "KineticEnergyAnalyzer::writeToFile( " << filename << " )" << "\n"; + std::cout << "KineticEnergyAnalyzer::writeToFile( " << filename << " )" << "\n"; std::ofstream file; @@ -150,7 +150,7 @@ void KineticEnergyAnalyzer::writeToFile(std::string filename) file.close(); - std::cout << "done!\n"; + std::cout << "done!\n"; } diff --git a/src/gpu/core/GPU/KineticEnergyAnalyzer.h b/src/gpu/core/GPU/KineticEnergyAnalyzer.h index 0ca95bc1bfd51cce48b9aa8ce248e99b49419523..c55119c2a2c468262b457f6ce317e407cd4e213d 100644 --- a/src/gpu/core/GPU/KineticEnergyAnalyzer.h +++ b/src/gpu/core/GPU/KineticEnergyAnalyzer.h @@ -16,7 +16,7 @@ class KineticEnergyAnalyzer { private: - SPtr<Parameter> para; + SPtr<Parameter> para; uint analyzeIter; diff --git a/src/gpu/core/GPU/LBMKernel.cu b/src/gpu/core/GPU/LBMKernel.cu index 67aa3aead41b0d14c8dacec833f3b1f94fd472ca..403ed748f3d525bb5eaefe35b44ef26391230fcd 100644 --- a/src/gpu/core/GPU/LBMKernel.cu +++ b/src/gpu/core/GPU/LBMKernel.cu @@ -18,111 +18,6 @@ #include "Parameter/Parameter.h" ////////////////////////////////////////////////////////////////////////// -void Init27( - int myid, - int numprocs, - real u0, - unsigned int* geoD, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - real* vParab, - unsigned long long numberOfLBnodes, - unsigned int grid_nx, - unsigned int grid_ny, - unsigned int grid_nz, - real* DD, - int level, - int maxlevel) -{ - dim3 threads ( grid_nx, 1, 1 ); - dim3 grid ( grid_ny, grid_nz ); - - LBInit27<<< grid, threads >>> ( - myid, - numprocs, - u0, - geoD, - neighborX, - neighborY, - neighborZ, - vParab, - numberOfLBnodes, - grid_nx, - grid_ny, - grid_nz, - DD, - level, - maxlevel); - getLastCudaError("LBInit27 execution failed"); -} -////////////////////////////////////////////////////////////////////////// -void InitNonEqPartSP27( - unsigned int numberOfThreads, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned int* neighborWSB, - unsigned int* geoD, - real* rho, - real* ux, - real* uy, - real* uz, - unsigned long long numberOfLBnodes, - real* DD, - real omega, - bool EvenOrOdd) -{ - vf::cuda::CudaGrid grid = vf::cuda::CudaGrid(numberOfThreads, numberOfLBnodes); - - LBInitNonEqPartSP27<<< grid.grid, grid.threads >>>( - neighborX, - neighborY, - neighborZ, - neighborWSB, - geoD, - rho, - ux, - uy, - uz, - numberOfLBnodes, - DD, - omega, - EvenOrOdd); - getLastCudaError("LBInitNonEqPartSP27 execution failed"); -} -////////////////////////////////////////////////////////////////////////// -void InitADDev27( - unsigned int numberOfThreads, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned int* geoD, - real* Conc, - real* ux, - real* uy, - real* uz, - unsigned long long numberOfLBnodes, - real* DD27, - bool EvenOrOdd) -{ - vf::cuda::CudaGrid grid = vf::cuda::CudaGrid(numberOfThreads, numberOfLBnodes); - - InitAD27<<< grid.grid, grid.threads >>>( - neighborX, - neighborY, - neighborZ, - geoD, - Conc, - ux, - uy, - uz, - numberOfLBnodes, - DD27, - EvenOrOdd); - getLastCudaError("InitAD27 execution failed"); -} -////////////////////////////////////////////////////////////////////////// void CalcMac27( real* vxD, real* vyD, diff --git a/src/gpu/core/GPU/NoSlipBCs27.cu b/src/gpu/core/GPU/NoSlipBCs27.cu index ff98f16ef79fd86c15f57a6a90e32daaa3e07440..1668f33adbded6f0fb324ea7beb424dbe7ffe823 100644 --- a/src/gpu/core/GPU/NoSlipBCs27.cu +++ b/src/gpu/core/GPU/NoSlipBCs27.cu @@ -221,8 +221,8 @@ __global__ void QDevice3rdMomentsComp27( //////////////////////////////////////////////////////////////////////////////// real vx1, vx2, vx3, drho, feq, q, m3; drho = f_TSE + f_TNW + f_TNE + f_TSW + f_BSE + f_BNW + f_BNE + f_BSW + - f_BN + f_TS + f_TN + f_BS + f_BE + f_TW + f_TE + f_BW + f_SE + f_NW + f_NE + f_SW + - f_T + f_B + f_N + f_S + f_E + f_W + ((D.f[d000])[kzero]); + f_BN + f_TS + f_TN + f_BS + f_BE + f_TW + f_TE + f_BW + f_SE + f_NW + f_NE + f_SW + + f_T + f_B + f_N + f_S + f_E + f_W + ((D.f[d000])[kzero]); vx1 = (((f_TSE - f_BNW) - (f_TNW - f_BSE)) + ((f_TNE - f_BSW) - (f_TSW - f_BNE)) + ((f_BE - f_TW) + (f_TE - f_BW)) + ((f_SE - f_NW) + (f_NE - f_SW)) + @@ -304,14 +304,14 @@ __global__ void QDevice3rdMomentsComp27( //Test //(D.f[d000])[k]=c1o10; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - - //ToDo anders klammern !!!!!! - + + + //ToDo anders klammern !!!!!! + q = q_dirE[k]; if (q>=c0o1 && q<=c1o1) { - m3 = f_E - f_W - c2o1 * drho * c2o27 * (c3o1*( vx1 )); + m3 = f_E - f_W - c2o1 * drho * c2o27 * (c3o1*( vx1 )); feq=c2o27* (drho/*+three*( vx1 )*/+c9o2*( vx1 )*( vx1 ) * (c1o1 + drho)-cu_sq); (D.f[dM00])[kw]=(c1o1-q)/(c1o1+q)*(f_E-f_W-m3+(f_E+f_W-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_E+f_W))/(c1o1+q)+(m3*c1o2); //(D.f[dM00])[kw]=zero; @@ -320,7 +320,7 @@ __global__ void QDevice3rdMomentsComp27( q = q_dirW[k]; if (q>=c0o1 && q<=c1o1) { - m3 = f_W - f_E - c2o1 * drho * c2o27 * (c3o1*(-vx1 )); + m3 = f_W - f_E - c2o1 * drho * c2o27 * (c3o1*(-vx1 )); feq=c2o27* (drho/*+three*(-vx1 )*/+c9o2*(-vx1 )*(-vx1 ) * (c1o1 + drho)-cu_sq); (D.f[dP00])[ke]=(c1o1-q)/(c1o1+q)*(f_W-f_E-m3+(f_W+f_E-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_W+f_E))/(c1o1+q)+(m3*c1o2); //(D.f[dP00])[ke]=zero; @@ -329,7 +329,7 @@ __global__ void QDevice3rdMomentsComp27( q = q_dirN[k]; if (q>=c0o1 && q<=c1o1) { - m3 = f_N - f_S - c2o1 * drho * c2o27 * (c3o1*( vx2 )); + m3 = f_N - f_S - c2o1 * drho * c2o27 * (c3o1*( vx2 )); feq=c2o27* (drho/*+three*( vx2 )*/+c9o2*( vx2 )*( vx2 ) * (c1o1 + drho)-cu_sq); (D.f[d0M0])[ks]=(c1o1-q)/(c1o1+q)*(f_N-f_S-m3+(f_N+f_S-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_N+f_S))/(c1o1+q)+(m3*c1o2); //(D.f[d0M0])[ks]=zero; @@ -338,7 +338,7 @@ __global__ void QDevice3rdMomentsComp27( q = q_dirS[k]; if (q>=c0o1 && q<=c1o1) { - m3 = f_S - f_N - c2o1 * drho * c2o27 * (c3o1*( -vx2 )); + m3 = f_S - f_N - c2o1 * drho * c2o27 * (c3o1*( -vx2 )); feq=c2o27* (drho/*+three*( -vx2 )*/+c9o2*( -vx2 )*( -vx2 ) * (c1o1 + drho)-cu_sq); (D.f[d0P0])[kn]=(c1o1-q)/(c1o1+q)*(f_S-f_N-m3+(f_S+f_N-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_S+f_N))/(c1o1+q)+(m3*c1o2); //(D.f[d0P0])[kn]=zero; @@ -347,7 +347,7 @@ __global__ void QDevice3rdMomentsComp27( q = q_dirT[k]; if (q>=c0o1 && q<=c1o1) { - m3 = f_T - f_B - c2o1 * drho * c2o27 * (c3o1*( vx3)); + m3 = f_T - f_B - c2o1 * drho * c2o27 * (c3o1*( vx3)); feq=c2o27* (drho/*+three*( vx3)*/+c9o2*( vx3)*( vx3) * (c1o1 + drho)-cu_sq); (D.f[d00M])[kb]=(c1o1-q)/(c1o1+q)*(f_T-f_B-m3+(f_T+f_B-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_T+f_B))/(c1o1+q)+(m3*c1o2); //(D.f[d00M])[kb]=one; @@ -356,7 +356,7 @@ __global__ void QDevice3rdMomentsComp27( q = q_dirB[k]; if (q>=c0o1 && q<=c1o1) { - m3 = f_B - f_T - c2o1 * drho * c2o27 * (c3o1*( -vx3)); + m3 = f_B - f_T - c2o1 * drho * c2o27 * (c3o1*( -vx3)); feq=c2o27* (drho/*+three*( -vx3)*/+c9o2*( -vx3)*( -vx3) * (c1o1 + drho)-cu_sq); (D.f[d00P])[kt]=(c1o1-q)/(c1o1+q)*(f_B-f_T-m3+(f_B+f_T-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_B+f_T))/(c1o1+q)+(m3*c1o2); //(D.f[d00P])[kt]=zero; @@ -365,7 +365,7 @@ __global__ void QDevice3rdMomentsComp27( q = q_dirNE[k]; if (q>=c0o1 && q<=c1o1) { - m3 = f_NE - f_SW - c2o1 * drho * c1o54 * (c3o1*( vx1+vx2 )); + m3 = f_NE - f_SW - c2o1 * drho * c1o54 * (c3o1*( vx1+vx2 )); feq=c1o54* (drho/*+three*( vx1+vx2 )*/+c9o2*( vx1+vx2 )*( vx1+vx2 ) * (c1o1 + drho)-cu_sq); (D.f[dMM0])[ksw]=(c1o1-q)/(c1o1+q)*(f_NE-f_SW-m3+(f_NE+f_SW-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_NE+f_SW))/(c1o1+q)+(m3*c1o2); //(D.f[dMM0])[ksw]=zero; @@ -374,7 +374,7 @@ __global__ void QDevice3rdMomentsComp27( q = q_dirSW[k]; if (q>=c0o1 && q<=c1o1) { - m3 = f_SW - f_NE - c2o1 * drho * c1o54 * (c3o1*(-vx1-vx2 )); + m3 = f_SW - f_NE - c2o1 * drho * c1o54 * (c3o1*(-vx1-vx2 )); feq=c1o54* (drho/*+three*(-vx1-vx2 )*/+c9o2*(-vx1-vx2 )*(-vx1-vx2 ) * (c1o1 + drho)-cu_sq); (D.f[dPP0])[kne]=(c1o1-q)/(c1o1+q)*(f_SW-f_NE-m3+(f_SW+f_NE-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_SW+f_NE))/(c1o1+q)+(m3*c1o2); //(D.f[dPP0])[kne]=zero; @@ -383,7 +383,7 @@ __global__ void QDevice3rdMomentsComp27( q = q_dirSE[k]; if (q>=c0o1 && q<=c1o1) { - m3 = f_SE - f_NW - c2o1 * drho * c1o54 * (c3o1*( vx1-vx2 )); + m3 = f_SE - f_NW - c2o1 * drho * c1o54 * (c3o1*( vx1-vx2 )); feq=c1o54* (drho/*+three*( vx1-vx2 )*/+c9o2*( vx1-vx2 )*( vx1-vx2 ) * (c1o1 + drho)-cu_sq); (D.f[dMP0])[knw]=(c1o1-q)/(c1o1+q)*(f_SE-f_NW-m3+(f_SE+f_NW-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_SE+f_NW))/(c1o1+q)+(m3*c1o2); //(D.f[dMP0])[knw]=zero; @@ -392,7 +392,7 @@ __global__ void QDevice3rdMomentsComp27( q = q_dirNW[k]; if (q>=c0o1 && q<=c1o1) { - m3 = f_NW - f_SE - c2o1 * drho * c1o54 * (c3o1*(-vx1+vx2 )); + m3 = f_NW - f_SE - c2o1 * drho * c1o54 * (c3o1*(-vx1+vx2 )); feq=c1o54* (drho/*+three*(-vx1+vx2 )*/+c9o2*(-vx1+vx2 )*(-vx1+vx2 ) * (c1o1 + drho)-cu_sq); (D.f[dPM0])[kse]=(c1o1-q)/(c1o1+q)*(f_NW-f_SE-m3+(f_NW+f_SE-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_NW+f_SE))/(c1o1+q)+(m3*c1o2); //(D.f[dPM0])[kse]=zero; @@ -401,7 +401,7 @@ __global__ void QDevice3rdMomentsComp27( q = q_dirTE[k]; if (q>=c0o1 && q<=c1o1) { - m3 = f_TE - f_BW - c2o1 * drho * c1o54 * (c3o1*( vx1 +vx3)); + m3 = f_TE - f_BW - c2o1 * drho * c1o54 * (c3o1*( vx1 +vx3)); feq=c1o54* (drho/*+three*( vx1 +vx3)*/+c9o2*( vx1 +vx3)*( vx1 +vx3) * (c1o1 + drho)-cu_sq); (D.f[dM0M])[kbw]=(c1o1-q)/(c1o1+q)*(f_TE-f_BW-m3+(f_TE+f_BW-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_TE+f_BW))/(c1o1+q)+(m3*c1o2); //(D.f[dM0M])[kbw]=zero; @@ -410,7 +410,7 @@ __global__ void QDevice3rdMomentsComp27( q = q_dirBW[k]; if (q>=c0o1 && q<=c1o1) { - m3 = f_BW - f_TE - c2o1 * drho * c1o54 * (c3o1*(-vx1 -vx3)); + m3 = f_BW - f_TE - c2o1 * drho * c1o54 * (c3o1*(-vx1 -vx3)); feq=c1o54* (drho/*+three*(-vx1 -vx3)*/+c9o2*(-vx1 -vx3)*(-vx1 -vx3) * (c1o1 + drho)-cu_sq); (D.f[dP0P])[kte]=(c1o1-q)/(c1o1+q)*(f_BW-f_TE-m3+(f_BW+f_TE-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_BW+f_TE))/(c1o1+q)+(m3*c1o2); //(D.f[dP0P])[kte]=zero; @@ -419,7 +419,7 @@ __global__ void QDevice3rdMomentsComp27( q = q_dirBE[k]; if (q>=c0o1 && q<=c1o1) { - m3 = f_BE - f_TW - c2o1 * drho * c1o54 * (c3o1*( vx1 -vx3)); + m3 = f_BE - f_TW - c2o1 * drho * c1o54 * (c3o1*( vx1 -vx3)); feq=c1o54* (drho/*+three*( vx1 -vx3)*/+c9o2*( vx1 -vx3)*( vx1 -vx3) * (c1o1 + drho)-cu_sq); (D.f[dM0P])[ktw]=(c1o1-q)/(c1o1+q)*(f_BE-f_TW-m3+(f_BE+f_TW-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_BE+f_TW))/(c1o1+q)+(m3*c1o2); //(D.f[dM0P])[ktw]=zero; @@ -428,7 +428,7 @@ __global__ void QDevice3rdMomentsComp27( q = q_dirTW[k]; if (q>=c0o1 && q<=c1o1) { - m3 = f_TW - f_BE - c2o1 * drho * c1o54 * (c3o1*(-vx1 +vx3)); + m3 = f_TW - f_BE - c2o1 * drho * c1o54 * (c3o1*(-vx1 +vx3)); feq=c1o54* (drho/*+three*(-vx1 +vx3)*/+c9o2*(-vx1 +vx3)*(-vx1 +vx3) * (c1o1 + drho)-cu_sq); (D.f[dP0M])[kbe]=(c1o1-q)/(c1o1+q)*(f_TW-f_BE-m3+(f_TW+f_BE-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_TW+f_BE))/(c1o1+q)+(m3*c1o2); //(D.f[dP0M])[kbe]=zero; @@ -437,7 +437,7 @@ __global__ void QDevice3rdMomentsComp27( q = q_dirTN[k]; if (q>=c0o1 && q<=c1o1) { - m3 = f_TN - f_BS - c2o1 * drho * c1o54 * (c3o1*( vx2+vx3)); + m3 = f_TN - f_BS - c2o1 * drho * c1o54 * (c3o1*( vx2+vx3)); feq=c1o54* (drho/*+three*( vx2+vx3)*/+c9o2*( vx2+vx3)*( vx2+vx3) * (c1o1 + drho)-cu_sq); (D.f[d0MM])[kbs]=(c1o1-q)/(c1o1+q)*(f_TN-f_BS-m3+(f_TN+f_BS-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_TN+f_BS))/(c1o1+q)+(m3*c1o2); //(D.f[d0MM])[kbs]=zero; @@ -446,7 +446,7 @@ __global__ void QDevice3rdMomentsComp27( q = q_dirBS[k]; if (q>=c0o1 && q<=c1o1) { - m3 = f_BS - f_TN - c2o1 * drho * c1o54 * (c3o1*( -vx2-vx3)); + m3 = f_BS - f_TN - c2o1 * drho * c1o54 * (c3o1*( -vx2-vx3)); feq=c1o54* (drho/*+three*( -vx2-vx3)*/+c9o2*( -vx2-vx3)*( -vx2-vx3) * (c1o1 + drho)-cu_sq); (D.f[d0PP])[ktn]=(c1o1-q)/(c1o1+q)*(f_BS-f_TN-m3+(f_BS+f_TN-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_BS+f_TN))/(c1o1+q)+(m3*c1o2); //(D.f[d0PP])[ktn]=zero; @@ -455,7 +455,7 @@ __global__ void QDevice3rdMomentsComp27( q = q_dirBN[k]; if (q>=c0o1 && q<=c1o1) { - m3 = f_BN - f_TS - c2o1 * drho * c1o54 * (c3o1*( vx2-vx3)); + m3 = f_BN - f_TS - c2o1 * drho * c1o54 * (c3o1*( vx2-vx3)); feq=c1o54* (drho/*+three*( vx2-vx3)*/+c9o2*( vx2-vx3)*( vx2-vx3) * (c1o1 + drho)-cu_sq); (D.f[d0MP])[kts]=(c1o1-q)/(c1o1+q)*(f_BN-f_TS-m3+(f_BN+f_TS-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_BN+f_TS))/(c1o1+q)+(m3*c1o2); //(D.f[d0MP])[kts]=zero; @@ -464,7 +464,7 @@ __global__ void QDevice3rdMomentsComp27( q = q_dirTS[k]; if (q>=c0o1 && q<=c1o1) { - m3 = f_TS - f_BN - c2o1 * drho * c1o54 * (c3o1*( -vx2+vx3)); + m3 = f_TS - f_BN - c2o1 * drho * c1o54 * (c3o1*( -vx2+vx3)); feq=c1o54* (drho/*+three*( -vx2+vx3)*/+c9o2*( -vx2+vx3)*( -vx2+vx3) * (c1o1 + drho)-cu_sq); (D.f[d0PM])[kbn]=(c1o1-q)/(c1o1+q)*(f_TS-f_BN-m3+(f_TS+f_BN-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_TS+f_BN))/(c1o1+q)+(m3*c1o2); //(D.f[d0PM])[kbn]=zero; @@ -473,7 +473,7 @@ __global__ void QDevice3rdMomentsComp27( q = q_dirTNE[k]; if (q>=c0o1 && q<=c1o1) { - m3 = f_TNE - f_BSW - c2o1 * drho * c1o216 * (c3o1*( vx1+vx2+vx3)); + m3 = f_TNE - f_BSW - c2o1 * drho * c1o216 * (c3o1*( vx1+vx2+vx3)); feq=c1o216*(drho/*+three*( vx1+vx2+vx3)*/+c9o2*( vx1+vx2+vx3)*( vx1+vx2+vx3) * (c1o1 + drho)-cu_sq); (D.f[dMMM])[kbsw]=(c1o1-q)/(c1o1+q)*(f_TNE-f_BSW-m3+(f_TNE+f_BSW-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_TNE+f_BSW))/(c1o1+q)+(m3*c1o2); //(D.f[dMMM])[kbsw]=zero; @@ -482,7 +482,7 @@ __global__ void QDevice3rdMomentsComp27( q = q_dirBSW[k]; if (q>=c0o1 && q<=c1o1) { - m3 = f_BSW - f_TNE - c2o1 * drho * c1o216 * (c3o1*(-vx1-vx2-vx3)); + m3 = f_BSW - f_TNE - c2o1 * drho * c1o216 * (c3o1*(-vx1-vx2-vx3)); feq=c1o216*(drho/*+three*(-vx1-vx2-vx3)*/+c9o2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3) * (c1o1 + drho)-cu_sq); (D.f[dPPP])[ktne]=(c1o1-q)/(c1o1+q)*(f_BSW-f_TNE-m3+(f_BSW+f_TNE-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_BSW+f_TNE))/(c1o1+q)+(m3*c1o2); //(D.f[dPPP])[ktne]=zero; @@ -491,7 +491,7 @@ __global__ void QDevice3rdMomentsComp27( q = q_dirBNE[k]; if (q>=c0o1 && q<=c1o1) { - m3 = f_BNE - f_TSW - c2o1 * drho * c1o216 * (c3o1*( vx1+vx2-vx3)); + m3 = f_BNE - f_TSW - c2o1 * drho * c1o216 * (c3o1*( vx1+vx2-vx3)); feq=c1o216*(drho/*+three*( vx1+vx2-vx3)*/+c9o2*( vx1+vx2-vx3)*( vx1+vx2-vx3) * (c1o1 + drho)-cu_sq); (D.f[dMMP])[ktsw]=(c1o1-q)/(c1o1+q)*(f_BNE-f_TSW-m3+(f_BNE+f_TSW-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_BNE+f_TSW))/(c1o1+q)+(m3*c1o2); //(D.f[dMMP])[ktsw]=zero; @@ -500,7 +500,7 @@ __global__ void QDevice3rdMomentsComp27( q = q_dirTSW[k]; if (q>=c0o1 && q<=c1o1) { - m3 = f_TSW - f_BNE - c2o1 * drho * c1o216 * (c3o1*(-vx1-vx2+vx3)); + m3 = f_TSW - f_BNE - c2o1 * drho * c1o216 * (c3o1*(-vx1-vx2+vx3)); feq=c1o216*(drho/*+three*(-vx1-vx2+vx3)*/+c9o2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3) * (c1o1 + drho)-cu_sq); (D.f[dPPM])[kbne]=(c1o1-q)/(c1o1+q)*(f_TSW-f_BNE-m3+(f_TSW+f_BNE-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_TSW+f_BNE))/(c1o1+q)+(m3*c1o2); //(D.f[dPPM])[kbne]=zero; @@ -509,7 +509,7 @@ __global__ void QDevice3rdMomentsComp27( q = q_dirTSE[k]; if (q>=c0o1 && q<=c1o1) { - m3 = f_TSE - f_BNW - c2o1 * drho * c1o216 * (c3o1*( vx1-vx2+vx3)); + m3 = f_TSE - f_BNW - c2o1 * drho * c1o216 * (c3o1*( vx1-vx2+vx3)); feq=c1o216*(drho/*+three*( vx1-vx2+vx3)*/+c9o2*( vx1-vx2+vx3)*( vx1-vx2+vx3) * (c1o1 + drho)-cu_sq); (D.f[dMPM])[kbnw]=(c1o1-q)/(c1o1+q)*(f_TSE-f_BNW-m3+(f_TSE+f_BNW-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_TSE+f_BNW))/(c1o1+q)+(m3*c1o2); //(D.f[dMPM])[kbnw]=zero; @@ -518,7 +518,7 @@ __global__ void QDevice3rdMomentsComp27( q = q_dirBNW[k]; if (q>=c0o1 && q<=c1o1) { - m3 = f_BNW - f_TSE - c2o1 * drho * c1o216 * (c3o1*(-vx1+vx2-vx3)); + m3 = f_BNW - f_TSE - c2o1 * drho * c1o216 * (c3o1*(-vx1+vx2-vx3)); feq=c1o216*(drho/*+three*(-vx1+vx2-vx3)*/+c9o2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3) * (c1o1 + drho)-cu_sq); (D.f[dPMP])[ktse]=(c1o1-q)/(c1o1+q)*(f_BNW-f_TSE-m3+(f_BNW+f_TSE-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_BNW+f_TSE))/(c1o1+q)+(m3*c1o2); //(D.f[dPMP])[ktse]=zero; @@ -527,7 +527,7 @@ __global__ void QDevice3rdMomentsComp27( q = q_dirBSE[k]; if (q>=c0o1 && q<=c1o1) { - m3 = f_BSE - f_TNW - c2o1 * drho * c1o216 * (c3o1*( vx1-vx2-vx3)); + m3 = f_BSE - f_TNW - c2o1 * drho * c1o216 * (c3o1*( vx1-vx2-vx3)); feq=c1o216*(drho/*+three*( vx1-vx2-vx3)*/+c9o2*( vx1-vx2-vx3)*( vx1-vx2-vx3) * (c1o1 + drho)-cu_sq); (D.f[dMPP])[ktnw]=(c1o1-q)/(c1o1+q)*(f_BSE-f_TNW-m3+(f_BSE+f_TNW-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_BSE+f_TNW))/(c1o1+q)+(m3*c1o2); //(D.f[dMPP])[ktnw]=zero; @@ -536,7 +536,7 @@ __global__ void QDevice3rdMomentsComp27( q = q_dirTNW[k]; if (q>=c0o1 && q<=c1o1) { - m3 = f_TNW - f_BSE - c2o1 * drho * c1o216 * (c3o1*(-vx1+vx2+vx3)); + m3 = f_TNW - f_BSE - c2o1 * drho * c1o216 * (c3o1*(-vx1+vx2+vx3)); feq=c1o216*(drho/*+three*(-vx1+vx2+vx3)*/+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3) * (c1o1 + drho)-cu_sq); (D.f[dPMM])[kbse]=(c1o1-q)/(c1o1+q)*(f_TNW-f_BSE-m3+(f_TNW+f_BSE-c2o1*feq*omega)/(c1o1-omega))*c1o2+(q*(f_TNW+f_BSE))/(c1o1+q)+(m3*c1o2); //(D.f[dPMM])[kbse]=zero; @@ -765,8 +765,8 @@ __global__ void QDeviceIncompHighNu27( //////////////////////////////////////////////////////////////////////////////// real vx1, vx2, vx3, drho, feq, q; drho = f_TSE + f_TNW + f_TNE + f_TSW + f_BSE + f_BNW + f_BNE + f_BSW + - f_BN + f_TS + f_TN + f_BS + f_BE + f_TW + f_TE + f_BW + f_SE + f_NW + f_NE + f_SW + - f_T + f_B + f_N + f_S + f_E + f_W + ((D.f[d000])[kzero]); + f_BN + f_TS + f_TN + f_BS + f_BE + f_TW + f_TE + f_BW + f_SE + f_NW + f_NE + f_SW + + f_T + f_B + f_N + f_S + f_E + f_W + ((D.f[d000])[kzero]); vx1 = (((f_TSE - f_BNW) - (f_TNW - f_BSE)) + ((f_TNE - f_BSW) - (f_TSW - f_BNE)) + ((f_BE - f_TW) + (f_TE - f_BW)) + ((f_SE - f_NW) + (f_NE - f_SW)) + @@ -852,10 +852,10 @@ __global__ void QDeviceIncompHighNu27( real VeloY = c0o1; real VeloZ = c0o1; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - - //ToDo anders klammern !!!!!! - + + + //ToDo anders klammern !!!!!! + q = q_dirE[k]; if (q>=c0o1 && q<=c1o1) { @@ -1287,8 +1287,8 @@ __global__ void QDeviceCompHighNu27( //////////////////////////////////////////////////////////////////////////////// real vx1, vx2, vx3, drho, feq, q; drho = f_TSE + f_TNW + f_TNE + f_TSW + f_BSE + f_BNW + f_BNE + f_BSW + - f_BN + f_TS + f_TN + f_BS + f_BE + f_TW + f_TE + f_BW + f_SE + f_NW + f_NE + f_SW + - f_T + f_B + f_N + f_S + f_E + f_W + ((D.f[d000])[kzero]); + f_BN + f_TS + f_TN + f_BS + f_BE + f_TW + f_TE + f_BW + f_SE + f_NW + f_NE + f_SW + + f_T + f_B + f_N + f_S + f_E + f_W + ((D.f[d000])[kzero]); vx1 = (((f_TSE - f_BNW) - (f_TNW - f_BSE)) + ((f_TNE - f_BSW) - (f_TSW - f_BNE)) + ((f_BE - f_TW) + (f_TE - f_BW)) + ((f_SE - f_NW) + (f_NE - f_SW)) + @@ -1374,10 +1374,10 @@ __global__ void QDeviceCompHighNu27( real VeloY = c0o1; real VeloZ = c0o1; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - - //ToDo anders klammern !!!!!! - + + + //ToDo anders klammern !!!!!! + q = q_dirE[k]; if (q>=c0o1 && q<=c1o1) { diff --git a/src/gpu/core/GPU/Particles.cu b/src/gpu/core/GPU/Particles.cu index 6f30a09c1b306f8833649a84f6ee7b702ab83f7e..aec8f029ef58d46f1527b58a4f4746429bf94f2a 100644 --- a/src/gpu/core/GPU/Particles.cu +++ b/src/gpu/core/GPU/Particles.cu @@ -8,28 +8,28 @@ using namespace vf::lbm::dir; ////////////////////////////////////////////////////////////////////////////// __global__ void InitParticles( real* coordX, - real* coordY, - real* coordZ, - real* coordParticleXlocal, - real* coordParticleYlocal, - real* coordParticleZlocal, - real* coordParticleXglobal, - real* coordParticleYglobal, - real* coordParticleZglobal, - real* veloParticleX, - real* veloParticleY, - real* veloParticleZ, - real* randArray, - unsigned int* particleID, - unsigned int* cellBaseID, - unsigned int* bcMatD, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned int* neighborWSB, - int level, - unsigned int numberOfParticles, - unsigned long long numberOfLBnodes) + real* coordY, + real* coordZ, + real* coordParticleXlocal, + real* coordParticleYlocal, + real* coordParticleZlocal, + real* coordParticleXglobal, + real* coordParticleYglobal, + real* coordParticleZglobal, + real* veloParticleX, + real* veloParticleY, + real* veloParticleZ, + real* randArray, + unsigned int* particleID, + unsigned int* cellBaseID, + unsigned int* bcMatD, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned int* neighborWSB, + int level, + unsigned int numberOfParticles, + unsigned long long numberOfLBnodes) { //////////////////////////////////////////////////////////////////////////////// const unsigned x = threadIdx.x; // Globaler x-Index @@ -44,98 +44,98 @@ __global__ void InitParticles( real* coordX, if(k < numberOfParticles) { - // real centerX = one; //uebergabeparameter - // real centerY = 10.5f; //uebergabeparameter - //real centerZ = 10.5f; //uebergabeparameter - //real diameter = 21.0f; //uebergabeparameter - //unsigned int numberOfParticleSizes = 41; //uebergabeparameter - //unsigned int nops = (unsigned int)(randArray[k]*numberOfParticleSizes); - //real xCoordPart = one; - //real yCoordPart = (real)(randArray[k]*diameter); - //real zCoordPart = one; - //if (k==0) - //{ - // zCoordPart = (real)(randArray[k+1]*diameter); - //} - //else - //{ - // zCoordPart = (real)(randArray[k-1]*diameter); - //} - //real distance = powf((zCoordPart-centerZ),2) + powf((yCoordPart-centerY),2); - //real refDistance = powf((diameter*c1o2),2); - //if (distance > refDistance) - //{ - // zCoordPart = sqrtf(powf((diameter*c1o2),2) - powf((yCoordPart-centerY),2)) + centerZ; - //} - - - - //////////////////////////////////////////////////////////////////////////////// - //find random node of the fluid domain - unsigned int cbID = (unsigned int)(randArray[k]*numberOfLBnodes); - for(int i = 0; i < numberOfLBnodes;i++) - { - //if (coordX[cbID] < 15 && coordX[cbID] > 5 && coordY[cbID] < 15 && coordY[cbID] > 5 && coordZ[cbID] < 15 && coordZ[cbID] > 5) break; - if (coordX[cbID] < 5 && coordX[cbID] > 2) break; - cbID = (unsigned int)(randArray[k]*(numberOfLBnodes - i)); - } - - real coordinateX; - real coordinateY; - real coordinateZ; - - unsigned int BC = bcMatD[cbID]; - unsigned int BCx = bcMatD[neighborX[cbID]]; - unsigned int BCy = bcMatD[neighborY[cbID]]; - unsigned int BCz = bcMatD[neighborZ[cbID]]; - - if( (BC == GEO_FLUID) && (BCx == GEO_FLUID) && (BCy == GEO_FLUID) && (BCz == GEO_FLUID)) - { - coordinateX = coordX[cbID]; - coordinateY = coordY[cbID]; - coordinateZ = coordZ[cbID]; - - } - else if(BC == GEO_FLUID) - { - cbID = neighborWSB[neighborWSB[cbID]]; - coordinateX = coordX[cbID]; - coordinateY = coordY[cbID]; - coordinateZ = coordZ[cbID]; - } - else - { - cbID = neighborZ[neighborY[neighborX[cbID]]]; - coordinateX = coordX[cbID]; - coordinateY = coordY[cbID]; - coordinateZ = coordZ[cbID]; - } - - - real localX = randArray[k] / (real)(pow((double)c2o1, (double)level)); + // real centerX = one; //uebergabeparameter + // real centerY = 10.5f; //uebergabeparameter + //real centerZ = 10.5f; //uebergabeparameter + //real diameter = 21.0f; //uebergabeparameter + //unsigned int numberOfParticleSizes = 41; //uebergabeparameter + //unsigned int nops = (unsigned int)(randArray[k]*numberOfParticleSizes); + //real xCoordPart = one; + //real yCoordPart = (real)(randArray[k]*diameter); + //real zCoordPart = one; + //if (k==0) + //{ + // zCoordPart = (real)(randArray[k+1]*diameter); + //} + //else + //{ + // zCoordPart = (real)(randArray[k-1]*diameter); + //} + //real distance = powf((zCoordPart-centerZ),2) + powf((yCoordPart-centerY),2); + //real refDistance = powf((diameter*c1o2),2); + //if (distance > refDistance) + //{ + // zCoordPart = sqrtf(powf((diameter*c1o2),2) - powf((yCoordPart-centerY),2)) + centerZ; + //} + + + + //////////////////////////////////////////////////////////////////////////////// + //find random node of the fluid domain + unsigned int cbID = (unsigned int)(randArray[k]*numberOfLBnodes); + for(int i = 0; i < numberOfLBnodes;i++) + { + //if (coordX[cbID] < 15 && coordX[cbID] > 5 && coordY[cbID] < 15 && coordY[cbID] > 5 && coordZ[cbID] < 15 && coordZ[cbID] > 5) break; + if (coordX[cbID] < 5 && coordX[cbID] > 2) break; + cbID = (unsigned int)(randArray[k]*(numberOfLBnodes - i)); + } + + real coordinateX; + real coordinateY; + real coordinateZ; + + unsigned int BC = bcMatD[cbID]; + unsigned int BCx = bcMatD[neighborX[cbID]]; + unsigned int BCy = bcMatD[neighborY[cbID]]; + unsigned int BCz = bcMatD[neighborZ[cbID]]; + + if( (BC == GEO_FLUID) && (BCx == GEO_FLUID) && (BCy == GEO_FLUID) && (BCz == GEO_FLUID)) + { + coordinateX = coordX[cbID]; + coordinateY = coordY[cbID]; + coordinateZ = coordZ[cbID]; + + } + else if(BC == GEO_FLUID) + { + cbID = neighborWSB[neighborWSB[cbID]]; + coordinateX = coordX[cbID]; + coordinateY = coordY[cbID]; + coordinateZ = coordZ[cbID]; + } + else + { + cbID = neighborZ[neighborY[neighborX[cbID]]]; + coordinateX = coordX[cbID]; + coordinateY = coordY[cbID]; + coordinateZ = coordZ[cbID]; + } + + + real localX = randArray[k] / (real)(pow((double)c2o1, (double)level)); real localY = randArray[k] / (real)(pow((double)c2o1, (double)level)); real localZ = randArray[k] / (real)(pow((double)c2o1, (double)level)); - real globalX = coordinateX + localX; - real globalY = coordinateY + localY; - real globalZ = coordinateZ + localZ; - - real veloX = c0o1; - real veloY = c0o1; - real veloZ = c0o1; - - particleID[k] = k ; - cellBaseID[k] = cbID ; - veloParticleX[k] = veloX ; - veloParticleY[k] = veloY ; - veloParticleZ[k] = veloZ ; - coordParticleXlocal[k] = localX ; - coordParticleYlocal[k] = localY ; - coordParticleZlocal[k] = localZ ; - coordParticleXglobal[k] = globalX; - coordParticleYglobal[k] = globalY; - coordParticleZglobal[k] = globalZ; - //////////////////////////////////////////////////////////////////////////////// + real globalX = coordinateX + localX; + real globalY = coordinateY + localY; + real globalZ = coordinateZ + localZ; + + real veloX = c0o1; + real veloY = c0o1; + real veloZ = c0o1; + + particleID[k] = k ; + cellBaseID[k] = cbID ; + veloParticleX[k] = veloX ; + veloParticleY[k] = veloY ; + veloParticleZ[k] = veloZ ; + coordParticleXlocal[k] = localX ; + coordParticleYlocal[k] = localY ; + coordParticleZlocal[k] = localZ ; + coordParticleXglobal[k] = globalX; + coordParticleYglobal[k] = globalY; + coordParticleZglobal[k] = globalZ; + //////////////////////////////////////////////////////////////////////////////// } } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -159,32 +159,32 @@ __global__ void InitParticles( real* coordX, ////////////////////////////////////////////////////////////////////////////// __global__ void MoveParticles( real* coordX, - real* coordY, - real* coordZ, - real* coordParticleXlocal, - real* coordParticleYlocal, - real* coordParticleZlocal, - real* coordParticleXglobal, - real* coordParticleYglobal, - real* coordParticleZglobal, - real* veloParticleX, - real* veloParticleY, - real* veloParticleZ, - real* DD, - real omega, - unsigned int* particleID, - unsigned int* cellBaseID, - unsigned int* bcMatD, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned int* neighborWSB, - int level, - unsigned int timestep, - unsigned int numberOfTimesteps, - unsigned int numberOfParticles, - unsigned long long numberOfLBnodes, - bool isEvenTimestep) + real* coordY, + real* coordZ, + real* coordParticleXlocal, + real* coordParticleYlocal, + real* coordParticleZlocal, + real* coordParticleXglobal, + real* coordParticleYglobal, + real* coordParticleZglobal, + real* veloParticleX, + real* veloParticleY, + real* veloParticleZ, + real* DD, + real omega, + unsigned int* particleID, + unsigned int* cellBaseID, + unsigned int* bcMatD, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned int* neighborWSB, + int level, + unsigned int timestep, + unsigned int numberOfTimesteps, + unsigned int numberOfParticles, + unsigned long long numberOfLBnodes, + bool isEvenTimestep) { //////////////////////////////////////////////////////////////////////////////// const unsigned ix = threadIdx.x; // Globaler x-Index @@ -224,770 +224,770 @@ __global__ void MoveParticles( real* coordX, if(k < numberOfParticles) { - ///////////////////////////////////////////////////////////// - unsigned int kTimeStep = k + (timestep * numberOfParticles); - ///////////////////////////////////////////////////////////// - unsigned int kCellBaseID = cellBaseID[k]; - unsigned int BC000 = bcMatD[kCellBaseID]; - unsigned int BCx00 = bcMatD[neighborX[kCellBaseID]]; - unsigned int BC0y0 = bcMatD[neighborY[kCellBaseID]]; - unsigned int BC00z = bcMatD[neighborZ[kCellBaseID]]; - unsigned int BCxy0 = bcMatD[neighborY[neighborX[kCellBaseID]]]; - unsigned int BCx0z = bcMatD[neighborZ[neighborX[kCellBaseID]]]; - unsigned int BC0yz = bcMatD[neighborZ[neighborY[kCellBaseID]]]; - unsigned int BCxyz = bcMatD[neighborZ[neighborY[neighborX[kCellBaseID]]]]; - ///////////////////////////////////////////////////////////// - if( (BC000 >= GEO_FLUID) || - (BCx00 >= GEO_FLUID) || - (BC0y0 >= GEO_FLUID) || - (BC00z >= GEO_FLUID) || - (BCxy0 >= GEO_FLUID) || - (BCx0z >= GEO_FLUID) || - (BC0yz >= GEO_FLUID) || - (BCxyz >= GEO_FLUID) ) - { - if (isEvenTimestep==true) - { - feC = &DD[dP00 * numberOfLBnodes]; - fwC = &DD[dM00 * numberOfLBnodes]; - fnC = &DD[d0P0 * numberOfLBnodes]; - fsC = &DD[d0M0 * numberOfLBnodes]; - ftC = &DD[d00P * numberOfLBnodes]; - fbC = &DD[d00M * numberOfLBnodes]; - fneC = &DD[dPP0 * numberOfLBnodes]; - fswC = &DD[dMM0 * numberOfLBnodes]; - fseC = &DD[dPM0 * numberOfLBnodes]; - fnwC = &DD[dMP0 * numberOfLBnodes]; - fteC = &DD[dP0P * numberOfLBnodes]; - fbwC = &DD[dM0M * numberOfLBnodes]; - fbeC = &DD[dP0M * numberOfLBnodes]; - ftwC = &DD[dM0P * numberOfLBnodes]; - ftnC = &DD[d0PP * numberOfLBnodes]; - fbsC = &DD[d0MM * numberOfLBnodes]; - fbnC = &DD[d0PM * numberOfLBnodes]; - ftsC = &DD[d0MP * numberOfLBnodes]; - fzeroC = &DD[d000 * numberOfLBnodes]; - ftneC = &DD[dPPP * numberOfLBnodes]; - ftswC = &DD[dMMP * numberOfLBnodes]; - ftseC = &DD[dPMP * numberOfLBnodes]; - ftnwC = &DD[dMPP * numberOfLBnodes]; - fbneC = &DD[dPPM * numberOfLBnodes]; - fbswC = &DD[dMMM * numberOfLBnodes]; - fbseC = &DD[dPMM * numberOfLBnodes]; - fbnwC = &DD[dMPM * numberOfLBnodes]; - } - else - { - fwC = &DD[dP00 * numberOfLBnodes]; - feC = &DD[dM00 * numberOfLBnodes]; - fsC = &DD[d0P0 * numberOfLBnodes]; - fnC = &DD[d0M0 * numberOfLBnodes]; - fbC = &DD[d00P * numberOfLBnodes]; - ftC = &DD[d00M * numberOfLBnodes]; - fswC = &DD[dPP0 * numberOfLBnodes]; - fneC = &DD[dMM0 * numberOfLBnodes]; - fnwC = &DD[dPM0 * numberOfLBnodes]; - fseC = &DD[dMP0 * numberOfLBnodes]; - fbwC = &DD[dP0P * numberOfLBnodes]; - fteC = &DD[dM0M * numberOfLBnodes]; - ftwC = &DD[dP0M * numberOfLBnodes]; - fbeC = &DD[dM0P * numberOfLBnodes]; - fbsC = &DD[d0PP * numberOfLBnodes]; - ftnC = &DD[d0MM * numberOfLBnodes]; - ftsC = &DD[d0PM * numberOfLBnodes]; - fbnC = &DD[d0MP * numberOfLBnodes]; - fzeroC = &DD[d000 * numberOfLBnodes]; - fbswC = &DD[dPPP * numberOfLBnodes]; - fbneC = &DD[dMMP * numberOfLBnodes]; - fbnwC = &DD[dPMP * numberOfLBnodes]; - fbseC = &DD[dMPP * numberOfLBnodes]; - ftswC = &DD[dPPM * numberOfLBnodes]; - ftneC = &DD[dMMM * numberOfLBnodes]; - ftnwC = &DD[dPMM * numberOfLBnodes]; - ftseC = &DD[dMPM * numberOfLBnodes]; - } - - ////////////////////////////////////////////////////////////////////////// - //SWB// - ////////////////////////////////////////////////////////////////////////// - //index 0 - unsigned int k0zero= cellBaseID[k]; - unsigned int k0w = neighborX[k0zero]; - unsigned int k0s = neighborY[k0zero]; - unsigned int k0b = neighborZ[k0zero]; - unsigned int k0sw = neighborY[k0w]; - unsigned int k0bw = neighborZ[k0w]; - unsigned int k0bs = neighborZ[k0s]; - unsigned int k0bsw = neighborZ[k0sw]; - ////////////////////////////////////////////////////////////////////////// - //index - unsigned int kzero= k0zero; - unsigned int kw = k0w; - unsigned int ks = k0s; - unsigned int kb = k0b; - unsigned int ksw = k0sw; - unsigned int kbw = k0bw; - unsigned int kbs = k0bs; - unsigned int kbsw = k0bsw; - //////////////////////////////////////////////////////////////////////////////// - f_E = feC[kzero]; - f_W = fwC[kw]; - f_N = fnC[kzero]; - f_S = fsC[ks]; - f_T = ftC[kzero]; - f_B = fbC[kb]; - f_NE = fneC[kzero]; - f_SW = fswC[ksw]; - f_SE = fseC[ks]; - f_NW = fnwC[kw]; - f_TE = fteC[kzero]; - f_BW = fbwC[kbw]; - f_BE = fbeC[kb]; - f_TW = ftwC[kw]; - f_TN = ftnC[kzero]; - f_BS = fbsC[kbs]; - f_BN = fbnC[kb]; - f_TS = ftsC[ks]; - f_ZERO = fzeroC[kzero]; - f_TNE = ftneC[kzero]; - f_TSW = ftswC[ksw]; - f_TSE = ftseC[ks]; - f_TNW = ftnwC[kw]; - f_BNE = fbneC[kb]; - f_BSW = fbswC[kbsw]; - f_BSE = fbseC[kbs]; - f_BNW = fbnwC[kbw]; - - drho_SWB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; - vx1_SWB = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_SWB); - vx2_SWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SWB); - vx3_SWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SWB); - - kxyFromfcNEQ_SWB = -c3o1*omega*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_SWB) - ((vx1_SWB*vx2_SWB))); - kyzFromfcNEQ_SWB = -c3o1*omega*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_SWB) - ((vx2_SWB*vx3_SWB))); - kxzFromfcNEQ_SWB = -c3o1*omega*((f_BW+f_BSW+f_BNW-f_TW-f_TSW-f_TNW-f_BE-f_BSE-f_BNE+f_TE+f_TSE+f_TNE ) / (c1o1 + drho_SWB) - ((vx1_SWB*vx3_SWB))); - kxxMyyFromfcNEQ_SWB = -c3o2*omega *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_SWB) - ((vx1_SWB*vx1_SWB-vx2_SWB*vx2_SWB))); - kxxMzzFromfcNEQ_SWB = -c3o2*omega *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_SWB) - ((vx1_SWB*vx1_SWB-vx3_SWB*vx3_SWB))); - - ////////////////////////////////////////////////////////////////////////// - //SWT// - ////////////////////////////////////////////////////////////////////////// - //index - kzero= kb; - kw = kbw; - ks = kbs; - kb = neighborZ[kb]; - ksw = kbsw; - kbw = neighborZ[kbw]; - kbs = neighborZ[kbs]; - kbsw = neighborZ[kbsw]; - //////////////////////////////////////////////////////////////////////////////// - f_E = feC[kzero]; - f_W = fwC[kw]; - f_N = fnC[kzero]; - f_S = fsC[ks]; - f_T = ftC[kzero]; - f_B = fbC[kb]; - f_NE = fneC[kzero]; - f_SW = fswC[ksw]; - f_SE = fseC[ks]; - f_NW = fnwC[kw]; - f_TE = fteC[kzero]; - f_BW = fbwC[kbw]; - f_BE = fbeC[kb]; - f_TW = ftwC[kw]; - f_TN = ftnC[kzero]; - f_BS = fbsC[kbs]; - f_BN = fbnC[kb]; - f_TS = ftsC[ks]; - f_ZERO = fzeroC[kzero]; - f_TNE = ftneC[kzero]; - f_TSW = ftswC[ksw]; - f_TSE = ftseC[ks]; - f_TNW = ftnwC[kw]; - f_BNE = fbneC[kb]; - f_BSW = fbswC[kbsw]; - f_BSE = fbseC[kbs]; - f_BNW = fbnwC[kbw]; - - drho_SWT = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; - vx1_SWT = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_SWT); - vx2_SWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SWT); - vx3_SWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SWT); - - kxyFromfcNEQ_SWT = -c3o1*omega*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_SWT) - ((vx1_SWT*vx2_SWT))); - kyzFromfcNEQ_SWT = -c3o1*omega*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_SWT) - ((vx2_SWT*vx3_SWT))); - kxzFromfcNEQ_SWT = -c3o1*omega*((f_BW+f_BSW+f_BNW-f_TW-f_TSW-f_TNW-f_BE-f_BSE-f_BNE+f_TE+f_TSE+f_TNE ) / (c1o1 + drho_SWT) - ((vx1_SWT*vx3_SWT))); - kxxMyyFromfcNEQ_SWT = -c3o2*omega *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_SWT) - ((vx1_SWT*vx1_SWT-vx2_SWT*vx2_SWT))); - kxxMzzFromfcNEQ_SWT = -c3o2*omega *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_SWT) - ((vx1_SWT*vx1_SWT-vx3_SWT*vx3_SWT))); - - ////////////////////////////////////////////////////////////////////////// - //SET// - ////////////////////////////////////////////////////////////////////////// - //index - kzero= kw; - kw = neighborX[kw]; - ks = ksw; - kb = kbw; - ksw = neighborX[ksw]; - kbw = neighborX[kbw]; - kbs = kbsw; - kbsw = neighborX[kbsw]; - //////////////////////////////////////////////////////////////////////////////// - f_E = feC[kzero]; - f_W = fwC[kw]; - f_N = fnC[kzero]; - f_S = fsC[ks]; - f_T = ftC[kzero]; - f_B = fbC[kb]; - f_NE = fneC[kzero]; - f_SW = fswC[ksw]; - f_SE = fseC[ks]; - f_NW = fnwC[kw]; - f_TE = fteC[kzero]; - f_BW = fbwC[kbw]; - f_BE = fbeC[kb]; - f_TW = ftwC[kw]; - f_TN = ftnC[kzero]; - f_BS = fbsC[kbs]; - f_BN = fbnC[kb]; - f_TS = ftsC[ks]; - f_ZERO = fzeroC[kzero]; - f_TNE = ftneC[kzero]; - f_TSW = ftswC[ksw]; - f_TSE = ftseC[ks]; - f_TNW = ftnwC[kw]; - f_BNE = fbneC[kb]; - f_BSW = fbswC[kbsw]; - f_BSE = fbseC[kbs]; - f_BNW = fbnwC[kbw]; - - drho_SET = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; - vx1_SET = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_SET); - vx2_SET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SET); - vx3_SET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SET); - - kxyFromfcNEQ_SET = -c3o1*omega*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_SET) - ((vx1_SET*vx2_SET))); - kyzFromfcNEQ_SET = -c3o1*omega*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_SET) - ((vx2_SET*vx3_SET))); - kxzFromfcNEQ_SET = -c3o1*omega*((f_BW+f_BSW+f_BNW-f_TW-f_TSW-f_TNW-f_BE-f_BSE-f_BNE+f_TE+f_TSE+f_TNE ) / (c1o1 + drho_SET) - ((vx1_SET*vx3_SET))); - kxxMyyFromfcNEQ_SET = -c3o2*omega *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_SET) - ((vx1_SET*vx1_SET-vx2_SET*vx2_SET))); - kxxMzzFromfcNEQ_SET = -c3o2*omega *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_SET) - ((vx1_SET*vx1_SET-vx3_SET*vx3_SET))); - - ////////////////////////////////////////////////////////////////////////// - //SEB// - ////////////////////////////////////////////////////////////////////////// - //index - kb = kzero; - kbw = kw; - kbs = ks; - kbsw = ksw; - kzero= k0w; - kw = neighborX[k0w]; - ks = k0sw; - ksw = neighborX[k0sw]; - //////////////////////////////////////////////////////////////////////////////// - f_E = feC[kzero]; - f_W = fwC[kw]; - f_N = fnC[kzero]; - f_S = fsC[ks]; - f_T = ftC[kzero]; - f_B = fbC[kb]; - f_NE = fneC[kzero]; - f_SW = fswC[ksw]; - f_SE = fseC[ks]; - f_NW = fnwC[kw]; - f_TE = fteC[kzero]; - f_BW = fbwC[kbw]; - f_BE = fbeC[kb]; - f_TW = ftwC[kw]; - f_TN = ftnC[kzero]; - f_BS = fbsC[kbs]; - f_BN = fbnC[kb]; - f_TS = ftsC[ks]; - f_ZERO = fzeroC[kzero]; - f_TNE = ftneC[kzero]; - f_TSW = ftswC[ksw]; - f_TSE = ftseC[ks]; - f_TNW = ftnwC[kw]; - f_BNE = fbneC[kb]; - f_BSW = fbswC[kbsw]; - f_BSE = fbseC[kbs]; - f_BNW = fbnwC[kbw]; - - drho_SEB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; - vx1_SEB = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_SEB); - vx2_SEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SEB); - vx3_SEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SEB); - - kxyFromfcNEQ_SEB = -c3o1*omega*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_SEB) - ((vx1_SEB*vx2_SEB))); - kyzFromfcNEQ_SEB = -c3o1*omega*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_SEB) - ((vx2_SEB*vx3_SEB))); - kxzFromfcNEQ_SEB = -c3o1*omega*((f_BW+f_BSW+f_BNW-f_TW-f_TSW-f_TNW-f_BE-f_BSE-f_BNE+f_TE+f_TSE+f_TNE ) / (c1o1 + drho_SEB) - ((vx1_SEB*vx3_SEB))); - kxxMyyFromfcNEQ_SEB = -c3o2*omega *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_SEB) - ((vx1_SEB*vx1_SEB-vx2_SEB*vx2_SEB))); - kxxMzzFromfcNEQ_SEB = -c3o2*omega *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_SEB) - ((vx1_SEB*vx1_SEB-vx3_SEB*vx3_SEB))); - - ////////////////////////////////////////////////////////////////////////// - //NWB// - ////////////////////////////////////////////////////////////////////////// - //index 0 - k0zero= k0s; - k0w = k0sw; - k0s = neighborY[k0s]; - k0b = k0bs; - k0sw = neighborY[k0sw]; - k0bw = k0bsw; - k0bs = neighborY[k0bs]; - k0bsw = neighborY[k0bsw]; - ////////////////////////////////////////////////////////////////////////// - //index - kzero= k0zero; - kw = k0w; - ks = k0s; - kb = k0b; - ksw = k0sw; - kbw = k0bw; - kbs = k0bs; - kbsw = k0bsw; - //////////////////////////////////////////////////////////////////////////////// - f_E = feC[kzero]; - f_W = fwC[kw]; - f_N = fnC[kzero]; - f_S = fsC[ks]; - f_T = ftC[kzero]; - f_B = fbC[kb]; - f_NE = fneC[kzero]; - f_SW = fswC[ksw]; - f_SE = fseC[ks]; - f_NW = fnwC[kw]; - f_TE = fteC[kzero]; - f_BW = fbwC[kbw]; - f_BE = fbeC[kb]; - f_TW = ftwC[kw]; - f_TN = ftnC[kzero]; - f_BS = fbsC[kbs]; - f_BN = fbnC[kb]; - f_TS = ftsC[ks]; - f_ZERO = fzeroC[kzero]; - f_TNE = ftneC[kzero]; - f_TSW = ftswC[ksw]; - f_TSE = ftseC[ks]; - f_TNW = ftnwC[kw]; - f_BNE = fbneC[kb]; - f_BSW = fbswC[kbsw]; - f_BSE = fbseC[kbs]; - f_BNW = fbnwC[kbw]; - - drho_NWB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; - vx1_NWB = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_NWB); - vx2_NWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NWB); - vx3_NWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NWB); - - kxyFromfcNEQ_NWB = -c3o1*omega*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_NWB) - ((vx1_NWB*vx2_NWB))); - kyzFromfcNEQ_NWB = -c3o1*omega*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_NWB) - ((vx2_NWB*vx3_NWB))); - kxzFromfcNEQ_NWB = -c3o1*omega*((f_BW+f_BSW+f_BNW-f_TW-f_TSW-f_TNW-f_BE-f_BSE-f_BNE+f_TE+f_TSE+f_TNE ) / (c1o1 + drho_NWB) - ((vx1_NWB*vx3_NWB))); - kxxMyyFromfcNEQ_NWB = -c3o2*omega *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_NWB) - ((vx1_NWB*vx1_NWB-vx2_NWB*vx2_NWB))); - kxxMzzFromfcNEQ_NWB = -c3o2*omega *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_NWB) - ((vx1_NWB*vx1_NWB-vx3_NWB*vx3_NWB))); - - ////////////////////////////////////////////////////////////////////////// - //NWT// - ////////////////////////////////////////////////////////////////////////// - //index - kzero= kb; - kw = kbw; - ks = kbs; - kb = neighborZ[kb]; - ksw = kbsw; - kbw = neighborZ[kbw]; - kbs = neighborZ[kbs]; - kbsw = neighborZ[kbsw]; - //////////////////////////////////////////////////////////////////////////////// - f_E = feC[kzero]; - f_W = fwC[kw]; - f_N = fnC[kzero]; - f_S = fsC[ks]; - f_T = ftC[kzero]; - f_B = fbC[kb]; - f_NE = fneC[kzero]; - f_SW = fswC[ksw]; - f_SE = fseC[ks]; - f_NW = fnwC[kw]; - f_TE = fteC[kzero]; - f_BW = fbwC[kbw]; - f_BE = fbeC[kb]; - f_TW = ftwC[kw]; - f_TN = ftnC[kzero]; - f_BS = fbsC[kbs]; - f_BN = fbnC[kb]; - f_TS = ftsC[ks]; - f_ZERO = fzeroC[kzero]; - f_TNE = ftneC[kzero]; - f_TSW = ftswC[ksw]; - f_TSE = ftseC[ks]; - f_TNW = ftnwC[kw]; - f_BNE = fbneC[kb]; - f_BSW = fbswC[kbsw]; - f_BSE = fbseC[kbs]; - f_BNW = fbnwC[kbw]; - - drho_NWT = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; - vx1_NWT = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_NWT); - vx2_NWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NWT); - vx3_NWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NWT); - - kxyFromfcNEQ_NWT = -c3o1*omega*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_NWT) - ((vx1_NWT*vx2_NWT))); - kyzFromfcNEQ_NWT = -c3o1*omega*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_NWT) - ((vx2_NWT*vx3_NWT))); - kxzFromfcNEQ_NWT = -c3o1*omega*((f_BW+f_BSW+f_BNW-f_TW-f_TSW-f_TNW-f_BE-f_BSE-f_BNE+f_TE+f_TSE+f_TNE ) / (c1o1 + drho_NWT) - ((vx1_NWT*vx3_NWT))); - kxxMyyFromfcNEQ_NWT = -c3o2*omega *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_NWT) - ((vx1_NWT*vx1_NWT-vx2_NWT*vx2_NWT))); - kxxMzzFromfcNEQ_NWT = -c3o2*omega *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_NWT) - ((vx1_NWT*vx1_NWT-vx3_NWT*vx3_NWT))); - - ////////////////////////////////////////////////////////////////////////// - //NET// - ////////////////////////////////////////////////////////////////////////// - //index - kzero= kw; - kw = neighborX[kw]; - ks = ksw; - kb = kbw; - ksw = neighborX[ksw]; - kbw = neighborX[kbw]; - kbs = kbsw; - kbsw = neighborX[kbsw]; - //////////////////////////////////////////////////////////////////////////////// - f_E = feC[kzero]; - f_W = fwC[kw]; - f_N = fnC[kzero]; - f_S = fsC[ks]; - f_T = ftC[kzero]; - f_B = fbC[kb]; - f_NE = fneC[kzero]; - f_SW = fswC[ksw]; - f_SE = fseC[ks]; - f_NW = fnwC[kw]; - f_TE = fteC[kzero]; - f_BW = fbwC[kbw]; - f_BE = fbeC[kb]; - f_TW = ftwC[kw]; - f_TN = ftnC[kzero]; - f_BS = fbsC[kbs]; - f_BN = fbnC[kb]; - f_TS = ftsC[ks]; - f_ZERO = fzeroC[kzero]; - f_TNE = ftneC[kzero]; - f_TSW = ftswC[ksw]; - f_TSE = ftseC[ks]; - f_TNW = ftnwC[kw]; - f_BNE = fbneC[kb]; - f_BSW = fbswC[kbsw]; - f_BSE = fbseC[kbs]; - f_BNW = fbnwC[kbw]; - - drho_NET = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; - vx1_NET = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_NET); - vx2_NET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NET); - vx3_NET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NET); - - kxyFromfcNEQ_NET = -c3o1*omega*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_NET) - ((vx1_NET*vx2_NET))); - kyzFromfcNEQ_NET = -c3o1*omega*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_NET) - ((vx2_NET*vx3_NET))); - kxzFromfcNEQ_NET = -c3o1*omega*((f_BW+f_BSW+f_BNW-f_TW-f_TSW-f_TNW-f_BE-f_BSE-f_BNE+f_TE+f_TSE+f_TNE ) / (c1o1 + drho_NET) - ((vx1_NET*vx3_NET))); - kxxMyyFromfcNEQ_NET = -c3o2*omega *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_NET) - ((vx1_NET*vx1_NET-vx2_NET*vx2_NET))); - kxxMzzFromfcNEQ_NET = -c3o2*omega *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_NET) - ((vx1_NET*vx1_NET-vx3_NET*vx3_NET))); - - ////////////////////////////////////////////////////////////////////////// - //NEB// - ////////////////////////////////////////////////////////////////////////// - //index - kb = kzero; - kbw = kw; - kbs = ks; - kbsw = ksw; - kzero= k0w; - kw = neighborX[k0w]; - ks = k0sw; - ksw = neighborX[k0sw]; - //////////////////////////////////////////////////////////////////////////////// - f_E = feC[kzero]; - f_W = fwC[kw]; - f_N = fnC[kzero]; - f_S = fsC[ks]; - f_T = ftC[kzero]; - f_B = fbC[kb]; - f_NE = fneC[kzero]; - f_SW = fswC[ksw]; - f_SE = fseC[ks]; - f_NW = fnwC[kw]; - f_TE = fteC[kzero]; - f_BW = fbwC[kbw]; - f_BE = fbeC[kb]; - f_TW = ftwC[kw]; - f_TN = ftnC[kzero]; - f_BS = fbsC[kbs]; - f_BN = fbnC[kb]; - f_TS = ftsC[ks]; - f_ZERO = fzeroC[kzero]; - f_TNE = ftneC[kzero]; - f_TSW = ftswC[ksw]; - f_TSE = ftseC[ks]; - f_TNW = ftnwC[kw]; - f_BNE = fbneC[kb]; - f_BSW = fbswC[kbsw]; - f_BSE = fbseC[kbs]; - f_BNW = fbnwC[kbw]; - - drho_NEB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; - vx1_NEB = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_NEB); - vx2_NEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NEB); - vx3_NEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NEB); - - kxyFromfcNEQ_NEB = -c3o1*omega*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_NEB) - ((vx1_NEB*vx2_NEB))); - kyzFromfcNEQ_NEB = -c3o1*omega*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_NEB) - ((vx2_NEB*vx3_NEB))); - kxzFromfcNEQ_NEB = -c3o1*omega*((f_BW+f_BSW+f_BNW-f_TW-f_TSW-f_TNW-f_BE-f_BSE-f_BNE+f_TE+f_TSE+f_TNE ) / (c1o1 + drho_NEB) - ((vx1_NEB*vx3_NEB))); - kxxMyyFromfcNEQ_NEB = -c3o2*omega *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_NEB) - ((vx1_NEB*vx1_NEB-vx2_NEB*vx2_NEB))); - kxxMzzFromfcNEQ_NEB = -c3o2*omega *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_NEB) - ((vx1_NEB*vx1_NEB-vx3_NEB*vx3_NEB))); - - ////////////////////////////////////////////////////////////////////////// - //interpolate - ////////////////////////////////////////////////////////////////////////// - a0 = (-kxxMyyFromfcNEQ_NEB - kxxMyyFromfcNEQ_NET + kxxMyyFromfcNEQ_NWB + kxxMyyFromfcNEQ_NWT - - kxxMyyFromfcNEQ_SEB - kxxMyyFromfcNEQ_SET + kxxMyyFromfcNEQ_SWB + kxxMyyFromfcNEQ_SWT - - kxxMzzFromfcNEQ_NEB - kxxMzzFromfcNEQ_NET + kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_NWT - - kxxMzzFromfcNEQ_SEB - kxxMzzFromfcNEQ_SET + kxxMzzFromfcNEQ_SWB + kxxMzzFromfcNEQ_SWT - - c2o1*kxyFromfcNEQ_NEB - c2o1*kxyFromfcNEQ_NET - c2o1*kxyFromfcNEQ_NWB - c2o1*kxyFromfcNEQ_NWT + - c2o1*kxyFromfcNEQ_SEB + c2o1*kxyFromfcNEQ_SET + c2o1*kxyFromfcNEQ_SWB + c2o1*kxyFromfcNEQ_SWT + - c2o1*kxzFromfcNEQ_NEB - c2o1*kxzFromfcNEQ_NET + c2o1*kxzFromfcNEQ_NWB - c2o1*kxzFromfcNEQ_NWT + - c2o1*kxzFromfcNEQ_SEB - c2o1*kxzFromfcNEQ_SET + c2o1*kxzFromfcNEQ_SWB - c2o1*kxzFromfcNEQ_SWT + - c8o1*vx1_NEB + c8o1*vx1_NET + c8o1*vx1_NWB + c8o1*vx1_NWT + c8o1*vx1_SEB + - c8o1*vx1_SET + c8o1*vx1_SWB + c8o1*vx1_SWT + c2o1*vx2_NEB + c2o1*vx2_NET - - c2o1*vx2_NWB - c2o1*vx2_NWT - c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB + - c2o1*vx2_SWT - c2o1*vx3_NEB + c2o1*vx3_NET + c2o1*vx3_NWB - c2o1*vx3_NWT - - c2o1*vx3_SEB + c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)/c64o1; - b0 = (c2o1*kxxMyyFromfcNEQ_NEB + c2o1*kxxMyyFromfcNEQ_NET + c2o1*kxxMyyFromfcNEQ_NWB + c2o1*kxxMyyFromfcNEQ_NWT - - c2o1*kxxMyyFromfcNEQ_SEB - c2o1*kxxMyyFromfcNEQ_SET - c2o1*kxxMyyFromfcNEQ_SWB - c2o1*kxxMyyFromfcNEQ_SWT - - kxxMzzFromfcNEQ_NEB - kxxMzzFromfcNEQ_NET - kxxMzzFromfcNEQ_NWB - kxxMzzFromfcNEQ_NWT + - kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_SET + kxxMzzFromfcNEQ_SWB + kxxMzzFromfcNEQ_SWT - - c2o1*kxyFromfcNEQ_NEB - c2o1*kxyFromfcNEQ_NET + c2o1*kxyFromfcNEQ_NWB + c2o1*kxyFromfcNEQ_NWT - - c2o1*kxyFromfcNEQ_SEB - c2o1*kxyFromfcNEQ_SET + c2o1*kxyFromfcNEQ_SWB + c2o1*kxyFromfcNEQ_SWT + - c2o1*kyzFromfcNEQ_NEB - c2o1*kyzFromfcNEQ_NET + c2o1*kyzFromfcNEQ_NWB - c2o1*kyzFromfcNEQ_NWT + - c2o1*kyzFromfcNEQ_SEB - c2o1*kyzFromfcNEQ_SET + c2o1*kyzFromfcNEQ_SWB - c2o1*kyzFromfcNEQ_SWT + - c2o1*vx1_NEB + c2o1*vx1_NET - c2o1*vx1_NWB - c2o1*vx1_NWT - - c2o1*vx1_SEB - c2o1*vx1_SET + c2o1*vx1_SWB + c2o1*vx1_SWT + - c8o1*vx2_NEB + c8o1*vx2_NET + c8o1*vx2_NWB + c8o1*vx2_NWT + - c8o1*vx2_SEB + c8o1*vx2_SET + c8o1*vx2_SWB + c8o1*vx2_SWT - - c2o1*vx3_NEB + c2o1*vx3_NET - c2o1*vx3_NWB + c2o1*vx3_NWT + - c2o1*vx3_SEB - c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)/c64o1; - - //b0 = ((eight*vx2_NEB + eight*vx2_SWT) + (eight*vx2_NET + eight*vx2_SWB) + (eight*vx2_NWB + eight*vx2_SET) + (eight*vx2_NWT + eight*vx2_SEB))/sixtyfour; - - c0 = (kxxMyyFromfcNEQ_NEB - kxxMyyFromfcNEQ_NET + kxxMyyFromfcNEQ_NWB - kxxMyyFromfcNEQ_NWT + - kxxMyyFromfcNEQ_SEB - kxxMyyFromfcNEQ_SET + kxxMyyFromfcNEQ_SWB - kxxMyyFromfcNEQ_SWT - - c2o1*kxxMzzFromfcNEQ_NEB + c2o1*kxxMzzFromfcNEQ_NET - c2o1*kxxMzzFromfcNEQ_NWB + c2o1*kxxMzzFromfcNEQ_NWT - - c2o1*kxxMzzFromfcNEQ_SEB + c2o1*kxxMzzFromfcNEQ_SET - c2o1*kxxMzzFromfcNEQ_SWB + c2o1*kxxMzzFromfcNEQ_SWT - - c2o1*kxzFromfcNEQ_NEB - c2o1*kxzFromfcNEQ_NET + c2o1*kxzFromfcNEQ_NWB + c2o1*kxzFromfcNEQ_NWT - - c2o1*kxzFromfcNEQ_SEB - c2o1*kxzFromfcNEQ_SET + c2o1*kxzFromfcNEQ_SWB + c2o1*kxzFromfcNEQ_SWT - - c2o1*kyzFromfcNEQ_NEB - c2o1*kyzFromfcNEQ_NET - c2o1*kyzFromfcNEQ_NWB - c2o1*kyzFromfcNEQ_NWT + - c2o1*kyzFromfcNEQ_SEB + c2o1*kyzFromfcNEQ_SET + c2o1*kyzFromfcNEQ_SWB + c2o1*kyzFromfcNEQ_SWT - - c2o1*vx1_NEB + c2o1*vx1_NET + c2o1*vx1_NWB - c2o1*vx1_NWT - - c2o1*vx1_SEB + c2o1*vx1_SET + c2o1*vx1_SWB - c2o1*vx1_SWT - - c2o1*vx2_NEB + c2o1*vx2_NET - c2o1*vx2_NWB + c2o1*vx2_NWT + - c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB - c2o1*vx2_SWT + - c8o1*vx3_NEB + c8o1*vx3_NET + c8o1*vx3_NWB + c8o1*vx3_NWT + - c8o1*vx3_SEB + c8o1*vx3_SET + c8o1*vx3_SWB + c8o1*vx3_SWT)/c64o1; - ax = (vx1_NEB + vx1_NET - vx1_NWB - vx1_NWT + vx1_SEB + vx1_SET - vx1_SWB - vx1_SWT)/c4o1; - bx = (vx2_NEB + vx2_NET - vx2_NWB - vx2_NWT + vx2_SEB + vx2_SET - vx2_SWB - vx2_SWT)/c4o1; - //bx = ((vx2_NEB - vx2_SWT) + (vx2_NET - vx2_SWB) + (vx2_SET - vx2_NWB) + (vx2_SEB - vx2_NWT))/four; - cx = (vx3_NEB + vx3_NET - vx3_NWB - vx3_NWT + vx3_SEB + vx3_SET - vx3_SWB - vx3_SWT)/c4o1; - axx= (kxxMyyFromfcNEQ_NEB + kxxMyyFromfcNEQ_NET - kxxMyyFromfcNEQ_NWB - kxxMyyFromfcNEQ_NWT + - kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_SET - kxxMyyFromfcNEQ_SWB - kxxMyyFromfcNEQ_SWT + - kxxMzzFromfcNEQ_NEB + kxxMzzFromfcNEQ_NET - kxxMzzFromfcNEQ_NWB - kxxMzzFromfcNEQ_NWT + - kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_SET - kxxMzzFromfcNEQ_SWB - kxxMzzFromfcNEQ_SWT + - c2o1*vx2_NEB + c2o1*vx2_NET - c2o1*vx2_NWB - c2o1*vx2_NWT - - c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB + c2o1*vx2_SWT - - c2o1*vx3_NEB + c2o1*vx3_NET + c2o1*vx3_NWB - c2o1*vx3_NWT - - c2o1*vx3_SEB + c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)/c16o1; - bxx= (kxyFromfcNEQ_NEB + kxyFromfcNEQ_NET - kxyFromfcNEQ_NWB - kxyFromfcNEQ_NWT + - kxyFromfcNEQ_SEB + kxyFromfcNEQ_SET - kxyFromfcNEQ_SWB - kxyFromfcNEQ_SWT - - c2o1*vx1_NEB - c2o1*vx1_NET + c2o1*vx1_NWB + c2o1*vx1_NWT + - c2o1*vx1_SEB + c2o1*vx1_SET - c2o1*vx1_SWB - c2o1*vx1_SWT)/c8o1; - cxx= (kxzFromfcNEQ_NEB + kxzFromfcNEQ_NET - kxzFromfcNEQ_NWB - kxzFromfcNEQ_NWT + - kxzFromfcNEQ_SEB + kxzFromfcNEQ_SET - kxzFromfcNEQ_SWB - kxzFromfcNEQ_SWT + - c2o1*vx1_NEB - c2o1*vx1_NET - c2o1*vx1_NWB + c2o1*vx1_NWT + - c2o1*vx1_SEB - c2o1*vx1_SET - c2o1*vx1_SWB + c2o1*vx1_SWT)/c8o1; - ay = (vx1_NEB + vx1_NET + vx1_NWB + vx1_NWT - vx1_SEB - vx1_SET - vx1_SWB - vx1_SWT)/c4o1; - by = (vx2_NEB + vx2_NET + vx2_NWB + vx2_NWT - vx2_SEB - vx2_SET - vx2_SWB - vx2_SWT)/c4o1; - cy = (vx3_NEB + vx3_NET + vx3_NWB + vx3_NWT - vx3_SEB - vx3_SET - vx3_SWB - vx3_SWT)/c4o1; - ayy= (kxyFromfcNEQ_NEB + kxyFromfcNEQ_NET + kxyFromfcNEQ_NWB + kxyFromfcNEQ_NWT - - kxyFromfcNEQ_SEB - kxyFromfcNEQ_SET - kxyFromfcNEQ_SWB - kxyFromfcNEQ_SWT - - c2o1*vx2_NEB - c2o1*vx2_NET + c2o1*vx2_NWB + c2o1*vx2_NWT + - c2o1*vx2_SEB + c2o1*vx2_SET - c2o1*vx2_SWB - c2o1*vx2_SWT)/c8o1; - byy= (-c2o1*kxxMyyFromfcNEQ_NEB - c2o1*kxxMyyFromfcNEQ_NET - c2o1*kxxMyyFromfcNEQ_NWB - c2o1*kxxMyyFromfcNEQ_NWT + - c2o1*kxxMyyFromfcNEQ_SEB + c2o1*kxxMyyFromfcNEQ_SET + c2o1*kxxMyyFromfcNEQ_SWB + c2o1*kxxMyyFromfcNEQ_SWT + - kxxMzzFromfcNEQ_NEB + kxxMzzFromfcNEQ_NET + kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_NWT - - kxxMzzFromfcNEQ_SEB - kxxMzzFromfcNEQ_SET - kxxMzzFromfcNEQ_SWB - kxxMzzFromfcNEQ_SWT + - c2o1*vx1_NEB + c2o1*vx1_NET - c2o1*vx1_NWB - c2o1*vx1_NWT - - c2o1*vx1_SEB - c2o1*vx1_SET + c2o1*vx1_SWB + c2o1*vx1_SWT - - c2o1*vx3_NEB + c2o1*vx3_NET - c2o1*vx3_NWB + c2o1*vx3_NWT + - c2o1*vx3_SEB - c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)/c16o1; - cyy= (kyzFromfcNEQ_NEB + kyzFromfcNEQ_NET + kyzFromfcNEQ_NWB + kyzFromfcNEQ_NWT - - kyzFromfcNEQ_SEB - kyzFromfcNEQ_SET - kyzFromfcNEQ_SWB - kyzFromfcNEQ_SWT + - c2o1*vx2_NEB - c2o1*vx2_NET + c2o1*vx2_NWB - c2o1*vx2_NWT - - c2o1*vx2_SEB + c2o1*vx2_SET - c2o1*vx2_SWB + c2o1*vx2_SWT)/c8o1; - az = (-vx1_NEB + vx1_NET - vx1_NWB + vx1_NWT - vx1_SEB + vx1_SET - vx1_SWB + vx1_SWT)/c4o1; - //bz = (-vx2_NEB + vx2_NET - vx2_NWB + vx2_NWT - vx2_SEB + vx2_SET - vx2_SWB + vx2_SWT)/four; - bz = ((vx2_SWT - vx2_NEB) + (vx2_NET - vx2_SWB) + (vx2_SET - vx2_NWB) + (vx2_NWT - vx2_SEB))/c4o1; - cz = (-vx3_NEB + vx3_NET - vx3_NWB + vx3_NWT - vx3_SEB + vx3_SET - vx3_SWB + vx3_SWT)/c4o1; - azz= (-kxzFromfcNEQ_NEB + kxzFromfcNEQ_NET - kxzFromfcNEQ_NWB + kxzFromfcNEQ_NWT - - kxzFromfcNEQ_SEB + kxzFromfcNEQ_SET - kxzFromfcNEQ_SWB + kxzFromfcNEQ_SWT + - c2o1*vx3_NEB - c2o1*vx3_NET - c2o1*vx3_NWB + c2o1*vx3_NWT + - c2o1*vx3_SEB - c2o1*vx3_SET - c2o1*vx3_SWB + c2o1*vx3_SWT)/c8o1; - bzz= (-kyzFromfcNEQ_NEB + kyzFromfcNEQ_NET - kyzFromfcNEQ_NWB + kyzFromfcNEQ_NWT - - kyzFromfcNEQ_SEB + kyzFromfcNEQ_SET - kyzFromfcNEQ_SWB + kyzFromfcNEQ_SWT + - c2o1*vx3_NEB - c2o1*vx3_NET + c2o1*vx3_NWB - c2o1*vx3_NWT - - c2o1*vx3_SEB + c2o1*vx3_SET - c2o1*vx3_SWB + c2o1*vx3_SWT)/c8o1; - czz= (-kxxMyyFromfcNEQ_NEB + kxxMyyFromfcNEQ_NET - kxxMyyFromfcNEQ_NWB + kxxMyyFromfcNEQ_NWT - - kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_SET - kxxMyyFromfcNEQ_SWB + kxxMyyFromfcNEQ_SWT + - c2o1*kxxMzzFromfcNEQ_NEB - c2o1*kxxMzzFromfcNEQ_NET + c2o1*kxxMzzFromfcNEQ_NWB - c2o1*kxxMzzFromfcNEQ_NWT + - c2o1*kxxMzzFromfcNEQ_SEB - c2o1*kxxMzzFromfcNEQ_SET + c2o1*kxxMzzFromfcNEQ_SWB - c2o1*kxxMzzFromfcNEQ_SWT - - c2o1*vx1_NEB + c2o1*vx1_NET + c2o1*vx1_NWB - c2o1*vx1_NWT - - c2o1*vx1_SEB + c2o1*vx1_SET + c2o1*vx1_SWB - c2o1*vx1_SWT - - c2o1*vx2_NEB + c2o1*vx2_NET - c2o1*vx2_NWB + c2o1*vx2_NWT + - c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB - c2o1*vx2_SWT)/c16o1; - axy= (vx1_NEB + vx1_NET - vx1_NWB - vx1_NWT - vx1_SEB - vx1_SET + vx1_SWB + vx1_SWT)/c2o1; - bxy= (vx2_NEB + vx2_NET - vx2_NWB - vx2_NWT - vx2_SEB - vx2_SET + vx2_SWB + vx2_SWT)/c2o1; - cxy= (vx3_NEB + vx3_NET - vx3_NWB - vx3_NWT - vx3_SEB - vx3_SET + vx3_SWB + vx3_SWT)/c2o1; - axz= (-vx1_NEB + vx1_NET + vx1_NWB - vx1_NWT - vx1_SEB + vx1_SET + vx1_SWB - vx1_SWT)/c2o1; - bxz= (-vx2_NEB + vx2_NET + vx2_NWB - vx2_NWT - vx2_SEB + vx2_SET + vx2_SWB - vx2_SWT)/c2o1; - cxz= (-vx3_NEB + vx3_NET + vx3_NWB - vx3_NWT - vx3_SEB + vx3_SET + vx3_SWB - vx3_SWT)/c2o1; - ayz= (-vx1_NEB + vx1_NET - vx1_NWB + vx1_NWT + vx1_SEB - vx1_SET + vx1_SWB - vx1_SWT)/c2o1; - byz= (-vx2_NEB + vx2_NET - vx2_NWB + vx2_NWT + vx2_SEB - vx2_SET + vx2_SWB - vx2_SWT)/c2o1; - cyz= (-vx3_NEB + vx3_NET - vx3_NWB + vx3_NWT + vx3_SEB - vx3_SET + vx3_SWB - vx3_SWT)/c2o1; - axyz=-vx1_NEB + vx1_NET + vx1_NWB - vx1_NWT + vx1_SEB - vx1_SET - vx1_SWB + vx1_SWT; - bxyz=-vx2_NEB + vx2_NET + vx2_NWB - vx2_NWT + vx2_SEB - vx2_SET - vx2_SWB + vx2_SWT; - cxyz=-vx3_NEB + vx3_NET + vx3_NWB - vx3_NWT + vx3_SEB - vx3_SET - vx3_SWB + vx3_SWT; - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho - // d0 = ( drho_NEB + drho_NET + drho_NWB + drho_NWT + drho_SEB + drho_SET + drho_SWB + drho_SWT) * c1o8; - // dx = ( drho_NEB + drho_NET - drho_NWB - drho_NWT + drho_SEB + drho_SET - drho_SWB - drho_SWT) * c1o4; - // dy = ( drho_NEB + drho_NET + drho_NWB + drho_NWT - drho_SEB - drho_SET - drho_SWB - drho_SWT) * c1o4; - // dz = (-drho_NEB + drho_NET - drho_NWB + drho_NWT - drho_SEB + drho_SET - drho_SWB + drho_SWT) * c1o4; - // dxy = ( drho_NEB + drho_NET - drho_NWB - drho_NWT - drho_SEB - drho_SET + drho_SWB + drho_SWT) * c1o2; - // dxz = (-drho_NEB + drho_NET + drho_NWB - drho_NWT - drho_SEB + drho_SET + drho_SWB - drho_SWT) * c1o2; - // dyz = (-drho_NEB + drho_NET - drho_NWB + drho_NWT + drho_SEB - drho_SET + drho_SWB - drho_SWT) * c1o2; - // dxyz = -drho_NEB + drho_NET + drho_NWB - drho_NWT + drho_SEB - drho_SET - drho_SWB + drho_SWT; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - unsigned int kTimeStepOld = kTimeStep - numberOfParticles; - real localX = coordParticleXlocal[kTimeStepOld]; - real localY = coordParticleYlocal[kTimeStepOld]; - real localZ = coordParticleZlocal[kTimeStepOld]; - - x = (localX * (real)(pow((double)c2o1, (double)level))) - c1o2; //-c1o4; + ///////////////////////////////////////////////////////////// + unsigned int kTimeStep = k + (timestep * numberOfParticles); + ///////////////////////////////////////////////////////////// + unsigned int kCellBaseID = cellBaseID[k]; + unsigned int BC000 = bcMatD[kCellBaseID]; + unsigned int BCx00 = bcMatD[neighborX[kCellBaseID]]; + unsigned int BC0y0 = bcMatD[neighborY[kCellBaseID]]; + unsigned int BC00z = bcMatD[neighborZ[kCellBaseID]]; + unsigned int BCxy0 = bcMatD[neighborY[neighborX[kCellBaseID]]]; + unsigned int BCx0z = bcMatD[neighborZ[neighborX[kCellBaseID]]]; + unsigned int BC0yz = bcMatD[neighborZ[neighborY[kCellBaseID]]]; + unsigned int BCxyz = bcMatD[neighborZ[neighborY[neighborX[kCellBaseID]]]]; + ///////////////////////////////////////////////////////////// + if( (BC000 >= GEO_FLUID) || + (BCx00 >= GEO_FLUID) || + (BC0y0 >= GEO_FLUID) || + (BC00z >= GEO_FLUID) || + (BCxy0 >= GEO_FLUID) || + (BCx0z >= GEO_FLUID) || + (BC0yz >= GEO_FLUID) || + (BCxyz >= GEO_FLUID) ) + { + if (isEvenTimestep==true) + { + feC = &DD[dP00 * numberOfLBnodes]; + fwC = &DD[dM00 * numberOfLBnodes]; + fnC = &DD[d0P0 * numberOfLBnodes]; + fsC = &DD[d0M0 * numberOfLBnodes]; + ftC = &DD[d00P * numberOfLBnodes]; + fbC = &DD[d00M * numberOfLBnodes]; + fneC = &DD[dPP0 * numberOfLBnodes]; + fswC = &DD[dMM0 * numberOfLBnodes]; + fseC = &DD[dPM0 * numberOfLBnodes]; + fnwC = &DD[dMP0 * numberOfLBnodes]; + fteC = &DD[dP0P * numberOfLBnodes]; + fbwC = &DD[dM0M * numberOfLBnodes]; + fbeC = &DD[dP0M * numberOfLBnodes]; + ftwC = &DD[dM0P * numberOfLBnodes]; + ftnC = &DD[d0PP * numberOfLBnodes]; + fbsC = &DD[d0MM * numberOfLBnodes]; + fbnC = &DD[d0PM * numberOfLBnodes]; + ftsC = &DD[d0MP * numberOfLBnodes]; + fzeroC = &DD[d000 * numberOfLBnodes]; + ftneC = &DD[dPPP * numberOfLBnodes]; + ftswC = &DD[dMMP * numberOfLBnodes]; + ftseC = &DD[dPMP * numberOfLBnodes]; + ftnwC = &DD[dMPP * numberOfLBnodes]; + fbneC = &DD[dPPM * numberOfLBnodes]; + fbswC = &DD[dMMM * numberOfLBnodes]; + fbseC = &DD[dPMM * numberOfLBnodes]; + fbnwC = &DD[dMPM * numberOfLBnodes]; + } + else + { + fwC = &DD[dP00 * numberOfLBnodes]; + feC = &DD[dM00 * numberOfLBnodes]; + fsC = &DD[d0P0 * numberOfLBnodes]; + fnC = &DD[d0M0 * numberOfLBnodes]; + fbC = &DD[d00P * numberOfLBnodes]; + ftC = &DD[d00M * numberOfLBnodes]; + fswC = &DD[dPP0 * numberOfLBnodes]; + fneC = &DD[dMM0 * numberOfLBnodes]; + fnwC = &DD[dPM0 * numberOfLBnodes]; + fseC = &DD[dMP0 * numberOfLBnodes]; + fbwC = &DD[dP0P * numberOfLBnodes]; + fteC = &DD[dM0M * numberOfLBnodes]; + ftwC = &DD[dP0M * numberOfLBnodes]; + fbeC = &DD[dM0P * numberOfLBnodes]; + fbsC = &DD[d0PP * numberOfLBnodes]; + ftnC = &DD[d0MM * numberOfLBnodes]; + ftsC = &DD[d0PM * numberOfLBnodes]; + fbnC = &DD[d0MP * numberOfLBnodes]; + fzeroC = &DD[d000 * numberOfLBnodes]; + fbswC = &DD[dPPP * numberOfLBnodes]; + fbneC = &DD[dMMP * numberOfLBnodes]; + fbnwC = &DD[dPMP * numberOfLBnodes]; + fbseC = &DD[dMPP * numberOfLBnodes]; + ftswC = &DD[dPPM * numberOfLBnodes]; + ftneC = &DD[dMMM * numberOfLBnodes]; + ftnwC = &DD[dPMM * numberOfLBnodes]; + ftseC = &DD[dMPM * numberOfLBnodes]; + } + + ////////////////////////////////////////////////////////////////////////// + //SWB// + ////////////////////////////////////////////////////////////////////////// + //index 0 + unsigned int k0zero= cellBaseID[k]; + unsigned int k0w = neighborX[k0zero]; + unsigned int k0s = neighborY[k0zero]; + unsigned int k0b = neighborZ[k0zero]; + unsigned int k0sw = neighborY[k0w]; + unsigned int k0bw = neighborZ[k0w]; + unsigned int k0bs = neighborZ[k0s]; + unsigned int k0bsw = neighborZ[k0sw]; + ////////////////////////////////////////////////////////////////////////// + //index + unsigned int kzero= k0zero; + unsigned int kw = k0w; + unsigned int ks = k0s; + unsigned int kb = k0b; + unsigned int ksw = k0sw; + unsigned int kbw = k0bw; + unsigned int kbs = k0bs; + unsigned int kbsw = k0bsw; + //////////////////////////////////////////////////////////////////////////////// + f_E = feC[kzero]; + f_W = fwC[kw]; + f_N = fnC[kzero]; + f_S = fsC[ks]; + f_T = ftC[kzero]; + f_B = fbC[kb]; + f_NE = fneC[kzero]; + f_SW = fswC[ksw]; + f_SE = fseC[ks]; + f_NW = fnwC[kw]; + f_TE = fteC[kzero]; + f_BW = fbwC[kbw]; + f_BE = fbeC[kb]; + f_TW = ftwC[kw]; + f_TN = ftnC[kzero]; + f_BS = fbsC[kbs]; + f_BN = fbnC[kb]; + f_TS = ftsC[ks]; + f_ZERO = fzeroC[kzero]; + f_TNE = ftneC[kzero]; + f_TSW = ftswC[ksw]; + f_TSE = ftseC[ks]; + f_TNW = ftnwC[kw]; + f_BNE = fbneC[kb]; + f_BSW = fbswC[kbsw]; + f_BSE = fbseC[kbs]; + f_BNW = fbnwC[kbw]; + + drho_SWB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; + vx1_SWB = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_SWB); + vx2_SWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SWB); + vx3_SWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SWB); + + kxyFromfcNEQ_SWB = -c3o1*omega*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_SWB) - ((vx1_SWB*vx2_SWB))); + kyzFromfcNEQ_SWB = -c3o1*omega*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_SWB) - ((vx2_SWB*vx3_SWB))); + kxzFromfcNEQ_SWB = -c3o1*omega*((f_BW+f_BSW+f_BNW-f_TW-f_TSW-f_TNW-f_BE-f_BSE-f_BNE+f_TE+f_TSE+f_TNE ) / (c1o1 + drho_SWB) - ((vx1_SWB*vx3_SWB))); + kxxMyyFromfcNEQ_SWB = -c3o2*omega *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_SWB) - ((vx1_SWB*vx1_SWB-vx2_SWB*vx2_SWB))); + kxxMzzFromfcNEQ_SWB = -c3o2*omega *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_SWB) - ((vx1_SWB*vx1_SWB-vx3_SWB*vx3_SWB))); + + ////////////////////////////////////////////////////////////////////////// + //SWT// + ////////////////////////////////////////////////////////////////////////// + //index + kzero= kb; + kw = kbw; + ks = kbs; + kb = neighborZ[kb]; + ksw = kbsw; + kbw = neighborZ[kbw]; + kbs = neighborZ[kbs]; + kbsw = neighborZ[kbsw]; + //////////////////////////////////////////////////////////////////////////////// + f_E = feC[kzero]; + f_W = fwC[kw]; + f_N = fnC[kzero]; + f_S = fsC[ks]; + f_T = ftC[kzero]; + f_B = fbC[kb]; + f_NE = fneC[kzero]; + f_SW = fswC[ksw]; + f_SE = fseC[ks]; + f_NW = fnwC[kw]; + f_TE = fteC[kzero]; + f_BW = fbwC[kbw]; + f_BE = fbeC[kb]; + f_TW = ftwC[kw]; + f_TN = ftnC[kzero]; + f_BS = fbsC[kbs]; + f_BN = fbnC[kb]; + f_TS = ftsC[ks]; + f_ZERO = fzeroC[kzero]; + f_TNE = ftneC[kzero]; + f_TSW = ftswC[ksw]; + f_TSE = ftseC[ks]; + f_TNW = ftnwC[kw]; + f_BNE = fbneC[kb]; + f_BSW = fbswC[kbsw]; + f_BSE = fbseC[kbs]; + f_BNW = fbnwC[kbw]; + + drho_SWT = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; + vx1_SWT = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_SWT); + vx2_SWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SWT); + vx3_SWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SWT); + + kxyFromfcNEQ_SWT = -c3o1*omega*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_SWT) - ((vx1_SWT*vx2_SWT))); + kyzFromfcNEQ_SWT = -c3o1*omega*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_SWT) - ((vx2_SWT*vx3_SWT))); + kxzFromfcNEQ_SWT = -c3o1*omega*((f_BW+f_BSW+f_BNW-f_TW-f_TSW-f_TNW-f_BE-f_BSE-f_BNE+f_TE+f_TSE+f_TNE ) / (c1o1 + drho_SWT) - ((vx1_SWT*vx3_SWT))); + kxxMyyFromfcNEQ_SWT = -c3o2*omega *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_SWT) - ((vx1_SWT*vx1_SWT-vx2_SWT*vx2_SWT))); + kxxMzzFromfcNEQ_SWT = -c3o2*omega *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_SWT) - ((vx1_SWT*vx1_SWT-vx3_SWT*vx3_SWT))); + + ////////////////////////////////////////////////////////////////////////// + //SET// + ////////////////////////////////////////////////////////////////////////// + //index + kzero= kw; + kw = neighborX[kw]; + ks = ksw; + kb = kbw; + ksw = neighborX[ksw]; + kbw = neighborX[kbw]; + kbs = kbsw; + kbsw = neighborX[kbsw]; + //////////////////////////////////////////////////////////////////////////////// + f_E = feC[kzero]; + f_W = fwC[kw]; + f_N = fnC[kzero]; + f_S = fsC[ks]; + f_T = ftC[kzero]; + f_B = fbC[kb]; + f_NE = fneC[kzero]; + f_SW = fswC[ksw]; + f_SE = fseC[ks]; + f_NW = fnwC[kw]; + f_TE = fteC[kzero]; + f_BW = fbwC[kbw]; + f_BE = fbeC[kb]; + f_TW = ftwC[kw]; + f_TN = ftnC[kzero]; + f_BS = fbsC[kbs]; + f_BN = fbnC[kb]; + f_TS = ftsC[ks]; + f_ZERO = fzeroC[kzero]; + f_TNE = ftneC[kzero]; + f_TSW = ftswC[ksw]; + f_TSE = ftseC[ks]; + f_TNW = ftnwC[kw]; + f_BNE = fbneC[kb]; + f_BSW = fbswC[kbsw]; + f_BSE = fbseC[kbs]; + f_BNW = fbnwC[kbw]; + + drho_SET = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; + vx1_SET = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_SET); + vx2_SET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SET); + vx3_SET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SET); + + kxyFromfcNEQ_SET = -c3o1*omega*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_SET) - ((vx1_SET*vx2_SET))); + kyzFromfcNEQ_SET = -c3o1*omega*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_SET) - ((vx2_SET*vx3_SET))); + kxzFromfcNEQ_SET = -c3o1*omega*((f_BW+f_BSW+f_BNW-f_TW-f_TSW-f_TNW-f_BE-f_BSE-f_BNE+f_TE+f_TSE+f_TNE ) / (c1o1 + drho_SET) - ((vx1_SET*vx3_SET))); + kxxMyyFromfcNEQ_SET = -c3o2*omega *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_SET) - ((vx1_SET*vx1_SET-vx2_SET*vx2_SET))); + kxxMzzFromfcNEQ_SET = -c3o2*omega *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_SET) - ((vx1_SET*vx1_SET-vx3_SET*vx3_SET))); + + ////////////////////////////////////////////////////////////////////////// + //SEB// + ////////////////////////////////////////////////////////////////////////// + //index + kb = kzero; + kbw = kw; + kbs = ks; + kbsw = ksw; + kzero= k0w; + kw = neighborX[k0w]; + ks = k0sw; + ksw = neighborX[k0sw]; + //////////////////////////////////////////////////////////////////////////////// + f_E = feC[kzero]; + f_W = fwC[kw]; + f_N = fnC[kzero]; + f_S = fsC[ks]; + f_T = ftC[kzero]; + f_B = fbC[kb]; + f_NE = fneC[kzero]; + f_SW = fswC[ksw]; + f_SE = fseC[ks]; + f_NW = fnwC[kw]; + f_TE = fteC[kzero]; + f_BW = fbwC[kbw]; + f_BE = fbeC[kb]; + f_TW = ftwC[kw]; + f_TN = ftnC[kzero]; + f_BS = fbsC[kbs]; + f_BN = fbnC[kb]; + f_TS = ftsC[ks]; + f_ZERO = fzeroC[kzero]; + f_TNE = ftneC[kzero]; + f_TSW = ftswC[ksw]; + f_TSE = ftseC[ks]; + f_TNW = ftnwC[kw]; + f_BNE = fbneC[kb]; + f_BSW = fbswC[kbsw]; + f_BSE = fbseC[kbs]; + f_BNW = fbnwC[kbw]; + + drho_SEB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; + vx1_SEB = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_SEB); + vx2_SEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SEB); + vx3_SEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SEB); + + kxyFromfcNEQ_SEB = -c3o1*omega*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_SEB) - ((vx1_SEB*vx2_SEB))); + kyzFromfcNEQ_SEB = -c3o1*omega*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_SEB) - ((vx2_SEB*vx3_SEB))); + kxzFromfcNEQ_SEB = -c3o1*omega*((f_BW+f_BSW+f_BNW-f_TW-f_TSW-f_TNW-f_BE-f_BSE-f_BNE+f_TE+f_TSE+f_TNE ) / (c1o1 + drho_SEB) - ((vx1_SEB*vx3_SEB))); + kxxMyyFromfcNEQ_SEB = -c3o2*omega *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_SEB) - ((vx1_SEB*vx1_SEB-vx2_SEB*vx2_SEB))); + kxxMzzFromfcNEQ_SEB = -c3o2*omega *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_SEB) - ((vx1_SEB*vx1_SEB-vx3_SEB*vx3_SEB))); + + ////////////////////////////////////////////////////////////////////////// + //NWB// + ////////////////////////////////////////////////////////////////////////// + //index 0 + k0zero= k0s; + k0w = k0sw; + k0s = neighborY[k0s]; + k0b = k0bs; + k0sw = neighborY[k0sw]; + k0bw = k0bsw; + k0bs = neighborY[k0bs]; + k0bsw = neighborY[k0bsw]; + ////////////////////////////////////////////////////////////////////////// + //index + kzero= k0zero; + kw = k0w; + ks = k0s; + kb = k0b; + ksw = k0sw; + kbw = k0bw; + kbs = k0bs; + kbsw = k0bsw; + //////////////////////////////////////////////////////////////////////////////// + f_E = feC[kzero]; + f_W = fwC[kw]; + f_N = fnC[kzero]; + f_S = fsC[ks]; + f_T = ftC[kzero]; + f_B = fbC[kb]; + f_NE = fneC[kzero]; + f_SW = fswC[ksw]; + f_SE = fseC[ks]; + f_NW = fnwC[kw]; + f_TE = fteC[kzero]; + f_BW = fbwC[kbw]; + f_BE = fbeC[kb]; + f_TW = ftwC[kw]; + f_TN = ftnC[kzero]; + f_BS = fbsC[kbs]; + f_BN = fbnC[kb]; + f_TS = ftsC[ks]; + f_ZERO = fzeroC[kzero]; + f_TNE = ftneC[kzero]; + f_TSW = ftswC[ksw]; + f_TSE = ftseC[ks]; + f_TNW = ftnwC[kw]; + f_BNE = fbneC[kb]; + f_BSW = fbswC[kbsw]; + f_BSE = fbseC[kbs]; + f_BNW = fbnwC[kbw]; + + drho_NWB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; + vx1_NWB = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_NWB); + vx2_NWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NWB); + vx3_NWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NWB); + + kxyFromfcNEQ_NWB = -c3o1*omega*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_NWB) - ((vx1_NWB*vx2_NWB))); + kyzFromfcNEQ_NWB = -c3o1*omega*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_NWB) - ((vx2_NWB*vx3_NWB))); + kxzFromfcNEQ_NWB = -c3o1*omega*((f_BW+f_BSW+f_BNW-f_TW-f_TSW-f_TNW-f_BE-f_BSE-f_BNE+f_TE+f_TSE+f_TNE ) / (c1o1 + drho_NWB) - ((vx1_NWB*vx3_NWB))); + kxxMyyFromfcNEQ_NWB = -c3o2*omega *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_NWB) - ((vx1_NWB*vx1_NWB-vx2_NWB*vx2_NWB))); + kxxMzzFromfcNEQ_NWB = -c3o2*omega *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_NWB) - ((vx1_NWB*vx1_NWB-vx3_NWB*vx3_NWB))); + + ////////////////////////////////////////////////////////////////////////// + //NWT// + ////////////////////////////////////////////////////////////////////////// + //index + kzero= kb; + kw = kbw; + ks = kbs; + kb = neighborZ[kb]; + ksw = kbsw; + kbw = neighborZ[kbw]; + kbs = neighborZ[kbs]; + kbsw = neighborZ[kbsw]; + //////////////////////////////////////////////////////////////////////////////// + f_E = feC[kzero]; + f_W = fwC[kw]; + f_N = fnC[kzero]; + f_S = fsC[ks]; + f_T = ftC[kzero]; + f_B = fbC[kb]; + f_NE = fneC[kzero]; + f_SW = fswC[ksw]; + f_SE = fseC[ks]; + f_NW = fnwC[kw]; + f_TE = fteC[kzero]; + f_BW = fbwC[kbw]; + f_BE = fbeC[kb]; + f_TW = ftwC[kw]; + f_TN = ftnC[kzero]; + f_BS = fbsC[kbs]; + f_BN = fbnC[kb]; + f_TS = ftsC[ks]; + f_ZERO = fzeroC[kzero]; + f_TNE = ftneC[kzero]; + f_TSW = ftswC[ksw]; + f_TSE = ftseC[ks]; + f_TNW = ftnwC[kw]; + f_BNE = fbneC[kb]; + f_BSW = fbswC[kbsw]; + f_BSE = fbseC[kbs]; + f_BNW = fbnwC[kbw]; + + drho_NWT = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; + vx1_NWT = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_NWT); + vx2_NWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NWT); + vx3_NWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NWT); + + kxyFromfcNEQ_NWT = -c3o1*omega*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_NWT) - ((vx1_NWT*vx2_NWT))); + kyzFromfcNEQ_NWT = -c3o1*omega*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_NWT) - ((vx2_NWT*vx3_NWT))); + kxzFromfcNEQ_NWT = -c3o1*omega*((f_BW+f_BSW+f_BNW-f_TW-f_TSW-f_TNW-f_BE-f_BSE-f_BNE+f_TE+f_TSE+f_TNE ) / (c1o1 + drho_NWT) - ((vx1_NWT*vx3_NWT))); + kxxMyyFromfcNEQ_NWT = -c3o2*omega *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_NWT) - ((vx1_NWT*vx1_NWT-vx2_NWT*vx2_NWT))); + kxxMzzFromfcNEQ_NWT = -c3o2*omega *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_NWT) - ((vx1_NWT*vx1_NWT-vx3_NWT*vx3_NWT))); + + ////////////////////////////////////////////////////////////////////////// + //NET// + ////////////////////////////////////////////////////////////////////////// + //index + kzero= kw; + kw = neighborX[kw]; + ks = ksw; + kb = kbw; + ksw = neighborX[ksw]; + kbw = neighborX[kbw]; + kbs = kbsw; + kbsw = neighborX[kbsw]; + //////////////////////////////////////////////////////////////////////////////// + f_E = feC[kzero]; + f_W = fwC[kw]; + f_N = fnC[kzero]; + f_S = fsC[ks]; + f_T = ftC[kzero]; + f_B = fbC[kb]; + f_NE = fneC[kzero]; + f_SW = fswC[ksw]; + f_SE = fseC[ks]; + f_NW = fnwC[kw]; + f_TE = fteC[kzero]; + f_BW = fbwC[kbw]; + f_BE = fbeC[kb]; + f_TW = ftwC[kw]; + f_TN = ftnC[kzero]; + f_BS = fbsC[kbs]; + f_BN = fbnC[kb]; + f_TS = ftsC[ks]; + f_ZERO = fzeroC[kzero]; + f_TNE = ftneC[kzero]; + f_TSW = ftswC[ksw]; + f_TSE = ftseC[ks]; + f_TNW = ftnwC[kw]; + f_BNE = fbneC[kb]; + f_BSW = fbswC[kbsw]; + f_BSE = fbseC[kbs]; + f_BNW = fbnwC[kbw]; + + drho_NET = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; + vx1_NET = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_NET); + vx2_NET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NET); + vx3_NET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NET); + + kxyFromfcNEQ_NET = -c3o1*omega*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_NET) - ((vx1_NET*vx2_NET))); + kyzFromfcNEQ_NET = -c3o1*omega*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_NET) - ((vx2_NET*vx3_NET))); + kxzFromfcNEQ_NET = -c3o1*omega*((f_BW+f_BSW+f_BNW-f_TW-f_TSW-f_TNW-f_BE-f_BSE-f_BNE+f_TE+f_TSE+f_TNE ) / (c1o1 + drho_NET) - ((vx1_NET*vx3_NET))); + kxxMyyFromfcNEQ_NET = -c3o2*omega *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_NET) - ((vx1_NET*vx1_NET-vx2_NET*vx2_NET))); + kxxMzzFromfcNEQ_NET = -c3o2*omega *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_NET) - ((vx1_NET*vx1_NET-vx3_NET*vx3_NET))); + + ////////////////////////////////////////////////////////////////////////// + //NEB// + ////////////////////////////////////////////////////////////////////////// + //index + kb = kzero; + kbw = kw; + kbs = ks; + kbsw = ksw; + kzero= k0w; + kw = neighborX[k0w]; + ks = k0sw; + ksw = neighborX[k0sw]; + //////////////////////////////////////////////////////////////////////////////// + f_E = feC[kzero]; + f_W = fwC[kw]; + f_N = fnC[kzero]; + f_S = fsC[ks]; + f_T = ftC[kzero]; + f_B = fbC[kb]; + f_NE = fneC[kzero]; + f_SW = fswC[ksw]; + f_SE = fseC[ks]; + f_NW = fnwC[kw]; + f_TE = fteC[kzero]; + f_BW = fbwC[kbw]; + f_BE = fbeC[kb]; + f_TW = ftwC[kw]; + f_TN = ftnC[kzero]; + f_BS = fbsC[kbs]; + f_BN = fbnC[kb]; + f_TS = ftsC[ks]; + f_ZERO = fzeroC[kzero]; + f_TNE = ftneC[kzero]; + f_TSW = ftswC[ksw]; + f_TSE = ftseC[ks]; + f_TNW = ftnwC[kw]; + f_BNE = fbneC[kb]; + f_BSW = fbswC[kbsw]; + f_BSE = fbseC[kbs]; + f_BNW = fbnwC[kbw]; + + drho_NEB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; + vx1_NEB = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_NEB); + vx2_NEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NEB); + vx3_NEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NEB); + + kxyFromfcNEQ_NEB = -c3o1*omega*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_NEB) - ((vx1_NEB*vx2_NEB))); + kyzFromfcNEQ_NEB = -c3o1*omega*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_NEB) - ((vx2_NEB*vx3_NEB))); + kxzFromfcNEQ_NEB = -c3o1*omega*((f_BW+f_BSW+f_BNW-f_TW-f_TSW-f_TNW-f_BE-f_BSE-f_BNE+f_TE+f_TSE+f_TNE ) / (c1o1 + drho_NEB) - ((vx1_NEB*vx3_NEB))); + kxxMyyFromfcNEQ_NEB = -c3o2*omega *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_NEB) - ((vx1_NEB*vx1_NEB-vx2_NEB*vx2_NEB))); + kxxMzzFromfcNEQ_NEB = -c3o2*omega *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_NEB) - ((vx1_NEB*vx1_NEB-vx3_NEB*vx3_NEB))); + + ////////////////////////////////////////////////////////////////////////// + //interpolate + ////////////////////////////////////////////////////////////////////////// + a0 = (-kxxMyyFromfcNEQ_NEB - kxxMyyFromfcNEQ_NET + kxxMyyFromfcNEQ_NWB + kxxMyyFromfcNEQ_NWT - + kxxMyyFromfcNEQ_SEB - kxxMyyFromfcNEQ_SET + kxxMyyFromfcNEQ_SWB + kxxMyyFromfcNEQ_SWT - + kxxMzzFromfcNEQ_NEB - kxxMzzFromfcNEQ_NET + kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_NWT - + kxxMzzFromfcNEQ_SEB - kxxMzzFromfcNEQ_SET + kxxMzzFromfcNEQ_SWB + kxxMzzFromfcNEQ_SWT - + c2o1*kxyFromfcNEQ_NEB - c2o1*kxyFromfcNEQ_NET - c2o1*kxyFromfcNEQ_NWB - c2o1*kxyFromfcNEQ_NWT + + c2o1*kxyFromfcNEQ_SEB + c2o1*kxyFromfcNEQ_SET + c2o1*kxyFromfcNEQ_SWB + c2o1*kxyFromfcNEQ_SWT + + c2o1*kxzFromfcNEQ_NEB - c2o1*kxzFromfcNEQ_NET + c2o1*kxzFromfcNEQ_NWB - c2o1*kxzFromfcNEQ_NWT + + c2o1*kxzFromfcNEQ_SEB - c2o1*kxzFromfcNEQ_SET + c2o1*kxzFromfcNEQ_SWB - c2o1*kxzFromfcNEQ_SWT + + c8o1*vx1_NEB + c8o1*vx1_NET + c8o1*vx1_NWB + c8o1*vx1_NWT + c8o1*vx1_SEB + + c8o1*vx1_SET + c8o1*vx1_SWB + c8o1*vx1_SWT + c2o1*vx2_NEB + c2o1*vx2_NET - + c2o1*vx2_NWB - c2o1*vx2_NWT - c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB + + c2o1*vx2_SWT - c2o1*vx3_NEB + c2o1*vx3_NET + c2o1*vx3_NWB - c2o1*vx3_NWT - + c2o1*vx3_SEB + c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)/c64o1; + b0 = (c2o1*kxxMyyFromfcNEQ_NEB + c2o1*kxxMyyFromfcNEQ_NET + c2o1*kxxMyyFromfcNEQ_NWB + c2o1*kxxMyyFromfcNEQ_NWT - + c2o1*kxxMyyFromfcNEQ_SEB - c2o1*kxxMyyFromfcNEQ_SET - c2o1*kxxMyyFromfcNEQ_SWB - c2o1*kxxMyyFromfcNEQ_SWT - + kxxMzzFromfcNEQ_NEB - kxxMzzFromfcNEQ_NET - kxxMzzFromfcNEQ_NWB - kxxMzzFromfcNEQ_NWT + + kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_SET + kxxMzzFromfcNEQ_SWB + kxxMzzFromfcNEQ_SWT - + c2o1*kxyFromfcNEQ_NEB - c2o1*kxyFromfcNEQ_NET + c2o1*kxyFromfcNEQ_NWB + c2o1*kxyFromfcNEQ_NWT - + c2o1*kxyFromfcNEQ_SEB - c2o1*kxyFromfcNEQ_SET + c2o1*kxyFromfcNEQ_SWB + c2o1*kxyFromfcNEQ_SWT + + c2o1*kyzFromfcNEQ_NEB - c2o1*kyzFromfcNEQ_NET + c2o1*kyzFromfcNEQ_NWB - c2o1*kyzFromfcNEQ_NWT + + c2o1*kyzFromfcNEQ_SEB - c2o1*kyzFromfcNEQ_SET + c2o1*kyzFromfcNEQ_SWB - c2o1*kyzFromfcNEQ_SWT + + c2o1*vx1_NEB + c2o1*vx1_NET - c2o1*vx1_NWB - c2o1*vx1_NWT - + c2o1*vx1_SEB - c2o1*vx1_SET + c2o1*vx1_SWB + c2o1*vx1_SWT + + c8o1*vx2_NEB + c8o1*vx2_NET + c8o1*vx2_NWB + c8o1*vx2_NWT + + c8o1*vx2_SEB + c8o1*vx2_SET + c8o1*vx2_SWB + c8o1*vx2_SWT - + c2o1*vx3_NEB + c2o1*vx3_NET - c2o1*vx3_NWB + c2o1*vx3_NWT + + c2o1*vx3_SEB - c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)/c64o1; + + //b0 = ((eight*vx2_NEB + eight*vx2_SWT) + (eight*vx2_NET + eight*vx2_SWB) + (eight*vx2_NWB + eight*vx2_SET) + (eight*vx2_NWT + eight*vx2_SEB))/sixtyfour; + + c0 = (kxxMyyFromfcNEQ_NEB - kxxMyyFromfcNEQ_NET + kxxMyyFromfcNEQ_NWB - kxxMyyFromfcNEQ_NWT + + kxxMyyFromfcNEQ_SEB - kxxMyyFromfcNEQ_SET + kxxMyyFromfcNEQ_SWB - kxxMyyFromfcNEQ_SWT - + c2o1*kxxMzzFromfcNEQ_NEB + c2o1*kxxMzzFromfcNEQ_NET - c2o1*kxxMzzFromfcNEQ_NWB + c2o1*kxxMzzFromfcNEQ_NWT - + c2o1*kxxMzzFromfcNEQ_SEB + c2o1*kxxMzzFromfcNEQ_SET - c2o1*kxxMzzFromfcNEQ_SWB + c2o1*kxxMzzFromfcNEQ_SWT - + c2o1*kxzFromfcNEQ_NEB - c2o1*kxzFromfcNEQ_NET + c2o1*kxzFromfcNEQ_NWB + c2o1*kxzFromfcNEQ_NWT - + c2o1*kxzFromfcNEQ_SEB - c2o1*kxzFromfcNEQ_SET + c2o1*kxzFromfcNEQ_SWB + c2o1*kxzFromfcNEQ_SWT - + c2o1*kyzFromfcNEQ_NEB - c2o1*kyzFromfcNEQ_NET - c2o1*kyzFromfcNEQ_NWB - c2o1*kyzFromfcNEQ_NWT + + c2o1*kyzFromfcNEQ_SEB + c2o1*kyzFromfcNEQ_SET + c2o1*kyzFromfcNEQ_SWB + c2o1*kyzFromfcNEQ_SWT - + c2o1*vx1_NEB + c2o1*vx1_NET + c2o1*vx1_NWB - c2o1*vx1_NWT - + c2o1*vx1_SEB + c2o1*vx1_SET + c2o1*vx1_SWB - c2o1*vx1_SWT - + c2o1*vx2_NEB + c2o1*vx2_NET - c2o1*vx2_NWB + c2o1*vx2_NWT + + c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB - c2o1*vx2_SWT + + c8o1*vx3_NEB + c8o1*vx3_NET + c8o1*vx3_NWB + c8o1*vx3_NWT + + c8o1*vx3_SEB + c8o1*vx3_SET + c8o1*vx3_SWB + c8o1*vx3_SWT)/c64o1; + ax = (vx1_NEB + vx1_NET - vx1_NWB - vx1_NWT + vx1_SEB + vx1_SET - vx1_SWB - vx1_SWT)/c4o1; + bx = (vx2_NEB + vx2_NET - vx2_NWB - vx2_NWT + vx2_SEB + vx2_SET - vx2_SWB - vx2_SWT)/c4o1; + //bx = ((vx2_NEB - vx2_SWT) + (vx2_NET - vx2_SWB) + (vx2_SET - vx2_NWB) + (vx2_SEB - vx2_NWT))/four; + cx = (vx3_NEB + vx3_NET - vx3_NWB - vx3_NWT + vx3_SEB + vx3_SET - vx3_SWB - vx3_SWT)/c4o1; + axx= (kxxMyyFromfcNEQ_NEB + kxxMyyFromfcNEQ_NET - kxxMyyFromfcNEQ_NWB - kxxMyyFromfcNEQ_NWT + + kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_SET - kxxMyyFromfcNEQ_SWB - kxxMyyFromfcNEQ_SWT + + kxxMzzFromfcNEQ_NEB + kxxMzzFromfcNEQ_NET - kxxMzzFromfcNEQ_NWB - kxxMzzFromfcNEQ_NWT + + kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_SET - kxxMzzFromfcNEQ_SWB - kxxMzzFromfcNEQ_SWT + + c2o1*vx2_NEB + c2o1*vx2_NET - c2o1*vx2_NWB - c2o1*vx2_NWT - + c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB + c2o1*vx2_SWT - + c2o1*vx3_NEB + c2o1*vx3_NET + c2o1*vx3_NWB - c2o1*vx3_NWT - + c2o1*vx3_SEB + c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)/c16o1; + bxx= (kxyFromfcNEQ_NEB + kxyFromfcNEQ_NET - kxyFromfcNEQ_NWB - kxyFromfcNEQ_NWT + + kxyFromfcNEQ_SEB + kxyFromfcNEQ_SET - kxyFromfcNEQ_SWB - kxyFromfcNEQ_SWT - + c2o1*vx1_NEB - c2o1*vx1_NET + c2o1*vx1_NWB + c2o1*vx1_NWT + + c2o1*vx1_SEB + c2o1*vx1_SET - c2o1*vx1_SWB - c2o1*vx1_SWT)/c8o1; + cxx= (kxzFromfcNEQ_NEB + kxzFromfcNEQ_NET - kxzFromfcNEQ_NWB - kxzFromfcNEQ_NWT + + kxzFromfcNEQ_SEB + kxzFromfcNEQ_SET - kxzFromfcNEQ_SWB - kxzFromfcNEQ_SWT + + c2o1*vx1_NEB - c2o1*vx1_NET - c2o1*vx1_NWB + c2o1*vx1_NWT + + c2o1*vx1_SEB - c2o1*vx1_SET - c2o1*vx1_SWB + c2o1*vx1_SWT)/c8o1; + ay = (vx1_NEB + vx1_NET + vx1_NWB + vx1_NWT - vx1_SEB - vx1_SET - vx1_SWB - vx1_SWT)/c4o1; + by = (vx2_NEB + vx2_NET + vx2_NWB + vx2_NWT - vx2_SEB - vx2_SET - vx2_SWB - vx2_SWT)/c4o1; + cy = (vx3_NEB + vx3_NET + vx3_NWB + vx3_NWT - vx3_SEB - vx3_SET - vx3_SWB - vx3_SWT)/c4o1; + ayy= (kxyFromfcNEQ_NEB + kxyFromfcNEQ_NET + kxyFromfcNEQ_NWB + kxyFromfcNEQ_NWT - + kxyFromfcNEQ_SEB - kxyFromfcNEQ_SET - kxyFromfcNEQ_SWB - kxyFromfcNEQ_SWT - + c2o1*vx2_NEB - c2o1*vx2_NET + c2o1*vx2_NWB + c2o1*vx2_NWT + + c2o1*vx2_SEB + c2o1*vx2_SET - c2o1*vx2_SWB - c2o1*vx2_SWT)/c8o1; + byy= (-c2o1*kxxMyyFromfcNEQ_NEB - c2o1*kxxMyyFromfcNEQ_NET - c2o1*kxxMyyFromfcNEQ_NWB - c2o1*kxxMyyFromfcNEQ_NWT + + c2o1*kxxMyyFromfcNEQ_SEB + c2o1*kxxMyyFromfcNEQ_SET + c2o1*kxxMyyFromfcNEQ_SWB + c2o1*kxxMyyFromfcNEQ_SWT + + kxxMzzFromfcNEQ_NEB + kxxMzzFromfcNEQ_NET + kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_NWT - + kxxMzzFromfcNEQ_SEB - kxxMzzFromfcNEQ_SET - kxxMzzFromfcNEQ_SWB - kxxMzzFromfcNEQ_SWT + + c2o1*vx1_NEB + c2o1*vx1_NET - c2o1*vx1_NWB - c2o1*vx1_NWT - + c2o1*vx1_SEB - c2o1*vx1_SET + c2o1*vx1_SWB + c2o1*vx1_SWT - + c2o1*vx3_NEB + c2o1*vx3_NET - c2o1*vx3_NWB + c2o1*vx3_NWT + + c2o1*vx3_SEB - c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)/c16o1; + cyy= (kyzFromfcNEQ_NEB + kyzFromfcNEQ_NET + kyzFromfcNEQ_NWB + kyzFromfcNEQ_NWT - + kyzFromfcNEQ_SEB - kyzFromfcNEQ_SET - kyzFromfcNEQ_SWB - kyzFromfcNEQ_SWT + + c2o1*vx2_NEB - c2o1*vx2_NET + c2o1*vx2_NWB - c2o1*vx2_NWT - + c2o1*vx2_SEB + c2o1*vx2_SET - c2o1*vx2_SWB + c2o1*vx2_SWT)/c8o1; + az = (-vx1_NEB + vx1_NET - vx1_NWB + vx1_NWT - vx1_SEB + vx1_SET - vx1_SWB + vx1_SWT)/c4o1; + //bz = (-vx2_NEB + vx2_NET - vx2_NWB + vx2_NWT - vx2_SEB + vx2_SET - vx2_SWB + vx2_SWT)/four; + bz = ((vx2_SWT - vx2_NEB) + (vx2_NET - vx2_SWB) + (vx2_SET - vx2_NWB) + (vx2_NWT - vx2_SEB))/c4o1; + cz = (-vx3_NEB + vx3_NET - vx3_NWB + vx3_NWT - vx3_SEB + vx3_SET - vx3_SWB + vx3_SWT)/c4o1; + azz= (-kxzFromfcNEQ_NEB + kxzFromfcNEQ_NET - kxzFromfcNEQ_NWB + kxzFromfcNEQ_NWT - + kxzFromfcNEQ_SEB + kxzFromfcNEQ_SET - kxzFromfcNEQ_SWB + kxzFromfcNEQ_SWT + + c2o1*vx3_NEB - c2o1*vx3_NET - c2o1*vx3_NWB + c2o1*vx3_NWT + + c2o1*vx3_SEB - c2o1*vx3_SET - c2o1*vx3_SWB + c2o1*vx3_SWT)/c8o1; + bzz= (-kyzFromfcNEQ_NEB + kyzFromfcNEQ_NET - kyzFromfcNEQ_NWB + kyzFromfcNEQ_NWT - + kyzFromfcNEQ_SEB + kyzFromfcNEQ_SET - kyzFromfcNEQ_SWB + kyzFromfcNEQ_SWT + + c2o1*vx3_NEB - c2o1*vx3_NET + c2o1*vx3_NWB - c2o1*vx3_NWT - + c2o1*vx3_SEB + c2o1*vx3_SET - c2o1*vx3_SWB + c2o1*vx3_SWT)/c8o1; + czz= (-kxxMyyFromfcNEQ_NEB + kxxMyyFromfcNEQ_NET - kxxMyyFromfcNEQ_NWB + kxxMyyFromfcNEQ_NWT - + kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_SET - kxxMyyFromfcNEQ_SWB + kxxMyyFromfcNEQ_SWT + + c2o1*kxxMzzFromfcNEQ_NEB - c2o1*kxxMzzFromfcNEQ_NET + c2o1*kxxMzzFromfcNEQ_NWB - c2o1*kxxMzzFromfcNEQ_NWT + + c2o1*kxxMzzFromfcNEQ_SEB - c2o1*kxxMzzFromfcNEQ_SET + c2o1*kxxMzzFromfcNEQ_SWB - c2o1*kxxMzzFromfcNEQ_SWT - + c2o1*vx1_NEB + c2o1*vx1_NET + c2o1*vx1_NWB - c2o1*vx1_NWT - + c2o1*vx1_SEB + c2o1*vx1_SET + c2o1*vx1_SWB - c2o1*vx1_SWT - + c2o1*vx2_NEB + c2o1*vx2_NET - c2o1*vx2_NWB + c2o1*vx2_NWT + + c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB - c2o1*vx2_SWT)/c16o1; + axy= (vx1_NEB + vx1_NET - vx1_NWB - vx1_NWT - vx1_SEB - vx1_SET + vx1_SWB + vx1_SWT)/c2o1; + bxy= (vx2_NEB + vx2_NET - vx2_NWB - vx2_NWT - vx2_SEB - vx2_SET + vx2_SWB + vx2_SWT)/c2o1; + cxy= (vx3_NEB + vx3_NET - vx3_NWB - vx3_NWT - vx3_SEB - vx3_SET + vx3_SWB + vx3_SWT)/c2o1; + axz= (-vx1_NEB + vx1_NET + vx1_NWB - vx1_NWT - vx1_SEB + vx1_SET + vx1_SWB - vx1_SWT)/c2o1; + bxz= (-vx2_NEB + vx2_NET + vx2_NWB - vx2_NWT - vx2_SEB + vx2_SET + vx2_SWB - vx2_SWT)/c2o1; + cxz= (-vx3_NEB + vx3_NET + vx3_NWB - vx3_NWT - vx3_SEB + vx3_SET + vx3_SWB - vx3_SWT)/c2o1; + ayz= (-vx1_NEB + vx1_NET - vx1_NWB + vx1_NWT + vx1_SEB - vx1_SET + vx1_SWB - vx1_SWT)/c2o1; + byz= (-vx2_NEB + vx2_NET - vx2_NWB + vx2_NWT + vx2_SEB - vx2_SET + vx2_SWB - vx2_SWT)/c2o1; + cyz= (-vx3_NEB + vx3_NET - vx3_NWB + vx3_NWT + vx3_SEB - vx3_SET + vx3_SWB - vx3_SWT)/c2o1; + axyz=-vx1_NEB + vx1_NET + vx1_NWB - vx1_NWT + vx1_SEB - vx1_SET - vx1_SWB + vx1_SWT; + bxyz=-vx2_NEB + vx2_NET + vx2_NWB - vx2_NWT + vx2_SEB - vx2_SET - vx2_SWB + vx2_SWT; + cxyz=-vx3_NEB + vx3_NET + vx3_NWB - vx3_NWT + vx3_SEB - vx3_SET - vx3_SWB + vx3_SWT; + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho + // d0 = ( drho_NEB + drho_NET + drho_NWB + drho_NWT + drho_SEB + drho_SET + drho_SWB + drho_SWT) * c1o8; + // dx = ( drho_NEB + drho_NET - drho_NWB - drho_NWT + drho_SEB + drho_SET - drho_SWB - drho_SWT) * c1o4; + // dy = ( drho_NEB + drho_NET + drho_NWB + drho_NWT - drho_SEB - drho_SET - drho_SWB - drho_SWT) * c1o4; + // dz = (-drho_NEB + drho_NET - drho_NWB + drho_NWT - drho_SEB + drho_SET - drho_SWB + drho_SWT) * c1o4; + // dxy = ( drho_NEB + drho_NET - drho_NWB - drho_NWT - drho_SEB - drho_SET + drho_SWB + drho_SWT) * c1o2; + // dxz = (-drho_NEB + drho_NET + drho_NWB - drho_NWT - drho_SEB + drho_SET + drho_SWB - drho_SWT) * c1o2; + // dyz = (-drho_NEB + drho_NET - drho_NWB + drho_NWT + drho_SEB - drho_SET + drho_SWB - drho_SWT) * c1o2; + // dxyz = -drho_NEB + drho_NET + drho_NWB - drho_NWT + drho_SEB - drho_SET - drho_SWB + drho_SWT; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + unsigned int kTimeStepOld = kTimeStep - numberOfParticles; + real localX = coordParticleXlocal[kTimeStepOld]; + real localY = coordParticleYlocal[kTimeStepOld]; + real localZ = coordParticleZlocal[kTimeStepOld]; + + x = (localX * (real)(pow((double)c2o1, (double)level))) - c1o2; //-c1o4; y = (localY * (real)(pow((double)c2o1, (double)level))) - c1o2; //-c1o4; z = (localZ * (real)(pow((double)c2o1, (double)level))) - c1o2; //-c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; - vx1 = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); - vx2 = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); - vx3 = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); - - real veloPreX = veloParticleX[kTimeStepOld]; - real veloPreY = veloParticleY[kTimeStepOld]; - real veloPreZ = veloParticleZ[kTimeStepOld]; - - real veloPostX = (veloPreX + vx1) * c1o2; - real veloPostY = (veloPreY + vx2) * c1o2; - real veloPostZ = (veloPreZ + vx3) * c1o2; - - //real veloPostX = vx1; - //real veloPostY = vx2; - //real veloPostZ = vx3; - - veloParticleX[kTimeStep] = veloPostX; - veloParticleY[kTimeStep] = veloPostY; - veloParticleZ[kTimeStep] = veloPostZ; - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = x + veloPostX; - //x = x + c1o3; - y = y + veloPostY; - z = z + veloPostZ; - - unsigned int cbID = cellBaseID[k]; - bool negativeDirection = false; - - if (x > c1o2) - { - cbID = neighborX[cbID]; - x = x - c1o1; - } - if (y > c1o2) - { - cbID = neighborY[cbID]; - y = y - c1o1; - } - if (z > c1o2) - { - cbID = neighborZ[cbID]; - z = z - c1o1; - } - - real tempX = x; - real tempY = y; - real tempZ = z; - - if ((x < -c1o2) || (y < -c1o2) || (z < -c1o2)) - { - cbID = neighborWSB[cbID]; - negativeDirection = true; - tempX = x + c1o1; - tempY = y + c1o1; - tempZ = z + c1o1; - } - if ((x >= -c1o2) && (negativeDirection == true)) - { - cbID = neighborX[cbID]; - tempX = x; - } - if ((y >= -c1o2) && (negativeDirection == true)) - { - cbID = neighborY[cbID]; - tempY = y; - } - if ((z >= -c1o2) && (negativeDirection == true)) - { - cbID = neighborZ[cbID]; - tempZ = z; - } - - x = tempX; - y = tempY; - z = tempZ; - - localX = (x + c1o2) / (real)(pow((double)c2o1, (double)level)); + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; + vx1 = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); + vx2 = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); + vx3 = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); + + real veloPreX = veloParticleX[kTimeStepOld]; + real veloPreY = veloParticleY[kTimeStepOld]; + real veloPreZ = veloParticleZ[kTimeStepOld]; + + real veloPostX = (veloPreX + vx1) * c1o2; + real veloPostY = (veloPreY + vx2) * c1o2; + real veloPostZ = (veloPreZ + vx3) * c1o2; + + //real veloPostX = vx1; + //real veloPostY = vx2; + //real veloPostZ = vx3; + + veloParticleX[kTimeStep] = veloPostX; + veloParticleY[kTimeStep] = veloPostY; + veloParticleZ[kTimeStep] = veloPostZ; + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = x + veloPostX; + //x = x + c1o3; + y = y + veloPostY; + z = z + veloPostZ; + + unsigned int cbID = cellBaseID[k]; + bool negativeDirection = false; + + if (x > c1o2) + { + cbID = neighborX[cbID]; + x = x - c1o1; + } + if (y > c1o2) + { + cbID = neighborY[cbID]; + y = y - c1o1; + } + if (z > c1o2) + { + cbID = neighborZ[cbID]; + z = z - c1o1; + } + + real tempX = x; + real tempY = y; + real tempZ = z; + + if ((x < -c1o2) || (y < -c1o2) || (z < -c1o2)) + { + cbID = neighborWSB[cbID]; + negativeDirection = true; + tempX = x + c1o1; + tempY = y + c1o1; + tempZ = z + c1o1; + } + if ((x >= -c1o2) && (negativeDirection == true)) + { + cbID = neighborX[cbID]; + tempX = x; + } + if ((y >= -c1o2) && (negativeDirection == true)) + { + cbID = neighborY[cbID]; + tempY = y; + } + if ((z >= -c1o2) && (negativeDirection == true)) + { + cbID = neighborZ[cbID]; + tempZ = z; + } + + x = tempX; + y = tempY; + z = tempZ; + + localX = (x + c1o2) / (real)(pow((double)c2o1, (double)level)); localY = (y + c1o2) / (real)(pow((double)c2o1, (double)level)); localZ = (z + c1o2) / (real)(pow((double)c2o1, (double)level)); - coordParticleXlocal[kTimeStep] = localX; - coordParticleYlocal[kTimeStep] = localY; - coordParticleZlocal[kTimeStep] = localZ; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real globalX = localX + coordX[cbID]; - real globalY = localY + coordY[cbID]; - real globalZ = localZ + coordZ[cbID]; - coordParticleXglobal[kTimeStep] = globalX; - coordParticleYglobal[kTimeStep] = globalY; - coordParticleZglobal[kTimeStep] = globalZ; - //coordParticleXglobal[kTimeStep] = coordParticleXglobal[kTimeStepOld]; - //coordParticleYglobal[kTimeStep] = coordParticleYglobal[kTimeStepOld]; - //coordParticleZglobal[kTimeStep] = coordParticleZglobal[kTimeStepOld]; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - cellBaseID[k] = cbID; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - } + coordParticleXlocal[kTimeStep] = localX; + coordParticleYlocal[kTimeStep] = localY; + coordParticleZlocal[kTimeStep] = localZ; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + real globalX = localX + coordX[cbID]; + real globalY = localY + coordY[cbID]; + real globalZ = localZ + coordZ[cbID]; + coordParticleXglobal[kTimeStep] = globalX; + coordParticleYglobal[kTimeStep] = globalY; + coordParticleZglobal[kTimeStep] = globalZ; + //coordParticleXglobal[kTimeStep] = coordParticleXglobal[kTimeStepOld]; + //coordParticleYglobal[kTimeStep] = coordParticleYglobal[kTimeStepOld]; + //coordParticleZglobal[kTimeStep] = coordParticleZglobal[kTimeStepOld]; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + cellBaseID[k] = cbID; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + } } } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -1031,32 +1031,32 @@ __global__ void MoveParticles( real* coordX, ////////////////////////////////////////////////////////////////////////////// __global__ void MoveParticlesWithoutBCs( real* coordX, - real* coordY, - real* coordZ, - real* coordParticleXlocal, - real* coordParticleYlocal, - real* coordParticleZlocal, - real* coordParticleXglobal, - real* coordParticleYglobal, - real* coordParticleZglobal, - real* veloParticleX, - real* veloParticleY, - real* veloParticleZ, - real* DD, - real omega, - unsigned int* particleID, - unsigned int* cellBaseID, - unsigned int* bcMatD, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned int* neighborWSB, - int level, - unsigned int timestep, - unsigned int numberOfTimesteps, - unsigned int numberOfParticles, - unsigned long long numberOfLBnodes, - bool isEvenTimestep) + real* coordY, + real* coordZ, + real* coordParticleXlocal, + real* coordParticleYlocal, + real* coordParticleZlocal, + real* coordParticleXglobal, + real* coordParticleYglobal, + real* coordParticleZglobal, + real* veloParticleX, + real* veloParticleY, + real* veloParticleZ, + real* DD, + real omega, + unsigned int* particleID, + unsigned int* cellBaseID, + unsigned int* bcMatD, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned int* neighborWSB, + int level, + unsigned int timestep, + unsigned int numberOfTimesteps, + unsigned int numberOfParticles, + unsigned long long numberOfLBnodes, + bool isEvenTimestep) { //////////////////////////////////////////////////////////////////////////////// const unsigned ix = threadIdx.x; // Globaler x-Index @@ -1096,764 +1096,764 @@ __global__ void MoveParticlesWithoutBCs( real* coordX, if(k < numberOfParticles) { - ///////////////////////////////////////////////////////////// - unsigned int kTimeStep = k + (timestep * numberOfParticles); - ///////////////////////////////////////////////////////////// - unsigned int kCellBaseID = cellBaseID[k]; - unsigned int BC000 = bcMatD[kCellBaseID]; - unsigned int BCx00 = bcMatD[neighborX[kCellBaseID]]; - unsigned int BC0y0 = bcMatD[neighborY[kCellBaseID]]; - unsigned int BC00z = bcMatD[neighborZ[kCellBaseID]]; - unsigned int BCxy0 = bcMatD[neighborY[neighborX[kCellBaseID]]]; - unsigned int BCx0z = bcMatD[neighborZ[neighborX[kCellBaseID]]]; - unsigned int BC0yz = bcMatD[neighborZ[neighborY[kCellBaseID]]]; - unsigned int BCxyz = bcMatD[neighborZ[neighborY[neighborX[kCellBaseID]]]]; - ///////////////////////////////////////////////////////////// - if( (BC000 == GEO_FLUID) || (BCx00 == GEO_FLUID) || (BC0y0 == GEO_FLUID) || (BC00z == GEO_FLUID) || - (BCxy0 == GEO_FLUID) || (BCx0z == GEO_FLUID) || (BC0yz == GEO_FLUID) || (BCxyz == GEO_FLUID) ) - { - if (isEvenTimestep==true) - { - feC = &DD[dP00 * numberOfLBnodes]; - fwC = &DD[dM00 * numberOfLBnodes]; - fnC = &DD[d0P0 * numberOfLBnodes]; - fsC = &DD[d0M0 * numberOfLBnodes]; - ftC = &DD[d00P * numberOfLBnodes]; - fbC = &DD[d00M * numberOfLBnodes]; - fneC = &DD[dPP0 * numberOfLBnodes]; - fswC = &DD[dMM0 * numberOfLBnodes]; - fseC = &DD[dPM0 * numberOfLBnodes]; - fnwC = &DD[dMP0 * numberOfLBnodes]; - fteC = &DD[dP0P * numberOfLBnodes]; - fbwC = &DD[dM0M * numberOfLBnodes]; - fbeC = &DD[dP0M * numberOfLBnodes]; - ftwC = &DD[dM0P * numberOfLBnodes]; - ftnC = &DD[d0PP * numberOfLBnodes]; - fbsC = &DD[d0MM * numberOfLBnodes]; - fbnC = &DD[d0PM * numberOfLBnodes]; - ftsC = &DD[d0MP * numberOfLBnodes]; - fzeroC = &DD[d000 * numberOfLBnodes]; - ftneC = &DD[dPPP * numberOfLBnodes]; - ftswC = &DD[dMMP * numberOfLBnodes]; - ftseC = &DD[dPMP * numberOfLBnodes]; - ftnwC = &DD[dMPP * numberOfLBnodes]; - fbneC = &DD[dPPM * numberOfLBnodes]; - fbswC = &DD[dMMM * numberOfLBnodes]; - fbseC = &DD[dPMM * numberOfLBnodes]; - fbnwC = &DD[dMPM * numberOfLBnodes]; - } - else - { - fwC = &DD[dP00 * numberOfLBnodes]; - feC = &DD[dM00 * numberOfLBnodes]; - fsC = &DD[d0P0 * numberOfLBnodes]; - fnC = &DD[d0M0 * numberOfLBnodes]; - fbC = &DD[d00P * numberOfLBnodes]; - ftC = &DD[d00M * numberOfLBnodes]; - fswC = &DD[dPP0 * numberOfLBnodes]; - fneC = &DD[dMM0 * numberOfLBnodes]; - fnwC = &DD[dPM0 * numberOfLBnodes]; - fseC = &DD[dMP0 * numberOfLBnodes]; - fbwC = &DD[dP0P * numberOfLBnodes]; - fteC = &DD[dM0M * numberOfLBnodes]; - ftwC = &DD[dP0M * numberOfLBnodes]; - fbeC = &DD[dM0P * numberOfLBnodes]; - fbsC = &DD[d0PP * numberOfLBnodes]; - ftnC = &DD[d0MM * numberOfLBnodes]; - ftsC = &DD[d0PM * numberOfLBnodes]; - fbnC = &DD[d0MP * numberOfLBnodes]; - fzeroC = &DD[d000 * numberOfLBnodes]; - fbswC = &DD[dPPP * numberOfLBnodes]; - fbneC = &DD[dMMP * numberOfLBnodes]; - fbnwC = &DD[dPMP * numberOfLBnodes]; - fbseC = &DD[dMPP * numberOfLBnodes]; - ftswC = &DD[dPPM * numberOfLBnodes]; - ftneC = &DD[dMMM * numberOfLBnodes]; - ftnwC = &DD[dPMM * numberOfLBnodes]; - ftseC = &DD[dMPM * numberOfLBnodes]; - } - - ////////////////////////////////////////////////////////////////////////// - //SWB// - ////////////////////////////////////////////////////////////////////////// - //index 0 - unsigned int k0zero= cellBaseID[k]; - unsigned int k0w = neighborX[k0zero]; - unsigned int k0s = neighborY[k0zero]; - unsigned int k0b = neighborZ[k0zero]; - unsigned int k0sw = neighborY[k0w]; - unsigned int k0bw = neighborZ[k0w]; - unsigned int k0bs = neighborZ[k0s]; - unsigned int k0bsw = neighborZ[k0sw]; - ////////////////////////////////////////////////////////////////////////// - //index - unsigned int kzero= k0zero; - unsigned int kw = k0w; - unsigned int ks = k0s; - unsigned int kb = k0b; - unsigned int ksw = k0sw; - unsigned int kbw = k0bw; - unsigned int kbs = k0bs; - unsigned int kbsw = k0bsw; - //////////////////////////////////////////////////////////////////////////////// - f_E = feC[kzero]; - f_W = fwC[kw]; - f_N = fnC[kzero]; - f_S = fsC[ks]; - f_T = ftC[kzero]; - f_B = fbC[kb]; - f_NE = fneC[kzero]; - f_SW = fswC[ksw]; - f_SE = fseC[ks]; - f_NW = fnwC[kw]; - f_TE = fteC[kzero]; - f_BW = fbwC[kbw]; - f_BE = fbeC[kb]; - f_TW = ftwC[kw]; - f_TN = ftnC[kzero]; - f_BS = fbsC[kbs]; - f_BN = fbnC[kb]; - f_TS = ftsC[ks]; - f_ZERO = fzeroC[kzero]; - f_TNE = ftneC[kzero]; - f_TSW = ftswC[ksw]; - f_TSE = ftseC[ks]; - f_TNW = ftnwC[kw]; - f_BNE = fbneC[kb]; - f_BSW = fbswC[kbsw]; - f_BSE = fbseC[kbs]; - f_BNW = fbnwC[kbw]; - - drho_SWB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; - vx1_SWB = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_SWB); - vx2_SWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SWB); - vx3_SWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SWB); - - kxyFromfcNEQ_SWB = -c3o1*omega*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_SWB) - ((vx1_SWB*vx2_SWB))); - kyzFromfcNEQ_SWB = -c3o1*omega*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_SWB) - ((vx2_SWB*vx3_SWB))); - kxzFromfcNEQ_SWB = -c3o1*omega*((f_BW+f_BSW+f_BNW-f_TW-f_TSW-f_TNW-f_BE-f_BSE-f_BNE+f_TE+f_TSE+f_TNE ) / (c1o1 + drho_SWB) - ((vx1_SWB*vx3_SWB))); - kxxMyyFromfcNEQ_SWB = -c3o2*omega *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_SWB) - ((vx1_SWB*vx1_SWB-vx2_SWB*vx2_SWB))); - kxxMzzFromfcNEQ_SWB = -c3o2*omega *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_SWB) - ((vx1_SWB*vx1_SWB-vx3_SWB*vx3_SWB))); - - ////////////////////////////////////////////////////////////////////////// - //SWT// - ////////////////////////////////////////////////////////////////////////// - //index - kzero= kb; - kw = kbw; - ks = kbs; - kb = neighborZ[kb]; - ksw = kbsw; - kbw = neighborZ[kbw]; - kbs = neighborZ[kbs]; - kbsw = neighborZ[kbsw]; - //////////////////////////////////////////////////////////////////////////////// - f_E = feC[kzero]; - f_W = fwC[kw]; - f_N = fnC[kzero]; - f_S = fsC[ks]; - f_T = ftC[kzero]; - f_B = fbC[kb]; - f_NE = fneC[kzero]; - f_SW = fswC[ksw]; - f_SE = fseC[ks]; - f_NW = fnwC[kw]; - f_TE = fteC[kzero]; - f_BW = fbwC[kbw]; - f_BE = fbeC[kb]; - f_TW = ftwC[kw]; - f_TN = ftnC[kzero]; - f_BS = fbsC[kbs]; - f_BN = fbnC[kb]; - f_TS = ftsC[ks]; - f_ZERO = fzeroC[kzero]; - f_TNE = ftneC[kzero]; - f_TSW = ftswC[ksw]; - f_TSE = ftseC[ks]; - f_TNW = ftnwC[kw]; - f_BNE = fbneC[kb]; - f_BSW = fbswC[kbsw]; - f_BSE = fbseC[kbs]; - f_BNW = fbnwC[kbw]; - - drho_SWT = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; - vx1_SWT = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_SWT); - vx2_SWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SWT); - vx3_SWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SWT); - - kxyFromfcNEQ_SWT = -c3o1*omega*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_SWT) - ((vx1_SWT*vx2_SWT))); - kyzFromfcNEQ_SWT = -c3o1*omega*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_SWT) - ((vx2_SWT*vx3_SWT))); - kxzFromfcNEQ_SWT = -c3o1*omega*((f_BW+f_BSW+f_BNW-f_TW-f_TSW-f_TNW-f_BE-f_BSE-f_BNE+f_TE+f_TSE+f_TNE ) / (c1o1 + drho_SWT) - ((vx1_SWT*vx3_SWT))); - kxxMyyFromfcNEQ_SWT = -c3o2*omega *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_SWT) - ((vx1_SWT*vx1_SWT-vx2_SWT*vx2_SWT))); - kxxMzzFromfcNEQ_SWT = -c3o2*omega *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_SWT) - ((vx1_SWT*vx1_SWT-vx3_SWT*vx3_SWT))); - - ////////////////////////////////////////////////////////////////////////// - //SET// - ////////////////////////////////////////////////////////////////////////// - //index - kzero= kw; - kw = neighborX[kw]; - ks = ksw; - kb = kbw; - ksw = neighborX[ksw]; - kbw = neighborX[kbw]; - kbs = kbsw; - kbsw = neighborX[kbsw]; - //////////////////////////////////////////////////////////////////////////////// - f_E = feC[kzero]; - f_W = fwC[kw]; - f_N = fnC[kzero]; - f_S = fsC[ks]; - f_T = ftC[kzero]; - f_B = fbC[kb]; - f_NE = fneC[kzero]; - f_SW = fswC[ksw]; - f_SE = fseC[ks]; - f_NW = fnwC[kw]; - f_TE = fteC[kzero]; - f_BW = fbwC[kbw]; - f_BE = fbeC[kb]; - f_TW = ftwC[kw]; - f_TN = ftnC[kzero]; - f_BS = fbsC[kbs]; - f_BN = fbnC[kb]; - f_TS = ftsC[ks]; - f_ZERO = fzeroC[kzero]; - f_TNE = ftneC[kzero]; - f_TSW = ftswC[ksw]; - f_TSE = ftseC[ks]; - f_TNW = ftnwC[kw]; - f_BNE = fbneC[kb]; - f_BSW = fbswC[kbsw]; - f_BSE = fbseC[kbs]; - f_BNW = fbnwC[kbw]; - - drho_SET = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; - vx1_SET = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_SET); - vx2_SET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SET); - vx3_SET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SET); - - kxyFromfcNEQ_SET = -c3o1*omega*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_SET) - ((vx1_SET*vx2_SET))); - kyzFromfcNEQ_SET = -c3o1*omega*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_SET) - ((vx2_SET*vx3_SET))); - kxzFromfcNEQ_SET = -c3o1*omega*((f_BW+f_BSW+f_BNW-f_TW-f_TSW-f_TNW-f_BE-f_BSE-f_BNE+f_TE+f_TSE+f_TNE ) / (c1o1 + drho_SET) - ((vx1_SET*vx3_SET))); - kxxMyyFromfcNEQ_SET = -c3o2*omega *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_SET) - ((vx1_SET*vx1_SET-vx2_SET*vx2_SET))); - kxxMzzFromfcNEQ_SET = -c3o2*omega *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_SET) - ((vx1_SET*vx1_SET-vx3_SET*vx3_SET))); - - ////////////////////////////////////////////////////////////////////////// - //SEB// - ////////////////////////////////////////////////////////////////////////// - //index - kb = kzero; - kbw = kw; - kbs = ks; - kbsw = ksw; - kzero= k0w; - kw = neighborX[k0w]; - ks = k0sw; - ksw = neighborX[k0sw]; - //////////////////////////////////////////////////////////////////////////////// - f_E = feC[kzero]; - f_W = fwC[kw]; - f_N = fnC[kzero]; - f_S = fsC[ks]; - f_T = ftC[kzero]; - f_B = fbC[kb]; - f_NE = fneC[kzero]; - f_SW = fswC[ksw]; - f_SE = fseC[ks]; - f_NW = fnwC[kw]; - f_TE = fteC[kzero]; - f_BW = fbwC[kbw]; - f_BE = fbeC[kb]; - f_TW = ftwC[kw]; - f_TN = ftnC[kzero]; - f_BS = fbsC[kbs]; - f_BN = fbnC[kb]; - f_TS = ftsC[ks]; - f_ZERO = fzeroC[kzero]; - f_TNE = ftneC[kzero]; - f_TSW = ftswC[ksw]; - f_TSE = ftseC[ks]; - f_TNW = ftnwC[kw]; - f_BNE = fbneC[kb]; - f_BSW = fbswC[kbsw]; - f_BSE = fbseC[kbs]; - f_BNW = fbnwC[kbw]; - - drho_SEB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; - vx1_SEB = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_SEB); - vx2_SEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SEB); - vx3_SEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SEB); - - kxyFromfcNEQ_SEB = -c3o1*omega*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_SEB) - ((vx1_SEB*vx2_SEB))); - kyzFromfcNEQ_SEB = -c3o1*omega*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_SEB) - ((vx2_SEB*vx3_SEB))); - kxzFromfcNEQ_SEB = -c3o1*omega*((f_BW+f_BSW+f_BNW-f_TW-f_TSW-f_TNW-f_BE-f_BSE-f_BNE+f_TE+f_TSE+f_TNE ) / (c1o1 + drho_SEB) - ((vx1_SEB*vx3_SEB))); - kxxMyyFromfcNEQ_SEB = -c3o2*omega *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_SEB) - ((vx1_SEB*vx1_SEB-vx2_SEB*vx2_SEB))); - kxxMzzFromfcNEQ_SEB = -c3o2*omega *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_SEB) - ((vx1_SEB*vx1_SEB-vx3_SEB*vx3_SEB))); - - ////////////////////////////////////////////////////////////////////////// - //NWB// - ////////////////////////////////////////////////////////////////////////// - //index 0 - k0zero= k0s; - k0w = k0sw; - k0s = neighborY[k0s]; - k0b = k0bs; - k0sw = neighborY[k0sw]; - k0bw = k0bsw; - k0bs = neighborY[k0bs]; - k0bsw = neighborY[k0bsw]; - ////////////////////////////////////////////////////////////////////////// - //index - kzero= k0zero; - kw = k0w; - ks = k0s; - kb = k0b; - ksw = k0sw; - kbw = k0bw; - kbs = k0bs; - kbsw = k0bsw; - //////////////////////////////////////////////////////////////////////////////// - f_E = feC[kzero]; - f_W = fwC[kw]; - f_N = fnC[kzero]; - f_S = fsC[ks]; - f_T = ftC[kzero]; - f_B = fbC[kb]; - f_NE = fneC[kzero]; - f_SW = fswC[ksw]; - f_SE = fseC[ks]; - f_NW = fnwC[kw]; - f_TE = fteC[kzero]; - f_BW = fbwC[kbw]; - f_BE = fbeC[kb]; - f_TW = ftwC[kw]; - f_TN = ftnC[kzero]; - f_BS = fbsC[kbs]; - f_BN = fbnC[kb]; - f_TS = ftsC[ks]; - f_ZERO = fzeroC[kzero]; - f_TNE = ftneC[kzero]; - f_TSW = ftswC[ksw]; - f_TSE = ftseC[ks]; - f_TNW = ftnwC[kw]; - f_BNE = fbneC[kb]; - f_BSW = fbswC[kbsw]; - f_BSE = fbseC[kbs]; - f_BNW = fbnwC[kbw]; - - drho_NWB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; - vx1_NWB = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_NWB); - vx2_NWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NWB); - vx3_NWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NWB); - - kxyFromfcNEQ_NWB = -c3o1*omega*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_NWB) - ((vx1_NWB*vx2_NWB))); - kyzFromfcNEQ_NWB = -c3o1*omega*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_NWB) - ((vx2_NWB*vx3_NWB))); - kxzFromfcNEQ_NWB = -c3o1*omega*((f_BW+f_BSW+f_BNW-f_TW-f_TSW-f_TNW-f_BE-f_BSE-f_BNE+f_TE+f_TSE+f_TNE ) / (c1o1 + drho_NWB) - ((vx1_NWB*vx3_NWB))); - kxxMyyFromfcNEQ_NWB = -c3o2*omega *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_NWB) - ((vx1_NWB*vx1_NWB-vx2_NWB*vx2_NWB))); - kxxMzzFromfcNEQ_NWB = -c3o2*omega *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_NWB) - ((vx1_NWB*vx1_NWB-vx3_NWB*vx3_NWB))); - - ////////////////////////////////////////////////////////////////////////// - //NWT// - ////////////////////////////////////////////////////////////////////////// - //index - kzero= kb; - kw = kbw; - ks = kbs; - kb = neighborZ[kb]; - ksw = kbsw; - kbw = neighborZ[kbw]; - kbs = neighborZ[kbs]; - kbsw = neighborZ[kbsw]; - //////////////////////////////////////////////////////////////////////////////// - f_E = feC[kzero]; - f_W = fwC[kw]; - f_N = fnC[kzero]; - f_S = fsC[ks]; - f_T = ftC[kzero]; - f_B = fbC[kb]; - f_NE = fneC[kzero]; - f_SW = fswC[ksw]; - f_SE = fseC[ks]; - f_NW = fnwC[kw]; - f_TE = fteC[kzero]; - f_BW = fbwC[kbw]; - f_BE = fbeC[kb]; - f_TW = ftwC[kw]; - f_TN = ftnC[kzero]; - f_BS = fbsC[kbs]; - f_BN = fbnC[kb]; - f_TS = ftsC[ks]; - f_ZERO = fzeroC[kzero]; - f_TNE = ftneC[kzero]; - f_TSW = ftswC[ksw]; - f_TSE = ftseC[ks]; - f_TNW = ftnwC[kw]; - f_BNE = fbneC[kb]; - f_BSW = fbswC[kbsw]; - f_BSE = fbseC[kbs]; - f_BNW = fbnwC[kbw]; - - drho_NWT = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; - vx1_NWT = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_NWT); - vx2_NWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NWT); - vx3_NWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NWT); - - kxyFromfcNEQ_NWT = -c3o1*omega*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_NWT) - ((vx1_NWT*vx2_NWT))); - kyzFromfcNEQ_NWT = -c3o1*omega*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_NWT) - ((vx2_NWT*vx3_NWT))); - kxzFromfcNEQ_NWT = -c3o1*omega*((f_BW+f_BSW+f_BNW-f_TW-f_TSW-f_TNW-f_BE-f_BSE-f_BNE+f_TE+f_TSE+f_TNE ) / (c1o1 + drho_NWT) - ((vx1_NWT*vx3_NWT))); - kxxMyyFromfcNEQ_NWT = -c3o2*omega *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_NWT) - ((vx1_NWT*vx1_NWT-vx2_NWT*vx2_NWT))); - kxxMzzFromfcNEQ_NWT = -c3o2*omega *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_NWT) - ((vx1_NWT*vx1_NWT-vx3_NWT*vx3_NWT))); - - ////////////////////////////////////////////////////////////////////////// - //NET// - ////////////////////////////////////////////////////////////////////////// - //index - kzero= kw; - kw = neighborX[kw]; - ks = ksw; - kb = kbw; - ksw = neighborX[ksw]; - kbw = neighborX[kbw]; - kbs = kbsw; - kbsw = neighborX[kbsw]; - //////////////////////////////////////////////////////////////////////////////// - f_E = feC[kzero]; - f_W = fwC[kw]; - f_N = fnC[kzero]; - f_S = fsC[ks]; - f_T = ftC[kzero]; - f_B = fbC[kb]; - f_NE = fneC[kzero]; - f_SW = fswC[ksw]; - f_SE = fseC[ks]; - f_NW = fnwC[kw]; - f_TE = fteC[kzero]; - f_BW = fbwC[kbw]; - f_BE = fbeC[kb]; - f_TW = ftwC[kw]; - f_TN = ftnC[kzero]; - f_BS = fbsC[kbs]; - f_BN = fbnC[kb]; - f_TS = ftsC[ks]; - f_ZERO = fzeroC[kzero]; - f_TNE = ftneC[kzero]; - f_TSW = ftswC[ksw]; - f_TSE = ftseC[ks]; - f_TNW = ftnwC[kw]; - f_BNE = fbneC[kb]; - f_BSW = fbswC[kbsw]; - f_BSE = fbseC[kbs]; - f_BNW = fbnwC[kbw]; - - drho_NET = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; - vx1_NET = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_NET); - vx2_NET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NET); - vx3_NET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NET); - - kxyFromfcNEQ_NET = -c3o1*omega*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_NET) - ((vx1_NET*vx2_NET))); - kyzFromfcNEQ_NET = -c3o1*omega*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_NET) - ((vx2_NET*vx3_NET))); - kxzFromfcNEQ_NET = -c3o1*omega*((f_BW+f_BSW+f_BNW-f_TW-f_TSW-f_TNW-f_BE-f_BSE-f_BNE+f_TE+f_TSE+f_TNE ) / (c1o1 + drho_NET) - ((vx1_NET*vx3_NET))); - kxxMyyFromfcNEQ_NET = -c3o2*omega *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_NET) - ((vx1_NET*vx1_NET-vx2_NET*vx2_NET))); - kxxMzzFromfcNEQ_NET = -c3o2*omega *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_NET) - ((vx1_NET*vx1_NET-vx3_NET*vx3_NET))); - - ////////////////////////////////////////////////////////////////////////// - //NEB// - ////////////////////////////////////////////////////////////////////////// - //index - kb = kzero; - kbw = kw; - kbs = ks; - kbsw = ksw; - kzero= k0w; - kw = neighborX[k0w]; - ks = k0sw; - ksw = neighborX[k0sw]; - //////////////////////////////////////////////////////////////////////////////// - f_E = feC[kzero]; - f_W = fwC[kw]; - f_N = fnC[kzero]; - f_S = fsC[ks]; - f_T = ftC[kzero]; - f_B = fbC[kb]; - f_NE = fneC[kzero]; - f_SW = fswC[ksw]; - f_SE = fseC[ks]; - f_NW = fnwC[kw]; - f_TE = fteC[kzero]; - f_BW = fbwC[kbw]; - f_BE = fbeC[kb]; - f_TW = ftwC[kw]; - f_TN = ftnC[kzero]; - f_BS = fbsC[kbs]; - f_BN = fbnC[kb]; - f_TS = ftsC[ks]; - f_ZERO = fzeroC[kzero]; - f_TNE = ftneC[kzero]; - f_TSW = ftswC[ksw]; - f_TSE = ftseC[ks]; - f_TNW = ftnwC[kw]; - f_BNE = fbneC[kb]; - f_BSW = fbswC[kbsw]; - f_BSE = fbseC[kbs]; - f_BNW = fbnwC[kbw]; - - drho_NEB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; - vx1_NEB = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_NEB); - vx2_NEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NEB); - vx3_NEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NEB); - - kxyFromfcNEQ_NEB = -c3o1*omega*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_NEB) - ((vx1_NEB*vx2_NEB))); - kyzFromfcNEQ_NEB = -c3o1*omega*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_NEB) - ((vx2_NEB*vx3_NEB))); - kxzFromfcNEQ_NEB = -c3o1*omega*((f_BW+f_BSW+f_BNW-f_TW-f_TSW-f_TNW-f_BE-f_BSE-f_BNE+f_TE+f_TSE+f_TNE ) / (c1o1 + drho_NEB) - ((vx1_NEB*vx3_NEB))); - kxxMyyFromfcNEQ_NEB = -c3o2*omega *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_NEB) - ((vx1_NEB*vx1_NEB-vx2_NEB*vx2_NEB))); - kxxMzzFromfcNEQ_NEB = -c3o2*omega *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_NEB) - ((vx1_NEB*vx1_NEB-vx3_NEB*vx3_NEB))); - - ////////////////////////////////////////////////////////////////////////// - //interpolate - ////////////////////////////////////////////////////////////////////////// - a0 = (-kxxMyyFromfcNEQ_NEB - kxxMyyFromfcNEQ_NET + kxxMyyFromfcNEQ_NWB + kxxMyyFromfcNEQ_NWT - - kxxMyyFromfcNEQ_SEB - kxxMyyFromfcNEQ_SET + kxxMyyFromfcNEQ_SWB + kxxMyyFromfcNEQ_SWT - - kxxMzzFromfcNEQ_NEB - kxxMzzFromfcNEQ_NET + kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_NWT - - kxxMzzFromfcNEQ_SEB - kxxMzzFromfcNEQ_SET + kxxMzzFromfcNEQ_SWB + kxxMzzFromfcNEQ_SWT - - c2o1*kxyFromfcNEQ_NEB - c2o1*kxyFromfcNEQ_NET - c2o1*kxyFromfcNEQ_NWB - c2o1*kxyFromfcNEQ_NWT + - c2o1*kxyFromfcNEQ_SEB + c2o1*kxyFromfcNEQ_SET + c2o1*kxyFromfcNEQ_SWB + c2o1*kxyFromfcNEQ_SWT + - c2o1*kxzFromfcNEQ_NEB - c2o1*kxzFromfcNEQ_NET + c2o1*kxzFromfcNEQ_NWB - c2o1*kxzFromfcNEQ_NWT + - c2o1*kxzFromfcNEQ_SEB - c2o1*kxzFromfcNEQ_SET + c2o1*kxzFromfcNEQ_SWB - c2o1*kxzFromfcNEQ_SWT + - c8o1*vx1_NEB + c8o1*vx1_NET + c8o1*vx1_NWB + c8o1*vx1_NWT + c8o1*vx1_SEB + - c8o1*vx1_SET + c8o1*vx1_SWB + c8o1*vx1_SWT + c2o1*vx2_NEB + c2o1*vx2_NET - - c2o1*vx2_NWB - c2o1*vx2_NWT - c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB + - c2o1*vx2_SWT - c2o1*vx3_NEB + c2o1*vx3_NET + c2o1*vx3_NWB - c2o1*vx3_NWT - - c2o1*vx3_SEB + c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)/c64o1; - b0 = (c2o1*kxxMyyFromfcNEQ_NEB + c2o1*kxxMyyFromfcNEQ_NET + c2o1*kxxMyyFromfcNEQ_NWB + c2o1*kxxMyyFromfcNEQ_NWT - - c2o1*kxxMyyFromfcNEQ_SEB - c2o1*kxxMyyFromfcNEQ_SET - c2o1*kxxMyyFromfcNEQ_SWB - c2o1*kxxMyyFromfcNEQ_SWT - - kxxMzzFromfcNEQ_NEB - kxxMzzFromfcNEQ_NET - kxxMzzFromfcNEQ_NWB - kxxMzzFromfcNEQ_NWT + - kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_SET + kxxMzzFromfcNEQ_SWB + kxxMzzFromfcNEQ_SWT - - c2o1*kxyFromfcNEQ_NEB - c2o1*kxyFromfcNEQ_NET + c2o1*kxyFromfcNEQ_NWB + c2o1*kxyFromfcNEQ_NWT - - c2o1*kxyFromfcNEQ_SEB - c2o1*kxyFromfcNEQ_SET + c2o1*kxyFromfcNEQ_SWB + c2o1*kxyFromfcNEQ_SWT + - c2o1*kyzFromfcNEQ_NEB - c2o1*kyzFromfcNEQ_NET + c2o1*kyzFromfcNEQ_NWB - c2o1*kyzFromfcNEQ_NWT + - c2o1*kyzFromfcNEQ_SEB - c2o1*kyzFromfcNEQ_SET + c2o1*kyzFromfcNEQ_SWB - c2o1*kyzFromfcNEQ_SWT + - c2o1*vx1_NEB + c2o1*vx1_NET - c2o1*vx1_NWB - c2o1*vx1_NWT - - c2o1*vx1_SEB - c2o1*vx1_SET + c2o1*vx1_SWB + c2o1*vx1_SWT + - c8o1*vx2_NEB + c8o1*vx2_NET + c8o1*vx2_NWB + c8o1*vx2_NWT + - c8o1*vx2_SEB + c8o1*vx2_SET + c8o1*vx2_SWB + c8o1*vx2_SWT - - c2o1*vx3_NEB + c2o1*vx3_NET - c2o1*vx3_NWB + c2o1*vx3_NWT + - c2o1*vx3_SEB - c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)/c64o1; - - //b0 = ((eight*vx2_NEB + eight*vx2_SWT) + (eight*vx2_NET + eight*vx2_SWB) + (eight*vx2_NWB + eight*vx2_SET) + (eight*vx2_NWT + eight*vx2_SEB))/sixtyfour; - - c0 = (kxxMyyFromfcNEQ_NEB - kxxMyyFromfcNEQ_NET + kxxMyyFromfcNEQ_NWB - kxxMyyFromfcNEQ_NWT + - kxxMyyFromfcNEQ_SEB - kxxMyyFromfcNEQ_SET + kxxMyyFromfcNEQ_SWB - kxxMyyFromfcNEQ_SWT - - c2o1*kxxMzzFromfcNEQ_NEB + c2o1*kxxMzzFromfcNEQ_NET - c2o1*kxxMzzFromfcNEQ_NWB + c2o1*kxxMzzFromfcNEQ_NWT - - c2o1*kxxMzzFromfcNEQ_SEB + c2o1*kxxMzzFromfcNEQ_SET - c2o1*kxxMzzFromfcNEQ_SWB + c2o1*kxxMzzFromfcNEQ_SWT - - c2o1*kxzFromfcNEQ_NEB - c2o1*kxzFromfcNEQ_NET + c2o1*kxzFromfcNEQ_NWB + c2o1*kxzFromfcNEQ_NWT - - c2o1*kxzFromfcNEQ_SEB - c2o1*kxzFromfcNEQ_SET + c2o1*kxzFromfcNEQ_SWB + c2o1*kxzFromfcNEQ_SWT - - c2o1*kyzFromfcNEQ_NEB - c2o1*kyzFromfcNEQ_NET - c2o1*kyzFromfcNEQ_NWB - c2o1*kyzFromfcNEQ_NWT + - c2o1*kyzFromfcNEQ_SEB + c2o1*kyzFromfcNEQ_SET + c2o1*kyzFromfcNEQ_SWB + c2o1*kyzFromfcNEQ_SWT - - c2o1*vx1_NEB + c2o1*vx1_NET + c2o1*vx1_NWB - c2o1*vx1_NWT - - c2o1*vx1_SEB + c2o1*vx1_SET + c2o1*vx1_SWB - c2o1*vx1_SWT - - c2o1*vx2_NEB + c2o1*vx2_NET - c2o1*vx2_NWB + c2o1*vx2_NWT + - c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB - c2o1*vx2_SWT + - c8o1*vx3_NEB + c8o1*vx3_NET + c8o1*vx3_NWB + c8o1*vx3_NWT + - c8o1*vx3_SEB + c8o1*vx3_SET + c8o1*vx3_SWB + c8o1*vx3_SWT)/c64o1; - ax = (vx1_NEB + vx1_NET - vx1_NWB - vx1_NWT + vx1_SEB + vx1_SET - vx1_SWB - vx1_SWT)/c4o1; - bx = (vx2_NEB + vx2_NET - vx2_NWB - vx2_NWT + vx2_SEB + vx2_SET - vx2_SWB - vx2_SWT)/c4o1; - //bx = ((vx2_NEB - vx2_SWT) + (vx2_NET - vx2_SWB) + (vx2_SET - vx2_NWB) + (vx2_SEB - vx2_NWT))/four; - cx = (vx3_NEB + vx3_NET - vx3_NWB - vx3_NWT + vx3_SEB + vx3_SET - vx3_SWB - vx3_SWT)/c4o1; - axx= (kxxMyyFromfcNEQ_NEB + kxxMyyFromfcNEQ_NET - kxxMyyFromfcNEQ_NWB - kxxMyyFromfcNEQ_NWT + - kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_SET - kxxMyyFromfcNEQ_SWB - kxxMyyFromfcNEQ_SWT + - kxxMzzFromfcNEQ_NEB + kxxMzzFromfcNEQ_NET - kxxMzzFromfcNEQ_NWB - kxxMzzFromfcNEQ_NWT + - kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_SET - kxxMzzFromfcNEQ_SWB - kxxMzzFromfcNEQ_SWT + - c2o1*vx2_NEB + c2o1*vx2_NET - c2o1*vx2_NWB - c2o1*vx2_NWT - - c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB + c2o1*vx2_SWT - - c2o1*vx3_NEB + c2o1*vx3_NET + c2o1*vx3_NWB - c2o1*vx3_NWT - - c2o1*vx3_SEB + c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)/c16o1; - bxx= (kxyFromfcNEQ_NEB + kxyFromfcNEQ_NET - kxyFromfcNEQ_NWB - kxyFromfcNEQ_NWT + - kxyFromfcNEQ_SEB + kxyFromfcNEQ_SET - kxyFromfcNEQ_SWB - kxyFromfcNEQ_SWT - - c2o1*vx1_NEB - c2o1*vx1_NET + c2o1*vx1_NWB + c2o1*vx1_NWT + - c2o1*vx1_SEB + c2o1*vx1_SET - c2o1*vx1_SWB - c2o1*vx1_SWT)/c8o1; - cxx= (kxzFromfcNEQ_NEB + kxzFromfcNEQ_NET - kxzFromfcNEQ_NWB - kxzFromfcNEQ_NWT + - kxzFromfcNEQ_SEB + kxzFromfcNEQ_SET - kxzFromfcNEQ_SWB - kxzFromfcNEQ_SWT + - c2o1*vx1_NEB - c2o1*vx1_NET - c2o1*vx1_NWB + c2o1*vx1_NWT + - c2o1*vx1_SEB - c2o1*vx1_SET - c2o1*vx1_SWB + c2o1*vx1_SWT)/c8o1; - ay = (vx1_NEB + vx1_NET + vx1_NWB + vx1_NWT - vx1_SEB - vx1_SET - vx1_SWB - vx1_SWT)/c4o1; - by = (vx2_NEB + vx2_NET + vx2_NWB + vx2_NWT - vx2_SEB - vx2_SET - vx2_SWB - vx2_SWT)/c4o1; - cy = (vx3_NEB + vx3_NET + vx3_NWB + vx3_NWT - vx3_SEB - vx3_SET - vx3_SWB - vx3_SWT)/c4o1; - ayy= (kxyFromfcNEQ_NEB + kxyFromfcNEQ_NET + kxyFromfcNEQ_NWB + kxyFromfcNEQ_NWT - - kxyFromfcNEQ_SEB - kxyFromfcNEQ_SET - kxyFromfcNEQ_SWB - kxyFromfcNEQ_SWT - - c2o1*vx2_NEB - c2o1*vx2_NET + c2o1*vx2_NWB + c2o1*vx2_NWT + - c2o1*vx2_SEB + c2o1*vx2_SET - c2o1*vx2_SWB - c2o1*vx2_SWT)/c8o1; - byy= (-c2o1*kxxMyyFromfcNEQ_NEB - c2o1*kxxMyyFromfcNEQ_NET - c2o1*kxxMyyFromfcNEQ_NWB - c2o1*kxxMyyFromfcNEQ_NWT + - c2o1*kxxMyyFromfcNEQ_SEB + c2o1*kxxMyyFromfcNEQ_SET + c2o1*kxxMyyFromfcNEQ_SWB + c2o1*kxxMyyFromfcNEQ_SWT + - kxxMzzFromfcNEQ_NEB + kxxMzzFromfcNEQ_NET + kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_NWT - - kxxMzzFromfcNEQ_SEB - kxxMzzFromfcNEQ_SET - kxxMzzFromfcNEQ_SWB - kxxMzzFromfcNEQ_SWT + - c2o1*vx1_NEB + c2o1*vx1_NET - c2o1*vx1_NWB - c2o1*vx1_NWT - - c2o1*vx1_SEB - c2o1*vx1_SET + c2o1*vx1_SWB + c2o1*vx1_SWT - - c2o1*vx3_NEB + c2o1*vx3_NET - c2o1*vx3_NWB + c2o1*vx3_NWT + - c2o1*vx3_SEB - c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)/c16o1; - cyy= (kyzFromfcNEQ_NEB + kyzFromfcNEQ_NET + kyzFromfcNEQ_NWB + kyzFromfcNEQ_NWT - - kyzFromfcNEQ_SEB - kyzFromfcNEQ_SET - kyzFromfcNEQ_SWB - kyzFromfcNEQ_SWT + - c2o1*vx2_NEB - c2o1*vx2_NET + c2o1*vx2_NWB - c2o1*vx2_NWT - - c2o1*vx2_SEB + c2o1*vx2_SET - c2o1*vx2_SWB + c2o1*vx2_SWT)/c8o1; - az = (-vx1_NEB + vx1_NET - vx1_NWB + vx1_NWT - vx1_SEB + vx1_SET - vx1_SWB + vx1_SWT)/c4o1; - //bz = (-vx2_NEB + vx2_NET - vx2_NWB + vx2_NWT - vx2_SEB + vx2_SET - vx2_SWB + vx2_SWT)/four; - bz = ((vx2_SWT - vx2_NEB) + (vx2_NET - vx2_SWB) + (vx2_SET - vx2_NWB) + (vx2_NWT - vx2_SEB))/c4o1; - cz = (-vx3_NEB + vx3_NET - vx3_NWB + vx3_NWT - vx3_SEB + vx3_SET - vx3_SWB + vx3_SWT)/c4o1; - azz= (-kxzFromfcNEQ_NEB + kxzFromfcNEQ_NET - kxzFromfcNEQ_NWB + kxzFromfcNEQ_NWT - - kxzFromfcNEQ_SEB + kxzFromfcNEQ_SET - kxzFromfcNEQ_SWB + kxzFromfcNEQ_SWT + - c2o1*vx3_NEB - c2o1*vx3_NET - c2o1*vx3_NWB + c2o1*vx3_NWT + - c2o1*vx3_SEB - c2o1*vx3_SET - c2o1*vx3_SWB + c2o1*vx3_SWT)/c8o1; - bzz= (-kyzFromfcNEQ_NEB + kyzFromfcNEQ_NET - kyzFromfcNEQ_NWB + kyzFromfcNEQ_NWT - - kyzFromfcNEQ_SEB + kyzFromfcNEQ_SET - kyzFromfcNEQ_SWB + kyzFromfcNEQ_SWT + - c2o1*vx3_NEB - c2o1*vx3_NET + c2o1*vx3_NWB - c2o1*vx3_NWT - - c2o1*vx3_SEB + c2o1*vx3_SET - c2o1*vx3_SWB + c2o1*vx3_SWT)/c8o1; - czz= (-kxxMyyFromfcNEQ_NEB + kxxMyyFromfcNEQ_NET - kxxMyyFromfcNEQ_NWB + kxxMyyFromfcNEQ_NWT - - kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_SET - kxxMyyFromfcNEQ_SWB + kxxMyyFromfcNEQ_SWT + - c2o1*kxxMzzFromfcNEQ_NEB - c2o1*kxxMzzFromfcNEQ_NET + c2o1*kxxMzzFromfcNEQ_NWB - c2o1*kxxMzzFromfcNEQ_NWT + - c2o1*kxxMzzFromfcNEQ_SEB - c2o1*kxxMzzFromfcNEQ_SET + c2o1*kxxMzzFromfcNEQ_SWB - c2o1*kxxMzzFromfcNEQ_SWT - - c2o1*vx1_NEB + c2o1*vx1_NET + c2o1*vx1_NWB - c2o1*vx1_NWT - - c2o1*vx1_SEB + c2o1*vx1_SET + c2o1*vx1_SWB - c2o1*vx1_SWT - - c2o1*vx2_NEB + c2o1*vx2_NET - c2o1*vx2_NWB + c2o1*vx2_NWT + - c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB - c2o1*vx2_SWT)/c16o1; - axy= (vx1_NEB + vx1_NET - vx1_NWB - vx1_NWT - vx1_SEB - vx1_SET + vx1_SWB + vx1_SWT)/c2o1; - bxy= (vx2_NEB + vx2_NET - vx2_NWB - vx2_NWT - vx2_SEB - vx2_SET + vx2_SWB + vx2_SWT)/c2o1; - cxy= (vx3_NEB + vx3_NET - vx3_NWB - vx3_NWT - vx3_SEB - vx3_SET + vx3_SWB + vx3_SWT)/c2o1; - axz= (-vx1_NEB + vx1_NET + vx1_NWB - vx1_NWT - vx1_SEB + vx1_SET + vx1_SWB - vx1_SWT)/c2o1; - bxz= (-vx2_NEB + vx2_NET + vx2_NWB - vx2_NWT - vx2_SEB + vx2_SET + vx2_SWB - vx2_SWT)/c2o1; - cxz= (-vx3_NEB + vx3_NET + vx3_NWB - vx3_NWT - vx3_SEB + vx3_SET + vx3_SWB - vx3_SWT)/c2o1; - ayz= (-vx1_NEB + vx1_NET - vx1_NWB + vx1_NWT + vx1_SEB - vx1_SET + vx1_SWB - vx1_SWT)/c2o1; - byz= (-vx2_NEB + vx2_NET - vx2_NWB + vx2_NWT + vx2_SEB - vx2_SET + vx2_SWB - vx2_SWT)/c2o1; - cyz= (-vx3_NEB + vx3_NET - vx3_NWB + vx3_NWT + vx3_SEB - vx3_SET + vx3_SWB - vx3_SWT)/c2o1; - axyz=-vx1_NEB + vx1_NET + vx1_NWB - vx1_NWT + vx1_SEB - vx1_SET - vx1_SWB + vx1_SWT; - bxyz=-vx2_NEB + vx2_NET + vx2_NWB - vx2_NWT + vx2_SEB - vx2_SET - vx2_SWB + vx2_SWT; - cxyz=-vx3_NEB + vx3_NET + vx3_NWB - vx3_NWT + vx3_SEB - vx3_SET - vx3_SWB + vx3_SWT; - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //drho - // d0 = ( drho_NEB + drho_NET + drho_NWB + drho_NWT + drho_SEB + drho_SET + drho_SWB + drho_SWT) * c1o8; - // dx = ( drho_NEB + drho_NET - drho_NWB - drho_NWT + drho_SEB + drho_SET - drho_SWB - drho_SWT) * c1o4; - // dy = ( drho_NEB + drho_NET + drho_NWB + drho_NWT - drho_SEB - drho_SET - drho_SWB - drho_SWT) * c1o4; - // dz = (-drho_NEB + drho_NET - drho_NWB + drho_NWT - drho_SEB + drho_SET - drho_SWB + drho_SWT) * c1o4; - // dxy = ( drho_NEB + drho_NET - drho_NWB - drho_NWT - drho_SEB - drho_SET + drho_SWB + drho_SWT) * c1o2; - // dxz = (-drho_NEB + drho_NET + drho_NWB - drho_NWT - drho_SEB + drho_SET + drho_SWB - drho_SWT) * c1o2; - // dyz = (-drho_NEB + drho_NET - drho_NWB + drho_NWT + drho_SEB - drho_SET + drho_SWB - drho_SWT) * c1o2; - // dxyz = -drho_NEB + drho_NET + drho_NWB - drho_NWT + drho_SEB - drho_SET - drho_SWB + drho_SWT; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - unsigned int kTimeStepOld = kTimeStep - numberOfParticles; - real localX = coordParticleXlocal[kTimeStepOld]; - real localY = coordParticleYlocal[kTimeStepOld]; - real localZ = coordParticleZlocal[kTimeStepOld]; - - x = (localX * (real)(pow((double)c2o1, (double)level))) - c1o2; //-c1o4; + ///////////////////////////////////////////////////////////// + unsigned int kTimeStep = k + (timestep * numberOfParticles); + ///////////////////////////////////////////////////////////// + unsigned int kCellBaseID = cellBaseID[k]; + unsigned int BC000 = bcMatD[kCellBaseID]; + unsigned int BCx00 = bcMatD[neighborX[kCellBaseID]]; + unsigned int BC0y0 = bcMatD[neighborY[kCellBaseID]]; + unsigned int BC00z = bcMatD[neighborZ[kCellBaseID]]; + unsigned int BCxy0 = bcMatD[neighborY[neighborX[kCellBaseID]]]; + unsigned int BCx0z = bcMatD[neighborZ[neighborX[kCellBaseID]]]; + unsigned int BC0yz = bcMatD[neighborZ[neighborY[kCellBaseID]]]; + unsigned int BCxyz = bcMatD[neighborZ[neighborY[neighborX[kCellBaseID]]]]; + ///////////////////////////////////////////////////////////// + if( (BC000 == GEO_FLUID) || (BCx00 == GEO_FLUID) || (BC0y0 == GEO_FLUID) || (BC00z == GEO_FLUID) || + (BCxy0 == GEO_FLUID) || (BCx0z == GEO_FLUID) || (BC0yz == GEO_FLUID) || (BCxyz == GEO_FLUID) ) + { + if (isEvenTimestep==true) + { + feC = &DD[dP00 * numberOfLBnodes]; + fwC = &DD[dM00 * numberOfLBnodes]; + fnC = &DD[d0P0 * numberOfLBnodes]; + fsC = &DD[d0M0 * numberOfLBnodes]; + ftC = &DD[d00P * numberOfLBnodes]; + fbC = &DD[d00M * numberOfLBnodes]; + fneC = &DD[dPP0 * numberOfLBnodes]; + fswC = &DD[dMM0 * numberOfLBnodes]; + fseC = &DD[dPM0 * numberOfLBnodes]; + fnwC = &DD[dMP0 * numberOfLBnodes]; + fteC = &DD[dP0P * numberOfLBnodes]; + fbwC = &DD[dM0M * numberOfLBnodes]; + fbeC = &DD[dP0M * numberOfLBnodes]; + ftwC = &DD[dM0P * numberOfLBnodes]; + ftnC = &DD[d0PP * numberOfLBnodes]; + fbsC = &DD[d0MM * numberOfLBnodes]; + fbnC = &DD[d0PM * numberOfLBnodes]; + ftsC = &DD[d0MP * numberOfLBnodes]; + fzeroC = &DD[d000 * numberOfLBnodes]; + ftneC = &DD[dPPP * numberOfLBnodes]; + ftswC = &DD[dMMP * numberOfLBnodes]; + ftseC = &DD[dPMP * numberOfLBnodes]; + ftnwC = &DD[dMPP * numberOfLBnodes]; + fbneC = &DD[dPPM * numberOfLBnodes]; + fbswC = &DD[dMMM * numberOfLBnodes]; + fbseC = &DD[dPMM * numberOfLBnodes]; + fbnwC = &DD[dMPM * numberOfLBnodes]; + } + else + { + fwC = &DD[dP00 * numberOfLBnodes]; + feC = &DD[dM00 * numberOfLBnodes]; + fsC = &DD[d0P0 * numberOfLBnodes]; + fnC = &DD[d0M0 * numberOfLBnodes]; + fbC = &DD[d00P * numberOfLBnodes]; + ftC = &DD[d00M * numberOfLBnodes]; + fswC = &DD[dPP0 * numberOfLBnodes]; + fneC = &DD[dMM0 * numberOfLBnodes]; + fnwC = &DD[dPM0 * numberOfLBnodes]; + fseC = &DD[dMP0 * numberOfLBnodes]; + fbwC = &DD[dP0P * numberOfLBnodes]; + fteC = &DD[dM0M * numberOfLBnodes]; + ftwC = &DD[dP0M * numberOfLBnodes]; + fbeC = &DD[dM0P * numberOfLBnodes]; + fbsC = &DD[d0PP * numberOfLBnodes]; + ftnC = &DD[d0MM * numberOfLBnodes]; + ftsC = &DD[d0PM * numberOfLBnodes]; + fbnC = &DD[d0MP * numberOfLBnodes]; + fzeroC = &DD[d000 * numberOfLBnodes]; + fbswC = &DD[dPPP * numberOfLBnodes]; + fbneC = &DD[dMMP * numberOfLBnodes]; + fbnwC = &DD[dPMP * numberOfLBnodes]; + fbseC = &DD[dMPP * numberOfLBnodes]; + ftswC = &DD[dPPM * numberOfLBnodes]; + ftneC = &DD[dMMM * numberOfLBnodes]; + ftnwC = &DD[dPMM * numberOfLBnodes]; + ftseC = &DD[dMPM * numberOfLBnodes]; + } + + ////////////////////////////////////////////////////////////////////////// + //SWB// + ////////////////////////////////////////////////////////////////////////// + //index 0 + unsigned int k0zero= cellBaseID[k]; + unsigned int k0w = neighborX[k0zero]; + unsigned int k0s = neighborY[k0zero]; + unsigned int k0b = neighborZ[k0zero]; + unsigned int k0sw = neighborY[k0w]; + unsigned int k0bw = neighborZ[k0w]; + unsigned int k0bs = neighborZ[k0s]; + unsigned int k0bsw = neighborZ[k0sw]; + ////////////////////////////////////////////////////////////////////////// + //index + unsigned int kzero= k0zero; + unsigned int kw = k0w; + unsigned int ks = k0s; + unsigned int kb = k0b; + unsigned int ksw = k0sw; + unsigned int kbw = k0bw; + unsigned int kbs = k0bs; + unsigned int kbsw = k0bsw; + //////////////////////////////////////////////////////////////////////////////// + f_E = feC[kzero]; + f_W = fwC[kw]; + f_N = fnC[kzero]; + f_S = fsC[ks]; + f_T = ftC[kzero]; + f_B = fbC[kb]; + f_NE = fneC[kzero]; + f_SW = fswC[ksw]; + f_SE = fseC[ks]; + f_NW = fnwC[kw]; + f_TE = fteC[kzero]; + f_BW = fbwC[kbw]; + f_BE = fbeC[kb]; + f_TW = ftwC[kw]; + f_TN = ftnC[kzero]; + f_BS = fbsC[kbs]; + f_BN = fbnC[kb]; + f_TS = ftsC[ks]; + f_ZERO = fzeroC[kzero]; + f_TNE = ftneC[kzero]; + f_TSW = ftswC[ksw]; + f_TSE = ftseC[ks]; + f_TNW = ftnwC[kw]; + f_BNE = fbneC[kb]; + f_BSW = fbswC[kbsw]; + f_BSE = fbseC[kbs]; + f_BNW = fbnwC[kbw]; + + drho_SWB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; + vx1_SWB = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_SWB); + vx2_SWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SWB); + vx3_SWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SWB); + + kxyFromfcNEQ_SWB = -c3o1*omega*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_SWB) - ((vx1_SWB*vx2_SWB))); + kyzFromfcNEQ_SWB = -c3o1*omega*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_SWB) - ((vx2_SWB*vx3_SWB))); + kxzFromfcNEQ_SWB = -c3o1*omega*((f_BW+f_BSW+f_BNW-f_TW-f_TSW-f_TNW-f_BE-f_BSE-f_BNE+f_TE+f_TSE+f_TNE ) / (c1o1 + drho_SWB) - ((vx1_SWB*vx3_SWB))); + kxxMyyFromfcNEQ_SWB = -c3o2*omega *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_SWB) - ((vx1_SWB*vx1_SWB-vx2_SWB*vx2_SWB))); + kxxMzzFromfcNEQ_SWB = -c3o2*omega *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_SWB) - ((vx1_SWB*vx1_SWB-vx3_SWB*vx3_SWB))); + + ////////////////////////////////////////////////////////////////////////// + //SWT// + ////////////////////////////////////////////////////////////////////////// + //index + kzero= kb; + kw = kbw; + ks = kbs; + kb = neighborZ[kb]; + ksw = kbsw; + kbw = neighborZ[kbw]; + kbs = neighborZ[kbs]; + kbsw = neighborZ[kbsw]; + //////////////////////////////////////////////////////////////////////////////// + f_E = feC[kzero]; + f_W = fwC[kw]; + f_N = fnC[kzero]; + f_S = fsC[ks]; + f_T = ftC[kzero]; + f_B = fbC[kb]; + f_NE = fneC[kzero]; + f_SW = fswC[ksw]; + f_SE = fseC[ks]; + f_NW = fnwC[kw]; + f_TE = fteC[kzero]; + f_BW = fbwC[kbw]; + f_BE = fbeC[kb]; + f_TW = ftwC[kw]; + f_TN = ftnC[kzero]; + f_BS = fbsC[kbs]; + f_BN = fbnC[kb]; + f_TS = ftsC[ks]; + f_ZERO = fzeroC[kzero]; + f_TNE = ftneC[kzero]; + f_TSW = ftswC[ksw]; + f_TSE = ftseC[ks]; + f_TNW = ftnwC[kw]; + f_BNE = fbneC[kb]; + f_BSW = fbswC[kbsw]; + f_BSE = fbseC[kbs]; + f_BNW = fbnwC[kbw]; + + drho_SWT = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; + vx1_SWT = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_SWT); + vx2_SWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SWT); + vx3_SWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SWT); + + kxyFromfcNEQ_SWT = -c3o1*omega*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_SWT) - ((vx1_SWT*vx2_SWT))); + kyzFromfcNEQ_SWT = -c3o1*omega*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_SWT) - ((vx2_SWT*vx3_SWT))); + kxzFromfcNEQ_SWT = -c3o1*omega*((f_BW+f_BSW+f_BNW-f_TW-f_TSW-f_TNW-f_BE-f_BSE-f_BNE+f_TE+f_TSE+f_TNE ) / (c1o1 + drho_SWT) - ((vx1_SWT*vx3_SWT))); + kxxMyyFromfcNEQ_SWT = -c3o2*omega *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_SWT) - ((vx1_SWT*vx1_SWT-vx2_SWT*vx2_SWT))); + kxxMzzFromfcNEQ_SWT = -c3o2*omega *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_SWT) - ((vx1_SWT*vx1_SWT-vx3_SWT*vx3_SWT))); + + ////////////////////////////////////////////////////////////////////////// + //SET// + ////////////////////////////////////////////////////////////////////////// + //index + kzero= kw; + kw = neighborX[kw]; + ks = ksw; + kb = kbw; + ksw = neighborX[ksw]; + kbw = neighborX[kbw]; + kbs = kbsw; + kbsw = neighborX[kbsw]; + //////////////////////////////////////////////////////////////////////////////// + f_E = feC[kzero]; + f_W = fwC[kw]; + f_N = fnC[kzero]; + f_S = fsC[ks]; + f_T = ftC[kzero]; + f_B = fbC[kb]; + f_NE = fneC[kzero]; + f_SW = fswC[ksw]; + f_SE = fseC[ks]; + f_NW = fnwC[kw]; + f_TE = fteC[kzero]; + f_BW = fbwC[kbw]; + f_BE = fbeC[kb]; + f_TW = ftwC[kw]; + f_TN = ftnC[kzero]; + f_BS = fbsC[kbs]; + f_BN = fbnC[kb]; + f_TS = ftsC[ks]; + f_ZERO = fzeroC[kzero]; + f_TNE = ftneC[kzero]; + f_TSW = ftswC[ksw]; + f_TSE = ftseC[ks]; + f_TNW = ftnwC[kw]; + f_BNE = fbneC[kb]; + f_BSW = fbswC[kbsw]; + f_BSE = fbseC[kbs]; + f_BNW = fbnwC[kbw]; + + drho_SET = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; + vx1_SET = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_SET); + vx2_SET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SET); + vx3_SET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SET); + + kxyFromfcNEQ_SET = -c3o1*omega*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_SET) - ((vx1_SET*vx2_SET))); + kyzFromfcNEQ_SET = -c3o1*omega*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_SET) - ((vx2_SET*vx3_SET))); + kxzFromfcNEQ_SET = -c3o1*omega*((f_BW+f_BSW+f_BNW-f_TW-f_TSW-f_TNW-f_BE-f_BSE-f_BNE+f_TE+f_TSE+f_TNE ) / (c1o1 + drho_SET) - ((vx1_SET*vx3_SET))); + kxxMyyFromfcNEQ_SET = -c3o2*omega *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_SET) - ((vx1_SET*vx1_SET-vx2_SET*vx2_SET))); + kxxMzzFromfcNEQ_SET = -c3o2*omega *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_SET) - ((vx1_SET*vx1_SET-vx3_SET*vx3_SET))); + + ////////////////////////////////////////////////////////////////////////// + //SEB// + ////////////////////////////////////////////////////////////////////////// + //index + kb = kzero; + kbw = kw; + kbs = ks; + kbsw = ksw; + kzero= k0w; + kw = neighborX[k0w]; + ks = k0sw; + ksw = neighborX[k0sw]; + //////////////////////////////////////////////////////////////////////////////// + f_E = feC[kzero]; + f_W = fwC[kw]; + f_N = fnC[kzero]; + f_S = fsC[ks]; + f_T = ftC[kzero]; + f_B = fbC[kb]; + f_NE = fneC[kzero]; + f_SW = fswC[ksw]; + f_SE = fseC[ks]; + f_NW = fnwC[kw]; + f_TE = fteC[kzero]; + f_BW = fbwC[kbw]; + f_BE = fbeC[kb]; + f_TW = ftwC[kw]; + f_TN = ftnC[kzero]; + f_BS = fbsC[kbs]; + f_BN = fbnC[kb]; + f_TS = ftsC[ks]; + f_ZERO = fzeroC[kzero]; + f_TNE = ftneC[kzero]; + f_TSW = ftswC[ksw]; + f_TSE = ftseC[ks]; + f_TNW = ftnwC[kw]; + f_BNE = fbneC[kb]; + f_BSW = fbswC[kbsw]; + f_BSE = fbseC[kbs]; + f_BNW = fbnwC[kbw]; + + drho_SEB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; + vx1_SEB = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_SEB); + vx2_SEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_SEB); + vx3_SEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_SEB); + + kxyFromfcNEQ_SEB = -c3o1*omega*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_SEB) - ((vx1_SEB*vx2_SEB))); + kyzFromfcNEQ_SEB = -c3o1*omega*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_SEB) - ((vx2_SEB*vx3_SEB))); + kxzFromfcNEQ_SEB = -c3o1*omega*((f_BW+f_BSW+f_BNW-f_TW-f_TSW-f_TNW-f_BE-f_BSE-f_BNE+f_TE+f_TSE+f_TNE ) / (c1o1 + drho_SEB) - ((vx1_SEB*vx3_SEB))); + kxxMyyFromfcNEQ_SEB = -c3o2*omega *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_SEB) - ((vx1_SEB*vx1_SEB-vx2_SEB*vx2_SEB))); + kxxMzzFromfcNEQ_SEB = -c3o2*omega *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_SEB) - ((vx1_SEB*vx1_SEB-vx3_SEB*vx3_SEB))); + + ////////////////////////////////////////////////////////////////////////// + //NWB// + ////////////////////////////////////////////////////////////////////////// + //index 0 + k0zero= k0s; + k0w = k0sw; + k0s = neighborY[k0s]; + k0b = k0bs; + k0sw = neighborY[k0sw]; + k0bw = k0bsw; + k0bs = neighborY[k0bs]; + k0bsw = neighborY[k0bsw]; + ////////////////////////////////////////////////////////////////////////// + //index + kzero= k0zero; + kw = k0w; + ks = k0s; + kb = k0b; + ksw = k0sw; + kbw = k0bw; + kbs = k0bs; + kbsw = k0bsw; + //////////////////////////////////////////////////////////////////////////////// + f_E = feC[kzero]; + f_W = fwC[kw]; + f_N = fnC[kzero]; + f_S = fsC[ks]; + f_T = ftC[kzero]; + f_B = fbC[kb]; + f_NE = fneC[kzero]; + f_SW = fswC[ksw]; + f_SE = fseC[ks]; + f_NW = fnwC[kw]; + f_TE = fteC[kzero]; + f_BW = fbwC[kbw]; + f_BE = fbeC[kb]; + f_TW = ftwC[kw]; + f_TN = ftnC[kzero]; + f_BS = fbsC[kbs]; + f_BN = fbnC[kb]; + f_TS = ftsC[ks]; + f_ZERO = fzeroC[kzero]; + f_TNE = ftneC[kzero]; + f_TSW = ftswC[ksw]; + f_TSE = ftseC[ks]; + f_TNW = ftnwC[kw]; + f_BNE = fbneC[kb]; + f_BSW = fbswC[kbsw]; + f_BSE = fbseC[kbs]; + f_BNW = fbnwC[kbw]; + + drho_NWB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; + vx1_NWB = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_NWB); + vx2_NWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NWB); + vx3_NWB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NWB); + + kxyFromfcNEQ_NWB = -c3o1*omega*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_NWB) - ((vx1_NWB*vx2_NWB))); + kyzFromfcNEQ_NWB = -c3o1*omega*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_NWB) - ((vx2_NWB*vx3_NWB))); + kxzFromfcNEQ_NWB = -c3o1*omega*((f_BW+f_BSW+f_BNW-f_TW-f_TSW-f_TNW-f_BE-f_BSE-f_BNE+f_TE+f_TSE+f_TNE ) / (c1o1 + drho_NWB) - ((vx1_NWB*vx3_NWB))); + kxxMyyFromfcNEQ_NWB = -c3o2*omega *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_NWB) - ((vx1_NWB*vx1_NWB-vx2_NWB*vx2_NWB))); + kxxMzzFromfcNEQ_NWB = -c3o2*omega *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_NWB) - ((vx1_NWB*vx1_NWB-vx3_NWB*vx3_NWB))); + + ////////////////////////////////////////////////////////////////////////// + //NWT// + ////////////////////////////////////////////////////////////////////////// + //index + kzero= kb; + kw = kbw; + ks = kbs; + kb = neighborZ[kb]; + ksw = kbsw; + kbw = neighborZ[kbw]; + kbs = neighborZ[kbs]; + kbsw = neighborZ[kbsw]; + //////////////////////////////////////////////////////////////////////////////// + f_E = feC[kzero]; + f_W = fwC[kw]; + f_N = fnC[kzero]; + f_S = fsC[ks]; + f_T = ftC[kzero]; + f_B = fbC[kb]; + f_NE = fneC[kzero]; + f_SW = fswC[ksw]; + f_SE = fseC[ks]; + f_NW = fnwC[kw]; + f_TE = fteC[kzero]; + f_BW = fbwC[kbw]; + f_BE = fbeC[kb]; + f_TW = ftwC[kw]; + f_TN = ftnC[kzero]; + f_BS = fbsC[kbs]; + f_BN = fbnC[kb]; + f_TS = ftsC[ks]; + f_ZERO = fzeroC[kzero]; + f_TNE = ftneC[kzero]; + f_TSW = ftswC[ksw]; + f_TSE = ftseC[ks]; + f_TNW = ftnwC[kw]; + f_BNE = fbneC[kb]; + f_BSW = fbswC[kbsw]; + f_BSE = fbseC[kbs]; + f_BNW = fbnwC[kbw]; + + drho_NWT = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; + vx1_NWT = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_NWT); + vx2_NWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NWT); + vx3_NWT = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NWT); + + kxyFromfcNEQ_NWT = -c3o1*omega*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_NWT) - ((vx1_NWT*vx2_NWT))); + kyzFromfcNEQ_NWT = -c3o1*omega*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_NWT) - ((vx2_NWT*vx3_NWT))); + kxzFromfcNEQ_NWT = -c3o1*omega*((f_BW+f_BSW+f_BNW-f_TW-f_TSW-f_TNW-f_BE-f_BSE-f_BNE+f_TE+f_TSE+f_TNE ) / (c1o1 + drho_NWT) - ((vx1_NWT*vx3_NWT))); + kxxMyyFromfcNEQ_NWT = -c3o2*omega *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_NWT) - ((vx1_NWT*vx1_NWT-vx2_NWT*vx2_NWT))); + kxxMzzFromfcNEQ_NWT = -c3o2*omega *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_NWT) - ((vx1_NWT*vx1_NWT-vx3_NWT*vx3_NWT))); + + ////////////////////////////////////////////////////////////////////////// + //NET// + ////////////////////////////////////////////////////////////////////////// + //index + kzero= kw; + kw = neighborX[kw]; + ks = ksw; + kb = kbw; + ksw = neighborX[ksw]; + kbw = neighborX[kbw]; + kbs = kbsw; + kbsw = neighborX[kbsw]; + //////////////////////////////////////////////////////////////////////////////// + f_E = feC[kzero]; + f_W = fwC[kw]; + f_N = fnC[kzero]; + f_S = fsC[ks]; + f_T = ftC[kzero]; + f_B = fbC[kb]; + f_NE = fneC[kzero]; + f_SW = fswC[ksw]; + f_SE = fseC[ks]; + f_NW = fnwC[kw]; + f_TE = fteC[kzero]; + f_BW = fbwC[kbw]; + f_BE = fbeC[kb]; + f_TW = ftwC[kw]; + f_TN = ftnC[kzero]; + f_BS = fbsC[kbs]; + f_BN = fbnC[kb]; + f_TS = ftsC[ks]; + f_ZERO = fzeroC[kzero]; + f_TNE = ftneC[kzero]; + f_TSW = ftswC[ksw]; + f_TSE = ftseC[ks]; + f_TNW = ftnwC[kw]; + f_BNE = fbneC[kb]; + f_BSW = fbswC[kbsw]; + f_BSE = fbseC[kbs]; + f_BNW = fbnwC[kbw]; + + drho_NET = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; + vx1_NET = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_NET); + vx2_NET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NET); + vx3_NET = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NET); + + kxyFromfcNEQ_NET = -c3o1*omega*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_NET) - ((vx1_NET*vx2_NET))); + kyzFromfcNEQ_NET = -c3o1*omega*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_NET) - ((vx2_NET*vx3_NET))); + kxzFromfcNEQ_NET = -c3o1*omega*((f_BW+f_BSW+f_BNW-f_TW-f_TSW-f_TNW-f_BE-f_BSE-f_BNE+f_TE+f_TSE+f_TNE ) / (c1o1 + drho_NET) - ((vx1_NET*vx3_NET))); + kxxMyyFromfcNEQ_NET = -c3o2*omega *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_NET) - ((vx1_NET*vx1_NET-vx2_NET*vx2_NET))); + kxxMzzFromfcNEQ_NET = -c3o2*omega *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_NET) - ((vx1_NET*vx1_NET-vx3_NET*vx3_NET))); + + ////////////////////////////////////////////////////////////////////////// + //NEB// + ////////////////////////////////////////////////////////////////////////// + //index + kb = kzero; + kbw = kw; + kbs = ks; + kbsw = ksw; + kzero= k0w; + kw = neighborX[k0w]; + ks = k0sw; + ksw = neighborX[k0sw]; + //////////////////////////////////////////////////////////////////////////////// + f_E = feC[kzero]; + f_W = fwC[kw]; + f_N = fnC[kzero]; + f_S = fsC[ks]; + f_T = ftC[kzero]; + f_B = fbC[kb]; + f_NE = fneC[kzero]; + f_SW = fswC[ksw]; + f_SE = fseC[ks]; + f_NW = fnwC[kw]; + f_TE = fteC[kzero]; + f_BW = fbwC[kbw]; + f_BE = fbeC[kb]; + f_TW = ftwC[kw]; + f_TN = ftnC[kzero]; + f_BS = fbsC[kbs]; + f_BN = fbnC[kb]; + f_TS = ftsC[ks]; + f_ZERO = fzeroC[kzero]; + f_TNE = ftneC[kzero]; + f_TSW = ftswC[ksw]; + f_TSE = ftseC[ks]; + f_TNW = ftnwC[kw]; + f_BNE = fbneC[kb]; + f_BSW = fbswC[kbsw]; + f_BSE = fbseC[kbs]; + f_BNW = fbnwC[kbw]; + + drho_NEB = f_E+f_W+f_N+f_S+f_T+f_B+f_NE+f_SW+f_SE+f_NW+f_TE+f_BW+f_BE+f_TW+f_TN+f_BS+f_BN+f_TS+f_ZERO+f_TNE+f_TSW+f_TSE+f_TNW+f_BNE+f_BSW+f_BSE+f_BNW; + vx1_NEB = (((f_TNE-f_BSW)+(f_TSE-f_BNW)+(f_BNE-f_TSW)+(f_BSE-f_TNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W))/(c1o1 + drho_NEB); + vx2_NEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S))/(c1o1 + drho_NEB); + vx3_NEB = (((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSE-f_BNW)+(f_TSW-f_BNE)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B))/(c1o1 + drho_NEB); + + kxyFromfcNEQ_NEB = -c3o1*omega*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho_NEB) - ((vx1_NEB*vx2_NEB))); + kyzFromfcNEQ_NEB = -c3o1*omega*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho_NEB) - ((vx2_NEB*vx3_NEB))); + kxzFromfcNEQ_NEB = -c3o1*omega*((f_BW+f_BSW+f_BNW-f_TW-f_TSW-f_TNW-f_BE-f_BSE-f_BNE+f_TE+f_TSE+f_TNE ) / (c1o1 + drho_NEB) - ((vx1_NEB*vx3_NEB))); + kxxMyyFromfcNEQ_NEB = -c3o2*omega *((f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE ) / (c1o1 + drho_NEB) - ((vx1_NEB*vx1_NEB-vx2_NEB*vx2_NEB))); + kxxMzzFromfcNEQ_NEB = -c3o2*omega *((f_SW+f_W+f_NW-f_BS-f_TS-f_B-f_T-f_BN-f_TN+f_SE+f_E+f_NE ) / (c1o1 + drho_NEB) - ((vx1_NEB*vx1_NEB-vx3_NEB*vx3_NEB))); + + ////////////////////////////////////////////////////////////////////////// + //interpolate + ////////////////////////////////////////////////////////////////////////// + a0 = (-kxxMyyFromfcNEQ_NEB - kxxMyyFromfcNEQ_NET + kxxMyyFromfcNEQ_NWB + kxxMyyFromfcNEQ_NWT - + kxxMyyFromfcNEQ_SEB - kxxMyyFromfcNEQ_SET + kxxMyyFromfcNEQ_SWB + kxxMyyFromfcNEQ_SWT - + kxxMzzFromfcNEQ_NEB - kxxMzzFromfcNEQ_NET + kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_NWT - + kxxMzzFromfcNEQ_SEB - kxxMzzFromfcNEQ_SET + kxxMzzFromfcNEQ_SWB + kxxMzzFromfcNEQ_SWT - + c2o1*kxyFromfcNEQ_NEB - c2o1*kxyFromfcNEQ_NET - c2o1*kxyFromfcNEQ_NWB - c2o1*kxyFromfcNEQ_NWT + + c2o1*kxyFromfcNEQ_SEB + c2o1*kxyFromfcNEQ_SET + c2o1*kxyFromfcNEQ_SWB + c2o1*kxyFromfcNEQ_SWT + + c2o1*kxzFromfcNEQ_NEB - c2o1*kxzFromfcNEQ_NET + c2o1*kxzFromfcNEQ_NWB - c2o1*kxzFromfcNEQ_NWT + + c2o1*kxzFromfcNEQ_SEB - c2o1*kxzFromfcNEQ_SET + c2o1*kxzFromfcNEQ_SWB - c2o1*kxzFromfcNEQ_SWT + + c8o1*vx1_NEB + c8o1*vx1_NET + c8o1*vx1_NWB + c8o1*vx1_NWT + c8o1*vx1_SEB + + c8o1*vx1_SET + c8o1*vx1_SWB + c8o1*vx1_SWT + c2o1*vx2_NEB + c2o1*vx2_NET - + c2o1*vx2_NWB - c2o1*vx2_NWT - c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB + + c2o1*vx2_SWT - c2o1*vx3_NEB + c2o1*vx3_NET + c2o1*vx3_NWB - c2o1*vx3_NWT - + c2o1*vx3_SEB + c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)/c64o1; + b0 = (c2o1*kxxMyyFromfcNEQ_NEB + c2o1*kxxMyyFromfcNEQ_NET + c2o1*kxxMyyFromfcNEQ_NWB + c2o1*kxxMyyFromfcNEQ_NWT - + c2o1*kxxMyyFromfcNEQ_SEB - c2o1*kxxMyyFromfcNEQ_SET - c2o1*kxxMyyFromfcNEQ_SWB - c2o1*kxxMyyFromfcNEQ_SWT - + kxxMzzFromfcNEQ_NEB - kxxMzzFromfcNEQ_NET - kxxMzzFromfcNEQ_NWB - kxxMzzFromfcNEQ_NWT + + kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_SET + kxxMzzFromfcNEQ_SWB + kxxMzzFromfcNEQ_SWT - + c2o1*kxyFromfcNEQ_NEB - c2o1*kxyFromfcNEQ_NET + c2o1*kxyFromfcNEQ_NWB + c2o1*kxyFromfcNEQ_NWT - + c2o1*kxyFromfcNEQ_SEB - c2o1*kxyFromfcNEQ_SET + c2o1*kxyFromfcNEQ_SWB + c2o1*kxyFromfcNEQ_SWT + + c2o1*kyzFromfcNEQ_NEB - c2o1*kyzFromfcNEQ_NET + c2o1*kyzFromfcNEQ_NWB - c2o1*kyzFromfcNEQ_NWT + + c2o1*kyzFromfcNEQ_SEB - c2o1*kyzFromfcNEQ_SET + c2o1*kyzFromfcNEQ_SWB - c2o1*kyzFromfcNEQ_SWT + + c2o1*vx1_NEB + c2o1*vx1_NET - c2o1*vx1_NWB - c2o1*vx1_NWT - + c2o1*vx1_SEB - c2o1*vx1_SET + c2o1*vx1_SWB + c2o1*vx1_SWT + + c8o1*vx2_NEB + c8o1*vx2_NET + c8o1*vx2_NWB + c8o1*vx2_NWT + + c8o1*vx2_SEB + c8o1*vx2_SET + c8o1*vx2_SWB + c8o1*vx2_SWT - + c2o1*vx3_NEB + c2o1*vx3_NET - c2o1*vx3_NWB + c2o1*vx3_NWT + + c2o1*vx3_SEB - c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)/c64o1; + + //b0 = ((eight*vx2_NEB + eight*vx2_SWT) + (eight*vx2_NET + eight*vx2_SWB) + (eight*vx2_NWB + eight*vx2_SET) + (eight*vx2_NWT + eight*vx2_SEB))/sixtyfour; + + c0 = (kxxMyyFromfcNEQ_NEB - kxxMyyFromfcNEQ_NET + kxxMyyFromfcNEQ_NWB - kxxMyyFromfcNEQ_NWT + + kxxMyyFromfcNEQ_SEB - kxxMyyFromfcNEQ_SET + kxxMyyFromfcNEQ_SWB - kxxMyyFromfcNEQ_SWT - + c2o1*kxxMzzFromfcNEQ_NEB + c2o1*kxxMzzFromfcNEQ_NET - c2o1*kxxMzzFromfcNEQ_NWB + c2o1*kxxMzzFromfcNEQ_NWT - + c2o1*kxxMzzFromfcNEQ_SEB + c2o1*kxxMzzFromfcNEQ_SET - c2o1*kxxMzzFromfcNEQ_SWB + c2o1*kxxMzzFromfcNEQ_SWT - + c2o1*kxzFromfcNEQ_NEB - c2o1*kxzFromfcNEQ_NET + c2o1*kxzFromfcNEQ_NWB + c2o1*kxzFromfcNEQ_NWT - + c2o1*kxzFromfcNEQ_SEB - c2o1*kxzFromfcNEQ_SET + c2o1*kxzFromfcNEQ_SWB + c2o1*kxzFromfcNEQ_SWT - + c2o1*kyzFromfcNEQ_NEB - c2o1*kyzFromfcNEQ_NET - c2o1*kyzFromfcNEQ_NWB - c2o1*kyzFromfcNEQ_NWT + + c2o1*kyzFromfcNEQ_SEB + c2o1*kyzFromfcNEQ_SET + c2o1*kyzFromfcNEQ_SWB + c2o1*kyzFromfcNEQ_SWT - + c2o1*vx1_NEB + c2o1*vx1_NET + c2o1*vx1_NWB - c2o1*vx1_NWT - + c2o1*vx1_SEB + c2o1*vx1_SET + c2o1*vx1_SWB - c2o1*vx1_SWT - + c2o1*vx2_NEB + c2o1*vx2_NET - c2o1*vx2_NWB + c2o1*vx2_NWT + + c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB - c2o1*vx2_SWT + + c8o1*vx3_NEB + c8o1*vx3_NET + c8o1*vx3_NWB + c8o1*vx3_NWT + + c8o1*vx3_SEB + c8o1*vx3_SET + c8o1*vx3_SWB + c8o1*vx3_SWT)/c64o1; + ax = (vx1_NEB + vx1_NET - vx1_NWB - vx1_NWT + vx1_SEB + vx1_SET - vx1_SWB - vx1_SWT)/c4o1; + bx = (vx2_NEB + vx2_NET - vx2_NWB - vx2_NWT + vx2_SEB + vx2_SET - vx2_SWB - vx2_SWT)/c4o1; + //bx = ((vx2_NEB - vx2_SWT) + (vx2_NET - vx2_SWB) + (vx2_SET - vx2_NWB) + (vx2_SEB - vx2_NWT))/four; + cx = (vx3_NEB + vx3_NET - vx3_NWB - vx3_NWT + vx3_SEB + vx3_SET - vx3_SWB - vx3_SWT)/c4o1; + axx= (kxxMyyFromfcNEQ_NEB + kxxMyyFromfcNEQ_NET - kxxMyyFromfcNEQ_NWB - kxxMyyFromfcNEQ_NWT + + kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_SET - kxxMyyFromfcNEQ_SWB - kxxMyyFromfcNEQ_SWT + + kxxMzzFromfcNEQ_NEB + kxxMzzFromfcNEQ_NET - kxxMzzFromfcNEQ_NWB - kxxMzzFromfcNEQ_NWT + + kxxMzzFromfcNEQ_SEB + kxxMzzFromfcNEQ_SET - kxxMzzFromfcNEQ_SWB - kxxMzzFromfcNEQ_SWT + + c2o1*vx2_NEB + c2o1*vx2_NET - c2o1*vx2_NWB - c2o1*vx2_NWT - + c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB + c2o1*vx2_SWT - + c2o1*vx3_NEB + c2o1*vx3_NET + c2o1*vx3_NWB - c2o1*vx3_NWT - + c2o1*vx3_SEB + c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)/c16o1; + bxx= (kxyFromfcNEQ_NEB + kxyFromfcNEQ_NET - kxyFromfcNEQ_NWB - kxyFromfcNEQ_NWT + + kxyFromfcNEQ_SEB + kxyFromfcNEQ_SET - kxyFromfcNEQ_SWB - kxyFromfcNEQ_SWT - + c2o1*vx1_NEB - c2o1*vx1_NET + c2o1*vx1_NWB + c2o1*vx1_NWT + + c2o1*vx1_SEB + c2o1*vx1_SET - c2o1*vx1_SWB - c2o1*vx1_SWT)/c8o1; + cxx= (kxzFromfcNEQ_NEB + kxzFromfcNEQ_NET - kxzFromfcNEQ_NWB - kxzFromfcNEQ_NWT + + kxzFromfcNEQ_SEB + kxzFromfcNEQ_SET - kxzFromfcNEQ_SWB - kxzFromfcNEQ_SWT + + c2o1*vx1_NEB - c2o1*vx1_NET - c2o1*vx1_NWB + c2o1*vx1_NWT + + c2o1*vx1_SEB - c2o1*vx1_SET - c2o1*vx1_SWB + c2o1*vx1_SWT)/c8o1; + ay = (vx1_NEB + vx1_NET + vx1_NWB + vx1_NWT - vx1_SEB - vx1_SET - vx1_SWB - vx1_SWT)/c4o1; + by = (vx2_NEB + vx2_NET + vx2_NWB + vx2_NWT - vx2_SEB - vx2_SET - vx2_SWB - vx2_SWT)/c4o1; + cy = (vx3_NEB + vx3_NET + vx3_NWB + vx3_NWT - vx3_SEB - vx3_SET - vx3_SWB - vx3_SWT)/c4o1; + ayy= (kxyFromfcNEQ_NEB + kxyFromfcNEQ_NET + kxyFromfcNEQ_NWB + kxyFromfcNEQ_NWT - + kxyFromfcNEQ_SEB - kxyFromfcNEQ_SET - kxyFromfcNEQ_SWB - kxyFromfcNEQ_SWT - + c2o1*vx2_NEB - c2o1*vx2_NET + c2o1*vx2_NWB + c2o1*vx2_NWT + + c2o1*vx2_SEB + c2o1*vx2_SET - c2o1*vx2_SWB - c2o1*vx2_SWT)/c8o1; + byy= (-c2o1*kxxMyyFromfcNEQ_NEB - c2o1*kxxMyyFromfcNEQ_NET - c2o1*kxxMyyFromfcNEQ_NWB - c2o1*kxxMyyFromfcNEQ_NWT + + c2o1*kxxMyyFromfcNEQ_SEB + c2o1*kxxMyyFromfcNEQ_SET + c2o1*kxxMyyFromfcNEQ_SWB + c2o1*kxxMyyFromfcNEQ_SWT + + kxxMzzFromfcNEQ_NEB + kxxMzzFromfcNEQ_NET + kxxMzzFromfcNEQ_NWB + kxxMzzFromfcNEQ_NWT - + kxxMzzFromfcNEQ_SEB - kxxMzzFromfcNEQ_SET - kxxMzzFromfcNEQ_SWB - kxxMzzFromfcNEQ_SWT + + c2o1*vx1_NEB + c2o1*vx1_NET - c2o1*vx1_NWB - c2o1*vx1_NWT - + c2o1*vx1_SEB - c2o1*vx1_SET + c2o1*vx1_SWB + c2o1*vx1_SWT - + c2o1*vx3_NEB + c2o1*vx3_NET - c2o1*vx3_NWB + c2o1*vx3_NWT + + c2o1*vx3_SEB - c2o1*vx3_SET + c2o1*vx3_SWB - c2o1*vx3_SWT)/c16o1; + cyy= (kyzFromfcNEQ_NEB + kyzFromfcNEQ_NET + kyzFromfcNEQ_NWB + kyzFromfcNEQ_NWT - + kyzFromfcNEQ_SEB - kyzFromfcNEQ_SET - kyzFromfcNEQ_SWB - kyzFromfcNEQ_SWT + + c2o1*vx2_NEB - c2o1*vx2_NET + c2o1*vx2_NWB - c2o1*vx2_NWT - + c2o1*vx2_SEB + c2o1*vx2_SET - c2o1*vx2_SWB + c2o1*vx2_SWT)/c8o1; + az = (-vx1_NEB + vx1_NET - vx1_NWB + vx1_NWT - vx1_SEB + vx1_SET - vx1_SWB + vx1_SWT)/c4o1; + //bz = (-vx2_NEB + vx2_NET - vx2_NWB + vx2_NWT - vx2_SEB + vx2_SET - vx2_SWB + vx2_SWT)/four; + bz = ((vx2_SWT - vx2_NEB) + (vx2_NET - vx2_SWB) + (vx2_SET - vx2_NWB) + (vx2_NWT - vx2_SEB))/c4o1; + cz = (-vx3_NEB + vx3_NET - vx3_NWB + vx3_NWT - vx3_SEB + vx3_SET - vx3_SWB + vx3_SWT)/c4o1; + azz= (-kxzFromfcNEQ_NEB + kxzFromfcNEQ_NET - kxzFromfcNEQ_NWB + kxzFromfcNEQ_NWT - + kxzFromfcNEQ_SEB + kxzFromfcNEQ_SET - kxzFromfcNEQ_SWB + kxzFromfcNEQ_SWT + + c2o1*vx3_NEB - c2o1*vx3_NET - c2o1*vx3_NWB + c2o1*vx3_NWT + + c2o1*vx3_SEB - c2o1*vx3_SET - c2o1*vx3_SWB + c2o1*vx3_SWT)/c8o1; + bzz= (-kyzFromfcNEQ_NEB + kyzFromfcNEQ_NET - kyzFromfcNEQ_NWB + kyzFromfcNEQ_NWT - + kyzFromfcNEQ_SEB + kyzFromfcNEQ_SET - kyzFromfcNEQ_SWB + kyzFromfcNEQ_SWT + + c2o1*vx3_NEB - c2o1*vx3_NET + c2o1*vx3_NWB - c2o1*vx3_NWT - + c2o1*vx3_SEB + c2o1*vx3_SET - c2o1*vx3_SWB + c2o1*vx3_SWT)/c8o1; + czz= (-kxxMyyFromfcNEQ_NEB + kxxMyyFromfcNEQ_NET - kxxMyyFromfcNEQ_NWB + kxxMyyFromfcNEQ_NWT - + kxxMyyFromfcNEQ_SEB + kxxMyyFromfcNEQ_SET - kxxMyyFromfcNEQ_SWB + kxxMyyFromfcNEQ_SWT + + c2o1*kxxMzzFromfcNEQ_NEB - c2o1*kxxMzzFromfcNEQ_NET + c2o1*kxxMzzFromfcNEQ_NWB - c2o1*kxxMzzFromfcNEQ_NWT + + c2o1*kxxMzzFromfcNEQ_SEB - c2o1*kxxMzzFromfcNEQ_SET + c2o1*kxxMzzFromfcNEQ_SWB - c2o1*kxxMzzFromfcNEQ_SWT - + c2o1*vx1_NEB + c2o1*vx1_NET + c2o1*vx1_NWB - c2o1*vx1_NWT - + c2o1*vx1_SEB + c2o1*vx1_SET + c2o1*vx1_SWB - c2o1*vx1_SWT - + c2o1*vx2_NEB + c2o1*vx2_NET - c2o1*vx2_NWB + c2o1*vx2_NWT + + c2o1*vx2_SEB - c2o1*vx2_SET + c2o1*vx2_SWB - c2o1*vx2_SWT)/c16o1; + axy= (vx1_NEB + vx1_NET - vx1_NWB - vx1_NWT - vx1_SEB - vx1_SET + vx1_SWB + vx1_SWT)/c2o1; + bxy= (vx2_NEB + vx2_NET - vx2_NWB - vx2_NWT - vx2_SEB - vx2_SET + vx2_SWB + vx2_SWT)/c2o1; + cxy= (vx3_NEB + vx3_NET - vx3_NWB - vx3_NWT - vx3_SEB - vx3_SET + vx3_SWB + vx3_SWT)/c2o1; + axz= (-vx1_NEB + vx1_NET + vx1_NWB - vx1_NWT - vx1_SEB + vx1_SET + vx1_SWB - vx1_SWT)/c2o1; + bxz= (-vx2_NEB + vx2_NET + vx2_NWB - vx2_NWT - vx2_SEB + vx2_SET + vx2_SWB - vx2_SWT)/c2o1; + cxz= (-vx3_NEB + vx3_NET + vx3_NWB - vx3_NWT - vx3_SEB + vx3_SET + vx3_SWB - vx3_SWT)/c2o1; + ayz= (-vx1_NEB + vx1_NET - vx1_NWB + vx1_NWT + vx1_SEB - vx1_SET + vx1_SWB - vx1_SWT)/c2o1; + byz= (-vx2_NEB + vx2_NET - vx2_NWB + vx2_NWT + vx2_SEB - vx2_SET + vx2_SWB - vx2_SWT)/c2o1; + cyz= (-vx3_NEB + vx3_NET - vx3_NWB + vx3_NWT + vx3_SEB - vx3_SET + vx3_SWB - vx3_SWT)/c2o1; + axyz=-vx1_NEB + vx1_NET + vx1_NWB - vx1_NWT + vx1_SEB - vx1_SET - vx1_SWB + vx1_SWT; + bxyz=-vx2_NEB + vx2_NET + vx2_NWB - vx2_NWT + vx2_SEB - vx2_SET - vx2_SWB + vx2_SWT; + cxyz=-vx3_NEB + vx3_NET + vx3_NWB - vx3_NWT + vx3_SEB - vx3_SET - vx3_SWB + vx3_SWT; + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //drho + // d0 = ( drho_NEB + drho_NET + drho_NWB + drho_NWT + drho_SEB + drho_SET + drho_SWB + drho_SWT) * c1o8; + // dx = ( drho_NEB + drho_NET - drho_NWB - drho_NWT + drho_SEB + drho_SET - drho_SWB - drho_SWT) * c1o4; + // dy = ( drho_NEB + drho_NET + drho_NWB + drho_NWT - drho_SEB - drho_SET - drho_SWB - drho_SWT) * c1o4; + // dz = (-drho_NEB + drho_NET - drho_NWB + drho_NWT - drho_SEB + drho_SET - drho_SWB + drho_SWT) * c1o4; + // dxy = ( drho_NEB + drho_NET - drho_NWB - drho_NWT - drho_SEB - drho_SET + drho_SWB + drho_SWT) * c1o2; + // dxz = (-drho_NEB + drho_NET + drho_NWB - drho_NWT - drho_SEB + drho_SET + drho_SWB - drho_SWT) * c1o2; + // dyz = (-drho_NEB + drho_NET - drho_NWB + drho_NWT + drho_SEB - drho_SET + drho_SWB - drho_SWT) * c1o2; + // dxyz = -drho_NEB + drho_NET + drho_NWB - drho_NWT + drho_SEB - drho_SET - drho_SWB + drho_SWT; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + unsigned int kTimeStepOld = kTimeStep - numberOfParticles; + real localX = coordParticleXlocal[kTimeStepOld]; + real localY = coordParticleYlocal[kTimeStepOld]; + real localZ = coordParticleZlocal[kTimeStepOld]; + + x = (localX * (real)(pow((double)c2o1, (double)level))) - c1o2; //-c1o4; y = (localY * (real)(pow((double)c2o1, (double)level))) - c1o2; //-c1o4; z = (localZ * (real)(pow((double)c2o1, (double)level))) - c1o2; //-c1o4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; - vx1 = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); - vx2 = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); - vx3 = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); - - real veloPreX = veloParticleX[kTimeStepOld]; - real veloPreY = veloParticleY[kTimeStepOld]; - real veloPreZ = veloParticleZ[kTimeStepOld]; - - real veloPostX = (veloPreX + vx1) * c1o2; - real veloPostY = (veloPreY + vx2) * c1o2; - real veloPostZ = (veloPreZ + vx3) * c1o2; - - //real veloPostX = vx1; - //real veloPostY = vx2; - //real veloPostZ = vx3; - - veloParticleX[kTimeStep] = veloPostX; - veloParticleY[kTimeStep] = veloPostY; - veloParticleZ[kTimeStep] = veloPostZ; - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - x = x + veloPostX; - //x = x + c1o3; - y = y + veloPostY; - z = z + veloPostZ; - - unsigned int cbID = cellBaseID[k]; - bool negativeDirection = false; - - if (x > c1o2) - { - cbID = neighborX[cbID]; - x = x - c1o1; - } - if (y > c1o2) - { - cbID = neighborY[cbID]; - y = y - c1o1; - } - if (z > c1o2) - { - cbID = neighborZ[cbID]; - z = z - c1o1; - } - - real tempX = x; - real tempY = y; - real tempZ = z; - - if ((x < -c1o2) || (y < -c1o2) || (z < -c1o2)) - { - cbID = neighborWSB[cbID]; - negativeDirection = true; - tempX = x + c1o1; - tempY = y + c1o1; - tempZ = z + c1o1; - } - if ((x >= -c1o2) && (negativeDirection == true)) - { - cbID = neighborX[cbID]; - tempX = x; - } - if ((y >= -c1o2) && (negativeDirection == true)) - { - cbID = neighborY[cbID]; - tempY = y; - } - if ((z >= -c1o2) && (negativeDirection == true)) - { - cbID = neighborZ[cbID]; - tempZ = z; - } - - x = tempX; - y = tempY; - z = tempZ; - - localX = (x + c1o2) / (real)(pow((double)c2o1, (double)level)); + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //press = d0 + x*dx + y*dy + z*dz + x*y*dxy + x*z*dxz + y*z*dyz + x*y*z*dxyz; + vx1 = (a0 + x*ax + y*ay + z*az + x*x*axx + y*y*ayy + z*z*azz + x*y*axy + x*z*axz + y*z*ayz + x*y*z*axyz); + vx2 = (b0 + x*bx + y*by + z*bz + x*x*bxx + y*y*byy + z*z*bzz + x*y*bxy + x*z*bxz + y*z*byz + x*y*z*bxyz); + vx3 = (c0 + x*cx + y*cy + z*cz + x*x*cxx + y*y*cyy + z*z*czz + x*y*cxy + x*z*cxz + y*z*cyz + x*y*z*cxyz); + + real veloPreX = veloParticleX[kTimeStepOld]; + real veloPreY = veloParticleY[kTimeStepOld]; + real veloPreZ = veloParticleZ[kTimeStepOld]; + + real veloPostX = (veloPreX + vx1) * c1o2; + real veloPostY = (veloPreY + vx2) * c1o2; + real veloPostZ = (veloPreZ + vx3) * c1o2; + + //real veloPostX = vx1; + //real veloPostY = vx2; + //real veloPostZ = vx3; + + veloParticleX[kTimeStep] = veloPostX; + veloParticleY[kTimeStep] = veloPostY; + veloParticleZ[kTimeStep] = veloPostZ; + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + x = x + veloPostX; + //x = x + c1o3; + y = y + veloPostY; + z = z + veloPostZ; + + unsigned int cbID = cellBaseID[k]; + bool negativeDirection = false; + + if (x > c1o2) + { + cbID = neighborX[cbID]; + x = x - c1o1; + } + if (y > c1o2) + { + cbID = neighborY[cbID]; + y = y - c1o1; + } + if (z > c1o2) + { + cbID = neighborZ[cbID]; + z = z - c1o1; + } + + real tempX = x; + real tempY = y; + real tempZ = z; + + if ((x < -c1o2) || (y < -c1o2) || (z < -c1o2)) + { + cbID = neighborWSB[cbID]; + negativeDirection = true; + tempX = x + c1o1; + tempY = y + c1o1; + tempZ = z + c1o1; + } + if ((x >= -c1o2) && (negativeDirection == true)) + { + cbID = neighborX[cbID]; + tempX = x; + } + if ((y >= -c1o2) && (negativeDirection == true)) + { + cbID = neighborY[cbID]; + tempY = y; + } + if ((z >= -c1o2) && (negativeDirection == true)) + { + cbID = neighborZ[cbID]; + tempZ = z; + } + + x = tempX; + y = tempY; + z = tempZ; + + localX = (x + c1o2) / (real)(pow((double)c2o1, (double)level)); localY = (y + c1o2) / (real)(pow((double)c2o1, (double)level)); localZ = (z + c1o2) / (real)(pow((double)c2o1, (double)level)); - coordParticleXlocal[kTimeStep] = localX; - coordParticleYlocal[kTimeStep] = localY; - coordParticleZlocal[kTimeStep] = localZ; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real globalX = localX + coordX[cbID]; - real globalY = localY + coordY[cbID]; - real globalZ = localZ + coordZ[cbID]; - coordParticleXglobal[kTimeStep] = globalX; - coordParticleYglobal[kTimeStep] = globalY; - coordParticleZglobal[kTimeStep] = globalZ; - //coordParticleXglobal[kTimeStep] = coordParticleXglobal[kTimeStepOld]; - //coordParticleYglobal[kTimeStep] = coordParticleYglobal[kTimeStepOld]; - //coordParticleZglobal[kTimeStep] = coordParticleZglobal[kTimeStepOld]; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - cellBaseID[k] = cbID; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - } + coordParticleXlocal[kTimeStep] = localX; + coordParticleYlocal[kTimeStep] = localY; + coordParticleZlocal[kTimeStep] = localZ; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + real globalX = localX + coordX[cbID]; + real globalY = localY + coordY[cbID]; + real globalZ = localZ + coordZ[cbID]; + coordParticleXglobal[kTimeStep] = globalX; + coordParticleYglobal[kTimeStep] = globalY; + coordParticleZglobal[kTimeStep] = globalZ; + //coordParticleXglobal[kTimeStep] = coordParticleXglobal[kTimeStepOld]; + //coordParticleYglobal[kTimeStep] = coordParticleYglobal[kTimeStepOld]; + //coordParticleZglobal[kTimeStep] = coordParticleZglobal[kTimeStepOld]; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + cellBaseID[k] = cbID; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + } } } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -1897,42 +1897,42 @@ __global__ void MoveParticlesWithoutBCs( real* coordX, ////////////////////////////////////////////////////////////////////////////// __global__ void ParticleNoSlipDeviceComp27(real* coordX, - real* coordY, - real* coordZ, - real* coordParticleXlocal, - real* coordParticleYlocal, - real* coordParticleZlocal, - real* coordParticleXglobal, - real* coordParticleYglobal, - real* coordParticleZglobal, - real* veloParticleX, - real* veloParticleY, - real* veloParticleZ, - real* randArray, - real* DD, - real omega, - unsigned int* particleID, - unsigned int* cellBaseID, - unsigned int* bcMatD, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned int* neighborWSB, - int level, - unsigned int numberOfTimesteps, - unsigned int timestep, - unsigned int numberOfParticles, - int* k_Q, - real* QQ, - unsigned int numberOfBCnodes, - real* NormalX, - real* NormalY, - real* NormalZ, - unsigned long long numberOfLBnodes, - bool isEvenTimestep) + real* coordY, + real* coordZ, + real* coordParticleXlocal, + real* coordParticleYlocal, + real* coordParticleZlocal, + real* coordParticleXglobal, + real* coordParticleYglobal, + real* coordParticleZglobal, + real* veloParticleX, + real* veloParticleY, + real* veloParticleZ, + real* randArray, + real* DD, + real omega, + unsigned int* particleID, + unsigned int* cellBaseID, + unsigned int* bcMatD, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned int* neighborWSB, + int level, + unsigned int numberOfTimesteps, + unsigned int timestep, + unsigned int numberOfParticles, + int* k_Q, + real* QQ, + unsigned int numberOfBCnodes, + real* NormalX, + real* NormalY, + real* NormalZ, + unsigned long long numberOfLBnodes, + bool isEvenTimestep) { - //TODO: What is this function for??? + //TODO: What is this function for??? //Distributions27 D; //if (isEvenTimestep==true) @@ -2138,26 +2138,26 @@ __global__ void ParticleNoSlipDeviceComp27(real* coordX, // // nz_dirBSE = &NormalZ[dPMM * numberOfBCnodes]; // // nz_dirBNW = &NormalZ[dMPM * numberOfBCnodes]; // //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //bool changeCell = false; + //bool changeCell = false; // unsigned int KQK = k_Q[k]; // //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //if( q_dirW[k] > c0o1 || q_dirS[k] > c0o1 || q_dirB[k] > c0o1 ) { - // KQK = neighborWSB[KQK]; - // changeCell = true; - //} - //if( q_dirW[k] == c0o1 && changeCell == true ) { - // KQK = neighborX[KQK]; - //} - //if( q_dirS[k] == c0o1 && changeCell == true ) { - // KQK = neighborY[KQK]; - //} - //if( q_dirB[k] == c0o1 && changeCell == true ) { - // KQK = neighborZ[KQK]; - //} - - ////for(int i = 0; i < numberOfParticles; i++){ - //// //push back? - ////} + //if( q_dirW[k] > c0o1 || q_dirS[k] > c0o1 || q_dirB[k] > c0o1 ) { + // KQK = neighborWSB[KQK]; + // changeCell = true; + //} + //if( q_dirW[k] == c0o1 && changeCell == true ) { + // KQK = neighborX[KQK]; + //} + //if( q_dirS[k] == c0o1 && changeCell == true ) { + // KQK = neighborY[KQK]; + //} + //if( q_dirB[k] == c0o1 && changeCell == true ) { + // KQK = neighborZ[KQK]; + //} + + ////for(int i = 0; i < numberOfParticles; i++){ + //// //push back? + ////} // //////////////////////////////////////////////////////////////////////////////// // //index diff --git a/src/gpu/core/GPU/PressBCs27.cu b/src/gpu/core/GPU/PressBCs27.cu index 9ccd5a496b7bb233a2c322e8f2564079d610f7b6..2c2a4f0380d8d8b7e6856292894d298c228ada28 100644 --- a/src/gpu/core/GPU/PressBCs27.cu +++ b/src/gpu/core/GPU/PressBCs27.cu @@ -3518,31 +3518,31 @@ __global__ void QPressDeviceOld27( __syncthreads(); (D.f[dP00])[ke ] = f1_W -c2o27*drho1; // c1o100; // zero; // - (D.f[dM00])[kw ] = f1_E -c2o27*drho1; // c1o100; // zero; // - (D.f[d0P0])[kn ] = f1_S -c2o27*drho1; // c1o100; // zero; // - (D.f[d0M0])[ks ] = f1_N -c2o27*drho1; // c1o100; // zero; // - (D.f[d00P])[kt ] = f1_B -c2o27*drho1; // c1o100; // zero; // - (D.f[d00M])[kb ] = f1_T -c2o27*drho1; // c1o100; // zero; // - (D.f[dPP0])[kne ] = f1_SW -c1o54*drho1; // c1o100; // zero; // - (D.f[dMM0])[ksw ] = f1_NE -c1o54*drho1; // c1o100; // zero; // - (D.f[dPM0])[kse ] = f1_NW -c1o54*drho1; // c1o100; // zero; // - (D.f[dMP0])[knw ] = f1_SE -c1o54*drho1; // c1o100; // zero; // - (D.f[dP0P])[kte ] = f1_BW -c1o54*drho1; // c1o100; // zero; // - (D.f[dM0M])[kbw ] = f1_TE -c1o54*drho1; // c1o100; // zero; // - (D.f[dP0M])[kbe ] = f1_TW -c1o54*drho1; // c1o100; // zero; // - (D.f[dM0P])[ktw ] = f1_BE -c1o54*drho1; // c1o100; // zero; // - (D.f[d0PP])[ktn ] = f1_BS -c1o54*drho1; // c1o100; // zero; // - (D.f[d0MM])[kbs ] = f1_TN -c1o54*drho1; // c1o100; // zero; // - (D.f[d0PM])[kbn ] = f1_TS -c1o54*drho1; // c1o100; // zero; // - (D.f[d0MP])[kts ] = f1_BN -c1o54*drho1; // c1o100; // zero; // - (D.f[d000])[kzero] = f1_ZERO-c8o27*drho1; // c1o100; // zero; // - (D.f[dPPP])[ktne ] = f1_BSW -c1o216*drho1; // c1o100; // zero; // - (D.f[dMMP])[ktsw ] = f1_BNE -c1o216*drho1; // c1o100; // zero; // - (D.f[dPMP])[ktse ] = f1_BNW -c1o216*drho1; // c1o100; // zero; // - (D.f[dMPP])[ktnw ] = f1_BSE -c1o216*drho1; // c1o100; // zero; // - (D.f[dPPM])[kbne ] = f1_TSW -c1o216*drho1; // c1o100; // zero; // - (D.f[dMMM])[kbsw ] = f1_TNE -c1o216*drho1; // c1o100; // zero; // - (D.f[dPMM])[kbse ] = f1_TNW -c1o216*drho1; // c1o100; // zero; // + (D.f[dM00])[kw ] = f1_E -c2o27*drho1; // c1o100; // zero; // + (D.f[d0P0])[kn ] = f1_S -c2o27*drho1; // c1o100; // zero; // + (D.f[d0M0])[ks ] = f1_N -c2o27*drho1; // c1o100; // zero; // + (D.f[d00P])[kt ] = f1_B -c2o27*drho1; // c1o100; // zero; // + (D.f[d00M])[kb ] = f1_T -c2o27*drho1; // c1o100; // zero; // + (D.f[dPP0])[kne ] = f1_SW -c1o54*drho1; // c1o100; // zero; // + (D.f[dMM0])[ksw ] = f1_NE -c1o54*drho1; // c1o100; // zero; // + (D.f[dPM0])[kse ] = f1_NW -c1o54*drho1; // c1o100; // zero; // + (D.f[dMP0])[knw ] = f1_SE -c1o54*drho1; // c1o100; // zero; // + (D.f[dP0P])[kte ] = f1_BW -c1o54*drho1; // c1o100; // zero; // + (D.f[dM0M])[kbw ] = f1_TE -c1o54*drho1; // c1o100; // zero; // + (D.f[dP0M])[kbe ] = f1_TW -c1o54*drho1; // c1o100; // zero; // + (D.f[dM0P])[ktw ] = f1_BE -c1o54*drho1; // c1o100; // zero; // + (D.f[d0PP])[ktn ] = f1_BS -c1o54*drho1; // c1o100; // zero; // + (D.f[d0MM])[kbs ] = f1_TN -c1o54*drho1; // c1o100; // zero; // + (D.f[d0PM])[kbn ] = f1_TS -c1o54*drho1; // c1o100; // zero; // + (D.f[d0MP])[kts ] = f1_BN -c1o54*drho1; // c1o100; // zero; // + (D.f[d000])[kzero] = f1_ZERO-c8o27*drho1; // c1o100; // zero; // + (D.f[dPPP])[ktne ] = f1_BSW -c1o216*drho1; // c1o100; // zero; // + (D.f[dMMP])[ktsw ] = f1_BNE -c1o216*drho1; // c1o100; // zero; // + (D.f[dPMP])[ktse ] = f1_BNW -c1o216*drho1; // c1o100; // zero; // + (D.f[dMPP])[ktnw ] = f1_BSE -c1o216*drho1; // c1o100; // zero; // + (D.f[dPPM])[kbne ] = f1_TSW -c1o216*drho1; // c1o100; // zero; // + (D.f[dMMM])[kbsw ] = f1_TNE -c1o216*drho1; // c1o100; // zero; // + (D.f[dPMM])[kbse ] = f1_TNW -c1o216*drho1; // c1o100; // zero; // (D.f[dMPM])[kbnw ] = f1_TSE -c1o216*drho1; // c1o100; // zero; // } } @@ -4013,8 +4013,8 @@ __global__ void QPressDeviceEQZ27( //real mfaca = (D.f[dMPM])[kbnw ]; //////////////////////////////////////////////////////////////////////////////////// //real rho = (((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + - // (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + - // ((mfabb+mfcbb) + (mfbab+mfbcb)) + (mfbba+mfbbc)) + mfbbb) + one;//!!!!Achtung + one + // (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + + // ((mfabb+mfcbb) + (mfbab+mfbcb)) + (mfbba+mfbbc)) + mfbbb) + one;//!!!!Achtung + one //////////////////////////////////////////////////////////////////////////////////// real rho = rhoBC[k]; //////////////////////////////////////////////////////////////////////////////////// @@ -4037,61 +4037,61 @@ __global__ void QPressDeviceEQZ27( //////////////////////////////////////////////////////////////////////////////////////// ////round off error test //if(vvx!=zero){ - // (kDistTest.f[dP00])[k] = mfabb; - // (kDistTest.f[dM00])[k] = mfcbb; - // (kDistTest.f[d0P0])[k] = mfbab; - // (kDistTest.f[d0M0])[k] = mfbcb; - // (kDistTest.f[d00P])[k] = mfbba; - // (kDistTest.f[d00M])[k] = mfbbc; - // (kDistTest.f[dPP0])[k] = mfaab; - // (kDistTest.f[dMM0])[k] = mfccb; - // (kDistTest.f[dPM0])[k] = mfacb; - // (kDistTest.f[dMP0])[k] = mfcab; - // (kDistTest.f[dP0P])[k] = mfaba; - // (kDistTest.f[dM0M])[k] = mfcbc; - // (kDistTest.f[dP0M])[k] = mfabc; - // (kDistTest.f[dM0P])[k] = mfcba; - // (kDistTest.f[d0PP])[k] = mfbaa; - // (kDistTest.f[d0MM])[k] = mfbcc; - // (kDistTest.f[d0PM])[k] = mfbac; - // (kDistTest.f[d0MP])[k] = mfbca; - // (kDistTest.f[d000])[k] = KQK; - // (kDistTest.f[dPPP])[k] = mfaaa; - // (kDistTest.f[dMMP])[k] = mfcca; - // (kDistTest.f[dPMP])[k] = mfaca; - // (kDistTest.f[dMPP])[k] = mfcaa; - // (kDistTest.f[dPPM])[k] = mfaac; - // (kDistTest.f[dMMM])[k] = mfccc; - // (kDistTest.f[dPMM])[k] = mfacc; - // (kDistTest.f[dMPM])[k] = mfcac; + // (kDistTest.f[dP00])[k] = mfabb; + // (kDistTest.f[dM00])[k] = mfcbb; + // (kDistTest.f[d0P0])[k] = mfbab; + // (kDistTest.f[d0M0])[k] = mfbcb; + // (kDistTest.f[d00P])[k] = mfbba; + // (kDistTest.f[d00M])[k] = mfbbc; + // (kDistTest.f[dPP0])[k] = mfaab; + // (kDistTest.f[dMM0])[k] = mfccb; + // (kDistTest.f[dPM0])[k] = mfacb; + // (kDistTest.f[dMP0])[k] = mfcab; + // (kDistTest.f[dP0P])[k] = mfaba; + // (kDistTest.f[dM0M])[k] = mfcbc; + // (kDistTest.f[dP0M])[k] = mfabc; + // (kDistTest.f[dM0P])[k] = mfcba; + // (kDistTest.f[d0PP])[k] = mfbaa; + // (kDistTest.f[d0MM])[k] = mfbcc; + // (kDistTest.f[d0PM])[k] = mfbac; + // (kDistTest.f[d0MP])[k] = mfbca; + // (kDistTest.f[d000])[k] = KQK; + // (kDistTest.f[dPPP])[k] = mfaaa; + // (kDistTest.f[dMMP])[k] = mfcca; + // (kDistTest.f[dPMP])[k] = mfaca; + // (kDistTest.f[dMPP])[k] = mfcaa; + // (kDistTest.f[dPPM])[k] = mfaac; + // (kDistTest.f[dMMM])[k] = mfccc; + // (kDistTest.f[dPMM])[k] = mfacc; + // (kDistTest.f[dMPM])[k] = mfcac; //}else{ - // (kDistTest.f[dP00])[k] = zero; - // (kDistTest.f[dM00])[k] = zero; - // (kDistTest.f[d0P0])[k] = zero; - // (kDistTest.f[d0M0])[k] = zero; - // (kDistTest.f[d00P])[k] = zero; - // (kDistTest.f[d00M])[k] = zero; - // (kDistTest.f[dPP0])[k] = zero; - // (kDistTest.f[dMM0])[k] = zero; - // (kDistTest.f[dPM0])[k] = zero; - // (kDistTest.f[dMP0])[k] = zero; - // (kDistTest.f[dP0P])[k] = zero; - // (kDistTest.f[dM0M])[k] = zero; - // (kDistTest.f[dP0M])[k] = zero; - // (kDistTest.f[dM0P])[k] = zero; - // (kDistTest.f[d0PP])[k] = zero; - // (kDistTest.f[d0MM])[k] = zero; - // (kDistTest.f[d0PM])[k] = zero; - // (kDistTest.f[d0MP])[k] = zero; - // (kDistTest.f[d000])[k] = zero; - // (kDistTest.f[dPPP])[k] = zero; - // (kDistTest.f[dMMP])[k] = zero; - // (kDistTest.f[dPMP])[k] = zero; - // (kDistTest.f[dMPP])[k] = zero; - // (kDistTest.f[dPPM])[k] = zero; - // (kDistTest.f[dMMM])[k] = zero; - // (kDistTest.f[dPMM])[k] = zero; - // (kDistTest.f[dMPM])[k] = zero; + // (kDistTest.f[dP00])[k] = zero; + // (kDistTest.f[dM00])[k] = zero; + // (kDistTest.f[d0P0])[k] = zero; + // (kDistTest.f[d0M0])[k] = zero; + // (kDistTest.f[d00P])[k] = zero; + // (kDistTest.f[d00M])[k] = zero; + // (kDistTest.f[dPP0])[k] = zero; + // (kDistTest.f[dMM0])[k] = zero; + // (kDistTest.f[dPM0])[k] = zero; + // (kDistTest.f[dMP0])[k] = zero; + // (kDistTest.f[dP0P])[k] = zero; + // (kDistTest.f[dM0M])[k] = zero; + // (kDistTest.f[dP0M])[k] = zero; + // (kDistTest.f[dM0P])[k] = zero; + // (kDistTest.f[d0PP])[k] = zero; + // (kDistTest.f[d0MM])[k] = zero; + // (kDistTest.f[d0PM])[k] = zero; + // (kDistTest.f[d0MP])[k] = zero; + // (kDistTest.f[d000])[k] = zero; + // (kDistTest.f[dPPP])[k] = zero; + // (kDistTest.f[dMMP])[k] = zero; + // (kDistTest.f[dPMP])[k] = zero; + // (kDistTest.f[dMPP])[k] = zero; + // (kDistTest.f[dPPM])[k] = zero; + // (kDistTest.f[dMMM])[k] = zero; + // (kDistTest.f[dPMM])[k] = zero; + // (kDistTest.f[dMPM])[k] = zero; //} ////////////////////////////////////////////////////////////////////////////////////// @@ -4100,9 +4100,9 @@ __global__ void QPressDeviceEQZ27( ////////////////////////////////////////////////////////////////////////////////////// ////// second bad fix for negative x velocity ////if(vvx > zero){ - //// vvx = -vvx; - //// vvy = -vvy; - //// vvz = -vvz; + //// vvx = -vvx; + //// vvy = -vvy; + //// vvz = -vvz; ////} //////////////////////////////////////////////////////////////////////////////////// double vx2 = vvx * vvx; @@ -4768,26 +4768,26 @@ __global__ void QPressDeviceFake27( (D.f[d0M0])[ks ] = c2o27* (rhoBC[k]+c3o1*( vx2 )+c9o2*( vx2 )*( vx2 )-cu_sq); (D.f[d00P])[kt ] = c2o27* (rhoBC[k]+c3o1*( -vx3)+c9o2*( -vx3)*( -vx3)-cu_sq); (D.f[d00M])[kb ] = c2o27* (rhoBC[k]+c3o1*( vx3)+c9o2*( vx3)*( vx3)-cu_sq); - (D.f[dPP0])[kne ] = f1_SW -c1o54*drho1; // c1o100; // zero; // - (D.f[dMM0])[ksw ] = f1_NE -c1o54*drho1; // c1o100; // zero; // - (D.f[dPM0])[kse ] = f1_NW -c1o54*drho1; // c1o100; // zero; // - (D.f[dMP0])[knw ] = f1_SE -c1o54*drho1; // c1o100; // zero; // - (D.f[dP0P])[kte ] = f1_BW -c1o54*drho1; // c1o100; // zero; // - (D.f[dM0M])[kbw ] = f1_TE -c1o54*drho1; // c1o100; // zero; // - (D.f[dP0M])[kbe ] = f1_TW -c1o54*drho1; // c1o100; // zero; // - (D.f[dM0P])[ktw ] = f1_BE -c1o54*drho1; // c1o100; // zero; // - (D.f[d0PP])[ktn ] = f1_BS -c1o54*drho1; // c1o100; // zero; // - (D.f[d0MM])[kbs ] = f1_TN -c1o54*drho1; // c1o100; // zero; // - (D.f[d0PM])[kbn ] = f1_TS -c1o54*drho1; // c1o100; // zero; // - (D.f[d0MP])[kts ] = f1_BN -c1o54*drho1; // c1o100; // zero; // - (D.f[d000])[kzero] = f1_ZERO-c8o27*drho1; // c1o100; // zero; // - (D.f[dPPP])[ktne ] = f1_BSW -c1o216*drho1; // c1o100; // zero; // - (D.f[dMMP])[ktsw ] = f1_BNE -c1o216*drho1; // c1o100; // zero; // - (D.f[dPMP])[ktse ] = f1_BNW -c1o216*drho1; // c1o100; // zero; // - (D.f[dMPP])[ktnw ] = f1_BSE -c1o216*drho1; // c1o100; // zero; // - (D.f[dPPM])[kbne ] = f1_TSW -c1o216*drho1; // c1o100; // zero; // - (D.f[dMMM])[kbsw ] = f1_TNE -c1o216*drho1; // c1o100; // zero; // - (D.f[dPMM])[kbse ] = f1_TNW -c1o216*drho1; // c1o100; // zero; // + (D.f[dPP0])[kne ] = f1_SW -c1o54*drho1; // c1o100; // zero; // + (D.f[dMM0])[ksw ] = f1_NE -c1o54*drho1; // c1o100; // zero; // + (D.f[dPM0])[kse ] = f1_NW -c1o54*drho1; // c1o100; // zero; // + (D.f[dMP0])[knw ] = f1_SE -c1o54*drho1; // c1o100; // zero; // + (D.f[dP0P])[kte ] = f1_BW -c1o54*drho1; // c1o100; // zero; // + (D.f[dM0M])[kbw ] = f1_TE -c1o54*drho1; // c1o100; // zero; // + (D.f[dP0M])[kbe ] = f1_TW -c1o54*drho1; // c1o100; // zero; // + (D.f[dM0P])[ktw ] = f1_BE -c1o54*drho1; // c1o100; // zero; // + (D.f[d0PP])[ktn ] = f1_BS -c1o54*drho1; // c1o100; // zero; // + (D.f[d0MM])[kbs ] = f1_TN -c1o54*drho1; // c1o100; // zero; // + (D.f[d0PM])[kbn ] = f1_TS -c1o54*drho1; // c1o100; // zero; // + (D.f[d0MP])[kts ] = f1_BN -c1o54*drho1; // c1o100; // zero; // + (D.f[d000])[kzero] = f1_ZERO-c8o27*drho1; // c1o100; // zero; // + (D.f[dPPP])[ktne ] = f1_BSW -c1o216*drho1; // c1o100; // zero; // + (D.f[dMMP])[ktsw ] = f1_BNE -c1o216*drho1; // c1o100; // zero; // + (D.f[dPMP])[ktse ] = f1_BNW -c1o216*drho1; // c1o100; // zero; // + (D.f[dMPP])[ktnw ] = f1_BSE -c1o216*drho1; // c1o100; // zero; // + (D.f[dPPM])[kbne ] = f1_TSW -c1o216*drho1; // c1o100; // zero; // + (D.f[dMMM])[kbsw ] = f1_TNE -c1o216*drho1; // c1o100; // zero; // + (D.f[dPMM])[kbse ] = f1_TNW -c1o216*drho1; // c1o100; // zero; // (D.f[dMPM])[kbnw ] = f1_TSE -c1o216*drho1; // c1o100; // zero; // } } diff --git a/src/gpu/core/GPU/Random.cu b/src/gpu/core/GPU/Random.cu index 2f9417f2404d773b222f1b79f8456adfaf741018..603cd14c42e9afdfa9912883a316742edc31f106 100644 --- a/src/gpu/core/GPU/Random.cu +++ b/src/gpu/core/GPU/Random.cu @@ -27,7 +27,7 @@ __global__ void initRandom(curandState* state) curand_init(k, k, 0, &state[k]); - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// } ////////////////////////////////////////////////////////////////////////////// diff --git a/src/gpu/core/GPU/SetForcing27.cu b/src/gpu/core/GPU/SetForcing27.cu index d356084fa0d7f1fc7afb94b784c1b45206a9bf98..63e8e95e69cd032a9e89aa12c11980ae429083ae 100644 --- a/src/gpu/core/GPU/SetForcing27.cu +++ b/src/gpu/core/GPU/SetForcing27.cu @@ -8,167 +8,167 @@ using namespace vf::lbm::dir; //////////////////////////////////////////////////////////////////////////////// __global__ void GetVeloforForcing27( real* DD, - int* bcIndex, - int nonAtBC, - real* Vx, - real* Vy, - real* Vz, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned long long numberOfLBnodes, - bool isEvenTimestep) + int* bcIndex, + int nonAtBC, + real* Vx, + real* Vy, + real* Vz, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned long long numberOfLBnodes, + bool isEvenTimestep) { - Distributions27 D; - if (isEvenTimestep==false) - { - D.f[dP00] = &DD[dP00 * numberOfLBnodes]; - D.f[dM00] = &DD[dM00 * numberOfLBnodes]; - D.f[d0P0] = &DD[d0P0 * numberOfLBnodes]; - D.f[d0M0] = &DD[d0M0 * numberOfLBnodes]; - D.f[d00P] = &DD[d00P * numberOfLBnodes]; - D.f[d00M] = &DD[d00M * numberOfLBnodes]; - D.f[dPP0] = &DD[dPP0 * numberOfLBnodes]; - D.f[dMM0] = &DD[dMM0 * numberOfLBnodes]; - D.f[dPM0] = &DD[dPM0 * numberOfLBnodes]; - D.f[dMP0] = &DD[dMP0 * numberOfLBnodes]; - D.f[dP0P] = &DD[dP0P * numberOfLBnodes]; - D.f[dM0M] = &DD[dM0M * numberOfLBnodes]; - D.f[dP0M] = &DD[dP0M * numberOfLBnodes]; - D.f[dM0P] = &DD[dM0P * numberOfLBnodes]; - D.f[d0PP] = &DD[d0PP * numberOfLBnodes]; - D.f[d0MM] = &DD[d0MM * numberOfLBnodes]; - D.f[d0PM] = &DD[d0PM * numberOfLBnodes]; - D.f[d0MP] = &DD[d0MP * numberOfLBnodes]; - D.f[d000] = &DD[d000 * numberOfLBnodes]; - D.f[dPPP] = &DD[dPPP * numberOfLBnodes]; - D.f[dMMP] = &DD[dMMP * numberOfLBnodes]; - D.f[dPMP] = &DD[dPMP * numberOfLBnodes]; - D.f[dMPP] = &DD[dMPP * numberOfLBnodes]; - D.f[dPPM] = &DD[dPPM * numberOfLBnodes]; - D.f[dMMM] = &DD[dMMM * numberOfLBnodes]; - D.f[dPMM] = &DD[dPMM * numberOfLBnodes]; - D.f[dMPM] = &DD[dMPM * numberOfLBnodes]; - } - else - { - D.f[dM00] = &DD[dP00 * numberOfLBnodes]; - D.f[dP00] = &DD[dM00 * numberOfLBnodes]; - D.f[d0M0] = &DD[d0P0 * numberOfLBnodes]; - D.f[d0P0] = &DD[d0M0 * numberOfLBnodes]; - D.f[d00M] = &DD[d00P * numberOfLBnodes]; - D.f[d00P] = &DD[d00M * numberOfLBnodes]; - D.f[dMM0] = &DD[dPP0 * numberOfLBnodes]; - D.f[dPP0] = &DD[dMM0 * numberOfLBnodes]; - D.f[dMP0] = &DD[dPM0 * numberOfLBnodes]; - D.f[dPM0] = &DD[dMP0 * numberOfLBnodes]; - D.f[dM0M] = &DD[dP0P * numberOfLBnodes]; - D.f[dP0P] = &DD[dM0M * numberOfLBnodes]; - D.f[dM0P] = &DD[dP0M * numberOfLBnodes]; - D.f[dP0M] = &DD[dM0P * numberOfLBnodes]; - D.f[d0MM] = &DD[d0PP * numberOfLBnodes]; - D.f[d0PP] = &DD[d0MM * numberOfLBnodes]; - D.f[d0MP] = &DD[d0PM * numberOfLBnodes]; - D.f[d0PM] = &DD[d0MP * numberOfLBnodes]; - D.f[d000] = &DD[d000 * numberOfLBnodes]; - D.f[dPPP] = &DD[dMMM * numberOfLBnodes]; - D.f[dMMP] = &DD[dPPM * numberOfLBnodes]; - D.f[dPMP] = &DD[dMPM * numberOfLBnodes]; - D.f[dMPP] = &DD[dPMM * numberOfLBnodes]; - D.f[dPPM] = &DD[dMMP * numberOfLBnodes]; - D.f[dMMM] = &DD[dPPP * numberOfLBnodes]; - D.f[dPMM] = &DD[dMPP * numberOfLBnodes]; - D.f[dMPM] = &DD[dPMP * numberOfLBnodes]; - } - //////////////////////////////////////////////////////////////////////////////// - const unsigned x = threadIdx.x; // Globaler x-Index - const unsigned y = blockIdx.x; // Globaler y-Index - const unsigned z = blockIdx.y; // Globaler z-Index + Distributions27 D; + if (isEvenTimestep==false) + { + D.f[dP00] = &DD[dP00 * numberOfLBnodes]; + D.f[dM00] = &DD[dM00 * numberOfLBnodes]; + D.f[d0P0] = &DD[d0P0 * numberOfLBnodes]; + D.f[d0M0] = &DD[d0M0 * numberOfLBnodes]; + D.f[d00P] = &DD[d00P * numberOfLBnodes]; + D.f[d00M] = &DD[d00M * numberOfLBnodes]; + D.f[dPP0] = &DD[dPP0 * numberOfLBnodes]; + D.f[dMM0] = &DD[dMM0 * numberOfLBnodes]; + D.f[dPM0] = &DD[dPM0 * numberOfLBnodes]; + D.f[dMP0] = &DD[dMP0 * numberOfLBnodes]; + D.f[dP0P] = &DD[dP0P * numberOfLBnodes]; + D.f[dM0M] = &DD[dM0M * numberOfLBnodes]; + D.f[dP0M] = &DD[dP0M * numberOfLBnodes]; + D.f[dM0P] = &DD[dM0P * numberOfLBnodes]; + D.f[d0PP] = &DD[d0PP * numberOfLBnodes]; + D.f[d0MM] = &DD[d0MM * numberOfLBnodes]; + D.f[d0PM] = &DD[d0PM * numberOfLBnodes]; + D.f[d0MP] = &DD[d0MP * numberOfLBnodes]; + D.f[d000] = &DD[d000 * numberOfLBnodes]; + D.f[dPPP] = &DD[dPPP * numberOfLBnodes]; + D.f[dMMP] = &DD[dMMP * numberOfLBnodes]; + D.f[dPMP] = &DD[dPMP * numberOfLBnodes]; + D.f[dMPP] = &DD[dMPP * numberOfLBnodes]; + D.f[dPPM] = &DD[dPPM * numberOfLBnodes]; + D.f[dMMM] = &DD[dMMM * numberOfLBnodes]; + D.f[dPMM] = &DD[dPMM * numberOfLBnodes]; + D.f[dMPM] = &DD[dMPM * numberOfLBnodes]; + } + else + { + D.f[dM00] = &DD[dP00 * numberOfLBnodes]; + D.f[dP00] = &DD[dM00 * numberOfLBnodes]; + D.f[d0M0] = &DD[d0P0 * numberOfLBnodes]; + D.f[d0P0] = &DD[d0M0 * numberOfLBnodes]; + D.f[d00M] = &DD[d00P * numberOfLBnodes]; + D.f[d00P] = &DD[d00M * numberOfLBnodes]; + D.f[dMM0] = &DD[dPP0 * numberOfLBnodes]; + D.f[dPP0] = &DD[dMM0 * numberOfLBnodes]; + D.f[dMP0] = &DD[dPM0 * numberOfLBnodes]; + D.f[dPM0] = &DD[dMP0 * numberOfLBnodes]; + D.f[dM0M] = &DD[dP0P * numberOfLBnodes]; + D.f[dP0P] = &DD[dM0M * numberOfLBnodes]; + D.f[dM0P] = &DD[dP0M * numberOfLBnodes]; + D.f[dP0M] = &DD[dM0P * numberOfLBnodes]; + D.f[d0MM] = &DD[d0PP * numberOfLBnodes]; + D.f[d0PP] = &DD[d0MM * numberOfLBnodes]; + D.f[d0MP] = &DD[d0PM * numberOfLBnodes]; + D.f[d0PM] = &DD[d0MP * numberOfLBnodes]; + D.f[d000] = &DD[d000 * numberOfLBnodes]; + D.f[dPPP] = &DD[dMMM * numberOfLBnodes]; + D.f[dMMP] = &DD[dPPM * numberOfLBnodes]; + D.f[dPMP] = &DD[dMPM * numberOfLBnodes]; + D.f[dMPP] = &DD[dPMM * numberOfLBnodes]; + D.f[dPPM] = &DD[dMMP * numberOfLBnodes]; + D.f[dMMM] = &DD[dPPP * numberOfLBnodes]; + D.f[dPMM] = &DD[dMPP * numberOfLBnodes]; + D.f[dMPM] = &DD[dPMP * numberOfLBnodes]; + } + //////////////////////////////////////////////////////////////////////////////// + const unsigned x = threadIdx.x; // Globaler x-Index + const unsigned y = blockIdx.x; // Globaler y-Index + const unsigned z = blockIdx.y; // Globaler z-Index - const unsigned nx = blockDim.x; - const unsigned ny = gridDim.x; + const unsigned nx = blockDim.x; + const unsigned ny = gridDim.x; - const unsigned k = nx*(ny*z + y) + x; - ////////////////////////////////////////////////////////////////////////// - if(k < nonAtBC) - { - //////////////////////////////////////////////////////////////////////////////// - //index - unsigned int KQK = bcIndex[k]; - unsigned int kzero= KQK; - unsigned int ke = KQK; - unsigned int kw = neighborX[KQK]; - unsigned int kn = KQK; - unsigned int ks = neighborY[KQK]; - unsigned int kt = KQK; - unsigned int kb = neighborZ[KQK]; - unsigned int ksw = neighborY[kw]; - unsigned int kne = KQK; - unsigned int kse = ks; - unsigned int knw = kw; - unsigned int kbw = neighborZ[kw]; - unsigned int kte = KQK; - unsigned int kbe = kb; - unsigned int ktw = kw; - unsigned int kbs = neighborZ[ks]; - unsigned int ktn = KQK; - unsigned int kbn = kb; - unsigned int kts = ks; - unsigned int ktse = ks; - unsigned int kbnw = kbw; - unsigned int ktnw = kw; - unsigned int kbse = kbs; - unsigned int ktsw = ksw; - unsigned int kbne = kb; - unsigned int ktne = KQK; - unsigned int kbsw = neighborZ[ksw]; - //////////////////////////////////////////////////////////////////////////////// - real mfcbb = (D.f[dP00])[ke ]; - real mfabb = (D.f[dM00])[kw ]; - real mfbcb = (D.f[d0P0])[kn ]; - real mfbab = (D.f[d0M0])[ks ]; - real mfbbc = (D.f[d00P])[kt ]; - real mfbba = (D.f[d00M])[kb ]; - real mfccb = (D.f[dPP0])[kne ]; - real mfaab = (D.f[dMM0])[ksw ]; - real mfcab = (D.f[dPM0])[kse ]; - real mfacb = (D.f[dMP0])[knw ]; - real mfcbc = (D.f[dP0P])[kte ]; - real mfaba = (D.f[dM0M])[kbw ]; - real mfcba = (D.f[dP0M])[kbe ]; - real mfabc = (D.f[dM0P])[ktw ]; - real mfbcc = (D.f[d0PP])[ktn ]; - real mfbaa = (D.f[d0MM])[kbs ]; - real mfbca = (D.f[d0PM])[kbn ]; - real mfbac = (D.f[d0MP])[kts ]; - real mfbbb = (D.f[d000])[kzero]; - real mfccc = (D.f[dPPP])[ktne ]; - real mfaac = (D.f[dMMP])[ktsw ]; - real mfcac = (D.f[dPMP])[ktse ]; - real mfacc = (D.f[dMPP])[ktnw ]; - real mfcca = (D.f[dPPM])[kbne ]; - real mfaaa = (D.f[dMMM])[kbsw ]; - real mfcaa = (D.f[dPMM])[kbse ]; - real mfaca = (D.f[dMPM])[kbnw ]; - //////////////////////////////////////////////////////////////////////////////////// - real rho = (mfccc+mfaaa + mfaca+mfcac + mfacc+mfcaa + mfaac+mfcca + - mfbac+mfbca + mfbaa+mfbcc + mfabc+mfcba + mfaba+mfcbc + mfacb+mfcab + mfaab+mfccb + - mfabb+mfcbb + mfbab+mfbcb + mfbba+mfbbc + mfbbb + c1o1);//!!!!Achtung + one - //////////////////////////////////////////////////////////////////////////////////// - real vx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + - (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + - (mfcbb-mfabb))/ rho; - real vy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + - (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + - (mfbcb-mfbab)) / rho; - real vz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + - (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + - (mfbbc-mfbba)) / rho; - //////////////////////////////////////////////////////////////////////////////////// - Vx[k] = vx; - Vy[k] = vy; - Vz[k] = vz; - //////////////////////////////////////////////////////////////////////////////////// - } + const unsigned k = nx*(ny*z + y) + x; + ////////////////////////////////////////////////////////////////////////// + if(k < nonAtBC) + { + //////////////////////////////////////////////////////////////////////////////// + //index + unsigned int KQK = bcIndex[k]; + unsigned int kzero= KQK; + unsigned int ke = KQK; + unsigned int kw = neighborX[KQK]; + unsigned int kn = KQK; + unsigned int ks = neighborY[KQK]; + unsigned int kt = KQK; + unsigned int kb = neighborZ[KQK]; + unsigned int ksw = neighborY[kw]; + unsigned int kne = KQK; + unsigned int kse = ks; + unsigned int knw = kw; + unsigned int kbw = neighborZ[kw]; + unsigned int kte = KQK; + unsigned int kbe = kb; + unsigned int ktw = kw; + unsigned int kbs = neighborZ[ks]; + unsigned int ktn = KQK; + unsigned int kbn = kb; + unsigned int kts = ks; + unsigned int ktse = ks; + unsigned int kbnw = kbw; + unsigned int ktnw = kw; + unsigned int kbse = kbs; + unsigned int ktsw = ksw; + unsigned int kbne = kb; + unsigned int ktne = KQK; + unsigned int kbsw = neighborZ[ksw]; + //////////////////////////////////////////////////////////////////////////////// + real mfcbb = (D.f[dP00])[ke ]; + real mfabb = (D.f[dM00])[kw ]; + real mfbcb = (D.f[d0P0])[kn ]; + real mfbab = (D.f[d0M0])[ks ]; + real mfbbc = (D.f[d00P])[kt ]; + real mfbba = (D.f[d00M])[kb ]; + real mfccb = (D.f[dPP0])[kne ]; + real mfaab = (D.f[dMM0])[ksw ]; + real mfcab = (D.f[dPM0])[kse ]; + real mfacb = (D.f[dMP0])[knw ]; + real mfcbc = (D.f[dP0P])[kte ]; + real mfaba = (D.f[dM0M])[kbw ]; + real mfcba = (D.f[dP0M])[kbe ]; + real mfabc = (D.f[dM0P])[ktw ]; + real mfbcc = (D.f[d0PP])[ktn ]; + real mfbaa = (D.f[d0MM])[kbs ]; + real mfbca = (D.f[d0PM])[kbn ]; + real mfbac = (D.f[d0MP])[kts ]; + real mfbbb = (D.f[d000])[kzero]; + real mfccc = (D.f[dPPP])[ktne ]; + real mfaac = (D.f[dMMP])[ktsw ]; + real mfcac = (D.f[dPMP])[ktse ]; + real mfacc = (D.f[dMPP])[ktnw ]; + real mfcca = (D.f[dPPM])[kbne ]; + real mfaaa = (D.f[dMMM])[kbsw ]; + real mfcaa = (D.f[dPMM])[kbse ]; + real mfaca = (D.f[dMPM])[kbnw ]; + //////////////////////////////////////////////////////////////////////////////////// + real rho = (mfccc+mfaaa + mfaca+mfcac + mfacc+mfcaa + mfaac+mfcca + + mfbac+mfbca + mfbaa+mfbcc + mfabc+mfcba + mfaba+mfcbc + mfacb+mfcab + mfaab+mfccb + + mfabb+mfcbb + mfbab+mfbcb + mfbba+mfbbc + mfbbb + c1o1);//!!!!Achtung + one + //////////////////////////////////////////////////////////////////////////////////// + real vx =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + + (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + + (mfcbb-mfabb))/ rho; + real vy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + + (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + + (mfbcb-mfbab)) / rho; + real vz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + + (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + + (mfbbc-mfbba)) / rho; + //////////////////////////////////////////////////////////////////////////////////// + Vx[k] = vx; + Vy[k] = vy; + Vz[k] = vz; + //////////////////////////////////////////////////////////////////////////////////// + } } diff --git a/src/gpu/core/GPU/SlipBCs27.cu b/src/gpu/core/GPU/SlipBCs27.cu index 2ef15989422a7eccf15c5eb931115282c8794a64..71d36ffd50cb4eaf010e6fef2f1d7e79f31e5eb2 100644 --- a/src/gpu/core/GPU/SlipBCs27.cu +++ b/src/gpu/core/GPU/SlipBCs27.cu @@ -184,21 +184,21 @@ __global__ void QSlipDevice27( //Test //(D.f[d000])[k]=c1o10; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real fac = c1o1;//c99o100; - real VeloX = fac*vx1; - real VeloY = fac*vx2; - real VeloZ = fac*vx3; - bool x = false; - bool y = false; - bool z = false; + real fac = c1o1;//c99o100; + real VeloX = fac*vx1; + real VeloY = fac*vx2; + real VeloZ = fac*vx3; + bool x = false; + bool y = false; + bool z = false; q = q_dirE[k]; if (q>=c0o1 && q<=c1o1) { - VeloX = c0o1; - VeloY = fac*vx2; - VeloZ = fac*vx3; - x = true; + VeloX = c0o1; + VeloY = fac*vx2; + VeloZ = fac*vx3; + x = true; feq=c2o27* (drho+c3o1*( vx1 )+c9o2*( vx1 )*( vx1 )-cu_sq); (D.f[dM00])[kw]=(c1o1-q)/(c1o1+q)*(f_E-feq*om1)/(c1o1-om1)+(q*(f_E+f_W)-c6o1*c2o27*( VeloX ))/(c1o1+q); //(D.f[dM00])[kw]=zero; @@ -207,10 +207,10 @@ __global__ void QSlipDevice27( q = q_dirW[k]; if (q>=c0o1 && q<=c1o1) { - VeloX = c0o1; - VeloY = fac*vx2; - VeloZ = fac*vx3; - x = true; + VeloX = c0o1; + VeloY = fac*vx2; + VeloZ = fac*vx3; + x = true; feq=c2o27* (drho+c3o1*(-vx1 )+c9o2*(-vx1 )*(-vx1 )-cu_sq); (D.f[dP00])[ke]=(c1o1-q)/(c1o1+q)*(f_W-feq*om1)/(c1o1-om1)+(q*(f_W+f_E)-c6o1*c2o27*(-VeloX ))/(c1o1+q); //(D.f[dP00])[ke]=zero; @@ -219,10 +219,10 @@ __global__ void QSlipDevice27( q = q_dirN[k]; if (q>=c0o1 && q<=c1o1) { - VeloX = fac*vx1; - VeloY = c0o1; - VeloZ = fac*vx3; - y = true; + VeloX = fac*vx1; + VeloY = c0o1; + VeloZ = fac*vx3; + y = true; feq=c2o27* (drho+c3o1*( vx2 )+c9o2*( vx2 )*( vx2 )-cu_sq); (D.f[d0M0])[ks]=(c1o1-q)/(c1o1+q)*(f_N-feq*om1)/(c1o1-om1)+(q*(f_N+f_S)-c6o1*c2o27*( VeloY ))/(c1o1+q); //(D.f[d0M0])[ks]=zero; @@ -231,10 +231,10 @@ __global__ void QSlipDevice27( q = q_dirS[k]; if (q>=c0o1 && q<=c1o1) { - VeloX = fac*vx1; - VeloY = c0o1; - VeloZ = fac*vx3; - y = true; + VeloX = fac*vx1; + VeloY = c0o1; + VeloZ = fac*vx3; + y = true; feq=c2o27* (drho+c3o1*( -vx2 )+c9o2*( -vx2 )*( -vx2 )-cu_sq); (D.f[d0P0])[kn]=(c1o1-q)/(c1o1+q)*(f_S-feq*om1)/(c1o1-om1)+(q*(f_S+f_N)-c6o1*c2o27*(-VeloY ))/(c1o1+q); //(D.f[d0P0])[kn]=zero; @@ -243,10 +243,10 @@ __global__ void QSlipDevice27( q = q_dirT[k]; if (q>=c0o1 && q<=c1o1) { - VeloX = fac*vx1; - VeloY = fac*vx2; - VeloZ = c0o1; - z = true; + VeloX = fac*vx1; + VeloY = fac*vx2; + VeloZ = c0o1; + z = true; feq=c2o27* (drho+c3o1*( vx3)+c9o2*( vx3)*( vx3)-cu_sq); (D.f[d00M])[kb]=(c1o1-q)/(c1o1+q)*(f_T-feq*om1)/(c1o1-om1)+(q*(f_T+f_B)-c6o1*c2o27*( VeloZ ))/(c1o1+q); //(D.f[d00M])[kb]=one; @@ -255,10 +255,10 @@ __global__ void QSlipDevice27( q = q_dirB[k]; if (q>=c0o1 && q<=c1o1) { - VeloX = fac*vx1; - VeloY = fac*vx2; - VeloZ = c0o1; - z = true; + VeloX = fac*vx1; + VeloY = fac*vx2; + VeloZ = c0o1; + z = true; feq=c2o27* (drho+c3o1*( -vx3)+c9o2*( -vx3)*( -vx3)-cu_sq); (D.f[d00P])[kt]=(c1o1-q)/(c1o1+q)*(f_B-feq*om1)/(c1o1-om1)+(q*(f_B+f_T)-c6o1*c2o27*(-VeloZ ))/(c1o1+q); //(D.f[d00P])[kt]=zero; @@ -267,11 +267,11 @@ __global__ void QSlipDevice27( q = q_dirNE[k]; if (q>=c0o1 && q<=c1o1) { - VeloX = fac*vx1; - VeloY = fac*vx2; - VeloZ = fac*vx3; - if (x == true) VeloX = c0o1; - if (y == true) VeloY = c0o1; + VeloX = fac*vx1; + VeloY = fac*vx2; + VeloZ = fac*vx3; + if (x == true) VeloX = c0o1; + if (y == true) VeloY = c0o1; feq=c1o54* (drho+c3o1*( vx1+vx2 )+c9o2*( vx1+vx2 )*( vx1+vx2 )-cu_sq); (D.f[dMM0])[ksw]=(c1o1-q)/(c1o1+q)*(f_NE-feq*om1)/(c1o1-om1)+(q*(f_NE+f_SW)-c6o1*c1o54*(VeloX+VeloY))/(c1o1+q); //(D.f[dMM0])[ksw]=zero; @@ -280,11 +280,11 @@ __global__ void QSlipDevice27( q = q_dirSW[k]; if (q>=c0o1 && q<=c1o1) { - VeloX = fac*vx1; - VeloY = fac*vx2; - VeloZ = fac*vx3; - if (x == true) VeloX = c0o1; - if (y == true) VeloY = c0o1; + VeloX = fac*vx1; + VeloY = fac*vx2; + VeloZ = fac*vx3; + if (x == true) VeloX = c0o1; + if (y == true) VeloY = c0o1; feq=c1o54* (drho+c3o1*(-vx1-vx2 )+c9o2*(-vx1-vx2 )*(-vx1-vx2 )-cu_sq); (D.f[dPP0])[kne]=(c1o1-q)/(c1o1+q)*(f_SW-feq*om1)/(c1o1-om1)+(q*(f_SW+f_NE)-c6o1*c1o54*(-VeloX-VeloY))/(c1o1+q); //(D.f[dPP0])[kne]=zero; @@ -293,11 +293,11 @@ __global__ void QSlipDevice27( q = q_dirSE[k]; if (q>=c0o1 && q<=c1o1) { - VeloX = fac*vx1; - VeloY = fac*vx2; - VeloZ = fac*vx3; - if (x == true) VeloX = c0o1; - if (y == true) VeloY = c0o1; + VeloX = fac*vx1; + VeloY = fac*vx2; + VeloZ = fac*vx3; + if (x == true) VeloX = c0o1; + if (y == true) VeloY = c0o1; feq=c1o54* (drho+c3o1*( vx1-vx2 )+c9o2*( vx1-vx2 )*( vx1-vx2 )-cu_sq); (D.f[dMP0])[knw]=(c1o1-q)/(c1o1+q)*(f_SE-feq*om1)/(c1o1-om1)+(q*(f_SE+f_NW)-c6o1*c1o54*( VeloX-VeloY))/(c1o1+q); //(D.f[dMP0])[knw]=zero; @@ -306,11 +306,11 @@ __global__ void QSlipDevice27( q = q_dirNW[k]; if (q>=c0o1 && q<=c1o1) { - VeloX = fac*vx1; - VeloY = fac*vx2; - VeloZ = fac*vx3; - if (x == true) VeloX = c0o1; - if (y == true) VeloY = c0o1; + VeloX = fac*vx1; + VeloY = fac*vx2; + VeloZ = fac*vx3; + if (x == true) VeloX = c0o1; + if (y == true) VeloY = c0o1; feq=c1o54* (drho+c3o1*(-vx1+vx2 )+c9o2*(-vx1+vx2 )*(-vx1+vx2 )-cu_sq); (D.f[dPM0])[kse]=(c1o1-q)/(c1o1+q)*(f_NW-feq*om1)/(c1o1-om1)+(q*(f_NW+f_SE)-c6o1*c1o54*(-VeloX+VeloY))/(c1o1+q); //(D.f[dPM0])[kse]=zero; @@ -319,11 +319,11 @@ __global__ void QSlipDevice27( q = q_dirTE[k]; if (q>=c0o1 && q<=c1o1) { - VeloX = fac*vx1; - VeloY = fac*vx2; - VeloZ = fac*vx3; - if (x == true) VeloX = c0o1; - if (z == true) VeloZ = c0o1; + VeloX = fac*vx1; + VeloY = fac*vx2; + VeloZ = fac*vx3; + if (x == true) VeloX = c0o1; + if (z == true) VeloZ = c0o1; feq=c1o54* (drho+c3o1*( vx1 +vx3)+c9o2*( vx1 +vx3)*( vx1 +vx3)-cu_sq); (D.f[dM0M])[kbw]=(c1o1-q)/(c1o1+q)*(f_TE-feq*om1)/(c1o1-om1)+(q*(f_TE+f_BW)-c6o1*c1o54*( VeloX+VeloZ))/(c1o1+q); //(D.f[dM0M])[kbw]=zero; @@ -332,11 +332,11 @@ __global__ void QSlipDevice27( q = q_dirBW[k]; if (q>=c0o1 && q<=c1o1) { - VeloX = fac*vx1; - VeloY = fac*vx2; - VeloZ = fac*vx3; - if (x == true) VeloX = c0o1; - if (z == true) VeloZ = c0o1; + VeloX = fac*vx1; + VeloY = fac*vx2; + VeloZ = fac*vx3; + if (x == true) VeloX = c0o1; + if (z == true) VeloZ = c0o1; feq=c1o54* (drho+c3o1*(-vx1 -vx3)+c9o2*(-vx1 -vx3)*(-vx1 -vx3)-cu_sq); (D.f[dP0P])[kte]=(c1o1-q)/(c1o1+q)*(f_BW-feq*om1)/(c1o1-om1)+(q*(f_BW+f_TE)-c6o1*c1o54*(-VeloX-VeloZ))/(c1o1+q); //(D.f[dP0P])[kte]=zero; @@ -345,11 +345,11 @@ __global__ void QSlipDevice27( q = q_dirBE[k]; if (q>=c0o1 && q<=c1o1) { - VeloX = fac*vx1; - VeloY = fac*vx2; - VeloZ = fac*vx3; - if (x == true) VeloX = c0o1; - if (z == true) VeloZ = c0o1; + VeloX = fac*vx1; + VeloY = fac*vx2; + VeloZ = fac*vx3; + if (x == true) VeloX = c0o1; + if (z == true) VeloZ = c0o1; feq=c1o54* (drho+c3o1*( vx1 -vx3)+c9o2*( vx1 -vx3)*( vx1 -vx3)-cu_sq); (D.f[dM0P])[ktw]=(c1o1-q)/(c1o1+q)*(f_BE-feq*om1)/(c1o1-om1)+(q*(f_BE+f_TW)-c6o1*c1o54*( VeloX-VeloZ))/(c1o1+q); //(D.f[dM0P])[ktw]=zero; @@ -358,11 +358,11 @@ __global__ void QSlipDevice27( q = q_dirTW[k]; if (q>=c0o1 && q<=c1o1) { - VeloX = fac*vx1; - VeloY = fac*vx2; - VeloZ = fac*vx3; - if (x == true) VeloX = c0o1; - if (z == true) VeloZ = c0o1; + VeloX = fac*vx1; + VeloY = fac*vx2; + VeloZ = fac*vx3; + if (x == true) VeloX = c0o1; + if (z == true) VeloZ = c0o1; feq=c1o54* (drho+c3o1*(-vx1 +vx3)+c9o2*(-vx1 +vx3)*(-vx1 +vx3)-cu_sq); (D.f[dP0M])[kbe]=(c1o1-q)/(c1o1+q)*(f_TW-feq*om1)/(c1o1-om1)+(q*(f_TW+f_BE)-c6o1*c1o54*(-VeloX+VeloZ))/(c1o1+q); //(D.f[dP0M])[kbe]=zero; @@ -371,11 +371,11 @@ __global__ void QSlipDevice27( q = q_dirTN[k]; if (q>=c0o1 && q<=c1o1) { - VeloX = fac*vx1; - VeloY = fac*vx2; - VeloZ = fac*vx3; - if (y == true) VeloY = c0o1; - if (z == true) VeloZ = c0o1; + VeloX = fac*vx1; + VeloY = fac*vx2; + VeloZ = fac*vx3; + if (y == true) VeloY = c0o1; + if (z == true) VeloZ = c0o1; feq=c1o54* (drho+c3o1*( vx2+vx3)+c9o2*( vx2+vx3)*( vx2+vx3)-cu_sq); (D.f[d0MM])[kbs]=(c1o1-q)/(c1o1+q)*(f_TN-feq*om1)/(c1o1-om1)+(q*(f_TN+f_BS)-c6o1*c1o54*( VeloY+VeloZ))/(c1o1+q); //(D.f[d0MM])[kbs]=zero; @@ -384,11 +384,11 @@ __global__ void QSlipDevice27( q = q_dirBS[k]; if (q>=c0o1 && q<=c1o1) { - VeloX = fac*vx1; - VeloY = fac*vx2; - VeloZ = fac*vx3; - if (y == true) VeloY = c0o1; - if (z == true) VeloZ = c0o1; + VeloX = fac*vx1; + VeloY = fac*vx2; + VeloZ = fac*vx3; + if (y == true) VeloY = c0o1; + if (z == true) VeloZ = c0o1; feq=c1o54* (drho+c3o1*( -vx2-vx3)+c9o2*( -vx2-vx3)*( -vx2-vx3)-cu_sq); (D.f[d0PP])[ktn]=(c1o1-q)/(c1o1+q)*(f_BS-feq*om1)/(c1o1-om1)+(q*(f_BS+f_TN)-c6o1*c1o54*( -VeloY-VeloZ))/(c1o1+q); //(D.f[d0PP])[ktn]=zero; @@ -397,11 +397,11 @@ __global__ void QSlipDevice27( q = q_dirBN[k]; if (q>=c0o1 && q<=c1o1) { - VeloX = fac*vx1; - VeloY = fac*vx2; - VeloZ = fac*vx3; - if (y == true) VeloY = c0o1; - if (z == true) VeloZ = c0o1; + VeloX = fac*vx1; + VeloY = fac*vx2; + VeloZ = fac*vx3; + if (y == true) VeloY = c0o1; + if (z == true) VeloZ = c0o1; feq=c1o54* (drho+c3o1*( vx2-vx3)+c9o2*( vx2-vx3)*( vx2-vx3)-cu_sq); (D.f[d0MP])[kts]=(c1o1-q)/(c1o1+q)*(f_BN-feq*om1)/(c1o1-om1)+(q*(f_BN+f_TS)-c6o1*c1o54*( VeloY-VeloZ))/(c1o1+q); //(D.f[d0MP])[kts]=zero; @@ -410,11 +410,11 @@ __global__ void QSlipDevice27( q = q_dirTS[k]; if (q>=c0o1 && q<=c1o1) { - VeloX = fac*vx1; - VeloY = fac*vx2; - VeloZ = fac*vx3; - if (y == true) VeloY = c0o1; - if (z == true) VeloZ = c0o1; + VeloX = fac*vx1; + VeloY = fac*vx2; + VeloZ = fac*vx3; + if (y == true) VeloY = c0o1; + if (z == true) VeloZ = c0o1; feq=c1o54* (drho+c3o1*( -vx2+vx3)+c9o2*( -vx2+vx3)*( -vx2+vx3)-cu_sq); (D.f[d0PM])[kbn]=(c1o1-q)/(c1o1+q)*(f_TS-feq*om1)/(c1o1-om1)+(q*(f_TS+f_BN)-c6o1*c1o54*( -VeloY+VeloZ))/(c1o1+q); //(D.f[d0PM])[kbn]=zero; @@ -423,12 +423,12 @@ __global__ void QSlipDevice27( q = q_dirTNE[k]; if (q>=c0o1 && q<=c1o1) { - VeloX = fac*vx1; - VeloY = fac*vx2; - VeloZ = fac*vx3; - if (x == true) VeloX = c0o1; - if (y == true) VeloY = c0o1; - if (z == true) VeloZ = c0o1; + VeloX = fac*vx1; + VeloY = fac*vx2; + VeloZ = fac*vx3; + if (x == true) VeloX = c0o1; + if (y == true) VeloY = c0o1; + if (z == true) VeloZ = c0o1; feq=c1o216*(drho+c3o1*( vx1+vx2+vx3)+c9o2*( vx1+vx2+vx3)*( vx1+vx2+vx3)-cu_sq); (D.f[dMMM])[kbsw]=(c1o1-q)/(c1o1+q)*(f_TNE-feq*om1)/(c1o1-om1)+(q*(f_TNE+f_BSW)-c6o1*c1o216*( VeloX+VeloY+VeloZ))/(c1o1+q); //(D.f[dMMM])[kbsw]=zero; @@ -437,12 +437,12 @@ __global__ void QSlipDevice27( q = q_dirBSW[k]; if (q>=c0o1 && q<=c1o1) { - VeloX = fac*vx1; - VeloY = fac*vx2; - VeloZ = fac*vx3; - if (x == true) VeloX = c0o1; - if (y == true) VeloY = c0o1; - if (z == true) VeloZ = c0o1; + VeloX = fac*vx1; + VeloY = fac*vx2; + VeloZ = fac*vx3; + if (x == true) VeloX = c0o1; + if (y == true) VeloY = c0o1; + if (z == true) VeloZ = c0o1; feq=c1o216*(drho+c3o1*(-vx1-vx2-vx3)+c9o2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3)-cu_sq); (D.f[dPPP])[ktne]=(c1o1-q)/(c1o1+q)*(f_BSW-feq*om1)/(c1o1-om1)+(q*(f_BSW+f_TNE)-c6o1*c1o216*(-VeloX-VeloY-VeloZ))/(c1o1+q); //(D.f[dPPP])[ktne]=zero; @@ -451,12 +451,12 @@ __global__ void QSlipDevice27( q = q_dirBNE[k]; if (q>=c0o1 && q<=c1o1) { - VeloX = fac*vx1; - VeloY = fac*vx2; - VeloZ = fac*vx3; - if (x == true) VeloX = c0o1; - if (y == true) VeloY = c0o1; - if (z == true) VeloZ = c0o1; + VeloX = fac*vx1; + VeloY = fac*vx2; + VeloZ = fac*vx3; + if (x == true) VeloX = c0o1; + if (y == true) VeloY = c0o1; + if (z == true) VeloZ = c0o1; feq=c1o216*(drho+c3o1*( vx1+vx2-vx3)+c9o2*( vx1+vx2-vx3)*( vx1+vx2-vx3)-cu_sq); (D.f[dMMP])[ktsw]=(c1o1-q)/(c1o1+q)*(f_BNE-feq*om1)/(c1o1-om1)+(q*(f_BNE+f_TSW)-c6o1*c1o216*( VeloX+VeloY-VeloZ))/(c1o1+q); //(D.f[dMMP])[ktsw]=zero; @@ -465,12 +465,12 @@ __global__ void QSlipDevice27( q = q_dirTSW[k]; if (q>=c0o1 && q<=c1o1) { - VeloX = fac*vx1; - VeloY = fac*vx2; - VeloZ = fac*vx3; - if (x == true) VeloX = c0o1; - if (y == true) VeloY = c0o1; - if (z == true) VeloZ = c0o1; + VeloX = fac*vx1; + VeloY = fac*vx2; + VeloZ = fac*vx3; + if (x == true) VeloX = c0o1; + if (y == true) VeloY = c0o1; + if (z == true) VeloZ = c0o1; feq=c1o216*(drho+c3o1*(-vx1-vx2+vx3)+c9o2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3)-cu_sq); (D.f[dPPM])[kbne]=(c1o1-q)/(c1o1+q)*(f_TSW-feq*om1)/(c1o1-om1)+(q*(f_TSW+f_BNE)-c6o1*c1o216*(-VeloX-VeloY+VeloZ))/(c1o1+q); //(D.f[dPPM])[kbne]=zero; @@ -479,12 +479,12 @@ __global__ void QSlipDevice27( q = q_dirTSE[k]; if (q>=c0o1 && q<=c1o1) { - VeloX = fac*vx1; - VeloY = fac*vx2; - VeloZ = fac*vx3; - if (x == true) VeloX = c0o1; - if (y == true) VeloY = c0o1; - if (z == true) VeloZ = c0o1; + VeloX = fac*vx1; + VeloY = fac*vx2; + VeloZ = fac*vx3; + if (x == true) VeloX = c0o1; + if (y == true) VeloY = c0o1; + if (z == true) VeloZ = c0o1; feq=c1o216*(drho+c3o1*( vx1-vx2+vx3)+c9o2*( vx1-vx2+vx3)*( vx1-vx2+vx3)-cu_sq); (D.f[dMPM])[kbnw]=(c1o1-q)/(c1o1+q)*(f_TSE-feq*om1)/(c1o1-om1)+(q*(f_TSE+f_BNW)-c6o1*c1o216*( VeloX-VeloY+VeloZ))/(c1o1+q); //(D.f[dMPM])[kbnw]=zero; @@ -493,12 +493,12 @@ __global__ void QSlipDevice27( q = q_dirBNW[k]; if (q>=c0o1 && q<=c1o1) { - VeloX = fac*vx1; - VeloY = fac*vx2; - VeloZ = fac*vx3; - if (x == true) VeloX = c0o1; - if (y == true) VeloY = c0o1; - if (z == true) VeloZ = c0o1; + VeloX = fac*vx1; + VeloY = fac*vx2; + VeloZ = fac*vx3; + if (x == true) VeloX = c0o1; + if (y == true) VeloY = c0o1; + if (z == true) VeloZ = c0o1; feq=c1o216*(drho+c3o1*(-vx1+vx2-vx3)+c9o2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3)-cu_sq); (D.f[dPMP])[ktse]=(c1o1-q)/(c1o1+q)*(f_BNW-feq*om1)/(c1o1-om1)+(q*(f_BNW+f_TSE)-c6o1*c1o216*(-VeloX+VeloY-VeloZ))/(c1o1+q); //(D.f[dPMP])[ktse]=zero; @@ -507,12 +507,12 @@ __global__ void QSlipDevice27( q = q_dirBSE[k]; if (q>=c0o1 && q<=c1o1) { - VeloX = fac*vx1; - VeloY = fac*vx2; - VeloZ = fac*vx3; - if (x == true) VeloX = c0o1; - if (y == true) VeloY = c0o1; - if (z == true) VeloZ = c0o1; + VeloX = fac*vx1; + VeloY = fac*vx2; + VeloZ = fac*vx3; + if (x == true) VeloX = c0o1; + if (y == true) VeloY = c0o1; + if (z == true) VeloZ = c0o1; feq=c1o216*(drho+c3o1*( vx1-vx2-vx3)+c9o2*( vx1-vx2-vx3)*( vx1-vx2-vx3)-cu_sq); (D.f[dMPP])[ktnw]=(c1o1-q)/(c1o1+q)*(f_BSE-feq*om1)/(c1o1-om1)+(q*(f_BSE+f_TNW)-c6o1*c1o216*( VeloX-VeloY-VeloZ))/(c1o1+q); //(D.f[dMPP])[ktnw]=zero; @@ -521,12 +521,12 @@ __global__ void QSlipDevice27( q = q_dirTNW[k]; if (q>=c0o1 && q<=c1o1) { - VeloX = fac*vx1; - VeloY = fac*vx2; - VeloZ = fac*vx3; - if (x == true) VeloX = c0o1; - if (y == true) VeloY = c0o1; - if (z == true) VeloZ = c0o1; + VeloX = fac*vx1; + VeloY = fac*vx2; + VeloZ = fac*vx3; + if (x == true) VeloX = c0o1; + if (y == true) VeloY = c0o1; + if (z == true) VeloZ = c0o1; feq=c1o216*(drho+c3o1*(-vx1+vx2+vx3)+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cu_sq); (D.f[dPMM])[kbse]=(c1o1-q)/(c1o1+q)*(f_TNW-feq*om1)/(c1o1-om1)+(q*(f_TNW+f_BSE)-c6o1*c1o216*(-VeloX+VeloY+VeloZ))/(c1o1+q); //(D.f[dPMM])[kbse]=zero; @@ -2643,16 +2643,16 @@ __global__ void QSlipPressureDeviceComp27TurbViscosity( } // __global__ void QSlipDeviceComp27TurbViscosity(real* DD, -// int* k_Q, -// real* QQ, -// unsigned int numberOfBCnodes, -// real om1, -// unsigned int* neighborX, -// unsigned int* neighborY, -// unsigned int* neighborZ, +// int* k_Q, +// real* QQ, +// unsigned int numberOfBCnodes, +// real om1, +// unsigned int* neighborX, +// unsigned int* neighborY, +// unsigned int* neighborZ, // real* turbViscosity, -// unsigned int size_Mat, -// bool isEvenTimestep) +// unsigned int size_Mat, +// bool isEvenTimestep) // { // Distributions27 D; // if (isEvenTimestep==true) @@ -2904,23 +2904,23 @@ __global__ void QSlipPressureDeviceComp27TurbViscosity( // //Test // //(D.f[d000])[k]=c1o10; // //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// real om_turb = om1 / (c1o1 + c3o1*om1*max(c0o1, turbViscosity[k_Q[k]])); +// real om_turb = om1 / (c1o1 + c3o1*om1*max(c0o1, turbViscosity[k_Q[k]])); // real fac = c1o1;//c99o100; -// real VeloX = fac*vx1; -// real VeloY = fac*vx2; -// real VeloZ = fac*vx3; -// bool x = false; -// bool y = false; -// bool z = false; +// real VeloX = fac*vx1; +// real VeloY = fac*vx2; +// real VeloZ = fac*vx3; +// bool x = false; +// bool y = false; +// bool z = false; // q = q_dirE[k]; // if (q>=c0o1 && q<=c1o1) // { -// VeloX = c0o1; -// VeloY = fac*vx2; -// VeloZ = fac*vx3; -// x = true; +// VeloX = c0o1; +// VeloY = fac*vx2; +// VeloZ = fac*vx3; +// x = true; // feq=c2o27* (drho/*+three*( vx1 )*/+c9o2*( vx1 )*( vx1 ) * (c1o1 + drho)-cu_sq); // (D.f[dM00])[kw]=(c1o1-q)/(c1o1+q)*(f_E-f_W+(f_E+f_W-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_E+f_W)-c6o1*c2o27*( VeloX ))/(c1o1+q) - c2o27 * drho; // //feq=c2over27* (drho+three*( vx1 )+c9over2*( vx1 )*( vx1 )-cu_sq); @@ -2931,10 +2931,10 @@ __global__ void QSlipPressureDeviceComp27TurbViscosity( // q = q_dirW[k]; // if (q>=c0o1 && q<=c1o1) // { -// VeloX = c0o1; -// VeloY = fac*vx2; -// VeloZ = fac*vx3; -// x = true; +// VeloX = c0o1; +// VeloY = fac*vx2; +// VeloZ = fac*vx3; +// x = true; // feq=c2o27* (drho/*+three*(-vx1 )*/+c9o2*(-vx1 )*(-vx1 ) * (c1o1 + drho)-cu_sq); // (D.f[dP00])[ke]=(c1o1-q)/(c1o1+q)*(f_W-f_E+(f_W+f_E-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_W+f_E)-c6o1*c2o27*(-VeloX ))/(c1o1+q) - c2o27 * drho; // //feq=c2over27* (drho+three*(-vx1 )+c9over2*(-vx1 )*(-vx1 )-cu_sq); @@ -2945,10 +2945,10 @@ __global__ void QSlipPressureDeviceComp27TurbViscosity( // q = q_dirN[k]; // if (q>=c0o1 && q<=c1o1) // { -// VeloX = fac*vx1; -// VeloY = c0o1; -// VeloZ = fac*vx3; -// y = true; +// VeloX = fac*vx1; +// VeloY = c0o1; +// VeloZ = fac*vx3; +// y = true; // feq=c2o27* (drho/*+three*( vx2 )*/+c9o2*( vx2 )*( vx2 ) * (c1o1 + drho)-cu_sq); // (D.f[d0M0])[ks]=(c1o1-q)/(c1o1+q)*(f_N-f_S+(f_N+f_S-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_N+f_S)-c6o1*c2o27*( VeloY ))/(c1o1+q) - c2o27 * drho; // //feq=c2over27* (drho+three*( vx2 )+c9over2*( vx2 )*( vx2 )-cu_sq); @@ -2959,10 +2959,10 @@ __global__ void QSlipPressureDeviceComp27TurbViscosity( // q = q_dirS[k]; // if (q>=c0o1 && q<=c1o1) // { -// VeloX = fac*vx1; -// VeloY = c0o1; -// VeloZ = fac*vx3; -// y = true; +// VeloX = fac*vx1; +// VeloY = c0o1; +// VeloZ = fac*vx3; +// y = true; // feq=c2o27* (drho/*+three*( -vx2 )*/+c9o2*( -vx2 )*( -vx2 ) * (c1o1 + drho)-cu_sq); // (D.f[d0P0])[kn]=(c1o1-q)/(c1o1+q)*(f_S-f_N+(f_S+f_N-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_S+f_N)-c6o1*c2o27*(-VeloY ))/(c1o1+q) - c2o27 * drho; // //feq=c2over27* (drho+three*( -vx2 )+c9over2*( -vx2 )*( -vx2 )-cu_sq); @@ -2973,10 +2973,10 @@ __global__ void QSlipPressureDeviceComp27TurbViscosity( // q = q_dirT[k]; // if (q>=c0o1 && q<=c1o1) // { -// VeloX = fac*vx1; -// VeloY = fac*vx2; -// VeloZ = c0o1; -// z = true; +// VeloX = fac*vx1; +// VeloY = fac*vx2; +// VeloZ = c0o1; +// z = true; // feq=c2o27* (drho/*+three*( vx3)*/+c9o2*( vx3)*( vx3) * (c1o1 + drho)-cu_sq); // (D.f[d00M])[kb]=(c1o1-q)/(c1o1+q)*(f_T-f_B+(f_T+f_B-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_T+f_B)-c6o1*c2o27*( VeloZ ))/(c1o1+q) - c2o27 * drho; // //feq=c2over27* (drho+three*( vx3)+c9over2*( vx3)*( vx3)-cu_sq); @@ -2987,10 +2987,10 @@ __global__ void QSlipPressureDeviceComp27TurbViscosity( // q = q_dirB[k]; // if (q>=c0o1 && q<=c1o1) // { -// VeloX = fac*vx1; -// VeloY = fac*vx2; -// VeloZ = c0o1; -// z = true; +// VeloX = fac*vx1; +// VeloY = fac*vx2; +// VeloZ = c0o1; +// z = true; // feq=c2o27* (drho/*+three*( -vx3)*/+c9o2*( -vx3)*( -vx3) * (c1o1 + drho)-cu_sq); // (D.f[d00P])[kt]=(c1o1-q)/(c1o1+q)*(f_B-f_T+(f_B+f_T-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_B+f_T)-c6o1*c2o27*(-VeloZ ))/(c1o1+q) - c2o27 * drho; // //feq=c2over27* (drho+three*( -vx3)+c9over2*( -vx3)*( -vx3)-cu_sq); @@ -3001,11 +3001,11 @@ __global__ void QSlipPressureDeviceComp27TurbViscosity( // q = q_dirNE[k]; // if (q>=c0o1 && q<=c1o1) // { -// VeloX = fac*vx1; -// VeloY = fac*vx2; -// VeloZ = fac*vx3; -// if (x == true) VeloX = c0o1; -// if (y == true) VeloY = c0o1; +// VeloX = fac*vx1; +// VeloY = fac*vx2; +// VeloZ = fac*vx3; +// if (x == true) VeloX = c0o1; +// if (y == true) VeloY = c0o1; // feq=c1o54* (drho/*+three*( vx1+vx2 )*/+c9o2*( vx1+vx2 )*( vx1+vx2 ) * (c1o1 + drho)-cu_sq); // (D.f[dMM0])[ksw]=(c1o1-q)/(c1o1+q)*(f_NE-f_SW+(f_NE+f_SW-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_NE+f_SW)-c6o1*c1o54*(VeloX+VeloY))/(c1o1+q) - c1o54 * drho; // //feq=c1over54* (drho+three*( vx1+vx2 )+c9over2*( vx1+vx2 )*( vx1+vx2 )-cu_sq); @@ -3016,11 +3016,11 @@ __global__ void QSlipPressureDeviceComp27TurbViscosity( // q = q_dirSW[k]; // if (q>=c0o1 && q<=c1o1) // { -// VeloX = fac*vx1; -// VeloY = fac*vx2; -// VeloZ = fac*vx3; -// if (x == true) VeloX = c0o1; -// if (y == true) VeloY = c0o1; +// VeloX = fac*vx1; +// VeloY = fac*vx2; +// VeloZ = fac*vx3; +// if (x == true) VeloX = c0o1; +// if (y == true) VeloY = c0o1; // feq=c1o54* (drho/*+three*(-vx1-vx2 )*/+c9o2*(-vx1-vx2 )*(-vx1-vx2 ) * (c1o1 + drho)-cu_sq); // (D.f[dPP0])[kne]=(c1o1-q)/(c1o1+q)*(f_SW-f_NE+(f_SW+f_NE-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_SW+f_NE)-c6o1*c1o54*(-VeloX-VeloY))/(c1o1+q) - c1o54 * drho; // //feq=c1over54* (drho+three*(-vx1-vx2 )+c9over2*(-vx1-vx2 )*(-vx1-vx2 )-cu_sq); @@ -3031,11 +3031,11 @@ __global__ void QSlipPressureDeviceComp27TurbViscosity( // q = q_dirSE[k]; // if (q>=c0o1 && q<=c1o1) // { -// VeloX = fac*vx1; -// VeloY = fac*vx2; -// VeloZ = fac*vx3; -// if (x == true) VeloX = c0o1; -// if (y == true) VeloY = c0o1; +// VeloX = fac*vx1; +// VeloY = fac*vx2; +// VeloZ = fac*vx3; +// if (x == true) VeloX = c0o1; +// if (y == true) VeloY = c0o1; // feq=c1o54* (drho/*+three*( vx1-vx2 )*/+c9o2*( vx1-vx2 )*( vx1-vx2 ) * (c1o1 + drho)-cu_sq); // (D.f[dMP0])[knw]=(c1o1-q)/(c1o1+q)*(f_SE-f_NW+(f_SE+f_NW-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_SE+f_NW)-c6o1*c1o54*( VeloX-VeloY))/(c1o1+q) - c1o54 * drho; // //feq=c1over54* (drho+three*( vx1-vx2 )+c9over2*( vx1-vx2 )*( vx1-vx2 )-cu_sq); @@ -3046,11 +3046,11 @@ __global__ void QSlipPressureDeviceComp27TurbViscosity( // q = q_dirNW[k]; // if (q>=c0o1 && q<=c1o1) // { -// VeloX = fac*vx1; -// VeloY = fac*vx2; -// VeloZ = fac*vx3; -// if (x == true) VeloX = c0o1; -// if (y == true) VeloY = c0o1; +// VeloX = fac*vx1; +// VeloY = fac*vx2; +// VeloZ = fac*vx3; +// if (x == true) VeloX = c0o1; +// if (y == true) VeloY = c0o1; // feq=c1o54* (drho/*+three*(-vx1+vx2 )*/+c9o2*(-vx1+vx2 )*(-vx1+vx2 ) * (c1o1 + drho)-cu_sq); // (D.f[dPM0])[kse]=(c1o1-q)/(c1o1+q)*(f_NW-f_SE+(f_NW+f_SE-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_NW+f_SE)-c6o1*c1o54*(-VeloX+VeloY))/(c1o1+q) - c1o54 * drho; // //feq=c1over54* (drho+three*(-vx1+vx2 )+c9over2*(-vx1+vx2 )*(-vx1+vx2 )-cu_sq); @@ -3061,11 +3061,11 @@ __global__ void QSlipPressureDeviceComp27TurbViscosity( // q = q_dirTE[k]; // if (q>=c0o1 && q<=c1o1) // { -// VeloX = fac*vx1; -// VeloY = fac*vx2; -// VeloZ = fac*vx3; -// if (x == true) VeloX = c0o1; -// if (z == true) VeloZ = c0o1; +// VeloX = fac*vx1; +// VeloY = fac*vx2; +// VeloZ = fac*vx3; +// if (x == true) VeloX = c0o1; +// if (z == true) VeloZ = c0o1; // // if (k==10000) printf("AFTER x: %u \t y: %u \t z: %u \n VeloX: %f \t VeloY: %f \t VeloZ: %f \n\n", x,y,z, VeloX,VeloY,VeloZ); // feq=c1o54* (drho/*+three*( vx1 +vx3)*/+c9o2*( vx1 +vx3)*( vx1 +vx3) * (c1o1 + drho)-cu_sq); // (D.f[dM0M])[kbw]=(c1o1-q)/(c1o1+q)*(f_TE-f_BW+(f_TE+f_BW-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_TE+f_BW)-c6o1*c1o54*( VeloX+VeloZ))/(c1o1+q) - c1o54 * drho; @@ -3077,11 +3077,11 @@ __global__ void QSlipPressureDeviceComp27TurbViscosity( // q = q_dirBW[k]; // if (q>=c0o1 && q<=c1o1) // { -// VeloX = fac*vx1; -// VeloY = fac*vx2; -// VeloZ = fac*vx3; -// if (x == true) VeloX = c0o1; -// if (z == true) VeloZ = c0o1; +// VeloX = fac*vx1; +// VeloY = fac*vx2; +// VeloZ = fac*vx3; +// if (x == true) VeloX = c0o1; +// if (z == true) VeloZ = c0o1; // feq=c1o54* (drho/*+three*(-vx1 -vx3)*/+c9o2*(-vx1 -vx3)*(-vx1 -vx3) * (c1o1 + drho)-cu_sq); // (D.f[dP0P])[kte]=(c1o1-q)/(c1o1+q)*(f_BW-f_TE+(f_BW+f_TE-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_BW+f_TE)-c6o1*c1o54*(-VeloX-VeloZ))/(c1o1+q) - c1o54 * drho; // //feq=c1over54* (drho+three*(-vx1 -vx3)+c9over2*(-vx1 -vx3)*(-vx1 -vx3)-cu_sq); @@ -3092,11 +3092,11 @@ __global__ void QSlipPressureDeviceComp27TurbViscosity( // q = q_dirBE[k]; // if (q>=c0o1 && q<=c1o1) // { -// VeloX = fac*vx1; -// VeloY = fac*vx2; -// VeloZ = fac*vx3; -// if (x == true) VeloX = c0o1; -// if (z == true) VeloZ = c0o1; +// VeloX = fac*vx1; +// VeloY = fac*vx2; +// VeloZ = fac*vx3; +// if (x == true) VeloX = c0o1; +// if (z == true) VeloZ = c0o1; // feq=c1o54* (drho/*+three*( vx1 -vx3)*/+c9o2*( vx1 -vx3)*( vx1 -vx3) * (c1o1 + drho)-cu_sq); // (D.f[dM0P])[ktw]=(c1o1-q)/(c1o1+q)*(f_BE-f_TW+(f_BE+f_TW-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_BE+f_TW)-c6o1*c1o54*( VeloX-VeloZ))/(c1o1+q) - c1o54 * drho; // //feq=c1over54* (drho+three*( vx1 -vx3)+c9over2*( vx1 -vx3)*( vx1 -vx3)-cu_sq); @@ -3107,11 +3107,11 @@ __global__ void QSlipPressureDeviceComp27TurbViscosity( // q = q_dirTW[k]; // if (q>=c0o1 && q<=c1o1) // { -// VeloX = fac*vx1; -// VeloY = fac*vx2; -// VeloZ = fac*vx3; -// if (x == true) VeloX = c0o1; -// if (z == true) VeloZ = c0o1; +// VeloX = fac*vx1; +// VeloY = fac*vx2; +// VeloZ = fac*vx3; +// if (x == true) VeloX = c0o1; +// if (z == true) VeloZ = c0o1; // feq=c1o54* (drho/*+three*(-vx1 +vx3)*/+c9o2*(-vx1 +vx3)*(-vx1 +vx3) * (c1o1 + drho)-cu_sq); // (D.f[dP0M])[kbe]=(c1o1-q)/(c1o1+q)*(f_TW-f_BE+(f_TW+f_BE-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_TW+f_BE)-c6o1*c1o54*(-VeloX+VeloZ))/(c1o1+q) - c1o54 * drho; // //feq=c1over54* (drho+three*(-vx1 +vx3)+c9over2*(-vx1 +vx3)*(-vx1 +vx3)-cu_sq); @@ -3122,11 +3122,11 @@ __global__ void QSlipPressureDeviceComp27TurbViscosity( // q = q_dirTN[k]; // if (q>=c0o1 && q<=c1o1) // { -// VeloX = fac*vx1; -// VeloY = fac*vx2; -// VeloZ = fac*vx3; -// if (y == true) VeloY = c0o1; -// if (z == true) VeloZ = c0o1; +// VeloX = fac*vx1; +// VeloY = fac*vx2; +// VeloZ = fac*vx3; +// if (y == true) VeloY = c0o1; +// if (z == true) VeloZ = c0o1; // feq=c1o54* (drho/*+three*( vx2+vx3)*/+c9o2*( vx2+vx3)*( vx2+vx3) * (c1o1 + drho)-cu_sq); // (D.f[d0MM])[kbs]=(c1o1-q)/(c1o1+q)*(f_TN-f_BS+(f_TN+f_BS-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_TN+f_BS)-c6o1*c1o54*( VeloY+VeloZ))/(c1o1+q) - c1o54 * drho; // //feq=c1over54* (drho+three*( vx2+vx3)+c9over2*( vx2+vx3)*( vx2+vx3)-cu_sq); @@ -3137,11 +3137,11 @@ __global__ void QSlipPressureDeviceComp27TurbViscosity( // q = q_dirBS[k]; // if (q>=c0o1 && q<=c1o1) // { -// VeloX = fac*vx1; -// VeloY = fac*vx2; -// VeloZ = fac*vx3; -// if (y == true) VeloY = c0o1; -// if (z == true) VeloZ = c0o1; +// VeloX = fac*vx1; +// VeloY = fac*vx2; +// VeloZ = fac*vx3; +// if (y == true) VeloY = c0o1; +// if (z == true) VeloZ = c0o1; // feq=c1o54* (drho/*+three*( -vx2-vx3)*/+c9o2*( -vx2-vx3)*( -vx2-vx3) * (c1o1 + drho)-cu_sq); // (D.f[d0PP])[ktn]=(c1o1-q)/(c1o1+q)*(f_BS-f_TN+(f_BS+f_TN-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_BS+f_TN)-c6o1*c1o54*( -VeloY-VeloZ))/(c1o1+q) - c1o54 * drho; // //feq=c1over54* (drho+three*( -vx2-vx3)+c9over2*( -vx2-vx3)*( -vx2-vx3)-cu_sq); @@ -3152,11 +3152,11 @@ __global__ void QSlipPressureDeviceComp27TurbViscosity( // q = q_dirBN[k]; // if (q>=c0o1 && q<=c1o1) // { -// VeloX = fac*vx1; -// VeloY = fac*vx2; -// VeloZ = fac*vx3; -// if (y == true) VeloY = c0o1; -// if (z == true) VeloZ = c0o1; +// VeloX = fac*vx1; +// VeloY = fac*vx2; +// VeloZ = fac*vx3; +// if (y == true) VeloY = c0o1; +// if (z == true) VeloZ = c0o1; // feq=c1o54* (drho/*+three*( vx2-vx3)*/+c9o2*( vx2-vx3)*( vx2-vx3) * (c1o1 + drho)-cu_sq); // (D.f[d0MP])[kts]=(c1o1-q)/(c1o1+q)*(f_BN-f_TS+(f_BN+f_TS-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_BN+f_TS)-c6o1*c1o54*( VeloY-VeloZ))/(c1o1+q) - c1o54 * drho; // //feq=c1over54* (drho+three*( vx2-vx3)+c9over2*( vx2-vx3)*( vx2-vx3)-cu_sq); @@ -3167,11 +3167,11 @@ __global__ void QSlipPressureDeviceComp27TurbViscosity( // q = q_dirTS[k]; // if (q>=c0o1 && q<=c1o1) // { -// VeloX = fac*vx1; -// VeloY = fac*vx2; -// VeloZ = fac*vx3; -// if (y == true) VeloY = c0o1; -// if (z == true) VeloZ = c0o1; +// VeloX = fac*vx1; +// VeloY = fac*vx2; +// VeloZ = fac*vx3; +// if (y == true) VeloY = c0o1; +// if (z == true) VeloZ = c0o1; // feq=c1o54* (drho/*+three*( -vx2+vx3)*/+c9o2*( -vx2+vx3)*( -vx2+vx3) * (c1o1 + drho)-cu_sq); // (D.f[d0PM])[kbn]=(c1o1-q)/(c1o1+q)*(f_TS-f_BN+(f_TS+f_BN-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_TS+f_BN)-c6o1*c1o54*( -VeloY+VeloZ))/(c1o1+q) - c1o54 * drho; // //feq=c1over54* (drho+three*( -vx2+vx3)+c9over2*( -vx2+vx3)*( -vx2+vx3)-cu_sq); @@ -3182,12 +3182,12 @@ __global__ void QSlipPressureDeviceComp27TurbViscosity( // q = q_dirTNE[k]; // if (q>=c0o1 && q<=c1o1) // { -// VeloX = fac*vx1; -// VeloY = fac*vx2; -// VeloZ = fac*vx3; -// if (x == true) VeloX = c0o1; -// if (y == true) VeloY = c0o1; -// if (z == true) VeloZ = c0o1; +// VeloX = fac*vx1; +// VeloY = fac*vx2; +// VeloZ = fac*vx3; +// if (x == true) VeloX = c0o1; +// if (y == true) VeloY = c0o1; +// if (z == true) VeloZ = c0o1; // feq=c1o216*(drho/*+three*( vx1+vx2+vx3)*/+c9o2*( vx1+vx2+vx3)*( vx1+vx2+vx3) * (c1o1 + drho)-cu_sq); // (D.f[dMMM])[kbsw]=(c1o1-q)/(c1o1+q)*(f_TNE-f_BSW+(f_TNE+f_BSW-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_TNE+f_BSW)-c6o1*c1o216*( VeloX+VeloY+VeloZ))/(c1o1+q) - c1o216 * drho; // //feq=c1over216*(drho+three*( vx1+vx2+vx3)+c9over2*( vx1+vx2+vx3)*( vx1+vx2+vx3)-cu_sq); @@ -3198,12 +3198,12 @@ __global__ void QSlipPressureDeviceComp27TurbViscosity( // q = q_dirBSW[k]; // if (q>=c0o1 && q<=c1o1) // { -// VeloX = fac*vx1; -// VeloY = fac*vx2; -// VeloZ = fac*vx3; -// if (x == true) VeloX = c0o1; -// if (y == true) VeloY = c0o1; -// if (z == true) VeloZ = c0o1; +// VeloX = fac*vx1; +// VeloY = fac*vx2; +// VeloZ = fac*vx3; +// if (x == true) VeloX = c0o1; +// if (y == true) VeloY = c0o1; +// if (z == true) VeloZ = c0o1; // feq=c1o216*(drho/*+three*(-vx1-vx2-vx3)*/+c9o2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3) * (c1o1 + drho)-cu_sq); // (D.f[dPPP])[ktne]=(c1o1-q)/(c1o1+q)*(f_BSW-f_TNE+(f_BSW+f_TNE-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_BSW+f_TNE)-c6o1*c1o216*(-VeloX-VeloY-VeloZ))/(c1o1+q) - c1o216 * drho; // //feq=c1over216*(drho+three*(-vx1-vx2-vx3)+c9over2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3)-cu_sq); @@ -3214,12 +3214,12 @@ __global__ void QSlipPressureDeviceComp27TurbViscosity( // q = q_dirBNE[k]; // if (q>=c0o1 && q<=c1o1) // { -// VeloX = fac*vx1; -// VeloY = fac*vx2; -// VeloZ = fac*vx3; -// if (x == true) VeloX = c0o1; -// if (y == true) VeloY = c0o1; -// if (z == true) VeloZ = c0o1; +// VeloX = fac*vx1; +// VeloY = fac*vx2; +// VeloZ = fac*vx3; +// if (x == true) VeloX = c0o1; +// if (y == true) VeloY = c0o1; +// if (z == true) VeloZ = c0o1; // feq=c1o216*(drho/*+three*( vx1+vx2-vx3)*/+c9o2*( vx1+vx2-vx3)*( vx1+vx2-vx3) * (c1o1 + drho)-cu_sq); // (D.f[dMMP])[ktsw]=(c1o1-q)/(c1o1+q)*(f_BNE-f_TSW+(f_BNE+f_TSW-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_BNE+f_TSW)-c6o1*c1o216*( VeloX+VeloY-VeloZ))/(c1o1+q) - c1o216 * drho; // //feq=c1over216*(drho+three*( vx1+vx2-vx3)+c9over2*( vx1+vx2-vx3)*( vx1+vx2-vx3)-cu_sq); @@ -3230,12 +3230,12 @@ __global__ void QSlipPressureDeviceComp27TurbViscosity( // q = q_dirTSW[k]; // if (q>=c0o1 && q<=c1o1) // { -// VeloX = fac*vx1; -// VeloY = fac*vx2; -// VeloZ = fac*vx3; -// if (x == true) VeloX = c0o1; -// if (y == true) VeloY = c0o1; -// if (z == true) VeloZ = c0o1; +// VeloX = fac*vx1; +// VeloY = fac*vx2; +// VeloZ = fac*vx3; +// if (x == true) VeloX = c0o1; +// if (y == true) VeloY = c0o1; +// if (z == true) VeloZ = c0o1; // feq=c1o216*(drho/*+three*(-vx1-vx2+vx3)*/+c9o2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3) * (c1o1 + drho)-cu_sq); // (D.f[dPPM])[kbne]=(c1o1-q)/(c1o1+q)*(f_TSW-f_BNE+(f_TSW+f_BNE-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_TSW+f_BNE)-c6o1*c1o216*(-VeloX-VeloY+VeloZ))/(c1o1+q) - c1o216 * drho; // //feq=c1over216*(drho+three*(-vx1-vx2+vx3)+c9over2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3)-cu_sq); @@ -3246,12 +3246,12 @@ __global__ void QSlipPressureDeviceComp27TurbViscosity( // q = q_dirTSE[k]; // if (q>=c0o1 && q<=c1o1) // { -// VeloX = fac*vx1; -// VeloY = fac*vx2; -// VeloZ = fac*vx3; -// if (x == true) VeloX = c0o1; -// if (y == true) VeloY = c0o1; -// if (z == true) VeloZ = c0o1; +// VeloX = fac*vx1; +// VeloY = fac*vx2; +// VeloZ = fac*vx3; +// if (x == true) VeloX = c0o1; +// if (y == true) VeloY = c0o1; +// if (z == true) VeloZ = c0o1; // feq=c1o216*(drho/*+three*( vx1-vx2+vx3)*/+c9o2*( vx1-vx2+vx3)*( vx1-vx2+vx3) * (c1o1 + drho)-cu_sq); // (D.f[dMPM])[kbnw]=(c1o1-q)/(c1o1+q)*(f_TSE-f_BNW+(f_TSE+f_BNW-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_TSE+f_BNW)-c6o1*c1o216*( VeloX-VeloY+VeloZ))/(c1o1+q) - c1o216 * drho; // //feq=c1over216*(drho+three*( vx1-vx2+vx3)+c9over2*( vx1-vx2+vx3)*( vx1-vx2+vx3)-cu_sq); @@ -3262,12 +3262,12 @@ __global__ void QSlipPressureDeviceComp27TurbViscosity( // q = q_dirBNW[k]; // if (q>=c0o1 && q<=c1o1) // { -// VeloX = fac*vx1; -// VeloY = fac*vx2; -// VeloZ = fac*vx3; -// if (x == true) VeloX = c0o1; -// if (y == true) VeloY = c0o1; -// if (z == true) VeloZ = c0o1; +// VeloX = fac*vx1; +// VeloY = fac*vx2; +// VeloZ = fac*vx3; +// if (x == true) VeloX = c0o1; +// if (y == true) VeloY = c0o1; +// if (z == true) VeloZ = c0o1; // feq=c1o216*(drho/*+three*(-vx1+vx2-vx3)*/+c9o2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3) * (c1o1 + drho)-cu_sq); // (D.f[dPMP])[ktse]=(c1o1-q)/(c1o1+q)*(f_BNW-f_TSE+(f_BNW+f_TSE-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_BNW+f_TSE)-c6o1*c1o216*(-VeloX+VeloY-VeloZ))/(c1o1+q) - c1o216 * drho; // //feq=c1over216*(drho+three*(-vx1+vx2-vx3)+c9over2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3)-cu_sq); @@ -3278,12 +3278,12 @@ __global__ void QSlipPressureDeviceComp27TurbViscosity( // q = q_dirBSE[k]; // if (q>=c0o1 && q<=c1o1) // { -// VeloX = fac*vx1; -// VeloY = fac*vx2; -// VeloZ = fac*vx3; -// if (x == true) VeloX = c0o1; -// if (y == true) VeloY = c0o1; -// if (z == true) VeloZ = c0o1; +// VeloX = fac*vx1; +// VeloY = fac*vx2; +// VeloZ = fac*vx3; +// if (x == true) VeloX = c0o1; +// if (y == true) VeloY = c0o1; +// if (z == true) VeloZ = c0o1; // feq=c1o216*(drho/*+three*( vx1-vx2-vx3)*/+c9o2*( vx1-vx2-vx3)*( vx1-vx2-vx3) * (c1o1 + drho)-cu_sq); // (D.f[dMPP])[ktnw]=(c1o1-q)/(c1o1+q)*(f_BSE-f_TNW+(f_BSE+f_TNW-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_BSE+f_TNW)-c6o1*c1o216*( VeloX-VeloY-VeloZ))/(c1o1+q) - c1o216 * drho; // //feq=c1over216*(drho+three*( vx1-vx2-vx3)+c9over2*( vx1-vx2-vx3)*( vx1-vx2-vx3)-cu_sq); @@ -3294,12 +3294,12 @@ __global__ void QSlipPressureDeviceComp27TurbViscosity( // q = q_dirTNW[k]; // if (q>=c0o1 && q<=c1o1) // { -// VeloX = fac*vx1; -// VeloY = fac*vx2; -// VeloZ = fac*vx3; -// if (x == true) VeloX = c0o1; -// if (y == true) VeloY = c0o1; -// if (z == true) VeloZ = c0o1; +// VeloX = fac*vx1; +// VeloY = fac*vx2; +// VeloZ = fac*vx3; +// if (x == true) VeloX = c0o1; +// if (y == true) VeloY = c0o1; +// if (z == true) VeloZ = c0o1; // feq=c1o216*(drho/*+three*(-vx1+vx2+vx3)*/+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3) * (c1o1 + drho)-cu_sq); // (D.f[dPMM])[kbse]=(c1o1-q)/(c1o1+q)*(f_TNW-f_BSE+(f_TNW+f_BSE-c2o1*feq*om_turb)/(c1o1-om_turb))*c1o2+(q*(f_TNW+f_BSE)-c6o1*c1o216*(-VeloX+VeloY+VeloZ))/(c1o1+q) - c1o216 * drho; // //feq=c1over216*(drho+three*(-vx1+vx2+vx3)+c9over2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cu_sq); @@ -3704,42 +3704,42 @@ __global__ void QSlipGeomDeviceComp27( D.f[dMPM] = &DD[dPMP * numberOfLBnodes]; } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real VeloX = vx1; - real VeloY = vx2; - real VeloZ = vx3; - real fac = c0o1;//0.5; - real phi = c0o1; - //real alpha = c1o100; + real VeloX = vx1; + real VeloY = vx2; + real VeloZ = vx3; + real fac = c0o1;//0.5; + real phi = c0o1; + //real alpha = c1o100; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// real kxyFromfcNEQ = -(c3o1 * om1 / (c1o1-om1))*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho) - ((vx1*vx2))); real kyzFromfcNEQ = -(c3o1 * om1 / (c1o1-om1))*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho) - ((vx2*vx3))); real kxzFromfcNEQ = -(c3o1 * om1 / (c1o1-om1))*((f_BW+f_BSW+f_BNW-f_TW-f_TSW-f_TNW-f_BE-f_BSE-f_BNE+f_TE+f_TSE+f_TNE ) / (c1o1 + drho) - ((vx1*vx3))); - real kxxFromfcNEQ = -(c3o1 * om1 / (c1o1-om1))*((f_E+f_NE+f_SE+f_TE+f_BE+f_W+f_NW+f_SW+f_TW+f_BW+ f_TNE+f_TSE+f_BNE+f_TNE+ f_TNW+f_TSW+f_BNW+f_TNW ) / (c1o1 + drho) - ((c1o3*drho + vx1*vx1))); - real kyyFromfcNEQ = -(c3o1 * om1 / (c1o1-om1))*((f_N+f_NE+f_NW+f_TN+f_BN+f_S+f_SE+f_SW+f_TS+f_BS+ f_TNE+f_TSE+f_BNE+f_TNE+ f_TNW+f_TSW+f_BNW+f_TNW ) / (c1o1 + drho) - ((c1o3*drho + vx2*vx2))); - real kzzFromfcNEQ = -(c3o1 * om1 / (c1o1-om1))*((f_T+f_TE+f_TW+f_TN+f_BS+f_B+f_BE+f_BW+f_BN+f_BS+ f_TNE+f_TSE+f_BNE+f_TNE+ f_TNW+f_TSW+f_BNW+f_TNW ) / (c1o1 + drho) - ((c1o3*drho + vx3*vx3))); + real kxxFromfcNEQ = -(c3o1 * om1 / (c1o1-om1))*((f_E+f_NE+f_SE+f_TE+f_BE+f_W+f_NW+f_SW+f_TW+f_BW+ f_TNE+f_TSE+f_BNE+f_TNE+ f_TNW+f_TSW+f_BNW+f_TNW ) / (c1o1 + drho) - ((c1o3*drho + vx1*vx1))); + real kyyFromfcNEQ = -(c3o1 * om1 / (c1o1-om1))*((f_N+f_NE+f_NW+f_TN+f_BN+f_S+f_SE+f_SW+f_TS+f_BS+ f_TNE+f_TSE+f_BNE+f_TNE+ f_TNW+f_TSW+f_BNW+f_TNW ) / (c1o1 + drho) - ((c1o3*drho + vx2*vx2))); + real kzzFromfcNEQ = -(c3o1 * om1 / (c1o1-om1))*((f_T+f_TE+f_TW+f_TN+f_BS+f_B+f_BE+f_BW+f_BN+f_BS+ f_TNE+f_TSE+f_BNE+f_TNE+ f_TNW+f_TSW+f_BNW+f_TNW ) / (c1o1 + drho) - ((c1o3*drho + vx3*vx3))); - real magS = sqrtf(kxyFromfcNEQ*kxyFromfcNEQ + kyzFromfcNEQ*kyzFromfcNEQ + kxzFromfcNEQ*kxzFromfcNEQ + kxxFromfcNEQ*kxxFromfcNEQ + kyyFromfcNEQ*kyyFromfcNEQ + kzzFromfcNEQ*kzzFromfcNEQ); + real magS = sqrtf(kxyFromfcNEQ*kxyFromfcNEQ + kyzFromfcNEQ*kyzFromfcNEQ + kxzFromfcNEQ*kxzFromfcNEQ + kxxFromfcNEQ*kxxFromfcNEQ + kyyFromfcNEQ*kyyFromfcNEQ + kzzFromfcNEQ*kzzFromfcNEQ); - //fac = fac * magS / (c1o3 * (one / om1 - c1o2)); + //fac = fac * magS / (c1o3 * (one / om1 - c1o2)); // //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //real *facAst = &QQ[d000 * numberOfBCnodes]; + //real *facAst = &QQ[d000 * numberOfBCnodes]; - //fac = fac * alpha + facAst[k] * (one - alpha); - //facAst[k] = fac; - //(&QQ[d000 * numberOfBCnodes])[KQK] = fac; + //fac = fac * alpha + facAst[k] * (one - alpha); + //facAst[k] = fac; + //(&QQ[d000 * numberOfBCnodes])[KQK] = fac; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - ////real uk = sqrtf(vx1*vx1 + vx2*vx2 + vx3*vx3); + ////real uk = sqrtf(vx1*vx1 + vx2*vx2 + vx3*vx3); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //real phi = expf(magS/0.01f) - one; - //phi = (phi > one) ? one:phi; + //real phi = expf(magS/0.01f) - one; + //phi = (phi > one) ? one:phi; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //real C = five; - //real kappa = 0.41f; - //real phi = (C * kappa * c1o2 * logf(magS / (c1o3 * (one / om1 - c1o2))) - one) / (C * kappa * c1o2 * logf(magS / (c1o3 * (one / om1 - c1o2)))); - //phi = (phi < zero) ? zero:phi; + //real C = five; + //real kappa = 0.41f; + //real phi = (C * kappa * c1o2 * logf(magS / (c1o3 * (one / om1 - c1o2))) - one) / (C * kappa * c1o2 * logf(magS / (c1o3 * (one / om1 - c1o2)))); + //phi = (phi < zero) ? zero:phi; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //real sum = zero, count = zero; + //real sum = zero, count = zero; // q = q_dirE [k]; if (q>=zero && q<=one) sum += (q * nx_dirE[k] ); count += one; // q = q_dirW [k]; if (q>=zero && q<=one) sum += (q * (-nx_dirW[k])); count += one; // q = q_dirN [k]; if (q>=zero && q<=one) sum += (q * nx_dirN[k] ); count += one; @@ -3766,22 +3766,22 @@ __global__ void QSlipGeomDeviceComp27( // q = q_dirBSW [k]; if (q>=zero && q<=one) sum += (q * ((-nx_dirBSW[k])- ny_dirBSW[k] - nz_dirBSW[k])/(sqrtf(three))); count += one; // q = q_dirBSE [k]; if (q>=zero && q<=one) sum += (q * ( nx_dirBSE[k] - ny_dirBSE[k] - nz_dirBSE[k])/(sqrtf(three))); count += one; // q = q_dirBNW [k]; if (q>=zero && q<=one) sum += (q * ((-nx_dirBNW[k])+ ny_dirBNW[k] - nz_dirBNW[k])/(sqrtf(three))); count += one; - //real qMed = sum/count; - //real phi = fac / (qMed + fac); - //phi = (phi > one) ? one:one; + //real qMed = sum/count; + //real phi = fac / (qMed + fac); + //phi = (phi > one) ? one:one; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real testQ = c2o1; + real testQ = c2o1; q = q_dirE[k]; if (q>=c0o1 && q<=c1o1) { - VeloX = vx1 - (vx1 * nx_dirE[k] + vx2 * ny_dirE[k] + vx3 * nz_dirE[k]) * nx_dirE[k]; - //phi = fac * (one + magS / (c0p0000002+uk) * (one-q)); - //phi = phi > one ? one:phi; - //phi = fac; //Test - q = testQ; //AAAAHHHHHH bitte wieder raus nehmen!!!! - phi = fac / (q * fabs( nx_dirE[k]) + fac); - VeloX *= phi; + VeloX = vx1 - (vx1 * nx_dirE[k] + vx2 * ny_dirE[k] + vx3 * nz_dirE[k]) * nx_dirE[k]; + //phi = fac * (one + magS / (c0p0000002+uk) * (one-q)); + //phi = phi > one ? one:phi; + //phi = fac; //Test + q = testQ; //AAAAHHHHHH bitte wieder raus nehmen!!!! + phi = fac / (q * fabs( nx_dirE[k]) + fac); + VeloX *= phi; feq=c2o27* (drho/*+three*( vx1 )*/+c9o2*( vx1 )*( vx1 ) * (c1o1 + drho)-cu_sq); (D.f[dM00])[kw]=(c1o1-q)/(c1o1+q)*(f_E-f_W+(f_E+f_W-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_E+f_W)-c6o1*c2o27*( VeloX ))/(c1o1+q) - c2o27 * drho; } @@ -3789,13 +3789,13 @@ __global__ void QSlipGeomDeviceComp27( q = q_dirW[k]; if (q>=c0o1 && q<=c1o1) { - VeloX = vx1 - (vx1 * nx_dirW[k] + vx2 * ny_dirW[k] + vx3 * nz_dirW[k]) * nx_dirW[k]; - //phi = fac * (one + magS / (c0p0000002+uk) * (one-q)); - //phi = phi > one ? one:phi; - //phi = fac; //Test - q = testQ; //AAAAHHHHHH bitte wieder raus nehmen!!!! - phi = fac / (q * fabs(-nx_dirW[k]) + fac); - VeloX *= phi; + VeloX = vx1 - (vx1 * nx_dirW[k] + vx2 * ny_dirW[k] + vx3 * nz_dirW[k]) * nx_dirW[k]; + //phi = fac * (one + magS / (c0p0000002+uk) * (one-q)); + //phi = phi > one ? one:phi; + //phi = fac; //Test + q = testQ; //AAAAHHHHHH bitte wieder raus nehmen!!!! + phi = fac / (q * fabs(-nx_dirW[k]) + fac); + VeloX *= phi; feq=c2o27* (drho/*+three*(-vx1 )*/+c9o2*(-vx1 )*(-vx1 ) * (c1o1 + drho)-cu_sq); (D.f[dP00])[ke]=(c1o1-q)/(c1o1+q)*(f_W-f_E+(f_W+f_E-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_W+f_E)-c6o1*c2o27*(-VeloX ))/(c1o1+q) - c2o27 * drho; } @@ -3803,13 +3803,13 @@ __global__ void QSlipGeomDeviceComp27( q = q_dirN[k]; if (q>=c0o1 && q<=c1o1) { - VeloY = vx2 - (vx1 * nx_dirN[k] + vx2 * ny_dirN[k] + vx3 * nz_dirN[k]) * ny_dirN[k]; - //phi = fac * (one + magS / (c0p0000002+uk) * (one-q)); - //phi = phi > one ? one:phi; - //phi = fac; //Test - q = testQ; //AAAAHHHHHH bitte wieder raus nehmen!!!! - phi = fac / (q * fabs( ny_dirN[k]) + fac); - VeloY *= phi; + VeloY = vx2 - (vx1 * nx_dirN[k] + vx2 * ny_dirN[k] + vx3 * nz_dirN[k]) * ny_dirN[k]; + //phi = fac * (one + magS / (c0p0000002+uk) * (one-q)); + //phi = phi > one ? one:phi; + //phi = fac; //Test + q = testQ; //AAAAHHHHHH bitte wieder raus nehmen!!!! + phi = fac / (q * fabs( ny_dirN[k]) + fac); + VeloY *= phi; feq=c2o27* (drho/*+three*( vx2 )*/+c9o2*( vx2 )*( vx2 ) * (c1o1 + drho)-cu_sq); (D.f[d0M0])[ks]=(c1o1-q)/(c1o1+q)*(f_N-f_S+(f_N+f_S-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_N+f_S)-c6o1*c2o27*( VeloY ))/(c1o1+q) - c2o27 * drho; } @@ -3817,13 +3817,13 @@ __global__ void QSlipGeomDeviceComp27( q = q_dirS[k]; if (q>=c0o1 && q<=c1o1) { - VeloY = vx2 - (vx1 * nx_dirS[k] + vx2 * ny_dirS[k] + vx3 * nz_dirS[k]) * ny_dirS[k]; - //phi = fac * (one + magS / (c0p0000002+uk) * (one-q)); - //phi = phi > one ? one:phi; - //phi = fac; //Test - q = testQ; //AAAAHHHHHH bitte wieder raus nehmen!!!! - phi = fac / (q * fabs(-ny_dirS[k]) + fac); - VeloY *= phi; + VeloY = vx2 - (vx1 * nx_dirS[k] + vx2 * ny_dirS[k] + vx3 * nz_dirS[k]) * ny_dirS[k]; + //phi = fac * (one + magS / (c0p0000002+uk) * (one-q)); + //phi = phi > one ? one:phi; + //phi = fac; //Test + q = testQ; //AAAAHHHHHH bitte wieder raus nehmen!!!! + phi = fac / (q * fabs(-ny_dirS[k]) + fac); + VeloY *= phi; feq=c2o27* (drho/*+three*( -vx2 )*/+c9o2*( -vx2 )*( -vx2 ) * (c1o1 + drho)-cu_sq); (D.f[d0P0])[kn]=(c1o1-q)/(c1o1+q)*(f_S-f_N+(f_S+f_N-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_S+f_N)-c6o1*c2o27*(-VeloY ))/(c1o1+q) - c2o27 * drho; } @@ -3831,13 +3831,13 @@ __global__ void QSlipGeomDeviceComp27( q = q_dirT[k]; if (q>=c0o1 && q<=c1o1) { - VeloZ = vx3 - (vx1 * nx_dirT[k] + vx2 * ny_dirT[k] + vx3 * nz_dirT[k]) * nz_dirT[k]; - //phi = fac * (one + magS / (c0p0000002+uk) * (one-q)); - //phi = phi > one ? one:phi; - //phi = fac; //Test - q = testQ; //AAAAHHHHHH bitte wieder raus nehmen!!!! - phi = fac / (q * fabs( nz_dirT[k]) + fac); - VeloZ *= phi; + VeloZ = vx3 - (vx1 * nx_dirT[k] + vx2 * ny_dirT[k] + vx3 * nz_dirT[k]) * nz_dirT[k]; + //phi = fac * (one + magS / (c0p0000002+uk) * (one-q)); + //phi = phi > one ? one:phi; + //phi = fac; //Test + q = testQ; //AAAAHHHHHH bitte wieder raus nehmen!!!! + phi = fac / (q * fabs( nz_dirT[k]) + fac); + VeloZ *= phi; feq=c2o27* (drho/*+three*( vx3)*/+c9o2*( vx3)*( vx3) * (c1o1 + drho)-cu_sq); (D.f[d00M])[kb]=(c1o1-q)/(c1o1+q)*(f_T-f_B+(f_T+f_B-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_T+f_B)-c6o1*c2o27*( VeloZ ))/(c1o1+q) - c2o27 * drho; } @@ -3845,13 +3845,13 @@ __global__ void QSlipGeomDeviceComp27( q = q_dirB[k]; if (q>=c0o1 && q<=c1o1) { - VeloZ = vx3 - (vx1 * nx_dirB[k] + vx2 * ny_dirB[k] + vx3 * nz_dirB[k]) * nz_dirB[k]; - //phi = fac * (one + magS / (c0p0000002+uk) * (one-q)); - //phi = phi > one ? one:phi; - //phi = fac; //Test - q = testQ; //AAAAHHHHHH bitte wieder raus nehmen!!!! - phi = fac / (q * fabs(-nz_dirB[k]) + fac); - VeloZ *= phi; + VeloZ = vx3 - (vx1 * nx_dirB[k] + vx2 * ny_dirB[k] + vx3 * nz_dirB[k]) * nz_dirB[k]; + //phi = fac * (one + magS / (c0p0000002+uk) * (one-q)); + //phi = phi > one ? one:phi; + //phi = fac; //Test + q = testQ; //AAAAHHHHHH bitte wieder raus nehmen!!!! + phi = fac / (q * fabs(-nz_dirB[k]) + fac); + VeloZ *= phi; feq=c2o27* (drho/*+three*( -vx3)*/+c9o2*( -vx3)*( -vx3) * (c1o1 + drho)-cu_sq); (D.f[d00P])[kt]=(c1o1-q)/(c1o1+q)*(f_B-f_T+(f_B+f_T-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_B+f_T)-c6o1*c2o27*(-VeloZ ))/(c1o1+q) - c2o27 * drho; } @@ -3859,15 +3859,15 @@ __global__ void QSlipGeomDeviceComp27( q = q_dirNE[k]; if (q>=c0o1 && q<=c1o1) { - VeloX = vx1 - (vx1 * nx_dirNE[k] + vx2 * ny_dirNE[k] + vx3 * nz_dirNE[k]) * nx_dirNE[k]; - VeloY = vx2 - (vx1 * nx_dirNE[k] + vx2 * ny_dirNE[k] + vx3 * nz_dirNE[k]) * ny_dirNE[k]; - //phi = fac * (one + magS / (c0p0000002+uk) * (one-q)); - //phi = phi > one ? one:phi; - //phi = fac; //Test - q = testQ; //AAAAHHHHHH bitte wieder raus nehmen!!!! - phi = fac / (q * fabs( nx_dirNE[k] + ny_dirNE[k]) + fac); - VeloX *= phi; - VeloY *= phi; + VeloX = vx1 - (vx1 * nx_dirNE[k] + vx2 * ny_dirNE[k] + vx3 * nz_dirNE[k]) * nx_dirNE[k]; + VeloY = vx2 - (vx1 * nx_dirNE[k] + vx2 * ny_dirNE[k] + vx3 * nz_dirNE[k]) * ny_dirNE[k]; + //phi = fac * (one + magS / (c0p0000002+uk) * (one-q)); + //phi = phi > one ? one:phi; + //phi = fac; //Test + q = testQ; //AAAAHHHHHH bitte wieder raus nehmen!!!! + phi = fac / (q * fabs( nx_dirNE[k] + ny_dirNE[k]) + fac); + VeloX *= phi; + VeloY *= phi; feq=c1o54* (drho/*+three*( vx1+vx2 )*/+c9o2*( vx1+vx2 )*( vx1+vx2 ) * (c1o1 + drho)-cu_sq); (D.f[dMM0])[ksw]=(c1o1-q)/(c1o1+q)*(f_NE-f_SW+(f_NE+f_SW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_NE+f_SW)-c6o1*c1o54*(VeloX+VeloY))/(c1o1+q) - c1o54 * drho; } @@ -3875,15 +3875,15 @@ __global__ void QSlipGeomDeviceComp27( q = q_dirSW[k]; if (q>=c0o1 && q<=c1o1) { - VeloX = vx1 - (vx1 * nx_dirSW[k] + vx2 * ny_dirSW[k] + vx3 * nz_dirSW[k]) * nx_dirSW[k]; - VeloY = vx2 - (vx1 * nx_dirSW[k] + vx2 * ny_dirSW[k] + vx3 * nz_dirSW[k]) * ny_dirSW[k]; - //phi = fac * (one + magS / (c0p0000002+uk) * (one-q)); - //phi = phi > one ? one:phi; - //phi = fac; //Test - q = testQ; //AAAAHHHHHH bitte wieder raus nehmen!!!! - phi = fac / (q * fabs(-nx_dirSW[k] - ny_dirSW[k]) + fac); - VeloX *= phi; - VeloY *= phi; + VeloX = vx1 - (vx1 * nx_dirSW[k] + vx2 * ny_dirSW[k] + vx3 * nz_dirSW[k]) * nx_dirSW[k]; + VeloY = vx2 - (vx1 * nx_dirSW[k] + vx2 * ny_dirSW[k] + vx3 * nz_dirSW[k]) * ny_dirSW[k]; + //phi = fac * (one + magS / (c0p0000002+uk) * (one-q)); + //phi = phi > one ? one:phi; + //phi = fac; //Test + q = testQ; //AAAAHHHHHH bitte wieder raus nehmen!!!! + phi = fac / (q * fabs(-nx_dirSW[k] - ny_dirSW[k]) + fac); + VeloX *= phi; + VeloY *= phi; feq=c1o54* (drho/*+three*(-vx1-vx2 )*/+c9o2*(-vx1-vx2 )*(-vx1-vx2 ) * (c1o1 + drho)-cu_sq); (D.f[dPP0])[kne]=(c1o1-q)/(c1o1+q)*(f_SW-f_NE+(f_SW+f_NE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_SW+f_NE)-c6o1*c1o54*(-VeloX-VeloY))/(c1o1+q) - c1o54 * drho; } @@ -3891,15 +3891,15 @@ __global__ void QSlipGeomDeviceComp27( q = q_dirSE[k]; if (q>=c0o1 && q<=c1o1) { - VeloX = vx1 - (vx1 * nx_dirSE[k] + vx2 * ny_dirSE[k] + vx3 * nz_dirSE[k]) * nx_dirSE[k]; - VeloY = vx2 - (vx1 * nx_dirSE[k] + vx2 * ny_dirSE[k] + vx3 * nz_dirSE[k]) * ny_dirSE[k]; - //phi = fac * (one + magS / (c0p0000002+uk) * (one-q)); - //phi = phi > one ? one:phi; - //phi = fac; //Test - q = testQ; //AAAAHHHHHH bitte wieder raus nehmen!!!! - phi = fac / (q * fabs( nx_dirSE[k] - ny_dirSE[k]) + fac); - VeloX *= phi; - VeloY *= phi; + VeloX = vx1 - (vx1 * nx_dirSE[k] + vx2 * ny_dirSE[k] + vx3 * nz_dirSE[k]) * nx_dirSE[k]; + VeloY = vx2 - (vx1 * nx_dirSE[k] + vx2 * ny_dirSE[k] + vx3 * nz_dirSE[k]) * ny_dirSE[k]; + //phi = fac * (one + magS / (c0p0000002+uk) * (one-q)); + //phi = phi > one ? one:phi; + //phi = fac; //Test + q = testQ; //AAAAHHHHHH bitte wieder raus nehmen!!!! + phi = fac / (q * fabs( nx_dirSE[k] - ny_dirSE[k]) + fac); + VeloX *= phi; + VeloY *= phi; feq=c1o54* (drho/*+three*( vx1-vx2 )*/+c9o2*( vx1-vx2 )*( vx1-vx2 ) * (c1o1 + drho)-cu_sq); (D.f[dMP0])[knw]=(c1o1-q)/(c1o1+q)*(f_SE-f_NW+(f_SE+f_NW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_SE+f_NW)-c6o1*c1o54*( VeloX-VeloY))/(c1o1+q) - c1o54 * drho; } @@ -3907,15 +3907,15 @@ __global__ void QSlipGeomDeviceComp27( q = q_dirNW[k]; if (q>=c0o1 && q<=c1o1) { - VeloX = vx1 - (vx1 * nx_dirNW[k] + vx2 * ny_dirNW[k] + vx3 * nz_dirNW[k]) * nx_dirNW[k]; - VeloY = vx2 - (vx1 * nx_dirNW[k] + vx2 * ny_dirNW[k] + vx3 * nz_dirNW[k]) * ny_dirNW[k]; - //phi = fac * (one + magS / (c0p0000002+uk) * (one-q)); - //phi = phi > one ? one:phi; - //phi = fac; //Test - q = testQ; //AAAAHHHHHH bitte wieder raus nehmen!!!! - phi = fac / (q * fabs(-nx_dirNW[k] + ny_dirNW[k]) + fac); - VeloX *= phi; - VeloY *= phi; + VeloX = vx1 - (vx1 * nx_dirNW[k] + vx2 * ny_dirNW[k] + vx3 * nz_dirNW[k]) * nx_dirNW[k]; + VeloY = vx2 - (vx1 * nx_dirNW[k] + vx2 * ny_dirNW[k] + vx3 * nz_dirNW[k]) * ny_dirNW[k]; + //phi = fac * (one + magS / (c0p0000002+uk) * (one-q)); + //phi = phi > one ? one:phi; + //phi = fac; //Test + q = testQ; //AAAAHHHHHH bitte wieder raus nehmen!!!! + phi = fac / (q * fabs(-nx_dirNW[k] + ny_dirNW[k]) + fac); + VeloX *= phi; + VeloY *= phi; feq=c1o54* (drho/*+three*(-vx1+vx2 )*/+c9o2*(-vx1+vx2 )*(-vx1+vx2 ) * (c1o1 + drho)-cu_sq); (D.f[dPM0])[kse]=(c1o1-q)/(c1o1+q)*(f_NW-f_SE+(f_NW+f_SE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_NW+f_SE)-c6o1*c1o54*(-VeloX+VeloY))/(c1o1+q) - c1o54 * drho; } @@ -3923,15 +3923,15 @@ __global__ void QSlipGeomDeviceComp27( q = q_dirTE[k]; if (q>=c0o1 && q<=c1o1) { - VeloX = vx1 - (vx1 * nx_dirTE[k] + vx2 * ny_dirTE[k] + vx3 * nz_dirTE[k]) * nx_dirTE[k]; - VeloZ = vx3 - (vx1 * nx_dirTE[k] + vx2 * ny_dirTE[k] + vx3 * nz_dirTE[k]) * nz_dirTE[k]; - //phi = fac * (one + magS / (c0p0000002+uk) * (one-q)); - //phi = phi > one ? one:phi; - //phi = fac; //Test - q = testQ; //AAAAHHHHHH bitte wieder raus nehmen!!!! - phi = fac / (q * fabs( nx_dirTE[k] + nz_dirTE[k]) + fac); - VeloX *= phi; - VeloZ *= phi; + VeloX = vx1 - (vx1 * nx_dirTE[k] + vx2 * ny_dirTE[k] + vx3 * nz_dirTE[k]) * nx_dirTE[k]; + VeloZ = vx3 - (vx1 * nx_dirTE[k] + vx2 * ny_dirTE[k] + vx3 * nz_dirTE[k]) * nz_dirTE[k]; + //phi = fac * (one + magS / (c0p0000002+uk) * (one-q)); + //phi = phi > one ? one:phi; + //phi = fac; //Test + q = testQ; //AAAAHHHHHH bitte wieder raus nehmen!!!! + phi = fac / (q * fabs( nx_dirTE[k] + nz_dirTE[k]) + fac); + VeloX *= phi; + VeloZ *= phi; feq=c1o54* (drho/*+three*( vx1 +vx3)*/+c9o2*( vx1 +vx3)*( vx1 +vx3) * (c1o1 + drho)-cu_sq); (D.f[dM0M])[kbw]=(c1o1-q)/(c1o1+q)*(f_TE-f_BW+(f_TE+f_BW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TE+f_BW)-c6o1*c1o54*( VeloX+VeloZ))/(c1o1+q) - c1o54 * drho; } @@ -3939,15 +3939,15 @@ __global__ void QSlipGeomDeviceComp27( q = q_dirBW[k]; if (q>=c0o1 && q<=c1o1) { - VeloX = vx1 - (vx1 * nx_dirBW[k] + vx2 * ny_dirBW[k] + vx3 * nz_dirBW[k]) * nx_dirBW[k]; - VeloZ = vx3 - (vx1 * nx_dirBW[k] + vx2 * ny_dirBW[k] + vx3 * nz_dirBW[k]) * nz_dirBW[k]; - //phi = fac * (one + magS / (c0p0000002+uk) * (one-q)); - //phi = phi > one ? one:phi; - //phi = fac; //Test - q = testQ; //AAAAHHHHHH bitte wieder raus nehmen!!!! - phi = fac / (q * fabs(-nx_dirBW[k] - nz_dirBW[k]) + fac); - VeloX *= phi; - VeloZ *= phi; + VeloX = vx1 - (vx1 * nx_dirBW[k] + vx2 * ny_dirBW[k] + vx3 * nz_dirBW[k]) * nx_dirBW[k]; + VeloZ = vx3 - (vx1 * nx_dirBW[k] + vx2 * ny_dirBW[k] + vx3 * nz_dirBW[k]) * nz_dirBW[k]; + //phi = fac * (one + magS / (c0p0000002+uk) * (one-q)); + //phi = phi > one ? one:phi; + //phi = fac; //Test + q = testQ; //AAAAHHHHHH bitte wieder raus nehmen!!!! + phi = fac / (q * fabs(-nx_dirBW[k] - nz_dirBW[k]) + fac); + VeloX *= phi; + VeloZ *= phi; feq=c1o54* (drho/*+three*(-vx1 -vx3)*/+c9o2*(-vx1 -vx3)*(-vx1 -vx3) * (c1o1 + drho)-cu_sq); (D.f[dP0P])[kte]=(c1o1-q)/(c1o1+q)*(f_BW-f_TE+(f_BW+f_TE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BW+f_TE)-c6o1*c1o54*(-VeloX-VeloZ))/(c1o1+q) - c1o54 * drho; } @@ -3955,15 +3955,15 @@ __global__ void QSlipGeomDeviceComp27( q = q_dirBE[k]; if (q>=c0o1 && q<=c1o1) { - VeloX = vx1 - (vx1 * nx_dirBE[k] + vx2 * ny_dirBE[k] + vx3 * nz_dirBE[k]) * nx_dirBE[k]; - VeloZ = vx3 - (vx1 * nx_dirBE[k] + vx2 * ny_dirBE[k] + vx3 * nz_dirBE[k]) * nz_dirBE[k]; - //phi = fac * (one + magS / (c0p0000002+uk) * (one-q)); - //phi = phi > one ? one:phi; - //phi = fac; //Test - q = testQ; //AAAAHHHHHH bitte wieder raus nehmen!!!! - phi = fac / (q * fabs( nx_dirBE[k] - nz_dirBE[k]) + fac); - VeloX *= phi; - VeloZ *= phi; + VeloX = vx1 - (vx1 * nx_dirBE[k] + vx2 * ny_dirBE[k] + vx3 * nz_dirBE[k]) * nx_dirBE[k]; + VeloZ = vx3 - (vx1 * nx_dirBE[k] + vx2 * ny_dirBE[k] + vx3 * nz_dirBE[k]) * nz_dirBE[k]; + //phi = fac * (one + magS / (c0p0000002+uk) * (one-q)); + //phi = phi > one ? one:phi; + //phi = fac; //Test + q = testQ; //AAAAHHHHHH bitte wieder raus nehmen!!!! + phi = fac / (q * fabs( nx_dirBE[k] - nz_dirBE[k]) + fac); + VeloX *= phi; + VeloZ *= phi; feq=c1o54* (drho/*+three*( vx1 -vx3)*/+c9o2*( vx1 -vx3)*( vx1 -vx3) * (c1o1 + drho)-cu_sq); (D.f[dM0P])[ktw]=(c1o1-q)/(c1o1+q)*(f_BE-f_TW+(f_BE+f_TW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BE+f_TW)-c6o1*c1o54*( VeloX-VeloZ))/(c1o1+q) - c1o54 * drho; } @@ -3971,15 +3971,15 @@ __global__ void QSlipGeomDeviceComp27( q = q_dirTW[k]; if (q>=c0o1 && q<=c1o1) { - VeloX = vx1 - (vx1 * nx_dirTW[k] + vx2 * ny_dirTW[k] + vx3 * nz_dirTW[k]) * nx_dirTW[k]; - VeloZ = vx3 - (vx1 * nx_dirTW[k] + vx2 * ny_dirTW[k] + vx3 * nz_dirTW[k]) * nz_dirTW[k]; - //phi = fac * (one + magS / (c0p0000002+uk) * (one-q)); - //phi = phi > one ? one:phi; - //phi = fac; //Test - q = testQ; //AAAAHHHHHH bitte wieder raus nehmen!!!! - phi = fac / (q * fabs(-nx_dirTW[k] + nz_dirTW[k]) + fac); - VeloX *= phi; - VeloZ *= phi; + VeloX = vx1 - (vx1 * nx_dirTW[k] + vx2 * ny_dirTW[k] + vx3 * nz_dirTW[k]) * nx_dirTW[k]; + VeloZ = vx3 - (vx1 * nx_dirTW[k] + vx2 * ny_dirTW[k] + vx3 * nz_dirTW[k]) * nz_dirTW[k]; + //phi = fac * (one + magS / (c0p0000002+uk) * (one-q)); + //phi = phi > one ? one:phi; + //phi = fac; //Test + q = testQ; //AAAAHHHHHH bitte wieder raus nehmen!!!! + phi = fac / (q * fabs(-nx_dirTW[k] + nz_dirTW[k]) + fac); + VeloX *= phi; + VeloZ *= phi; feq=c1o54* (drho/*+three*(-vx1 +vx3)*/+c9o2*(-vx1 +vx3)*(-vx1 +vx3) * (c1o1 + drho)-cu_sq); (D.f[dP0M])[kbe]=(c1o1-q)/(c1o1+q)*(f_TW-f_BE+(f_TW+f_BE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TW+f_BE)-c6o1*c1o54*(-VeloX+VeloZ))/(c1o1+q) - c1o54 * drho; } @@ -3987,15 +3987,15 @@ __global__ void QSlipGeomDeviceComp27( q = q_dirTN[k]; if (q>=c0o1 && q<=c1o1) { - VeloY = vx2 - (vx1 * nx_dirTN[k] + vx2 * ny_dirTN[k] + vx3 * nz_dirTN[k]) * ny_dirTN[k]; - VeloZ = vx3 - (vx1 * nx_dirTN[k] + vx2 * ny_dirTN[k] + vx3 * nz_dirTN[k]) * nz_dirTN[k]; - //phi = fac * (one + magS / (c0p0000002+uk) * (one-q)); - //phi = phi > one ? one:phi; - //phi = fac; //Test - q = testQ; //AAAAHHHHHH bitte wieder raus nehmen!!!! - phi = fac / (q * fabs( ny_dirTN[k] + nz_dirTN[k]) + fac); - VeloY *= phi; - VeloZ *= phi; + VeloY = vx2 - (vx1 * nx_dirTN[k] + vx2 * ny_dirTN[k] + vx3 * nz_dirTN[k]) * ny_dirTN[k]; + VeloZ = vx3 - (vx1 * nx_dirTN[k] + vx2 * ny_dirTN[k] + vx3 * nz_dirTN[k]) * nz_dirTN[k]; + //phi = fac * (one + magS / (c0p0000002+uk) * (one-q)); + //phi = phi > one ? one:phi; + //phi = fac; //Test + q = testQ; //AAAAHHHHHH bitte wieder raus nehmen!!!! + phi = fac / (q * fabs( ny_dirTN[k] + nz_dirTN[k]) + fac); + VeloY *= phi; + VeloZ *= phi; feq=c1o54* (drho/*+three*( vx2+vx3)*/+c9o2*( vx2+vx3)*( vx2+vx3) * (c1o1 + drho)-cu_sq); (D.f[d0MM])[kbs]=(c1o1-q)/(c1o1+q)*(f_TN-f_BS+(f_TN+f_BS-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TN+f_BS)-c6o1*c1o54*( VeloY+VeloZ))/(c1o1+q) - c1o54 * drho; } @@ -4003,15 +4003,15 @@ __global__ void QSlipGeomDeviceComp27( q = q_dirBS[k]; if (q>=c0o1 && q<=c1o1) { - VeloY = vx2 - (vx1 * nx_dirBS[k] + vx2 * ny_dirBS[k] + vx3 * nz_dirBS[k]) * ny_dirBS[k]; - VeloZ = vx3 - (vx1 * nx_dirBS[k] + vx2 * ny_dirBS[k] + vx3 * nz_dirBS[k]) * nz_dirBS[k]; - //phi = fac * (one + magS / (c0p0000002+uk) * (one-q)); - //phi = phi > one ? one:phi; - //phi = fac; //Test - q = testQ; //AAAAHHHHHH bitte wieder raus nehmen!!!! - phi = fac / (q * fabs(-ny_dirBS[k] - nz_dirBS[k]) + fac); - VeloY *= phi; - VeloZ *= phi; + VeloY = vx2 - (vx1 * nx_dirBS[k] + vx2 * ny_dirBS[k] + vx3 * nz_dirBS[k]) * ny_dirBS[k]; + VeloZ = vx3 - (vx1 * nx_dirBS[k] + vx2 * ny_dirBS[k] + vx3 * nz_dirBS[k]) * nz_dirBS[k]; + //phi = fac * (one + magS / (c0p0000002+uk) * (one-q)); + //phi = phi > one ? one:phi; + //phi = fac; //Test + q = testQ; //AAAAHHHHHH bitte wieder raus nehmen!!!! + phi = fac / (q * fabs(-ny_dirBS[k] - nz_dirBS[k]) + fac); + VeloY *= phi; + VeloZ *= phi; feq=c1o54* (drho/*+three*( -vx2-vx3)*/+c9o2*( -vx2-vx3)*( -vx2-vx3) * (c1o1 + drho)-cu_sq); (D.f[d0PP])[ktn]=(c1o1-q)/(c1o1+q)*(f_BS-f_TN+(f_BS+f_TN-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BS+f_TN)-c6o1*c1o54*( -VeloY-VeloZ))/(c1o1+q) - c1o54 * drho; } @@ -4019,15 +4019,15 @@ __global__ void QSlipGeomDeviceComp27( q = q_dirBN[k]; if (q>=c0o1 && q<=c1o1) { - VeloY = vx2 - (vx1 * nx_dirBN[k] + vx2 * ny_dirBN[k] + vx3 * nz_dirBN[k]) * ny_dirBN[k]; - VeloZ = vx3 - (vx1 * nx_dirBN[k] + vx2 * ny_dirBN[k] + vx3 * nz_dirBN[k]) * nz_dirBN[k]; - //phi = fac * (one + magS / (c0p0000002+uk) * (one-q)); - //phi = phi > one ? one:phi; - //phi = fac; //Test - q = testQ; //AAAAHHHHHH bitte wieder raus nehmen!!!! - phi = fac / (q * fabs( ny_dirBN[k] - nz_dirBN[k]) + fac); - VeloY *= phi; - VeloZ *= phi; + VeloY = vx2 - (vx1 * nx_dirBN[k] + vx2 * ny_dirBN[k] + vx3 * nz_dirBN[k]) * ny_dirBN[k]; + VeloZ = vx3 - (vx1 * nx_dirBN[k] + vx2 * ny_dirBN[k] + vx3 * nz_dirBN[k]) * nz_dirBN[k]; + //phi = fac * (one + magS / (c0p0000002+uk) * (one-q)); + //phi = phi > one ? one:phi; + //phi = fac; //Test + q = testQ; //AAAAHHHHHH bitte wieder raus nehmen!!!! + phi = fac / (q * fabs( ny_dirBN[k] - nz_dirBN[k]) + fac); + VeloY *= phi; + VeloZ *= phi; feq=c1o54* (drho/*+three*( vx2-vx3)*/+c9o2*( vx2-vx3)*( vx2-vx3) * (c1o1 + drho)-cu_sq); (D.f[d0MP])[kts]=(c1o1-q)/(c1o1+q)*(f_BN-f_TS+(f_BN+f_TS-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BN+f_TS)-c6o1*c1o54*( VeloY-VeloZ))/(c1o1+q) - c1o54 * drho; } @@ -4035,15 +4035,15 @@ __global__ void QSlipGeomDeviceComp27( q = q_dirTS[k]; if (q>=c0o1 && q<=c1o1) { - VeloY = vx2 - (vx1 * nx_dirTS[k] + vx2 * ny_dirTS[k] + vx3 * nz_dirTS[k]) * ny_dirTS[k]; - VeloZ = vx3 - (vx1 * nx_dirTS[k] + vx2 * ny_dirTS[k] + vx3 * nz_dirTS[k]) * nz_dirTS[k]; - //phi = fac * (one + magS / (c0p0000002+uk) * (one-q)); - //phi = phi > one ? one:phi; - //phi = fac; //Test - q = testQ; //AAAAHHHHHH bitte wieder raus nehmen!!!! - phi = fac / (q * fabs(-ny_dirTS[k] + nz_dirTS[k]) + fac); - VeloY *= phi; - VeloZ *= phi; + VeloY = vx2 - (vx1 * nx_dirTS[k] + vx2 * ny_dirTS[k] + vx3 * nz_dirTS[k]) * ny_dirTS[k]; + VeloZ = vx3 - (vx1 * nx_dirTS[k] + vx2 * ny_dirTS[k] + vx3 * nz_dirTS[k]) * nz_dirTS[k]; + //phi = fac * (one + magS / (c0p0000002+uk) * (one-q)); + //phi = phi > one ? one:phi; + //phi = fac; //Test + q = testQ; //AAAAHHHHHH bitte wieder raus nehmen!!!! + phi = fac / (q * fabs(-ny_dirTS[k] + nz_dirTS[k]) + fac); + VeloY *= phi; + VeloZ *= phi; feq=c1o54* (drho/*+three*( -vx2+vx3)*/+c9o2*( -vx2+vx3)*( -vx2+vx3) * (c1o1 + drho)-cu_sq); (D.f[d0PM])[kbn]=(c1o1-q)/(c1o1+q)*(f_TS-f_BN+(f_TS+f_BN-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TS+f_BN)-c6o1*c1o54*( -VeloY+VeloZ))/(c1o1+q) - c1o54 * drho; } @@ -4051,17 +4051,17 @@ __global__ void QSlipGeomDeviceComp27( q = q_dirTNE[k]; if (q>=c0o1 && q<=c1o1) { - VeloX = vx1 - (vx1 * nx_dirTNE[k] + vx2 * ny_dirTNE[k] + vx3 * nz_dirTNE[k]) * nx_dirTNE[k]; - VeloY = vx2 - (vx1 * nx_dirTNE[k] + vx2 * ny_dirTNE[k] + vx3 * nz_dirTNE[k]) * ny_dirTNE[k]; - VeloZ = vx3 - (vx1 * nx_dirTNE[k] + vx2 * ny_dirTNE[k] + vx3 * nz_dirTNE[k]) * nz_dirTNE[k]; - //phi = fac * (one + magS / (c0p0000002+uk) * (one-q)); - //phi = phi > one ? one:phi; - //phi = fac; //Test - q = testQ; //AAAAHHHHHH bitte wieder raus nehmen!!!! - phi = fac / (q * fabs( nx_dirTNE[k] + ny_dirTNE[k] + nz_dirTNE[k]) + fac); - VeloX *= phi; - VeloY *= phi; - VeloZ *= phi; + VeloX = vx1 - (vx1 * nx_dirTNE[k] + vx2 * ny_dirTNE[k] + vx3 * nz_dirTNE[k]) * nx_dirTNE[k]; + VeloY = vx2 - (vx1 * nx_dirTNE[k] + vx2 * ny_dirTNE[k] + vx3 * nz_dirTNE[k]) * ny_dirTNE[k]; + VeloZ = vx3 - (vx1 * nx_dirTNE[k] + vx2 * ny_dirTNE[k] + vx3 * nz_dirTNE[k]) * nz_dirTNE[k]; + //phi = fac * (one + magS / (c0p0000002+uk) * (one-q)); + //phi = phi > one ? one:phi; + //phi = fac; //Test + q = testQ; //AAAAHHHHHH bitte wieder raus nehmen!!!! + phi = fac / (q * fabs( nx_dirTNE[k] + ny_dirTNE[k] + nz_dirTNE[k]) + fac); + VeloX *= phi; + VeloY *= phi; + VeloZ *= phi; feq=c1o216*(drho/*+three*( vx1+vx2+vx3)*/+c9o2*( vx1+vx2+vx3)*( vx1+vx2+vx3) * (c1o1 + drho)-cu_sq); (D.f[dMMM])[kbsw]=(c1o1-q)/(c1o1+q)*(f_TNE-f_BSW+(f_TNE+f_BSW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TNE+f_BSW)-c6o1*c1o216*( VeloX+VeloY+VeloZ))/(c1o1+q) - c1o216 * drho; } @@ -4069,17 +4069,17 @@ __global__ void QSlipGeomDeviceComp27( q = q_dirBSW[k]; if (q>=c0o1 && q<=c1o1) { - VeloX = vx1 - (vx1 * nx_dirBSW[k] + vx2 * ny_dirBSW[k] + vx3 * nz_dirBSW[k]) * nx_dirBSW[k]; - VeloY = vx2 - (vx1 * nx_dirBSW[k] + vx2 * ny_dirBSW[k] + vx3 * nz_dirBSW[k]) * ny_dirBSW[k]; - VeloZ = vx3 - (vx1 * nx_dirBSW[k] + vx2 * ny_dirBSW[k] + vx3 * nz_dirBSW[k]) * nz_dirBSW[k]; - //phi = fac * (one + magS / (c0p0000002+uk) * (one-q)); - //phi = phi > one ? one:phi; - //phi = fac; //Test - q = testQ; //AAAAHHHHHH bitte wieder raus nehmen!!!! - phi = fac / (q * fabs(-nx_dirBSW[k] - ny_dirBSW[k] - nz_dirBSW[k]) + fac); - VeloX *= phi; - VeloY *= phi; - VeloZ *= phi; + VeloX = vx1 - (vx1 * nx_dirBSW[k] + vx2 * ny_dirBSW[k] + vx3 * nz_dirBSW[k]) * nx_dirBSW[k]; + VeloY = vx2 - (vx1 * nx_dirBSW[k] + vx2 * ny_dirBSW[k] + vx3 * nz_dirBSW[k]) * ny_dirBSW[k]; + VeloZ = vx3 - (vx1 * nx_dirBSW[k] + vx2 * ny_dirBSW[k] + vx3 * nz_dirBSW[k]) * nz_dirBSW[k]; + //phi = fac * (one + magS / (c0p0000002+uk) * (one-q)); + //phi = phi > one ? one:phi; + //phi = fac; //Test + q = testQ; //AAAAHHHHHH bitte wieder raus nehmen!!!! + phi = fac / (q * fabs(-nx_dirBSW[k] - ny_dirBSW[k] - nz_dirBSW[k]) + fac); + VeloX *= phi; + VeloY *= phi; + VeloZ *= phi; feq=c1o216*(drho/*+three*(-vx1-vx2-vx3)*/+c9o2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3) * (c1o1 + drho)-cu_sq); (D.f[dPPP])[ktne]=(c1o1-q)/(c1o1+q)*(f_BSW-f_TNE+(f_BSW+f_TNE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BSW+f_TNE)-c6o1*c1o216*(-VeloX-VeloY-VeloZ))/(c1o1+q) - c1o216 * drho; } @@ -4087,17 +4087,17 @@ __global__ void QSlipGeomDeviceComp27( q = q_dirBNE[k]; if (q>=c0o1 && q<=c1o1) { - VeloX = vx1 - (vx1 * nx_dirBNE[k] + vx2 * ny_dirBNE[k] + vx3 * nz_dirBNE[k]) * nx_dirBNE[k]; - VeloY = vx2 - (vx1 * nx_dirBNE[k] + vx2 * ny_dirBNE[k] + vx3 * nz_dirBNE[k]) * ny_dirBNE[k]; - VeloZ = vx3 - (vx1 * nx_dirBNE[k] + vx2 * ny_dirBNE[k] + vx3 * nz_dirBNE[k]) * nz_dirBNE[k]; - //phi = fac * (one + magS / (c0p0000002+uk) * (one-q)); - //phi = phi > one ? one:phi; - //phi = fac; //Test - q = testQ; //AAAAHHHHHH bitte wieder raus nehmen!!!! - phi = fac / (q * fabs( nx_dirBNE[k] + ny_dirBNE[k] - nz_dirBNE[k]) + fac); - VeloX *= phi; - VeloY *= phi; - VeloZ *= phi; + VeloX = vx1 - (vx1 * nx_dirBNE[k] + vx2 * ny_dirBNE[k] + vx3 * nz_dirBNE[k]) * nx_dirBNE[k]; + VeloY = vx2 - (vx1 * nx_dirBNE[k] + vx2 * ny_dirBNE[k] + vx3 * nz_dirBNE[k]) * ny_dirBNE[k]; + VeloZ = vx3 - (vx1 * nx_dirBNE[k] + vx2 * ny_dirBNE[k] + vx3 * nz_dirBNE[k]) * nz_dirBNE[k]; + //phi = fac * (one + magS / (c0p0000002+uk) * (one-q)); + //phi = phi > one ? one:phi; + //phi = fac; //Test + q = testQ; //AAAAHHHHHH bitte wieder raus nehmen!!!! + phi = fac / (q * fabs( nx_dirBNE[k] + ny_dirBNE[k] - nz_dirBNE[k]) + fac); + VeloX *= phi; + VeloY *= phi; + VeloZ *= phi; feq=c1o216*(drho/*+three*( vx1+vx2-vx3)*/+c9o2*( vx1+vx2-vx3)*( vx1+vx2-vx3) * (c1o1 + drho)-cu_sq); (D.f[dMMP])[ktsw]=(c1o1-q)/(c1o1+q)*(f_BNE-f_TSW+(f_BNE+f_TSW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BNE+f_TSW)-c6o1*c1o216*( VeloX+VeloY-VeloZ))/(c1o1+q) - c1o216 * drho; } @@ -4105,17 +4105,17 @@ __global__ void QSlipGeomDeviceComp27( q = q_dirTSW[k]; if (q>=c0o1 && q<=c1o1) { - VeloX = vx1 - (vx1 * nx_dirTSW[k] + vx2 * ny_dirTSW[k] + vx3 * nz_dirTSW[k]) * nx_dirTSW[k]; - VeloY = vx2 - (vx1 * nx_dirTSW[k] + vx2 * ny_dirTSW[k] + vx3 * nz_dirTSW[k]) * ny_dirTSW[k]; - VeloZ = vx3 - (vx1 * nx_dirTSW[k] + vx2 * ny_dirTSW[k] + vx3 * nz_dirTSW[k]) * nz_dirTSW[k]; - //phi = fac * (one + magS / (c0p0000002+uk) * (one-q)); - //phi = phi > one ? one:phi; - //phi = fac; //Test - q = testQ; //AAAAHHHHHH bitte wieder raus nehmen!!!! - phi = fac / (q * fabs(-nx_dirTSW[k] - ny_dirTSW[k] + nz_dirTSW[k]) + fac); - VeloX *= phi; - VeloY *= phi; - VeloZ *= phi; + VeloX = vx1 - (vx1 * nx_dirTSW[k] + vx2 * ny_dirTSW[k] + vx3 * nz_dirTSW[k]) * nx_dirTSW[k]; + VeloY = vx2 - (vx1 * nx_dirTSW[k] + vx2 * ny_dirTSW[k] + vx3 * nz_dirTSW[k]) * ny_dirTSW[k]; + VeloZ = vx3 - (vx1 * nx_dirTSW[k] + vx2 * ny_dirTSW[k] + vx3 * nz_dirTSW[k]) * nz_dirTSW[k]; + //phi = fac * (one + magS / (c0p0000002+uk) * (one-q)); + //phi = phi > one ? one:phi; + //phi = fac; //Test + q = testQ; //AAAAHHHHHH bitte wieder raus nehmen!!!! + phi = fac / (q * fabs(-nx_dirTSW[k] - ny_dirTSW[k] + nz_dirTSW[k]) + fac); + VeloX *= phi; + VeloY *= phi; + VeloZ *= phi; feq=c1o216*(drho/*+three*(-vx1-vx2+vx3)*/+c9o2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3) * (c1o1 + drho)-cu_sq); (D.f[dPPM])[kbne]=(c1o1-q)/(c1o1+q)*(f_TSW-f_BNE+(f_TSW+f_BNE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TSW+f_BNE)-c6o1*c1o216*(-VeloX-VeloY+VeloZ))/(c1o1+q) - c1o216 * drho; } @@ -4123,17 +4123,17 @@ __global__ void QSlipGeomDeviceComp27( q = q_dirTSE[k]; if (q>=c0o1 && q<=c1o1) { - VeloX = vx1 - (vx1 * nx_dirTSE[k] + vx2 * ny_dirTSE[k] + vx3 * nz_dirTSE[k]) * nx_dirTSE[k]; - VeloY = vx2 - (vx1 * nx_dirTSE[k] + vx2 * ny_dirTSE[k] + vx3 * nz_dirTSE[k]) * ny_dirTSE[k]; - VeloZ = vx3 - (vx1 * nx_dirTSE[k] + vx2 * ny_dirTSE[k] + vx3 * nz_dirTSE[k]) * nz_dirTSE[k]; - //phi = fac * (one + magS / (c0p0000002+uk) * (one-q)); - //phi = phi > one ? one:phi; - //phi = fac; //Test - q = testQ; //AAAAHHHHHH bitte wieder raus nehmen!!!! - phi = fac / (q * fabs( nx_dirTSE[k] - ny_dirTSE[k] + nz_dirTSE[k]) + fac); - VeloX *= phi; - VeloY *= phi; - VeloZ *= phi; + VeloX = vx1 - (vx1 * nx_dirTSE[k] + vx2 * ny_dirTSE[k] + vx3 * nz_dirTSE[k]) * nx_dirTSE[k]; + VeloY = vx2 - (vx1 * nx_dirTSE[k] + vx2 * ny_dirTSE[k] + vx3 * nz_dirTSE[k]) * ny_dirTSE[k]; + VeloZ = vx3 - (vx1 * nx_dirTSE[k] + vx2 * ny_dirTSE[k] + vx3 * nz_dirTSE[k]) * nz_dirTSE[k]; + //phi = fac * (one + magS / (c0p0000002+uk) * (one-q)); + //phi = phi > one ? one:phi; + //phi = fac; //Test + q = testQ; //AAAAHHHHHH bitte wieder raus nehmen!!!! + phi = fac / (q * fabs( nx_dirTSE[k] - ny_dirTSE[k] + nz_dirTSE[k]) + fac); + VeloX *= phi; + VeloY *= phi; + VeloZ *= phi; feq=c1o216*(drho/*+three*( vx1-vx2+vx3)*/+c9o2*( vx1-vx2+vx3)*( vx1-vx2+vx3) * (c1o1 + drho)-cu_sq); (D.f[dMPM])[kbnw]=(c1o1-q)/(c1o1+q)*(f_TSE-f_BNW+(f_TSE+f_BNW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TSE+f_BNW)-c6o1*c1o216*( VeloX-VeloY+VeloZ))/(c1o1+q) - c1o216 * drho; } @@ -4141,17 +4141,17 @@ __global__ void QSlipGeomDeviceComp27( q = q_dirBNW[k]; if (q>=c0o1 && q<=c1o1) { - VeloX = vx1 - (vx1 * nx_dirBNW[k] + vx2 * ny_dirBNW[k] + vx3 * nz_dirBNW[k]) * nx_dirBNW[k]; - VeloY = vx2 - (vx1 * nx_dirBNW[k] + vx2 * ny_dirBNW[k] + vx3 * nz_dirBNW[k]) * ny_dirBNW[k]; - VeloZ = vx3 - (vx1 * nx_dirBNW[k] + vx2 * ny_dirBNW[k] + vx3 * nz_dirBNW[k]) * nz_dirBNW[k]; - //phi = fac * (one + magS / (c0p0000002+uk) * (one-q)); - //phi = phi > one ? one:phi; - //phi = fac; //Test - q = testQ; //AAAAHHHHHH bitte wieder raus nehmen!!!! - phi = fac / (q * fabs(-nx_dirBNW[k] + ny_dirBNW[k] - nz_dirBNW[k]) + fac); - VeloX *= phi; - VeloY *= phi; - VeloZ *= phi; + VeloX = vx1 - (vx1 * nx_dirBNW[k] + vx2 * ny_dirBNW[k] + vx3 * nz_dirBNW[k]) * nx_dirBNW[k]; + VeloY = vx2 - (vx1 * nx_dirBNW[k] + vx2 * ny_dirBNW[k] + vx3 * nz_dirBNW[k]) * ny_dirBNW[k]; + VeloZ = vx3 - (vx1 * nx_dirBNW[k] + vx2 * ny_dirBNW[k] + vx3 * nz_dirBNW[k]) * nz_dirBNW[k]; + //phi = fac * (one + magS / (c0p0000002+uk) * (one-q)); + //phi = phi > one ? one:phi; + //phi = fac; //Test + q = testQ; //AAAAHHHHHH bitte wieder raus nehmen!!!! + phi = fac / (q * fabs(-nx_dirBNW[k] + ny_dirBNW[k] - nz_dirBNW[k]) + fac); + VeloX *= phi; + VeloY *= phi; + VeloZ *= phi; feq=c1o216*(drho/*+three*(-vx1+vx2-vx3)*/+c9o2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3) * (c1o1 + drho)-cu_sq); (D.f[dPMP])[ktse]=(c1o1-q)/(c1o1+q)*(f_BNW-f_TSE+(f_BNW+f_TSE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BNW+f_TSE)-c6o1*c1o216*(-VeloX+VeloY-VeloZ))/(c1o1+q) - c1o216 * drho; } @@ -4159,17 +4159,17 @@ __global__ void QSlipGeomDeviceComp27( q = q_dirBSE[k]; if (q>=c0o1 && q<=c1o1) { - VeloX = vx1 - (vx1 * nx_dirBSE[k] + vx2 * ny_dirBSE[k] + vx3 * nz_dirBSE[k]) * nx_dirBSE[k]; - VeloY = vx2 - (vx1 * nx_dirBSE[k] + vx2 * ny_dirBSE[k] + vx3 * nz_dirBSE[k]) * ny_dirBSE[k]; - VeloZ = vx3 - (vx1 * nx_dirBSE[k] + vx2 * ny_dirBSE[k] + vx3 * nz_dirBSE[k]) * nz_dirBSE[k]; - //phi = fac * (one + magS / (c0p0000002+uk) * (one-q)); - //phi = (phi > one) ? one:phi; - //phi = fac; //Test - q = testQ; //AAAAHHHHHH bitte wieder raus nehmen!!!! - phi = fac / (q * fabs( nx_dirBSE[k] - ny_dirBSE[k] - nz_dirBSE[k]) + fac); - VeloX *= phi; - VeloY *= phi; - VeloZ *= phi; + VeloX = vx1 - (vx1 * nx_dirBSE[k] + vx2 * ny_dirBSE[k] + vx3 * nz_dirBSE[k]) * nx_dirBSE[k]; + VeloY = vx2 - (vx1 * nx_dirBSE[k] + vx2 * ny_dirBSE[k] + vx3 * nz_dirBSE[k]) * ny_dirBSE[k]; + VeloZ = vx3 - (vx1 * nx_dirBSE[k] + vx2 * ny_dirBSE[k] + vx3 * nz_dirBSE[k]) * nz_dirBSE[k]; + //phi = fac * (one + magS / (c0p0000002+uk) * (one-q)); + //phi = (phi > one) ? one:phi; + //phi = fac; //Test + q = testQ; //AAAAHHHHHH bitte wieder raus nehmen!!!! + phi = fac / (q * fabs( nx_dirBSE[k] - ny_dirBSE[k] - nz_dirBSE[k]) + fac); + VeloX *= phi; + VeloY *= phi; + VeloZ *= phi; feq=c1o216*(drho/*+three*( vx1-vx2-vx3)*/+c9o2*( vx1-vx2-vx3)*( vx1-vx2-vx3) * (c1o1 + drho)-cu_sq); (D.f[dMPP])[ktnw]=(c1o1-q)/(c1o1+q)*(f_BSE-f_TNW+(f_BSE+f_TNW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BSE+f_TNW)-c6o1*c1o216*( VeloX-VeloY-VeloZ))/(c1o1+q) - c1o216 * drho; } @@ -4177,17 +4177,17 @@ __global__ void QSlipGeomDeviceComp27( q = q_dirTNW[k]; if (q>=c0o1 && q<=c1o1) { - VeloX = vx1 - (vx1 * nx_dirTNW[k] + vx2 * ny_dirTNW[k] + vx3 * nz_dirTNW[k]) * nx_dirTNW[k]; - VeloY = vx2 - (vx1 * nx_dirTNW[k] + vx2 * ny_dirTNW[k] + vx3 * nz_dirTNW[k]) * ny_dirTNW[k]; - VeloZ = vx3 - (vx1 * nx_dirTNW[k] + vx2 * ny_dirTNW[k] + vx3 * nz_dirTNW[k]) * nz_dirTNW[k]; - //phi = fac * (one + magS / (c0p0000002+uk) * (one-q)); - //phi = phi > one ? one:phi; - //phi = fac; //Test - q = testQ; //AAAAHHHHHH bitte wieder raus nehmen!!!! - phi = fac / (q * fabs(-nx_dirTNW[k] + ny_dirTNW[k] + nz_dirTNW[k]) + fac); - VeloX *= phi; - VeloY *= phi; - VeloZ *= phi; + VeloX = vx1 - (vx1 * nx_dirTNW[k] + vx2 * ny_dirTNW[k] + vx3 * nz_dirTNW[k]) * nx_dirTNW[k]; + VeloY = vx2 - (vx1 * nx_dirTNW[k] + vx2 * ny_dirTNW[k] + vx3 * nz_dirTNW[k]) * ny_dirTNW[k]; + VeloZ = vx3 - (vx1 * nx_dirTNW[k] + vx2 * ny_dirTNW[k] + vx3 * nz_dirTNW[k]) * nz_dirTNW[k]; + //phi = fac * (one + magS / (c0p0000002+uk) * (one-q)); + //phi = phi > one ? one:phi; + //phi = fac; //Test + q = testQ; //AAAAHHHHHH bitte wieder raus nehmen!!!! + phi = fac / (q * fabs(-nx_dirTNW[k] + ny_dirTNW[k] + nz_dirTNW[k]) + fac); + VeloX *= phi; + VeloY *= phi; + VeloZ *= phi; feq=c1o216*(drho/*+three*(-vx1+vx2+vx3)*/+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3) * (c1o1 + drho)-cu_sq); (D.f[dPMM])[kbse]=(c1o1-q)/(c1o1+q)*(f_TNW-f_BSE+(f_TNW+f_BSE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TNW+f_BSE)-c6o1*c1o216*(-VeloX+VeloY+VeloZ))/(c1o1+q) - c1o216 * drho; } @@ -4591,42 +4591,42 @@ __global__ void QSlipNormDeviceComp27( D.f[dMPM] = &DD[dPMP * numberOfLBnodes]; } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real VeloX = vx1; - real VeloY = vx2; - real VeloZ = vx3; - real fac = c1o100;//0.5; - //real phi = c0o1; - real alpha = c1o100; + real VeloX = vx1; + real VeloY = vx2; + real VeloZ = vx3; + real fac = c1o100;//0.5; + //real phi = c0o1; + real alpha = c1o100; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// real kxyFromfcNEQ = -(c3o1 * om1 / (c1o1-om1))*((f_SW+f_BSW+f_TSW-f_NW-f_BNW-f_TNW-f_SE-f_BSE-f_TSE+f_NE+f_BNE+f_TNE ) / (c1o1 + drho) - ((vx1*vx2))); real kyzFromfcNEQ = -(c3o1 * om1 / (c1o1-om1))*((f_BS+f_BSE+f_BSW-f_TS-f_TSE-f_TSW-f_BN-f_BNE-f_BNW+f_TN+f_TNE+f_TNW ) / (c1o1 + drho) - ((vx2*vx3))); real kxzFromfcNEQ = -(c3o1 * om1 / (c1o1-om1))*((f_BW+f_BSW+f_BNW-f_TW-f_TSW-f_TNW-f_BE-f_BSE-f_BNE+f_TE+f_TSE+f_TNE ) / (c1o1 + drho) - ((vx1*vx3))); - real kxxFromfcNEQ = -(c3o1 * om1 / (c1o1-om1))*((f_E+f_NE+f_SE+f_TE+f_BE+f_W+f_NW+f_SW+f_TW+f_BW+ f_TNE+f_TSE+f_BNE+f_TNE+ f_TNW+f_TSW+f_BNW+f_TNW ) / (c1o1 + drho) - ((c1o3*drho + vx1*vx1))); - real kyyFromfcNEQ = -(c3o1 * om1 / (c1o1-om1))*((f_N+f_NE+f_NW+f_TN+f_BN+f_S+f_SE+f_SW+f_TS+f_BS+ f_TNE+f_TSE+f_BNE+f_TNE+ f_TNW+f_TSW+f_BNW+f_TNW ) / (c1o1 + drho) - ((c1o3*drho + vx2*vx2))); - real kzzFromfcNEQ = -(c3o1 * om1 / (c1o1-om1))*((f_T+f_TE+f_TW+f_TN+f_BS+f_B+f_BE+f_BW+f_BN+f_BS+ f_TNE+f_TSE+f_BNE+f_TNE+ f_TNW+f_TSW+f_BNW+f_TNW ) / (c1o1 + drho) - ((c1o3*drho + vx3*vx3))); + real kxxFromfcNEQ = -(c3o1 * om1 / (c1o1-om1))*((f_E+f_NE+f_SE+f_TE+f_BE+f_W+f_NW+f_SW+f_TW+f_BW+ f_TNE+f_TSE+f_BNE+f_TNE+ f_TNW+f_TSW+f_BNW+f_TNW ) / (c1o1 + drho) - ((c1o3*drho + vx1*vx1))); + real kyyFromfcNEQ = -(c3o1 * om1 / (c1o1-om1))*((f_N+f_NE+f_NW+f_TN+f_BN+f_S+f_SE+f_SW+f_TS+f_BS+ f_TNE+f_TSE+f_BNE+f_TNE+ f_TNW+f_TSW+f_BNW+f_TNW ) / (c1o1 + drho) - ((c1o3*drho + vx2*vx2))); + real kzzFromfcNEQ = -(c3o1 * om1 / (c1o1-om1))*((f_T+f_TE+f_TW+f_TN+f_BS+f_B+f_BE+f_BW+f_BN+f_BS+ f_TNE+f_TSE+f_BNE+f_TNE+ f_TNW+f_TSW+f_BNW+f_TNW ) / (c1o1 + drho) - ((c1o3*drho + vx3*vx3))); - real magS = sqrtf(kxyFromfcNEQ*kxyFromfcNEQ + kyzFromfcNEQ*kyzFromfcNEQ + kxzFromfcNEQ*kxzFromfcNEQ + kxxFromfcNEQ*kxxFromfcNEQ + kyyFromfcNEQ*kyyFromfcNEQ + kzzFromfcNEQ*kzzFromfcNEQ); + real magS = sqrtf(kxyFromfcNEQ*kxyFromfcNEQ + kyzFromfcNEQ*kyzFromfcNEQ + kxzFromfcNEQ*kxzFromfcNEQ + kxxFromfcNEQ*kxxFromfcNEQ + kyyFromfcNEQ*kyyFromfcNEQ + kzzFromfcNEQ*kzzFromfcNEQ); - fac = fac * magS / (c1o3 * (c1o1 / om1 - c1o2)); + fac = fac * magS / (c1o3 * (c1o1 / om1 - c1o2)); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real *facAst = &QQ[d000 * numberOfBCnodes]; + real *facAst = &QQ[d000 * numberOfBCnodes]; - fac = fac * alpha + facAst[k] * (c1o1 - alpha); - facAst[k] = fac; - //(&QQ[d000 * numberOfBCnodes])[KQK] = fac; + fac = fac * alpha + facAst[k] * (c1o1 - alpha); + facAst[k] = fac; + //(&QQ[d000 * numberOfBCnodes])[KQK] = fac; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - ////real uk = sqrtf(vx1*vx1 + vx2*vx2 + vx3*vx3); + ////real uk = sqrtf(vx1*vx1 + vx2*vx2 + vx3*vx3); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //real phi = expf(magS/0.01f) - one; - //phi = (phi > one) ? one:phi; + //real phi = expf(magS/0.01f) - one; + //phi = (phi > one) ? one:phi; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //real C = five; - //real kappa = 0.41f; - //real phi = (C * kappa * c1o2 * logf(magS / (c1o3 * (one / om1 - c1o2))) - one) / (C * kappa * c1o2 * logf(magS / (c1o3 * (one / om1 - c1o2)))); - //phi = (phi < zero) ? zero:phi; + //real C = five; + //real kappa = 0.41f; + //real phi = (C * kappa * c1o2 * logf(magS / (c1o3 * (one / om1 - c1o2))) - one) / (C * kappa * c1o2 * logf(magS / (c1o3 * (one / om1 - c1o2)))); + //phi = (phi < zero) ? zero:phi; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //real sum = zero, count = zero; + //real sum = zero, count = zero; // q = q_dirE [k]; if (q>=zero && q<=one) sum += (q * nx_dirE[k] ); count += one; // q = q_dirW [k]; if (q>=zero && q<=one) sum += (q * (-nx_dirW[k])); count += one; // q = q_dirN [k]; if (q>=zero && q<=one) sum += (q * nx_dirN[k] ); count += one; @@ -4653,28 +4653,28 @@ __global__ void QSlipNormDeviceComp27( // q = q_dirBSW [k]; if (q>=zero && q<=one) sum += (q * ((-nx_dirBSW[k])- ny_dirBSW[k] - nz_dirBSW[k])/(sqrtf(three))); count += one; // q = q_dirBSE [k]; if (q>=zero && q<=one) sum += (q * ( nx_dirBSE[k] - ny_dirBSE[k] - nz_dirBSE[k])/(sqrtf(three))); count += one; // q = q_dirBNW [k]; if (q>=zero && q<=one) sum += (q * ((-nx_dirBNW[k])+ ny_dirBNW[k] - nz_dirBNW[k])/(sqrtf(three))); count += one; - //real qMed = sum/count; - //real phi = fac / (qMed + fac); - //phi = (phi > one) ? one:one; + //real qMed = sum/count; + //real phi = fac / (qMed + fac); + //phi = (phi > one) ? one:one; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real sliplength = 0.9f;//c1o2; - real qSlip = c0o1; - real un = c0o1; - real ut = c0o1; - real tangential = c0o1; - //real cSmallSingle = c0p0000002; + real sliplength = 0.9f;//c1o2; + real qSlip = c0o1; + real un = c0o1; + real ut = c0o1; + real tangential = c0o1; + //real cSmallSingle = c0p0000002; q = q_dirE[k]; if (q>=c0o1 && q<=c1o1) { - VeloX = vx1 - (vx1 * nx_dirE[k] + vx2 * ny_dirE[k] + vx3 * nz_dirE[k]) * nx_dirE[k]; - un = fabs((vx1 * nx_dirE[k] + vx2 * ny_dirE[k] + vx3 * nz_dirE[k]) * nx_dirE[k]); - ut = fabs(VeloX); - tangential = ut / (ut + un + cSmallSingle); - qSlip = sliplength * fabs( nx_dirE[k]); //sliplength * e_i * n_i - //qSlip = (qSlip < zero) ? zero:qSlip; - //tangential = (tangential > one) ? one:tangential; - q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (cSmallSingle + q)); + VeloX = vx1 - (vx1 * nx_dirE[k] + vx2 * ny_dirE[k] + vx3 * nz_dirE[k]) * nx_dirE[k]; + un = fabs((vx1 * nx_dirE[k] + vx2 * ny_dirE[k] + vx3 * nz_dirE[k]) * nx_dirE[k]); + ut = fabs(VeloX); + tangential = ut / (ut + un + cSmallSingle); + qSlip = sliplength * fabs( nx_dirE[k]); //sliplength * e_i * n_i + //qSlip = (qSlip < zero) ? zero:qSlip; + //tangential = (tangential > one) ? one:tangential; + q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (cSmallSingle + q)); feq=c2o27* (drho/*+three*( vx1 )*/+c9o2*( vx1 )*( vx1 ) * (c1o1 + drho)-cu_sq); (D.f[dM00])[kw]=(c1o1-q)/(c1o1+q)*(f_E-f_W+(f_E+f_W-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_E+f_W))/(c1o1+q) - c2o27 * drho; } @@ -4682,14 +4682,14 @@ __global__ void QSlipNormDeviceComp27( q = q_dirW[k]; if (q>=c0o1 && q<=c1o1) { - VeloX = vx1 - (vx1 * nx_dirW[k] + vx2 * ny_dirW[k] + vx3 * nz_dirW[k]) * nx_dirW[k]; - un = fabs(-(vx1 * nx_dirW[k] + vx2 * ny_dirW[k] + vx3 * nz_dirW[k]) * nx_dirW[k]); - ut = fabs(-VeloX); - tangential = ut / (ut + un + cSmallSingle); - qSlip = sliplength * fabs(-nx_dirW[k]); //sliplength * e_i * n_i - //qSlip = (qSlip < zero) ? zero:qSlip; - //tangential = (tangential > one) ? one:tangential; - q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (cSmallSingle + q)); + VeloX = vx1 - (vx1 * nx_dirW[k] + vx2 * ny_dirW[k] + vx3 * nz_dirW[k]) * nx_dirW[k]; + un = fabs(-(vx1 * nx_dirW[k] + vx2 * ny_dirW[k] + vx3 * nz_dirW[k]) * nx_dirW[k]); + ut = fabs(-VeloX); + tangential = ut / (ut + un + cSmallSingle); + qSlip = sliplength * fabs(-nx_dirW[k]); //sliplength * e_i * n_i + //qSlip = (qSlip < zero) ? zero:qSlip; + //tangential = (tangential > one) ? one:tangential; + q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (cSmallSingle + q)); feq=c2o27* (drho/*+three*(-vx1 )*/+c9o2*(-vx1 )*(-vx1 ) * (c1o1 + drho)-cu_sq); (D.f[dP00])[ke]=(c1o1-q)/(c1o1+q)*(f_W-f_E+(f_W+f_E-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_W+f_E))/(c1o1+q) - c2o27 * drho; } @@ -4697,14 +4697,14 @@ __global__ void QSlipNormDeviceComp27( q = q_dirN[k]; if (q>=c0o1 && q<=c1o1) { - VeloY = vx2 - (vx1 * nx_dirN[k] + vx2 * ny_dirN[k] + vx3 * nz_dirN[k]) * ny_dirN[k]; - un = fabs( (vx1 * nx_dirN[k] + vx2 * ny_dirN[k] + vx3 * nz_dirN[k]) * ny_dirN[k]); - ut = fabs( VeloY); - tangential = ut / (ut + un + cSmallSingle); - qSlip = sliplength * fabs( ny_dirN[k]); //sliplength * e_i * n_i - //qSlip = (qSlip < zero) ? zero:qSlip; - //tangential = (tangential > one) ? one:tangential; - q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (cSmallSingle + q)); + VeloY = vx2 - (vx1 * nx_dirN[k] + vx2 * ny_dirN[k] + vx3 * nz_dirN[k]) * ny_dirN[k]; + un = fabs( (vx1 * nx_dirN[k] + vx2 * ny_dirN[k] + vx3 * nz_dirN[k]) * ny_dirN[k]); + ut = fabs( VeloY); + tangential = ut / (ut + un + cSmallSingle); + qSlip = sliplength * fabs( ny_dirN[k]); //sliplength * e_i * n_i + //qSlip = (qSlip < zero) ? zero:qSlip; + //tangential = (tangential > one) ? one:tangential; + q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (cSmallSingle + q)); feq=c2o27* (drho/*+three*( vx2 )*/+c9o2*( vx2 )*( vx2 ) * (c1o1 + drho)-cu_sq); (D.f[d0M0])[ks]=(c1o1-q)/(c1o1+q)*(f_N-f_S+(f_N+f_S-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_N+f_S))/(c1o1+q) - c2o27 * drho; } @@ -4712,14 +4712,14 @@ __global__ void QSlipNormDeviceComp27( q = q_dirS[k]; if (q>=c0o1 && q<=c1o1) { - VeloY = vx2 - (vx1 * nx_dirS[k] + vx2 * ny_dirS[k] + vx3 * nz_dirS[k]) * ny_dirS[k]; - un = fabs(-(vx1 * nx_dirS[k] + vx2 * ny_dirS[k] + vx3 * nz_dirS[k]) * ny_dirS[k]); - ut = fabs(-VeloY); - tangential = ut / (ut + un + cSmallSingle); - qSlip = sliplength * fabs(-ny_dirS[k]); //sliplength * e_i * n_i - //qSlip = (qSlip < zero) ? zero:qSlip; - //tangential = (tangential > one) ? one:tangential; - q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (cSmallSingle + q)); + VeloY = vx2 - (vx1 * nx_dirS[k] + vx2 * ny_dirS[k] + vx3 * nz_dirS[k]) * ny_dirS[k]; + un = fabs(-(vx1 * nx_dirS[k] + vx2 * ny_dirS[k] + vx3 * nz_dirS[k]) * ny_dirS[k]); + ut = fabs(-VeloY); + tangential = ut / (ut + un + cSmallSingle); + qSlip = sliplength * fabs(-ny_dirS[k]); //sliplength * e_i * n_i + //qSlip = (qSlip < zero) ? zero:qSlip; + //tangential = (tangential > one) ? one:tangential; + q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (cSmallSingle + q)); feq=c2o27* (drho/*+three*( -vx2 )*/+c9o2*( -vx2 )*( -vx2 ) * (c1o1 + drho)-cu_sq); (D.f[d0P0])[kn]=(c1o1-q)/(c1o1+q)*(f_S-f_N+(f_S+f_N-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_S+f_N))/(c1o1+q) - c2o27 * drho; } @@ -4727,14 +4727,14 @@ __global__ void QSlipNormDeviceComp27( q = q_dirT[k]; if (q>=c0o1 && q<=c1o1) { - VeloZ = vx3 - (vx1 * nx_dirT[k] + vx2 * ny_dirT[k] + vx3 * nz_dirT[k]) * nz_dirT[k]; - un = fabs( (vx1 * nx_dirT[k] + vx2 * ny_dirT[k] + vx3 * nz_dirT[k]) * nz_dirT[k]); - ut = fabs( VeloZ); - tangential = ut / (ut + un + cSmallSingle); - qSlip = sliplength * fabs( nz_dirT[k]); //sliplength * e_i * n_i - //qSlip = (qSlip < zero) ? zero:qSlip; - //tangential = (tangential > one) ? one:tangential; - q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (cSmallSingle + q)); + VeloZ = vx3 - (vx1 * nx_dirT[k] + vx2 * ny_dirT[k] + vx3 * nz_dirT[k]) * nz_dirT[k]; + un = fabs( (vx1 * nx_dirT[k] + vx2 * ny_dirT[k] + vx3 * nz_dirT[k]) * nz_dirT[k]); + ut = fabs( VeloZ); + tangential = ut / (ut + un + cSmallSingle); + qSlip = sliplength * fabs( nz_dirT[k]); //sliplength * e_i * n_i + //qSlip = (qSlip < zero) ? zero:qSlip; + //tangential = (tangential > one) ? one:tangential; + q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (cSmallSingle + q)); feq=c2o27* (drho/*+three*( vx3)*/+c9o2*( vx3)*( vx3) * (c1o1 + drho)-cu_sq); (D.f[d00M])[kb]=(c1o1-q)/(c1o1+q)*(f_T-f_B+(f_T+f_B-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_T+f_B))/(c1o1+q) - c2o27 * drho; } @@ -4742,14 +4742,14 @@ __global__ void QSlipNormDeviceComp27( q = q_dirB[k]; if (q>=c0o1 && q<=c1o1) { - VeloZ = vx3 - (vx1 * nx_dirB[k] + vx2 * ny_dirB[k] + vx3 * nz_dirB[k]) * nz_dirB[k]; - un = fabs(-(vx1 * nx_dirB[k] + vx2 * ny_dirB[k] + vx3 * nz_dirB[k]) * nz_dirB[k]); - ut = fabs(-VeloZ); - tangential = ut / (ut + un + cSmallSingle); - qSlip = sliplength * fabs(-nz_dirB[k]); //sliplength * e_i * n_i - //qSlip = (qSlip < zero) ? zero:qSlip; - //tangential = (tangential > one) ? one:tangential; - q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (cSmallSingle + q)); + VeloZ = vx3 - (vx1 * nx_dirB[k] + vx2 * ny_dirB[k] + vx3 * nz_dirB[k]) * nz_dirB[k]; + un = fabs(-(vx1 * nx_dirB[k] + vx2 * ny_dirB[k] + vx3 * nz_dirB[k]) * nz_dirB[k]); + ut = fabs(-VeloZ); + tangential = ut / (ut + un + cSmallSingle); + qSlip = sliplength * fabs(-nz_dirB[k]); //sliplength * e_i * n_i + //qSlip = (qSlip < zero) ? zero:qSlip; + //tangential = (tangential > one) ? one:tangential; + q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (cSmallSingle + q)); feq=c2o27* (drho/*+three*( -vx3)*/+c9o2*( -vx3)*( -vx3) * (c1o1 + drho)-cu_sq); (D.f[d00P])[kt]=(c1o1-q)/(c1o1+q)*(f_B-f_T+(f_B+f_T-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_B+f_T))/(c1o1+q) - c2o27 * drho; } @@ -4757,15 +4757,15 @@ __global__ void QSlipNormDeviceComp27( q = q_dirNE[k]; if (q>=c0o1 && q<=c1o1) { - VeloX = vx1 - (vx1 * nx_dirNE[k] + vx2 * ny_dirNE[k] + vx3 * nz_dirNE[k]) * nx_dirNE[k]; - VeloY = vx2 - (vx1 * nx_dirNE[k] + vx2 * ny_dirNE[k] + vx3 * nz_dirNE[k]) * ny_dirNE[k]; - un = fabs( (vx1 * nx_dirNE[k] + vx2 * ny_dirNE[k] + vx3 * nz_dirNE[k]) * nx_dirNE[k] + (vx1 * nx_dirNE[k] + vx2 * ny_dirNE[k] + vx3 * nz_dirNE[k]) * ny_dirNE[k]); - ut = fabs( VeloX + VeloY); - tangential = ut / (ut + un + cSmallSingle); - qSlip = sliplength * fabs( nx_dirNE[k]+ny_dirNE[k]); //sliplength * e_i * n_i - //qSlip = (qSlip < zero) ? zero:qSlip; - //tangential = (tangential > one) ? one:tangential; - q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (cSmallSingle + q)); + VeloX = vx1 - (vx1 * nx_dirNE[k] + vx2 * ny_dirNE[k] + vx3 * nz_dirNE[k]) * nx_dirNE[k]; + VeloY = vx2 - (vx1 * nx_dirNE[k] + vx2 * ny_dirNE[k] + vx3 * nz_dirNE[k]) * ny_dirNE[k]; + un = fabs( (vx1 * nx_dirNE[k] + vx2 * ny_dirNE[k] + vx3 * nz_dirNE[k]) * nx_dirNE[k] + (vx1 * nx_dirNE[k] + vx2 * ny_dirNE[k] + vx3 * nz_dirNE[k]) * ny_dirNE[k]); + ut = fabs( VeloX + VeloY); + tangential = ut / (ut + un + cSmallSingle); + qSlip = sliplength * fabs( nx_dirNE[k]+ny_dirNE[k]); //sliplength * e_i * n_i + //qSlip = (qSlip < zero) ? zero:qSlip; + //tangential = (tangential > one) ? one:tangential; + q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (cSmallSingle + q)); feq=c1o54* (drho/*+three*( vx1+vx2 )*/+c9o2*( vx1+vx2 )*( vx1+vx2 ) * (c1o1 + drho)-cu_sq); (D.f[dMM0])[ksw]=(c1o1-q)/(c1o1+q)*(f_NE-f_SW+(f_NE+f_SW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_NE+f_SW))/(c1o1+q) - c1o54 * drho; } @@ -4773,15 +4773,15 @@ __global__ void QSlipNormDeviceComp27( q = q_dirSW[k]; if (q>=c0o1 && q<=c1o1) { - VeloX = vx1 - (vx1 * nx_dirSW[k] + vx2 * ny_dirSW[k] + vx3 * nz_dirSW[k]) * nx_dirSW[k]; - VeloY = vx2 - (vx1 * nx_dirSW[k] + vx2 * ny_dirSW[k] + vx3 * nz_dirSW[k]) * ny_dirSW[k]; - un = fabs(-(vx1 * nx_dirSW[k] + vx2 * ny_dirSW[k] + vx3 * nz_dirSW[k]) * nx_dirSW[k] - (vx1 * nx_dirSW[k] + vx2 * ny_dirSW[k] + vx3 * nz_dirSW[k]) * ny_dirSW[k]); - ut = fabs(-VeloX - VeloY); - tangential = ut / (ut + un + cSmallSingle); - qSlip = sliplength * fabs(-nx_dirSW[k]-ny_dirSW[k]); //sliplength * e_i * n_i - //qSlip = (qSlip < zero) ? zero:qSlip; - //tangential = (tangential > one) ? one:tangential; - q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (cSmallSingle + q)); + VeloX = vx1 - (vx1 * nx_dirSW[k] + vx2 * ny_dirSW[k] + vx3 * nz_dirSW[k]) * nx_dirSW[k]; + VeloY = vx2 - (vx1 * nx_dirSW[k] + vx2 * ny_dirSW[k] + vx3 * nz_dirSW[k]) * ny_dirSW[k]; + un = fabs(-(vx1 * nx_dirSW[k] + vx2 * ny_dirSW[k] + vx3 * nz_dirSW[k]) * nx_dirSW[k] - (vx1 * nx_dirSW[k] + vx2 * ny_dirSW[k] + vx3 * nz_dirSW[k]) * ny_dirSW[k]); + ut = fabs(-VeloX - VeloY); + tangential = ut / (ut + un + cSmallSingle); + qSlip = sliplength * fabs(-nx_dirSW[k]-ny_dirSW[k]); //sliplength * e_i * n_i + //qSlip = (qSlip < zero) ? zero:qSlip; + //tangential = (tangential > one) ? one:tangential; + q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (cSmallSingle + q)); feq=c1o54* (drho/*+three*(-vx1-vx2 )*/+c9o2*(-vx1-vx2 )*(-vx1-vx2 ) * (c1o1 + drho)-cu_sq); (D.f[dPP0])[kne]=(c1o1-q)/(c1o1+q)*(f_SW-f_NE+(f_SW+f_NE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_SW+f_NE))/(c1o1+q) - c1o54 * drho; } @@ -4789,15 +4789,15 @@ __global__ void QSlipNormDeviceComp27( q = q_dirSE[k]; if (q>=c0o1 && q<=c1o1) { - VeloX = vx1 - (vx1 * nx_dirSE[k] + vx2 * ny_dirSE[k] + vx3 * nz_dirSE[k]) * nx_dirSE[k]; - VeloY = vx2 - (vx1 * nx_dirSE[k] + vx2 * ny_dirSE[k] + vx3 * nz_dirSE[k]) * ny_dirSE[k]; - un = fabs( (vx1 * nx_dirSE[k] + vx2 * ny_dirSE[k] + vx3 * nz_dirSE[k]) * nx_dirSE[k] - (vx1 * nx_dirSE[k] + vx2 * ny_dirSE[k] + vx3 * nz_dirSE[k]) * ny_dirSE[k]); - ut = fabs( VeloX - VeloY); - tangential = ut / (ut + un + cSmallSingle); - qSlip = sliplength * fabs( nx_dirSE[k]-ny_dirSE[k]); //sliplength * e_i * n_i - //qSlip = (qSlip < zero) ? zero:qSlip; - //tangential = (tangential > one) ? one:tangential; - q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (cSmallSingle + q)); + VeloX = vx1 - (vx1 * nx_dirSE[k] + vx2 * ny_dirSE[k] + vx3 * nz_dirSE[k]) * nx_dirSE[k]; + VeloY = vx2 - (vx1 * nx_dirSE[k] + vx2 * ny_dirSE[k] + vx3 * nz_dirSE[k]) * ny_dirSE[k]; + un = fabs( (vx1 * nx_dirSE[k] + vx2 * ny_dirSE[k] + vx3 * nz_dirSE[k]) * nx_dirSE[k] - (vx1 * nx_dirSE[k] + vx2 * ny_dirSE[k] + vx3 * nz_dirSE[k]) * ny_dirSE[k]); + ut = fabs( VeloX - VeloY); + tangential = ut / (ut + un + cSmallSingle); + qSlip = sliplength * fabs( nx_dirSE[k]-ny_dirSE[k]); //sliplength * e_i * n_i + //qSlip = (qSlip < zero) ? zero:qSlip; + //tangential = (tangential > one) ? one:tangential; + q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (cSmallSingle + q)); feq=c1o54* (drho/*+three*( vx1-vx2 )*/+c9o2*( vx1-vx2 )*( vx1-vx2 ) * (c1o1 + drho)-cu_sq); (D.f[dMP0])[knw]=(c1o1-q)/(c1o1+q)*(f_SE-f_NW+(f_SE+f_NW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_SE+f_NW))/(c1o1+q) - c1o54 * drho; } @@ -4805,15 +4805,15 @@ __global__ void QSlipNormDeviceComp27( q = q_dirNW[k]; if (q>=c0o1 && q<=c1o1) { - VeloX = vx1 - (vx1 * nx_dirNW[k] + vx2 * ny_dirNW[k] + vx3 * nz_dirNW[k]) * nx_dirNW[k]; - VeloY = vx2 - (vx1 * nx_dirNW[k] + vx2 * ny_dirNW[k] + vx3 * nz_dirNW[k]) * ny_dirNW[k]; - un = fabs(-(vx1 * nx_dirNW[k] + vx2 * ny_dirNW[k] + vx3 * nz_dirNW[k]) * nx_dirNW[k] + (vx1 * nx_dirNW[k] + vx2 * ny_dirNW[k] + vx3 * nz_dirNW[k]) * ny_dirNW[k]); - ut = fabs(-VeloX + VeloY); - tangential = ut / (ut + un + cSmallSingle); - qSlip = sliplength * fabs(-nx_dirNW[k]+ny_dirNW[k]); //sliplength * e_i * n_i - //qSlip = (qSlip < zero) ? zero:qSlip; - //tangential = (tangential > one) ? one:tangential; - q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (cSmallSingle + q)); + VeloX = vx1 - (vx1 * nx_dirNW[k] + vx2 * ny_dirNW[k] + vx3 * nz_dirNW[k]) * nx_dirNW[k]; + VeloY = vx2 - (vx1 * nx_dirNW[k] + vx2 * ny_dirNW[k] + vx3 * nz_dirNW[k]) * ny_dirNW[k]; + un = fabs(-(vx1 * nx_dirNW[k] + vx2 * ny_dirNW[k] + vx3 * nz_dirNW[k]) * nx_dirNW[k] + (vx1 * nx_dirNW[k] + vx2 * ny_dirNW[k] + vx3 * nz_dirNW[k]) * ny_dirNW[k]); + ut = fabs(-VeloX + VeloY); + tangential = ut / (ut + un + cSmallSingle); + qSlip = sliplength * fabs(-nx_dirNW[k]+ny_dirNW[k]); //sliplength * e_i * n_i + //qSlip = (qSlip < zero) ? zero:qSlip; + //tangential = (tangential > one) ? one:tangential; + q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (cSmallSingle + q)); feq=c1o54* (drho/*+three*(-vx1+vx2 )*/+c9o2*(-vx1+vx2 )*(-vx1+vx2 ) * (c1o1 + drho)-cu_sq); (D.f[dPM0])[kse]=(c1o1-q)/(c1o1+q)*(f_NW-f_SE+(f_NW+f_SE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_NW+f_SE))/(c1o1+q) - c1o54 * drho; } @@ -4821,15 +4821,15 @@ __global__ void QSlipNormDeviceComp27( q = q_dirTE[k]; if (q>=c0o1 && q<=c1o1) { - VeloX = vx1 - (vx1 * nx_dirTE[k] + vx2 * ny_dirTE[k] + vx3 * nz_dirTE[k]) * nx_dirTE[k]; - VeloZ = vx3 - (vx1 * nx_dirTE[k] + vx2 * ny_dirTE[k] + vx3 * nz_dirTE[k]) * nz_dirTE[k]; - un = fabs( (vx1 * nx_dirTE[k] + vx2 * ny_dirTE[k] + vx3 * nz_dirTE[k]) * nx_dirTE[k] + (vx1 * nx_dirTE[k] + vx2 * ny_dirTE[k] + vx3 * nz_dirTE[k]) * nz_dirTE[k]); - ut = fabs( VeloX + VeloZ); - tangential = ut / (ut + un + cSmallSingle); - qSlip = sliplength * fabs( nx_dirTE[k]+nz_dirTE[k]); //sliplength * e_i * n_i - //qSlip = (qSlip < zero) ? zero:qSlip; - //tangential = (tangential > one) ? one:tangential; - q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (cSmallSingle + q)); + VeloX = vx1 - (vx1 * nx_dirTE[k] + vx2 * ny_dirTE[k] + vx3 * nz_dirTE[k]) * nx_dirTE[k]; + VeloZ = vx3 - (vx1 * nx_dirTE[k] + vx2 * ny_dirTE[k] + vx3 * nz_dirTE[k]) * nz_dirTE[k]; + un = fabs( (vx1 * nx_dirTE[k] + vx2 * ny_dirTE[k] + vx3 * nz_dirTE[k]) * nx_dirTE[k] + (vx1 * nx_dirTE[k] + vx2 * ny_dirTE[k] + vx3 * nz_dirTE[k]) * nz_dirTE[k]); + ut = fabs( VeloX + VeloZ); + tangential = ut / (ut + un + cSmallSingle); + qSlip = sliplength * fabs( nx_dirTE[k]+nz_dirTE[k]); //sliplength * e_i * n_i + //qSlip = (qSlip < zero) ? zero:qSlip; + //tangential = (tangential > one) ? one:tangential; + q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (cSmallSingle + q)); feq=c1o54* (drho/*+three*( vx1 +vx3)*/+c9o2*( vx1 +vx3)*( vx1 +vx3) * (c1o1 + drho)-cu_sq); (D.f[dM0M])[kbw]=(c1o1-q)/(c1o1+q)*(f_TE-f_BW+(f_TE+f_BW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TE+f_BW))/(c1o1+q) - c1o54 * drho; } @@ -4837,15 +4837,15 @@ __global__ void QSlipNormDeviceComp27( q = q_dirBW[k]; if (q>=c0o1 && q<=c1o1) { - VeloX = vx1 - (vx1 * nx_dirBW[k] + vx2 * ny_dirBW[k] + vx3 * nz_dirBW[k]) * nx_dirBW[k]; - VeloZ = vx3 - (vx1 * nx_dirBW[k] + vx2 * ny_dirBW[k] + vx3 * nz_dirBW[k]) * nz_dirBW[k]; - un = fabs(-(vx1 * nx_dirBW[k] + vx2 * ny_dirBW[k] + vx3 * nz_dirBW[k]) * nx_dirBW[k] - (vx1 * nx_dirBW[k] + vx2 * ny_dirBW[k] + vx3 * nz_dirBW[k]) * nz_dirBW[k]); - ut = fabs(-VeloX - VeloZ); - tangential = ut / (ut + un + cSmallSingle); - qSlip = sliplength * fabs(-nx_dirBW[k]-nz_dirBW[k]); //sliplength * e_i * n_i - //qSlip = (qSlip < zero) ? zero:qSlip; - //tangential = (tangential > one) ? one:tangential; - q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (cSmallSingle + q)); + VeloX = vx1 - (vx1 * nx_dirBW[k] + vx2 * ny_dirBW[k] + vx3 * nz_dirBW[k]) * nx_dirBW[k]; + VeloZ = vx3 - (vx1 * nx_dirBW[k] + vx2 * ny_dirBW[k] + vx3 * nz_dirBW[k]) * nz_dirBW[k]; + un = fabs(-(vx1 * nx_dirBW[k] + vx2 * ny_dirBW[k] + vx3 * nz_dirBW[k]) * nx_dirBW[k] - (vx1 * nx_dirBW[k] + vx2 * ny_dirBW[k] + vx3 * nz_dirBW[k]) * nz_dirBW[k]); + ut = fabs(-VeloX - VeloZ); + tangential = ut / (ut + un + cSmallSingle); + qSlip = sliplength * fabs(-nx_dirBW[k]-nz_dirBW[k]); //sliplength * e_i * n_i + //qSlip = (qSlip < zero) ? zero:qSlip; + //tangential = (tangential > one) ? one:tangential; + q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (cSmallSingle + q)); feq=c1o54* (drho/*+three*(-vx1 -vx3)*/+c9o2*(-vx1 -vx3)*(-vx1 -vx3) * (c1o1 + drho)-cu_sq); (D.f[dP0P])[kte]=(c1o1-q)/(c1o1+q)*(f_BW-f_TE+(f_BW+f_TE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BW+f_TE))/(c1o1+q) - c1o54 * drho; } @@ -4853,15 +4853,15 @@ __global__ void QSlipNormDeviceComp27( q = q_dirBE[k]; if (q>=c0o1 && q<=c1o1) { - VeloX = vx1 - (vx1 * nx_dirBE[k] + vx2 * ny_dirBE[k] + vx3 * nz_dirBE[k]) * nx_dirBE[k]; - VeloZ = vx3 - (vx1 * nx_dirBE[k] + vx2 * ny_dirBE[k] + vx3 * nz_dirBE[k]) * nz_dirBE[k]; - un = fabs( (vx1 * nx_dirBE[k] + vx2 * ny_dirBE[k] + vx3 * nz_dirBE[k]) * nx_dirBE[k] - (vx1 * nx_dirBE[k] + vx2 * ny_dirBE[k] + vx3 * nz_dirBE[k]) * nz_dirBE[k]); - ut = fabs( VeloX - VeloZ); - tangential = ut / (ut + un + cSmallSingle); - qSlip = sliplength * fabs( nx_dirBE[k]-nz_dirBE[k]); //sliplength * e_i * n_i - //qSlip = (qSlip < zero) ? zero:qSlip; - //tangential = (tangential > one) ? one:tangential; - q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (cSmallSingle + q)); + VeloX = vx1 - (vx1 * nx_dirBE[k] + vx2 * ny_dirBE[k] + vx3 * nz_dirBE[k]) * nx_dirBE[k]; + VeloZ = vx3 - (vx1 * nx_dirBE[k] + vx2 * ny_dirBE[k] + vx3 * nz_dirBE[k]) * nz_dirBE[k]; + un = fabs( (vx1 * nx_dirBE[k] + vx2 * ny_dirBE[k] + vx3 * nz_dirBE[k]) * nx_dirBE[k] - (vx1 * nx_dirBE[k] + vx2 * ny_dirBE[k] + vx3 * nz_dirBE[k]) * nz_dirBE[k]); + ut = fabs( VeloX - VeloZ); + tangential = ut / (ut + un + cSmallSingle); + qSlip = sliplength * fabs( nx_dirBE[k]-nz_dirBE[k]); //sliplength * e_i * n_i + //qSlip = (qSlip < zero) ? zero:qSlip; + //tangential = (tangential > one) ? one:tangential; + q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (cSmallSingle + q)); feq=c1o54* (drho/*+three*( vx1 -vx3)*/+c9o2*( vx1 -vx3)*( vx1 -vx3) * (c1o1 + drho)-cu_sq); (D.f[dM0P])[ktw]=(c1o1-q)/(c1o1+q)*(f_BE-f_TW+(f_BE+f_TW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BE+f_TW))/(c1o1+q) - c1o54 * drho; } @@ -4869,15 +4869,15 @@ __global__ void QSlipNormDeviceComp27( q = q_dirTW[k]; if (q>=c0o1 && q<=c1o1) { - VeloX = vx1 - (vx1 * nx_dirTW[k] + vx2 * ny_dirTW[k] + vx3 * nz_dirTW[k]) * nx_dirTW[k]; - VeloZ = vx3 - (vx1 * nx_dirTW[k] + vx2 * ny_dirTW[k] + vx3 * nz_dirTW[k]) * nz_dirTW[k]; - un = fabs(-(vx1 * nx_dirTW[k] + vx2 * ny_dirTW[k] + vx3 * nz_dirTW[k]) * nx_dirTW[k] + (vx1 * nx_dirTW[k] + vx2 * ny_dirTW[k] + vx3 * nz_dirTW[k]) * nz_dirTW[k]); - ut = fabs(-VeloX + VeloZ); - tangential = ut / (ut + un + cSmallSingle); - qSlip = sliplength * fabs(-nx_dirTW[k]+nz_dirTW[k]); //sliplength * e_i * n_i - //qSlip = (qSlip < zero) ? zero:qSlip; - //tangential = (tangential > one) ? one:tangential; - q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (cSmallSingle + q)); + VeloX = vx1 - (vx1 * nx_dirTW[k] + vx2 * ny_dirTW[k] + vx3 * nz_dirTW[k]) * nx_dirTW[k]; + VeloZ = vx3 - (vx1 * nx_dirTW[k] + vx2 * ny_dirTW[k] + vx3 * nz_dirTW[k]) * nz_dirTW[k]; + un = fabs(-(vx1 * nx_dirTW[k] + vx2 * ny_dirTW[k] + vx3 * nz_dirTW[k]) * nx_dirTW[k] + (vx1 * nx_dirTW[k] + vx2 * ny_dirTW[k] + vx3 * nz_dirTW[k]) * nz_dirTW[k]); + ut = fabs(-VeloX + VeloZ); + tangential = ut / (ut + un + cSmallSingle); + qSlip = sliplength * fabs(-nx_dirTW[k]+nz_dirTW[k]); //sliplength * e_i * n_i + //qSlip = (qSlip < zero) ? zero:qSlip; + //tangential = (tangential > one) ? one:tangential; + q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (cSmallSingle + q)); feq=c1o54* (drho/*+three*(-vx1 +vx3)*/+c9o2*(-vx1 +vx3)*(-vx1 +vx3) * (c1o1 + drho)-cu_sq); (D.f[dP0M])[kbe]=(c1o1-q)/(c1o1+q)*(f_TW-f_BE+(f_TW+f_BE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TW+f_BE))/(c1o1+q) - c1o54 * drho; } @@ -4885,15 +4885,15 @@ __global__ void QSlipNormDeviceComp27( q = q_dirTN[k]; if (q>=c0o1 && q<=c1o1) { - VeloY = vx2 - (vx1 * nx_dirTN[k] + vx2 * ny_dirTN[k] + vx3 * nz_dirTN[k]) * ny_dirTN[k]; - VeloZ = vx3 - (vx1 * nx_dirTN[k] + vx2 * ny_dirTN[k] + vx3 * nz_dirTN[k]) * nz_dirTN[k]; - un = fabs( (vx1 * nx_dirTN[k] + vx2 * ny_dirTN[k] + vx3 * nz_dirTN[k]) * ny_dirTN[k] + (vx1 * nx_dirTN[k] + vx2 * ny_dirTN[k] + vx3 * nz_dirTN[k]) * nz_dirTN[k]); - ut = fabs( VeloY + VeloZ); - tangential = ut / (ut + un + cSmallSingle); - qSlip = sliplength * fabs( ny_dirTN[k]+nz_dirTN[k]); //sliplength * e_i * n_i - //qSlip = (qSlip < zero) ? zero:qSlip; - //tangential = (tangential > one) ? one:tangential; - q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (cSmallSingle + q)); + VeloY = vx2 - (vx1 * nx_dirTN[k] + vx2 * ny_dirTN[k] + vx3 * nz_dirTN[k]) * ny_dirTN[k]; + VeloZ = vx3 - (vx1 * nx_dirTN[k] + vx2 * ny_dirTN[k] + vx3 * nz_dirTN[k]) * nz_dirTN[k]; + un = fabs( (vx1 * nx_dirTN[k] + vx2 * ny_dirTN[k] + vx3 * nz_dirTN[k]) * ny_dirTN[k] + (vx1 * nx_dirTN[k] + vx2 * ny_dirTN[k] + vx3 * nz_dirTN[k]) * nz_dirTN[k]); + ut = fabs( VeloY + VeloZ); + tangential = ut / (ut + un + cSmallSingle); + qSlip = sliplength * fabs( ny_dirTN[k]+nz_dirTN[k]); //sliplength * e_i * n_i + //qSlip = (qSlip < zero) ? zero:qSlip; + //tangential = (tangential > one) ? one:tangential; + q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (cSmallSingle + q)); feq=c1o54* (drho/*+three*( vx2+vx3)*/+c9o2*( vx2+vx3)*( vx2+vx3) * (c1o1 + drho)-cu_sq); (D.f[d0MM])[kbs]=(c1o1-q)/(c1o1+q)*(f_TN-f_BS+(f_TN+f_BS-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TN+f_BS))/(c1o1+q) - c1o54 * drho; } @@ -4901,15 +4901,15 @@ __global__ void QSlipNormDeviceComp27( q = q_dirBS[k]; if (q>=c0o1 && q<=c1o1) { - VeloY = vx2 - (vx1 * nx_dirBS[k] + vx2 * ny_dirBS[k] + vx3 * nz_dirBS[k]) * ny_dirBS[k]; - VeloZ = vx3 - (vx1 * nx_dirBS[k] + vx2 * ny_dirBS[k] + vx3 * nz_dirBS[k]) * nz_dirBS[k]; - un = fabs(-(vx1 * nx_dirBS[k] + vx2 * ny_dirBS[k] + vx3 * nz_dirBS[k]) * ny_dirBS[k] - (vx1 * nx_dirBS[k] + vx2 * ny_dirBS[k] + vx3 * nz_dirBS[k]) * nz_dirBS[k]); - ut = fabs(-VeloY - VeloZ); - tangential = ut / (ut + un + cSmallSingle); - qSlip = sliplength * fabs(-ny_dirBS[k]-nz_dirBS[k]); //sliplength * e_i * n_i - //qSlip = (qSlip < zero) ? zero:qSlip; - //tangential = (tangential > one) ? one:tangential; - q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (cSmallSingle + q)); + VeloY = vx2 - (vx1 * nx_dirBS[k] + vx2 * ny_dirBS[k] + vx3 * nz_dirBS[k]) * ny_dirBS[k]; + VeloZ = vx3 - (vx1 * nx_dirBS[k] + vx2 * ny_dirBS[k] + vx3 * nz_dirBS[k]) * nz_dirBS[k]; + un = fabs(-(vx1 * nx_dirBS[k] + vx2 * ny_dirBS[k] + vx3 * nz_dirBS[k]) * ny_dirBS[k] - (vx1 * nx_dirBS[k] + vx2 * ny_dirBS[k] + vx3 * nz_dirBS[k]) * nz_dirBS[k]); + ut = fabs(-VeloY - VeloZ); + tangential = ut / (ut + un + cSmallSingle); + qSlip = sliplength * fabs(-ny_dirBS[k]-nz_dirBS[k]); //sliplength * e_i * n_i + //qSlip = (qSlip < zero) ? zero:qSlip; + //tangential = (tangential > one) ? one:tangential; + q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (cSmallSingle + q)); feq=c1o54* (drho/*+three*( -vx2-vx3)*/+c9o2*( -vx2-vx3)*( -vx2-vx3) * (c1o1 + drho)-cu_sq); (D.f[d0PP])[ktn]=(c1o1-q)/(c1o1+q)*(f_BS-f_TN+(f_BS+f_TN-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BS+f_TN))/(c1o1+q) - c1o54 * drho; } @@ -4917,15 +4917,15 @@ __global__ void QSlipNormDeviceComp27( q = q_dirBN[k]; if (q>=c0o1 && q<=c1o1) { - VeloY = vx2 - (vx1 * nx_dirBN[k] + vx2 * ny_dirBN[k] + vx3 * nz_dirBN[k]) * ny_dirBN[k]; - VeloZ = vx3 - (vx1 * nx_dirBN[k] + vx2 * ny_dirBN[k] + vx3 * nz_dirBN[k]) * nz_dirBN[k]; - un = fabs( (vx1 * nx_dirBN[k] + vx2 * ny_dirBN[k] + vx3 * nz_dirBN[k]) * ny_dirBN[k] - (vx1 * nx_dirBN[k] + vx2 * ny_dirBN[k] + vx3 * nz_dirBN[k]) * nz_dirBN[k]); - ut = fabs( VeloY - VeloZ); - tangential = ut / (ut + un + cSmallSingle); - qSlip = sliplength * fabs( ny_dirBN[k]-nz_dirBN[k]); //sliplength * e_i * n_i - //qSlip = (qSlip < zero) ? zero:qSlip; - //tangential = (tangential > one) ? one:tangential; - q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (cSmallSingle + q)); + VeloY = vx2 - (vx1 * nx_dirBN[k] + vx2 * ny_dirBN[k] + vx3 * nz_dirBN[k]) * ny_dirBN[k]; + VeloZ = vx3 - (vx1 * nx_dirBN[k] + vx2 * ny_dirBN[k] + vx3 * nz_dirBN[k]) * nz_dirBN[k]; + un = fabs( (vx1 * nx_dirBN[k] + vx2 * ny_dirBN[k] + vx3 * nz_dirBN[k]) * ny_dirBN[k] - (vx1 * nx_dirBN[k] + vx2 * ny_dirBN[k] + vx3 * nz_dirBN[k]) * nz_dirBN[k]); + ut = fabs( VeloY - VeloZ); + tangential = ut / (ut + un + cSmallSingle); + qSlip = sliplength * fabs( ny_dirBN[k]-nz_dirBN[k]); //sliplength * e_i * n_i + //qSlip = (qSlip < zero) ? zero:qSlip; + //tangential = (tangential > one) ? one:tangential; + q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (cSmallSingle + q)); feq=c1o54* (drho/*+three*( vx2-vx3)*/+c9o2*( vx2-vx3)*( vx2-vx3) * (c1o1 + drho)-cu_sq); (D.f[d0MP])[kts]=(c1o1-q)/(c1o1+q)*(f_BN-f_TS+(f_BN+f_TS-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BN+f_TS))/(c1o1+q) - c1o54 * drho; } @@ -4933,15 +4933,15 @@ __global__ void QSlipNormDeviceComp27( q = q_dirTS[k]; if (q>=c0o1 && q<=c1o1) { - VeloY = vx2 - (vx1 * nx_dirTS[k] + vx2 * ny_dirTS[k] + vx3 * nz_dirTS[k]) * ny_dirTS[k]; - VeloZ = vx3 - (vx1 * nx_dirTS[k] + vx2 * ny_dirTS[k] + vx3 * nz_dirTS[k]) * nz_dirTS[k]; - un = fabs(-(vx1 * nx_dirTS[k] + vx2 * ny_dirTS[k] + vx3 * nz_dirTS[k]) * ny_dirTS[k] + (vx1 * nx_dirTS[k] + vx2 * ny_dirTS[k] + vx3 * nz_dirTS[k]) * nz_dirTS[k]); - ut = fabs(-VeloY + VeloZ); - tangential = ut / (ut + un + cSmallSingle); - qSlip = sliplength * fabs(-ny_dirTS[k]+nz_dirTS[k]); //sliplength * e_i * n_i - //qSlip = (qSlip < zero) ? zero:qSlip; - //tangential = (tangential > one) ? one:tangential; - q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (cSmallSingle + q)); + VeloY = vx2 - (vx1 * nx_dirTS[k] + vx2 * ny_dirTS[k] + vx3 * nz_dirTS[k]) * ny_dirTS[k]; + VeloZ = vx3 - (vx1 * nx_dirTS[k] + vx2 * ny_dirTS[k] + vx3 * nz_dirTS[k]) * nz_dirTS[k]; + un = fabs(-(vx1 * nx_dirTS[k] + vx2 * ny_dirTS[k] + vx3 * nz_dirTS[k]) * ny_dirTS[k] + (vx1 * nx_dirTS[k] + vx2 * ny_dirTS[k] + vx3 * nz_dirTS[k]) * nz_dirTS[k]); + ut = fabs(-VeloY + VeloZ); + tangential = ut / (ut + un + cSmallSingle); + qSlip = sliplength * fabs(-ny_dirTS[k]+nz_dirTS[k]); //sliplength * e_i * n_i + //qSlip = (qSlip < zero) ? zero:qSlip; + //tangential = (tangential > one) ? one:tangential; + q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (cSmallSingle + q)); feq=c1o54* (drho/*+three*( -vx2+vx3)*/+c9o2*( -vx2+vx3)*( -vx2+vx3) * (c1o1 + drho)-cu_sq); (D.f[d0PM])[kbn]=(c1o1-q)/(c1o1+q)*(f_TS-f_BN+(f_TS+f_BN-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TS+f_BN))/(c1o1+q) - c1o54 * drho; } @@ -4949,18 +4949,18 @@ __global__ void QSlipNormDeviceComp27( q = q_dirTNE[k]; if (q>=c0o1 && q<=c1o1) { - VeloX = vx1 - (vx1 * nx_dirTNE[k] + vx2 * ny_dirTNE[k] + vx3 * nz_dirTNE[k]) * nx_dirTNE[k]; - VeloY = vx2 - (vx1 * nx_dirTNE[k] + vx2 * ny_dirTNE[k] + vx3 * nz_dirTNE[k]) * ny_dirTNE[k]; - VeloZ = vx3 - (vx1 * nx_dirTNE[k] + vx2 * ny_dirTNE[k] + vx3 * nz_dirTNE[k]) * nz_dirTNE[k]; - un = fabs( (vx1 * nx_dirTNE[k] + vx2 * ny_dirTNE[k] + vx3 * nz_dirTNE[k]) * nx_dirTNE[k] - +(vx1 * nx_dirTNE[k] + vx2 * ny_dirTNE[k] + vx3 * nz_dirTNE[k]) * ny_dirTNE[k] - +(vx1 * nx_dirTNE[k] + vx2 * ny_dirTNE[k] + vx3 * nz_dirTNE[k]) * nz_dirTNE[k]); - ut = fabs( VeloX + VeloY + VeloZ); - tangential = ut / (ut + un + cSmallSingle); - qSlip = sliplength * fabs( nx_dirTNE[k] + ny_dirTNE[k] + nz_dirTNE[k]); //sliplength * e_i * n_i - //qSlip = (qSlip < zero) ? zero:qSlip; - //tangential = (tangential > one) ? one:tangential; - q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (cSmallSingle + q)); + VeloX = vx1 - (vx1 * nx_dirTNE[k] + vx2 * ny_dirTNE[k] + vx3 * nz_dirTNE[k]) * nx_dirTNE[k]; + VeloY = vx2 - (vx1 * nx_dirTNE[k] + vx2 * ny_dirTNE[k] + vx3 * nz_dirTNE[k]) * ny_dirTNE[k]; + VeloZ = vx3 - (vx1 * nx_dirTNE[k] + vx2 * ny_dirTNE[k] + vx3 * nz_dirTNE[k]) * nz_dirTNE[k]; + un = fabs( (vx1 * nx_dirTNE[k] + vx2 * ny_dirTNE[k] + vx3 * nz_dirTNE[k]) * nx_dirTNE[k] + +(vx1 * nx_dirTNE[k] + vx2 * ny_dirTNE[k] + vx3 * nz_dirTNE[k]) * ny_dirTNE[k] + +(vx1 * nx_dirTNE[k] + vx2 * ny_dirTNE[k] + vx3 * nz_dirTNE[k]) * nz_dirTNE[k]); + ut = fabs( VeloX + VeloY + VeloZ); + tangential = ut / (ut + un + cSmallSingle); + qSlip = sliplength * fabs( nx_dirTNE[k] + ny_dirTNE[k] + nz_dirTNE[k]); //sliplength * e_i * n_i + //qSlip = (qSlip < zero) ? zero:qSlip; + //tangential = (tangential > one) ? one:tangential; + q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (cSmallSingle + q)); feq=c1o216*(drho/*+three*( vx1+vx2+vx3)*/+c9o2*( vx1+vx2+vx3)*( vx1+vx2+vx3) * (c1o1 + drho)-cu_sq); (D.f[dMMM])[kbsw]=(c1o1-q)/(c1o1+q)*(f_TNE-f_BSW+(f_TNE+f_BSW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TNE+f_BSW))/(c1o1+q) - c1o216 * drho; } @@ -4968,18 +4968,18 @@ __global__ void QSlipNormDeviceComp27( q = q_dirBSW[k]; if (q>=c0o1 && q<=c1o1) { - VeloX = vx1 - (vx1 * nx_dirBSW[k] + vx2 * ny_dirBSW[k] + vx3 * nz_dirBSW[k]) * nx_dirBSW[k]; - VeloY = vx2 - (vx1 * nx_dirBSW[k] + vx2 * ny_dirBSW[k] + vx3 * nz_dirBSW[k]) * ny_dirBSW[k]; - VeloZ = vx3 - (vx1 * nx_dirBSW[k] + vx2 * ny_dirBSW[k] + vx3 * nz_dirBSW[k]) * nz_dirBSW[k]; - un = fabs(-(vx1 * nx_dirBSW[k] + vx2 * ny_dirBSW[k] + vx3 * nz_dirBSW[k]) * nx_dirBSW[k] - -(vx1 * nx_dirBSW[k] + vx2 * ny_dirBSW[k] + vx3 * nz_dirBSW[k]) * ny_dirBSW[k] - -(vx1 * nx_dirBSW[k] + vx2 * ny_dirBSW[k] + vx3 * nz_dirBSW[k]) * nz_dirBSW[k]); - ut = fabs(-VeloX - VeloY - VeloZ); - tangential = ut / (ut + un + cSmallSingle); - qSlip = sliplength * fabs(-nx_dirBSW[k] - ny_dirBSW[k] - nz_dirBSW[k]); //sliplength * e_i * n_i - //qSlip = (qSlip < zero) ? zero:qSlip; - //tangential = (tangential > one) ? one:tangential; - q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (cSmallSingle + q)); + VeloX = vx1 - (vx1 * nx_dirBSW[k] + vx2 * ny_dirBSW[k] + vx3 * nz_dirBSW[k]) * nx_dirBSW[k]; + VeloY = vx2 - (vx1 * nx_dirBSW[k] + vx2 * ny_dirBSW[k] + vx3 * nz_dirBSW[k]) * ny_dirBSW[k]; + VeloZ = vx3 - (vx1 * nx_dirBSW[k] + vx2 * ny_dirBSW[k] + vx3 * nz_dirBSW[k]) * nz_dirBSW[k]; + un = fabs(-(vx1 * nx_dirBSW[k] + vx2 * ny_dirBSW[k] + vx3 * nz_dirBSW[k]) * nx_dirBSW[k] + -(vx1 * nx_dirBSW[k] + vx2 * ny_dirBSW[k] + vx3 * nz_dirBSW[k]) * ny_dirBSW[k] + -(vx1 * nx_dirBSW[k] + vx2 * ny_dirBSW[k] + vx3 * nz_dirBSW[k]) * nz_dirBSW[k]); + ut = fabs(-VeloX - VeloY - VeloZ); + tangential = ut / (ut + un + cSmallSingle); + qSlip = sliplength * fabs(-nx_dirBSW[k] - ny_dirBSW[k] - nz_dirBSW[k]); //sliplength * e_i * n_i + //qSlip = (qSlip < zero) ? zero:qSlip; + //tangential = (tangential > one) ? one:tangential; + q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (cSmallSingle + q)); feq=c1o216*(drho/*+three*(-vx1-vx2-vx3)*/+c9o2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3) * (c1o1 + drho)-cu_sq); (D.f[dPPP])[ktne]=(c1o1-q)/(c1o1+q)*(f_BSW-f_TNE+(f_BSW+f_TNE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BSW+f_TNE))/(c1o1+q) - c1o216 * drho; } @@ -4987,18 +4987,18 @@ __global__ void QSlipNormDeviceComp27( q = q_dirBNE[k]; if (q>=c0o1 && q<=c1o1) { - VeloX = vx1 - (vx1 * nx_dirBNE[k] + vx2 * ny_dirBNE[k] + vx3 * nz_dirBNE[k]) * nx_dirBNE[k]; - VeloY = vx2 - (vx1 * nx_dirBNE[k] + vx2 * ny_dirBNE[k] + vx3 * nz_dirBNE[k]) * ny_dirBNE[k]; - VeloZ = vx3 - (vx1 * nx_dirBNE[k] + vx2 * ny_dirBNE[k] + vx3 * nz_dirBNE[k]) * nz_dirBNE[k]; - un = fabs( (vx1 * nx_dirBNE[k] + vx2 * ny_dirBNE[k] + vx3 * nz_dirBNE[k]) * nx_dirBNE[k] - +(vx1 * nx_dirBNE[k] + vx2 * ny_dirBNE[k] + vx3 * nz_dirBNE[k]) * ny_dirBNE[k] - -(vx1 * nx_dirBNE[k] + vx2 * ny_dirBNE[k] + vx3 * nz_dirBNE[k]) * nz_dirBNE[k]); - ut = fabs( VeloX + VeloY - VeloZ); - tangential = ut / (ut + un + cSmallSingle); - qSlip = sliplength * fabs( nx_dirBNE[k] + ny_dirBNE[k] - nz_dirBNE[k]); //sliplength * e_i * n_i - //qSlip = (qSlip < zero) ? zero:qSlip; - //tangential = (tangential > one) ? one:tangential; - q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (cSmallSingle + q)); + VeloX = vx1 - (vx1 * nx_dirBNE[k] + vx2 * ny_dirBNE[k] + vx3 * nz_dirBNE[k]) * nx_dirBNE[k]; + VeloY = vx2 - (vx1 * nx_dirBNE[k] + vx2 * ny_dirBNE[k] + vx3 * nz_dirBNE[k]) * ny_dirBNE[k]; + VeloZ = vx3 - (vx1 * nx_dirBNE[k] + vx2 * ny_dirBNE[k] + vx3 * nz_dirBNE[k]) * nz_dirBNE[k]; + un = fabs( (vx1 * nx_dirBNE[k] + vx2 * ny_dirBNE[k] + vx3 * nz_dirBNE[k]) * nx_dirBNE[k] + +(vx1 * nx_dirBNE[k] + vx2 * ny_dirBNE[k] + vx3 * nz_dirBNE[k]) * ny_dirBNE[k] + -(vx1 * nx_dirBNE[k] + vx2 * ny_dirBNE[k] + vx3 * nz_dirBNE[k]) * nz_dirBNE[k]); + ut = fabs( VeloX + VeloY - VeloZ); + tangential = ut / (ut + un + cSmallSingle); + qSlip = sliplength * fabs( nx_dirBNE[k] + ny_dirBNE[k] - nz_dirBNE[k]); //sliplength * e_i * n_i + //qSlip = (qSlip < zero) ? zero:qSlip; + //tangential = (tangential > one) ? one:tangential; + q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (cSmallSingle + q)); feq=c1o216*(drho/*+three*( vx1+vx2-vx3)*/+c9o2*( vx1+vx2-vx3)*( vx1+vx2-vx3) * (c1o1 + drho)-cu_sq); (D.f[dMMP])[ktsw]=(c1o1-q)/(c1o1+q)*(f_BNE-f_TSW+(f_BNE+f_TSW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BNE+f_TSW))/(c1o1+q) - c1o216 * drho; } @@ -5006,18 +5006,18 @@ __global__ void QSlipNormDeviceComp27( q = q_dirTSW[k]; if (q>=c0o1 && q<=c1o1) { - VeloX = vx1 - (vx1 * nx_dirTSW[k] + vx2 * ny_dirTSW[k] + vx3 * nz_dirTSW[k]) * nx_dirTSW[k]; - VeloY = vx2 - (vx1 * nx_dirTSW[k] + vx2 * ny_dirTSW[k] + vx3 * nz_dirTSW[k]) * ny_dirTSW[k]; - VeloZ = vx3 - (vx1 * nx_dirTSW[k] + vx2 * ny_dirTSW[k] + vx3 * nz_dirTSW[k]) * nz_dirTSW[k]; - un = fabs(-(vx1 * nx_dirTSW[k] + vx2 * ny_dirTSW[k] + vx3 * nz_dirTSW[k]) * nx_dirTSW[k] - -(vx1 * nx_dirTSW[k] + vx2 * ny_dirTSW[k] + vx3 * nz_dirTSW[k]) * ny_dirTSW[k] - +(vx1 * nx_dirTSW[k] + vx2 * ny_dirTSW[k] + vx3 * nz_dirTSW[k]) * nz_dirTSW[k]); - ut = fabs(-VeloX - VeloY + VeloZ); - tangential = ut / (ut + un + cSmallSingle); - qSlip = sliplength * fabs(-nx_dirTSW[k] - ny_dirTSW[k] + nz_dirTSW[k]); //sliplength * e_i * n_i - //qSlip = (qSlip < zero) ? zero:qSlip; - //tangential = (tangential > one) ? one:tangential; - q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (cSmallSingle + q)); + VeloX = vx1 - (vx1 * nx_dirTSW[k] + vx2 * ny_dirTSW[k] + vx3 * nz_dirTSW[k]) * nx_dirTSW[k]; + VeloY = vx2 - (vx1 * nx_dirTSW[k] + vx2 * ny_dirTSW[k] + vx3 * nz_dirTSW[k]) * ny_dirTSW[k]; + VeloZ = vx3 - (vx1 * nx_dirTSW[k] + vx2 * ny_dirTSW[k] + vx3 * nz_dirTSW[k]) * nz_dirTSW[k]; + un = fabs(-(vx1 * nx_dirTSW[k] + vx2 * ny_dirTSW[k] + vx3 * nz_dirTSW[k]) * nx_dirTSW[k] + -(vx1 * nx_dirTSW[k] + vx2 * ny_dirTSW[k] + vx3 * nz_dirTSW[k]) * ny_dirTSW[k] + +(vx1 * nx_dirTSW[k] + vx2 * ny_dirTSW[k] + vx3 * nz_dirTSW[k]) * nz_dirTSW[k]); + ut = fabs(-VeloX - VeloY + VeloZ); + tangential = ut / (ut + un + cSmallSingle); + qSlip = sliplength * fabs(-nx_dirTSW[k] - ny_dirTSW[k] + nz_dirTSW[k]); //sliplength * e_i * n_i + //qSlip = (qSlip < zero) ? zero:qSlip; + //tangential = (tangential > one) ? one:tangential; + q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (cSmallSingle + q)); feq=c1o216*(drho/*+three*(-vx1-vx2+vx3)*/+c9o2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3) * (c1o1 + drho)-cu_sq); (D.f[dPPM])[kbne]=(c1o1-q)/(c1o1+q)*(f_TSW-f_BNE+(f_TSW+f_BNE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TSW+f_BNE))/(c1o1+q) - c1o216 * drho; } @@ -5025,18 +5025,18 @@ __global__ void QSlipNormDeviceComp27( q = q_dirTSE[k]; if (q>=c0o1 && q<=c1o1) { - VeloX = vx1 - (vx1 * nx_dirTSE[k] + vx2 * ny_dirTSE[k] + vx3 * nz_dirTSE[k]) * nx_dirTSE[k]; - VeloY = vx2 - (vx1 * nx_dirTSE[k] + vx2 * ny_dirTSE[k] + vx3 * nz_dirTSE[k]) * ny_dirTSE[k]; - VeloZ = vx3 - (vx1 * nx_dirTSE[k] + vx2 * ny_dirTSE[k] + vx3 * nz_dirTSE[k]) * nz_dirTSE[k]; - un = fabs(+(vx1 * nx_dirTSE[k] + vx2 * ny_dirTSE[k] + vx3 * nz_dirTSE[k]) * nx_dirTSE[k] - -(vx1 * nx_dirTSE[k] + vx2 * ny_dirTSE[k] + vx3 * nz_dirTSE[k]) * ny_dirTSE[k] - +(vx1 * nx_dirTSE[k] + vx2 * ny_dirTSE[k] + vx3 * nz_dirTSE[k]) * nz_dirTSE[k]); - ut = fabs(+VeloX - VeloY + VeloZ); - tangential = ut / (ut + un + cSmallSingle); - qSlip = sliplength * fabs( nx_dirTSE[k] - ny_dirTSE[k] + nz_dirTSE[k]); //sliplength * e_i * n_i - //qSlip = (qSlip < zero) ? zero:qSlip; - //tangential = (tangential > one) ? one:tangential; - q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (cSmallSingle + q)); + VeloX = vx1 - (vx1 * nx_dirTSE[k] + vx2 * ny_dirTSE[k] + vx3 * nz_dirTSE[k]) * nx_dirTSE[k]; + VeloY = vx2 - (vx1 * nx_dirTSE[k] + vx2 * ny_dirTSE[k] + vx3 * nz_dirTSE[k]) * ny_dirTSE[k]; + VeloZ = vx3 - (vx1 * nx_dirTSE[k] + vx2 * ny_dirTSE[k] + vx3 * nz_dirTSE[k]) * nz_dirTSE[k]; + un = fabs(+(vx1 * nx_dirTSE[k] + vx2 * ny_dirTSE[k] + vx3 * nz_dirTSE[k]) * nx_dirTSE[k] + -(vx1 * nx_dirTSE[k] + vx2 * ny_dirTSE[k] + vx3 * nz_dirTSE[k]) * ny_dirTSE[k] + +(vx1 * nx_dirTSE[k] + vx2 * ny_dirTSE[k] + vx3 * nz_dirTSE[k]) * nz_dirTSE[k]); + ut = fabs(+VeloX - VeloY + VeloZ); + tangential = ut / (ut + un + cSmallSingle); + qSlip = sliplength * fabs( nx_dirTSE[k] - ny_dirTSE[k] + nz_dirTSE[k]); //sliplength * e_i * n_i + //qSlip = (qSlip < zero) ? zero:qSlip; + //tangential = (tangential > one) ? one:tangential; + q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (cSmallSingle + q)); feq=c1o216*(drho/*+three*( vx1-vx2+vx3)*/+c9o2*( vx1-vx2+vx3)*( vx1-vx2+vx3) * (c1o1 + drho)-cu_sq); (D.f[dMPM])[kbnw]=(c1o1-q)/(c1o1+q)*(f_TSE-f_BNW+(f_TSE+f_BNW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TSE+f_BNW))/(c1o1+q) - c1o216 * drho; } @@ -5044,18 +5044,18 @@ __global__ void QSlipNormDeviceComp27( q = q_dirBNW[k]; if (q>=c0o1 && q<=c1o1) { - VeloX = vx1 - (vx1 * nx_dirBNW[k] + vx2 * ny_dirBNW[k] + vx3 * nz_dirBNW[k]) * nx_dirBNW[k]; - VeloY = vx2 - (vx1 * nx_dirBNW[k] + vx2 * ny_dirBNW[k] + vx3 * nz_dirBNW[k]) * ny_dirBNW[k]; - VeloZ = vx3 - (vx1 * nx_dirBNW[k] + vx2 * ny_dirBNW[k] + vx3 * nz_dirBNW[k]) * nz_dirBNW[k]; - un = fabs(-(vx1 * nx_dirBNW[k] + vx2 * ny_dirBNW[k] + vx3 * nz_dirBNW[k]) * nx_dirBNW[k] - +(vx1 * nx_dirBNW[k] + vx2 * ny_dirBNW[k] + vx3 * nz_dirBNW[k]) * ny_dirBNW[k] - -(vx1 * nx_dirBNW[k] + vx2 * ny_dirBNW[k] + vx3 * nz_dirBNW[k]) * nz_dirBNW[k]); - ut = fabs(-VeloX + VeloY - VeloZ); - tangential = ut / (ut + un + cSmallSingle); - qSlip = sliplength * fabs(-nx_dirBNW[k] + ny_dirBNW[k] - nz_dirBNW[k]); //sliplength * e_i * n_i - //qSlip = (qSlip < zero) ? zero:qSlip; - //tangential = (tangential > one) ? one:tangential; - q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (cSmallSingle + q)); + VeloX = vx1 - (vx1 * nx_dirBNW[k] + vx2 * ny_dirBNW[k] + vx3 * nz_dirBNW[k]) * nx_dirBNW[k]; + VeloY = vx2 - (vx1 * nx_dirBNW[k] + vx2 * ny_dirBNW[k] + vx3 * nz_dirBNW[k]) * ny_dirBNW[k]; + VeloZ = vx3 - (vx1 * nx_dirBNW[k] + vx2 * ny_dirBNW[k] + vx3 * nz_dirBNW[k]) * nz_dirBNW[k]; + un = fabs(-(vx1 * nx_dirBNW[k] + vx2 * ny_dirBNW[k] + vx3 * nz_dirBNW[k]) * nx_dirBNW[k] + +(vx1 * nx_dirBNW[k] + vx2 * ny_dirBNW[k] + vx3 * nz_dirBNW[k]) * ny_dirBNW[k] + -(vx1 * nx_dirBNW[k] + vx2 * ny_dirBNW[k] + vx3 * nz_dirBNW[k]) * nz_dirBNW[k]); + ut = fabs(-VeloX + VeloY - VeloZ); + tangential = ut / (ut + un + cSmallSingle); + qSlip = sliplength * fabs(-nx_dirBNW[k] + ny_dirBNW[k] - nz_dirBNW[k]); //sliplength * e_i * n_i + //qSlip = (qSlip < zero) ? zero:qSlip; + //tangential = (tangential > one) ? one:tangential; + q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (cSmallSingle + q)); feq=c1o216*(drho/*+three*(-vx1+vx2-vx3)*/+c9o2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3) * (c1o1 + drho)-cu_sq); (D.f[dPMP])[ktse]=(c1o1-q)/(c1o1+q)*(f_BNW-f_TSE+(f_BNW+f_TSE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BNW+f_TSE))/(c1o1+q) - c1o216 * drho; } @@ -5063,18 +5063,18 @@ __global__ void QSlipNormDeviceComp27( q = q_dirBSE[k]; if (q>=c0o1 && q<=c1o1) { - VeloX = vx1 - (vx1 * nx_dirBSE[k] + vx2 * ny_dirBSE[k] + vx3 * nz_dirBSE[k]) * nx_dirBSE[k]; - VeloY = vx2 - (vx1 * nx_dirBSE[k] + vx2 * ny_dirBSE[k] + vx3 * nz_dirBSE[k]) * ny_dirBSE[k]; - VeloZ = vx3 - (vx1 * nx_dirBSE[k] + vx2 * ny_dirBSE[k] + vx3 * nz_dirBSE[k]) * nz_dirBSE[k]; - un = fabs( (vx1 * nx_dirBSE[k] + vx2 * ny_dirBSE[k] + vx3 * nz_dirBSE[k]) * nx_dirBSE[k] - -(vx1 * nx_dirBSE[k] + vx2 * ny_dirBSE[k] + vx3 * nz_dirBSE[k]) * ny_dirBSE[k] - -(vx1 * nx_dirBSE[k] + vx2 * ny_dirBSE[k] + vx3 * nz_dirBSE[k]) * nz_dirBSE[k]); - ut = fabs( VeloX - VeloY - VeloZ); - tangential = ut / (ut + un + cSmallSingle); - qSlip = sliplength * fabs( nx_dirBSE[k] - ny_dirBSE[k] - nz_dirBSE[k]); //sliplength * e_i * n_i - //qSlip = (qSlip < zero) ? zero:qSlip; - //tangential = (tangential > one) ? one:tangential; - q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (cSmallSingle + q)); + VeloX = vx1 - (vx1 * nx_dirBSE[k] + vx2 * ny_dirBSE[k] + vx3 * nz_dirBSE[k]) * nx_dirBSE[k]; + VeloY = vx2 - (vx1 * nx_dirBSE[k] + vx2 * ny_dirBSE[k] + vx3 * nz_dirBSE[k]) * ny_dirBSE[k]; + VeloZ = vx3 - (vx1 * nx_dirBSE[k] + vx2 * ny_dirBSE[k] + vx3 * nz_dirBSE[k]) * nz_dirBSE[k]; + un = fabs( (vx1 * nx_dirBSE[k] + vx2 * ny_dirBSE[k] + vx3 * nz_dirBSE[k]) * nx_dirBSE[k] + -(vx1 * nx_dirBSE[k] + vx2 * ny_dirBSE[k] + vx3 * nz_dirBSE[k]) * ny_dirBSE[k] + -(vx1 * nx_dirBSE[k] + vx2 * ny_dirBSE[k] + vx3 * nz_dirBSE[k]) * nz_dirBSE[k]); + ut = fabs( VeloX - VeloY - VeloZ); + tangential = ut / (ut + un + cSmallSingle); + qSlip = sliplength * fabs( nx_dirBSE[k] - ny_dirBSE[k] - nz_dirBSE[k]); //sliplength * e_i * n_i + //qSlip = (qSlip < zero) ? zero:qSlip; + //tangential = (tangential > one) ? one:tangential; + q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (cSmallSingle + q)); feq=c1o216*(drho/*+three*( vx1-vx2-vx3)*/+c9o2*( vx1-vx2-vx3)*( vx1-vx2-vx3) * (c1o1 + drho)-cu_sq); (D.f[dMPP])[ktnw]=(c1o1-q)/(c1o1+q)*(f_BSE-f_TNW+(f_BSE+f_TNW-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_BSE+f_TNW))/(c1o1+q) - c1o216 * drho; } @@ -5082,18 +5082,18 @@ __global__ void QSlipNormDeviceComp27( q = q_dirTNW[k]; if (q>=c0o1 && q<=c1o1) { - VeloX = vx1 - (vx1 * nx_dirTNW[k] + vx2 * ny_dirTNW[k] + vx3 * nz_dirTNW[k]) * nx_dirTNW[k]; - VeloY = vx2 - (vx1 * nx_dirTNW[k] + vx2 * ny_dirTNW[k] + vx3 * nz_dirTNW[k]) * ny_dirTNW[k]; - VeloZ = vx3 - (vx1 * nx_dirTNW[k] + vx2 * ny_dirTNW[k] + vx3 * nz_dirTNW[k]) * nz_dirTNW[k]; - un = fabs(-(vx1 * nx_dirTNW[k] + vx2 * ny_dirTNW[k] + vx3 * nz_dirTNW[k]) * nx_dirTNW[k] - +(vx1 * nx_dirTNW[k] + vx2 * ny_dirTNW[k] + vx3 * nz_dirTNW[k]) * ny_dirTNW[k] - +(vx1 * nx_dirTNW[k] + vx2 * ny_dirTNW[k] + vx3 * nz_dirTNW[k]) * nz_dirTNW[k]); - ut = fabs(-VeloX + VeloY + VeloZ); - tangential = ut / (ut + un + cSmallSingle); - qSlip = sliplength * fabs(-nx_dirTNW[k] + ny_dirTNW[k] + nz_dirTNW[k]); //sliplength * e_i * n_i - //qSlip = (qSlip < zero) ? zero:qSlip; - //tangential = (tangential > one) ? one:tangential; - q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (cSmallSingle + q)); + VeloX = vx1 - (vx1 * nx_dirTNW[k] + vx2 * ny_dirTNW[k] + vx3 * nz_dirTNW[k]) * nx_dirTNW[k]; + VeloY = vx2 - (vx1 * nx_dirTNW[k] + vx2 * ny_dirTNW[k] + vx3 * nz_dirTNW[k]) * ny_dirTNW[k]; + VeloZ = vx3 - (vx1 * nx_dirTNW[k] + vx2 * ny_dirTNW[k] + vx3 * nz_dirTNW[k]) * nz_dirTNW[k]; + un = fabs(-(vx1 * nx_dirTNW[k] + vx2 * ny_dirTNW[k] + vx3 * nz_dirTNW[k]) * nx_dirTNW[k] + +(vx1 * nx_dirTNW[k] + vx2 * ny_dirTNW[k] + vx3 * nz_dirTNW[k]) * ny_dirTNW[k] + +(vx1 * nx_dirTNW[k] + vx2 * ny_dirTNW[k] + vx3 * nz_dirTNW[k]) * nz_dirTNW[k]); + ut = fabs(-VeloX + VeloY + VeloZ); + tangential = ut / (ut + un + cSmallSingle); + qSlip = sliplength * fabs(-nx_dirTNW[k] + ny_dirTNW[k] + nz_dirTNW[k]); //sliplength * e_i * n_i + //qSlip = (qSlip < zero) ? zero:qSlip; + //tangential = (tangential > one) ? one:tangential; + q = (q + qSlip)/(c1o1 + qSlip * (c1o1 - tangential) / (cSmallSingle + q)); feq=c1o216*(drho/*+three*(-vx1+vx2+vx3)*/+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3) * (c1o1 + drho)-cu_sq); (D.f[dPMM])[kbse]=(c1o1-q)/(c1o1+q)*(f_TNW-f_BSE+(f_TNW+f_BSE-c2o1*feq*om1)/(c1o1-om1))*c1o2+(q*(f_TNW+f_BSE))/(c1o1+q) - c1o216 * drho; } diff --git a/src/gpu/core/GPU/StressBCs27.cu b/src/gpu/core/GPU/StressBCs27.cu index b9b538dbc643fee107780f5d34d3f3e91b762ef1..4279a8cec0dd4dd4c2bf50006790c68298050e5f 100644 --- a/src/gpu/core/GPU/StressBCs27.cu +++ b/src/gpu/core/GPU/StressBCs27.cu @@ -855,7 +855,7 @@ __global__ void QStressDeviceComp27( ////////////////////////////////////////////////////////////////////////////// __global__ void BBStressDevice27( real* DD, - int* k_Q, + int* k_Q, int* k_N, real* QQ, unsigned int numberOfBCnodes, @@ -1486,7 +1486,7 @@ __global__ void BBStressDevice27( real* DD, ////////////////////////////////////////////////////////////////////////////// __global__ void BBStressPressureDevice27( real* DD, - int* k_Q, + int* k_Q, int* k_N, real* QQ, unsigned int numberOfBCnodes, diff --git a/src/gpu/core/GPU/ThinWallBCs27.cu b/src/gpu/core/GPU/ThinWallBCs27.cu index e35782207c90cada824b5c5423a566afa3645573..c3bb6946278660c4e0a145fcd3d58ade32f94fe8 100644 --- a/src/gpu/core/GPU/ThinWallBCs27.cu +++ b/src/gpu/core/GPU/ThinWallBCs27.cu @@ -16,19 +16,19 @@ using namespace vf::lbm::dir; ///////////////////////////////////////////////////////////////////////// __global__ void QVelDeviceCompThinWallsPartOne27( - real* vx, - real* vy, - real* vz, - real* DD, - int* k_Q, - real* QQ, - uint numberOfBCnodes, - real om1, - uint* neighborX, - uint* neighborY, - uint* neighborZ, - unsigned long long numberOfLBnodes, - bool isEvenTimestep) + real* vx, + real* vy, + real* vz, + real* DD, + int* k_Q, + real* QQ, + uint numberOfBCnodes, + real om1, + uint* neighborX, + uint* neighborY, + uint* neighborZ, + unsigned long long numberOfLBnodes, + bool isEvenTimestep) { Distributions27 D; if (isEvenTimestep==true) @@ -227,42 +227,42 @@ __global__ void QVelDeviceCompThinWallsPartOne27( if (q>=c0o1 && q<=c1o1) { feq=c2o27* (drho + c9o2 * ( vx1 )*( vx1 ) * (c1o1 + drho)-cu_sq); - (D.f[dM00])[kw] = (c1o1 - q) / (c1o1 + q)*(f_E - f_W + (f_E + f_W - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_E + f_W) - c6o1*c2o27*(VeloX)) / (c1o1 + q); - } - - q = q_dirW[k]; - if (q >= c0o1 && q <= c1o1) - { - feq = c2o27* (drho + c9o2 * (-vx1)*(-vx1) * (c1o1 + drho) - cu_sq); - (D.f[dP00])[ke] = (c1o1 - q) / (c1o1 + q)*(f_W - f_E + (f_W + f_E - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_W + f_E) - c6o1*c2o27*(-VeloX)) / (c1o1 + q); - } - - q = q_dirN[k]; - if (q >= c0o1 && q <= c1o1) - { - feq = c2o27* (drho + c9o2 * (vx2)*(vx2) * (c1o1 + drho) - cu_sq); - (D.f[d0M0])[ks] = (c1o1 - q) / (c1o1 + q)*(f_N - f_S + (f_N + f_S - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_N + f_S) - c6o1*c2o27*(VeloY)) / (c1o1 + q); - } - - q = q_dirS[k]; - if (q >= c0o1 && q <= c1o1) - { - feq = c2o27* (drho + c9o2 * (-vx2)*(-vx2) * (c1o1 + drho) - cu_sq); - (D.f[d0P0])[kn] = (c1o1 - q) / (c1o1 + q)*(f_S - f_N + (f_S + f_N - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_S + f_N) - c6o1*c2o27*(-VeloY)) / (c1o1 + q); - } - - q = q_dirT[k]; - if (q >= c0o1 && q <= c1o1) - { - feq = c2o27* (drho + c9o2 * (vx3)*(vx3) * (c1o1 + drho) - cu_sq); - (D.f[d00M])[kb] = (c1o1 - q) / (c1o1 + q)*(f_T - f_B + (f_T + f_B - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_T + f_B) - c6o1*c2o27*(VeloZ)) / (c1o1 + q); - } - - q = q_dirB[k]; - if (q >= c0o1 && q <= c1o1) - { - feq = c2o27* (drho + c9o2 * (-vx3)*(-vx3) * (c1o1 + drho) - cu_sq); - (D.f[d00P])[kt] = (c1o1 - q) / (c1o1 + q)*(f_B - f_T + (f_B + f_T - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_B + f_T) - c6o1*c2o27*(-VeloZ)) / (c1o1 + q); + (D.f[dM00])[kw] = (c1o1 - q) / (c1o1 + q)*(f_E - f_W + (f_E + f_W - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_E + f_W) - c6o1*c2o27*(VeloX)) / (c1o1 + q); + } + + q = q_dirW[k]; + if (q >= c0o1 && q <= c1o1) + { + feq = c2o27* (drho + c9o2 * (-vx1)*(-vx1) * (c1o1 + drho) - cu_sq); + (D.f[dP00])[ke] = (c1o1 - q) / (c1o1 + q)*(f_W - f_E + (f_W + f_E - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_W + f_E) - c6o1*c2o27*(-VeloX)) / (c1o1 + q); + } + + q = q_dirN[k]; + if (q >= c0o1 && q <= c1o1) + { + feq = c2o27* (drho + c9o2 * (vx2)*(vx2) * (c1o1 + drho) - cu_sq); + (D.f[d0M0])[ks] = (c1o1 - q) / (c1o1 + q)*(f_N - f_S + (f_N + f_S - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_N + f_S) - c6o1*c2o27*(VeloY)) / (c1o1 + q); + } + + q = q_dirS[k]; + if (q >= c0o1 && q <= c1o1) + { + feq = c2o27* (drho + c9o2 * (-vx2)*(-vx2) * (c1o1 + drho) - cu_sq); + (D.f[d0P0])[kn] = (c1o1 - q) / (c1o1 + q)*(f_S - f_N + (f_S + f_N - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_S + f_N) - c6o1*c2o27*(-VeloY)) / (c1o1 + q); + } + + q = q_dirT[k]; + if (q >= c0o1 && q <= c1o1) + { + feq = c2o27* (drho + c9o2 * (vx3)*(vx3) * (c1o1 + drho) - cu_sq); + (D.f[d00M])[kb] = (c1o1 - q) / (c1o1 + q)*(f_T - f_B + (f_T + f_B - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_T + f_B) - c6o1*c2o27*(VeloZ)) / (c1o1 + q); + } + + q = q_dirB[k]; + if (q >= c0o1 && q <= c1o1) + { + feq = c2o27* (drho + c9o2 * (-vx3)*(-vx3) * (c1o1 + drho) - cu_sq); + (D.f[d00P])[kt] = (c1o1 - q) / (c1o1 + q)*(f_B - f_T + (f_B + f_T - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_B + f_T) - c6o1*c2o27*(-VeloZ)) / (c1o1 + q); } q = q_dirNE[k]; @@ -448,388 +448,388 @@ __global__ void QVelDeviceCompThinWallsPartOne27( ////////////////////////////////////////////////////////////////////////////// __global__ void QDeviceCompThinWallsPartOne27( - real* DD, - int* k_Q, - real* QQ, - unsigned int numberOfBCnodes, - real om1, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned long long numberOfLBnodes, - bool isEvenTimestep) + real* DD, + int* k_Q, + real* QQ, + unsigned int numberOfBCnodes, + real om1, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned long long numberOfLBnodes, + bool isEvenTimestep) { - Distributions27 D; - if (isEvenTimestep == true) - { - D.f[dP00] = &DD[dP00 * numberOfLBnodes]; - D.f[dM00] = &DD[dM00 * numberOfLBnodes]; - D.f[d0P0] = &DD[d0P0 * numberOfLBnodes]; - D.f[d0M0] = &DD[d0M0 * numberOfLBnodes]; - D.f[d00P] = &DD[d00P * numberOfLBnodes]; - D.f[d00M] = &DD[d00M * numberOfLBnodes]; - D.f[dPP0] = &DD[dPP0 * numberOfLBnodes]; - D.f[dMM0] = &DD[dMM0 * numberOfLBnodes]; - D.f[dPM0] = &DD[dPM0 * numberOfLBnodes]; - D.f[dMP0] = &DD[dMP0 * numberOfLBnodes]; - D.f[dP0P] = &DD[dP0P * numberOfLBnodes]; - D.f[dM0M] = &DD[dM0M * numberOfLBnodes]; - D.f[dP0M] = &DD[dP0M * numberOfLBnodes]; - D.f[dM0P] = &DD[dM0P * numberOfLBnodes]; - D.f[d0PP] = &DD[d0PP * numberOfLBnodes]; - D.f[d0MM] = &DD[d0MM * numberOfLBnodes]; - D.f[d0PM] = &DD[d0PM * numberOfLBnodes]; - D.f[d0MP] = &DD[d0MP * numberOfLBnodes]; - D.f[d000] = &DD[d000 * numberOfLBnodes]; - D.f[dPPP] = &DD[dPPP * numberOfLBnodes]; - D.f[dMMP] = &DD[dMMP * numberOfLBnodes]; - D.f[dPMP] = &DD[dPMP * numberOfLBnodes]; - D.f[dMPP] = &DD[dMPP * numberOfLBnodes]; - D.f[dPPM] = &DD[dPPM * numberOfLBnodes]; - D.f[dMMM] = &DD[dMMM * numberOfLBnodes]; - D.f[dPMM] = &DD[dPMM * numberOfLBnodes]; - D.f[dMPM] = &DD[dMPM * numberOfLBnodes]; - } - else - { - D.f[dM00] = &DD[dP00 * numberOfLBnodes]; - D.f[dP00] = &DD[dM00 * numberOfLBnodes]; - D.f[d0M0] = &DD[d0P0 * numberOfLBnodes]; - D.f[d0P0] = &DD[d0M0 * numberOfLBnodes]; - D.f[d00M] = &DD[d00P * numberOfLBnodes]; - D.f[d00P] = &DD[d00M * numberOfLBnodes]; - D.f[dMM0] = &DD[dPP0 * numberOfLBnodes]; - D.f[dPP0] = &DD[dMM0 * numberOfLBnodes]; - D.f[dMP0] = &DD[dPM0 * numberOfLBnodes]; - D.f[dPM0] = &DD[dMP0 * numberOfLBnodes]; - D.f[dM0M] = &DD[dP0P * numberOfLBnodes]; - D.f[dP0P] = &DD[dM0M * numberOfLBnodes]; - D.f[dM0P] = &DD[dP0M * numberOfLBnodes]; - D.f[dP0M] = &DD[dM0P * numberOfLBnodes]; - D.f[d0MM] = &DD[d0PP * numberOfLBnodes]; - D.f[d0PP] = &DD[d0MM * numberOfLBnodes]; - D.f[d0MP] = &DD[d0PM * numberOfLBnodes]; - D.f[d0PM] = &DD[d0MP * numberOfLBnodes]; - D.f[d000] = &DD[d000 * numberOfLBnodes]; - D.f[dPPP] = &DD[dMMM * numberOfLBnodes]; - D.f[dMMP] = &DD[dPPM * numberOfLBnodes]; - D.f[dPMP] = &DD[dMPM * numberOfLBnodes]; - D.f[dMPP] = &DD[dPMM * numberOfLBnodes]; - D.f[dPPM] = &DD[dMMP * numberOfLBnodes]; - D.f[dMMM] = &DD[dPPP * numberOfLBnodes]; - D.f[dPMM] = &DD[dMPP * numberOfLBnodes]; - D.f[dMPM] = &DD[dPMP * numberOfLBnodes]; - } - //////////////////////////////////////////////////////////////////////////////// - const unsigned x = threadIdx.x; // Globaler x-Index - const unsigned y = blockIdx.x; // Globaler y-Index - const unsigned z = blockIdx.y; // Globaler z-Index - - const unsigned nx = blockDim.x; - const unsigned ny = gridDim.x; - - const unsigned k = nx*(ny*z + y) + x; - ////////////////////////////////////////////////////////////////////////// - - if (k < numberOfBCnodes) - { - //////////////////////////////////////////////////////////////////////////////// - real *q_dirE, *q_dirW, *q_dirN, *q_dirS, *q_dirT, *q_dirB, - *q_dirNE, *q_dirSW, *q_dirSE, *q_dirNW, *q_dirTE, *q_dirBW, - *q_dirBE, *q_dirTW, *q_dirTN, *q_dirBS, *q_dirBN, *q_dirTS, - *q_dirTNE, *q_dirTSW, *q_dirTSE, *q_dirTNW, *q_dirBNE, *q_dirBSW, - *q_dirBSE, *q_dirBNW; - q_dirE = &QQ[dP00 * numberOfBCnodes]; - q_dirW = &QQ[dM00 * numberOfBCnodes]; - q_dirN = &QQ[d0P0 * numberOfBCnodes]; - q_dirS = &QQ[d0M0 * numberOfBCnodes]; - q_dirT = &QQ[d00P * numberOfBCnodes]; - q_dirB = &QQ[d00M * numberOfBCnodes]; - q_dirNE = &QQ[dPP0 * numberOfBCnodes]; - q_dirSW = &QQ[dMM0 * numberOfBCnodes]; - q_dirSE = &QQ[dPM0 * numberOfBCnodes]; - q_dirNW = &QQ[dMP0 * numberOfBCnodes]; - q_dirTE = &QQ[dP0P * numberOfBCnodes]; - q_dirBW = &QQ[dM0M * numberOfBCnodes]; - q_dirBE = &QQ[dP0M * numberOfBCnodes]; - q_dirTW = &QQ[dM0P * numberOfBCnodes]; - q_dirTN = &QQ[d0PP * numberOfBCnodes]; - q_dirBS = &QQ[d0MM * numberOfBCnodes]; - q_dirBN = &QQ[d0PM * numberOfBCnodes]; - q_dirTS = &QQ[d0MP * numberOfBCnodes]; - q_dirTNE = &QQ[dPPP * numberOfBCnodes]; - q_dirTSW = &QQ[dMMP * numberOfBCnodes]; - q_dirTSE = &QQ[dPMP * numberOfBCnodes]; - q_dirTNW = &QQ[dMPP * numberOfBCnodes]; - q_dirBNE = &QQ[dPPM * numberOfBCnodes]; - q_dirBSW = &QQ[dMMM * numberOfBCnodes]; - q_dirBSE = &QQ[dPMM * numberOfBCnodes]; - q_dirBNW = &QQ[dMPM * numberOfBCnodes]; - //////////////////////////////////////////////////////////////////////////////// - //index - unsigned int KQK = k_Q[k]; - unsigned int kzero = KQK; - unsigned int ke = KQK; - unsigned int kw = neighborX[KQK]; - unsigned int kn = KQK; - unsigned int ks = neighborY[KQK]; - unsigned int kt = KQK; - unsigned int kb = neighborZ[KQK]; - unsigned int ksw = neighborY[kw]; - unsigned int kne = KQK; - unsigned int kse = ks; - unsigned int knw = kw; - unsigned int kbw = neighborZ[kw]; - unsigned int kte = KQK; - unsigned int kbe = kb; - unsigned int ktw = kw; - unsigned int kbs = neighborZ[ks]; - unsigned int ktn = KQK; - unsigned int kbn = kb; - unsigned int kts = ks; - unsigned int ktse = ks; - unsigned int kbnw = kbw; - unsigned int ktnw = kw; - unsigned int kbse = kbs; - unsigned int ktsw = ksw; - unsigned int kbne = kb; - unsigned int ktne = KQK; - unsigned int kbsw = neighborZ[ksw]; - //////////////////////////////////////////////////////////////////////////////// - real f_E, f_W, f_N, f_S, f_T, f_B, f_NE, f_SW, f_SE, f_NW, f_TE, f_BW, f_BE, - f_TW, f_TN, f_BS, f_BN, f_TS, f_TNE, f_TSW, f_TSE, f_TNW, f_BNE, f_BSW, f_BSE, f_BNW; - - f_W = (D.f[dP00])[ke]; - f_E = (D.f[dM00])[kw]; - f_S = (D.f[d0P0])[kn]; - f_N = (D.f[d0M0])[ks]; - f_B = (D.f[d00P])[kt]; - f_T = (D.f[d00M])[kb]; - f_SW = (D.f[dPP0])[kne]; - f_NE = (D.f[dMM0])[ksw]; - f_NW = (D.f[dPM0])[kse]; - f_SE = (D.f[dMP0])[knw]; - f_BW = (D.f[dP0P])[kte]; - f_TE = (D.f[dM0M])[kbw]; - f_TW = (D.f[dP0M])[kbe]; - f_BE = (D.f[dM0P])[ktw]; - f_BS = (D.f[d0PP])[ktn]; - f_TN = (D.f[d0MM])[kbs]; - f_TS = (D.f[d0PM])[kbn]; - f_BN = (D.f[d0MP])[kts]; - f_BSW = (D.f[dPPP])[ktne]; - f_BNE = (D.f[dMMP])[ktsw]; - f_BNW = (D.f[dPMP])[ktse]; - f_BSE = (D.f[dMPP])[ktnw]; - f_TSW = (D.f[dPPM])[kbne]; - f_TNE = (D.f[dMMM])[kbsw]; - f_TNW = (D.f[dPMM])[kbse]; - f_TSE = (D.f[dMPM])[kbnw]; - //////////////////////////////////////////////////////////////////////////////// - real vx1, vx2, vx3, drho, feq, q; - drho = f_TSE + f_TNW + f_TNE + f_TSW + f_BSE + f_BNW + f_BNE + f_BSW + - f_BN + f_TS + f_TN + f_BS + f_BE + f_TW + f_TE + f_BW + f_SE + f_NW + f_NE + f_SW + - f_T + f_B + f_N + f_S + f_E + f_W + ((D.f[d000])[kzero]); - - vx1 = (((f_TSE - f_BNW) - (f_TNW - f_BSE)) + ((f_TNE - f_BSW) - (f_TSW - f_BNE)) + - ((f_BE - f_TW) + (f_TE - f_BW)) + ((f_SE - f_NW) + (f_NE - f_SW)) + - (f_E - f_W)) / (c1o1 + drho); - - - vx2 = ((-(f_TSE - f_BNW) + (f_TNW - f_BSE)) + ((f_TNE - f_BSW) - (f_TSW - f_BNE)) + - ((f_BN - f_TS) + (f_TN - f_BS)) + (-(f_SE - f_NW) + (f_NE - f_SW)) + - (f_N - f_S)) / (c1o1 + drho); - - vx3 = (((f_TSE - f_BNW) + (f_TNW - f_BSE)) + ((f_TNE - f_BSW) + (f_TSW - f_BNE)) + - (-(f_BN - f_TS) + (f_TN - f_BS)) + ((f_TE - f_BW) - (f_BE - f_TW)) + - (f_T - f_B)) / (c1o1 + drho); - - //////////////////////////////////////////////////////////////////////////////// - real cu_sq = c3o2*(vx1*vx1 + vx2*vx2 + vx3*vx3) * (c1o1 + drho); - //////////////////////////////////////////////////////////////////////////////// - - q = q_dirE[k]; - if (q >= c0o1 && q <= c1o1) - { - feq = c2o27* (drho + c9o2*(vx1)*(vx1) * (c1o1 + drho) - cu_sq); - (D.f[dM00])[kw] = (c1o1 - q) / (c1o1 + q)*(f_E - f_W + (f_E + f_W - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_E + f_W)) / (c1o1 + q); - } - - q = q_dirW[k]; - if (q >= c0o1 && q <= c1o1) - { - feq = c2o27* (drho + c9o2*(-vx1)*(-vx1) * (c1o1 + drho) - cu_sq); - (D.f[dP00])[ke] = (c1o1 - q) / (c1o1 + q)*(f_W - f_E + (f_W + f_E - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_W + f_E)) / (c1o1 + q); - } - - q = q_dirN[k]; - if (q >= c0o1 && q <= c1o1) - { - feq = c2o27* (drho + c9o2*(vx2)*(vx2) * (c1o1 + drho) - cu_sq); - (D.f[d0M0])[ks] = (c1o1 - q) / (c1o1 + q)*(f_N - f_S + (f_N + f_S - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_N + f_S)) / (c1o1 + q); - } - - q = q_dirS[k]; - if (q >= c0o1 && q <= c1o1) - { - feq = c2o27* (drho + c9o2*(-vx2)*(-vx2) * (c1o1 + drho) - cu_sq); - (D.f[d0P0])[kn] = (c1o1 - q) / (c1o1 + q)*(f_S - f_N + (f_S + f_N - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_S + f_N)) / (c1o1 + q); - } - - q = q_dirT[k]; - if (q >= c0o1 && q <= c1o1) - { - feq = c2o27* (drho + c9o2*(vx3)*(vx3) * (c1o1 + drho) - cu_sq); - (D.f[d00M])[kb] = (c1o1 - q) / (c1o1 + q)*(f_T - f_B + (f_T + f_B - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_T + f_B)) / (c1o1 + q); - } - - q = q_dirB[k]; - if (q >= c0o1 && q <= c1o1) - { - feq = c2o27* (drho + c9o2*(-vx3)*(-vx3) * (c1o1 + drho) - cu_sq); - (D.f[d00P])[kt] = (c1o1 - q) / (c1o1 + q)*(f_B - f_T + (f_B + f_T - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_B + f_T)) / (c1o1 + q); - } - - q = q_dirNE[k]; - if (q >= c0o1 && q <= c1o1) - { - feq = c1o54* (drho + c9o2*(vx1 + vx2)*(vx1 + vx2) * (c1o1 + drho) - cu_sq); - (D.f[dMM0])[ksw] = (c1o1 - q) / (c1o1 + q)*(f_NE - f_SW + (f_NE + f_SW - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_NE + f_SW)) / (c1o1 + q); - } - - q = q_dirSW[k]; - if (q >= c0o1 && q <= c1o1) - { - feq = c1o54* (drho + c9o2*(-vx1 - vx2)*(-vx1 - vx2) * (c1o1 + drho) - cu_sq); - (D.f[dPP0])[kne] = (c1o1 - q) / (c1o1 + q)*(f_SW - f_NE + (f_SW + f_NE - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_SW + f_NE)) / (c1o1 + q); - } - - q = q_dirSE[k]; - if (q >= c0o1 && q <= c1o1) - { - feq = c1o54* (drho + c9o2*(vx1 - vx2)*(vx1 - vx2) * (c1o1 + drho) - cu_sq); - (D.f[dMP0])[knw] = (c1o1 - q) / (c1o1 + q)*(f_SE - f_NW + (f_SE + f_NW - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_SE + f_NW)) / (c1o1 + q); - } - - q = q_dirNW[k]; - if (q >= c0o1 && q <= c1o1) - { - feq = c1o54* (drho + c9o2*(-vx1 + vx2)*(-vx1 + vx2) * (c1o1 + drho) - cu_sq); - (D.f[dPM0])[kse] = (c1o1 - q) / (c1o1 + q)*(f_NW - f_SE + (f_NW + f_SE - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_NW + f_SE)) / (c1o1 + q); - } - - q = q_dirTE[k]; - if (q >= c0o1 && q <= c1o1) - { - feq = c1o54* (drho + c9o2*(vx1 + vx3)*(vx1 + vx3) * (c1o1 + drho) - cu_sq); - (D.f[dM0M])[kbw] = (c1o1 - q) / (c1o1 + q)*(f_TE - f_BW + (f_TE + f_BW - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_TE + f_BW)) / (c1o1 + q); - } - - q = q_dirBW[k]; - if (q >= c0o1 && q <= c1o1) - { - feq = c1o54* (drho + c9o2*(-vx1 - vx3)*(-vx1 - vx3) * (c1o1 + drho) - cu_sq); - (D.f[dP0P])[kte] = (c1o1 - q) / (c1o1 + q)*(f_BW - f_TE + (f_BW + f_TE - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_BW + f_TE)) / (c1o1 + q); - } - - q = q_dirBE[k]; - if (q >= c0o1 && q <= c1o1) - { - feq = c1o54* (drho + c9o2*(vx1 - vx3)*(vx1 - vx3) * (c1o1 + drho) - cu_sq); - (D.f[dM0P])[ktw] = (c1o1 - q) / (c1o1 + q)*(f_BE - f_TW + (f_BE + f_TW - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_BE + f_TW)) / (c1o1 + q); - } - - q = q_dirTW[k]; - if (q >= c0o1 && q <= c1o1) - { - feq = c1o54* (drho + c9o2*(-vx1 + vx3)*(-vx1 + vx3) * (c1o1 + drho) - cu_sq); - (D.f[dP0M])[kbe] = (c1o1 - q) / (c1o1 + q)*(f_TW - f_BE + (f_TW + f_BE - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_TW + f_BE)) / (c1o1 + q); - } - - q = q_dirTN[k]; - if (q >= c0o1 && q <= c1o1) - { - feq = c1o54* (drho + c9o2*(vx2 + vx3)*(vx2 + vx3) * (c1o1 + drho) - cu_sq); - (D.f[d0MM])[kbs] = (c1o1 - q) / (c1o1 + q)*(f_TN - f_BS + (f_TN + f_BS - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_TN + f_BS)) / (c1o1 + q); - } - - q = q_dirBS[k]; - if (q >= c0o1 && q <= c1o1) - { - feq = c1o54* (drho + c9o2*(-vx2 - vx3)*(-vx2 - vx3) * (c1o1 + drho) - cu_sq); - (D.f[d0PP])[ktn] = (c1o1 - q) / (c1o1 + q)*(f_BS - f_TN + (f_BS + f_TN - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_BS + f_TN)) / (c1o1 + q); - } - - q = q_dirBN[k]; - if (q >= c0o1 && q <= c1o1) - { - feq = c1o54* (drho + c9o2*(vx2 - vx3)*(vx2 - vx3) * (c1o1 + drho) - cu_sq); - (D.f[d0MP])[kts] = (c1o1 - q) / (c1o1 + q)*(f_BN - f_TS + (f_BN + f_TS - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_BN + f_TS)) / (c1o1 + q); - } - - q = q_dirTS[k]; - if (q >= c0o1 && q <= c1o1) - { - feq = c1o54* (drho + c9o2*(-vx2 + vx3)*(-vx2 + vx3) * (c1o1 + drho) - cu_sq); - (D.f[d0PM])[kbn] = (c1o1 - q) / (c1o1 + q)*(f_TS - f_BN + (f_TS + f_BN - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_TS + f_BN)) / (c1o1 + q); - } - - q = q_dirTNE[k]; - if (q >= c0o1 && q <= c1o1) - { - feq = c1o216*(drho + c9o2*(vx1 + vx2 + vx3)*(vx1 + vx2 + vx3) * (c1o1 + drho) - cu_sq); - (D.f[dMMM])[kbsw] = (c1o1 - q) / (c1o1 + q)*(f_TNE - f_BSW + (f_TNE + f_BSW - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_TNE + f_BSW)) / (c1o1 + q); - } - - q = q_dirBSW[k]; - if (q >= c0o1 && q <= c1o1) - { - feq = c1o216*(drho + c9o2*(-vx1 - vx2 - vx3)*(-vx1 - vx2 - vx3) * (c1o1 + drho) - cu_sq); - (D.f[dPPP])[ktne] = (c1o1 - q) / (c1o1 + q)*(f_BSW - f_TNE + (f_BSW + f_TNE - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_BSW + f_TNE)) / (c1o1 + q); - } - - q = q_dirBNE[k]; - if (q >= c0o1 && q <= c1o1) - { - feq = c1o216*(drho + c9o2*(vx1 + vx2 - vx3)*(vx1 + vx2 - vx3) * (c1o1 + drho) - cu_sq); - (D.f[dMMP])[ktsw] = (c1o1 - q) / (c1o1 + q)*(f_BNE - f_TSW + (f_BNE + f_TSW - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_BNE + f_TSW)) / (c1o1 + q); - } - - q = q_dirTSW[k]; - if (q >= c0o1 && q <= c1o1) - { - feq = c1o216*(drho + c9o2*(-vx1 - vx2 + vx3)*(-vx1 - vx2 + vx3) * (c1o1 + drho) - cu_sq); - (D.f[dPPM])[kbne] = (c1o1 - q) / (c1o1 + q)*(f_TSW - f_BNE + (f_TSW + f_BNE - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_TSW + f_BNE)) / (c1o1 + q); - } - - q = q_dirTSE[k]; - if (q >= c0o1 && q <= c1o1) - { - feq = c1o216*(drho + c9o2*(vx1 - vx2 + vx3)*(vx1 - vx2 + vx3) * (c1o1 + drho) - cu_sq); - (D.f[dMPM])[kbnw] = (c1o1 - q) / (c1o1 + q)*(f_TSE - f_BNW + (f_TSE + f_BNW - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_TSE + f_BNW)) / (c1o1 + q); - } - - q = q_dirBNW[k]; - if (q >= c0o1 && q <= c1o1) - { - feq = c1o216*(drho + c9o2*(-vx1 + vx2 - vx3)*(-vx1 + vx2 - vx3) * (c1o1 + drho) - cu_sq); - (D.f[dPMP])[ktse] = (c1o1 - q) / (c1o1 + q)*(f_BNW - f_TSE + (f_BNW + f_TSE - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_BNW + f_TSE)) / (c1o1 + q); - } - - q = q_dirBSE[k]; - if (q >= c0o1 && q <= c1o1) - { - feq = c1o216*(drho + c9o2*(vx1 - vx2 - vx3)*(vx1 - vx2 - vx3) * (c1o1 + drho) - cu_sq); - (D.f[dMPP])[ktnw] = (c1o1 - q) / (c1o1 + q)*(f_BSE - f_TNW + (f_BSE + f_TNW - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_BSE + f_TNW)) / (c1o1 + q); - } - - q = q_dirTNW[k]; - if (q >= c0o1 && q <= c1o1) - { - feq = c1o216*(drho + c9o2*(-vx1 + vx2 + vx3)*(-vx1 + vx2 + vx3) * (c1o1 + drho) - cu_sq); - (D.f[dPMM])[kbse] = (c1o1 - q) / (c1o1 + q)*(f_TNW - f_BSE + (f_TNW + f_BSE - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_TNW + f_BSE)) / (c1o1 + q); - } - } + Distributions27 D; + if (isEvenTimestep == true) + { + D.f[dP00] = &DD[dP00 * numberOfLBnodes]; + D.f[dM00] = &DD[dM00 * numberOfLBnodes]; + D.f[d0P0] = &DD[d0P0 * numberOfLBnodes]; + D.f[d0M0] = &DD[d0M0 * numberOfLBnodes]; + D.f[d00P] = &DD[d00P * numberOfLBnodes]; + D.f[d00M] = &DD[d00M * numberOfLBnodes]; + D.f[dPP0] = &DD[dPP0 * numberOfLBnodes]; + D.f[dMM0] = &DD[dMM0 * numberOfLBnodes]; + D.f[dPM0] = &DD[dPM0 * numberOfLBnodes]; + D.f[dMP0] = &DD[dMP0 * numberOfLBnodes]; + D.f[dP0P] = &DD[dP0P * numberOfLBnodes]; + D.f[dM0M] = &DD[dM0M * numberOfLBnodes]; + D.f[dP0M] = &DD[dP0M * numberOfLBnodes]; + D.f[dM0P] = &DD[dM0P * numberOfLBnodes]; + D.f[d0PP] = &DD[d0PP * numberOfLBnodes]; + D.f[d0MM] = &DD[d0MM * numberOfLBnodes]; + D.f[d0PM] = &DD[d0PM * numberOfLBnodes]; + D.f[d0MP] = &DD[d0MP * numberOfLBnodes]; + D.f[d000] = &DD[d000 * numberOfLBnodes]; + D.f[dPPP] = &DD[dPPP * numberOfLBnodes]; + D.f[dMMP] = &DD[dMMP * numberOfLBnodes]; + D.f[dPMP] = &DD[dPMP * numberOfLBnodes]; + D.f[dMPP] = &DD[dMPP * numberOfLBnodes]; + D.f[dPPM] = &DD[dPPM * numberOfLBnodes]; + D.f[dMMM] = &DD[dMMM * numberOfLBnodes]; + D.f[dPMM] = &DD[dPMM * numberOfLBnodes]; + D.f[dMPM] = &DD[dMPM * numberOfLBnodes]; + } + else + { + D.f[dM00] = &DD[dP00 * numberOfLBnodes]; + D.f[dP00] = &DD[dM00 * numberOfLBnodes]; + D.f[d0M0] = &DD[d0P0 * numberOfLBnodes]; + D.f[d0P0] = &DD[d0M0 * numberOfLBnodes]; + D.f[d00M] = &DD[d00P * numberOfLBnodes]; + D.f[d00P] = &DD[d00M * numberOfLBnodes]; + D.f[dMM0] = &DD[dPP0 * numberOfLBnodes]; + D.f[dPP0] = &DD[dMM0 * numberOfLBnodes]; + D.f[dMP0] = &DD[dPM0 * numberOfLBnodes]; + D.f[dPM0] = &DD[dMP0 * numberOfLBnodes]; + D.f[dM0M] = &DD[dP0P * numberOfLBnodes]; + D.f[dP0P] = &DD[dM0M * numberOfLBnodes]; + D.f[dM0P] = &DD[dP0M * numberOfLBnodes]; + D.f[dP0M] = &DD[dM0P * numberOfLBnodes]; + D.f[d0MM] = &DD[d0PP * numberOfLBnodes]; + D.f[d0PP] = &DD[d0MM * numberOfLBnodes]; + D.f[d0MP] = &DD[d0PM * numberOfLBnodes]; + D.f[d0PM] = &DD[d0MP * numberOfLBnodes]; + D.f[d000] = &DD[d000 * numberOfLBnodes]; + D.f[dPPP] = &DD[dMMM * numberOfLBnodes]; + D.f[dMMP] = &DD[dPPM * numberOfLBnodes]; + D.f[dPMP] = &DD[dMPM * numberOfLBnodes]; + D.f[dMPP] = &DD[dPMM * numberOfLBnodes]; + D.f[dPPM] = &DD[dMMP * numberOfLBnodes]; + D.f[dMMM] = &DD[dPPP * numberOfLBnodes]; + D.f[dPMM] = &DD[dMPP * numberOfLBnodes]; + D.f[dMPM] = &DD[dPMP * numberOfLBnodes]; + } + //////////////////////////////////////////////////////////////////////////////// + const unsigned x = threadIdx.x; // Globaler x-Index + const unsigned y = blockIdx.x; // Globaler y-Index + const unsigned z = blockIdx.y; // Globaler z-Index + + const unsigned nx = blockDim.x; + const unsigned ny = gridDim.x; + + const unsigned k = nx*(ny*z + y) + x; + ////////////////////////////////////////////////////////////////////////// + + if (k < numberOfBCnodes) + { + //////////////////////////////////////////////////////////////////////////////// + real *q_dirE, *q_dirW, *q_dirN, *q_dirS, *q_dirT, *q_dirB, + *q_dirNE, *q_dirSW, *q_dirSE, *q_dirNW, *q_dirTE, *q_dirBW, + *q_dirBE, *q_dirTW, *q_dirTN, *q_dirBS, *q_dirBN, *q_dirTS, + *q_dirTNE, *q_dirTSW, *q_dirTSE, *q_dirTNW, *q_dirBNE, *q_dirBSW, + *q_dirBSE, *q_dirBNW; + q_dirE = &QQ[dP00 * numberOfBCnodes]; + q_dirW = &QQ[dM00 * numberOfBCnodes]; + q_dirN = &QQ[d0P0 * numberOfBCnodes]; + q_dirS = &QQ[d0M0 * numberOfBCnodes]; + q_dirT = &QQ[d00P * numberOfBCnodes]; + q_dirB = &QQ[d00M * numberOfBCnodes]; + q_dirNE = &QQ[dPP0 * numberOfBCnodes]; + q_dirSW = &QQ[dMM0 * numberOfBCnodes]; + q_dirSE = &QQ[dPM0 * numberOfBCnodes]; + q_dirNW = &QQ[dMP0 * numberOfBCnodes]; + q_dirTE = &QQ[dP0P * numberOfBCnodes]; + q_dirBW = &QQ[dM0M * numberOfBCnodes]; + q_dirBE = &QQ[dP0M * numberOfBCnodes]; + q_dirTW = &QQ[dM0P * numberOfBCnodes]; + q_dirTN = &QQ[d0PP * numberOfBCnodes]; + q_dirBS = &QQ[d0MM * numberOfBCnodes]; + q_dirBN = &QQ[d0PM * numberOfBCnodes]; + q_dirTS = &QQ[d0MP * numberOfBCnodes]; + q_dirTNE = &QQ[dPPP * numberOfBCnodes]; + q_dirTSW = &QQ[dMMP * numberOfBCnodes]; + q_dirTSE = &QQ[dPMP * numberOfBCnodes]; + q_dirTNW = &QQ[dMPP * numberOfBCnodes]; + q_dirBNE = &QQ[dPPM * numberOfBCnodes]; + q_dirBSW = &QQ[dMMM * numberOfBCnodes]; + q_dirBSE = &QQ[dPMM * numberOfBCnodes]; + q_dirBNW = &QQ[dMPM * numberOfBCnodes]; + //////////////////////////////////////////////////////////////////////////////// + //index + unsigned int KQK = k_Q[k]; + unsigned int kzero = KQK; + unsigned int ke = KQK; + unsigned int kw = neighborX[KQK]; + unsigned int kn = KQK; + unsigned int ks = neighborY[KQK]; + unsigned int kt = KQK; + unsigned int kb = neighborZ[KQK]; + unsigned int ksw = neighborY[kw]; + unsigned int kne = KQK; + unsigned int kse = ks; + unsigned int knw = kw; + unsigned int kbw = neighborZ[kw]; + unsigned int kte = KQK; + unsigned int kbe = kb; + unsigned int ktw = kw; + unsigned int kbs = neighborZ[ks]; + unsigned int ktn = KQK; + unsigned int kbn = kb; + unsigned int kts = ks; + unsigned int ktse = ks; + unsigned int kbnw = kbw; + unsigned int ktnw = kw; + unsigned int kbse = kbs; + unsigned int ktsw = ksw; + unsigned int kbne = kb; + unsigned int ktne = KQK; + unsigned int kbsw = neighborZ[ksw]; + //////////////////////////////////////////////////////////////////////////////// + real f_E, f_W, f_N, f_S, f_T, f_B, f_NE, f_SW, f_SE, f_NW, f_TE, f_BW, f_BE, + f_TW, f_TN, f_BS, f_BN, f_TS, f_TNE, f_TSW, f_TSE, f_TNW, f_BNE, f_BSW, f_BSE, f_BNW; + + f_W = (D.f[dP00])[ke]; + f_E = (D.f[dM00])[kw]; + f_S = (D.f[d0P0])[kn]; + f_N = (D.f[d0M0])[ks]; + f_B = (D.f[d00P])[kt]; + f_T = (D.f[d00M])[kb]; + f_SW = (D.f[dPP0])[kne]; + f_NE = (D.f[dMM0])[ksw]; + f_NW = (D.f[dPM0])[kse]; + f_SE = (D.f[dMP0])[knw]; + f_BW = (D.f[dP0P])[kte]; + f_TE = (D.f[dM0M])[kbw]; + f_TW = (D.f[dP0M])[kbe]; + f_BE = (D.f[dM0P])[ktw]; + f_BS = (D.f[d0PP])[ktn]; + f_TN = (D.f[d0MM])[kbs]; + f_TS = (D.f[d0PM])[kbn]; + f_BN = (D.f[d0MP])[kts]; + f_BSW = (D.f[dPPP])[ktne]; + f_BNE = (D.f[dMMP])[ktsw]; + f_BNW = (D.f[dPMP])[ktse]; + f_BSE = (D.f[dMPP])[ktnw]; + f_TSW = (D.f[dPPM])[kbne]; + f_TNE = (D.f[dMMM])[kbsw]; + f_TNW = (D.f[dPMM])[kbse]; + f_TSE = (D.f[dMPM])[kbnw]; + //////////////////////////////////////////////////////////////////////////////// + real vx1, vx2, vx3, drho, feq, q; + drho = f_TSE + f_TNW + f_TNE + f_TSW + f_BSE + f_BNW + f_BNE + f_BSW + + f_BN + f_TS + f_TN + f_BS + f_BE + f_TW + f_TE + f_BW + f_SE + f_NW + f_NE + f_SW + + f_T + f_B + f_N + f_S + f_E + f_W + ((D.f[d000])[kzero]); + + vx1 = (((f_TSE - f_BNW) - (f_TNW - f_BSE)) + ((f_TNE - f_BSW) - (f_TSW - f_BNE)) + + ((f_BE - f_TW) + (f_TE - f_BW)) + ((f_SE - f_NW) + (f_NE - f_SW)) + + (f_E - f_W)) / (c1o1 + drho); + + + vx2 = ((-(f_TSE - f_BNW) + (f_TNW - f_BSE)) + ((f_TNE - f_BSW) - (f_TSW - f_BNE)) + + ((f_BN - f_TS) + (f_TN - f_BS)) + (-(f_SE - f_NW) + (f_NE - f_SW)) + + (f_N - f_S)) / (c1o1 + drho); + + vx3 = (((f_TSE - f_BNW) + (f_TNW - f_BSE)) + ((f_TNE - f_BSW) + (f_TSW - f_BNE)) + + (-(f_BN - f_TS) + (f_TN - f_BS)) + ((f_TE - f_BW) - (f_BE - f_TW)) + + (f_T - f_B)) / (c1o1 + drho); + + //////////////////////////////////////////////////////////////////////////////// + real cu_sq = c3o2*(vx1*vx1 + vx2*vx2 + vx3*vx3) * (c1o1 + drho); + //////////////////////////////////////////////////////////////////////////////// + + q = q_dirE[k]; + if (q >= c0o1 && q <= c1o1) + { + feq = c2o27* (drho + c9o2*(vx1)*(vx1) * (c1o1 + drho) - cu_sq); + (D.f[dM00])[kw] = (c1o1 - q) / (c1o1 + q)*(f_E - f_W + (f_E + f_W - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_E + f_W)) / (c1o1 + q); + } + + q = q_dirW[k]; + if (q >= c0o1 && q <= c1o1) + { + feq = c2o27* (drho + c9o2*(-vx1)*(-vx1) * (c1o1 + drho) - cu_sq); + (D.f[dP00])[ke] = (c1o1 - q) / (c1o1 + q)*(f_W - f_E + (f_W + f_E - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_W + f_E)) / (c1o1 + q); + } + + q = q_dirN[k]; + if (q >= c0o1 && q <= c1o1) + { + feq = c2o27* (drho + c9o2*(vx2)*(vx2) * (c1o1 + drho) - cu_sq); + (D.f[d0M0])[ks] = (c1o1 - q) / (c1o1 + q)*(f_N - f_S + (f_N + f_S - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_N + f_S)) / (c1o1 + q); + } + + q = q_dirS[k]; + if (q >= c0o1 && q <= c1o1) + { + feq = c2o27* (drho + c9o2*(-vx2)*(-vx2) * (c1o1 + drho) - cu_sq); + (D.f[d0P0])[kn] = (c1o1 - q) / (c1o1 + q)*(f_S - f_N + (f_S + f_N - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_S + f_N)) / (c1o1 + q); + } + + q = q_dirT[k]; + if (q >= c0o1 && q <= c1o1) + { + feq = c2o27* (drho + c9o2*(vx3)*(vx3) * (c1o1 + drho) - cu_sq); + (D.f[d00M])[kb] = (c1o1 - q) / (c1o1 + q)*(f_T - f_B + (f_T + f_B - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_T + f_B)) / (c1o1 + q); + } + + q = q_dirB[k]; + if (q >= c0o1 && q <= c1o1) + { + feq = c2o27* (drho + c9o2*(-vx3)*(-vx3) * (c1o1 + drho) - cu_sq); + (D.f[d00P])[kt] = (c1o1 - q) / (c1o1 + q)*(f_B - f_T + (f_B + f_T - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_B + f_T)) / (c1o1 + q); + } + + q = q_dirNE[k]; + if (q >= c0o1 && q <= c1o1) + { + feq = c1o54* (drho + c9o2*(vx1 + vx2)*(vx1 + vx2) * (c1o1 + drho) - cu_sq); + (D.f[dMM0])[ksw] = (c1o1 - q) / (c1o1 + q)*(f_NE - f_SW + (f_NE + f_SW - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_NE + f_SW)) / (c1o1 + q); + } + + q = q_dirSW[k]; + if (q >= c0o1 && q <= c1o1) + { + feq = c1o54* (drho + c9o2*(-vx1 - vx2)*(-vx1 - vx2) * (c1o1 + drho) - cu_sq); + (D.f[dPP0])[kne] = (c1o1 - q) / (c1o1 + q)*(f_SW - f_NE + (f_SW + f_NE - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_SW + f_NE)) / (c1o1 + q); + } + + q = q_dirSE[k]; + if (q >= c0o1 && q <= c1o1) + { + feq = c1o54* (drho + c9o2*(vx1 - vx2)*(vx1 - vx2) * (c1o1 + drho) - cu_sq); + (D.f[dMP0])[knw] = (c1o1 - q) / (c1o1 + q)*(f_SE - f_NW + (f_SE + f_NW - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_SE + f_NW)) / (c1o1 + q); + } + + q = q_dirNW[k]; + if (q >= c0o1 && q <= c1o1) + { + feq = c1o54* (drho + c9o2*(-vx1 + vx2)*(-vx1 + vx2) * (c1o1 + drho) - cu_sq); + (D.f[dPM0])[kse] = (c1o1 - q) / (c1o1 + q)*(f_NW - f_SE + (f_NW + f_SE - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_NW + f_SE)) / (c1o1 + q); + } + + q = q_dirTE[k]; + if (q >= c0o1 && q <= c1o1) + { + feq = c1o54* (drho + c9o2*(vx1 + vx3)*(vx1 + vx3) * (c1o1 + drho) - cu_sq); + (D.f[dM0M])[kbw] = (c1o1 - q) / (c1o1 + q)*(f_TE - f_BW + (f_TE + f_BW - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_TE + f_BW)) / (c1o1 + q); + } + + q = q_dirBW[k]; + if (q >= c0o1 && q <= c1o1) + { + feq = c1o54* (drho + c9o2*(-vx1 - vx3)*(-vx1 - vx3) * (c1o1 + drho) - cu_sq); + (D.f[dP0P])[kte] = (c1o1 - q) / (c1o1 + q)*(f_BW - f_TE + (f_BW + f_TE - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_BW + f_TE)) / (c1o1 + q); + } + + q = q_dirBE[k]; + if (q >= c0o1 && q <= c1o1) + { + feq = c1o54* (drho + c9o2*(vx1 - vx3)*(vx1 - vx3) * (c1o1 + drho) - cu_sq); + (D.f[dM0P])[ktw] = (c1o1 - q) / (c1o1 + q)*(f_BE - f_TW + (f_BE + f_TW - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_BE + f_TW)) / (c1o1 + q); + } + + q = q_dirTW[k]; + if (q >= c0o1 && q <= c1o1) + { + feq = c1o54* (drho + c9o2*(-vx1 + vx3)*(-vx1 + vx3) * (c1o1 + drho) - cu_sq); + (D.f[dP0M])[kbe] = (c1o1 - q) / (c1o1 + q)*(f_TW - f_BE + (f_TW + f_BE - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_TW + f_BE)) / (c1o1 + q); + } + + q = q_dirTN[k]; + if (q >= c0o1 && q <= c1o1) + { + feq = c1o54* (drho + c9o2*(vx2 + vx3)*(vx2 + vx3) * (c1o1 + drho) - cu_sq); + (D.f[d0MM])[kbs] = (c1o1 - q) / (c1o1 + q)*(f_TN - f_BS + (f_TN + f_BS - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_TN + f_BS)) / (c1o1 + q); + } + + q = q_dirBS[k]; + if (q >= c0o1 && q <= c1o1) + { + feq = c1o54* (drho + c9o2*(-vx2 - vx3)*(-vx2 - vx3) * (c1o1 + drho) - cu_sq); + (D.f[d0PP])[ktn] = (c1o1 - q) / (c1o1 + q)*(f_BS - f_TN + (f_BS + f_TN - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_BS + f_TN)) / (c1o1 + q); + } + + q = q_dirBN[k]; + if (q >= c0o1 && q <= c1o1) + { + feq = c1o54* (drho + c9o2*(vx2 - vx3)*(vx2 - vx3) * (c1o1 + drho) - cu_sq); + (D.f[d0MP])[kts] = (c1o1 - q) / (c1o1 + q)*(f_BN - f_TS + (f_BN + f_TS - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_BN + f_TS)) / (c1o1 + q); + } + + q = q_dirTS[k]; + if (q >= c0o1 && q <= c1o1) + { + feq = c1o54* (drho + c9o2*(-vx2 + vx3)*(-vx2 + vx3) * (c1o1 + drho) - cu_sq); + (D.f[d0PM])[kbn] = (c1o1 - q) / (c1o1 + q)*(f_TS - f_BN + (f_TS + f_BN - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_TS + f_BN)) / (c1o1 + q); + } + + q = q_dirTNE[k]; + if (q >= c0o1 && q <= c1o1) + { + feq = c1o216*(drho + c9o2*(vx1 + vx2 + vx3)*(vx1 + vx2 + vx3) * (c1o1 + drho) - cu_sq); + (D.f[dMMM])[kbsw] = (c1o1 - q) / (c1o1 + q)*(f_TNE - f_BSW + (f_TNE + f_BSW - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_TNE + f_BSW)) / (c1o1 + q); + } + + q = q_dirBSW[k]; + if (q >= c0o1 && q <= c1o1) + { + feq = c1o216*(drho + c9o2*(-vx1 - vx2 - vx3)*(-vx1 - vx2 - vx3) * (c1o1 + drho) - cu_sq); + (D.f[dPPP])[ktne] = (c1o1 - q) / (c1o1 + q)*(f_BSW - f_TNE + (f_BSW + f_TNE - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_BSW + f_TNE)) / (c1o1 + q); + } + + q = q_dirBNE[k]; + if (q >= c0o1 && q <= c1o1) + { + feq = c1o216*(drho + c9o2*(vx1 + vx2 - vx3)*(vx1 + vx2 - vx3) * (c1o1 + drho) - cu_sq); + (D.f[dMMP])[ktsw] = (c1o1 - q) / (c1o1 + q)*(f_BNE - f_TSW + (f_BNE + f_TSW - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_BNE + f_TSW)) / (c1o1 + q); + } + + q = q_dirTSW[k]; + if (q >= c0o1 && q <= c1o1) + { + feq = c1o216*(drho + c9o2*(-vx1 - vx2 + vx3)*(-vx1 - vx2 + vx3) * (c1o1 + drho) - cu_sq); + (D.f[dPPM])[kbne] = (c1o1 - q) / (c1o1 + q)*(f_TSW - f_BNE + (f_TSW + f_BNE - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_TSW + f_BNE)) / (c1o1 + q); + } + + q = q_dirTSE[k]; + if (q >= c0o1 && q <= c1o1) + { + feq = c1o216*(drho + c9o2*(vx1 - vx2 + vx3)*(vx1 - vx2 + vx3) * (c1o1 + drho) - cu_sq); + (D.f[dMPM])[kbnw] = (c1o1 - q) / (c1o1 + q)*(f_TSE - f_BNW + (f_TSE + f_BNW - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_TSE + f_BNW)) / (c1o1 + q); + } + + q = q_dirBNW[k]; + if (q >= c0o1 && q <= c1o1) + { + feq = c1o216*(drho + c9o2*(-vx1 + vx2 - vx3)*(-vx1 + vx2 - vx3) * (c1o1 + drho) - cu_sq); + (D.f[dPMP])[ktse] = (c1o1 - q) / (c1o1 + q)*(f_BNW - f_TSE + (f_BNW + f_TSE - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_BNW + f_TSE)) / (c1o1 + q); + } + + q = q_dirBSE[k]; + if (q >= c0o1 && q <= c1o1) + { + feq = c1o216*(drho + c9o2*(vx1 - vx2 - vx3)*(vx1 - vx2 - vx3) * (c1o1 + drho) - cu_sq); + (D.f[dMPP])[ktnw] = (c1o1 - q) / (c1o1 + q)*(f_BSE - f_TNW + (f_BSE + f_TNW - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_BSE + f_TNW)) / (c1o1 + q); + } + + q = q_dirTNW[k]; + if (q >= c0o1 && q <= c1o1) + { + feq = c1o216*(drho + c9o2*(-vx1 + vx2 + vx3)*(-vx1 + vx2 + vx3) * (c1o1 + drho) - cu_sq); + (D.f[dPMM])[kbse] = (c1o1 - q) / (c1o1 + q)*(f_TNW - f_BSE + (f_TNW + f_BSE - c2o1*feq*om1) / (c1o1 - om1))*c1o2 + (q*(f_TNW + f_BSE)) / (c1o1 + q); + } + } } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -873,17 +873,17 @@ __global__ void QDeviceCompThinWallsPartOne27( ////////////////////////////////////////////////////////////////////////////// __global__ void QThinWallsPartTwo27( - real* DD, - int* k_Q, - real* QQ, - uint numberOfBCnodes, - uint* geom, - uint* neighborX, - uint* neighborY, - uint* neighborZ, - uint* neighborWSB, - unsigned long long numberOfLBnodes, - bool isEvenTimestep) + real* DD, + int* k_Q, + real* QQ, + uint numberOfBCnodes, + uint* geom, + uint* neighborX, + uint* neighborY, + uint* neighborZ, + uint* neighborWSB, + unsigned long long numberOfLBnodes, + bool isEvenTimestep) { //////////////////////////////////////////////////////////////////////////////// const unsigned x = threadIdx.x; // Globaler x-Index @@ -960,85 +960,85 @@ __global__ void QThinWallsPartTwo27( uint kbne = kb; uint ktne = KQK; uint kbsw = neighborZ[ksw]; - //////////////////////////////////////////////////////////////////////////////// - //anti ET intermediate steps - uint kmmm = neighborWSB[KQK]; // -1 -1 -1 - uint k0mm = neighborX[kmmm]; // 0 -1 -1 - uint km0m = neighborY[kmmm]; // -1 0 -1 - uint kmm0 = neighborZ[kmmm]; // -1 -1 0 - uint k0m0 = neighborX[kmm0]; // 0 -1 0 - uint km00 = neighborY[kmm0]; // -1 0 0 - ///////////////////////////////////////////////// - //final indices for anti ET - uint kpmm = neighborX[k0mm]; // 1 -1 -1 - uint kmpm = neighborY[km0m]; // -1 1 -1 - uint kmmp = neighborZ[kmm0]; // -1 -1 1 - uint kmp0 = neighborY[km00]; // -1 1 0 - uint km0p = neighborZ[km00]; // -1 0 1 - uint k0mp = neighborZ[k0m0]; // 0 -1 1 - //////////////////////////////////////////////////////////////////////////////// - Distributions27 D, DN; - if (isEvenTimestep == true) - { - D.f[dP00] = &DD[dP00 * numberOfLBnodes]; - D.f[dM00] = &DD[dM00 * numberOfLBnodes]; - D.f[d0P0] = &DD[d0P0 * numberOfLBnodes]; - D.f[d0M0] = &DD[d0M0 * numberOfLBnodes]; - D.f[d00P] = &DD[d00P * numberOfLBnodes]; - D.f[d00M] = &DD[d00M * numberOfLBnodes]; - D.f[dPP0] = &DD[dPP0 * numberOfLBnodes]; - D.f[dMM0] = &DD[dMM0 * numberOfLBnodes]; - D.f[dPM0] = &DD[dPM0 * numberOfLBnodes]; - D.f[dMP0] = &DD[dMP0 * numberOfLBnodes]; - D.f[dP0P] = &DD[dP0P * numberOfLBnodes]; - D.f[dM0M] = &DD[dM0M * numberOfLBnodes]; - D.f[dP0M] = &DD[dP0M * numberOfLBnodes]; - D.f[dM0P] = &DD[dM0P * numberOfLBnodes]; - D.f[d0PP] = &DD[d0PP * numberOfLBnodes]; - D.f[d0MM] = &DD[d0MM * numberOfLBnodes]; - D.f[d0PM] = &DD[d0PM * numberOfLBnodes]; - D.f[d0MP] = &DD[d0MP * numberOfLBnodes]; - D.f[d000] = &DD[d000 * numberOfLBnodes]; - D.f[dPPP] = &DD[dPPP * numberOfLBnodes]; - D.f[dMMP] = &DD[dMMP * numberOfLBnodes]; - D.f[dPMP] = &DD[dPMP * numberOfLBnodes]; - D.f[dMPP] = &DD[dMPP * numberOfLBnodes]; - D.f[dPPM] = &DD[dPPM * numberOfLBnodes]; - D.f[dMMM] = &DD[dMMM * numberOfLBnodes]; - D.f[dPMM] = &DD[dPMM * numberOfLBnodes]; - D.f[dMPM] = &DD[dMPM * numberOfLBnodes]; - } - else - { - D.f[dM00] = &DD[dP00 * numberOfLBnodes]; - D.f[dP00] = &DD[dM00 * numberOfLBnodes]; - D.f[d0M0] = &DD[d0P0 * numberOfLBnodes]; - D.f[d0P0] = &DD[d0M0 * numberOfLBnodes]; - D.f[d00M] = &DD[d00P * numberOfLBnodes]; - D.f[d00P] = &DD[d00M * numberOfLBnodes]; - D.f[dMM0] = &DD[dPP0 * numberOfLBnodes]; - D.f[dPP0] = &DD[dMM0 * numberOfLBnodes]; - D.f[dMP0] = &DD[dPM0 * numberOfLBnodes]; - D.f[dPM0] = &DD[dMP0 * numberOfLBnodes]; - D.f[dM0M] = &DD[dP0P * numberOfLBnodes]; - D.f[dP0P] = &DD[dM0M * numberOfLBnodes]; - D.f[dM0P] = &DD[dP0M * numberOfLBnodes]; - D.f[dP0M] = &DD[dM0P * numberOfLBnodes]; - D.f[d0MM] = &DD[d0PP * numberOfLBnodes]; - D.f[d0PP] = &DD[d0MM * numberOfLBnodes]; - D.f[d0MP] = &DD[d0PM * numberOfLBnodes]; - D.f[d0PM] = &DD[d0MP * numberOfLBnodes]; - D.f[d000] = &DD[d000 * numberOfLBnodes]; - D.f[dPPP] = &DD[dMMM * numberOfLBnodes]; - D.f[dMMP] = &DD[dPPM * numberOfLBnodes]; - D.f[dPMP] = &DD[dMPM * numberOfLBnodes]; - D.f[dMPP] = &DD[dPMM * numberOfLBnodes]; - D.f[dPPM] = &DD[dMMP * numberOfLBnodes]; - D.f[dMMM] = &DD[dPPP * numberOfLBnodes]; - D.f[dPMM] = &DD[dMPP * numberOfLBnodes]; - D.f[dMPM] = &DD[dPMP * numberOfLBnodes]; - } - if (isEvenTimestep==false) + //////////////////////////////////////////////////////////////////////////////// + //anti ET intermediate steps + uint kmmm = neighborWSB[KQK]; // -1 -1 -1 + uint k0mm = neighborX[kmmm]; // 0 -1 -1 + uint km0m = neighborY[kmmm]; // -1 0 -1 + uint kmm0 = neighborZ[kmmm]; // -1 -1 0 + uint k0m0 = neighborX[kmm0]; // 0 -1 0 + uint km00 = neighborY[kmm0]; // -1 0 0 + ///////////////////////////////////////////////// + //final indices for anti ET + uint kpmm = neighborX[k0mm]; // 1 -1 -1 + uint kmpm = neighborY[km0m]; // -1 1 -1 + uint kmmp = neighborZ[kmm0]; // -1 -1 1 + uint kmp0 = neighborY[km00]; // -1 1 0 + uint km0p = neighborZ[km00]; // -1 0 1 + uint k0mp = neighborZ[k0m0]; // 0 -1 1 + //////////////////////////////////////////////////////////////////////////////// + Distributions27 D, DN; + if (isEvenTimestep == true) + { + D.f[dP00] = &DD[dP00 * numberOfLBnodes]; + D.f[dM00] = &DD[dM00 * numberOfLBnodes]; + D.f[d0P0] = &DD[d0P0 * numberOfLBnodes]; + D.f[d0M0] = &DD[d0M0 * numberOfLBnodes]; + D.f[d00P] = &DD[d00P * numberOfLBnodes]; + D.f[d00M] = &DD[d00M * numberOfLBnodes]; + D.f[dPP0] = &DD[dPP0 * numberOfLBnodes]; + D.f[dMM0] = &DD[dMM0 * numberOfLBnodes]; + D.f[dPM0] = &DD[dPM0 * numberOfLBnodes]; + D.f[dMP0] = &DD[dMP0 * numberOfLBnodes]; + D.f[dP0P] = &DD[dP0P * numberOfLBnodes]; + D.f[dM0M] = &DD[dM0M * numberOfLBnodes]; + D.f[dP0M] = &DD[dP0M * numberOfLBnodes]; + D.f[dM0P] = &DD[dM0P * numberOfLBnodes]; + D.f[d0PP] = &DD[d0PP * numberOfLBnodes]; + D.f[d0MM] = &DD[d0MM * numberOfLBnodes]; + D.f[d0PM] = &DD[d0PM * numberOfLBnodes]; + D.f[d0MP] = &DD[d0MP * numberOfLBnodes]; + D.f[d000] = &DD[d000 * numberOfLBnodes]; + D.f[dPPP] = &DD[dPPP * numberOfLBnodes]; + D.f[dMMP] = &DD[dMMP * numberOfLBnodes]; + D.f[dPMP] = &DD[dPMP * numberOfLBnodes]; + D.f[dMPP] = &DD[dMPP * numberOfLBnodes]; + D.f[dPPM] = &DD[dPPM * numberOfLBnodes]; + D.f[dMMM] = &DD[dMMM * numberOfLBnodes]; + D.f[dPMM] = &DD[dPMM * numberOfLBnodes]; + D.f[dMPM] = &DD[dMPM * numberOfLBnodes]; + } + else + { + D.f[dM00] = &DD[dP00 * numberOfLBnodes]; + D.f[dP00] = &DD[dM00 * numberOfLBnodes]; + D.f[d0M0] = &DD[d0P0 * numberOfLBnodes]; + D.f[d0P0] = &DD[d0M0 * numberOfLBnodes]; + D.f[d00M] = &DD[d00P * numberOfLBnodes]; + D.f[d00P] = &DD[d00M * numberOfLBnodes]; + D.f[dMM0] = &DD[dPP0 * numberOfLBnodes]; + D.f[dPP0] = &DD[dMM0 * numberOfLBnodes]; + D.f[dMP0] = &DD[dPM0 * numberOfLBnodes]; + D.f[dPM0] = &DD[dMP0 * numberOfLBnodes]; + D.f[dM0M] = &DD[dP0P * numberOfLBnodes]; + D.f[dP0P] = &DD[dM0M * numberOfLBnodes]; + D.f[dM0P] = &DD[dP0M * numberOfLBnodes]; + D.f[dP0M] = &DD[dM0P * numberOfLBnodes]; + D.f[d0MM] = &DD[d0PP * numberOfLBnodes]; + D.f[d0PP] = &DD[d0MM * numberOfLBnodes]; + D.f[d0MP] = &DD[d0PM * numberOfLBnodes]; + D.f[d0PM] = &DD[d0MP * numberOfLBnodes]; + D.f[d000] = &DD[d000 * numberOfLBnodes]; + D.f[dPPP] = &DD[dMMM * numberOfLBnodes]; + D.f[dMMP] = &DD[dPPM * numberOfLBnodes]; + D.f[dPMP] = &DD[dMPM * numberOfLBnodes]; + D.f[dMPP] = &DD[dPMM * numberOfLBnodes]; + D.f[dPPM] = &DD[dMMP * numberOfLBnodes]; + D.f[dMMM] = &DD[dPPP * numberOfLBnodes]; + D.f[dPMM] = &DD[dMPP * numberOfLBnodes]; + D.f[dMPM] = &DD[dPMP * numberOfLBnodes]; + } + if (isEvenTimestep==false) { DN.f[dP00] = &DD[dP00 * numberOfLBnodes]; DN.f[dM00] = &DD[dM00 * numberOfLBnodes]; @@ -1099,15 +1099,15 @@ __global__ void QThinWallsPartTwo27( DN.f[dMPM] = &DD[dPMP * numberOfLBnodes]; } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //directions allways exchange - //(-1 -1 -1) (-1 0 0) ( 0 -1 0) ( 0 0 -1) (-1 -1 0) (-1 0 -1) ( 0 -1 -1) ( 1 1 -1) ( 1 -1 1) (-1 1 1) ( 1 -1 0) ( 1 0 -1) ( 0 1 -1) - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //directions exchange if solid neighbor - //( 1 1 1) ( 1 0 0) ( 0 1 0) ( 0 0 1) ( 1 1 0) ( 1 0 1) ( 0 1 1) (-1 -1 1) (-1 1 -1) ( 1 -1 -1) (-1 1 0) (-1 0 1) ( 0 -1 1) - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real q, tmp; + //directions allways exchange + //(-1 -1 -1) (-1 0 0) ( 0 -1 0) ( 0 0 -1) (-1 -1 0) (-1 0 -1) ( 0 -1 -1) ( 1 1 -1) ( 1 -1 1) (-1 1 1) ( 1 -1 0) ( 1 0 -1) ( 0 1 -1) + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //directions exchange if solid neighbor + //( 1 1 1) ( 1 0 0) ( 0 1 0) ( 0 0 1) ( 1 1 0) ( 1 0 1) ( 0 1 1) (-1 -1 1) (-1 1 -1) ( 1 -1 -1) (-1 1 0) (-1 0 1) ( 0 -1 1) + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + real q, tmp; q = q_dirE[k]; if (q>=c0o1 && q<=c1o1){ if (geom[kw ] < GEO_FLUID){tmp = (DN.f[dM00])[kw ]; (DN.f[dM00])[kw ]=(D.f[dM00])[kw ]; (D.f[dM00])[kw ]=tmp;}} - q = q_dirW[k]; if (q>=c0o1 && q<=c1o1){ {tmp = (DN.f[dP00])[ke ]; (DN.f[dP00])[ke ]=(D.f[dP00])[ke ]; (D.f[dP00])[ke ]=tmp;}} + q = q_dirW[k]; if (q>=c0o1 && q<=c1o1){ {tmp = (DN.f[dP00])[ke ]; (DN.f[dP00])[ke ]=(D.f[dP00])[ke ]; (D.f[dP00])[ke ]=tmp;}} q = q_dirN[k]; if (q>=c0o1 && q<=c1o1){ if (geom[ks ] < GEO_FLUID){tmp = (DN.f[d0M0])[ks ]; (DN.f[d0M0])[ks ]=(D.f[d0M0])[ks ]; (D.f[d0M0])[ks ]=tmp;}} q = q_dirS[k]; if (q>=c0o1 && q<=c1o1){ {tmp = (DN.f[d0P0])[kn ]; (DN.f[d0P0])[kn ]=(D.f[d0P0])[kn ]; (D.f[d0P0])[kn ]=tmp;}} q = q_dirT[k]; if (q>=c0o1 && q<=c1o1){ if (geom[kb ] < GEO_FLUID){tmp = (DN.f[d00M])[kb ]; (DN.f[d00M])[kb ]=(D.f[d00M])[kb ]; (D.f[d00M])[kb ]=tmp;}} diff --git a/src/gpu/core/GPU/VelocityBCs27.cu b/src/gpu/core/GPU/VelocityBCs27.cu index f7e0a574578afb515b3a5665cfeaafe7bc315661..d1798e84490ffed3e803717e22cc8dbbaccf2222 100644 --- a/src/gpu/core/GPU/VelocityBCs27.cu +++ b/src/gpu/core/GPU/VelocityBCs27.cu @@ -129,203 +129,203 @@ __global__ void QVelDeviceCompPlusSlip27( if (k < numberOfBCnodes) { - //////////////////////////////////////////////////////////////////////////////// - real VeloX = vx[k]; - real VeloY = vy[k]; - real VeloZ = vz[k]; //(16.0*(u0*2.0)*bbx*bby*(grid_nx-bbx)*(grid_ny-bby))/(grid_nx*grid_nx*grid_ny*grid_ny) - //////////////////////////////////////////////////////////////////////////////// - real *q_dirE, *q_dirW, *q_dirN, *q_dirS, *q_dirT, *q_dirB, - *q_dirNE, *q_dirSW, *q_dirSE, *q_dirNW, *q_dirTE, *q_dirBW, - *q_dirBE, *q_dirTW, *q_dirTN, *q_dirBS, *q_dirBN, *q_dirTS, - *q_dirTNE, *q_dirTSW, *q_dirTSE, *q_dirTNW, *q_dirBNE, *q_dirBSW, - *q_dirBSE, *q_dirBNW; - q_dirE = &QQ[dP00 * numberOfBCnodes]; - q_dirW = &QQ[dM00 * numberOfBCnodes]; - q_dirN = &QQ[d0P0 * numberOfBCnodes]; - q_dirS = &QQ[d0M0 * numberOfBCnodes]; - q_dirT = &QQ[d00P * numberOfBCnodes]; - q_dirB = &QQ[d00M * numberOfBCnodes]; - q_dirNE = &QQ[dPP0 * numberOfBCnodes]; - q_dirSW = &QQ[dMM0 * numberOfBCnodes]; - q_dirSE = &QQ[dPM0 * numberOfBCnodes]; - q_dirNW = &QQ[dMP0 * numberOfBCnodes]; - q_dirTE = &QQ[dP0P * numberOfBCnodes]; - q_dirBW = &QQ[dM0M * numberOfBCnodes]; - q_dirBE = &QQ[dP0M * numberOfBCnodes]; - q_dirTW = &QQ[dM0P * numberOfBCnodes]; - q_dirTN = &QQ[d0PP * numberOfBCnodes]; - q_dirBS = &QQ[d0MM * numberOfBCnodes]; - q_dirBN = &QQ[d0PM * numberOfBCnodes]; - q_dirTS = &QQ[d0MP * numberOfBCnodes]; - q_dirTNE = &QQ[dPPP * numberOfBCnodes]; - q_dirTSW = &QQ[dMMP * numberOfBCnodes]; - q_dirTSE = &QQ[dPMP * numberOfBCnodes]; - q_dirTNW = &QQ[dMPP * numberOfBCnodes]; - q_dirBNE = &QQ[dPPM * numberOfBCnodes]; - q_dirBSW = &QQ[dMMM * numberOfBCnodes]; - q_dirBSE = &QQ[dPMM * numberOfBCnodes]; - q_dirBNW = &QQ[dMPM * numberOfBCnodes]; - //////////////////////////////////////////////////////////////////////////////// - //index - unsigned int KQK = k_Q[k]; - unsigned int kzero = KQK; - unsigned int ke = KQK; - unsigned int kw = neighborX[KQK]; - unsigned int kn = KQK; - unsigned int ks = neighborY[KQK]; - unsigned int kt = KQK; - unsigned int kb = neighborZ[KQK]; - unsigned int ksw = neighborY[kw]; - unsigned int kne = KQK; - unsigned int kse = ks; - unsigned int knw = kw; - unsigned int kbw = neighborZ[kw]; - unsigned int kte = KQK; - unsigned int kbe = kb; - unsigned int ktw = kw; - unsigned int kbs = neighborZ[ks]; - unsigned int ktn = KQK; - unsigned int kbn = kb; - unsigned int kts = ks; - unsigned int ktse = ks; - unsigned int kbnw = kbw; - unsigned int ktnw = kw; - unsigned int kbse = kbs; - unsigned int ktsw = ksw; - unsigned int kbne = kb; - unsigned int ktne = KQK; - unsigned int kbsw = neighborZ[ksw]; - //////////////////////////////////////////////////////////////////////////////// - real f_E, f_W, f_N, f_S, f_T, f_B, f_NE, f_SW, f_SE, f_NW, f_TE, f_BW, f_BE, - f_TW, f_TN, f_BS, f_BN, f_TS, f_TNE, f_TSW, f_TSE, f_TNW, f_BNE, f_BSW, f_BSE, f_BNW; - - f_W = (D.f[dP00])[ke]; - f_E = (D.f[dM00])[kw]; - f_S = (D.f[d0P0])[kn]; - f_N = (D.f[d0M0])[ks]; - f_B = (D.f[d00P])[kt]; - f_T = (D.f[d00M])[kb]; - f_SW = (D.f[dPP0])[kne]; - f_NE = (D.f[dMM0])[ksw]; - f_NW = (D.f[dPM0])[kse]; - f_SE = (D.f[dMP0])[knw]; - f_BW = (D.f[dP0P])[kte]; - f_TE = (D.f[dM0M])[kbw]; - f_TW = (D.f[dP0M])[kbe]; - f_BE = (D.f[dM0P])[ktw]; - f_BS = (D.f[d0PP])[ktn]; - f_TN = (D.f[d0MM])[kbs]; - f_TS = (D.f[d0PM])[kbn]; - f_BN = (D.f[d0MP])[kts]; - f_BSW = (D.f[dPPP])[ktne]; - f_BNE = (D.f[dMMP])[ktsw]; - f_BNW = (D.f[dPMP])[ktse]; - f_BSE = (D.f[dMPP])[ktnw]; - f_TSW = (D.f[dPPM])[kbne]; - f_TNE = (D.f[dMMM])[kbsw]; - f_TNW = (D.f[dPMM])[kbse]; - f_TSE = (D.f[dMPM])[kbnw]; - //////////////////////////////////////////////////////////////////////////////// - real vx1, vx2, vx3, drho, feq, q; - drho = f_TSE + f_TNW + f_TNE + f_TSW + f_BSE + f_BNW + f_BNE + f_BSW + - f_BN + f_TS + f_TN + f_BS + f_BE + f_TW + f_TE + f_BW + f_SE + f_NW + f_NE + f_SW + - f_T + f_B + f_N + f_S + f_E + f_W + ((D.f[d000])[kzero]); - - vx1 = (((f_TSE - f_BNW) - (f_TNW - f_BSE)) + ((f_TNE - f_BSW) - (f_TSW - f_BNE)) + - ((f_BE - f_TW) + (f_TE - f_BW)) + ((f_SE - f_NW) + (f_NE - f_SW)) + - (f_E - f_W)) / (c1o1 + drho); - - - vx2 = ((-(f_TSE - f_BNW) + (f_TNW - f_BSE)) + ((f_TNE - f_BSW) - (f_TSW - f_BNE)) + - ((f_BN - f_TS) + (f_TN - f_BS)) + (-(f_SE - f_NW) + (f_NE - f_SW)) + - (f_N - f_S)) / (c1o1 + drho); - - vx3 = (((f_TSE - f_BNW) + (f_TNW - f_BSE)) + ((f_TNE - f_BSW) + (f_TSW - f_BNE)) + - (-(f_BN - f_TS) + (f_TN - f_BS)) + ((f_TE - f_BW) - (f_BE - f_TW)) + - (f_T - f_B)) / (c1o1 + drho); - - real cu_sq = c3o2*(vx1*vx1 + vx2*vx2 + vx3*vx3) * (c1o1 + drho); - - ////////////////////////////////////////////////////////////////////////// - if (isEvenTimestep == false) - { - D.f[dP00] = &DD[dP00 * numberOfLBnodes]; - D.f[dM00] = &DD[dM00 * numberOfLBnodes]; - D.f[d0P0] = &DD[d0P0 * numberOfLBnodes]; - D.f[d0M0] = &DD[d0M0 * numberOfLBnodes]; - D.f[d00P] = &DD[d00P * numberOfLBnodes]; - D.f[d00M] = &DD[d00M * numberOfLBnodes]; - D.f[dPP0] = &DD[dPP0 * numberOfLBnodes]; - D.f[dMM0] = &DD[dMM0 * numberOfLBnodes]; - D.f[dPM0] = &DD[dPM0 * numberOfLBnodes]; - D.f[dMP0] = &DD[dMP0 * numberOfLBnodes]; - D.f[dP0P] = &DD[dP0P * numberOfLBnodes]; - D.f[dM0M] = &DD[dM0M * numberOfLBnodes]; - D.f[dP0M] = &DD[dP0M * numberOfLBnodes]; - D.f[dM0P] = &DD[dM0P * numberOfLBnodes]; - D.f[d0PP] = &DD[d0PP * numberOfLBnodes]; - D.f[d0MM] = &DD[d0MM * numberOfLBnodes]; - D.f[d0PM] = &DD[d0PM * numberOfLBnodes]; - D.f[d0MP] = &DD[d0MP * numberOfLBnodes]; - D.f[d000] = &DD[d000 * numberOfLBnodes]; - D.f[dPPP] = &DD[dPPP * numberOfLBnodes]; - D.f[dMMP] = &DD[dMMP * numberOfLBnodes]; - D.f[dPMP] = &DD[dPMP * numberOfLBnodes]; - D.f[dMPP] = &DD[dMPP * numberOfLBnodes]; - D.f[dPPM] = &DD[dPPM * numberOfLBnodes]; - D.f[dMMM] = &DD[dMMM * numberOfLBnodes]; - D.f[dPMM] = &DD[dPMM * numberOfLBnodes]; - D.f[dMPM] = &DD[dMPM * numberOfLBnodes]; - } - else - { - D.f[dM00] = &DD[dP00 * numberOfLBnodes]; - D.f[dP00] = &DD[dM00 * numberOfLBnodes]; - D.f[d0M0] = &DD[d0P0 * numberOfLBnodes]; - D.f[d0P0] = &DD[d0M0 * numberOfLBnodes]; - D.f[d00M] = &DD[d00P * numberOfLBnodes]; - D.f[d00P] = &DD[d00M * numberOfLBnodes]; - D.f[dMM0] = &DD[dPP0 * numberOfLBnodes]; - D.f[dPP0] = &DD[dMM0 * numberOfLBnodes]; - D.f[dMP0] = &DD[dPM0 * numberOfLBnodes]; - D.f[dPM0] = &DD[dMP0 * numberOfLBnodes]; - D.f[dM0M] = &DD[dP0P * numberOfLBnodes]; - D.f[dP0P] = &DD[dM0M * numberOfLBnodes]; - D.f[dM0P] = &DD[dP0M * numberOfLBnodes]; - D.f[dP0M] = &DD[dM0P * numberOfLBnodes]; - D.f[d0MM] = &DD[d0PP * numberOfLBnodes]; - D.f[d0PP] = &DD[d0MM * numberOfLBnodes]; - D.f[d0MP] = &DD[d0PM * numberOfLBnodes]; - D.f[d0PM] = &DD[d0MP * numberOfLBnodes]; - D.f[d000] = &DD[d000 * numberOfLBnodes]; - D.f[dPPP] = &DD[dMMM * numberOfLBnodes]; - D.f[dMMP] = &DD[dPPM * numberOfLBnodes]; - D.f[dPMP] = &DD[dMPM * numberOfLBnodes]; - D.f[dMPP] = &DD[dPMM * numberOfLBnodes]; - D.f[dPPM] = &DD[dMMP * numberOfLBnodes]; - D.f[dMMM] = &DD[dPPP * numberOfLBnodes]; - D.f[dPMM] = &DD[dMPP * numberOfLBnodes]; - D.f[dMPM] = &DD[dPMP * numberOfLBnodes]; - } - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //Test - //(D.f[d000])[k]=c1o10; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - //ToDo anders Klammern - - /////To Slip Or Not To Slip? - // We assume slip BC if |vec(V_BC)|=1. To avoid problems we take V_BC*V_BC>0.99 (c99o100) - if (VeloX*VeloX + VeloY*VeloY + VeloZ*VeloZ > c99o100) - { - // vt=v-(n \dot v) *n - // n=(VeloX,VeloY,VeloZ) a misuse of the velocity variable! - real normalV = VeloX*vx1 + VeloY*vx2 + VeloZ*vx3; - vx1 = vx1 - normalV*VeloX; - vx2 = vx2 - normalV*VeloY; - vx3 = vx3 - normalV*VeloZ; - } - //////////////// + //////////////////////////////////////////////////////////////////////////////// + real VeloX = vx[k]; + real VeloY = vy[k]; + real VeloZ = vz[k]; //(16.0*(u0*2.0)*bbx*bby*(grid_nx-bbx)*(grid_ny-bby))/(grid_nx*grid_nx*grid_ny*grid_ny) + //////////////////////////////////////////////////////////////////////////////// + real *q_dirE, *q_dirW, *q_dirN, *q_dirS, *q_dirT, *q_dirB, + *q_dirNE, *q_dirSW, *q_dirSE, *q_dirNW, *q_dirTE, *q_dirBW, + *q_dirBE, *q_dirTW, *q_dirTN, *q_dirBS, *q_dirBN, *q_dirTS, + *q_dirTNE, *q_dirTSW, *q_dirTSE, *q_dirTNW, *q_dirBNE, *q_dirBSW, + *q_dirBSE, *q_dirBNW; + q_dirE = &QQ[dP00 * numberOfBCnodes]; + q_dirW = &QQ[dM00 * numberOfBCnodes]; + q_dirN = &QQ[d0P0 * numberOfBCnodes]; + q_dirS = &QQ[d0M0 * numberOfBCnodes]; + q_dirT = &QQ[d00P * numberOfBCnodes]; + q_dirB = &QQ[d00M * numberOfBCnodes]; + q_dirNE = &QQ[dPP0 * numberOfBCnodes]; + q_dirSW = &QQ[dMM0 * numberOfBCnodes]; + q_dirSE = &QQ[dPM0 * numberOfBCnodes]; + q_dirNW = &QQ[dMP0 * numberOfBCnodes]; + q_dirTE = &QQ[dP0P * numberOfBCnodes]; + q_dirBW = &QQ[dM0M * numberOfBCnodes]; + q_dirBE = &QQ[dP0M * numberOfBCnodes]; + q_dirTW = &QQ[dM0P * numberOfBCnodes]; + q_dirTN = &QQ[d0PP * numberOfBCnodes]; + q_dirBS = &QQ[d0MM * numberOfBCnodes]; + q_dirBN = &QQ[d0PM * numberOfBCnodes]; + q_dirTS = &QQ[d0MP * numberOfBCnodes]; + q_dirTNE = &QQ[dPPP * numberOfBCnodes]; + q_dirTSW = &QQ[dMMP * numberOfBCnodes]; + q_dirTSE = &QQ[dPMP * numberOfBCnodes]; + q_dirTNW = &QQ[dMPP * numberOfBCnodes]; + q_dirBNE = &QQ[dPPM * numberOfBCnodes]; + q_dirBSW = &QQ[dMMM * numberOfBCnodes]; + q_dirBSE = &QQ[dPMM * numberOfBCnodes]; + q_dirBNW = &QQ[dMPM * numberOfBCnodes]; + //////////////////////////////////////////////////////////////////////////////// + //index + unsigned int KQK = k_Q[k]; + unsigned int kzero = KQK; + unsigned int ke = KQK; + unsigned int kw = neighborX[KQK]; + unsigned int kn = KQK; + unsigned int ks = neighborY[KQK]; + unsigned int kt = KQK; + unsigned int kb = neighborZ[KQK]; + unsigned int ksw = neighborY[kw]; + unsigned int kne = KQK; + unsigned int kse = ks; + unsigned int knw = kw; + unsigned int kbw = neighborZ[kw]; + unsigned int kte = KQK; + unsigned int kbe = kb; + unsigned int ktw = kw; + unsigned int kbs = neighborZ[ks]; + unsigned int ktn = KQK; + unsigned int kbn = kb; + unsigned int kts = ks; + unsigned int ktse = ks; + unsigned int kbnw = kbw; + unsigned int ktnw = kw; + unsigned int kbse = kbs; + unsigned int ktsw = ksw; + unsigned int kbne = kb; + unsigned int ktne = KQK; + unsigned int kbsw = neighborZ[ksw]; + //////////////////////////////////////////////////////////////////////////////// + real f_E, f_W, f_N, f_S, f_T, f_B, f_NE, f_SW, f_SE, f_NW, f_TE, f_BW, f_BE, + f_TW, f_TN, f_BS, f_BN, f_TS, f_TNE, f_TSW, f_TSE, f_TNW, f_BNE, f_BSW, f_BSE, f_BNW; + + f_W = (D.f[dP00])[ke]; + f_E = (D.f[dM00])[kw]; + f_S = (D.f[d0P0])[kn]; + f_N = (D.f[d0M0])[ks]; + f_B = (D.f[d00P])[kt]; + f_T = (D.f[d00M])[kb]; + f_SW = (D.f[dPP0])[kne]; + f_NE = (D.f[dMM0])[ksw]; + f_NW = (D.f[dPM0])[kse]; + f_SE = (D.f[dMP0])[knw]; + f_BW = (D.f[dP0P])[kte]; + f_TE = (D.f[dM0M])[kbw]; + f_TW = (D.f[dP0M])[kbe]; + f_BE = (D.f[dM0P])[ktw]; + f_BS = (D.f[d0PP])[ktn]; + f_TN = (D.f[d0MM])[kbs]; + f_TS = (D.f[d0PM])[kbn]; + f_BN = (D.f[d0MP])[kts]; + f_BSW = (D.f[dPPP])[ktne]; + f_BNE = (D.f[dMMP])[ktsw]; + f_BNW = (D.f[dPMP])[ktse]; + f_BSE = (D.f[dMPP])[ktnw]; + f_TSW = (D.f[dPPM])[kbne]; + f_TNE = (D.f[dMMM])[kbsw]; + f_TNW = (D.f[dPMM])[kbse]; + f_TSE = (D.f[dMPM])[kbnw]; + //////////////////////////////////////////////////////////////////////////////// + real vx1, vx2, vx3, drho, feq, q; + drho = f_TSE + f_TNW + f_TNE + f_TSW + f_BSE + f_BNW + f_BNE + f_BSW + + f_BN + f_TS + f_TN + f_BS + f_BE + f_TW + f_TE + f_BW + f_SE + f_NW + f_NE + f_SW + + f_T + f_B + f_N + f_S + f_E + f_W + ((D.f[d000])[kzero]); + + vx1 = (((f_TSE - f_BNW) - (f_TNW - f_BSE)) + ((f_TNE - f_BSW) - (f_TSW - f_BNE)) + + ((f_BE - f_TW) + (f_TE - f_BW)) + ((f_SE - f_NW) + (f_NE - f_SW)) + + (f_E - f_W)) / (c1o1 + drho); + + + vx2 = ((-(f_TSE - f_BNW) + (f_TNW - f_BSE)) + ((f_TNE - f_BSW) - (f_TSW - f_BNE)) + + ((f_BN - f_TS) + (f_TN - f_BS)) + (-(f_SE - f_NW) + (f_NE - f_SW)) + + (f_N - f_S)) / (c1o1 + drho); + + vx3 = (((f_TSE - f_BNW) + (f_TNW - f_BSE)) + ((f_TNE - f_BSW) + (f_TSW - f_BNE)) + + (-(f_BN - f_TS) + (f_TN - f_BS)) + ((f_TE - f_BW) - (f_BE - f_TW)) + + (f_T - f_B)) / (c1o1 + drho); + + real cu_sq = c3o2*(vx1*vx1 + vx2*vx2 + vx3*vx3) * (c1o1 + drho); + + ////////////////////////////////////////////////////////////////////////// + if (isEvenTimestep == false) + { + D.f[dP00] = &DD[dP00 * numberOfLBnodes]; + D.f[dM00] = &DD[dM00 * numberOfLBnodes]; + D.f[d0P0] = &DD[d0P0 * numberOfLBnodes]; + D.f[d0M0] = &DD[d0M0 * numberOfLBnodes]; + D.f[d00P] = &DD[d00P * numberOfLBnodes]; + D.f[d00M] = &DD[d00M * numberOfLBnodes]; + D.f[dPP0] = &DD[dPP0 * numberOfLBnodes]; + D.f[dMM0] = &DD[dMM0 * numberOfLBnodes]; + D.f[dPM0] = &DD[dPM0 * numberOfLBnodes]; + D.f[dMP0] = &DD[dMP0 * numberOfLBnodes]; + D.f[dP0P] = &DD[dP0P * numberOfLBnodes]; + D.f[dM0M] = &DD[dM0M * numberOfLBnodes]; + D.f[dP0M] = &DD[dP0M * numberOfLBnodes]; + D.f[dM0P] = &DD[dM0P * numberOfLBnodes]; + D.f[d0PP] = &DD[d0PP * numberOfLBnodes]; + D.f[d0MM] = &DD[d0MM * numberOfLBnodes]; + D.f[d0PM] = &DD[d0PM * numberOfLBnodes]; + D.f[d0MP] = &DD[d0MP * numberOfLBnodes]; + D.f[d000] = &DD[d000 * numberOfLBnodes]; + D.f[dPPP] = &DD[dPPP * numberOfLBnodes]; + D.f[dMMP] = &DD[dMMP * numberOfLBnodes]; + D.f[dPMP] = &DD[dPMP * numberOfLBnodes]; + D.f[dMPP] = &DD[dMPP * numberOfLBnodes]; + D.f[dPPM] = &DD[dPPM * numberOfLBnodes]; + D.f[dMMM] = &DD[dMMM * numberOfLBnodes]; + D.f[dPMM] = &DD[dPMM * numberOfLBnodes]; + D.f[dMPM] = &DD[dMPM * numberOfLBnodes]; + } + else + { + D.f[dM00] = &DD[dP00 * numberOfLBnodes]; + D.f[dP00] = &DD[dM00 * numberOfLBnodes]; + D.f[d0M0] = &DD[d0P0 * numberOfLBnodes]; + D.f[d0P0] = &DD[d0M0 * numberOfLBnodes]; + D.f[d00M] = &DD[d00P * numberOfLBnodes]; + D.f[d00P] = &DD[d00M * numberOfLBnodes]; + D.f[dMM0] = &DD[dPP0 * numberOfLBnodes]; + D.f[dPP0] = &DD[dMM0 * numberOfLBnodes]; + D.f[dMP0] = &DD[dPM0 * numberOfLBnodes]; + D.f[dPM0] = &DD[dMP0 * numberOfLBnodes]; + D.f[dM0M] = &DD[dP0P * numberOfLBnodes]; + D.f[dP0P] = &DD[dM0M * numberOfLBnodes]; + D.f[dM0P] = &DD[dP0M * numberOfLBnodes]; + D.f[dP0M] = &DD[dM0P * numberOfLBnodes]; + D.f[d0MM] = &DD[d0PP * numberOfLBnodes]; + D.f[d0PP] = &DD[d0MM * numberOfLBnodes]; + D.f[d0MP] = &DD[d0PM * numberOfLBnodes]; + D.f[d0PM] = &DD[d0MP * numberOfLBnodes]; + D.f[d000] = &DD[d000 * numberOfLBnodes]; + D.f[dPPP] = &DD[dMMM * numberOfLBnodes]; + D.f[dMMP] = &DD[dPPM * numberOfLBnodes]; + D.f[dPMP] = &DD[dMPM * numberOfLBnodes]; + D.f[dMPP] = &DD[dPMM * numberOfLBnodes]; + D.f[dPPM] = &DD[dMMP * numberOfLBnodes]; + D.f[dMMM] = &DD[dPPP * numberOfLBnodes]; + D.f[dPMM] = &DD[dMPP * numberOfLBnodes]; + D.f[dMPM] = &DD[dPMP * numberOfLBnodes]; + } + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //Test + //(D.f[d000])[k]=c1o10; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + //ToDo anders Klammern + + /////To Slip Or Not To Slip? + // We assume slip BC if |vec(V_BC)|=1. To avoid problems we take V_BC*V_BC>0.99 (c99o100) + if (VeloX*VeloX + VeloY*VeloY + VeloZ*VeloZ > c99o100) + { + // vt=v-(n \dot v) *n + // n=(VeloX,VeloY,VeloZ) a misuse of the velocity variable! + real normalV = VeloX*vx1 + VeloY*vx2 + VeloZ*vx3; + vx1 = vx1 - normalV*VeloX; + vx2 = vx2 - normalV*VeloY; + vx3 = vx3 - normalV*VeloZ; + } + //////////////// q = q_dirE[k]; if (q>=c0o1 && q<=c1o1) @@ -697,59 +697,59 @@ __global__ void QVeloDeviceEQ27( D.f[dMPM] = &DD[dPMP * numberOfLBnodes]; } - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // based on BGK Plus Comp - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real mfcbb = (D.f[dP00])[ke ]; - real mfabb = (D.f[dM00])[kw ]; - real mfbcb = (D.f[d0P0])[kn ]; - real mfbab = (D.f[d0M0])[ks ]; - real mfbbc = (D.f[d00P])[kt ]; - real mfbba = (D.f[d00M])[kb ]; - real mfccb = (D.f[dPP0])[kne ]; - real mfaab = (D.f[dMM0])[ksw ]; - real mfcab = (D.f[dPM0])[kse ]; - real mfacb = (D.f[dMP0])[knw ]; - real mfcbc = (D.f[dP0P])[kte ]; - real mfaba = (D.f[dM0M])[kbw ]; - real mfcba = (D.f[dP0M])[kbe ]; - real mfabc = (D.f[dM0P])[ktw ]; - real mfbcc = (D.f[d0PP])[ktn ]; - real mfbaa = (D.f[d0MM])[kbs ]; - real mfbca = (D.f[d0PM])[kbn ]; - real mfbac = (D.f[d0MP])[kts ]; - real mfbbb = (D.f[d000])[kzero]; - real mfccc = (D.f[dPPP])[ktne ]; - real mfaac = (D.f[dMMP])[ktsw ]; - real mfcac = (D.f[dPMP])[ktse ]; - real mfacc = (D.f[dMPP])[ktnw ]; - real mfcca = (D.f[dPPM])[kbne ]; - real mfaaa = (D.f[dMMM])[kbsw ]; - real mfcaa = (D.f[dPMM])[kbse ]; - real mfaca = (D.f[dMPM])[kbnw ]; - //////////////////////////////////////////////////////////////////////////////////// - real rho = (mfccc+mfaaa + mfaca+mfcac + mfacc+mfcaa + mfaac+mfcca + - mfbac+mfbca + mfbaa+mfbcc + mfabc+mfcba + mfaba+mfcbc + mfacb+mfcab + mfaab+mfccb + - mfabb+mfcbb + mfbab+mfbcb + mfbba+mfbbc + mfbbb + c1o1);//!!!!Achtung + one - //////////////////////////////////////////////////////////////////////////////////// - real vvx = ((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + - (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + - (mfcbb-mfabb)) / rho; - real vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + - (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + - (mfbcb-mfbab)) / rho; - real vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + - (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + - (mfbbc-mfbba)) / rho; - //////////////////////////////////////////////////////////////////////////////////// - if(VeloX[k]!=c0o1) vvx = VeloX[k]; - if(VeloY[k]!=c0o1) vvy = VeloY[k]; - if(VeloZ[k]!=c0o1) vvz = VeloZ[k]; - //////////////////////////////////////////////////////////////////////////////////// - real vx2 = vvx * vvx; - real vy2 = vvy * vvy; - real vz2 = vvz * vvz; - //////////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + real mfcbb = (D.f[dP00])[ke ]; + real mfabb = (D.f[dM00])[kw ]; + real mfbcb = (D.f[d0P0])[kn ]; + real mfbab = (D.f[d0M0])[ks ]; + real mfbbc = (D.f[d00P])[kt ]; + real mfbba = (D.f[d00M])[kb ]; + real mfccb = (D.f[dPP0])[kne ]; + real mfaab = (D.f[dMM0])[ksw ]; + real mfcab = (D.f[dPM0])[kse ]; + real mfacb = (D.f[dMP0])[knw ]; + real mfcbc = (D.f[dP0P])[kte ]; + real mfaba = (D.f[dM0M])[kbw ]; + real mfcba = (D.f[dP0M])[kbe ]; + real mfabc = (D.f[dM0P])[ktw ]; + real mfbcc = (D.f[d0PP])[ktn ]; + real mfbaa = (D.f[d0MM])[kbs ]; + real mfbca = (D.f[d0PM])[kbn ]; + real mfbac = (D.f[d0MP])[kts ]; + real mfbbb = (D.f[d000])[kzero]; + real mfccc = (D.f[dPPP])[ktne ]; + real mfaac = (D.f[dMMP])[ktsw ]; + real mfcac = (D.f[dPMP])[ktse ]; + real mfacc = (D.f[dMPP])[ktnw ]; + real mfcca = (D.f[dPPM])[kbne ]; + real mfaaa = (D.f[dMMM])[kbsw ]; + real mfcaa = (D.f[dPMM])[kbse ]; + real mfaca = (D.f[dMPM])[kbnw ]; + //////////////////////////////////////////////////////////////////////////////////// + real rho = (mfccc+mfaaa + mfaca+mfcac + mfacc+mfcaa + mfaac+mfcca + + mfbac+mfbca + mfbaa+mfbcc + mfabc+mfcba + mfaba+mfcbc + mfacb+mfcab + mfaab+mfccb + + mfabb+mfcbb + mfbab+mfbcb + mfbba+mfbbc + mfbbb + c1o1);//!!!!Achtung + one + //////////////////////////////////////////////////////////////////////////////////// + real vvx = ((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfcaa-mfacc) + (mfcca-mfaac))) + + (((mfcba-mfabc) + (mfcbc-mfaba)) + ((mfcab-mfacb) + (mfccb-mfaab))) + + (mfcbb-mfabb)) / rho; + real vvy =((((mfccc-mfaaa) + (mfaca-mfcac)) + ((mfacc-mfcaa) + (mfcca-mfaac))) + + (((mfbca-mfbac) + (mfbcc-mfbaa)) + ((mfacb-mfcab) + (mfccb-mfaab))) + + (mfbcb-mfbab)) / rho; + real vvz =((((mfccc-mfaaa) + (mfcac-mfaca)) + ((mfacc-mfcaa) + (mfaac-mfcca))) + + (((mfbac-mfbca) + (mfbcc-mfbaa)) + ((mfabc-mfcba) + (mfcbc-mfaba))) + + (mfbbc-mfbba)) / rho; + //////////////////////////////////////////////////////////////////////////////////// + if(VeloX[k]!=c0o1) vvx = VeloX[k]; + if(VeloY[k]!=c0o1) vvy = VeloY[k]; + if(VeloZ[k]!=c0o1) vvz = VeloZ[k]; + //////////////////////////////////////////////////////////////////////////////////// + real vx2 = vvx * vvx; + real vy2 = vvy * vvy; + real vz2 = vvz * vvz; + //////////////////////////////////////////////////////////////////////////////////// real XXb = -c2o3 + vx2; real XXc = -c1o2 * (XXb + c1o1 + vvx); real XXa = XXc + vvx; @@ -759,62 +759,62 @@ __global__ void QVeloDeviceEQ27( real ZZb = -c2o3 + vz2; real ZZc = -c1o2 * (ZZb + c1o1 + vvz); real ZZa = ZZc + vvz; - //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// mfcbb = -rho * XXc * YYb * ZZb - c2o27 ; - mfabb = -rho * XXa * YYb * ZZb - c2o27 ; - mfbcb = -rho * XXb * YYc * ZZb - c2o27 ; - mfbab = -rho * XXb * YYa * ZZb - c2o27 ; - mfbbc = -rho * XXb * YYb * ZZc - c2o27 ; - mfbba = -rho * XXb * YYb * ZZa - c2o27 ; - mfccb = -rho * XXc * YYc * ZZb - c1o54 ; - mfaab = -rho * XXa * YYa * ZZb - c1o54 ; - mfcab = -rho * XXc * YYa * ZZb - c1o54 ; - mfacb = -rho * XXa * YYc * ZZb - c1o54 ; - mfcbc = -rho * XXc * YYb * ZZc - c1o54 ; - mfaba = -rho * XXa * YYb * ZZa - c1o54 ; - mfcba = -rho * XXc * YYb * ZZa - c1o54 ; - mfabc = -rho * XXa * YYb * ZZc - c1o54 ; - mfbcc = -rho * XXb * YYc * ZZc - c1o54 ; - mfbaa = -rho * XXb * YYa * ZZa - c1o54 ; - mfbca = -rho * XXb * YYc * ZZa - c1o54 ; - mfbac = -rho * XXb * YYa * ZZc - c1o54 ; - mfbbb = -rho * XXb * YYb * ZZb - c8o27 ; - mfccc = -rho * XXc * YYc * ZZc - c1o216; - mfaac = -rho * XXa * YYa * ZZc - c1o216; - mfcac = -rho * XXc * YYa * ZZc - c1o216; - mfacc = -rho * XXa * YYc * ZZc - c1o216; - mfcca = -rho * XXc * YYc * ZZa - c1o216; - mfaaa = -rho * XXa * YYa * ZZa - c1o216; - mfcaa = -rho * XXc * YYa * ZZa - c1o216; - mfaca = -rho * XXa * YYc * ZZa - c1o216; - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - (D.f[dP00])[ke ] = mfabb;//mfcbb; - (D.f[dM00])[kw ] = mfcbb;//mfabb; - (D.f[d0P0])[kn ] = mfbab;//mfbcb; - (D.f[d0M0])[ks ] = mfbcb;//mfbab; - (D.f[d00P])[kt ] = mfbba;//mfbbc; - (D.f[d00M])[kb ] = mfbbc;//mfbba; - (D.f[dPP0])[kne ] = mfaab;//mfccb; - (D.f[dMM0])[ksw ] = mfccb;//mfaab; - (D.f[dPM0])[kse ] = mfacb;//mfcab; - (D.f[dMP0])[knw ] = mfcab;//mfacb; - (D.f[dP0P])[kte ] = mfaba;//mfcbc; - (D.f[dM0M])[kbw ] = mfcbc;//mfaba; - (D.f[dP0M])[kbe ] = mfabc;//mfcba; - (D.f[dM0P])[ktw ] = mfcba;//mfabc; - (D.f[d0PP])[ktn ] = mfbaa;//mfbcc; - (D.f[d0MM])[kbs ] = mfbcc;//mfbaa; - (D.f[d0PM])[kbn ] = mfbac;//mfbca; - (D.f[d0MP])[kts ] = mfbca;//mfbac; - (D.f[d000])[kzero] = mfbbb;//mfbbb; - (D.f[dPPP])[ktne ] = mfaaa;//mfccc; - (D.f[dMMP])[ktsw ] = mfcca;//mfaac; - (D.f[dPMP])[ktse ] = mfaca;//mfcac; - (D.f[dMPP])[ktnw ] = mfcaa;//mfacc; - (D.f[dPPM])[kbne ] = mfaac;//mfcca; - (D.f[dMMM])[kbsw ] = mfccc;//mfaaa; - (D.f[dPMM])[kbse ] = mfacc;//mfcaa; - (D.f[dMPM])[kbnw ] = mfcac;//mfaca; + mfabb = -rho * XXa * YYb * ZZb - c2o27 ; + mfbcb = -rho * XXb * YYc * ZZb - c2o27 ; + mfbab = -rho * XXb * YYa * ZZb - c2o27 ; + mfbbc = -rho * XXb * YYb * ZZc - c2o27 ; + mfbba = -rho * XXb * YYb * ZZa - c2o27 ; + mfccb = -rho * XXc * YYc * ZZb - c1o54 ; + mfaab = -rho * XXa * YYa * ZZb - c1o54 ; + mfcab = -rho * XXc * YYa * ZZb - c1o54 ; + mfacb = -rho * XXa * YYc * ZZb - c1o54 ; + mfcbc = -rho * XXc * YYb * ZZc - c1o54 ; + mfaba = -rho * XXa * YYb * ZZa - c1o54 ; + mfcba = -rho * XXc * YYb * ZZa - c1o54 ; + mfabc = -rho * XXa * YYb * ZZc - c1o54 ; + mfbcc = -rho * XXb * YYc * ZZc - c1o54 ; + mfbaa = -rho * XXb * YYa * ZZa - c1o54 ; + mfbca = -rho * XXb * YYc * ZZa - c1o54 ; + mfbac = -rho * XXb * YYa * ZZc - c1o54 ; + mfbbb = -rho * XXb * YYb * ZZb - c8o27 ; + mfccc = -rho * XXc * YYc * ZZc - c1o216; + mfaac = -rho * XXa * YYa * ZZc - c1o216; + mfcac = -rho * XXc * YYa * ZZc - c1o216; + mfacc = -rho * XXa * YYc * ZZc - c1o216; + mfcca = -rho * XXc * YYc * ZZa - c1o216; + mfaaa = -rho * XXa * YYa * ZZa - c1o216; + mfcaa = -rho * XXc * YYa * ZZa - c1o216; + mfaca = -rho * XXa * YYc * ZZa - c1o216; + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + (D.f[dP00])[ke ] = mfabb;//mfcbb; + (D.f[dM00])[kw ] = mfcbb;//mfabb; + (D.f[d0P0])[kn ] = mfbab;//mfbcb; + (D.f[d0M0])[ks ] = mfbcb;//mfbab; + (D.f[d00P])[kt ] = mfbba;//mfbbc; + (D.f[d00M])[kb ] = mfbbc;//mfbba; + (D.f[dPP0])[kne ] = mfaab;//mfccb; + (D.f[dMM0])[ksw ] = mfccb;//mfaab; + (D.f[dPM0])[kse ] = mfacb;//mfcab; + (D.f[dMP0])[knw ] = mfcab;//mfacb; + (D.f[dP0P])[kte ] = mfaba;//mfcbc; + (D.f[dM0M])[kbw ] = mfcbc;//mfaba; + (D.f[dP0M])[kbe ] = mfabc;//mfcba; + (D.f[dM0P])[ktw ] = mfcba;//mfabc; + (D.f[d0PP])[ktn ] = mfbaa;//mfbcc; + (D.f[d0MM])[kbs ] = mfbcc;//mfbaa; + (D.f[d0PM])[kbn ] = mfbac;//mfbca; + (D.f[d0MP])[kts ] = mfbca;//mfbac; + (D.f[d000])[kzero] = mfbbb;//mfbbb; + (D.f[dPPP])[ktne ] = mfaaa;//mfccc; + (D.f[dMMP])[ktsw ] = mfcca;//mfaac; + (D.f[dPMP])[ktse ] = mfaca;//mfcac; + (D.f[dMPP])[ktnw ] = mfcaa;//mfacc; + (D.f[dPPM])[kbne ] = mfaac;//mfcca; + (D.f[dMMM])[kbsw ] = mfccc;//mfaaa; + (D.f[dPMM])[kbse ] = mfacc;//mfcaa; + (D.f[dMPM])[kbnw ] = mfcac;//mfaca; } } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -1168,7 +1168,7 @@ __global__ void QVelDeviceIncompHighNu27( //(D.f[d000])[k]=c1o10; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //ToDo anders Klammern + //ToDo anders Klammern q = q_dirE[k]; if (q>=c0o1 && q<=c1o1) @@ -1692,7 +1692,7 @@ __global__ void QVelDeviceCompHighNu27( //(D.f[d000])[k]=c1o10; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //ToDo anders Klammern + //ToDo anders Klammern q = q_dirE[k]; if (q>=c0o1 && q<=c1o1) @@ -2489,20 +2489,20 @@ __global__ void QVelDeviceCompZeroPress1h27( //real VeloX = vx[k]; //real VeloY = vy[k]; //real VeloZ = vz[k]; //(16.0*(u0*2.0)*bbx*bby*(grid_nx-bbx)*(grid_ny-bby))/(grid_nx*grid_nx*grid_ny*grid_ny) - //////////////////////////////////////////////////////////////////////////////// - real VeloX = cosf(Phi)*vx[k] - sinf(Phi)*vy[k]; - real VeloY = sinf(Phi)*vx[k] + cosf(Phi)*vy[k]; - //real VeloZ = vz[k]; //(16.0*(u0*2.0)*bbx*bby*(grid_nx-bbx)*(grid_ny-bby))/(grid_nx*grid_nx*grid_ny*grid_ny) - //////////////////////////////////////////////////////////////////////////////////// - //Ship - real coord0X = 281.125f;//7.5f; - real coord0Y = 388.125f;//7.5f; - real ux = - angularVelocity * (coordY[k_Q[k]] - coord0Y); - real uy = angularVelocity * (coordX[k_Q[k]] - coord0X); - real VeloXpur=VeloX; - real VeloYpur=VeloY; - VeloX-=ux; - VeloY-=uy; + //////////////////////////////////////////////////////////////////////////////// + real VeloX = cosf(Phi)*vx[k] - sinf(Phi)*vy[k]; + real VeloY = sinf(Phi)*vx[k] + cosf(Phi)*vy[k]; + //real VeloZ = vz[k]; //(16.0*(u0*2.0)*bbx*bby*(grid_nx-bbx)*(grid_ny-bby))/(grid_nx*grid_nx*grid_ny*grid_ny) + //////////////////////////////////////////////////////////////////////////////////// + //Ship + real coord0X = 281.125f;//7.5f; + real coord0Y = 388.125f;//7.5f; + real ux = - angularVelocity * (coordY[k_Q[k]] - coord0Y); + real uy = angularVelocity * (coordX[k_Q[k]] - coord0X); + real VeloXpur=VeloX; + real VeloYpur=VeloY; + VeloX-=ux; + VeloY-=uy; //////////////////////////////////////////////////////////////////////////////// real *q_dirE, *q_dirW, *q_dirN, *q_dirS, *q_dirT, *q_dirB, *q_dirNE, *q_dirSW, *q_dirSE, *q_dirNW, *q_dirTE, *q_dirBW, @@ -2627,15 +2627,15 @@ __global__ void QVelDeviceCompZeroPress1h27( D.f[dMPM] = &DD[dPMP * numberOfLBnodes]; } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real vx1, vx2, vx3, drho, feq, q, cu_sq; - ///////// equilibrium BC - cu_sq=c3o2*(VeloX*VeloX +VeloY*VeloY); - VeloXpur*=-c1o1; - VeloYpur*=-c1o1; - vx1=VeloX; - vx2=VeloY; - vx3=c0o1; - drho=c0o1; + real vx1, vx2, vx3, drho, feq, q, cu_sq; + ///////// equilibrium BC + cu_sq=c3o2*(VeloX*VeloX +VeloY*VeloY); + VeloXpur*=-c1o1; + VeloYpur*=-c1o1; + vx1=VeloX; + vx2=VeloY; + vx3=c0o1; + drho=c0o1; q = q_dirE[k]; if (q>=c0o1 && q<=c1o1) @@ -3458,16 +3458,16 @@ __global__ void QVelDevCouette27( if(k<numberOfBCnodes) { - //////////////////////////////////////////////////////////////////////////////// - real VeloX = vx[k]; - real VeloY = vy[k]; - real VeloZ = vz[k]; + //////////////////////////////////////////////////////////////////////////////// + real VeloX = vx[k]; + real VeloY = vy[k]; + real VeloZ = vz[k]; //////////////////////////////////////////////////////////////////////////////// real*q_dirE, *q_dirW, *q_dirN, *q_dirS, *q_dirT, *q_dirB, - *q_dirNE, *q_dirSW, *q_dirSE, *q_dirNW, *q_dirTE, *q_dirBW, - *q_dirBE, *q_dirTW, *q_dirTN, *q_dirBS, *q_dirBN, *q_dirTS, - *q_dirTNE, *q_dirTSW, *q_dirTSE, *q_dirTNW, *q_dirBNE, *q_dirBSW, - *q_dirBSE, *q_dirBNW; + *q_dirNE, *q_dirSW, *q_dirSE, *q_dirNW, *q_dirTE, *q_dirBW, + *q_dirBE, *q_dirTW, *q_dirTN, *q_dirBS, *q_dirBN, *q_dirTS, + *q_dirTNE, *q_dirTSW, *q_dirTSE, *q_dirTNW, *q_dirBNE, *q_dirBSW, + *q_dirBSE, *q_dirBNW; q_dirE = &QQ[dP00 * numberOfBCnodes]; q_dirW = &QQ[dM00 * numberOfBCnodes]; q_dirN = &QQ[d0P0 * numberOfBCnodes]; @@ -3553,9 +3553,9 @@ __global__ void QVelDevCouette27( real f_TNE = (D.f[dMMM])[kbsw ]; real f_TNW = (D.f[dPMM])[kbse ]; real f_TSE = (D.f[dMPM])[kbnw ]; - //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// if (isEvenTimestep==false) { D.f[dP00] = &DD[dP00 * numberOfLBnodes]; @@ -3616,77 +3616,77 @@ __global__ void QVelDevCouette27( D.f[dPMM] = &DD[dMPP * numberOfLBnodes]; D.f[dMPM] = &DD[dPMP * numberOfLBnodes]; } - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - /////// FlowDirection Y !!!!!!!!!! /////////////////////////////////// - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //calculate velocity - //real vx1 = ((f_TNE-f_BSW)+(f_BSE-f_TNW)+(f_BNE-f_TSW)+(f_TSE-f_BNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); - real vx2 = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); - //real vx3 = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSW-f_BNE)+(f_TSE-f_BNW)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //constant - real on=c0o1;//c1o2;//one; - real ms=-c6o1; - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //2nd order moment - real kxxMyyFromfcNEQ = c0o1;//-c3o2 * (f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE-(vx1*vx1-vx2*vx2)); //all dP00+dM00 minus all d0P0+d0M0 (no combinations of xy left) - - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //set distributions + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + /////// FlowDirection Y !!!!!!!!!! /////////////////////////////////// + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //calculate velocity + //real vx1 = ((f_TNE-f_BSW)+(f_BSE-f_TNW)+(f_BNE-f_TSW)+(f_TSE-f_BNW)) + (((f_NE-f_SW)+(f_TE-f_BW))+((f_SE-f_NW)+(f_BE-f_TW))) + (f_E-f_W); + real vx2 = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_BNE-f_TSW)+(f_BNW-f_TSE)) + (((f_NE-f_SW)+(f_TN-f_BS))+((f_BN-f_TS)+(f_NW-f_SE))) + (f_N-f_S); + //real vx3 = ((f_TNE-f_BSW)+(f_TNW-f_BSE)+(f_TSW-f_BNE)+(f_TSE-f_BNW)) + (((f_TE-f_BW)+(f_TN-f_BS))+((f_TW-f_BE)+(f_TS-f_BN))) + (f_T-f_B); + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //constant + real on=c0o1;//c1o2;//one; + real ms=-c6o1; + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //2nd order moment + real kxxMyyFromfcNEQ = c0o1;//-c3o2 * (f_BW+f_W+f_TW-f_BS-f_S-f_TS-f_BN-f_N-f_TN+f_BE+f_E+f_TE-(vx1*vx1-vx2*vx2)); //all dP00+dM00 minus all d0P0+d0M0 (no combinations of xy left) + + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //set distributions real q; - q = q_dirE[k]; if (q>=c0o1 && q<=c1o1) (D.f[dM00])[kw ]=f_E + ms*c2o27 * VeloX; - q = q_dirW[k]; if (q>=c0o1 && q<=c1o1) (D.f[dP00])[ke ]=f_W - ms*c2o27 * VeloX; - q = q_dirN[k]; if (q>=c0o1 && q<=c1o1) (D.f[d0M0])[ks ]=f_N + ms*c2o27 * VeloY; - q = q_dirS[k]; if (q>=c0o1 && q<=c1o1) (D.f[d0P0])[kn ]=f_S - ms*c2o27 * VeloY; - q = q_dirT[k]; if (q>=c0o1 && q<=c1o1) (D.f[d00M])[kb ]=f_T + ms*c2o27 * VeloZ - c3o2*c2o27*((c2o1*VeloY-vx2)*(c2o1*VeloY-vx2)-vx2*vx2)*on; - q = q_dirB[k]; if (q>=c0o1 && q<=c1o1) (D.f[d00P])[kt ]=f_B - ms*c2o27 * VeloZ; - q = q_dirNE[k]; if (q>=c0o1 && q<=c1o1) (D.f[dMM0])[ksw ]=f_NE + ms*c1o54 * VeloX + ms*c1o54 * VeloY; - q = q_dirSW[k]; if (q>=c0o1 && q<=c1o1) (D.f[dPP0])[kne ]=f_SW - ms*c1o54 * VeloX - ms*c1o54 * VeloY; - q = q_dirSE[k]; if (q>=c0o1 && q<=c1o1) (D.f[dMP0])[knw ]=f_SE + ms*c1o54 * VeloX - ms*c1o54 * VeloY; - q = q_dirNW[k]; if (q>=c0o1 && q<=c1o1) (D.f[dPM0])[kse ]=f_NW - ms*c1o54 * VeloX + ms*c1o54 * VeloY; - q = q_dirTE[k]; if (q>=c0o1 && q<=c1o1) (D.f[dM0M])[kbw ]=f_TE + ms*c1o54 * VeloX + ms*c1o54 * VeloZ - c3o2*c1o54*((c2o1*VeloY-vx2)*(c2o1*VeloY-vx2)-vx2*vx2)*on-c1o12*kxxMyyFromfcNEQ; - q = q_dirBW[k]; if (q>=c0o1 && q<=c1o1) (D.f[dP0P])[kte ]=f_BW - ms*c1o54 * VeloX - ms*c1o54 * VeloZ; - q = q_dirBE[k]; if (q>=c0o1 && q<=c1o1) (D.f[dM0P])[ktw ]=f_BE + ms*c1o54 * VeloX - ms*c1o54 * VeloZ; - q = q_dirTW[k]; if (q>=c0o1 && q<=c1o1) (D.f[dP0M])[kbe ]=f_TW - ms*c1o54 * VeloX + ms*c1o54 * VeloZ - c3o2*c1o54*((c2o1*VeloY-vx2)*(c2o1*VeloY-vx2)-vx2*vx2)*on-c1o12*kxxMyyFromfcNEQ; - q = q_dirTN[k]; if (q>=c0o1 && q<=c1o1) (D.f[d0MM])[kbs ]=f_TN + ms*c1o54 * VeloY + ms*c1o54 * VeloZ + c3o1*c1o54*((c2o1*VeloY-vx2)*(c2o1*VeloY-vx2)-vx2*vx2)*on+c1o12*kxxMyyFromfcNEQ; - q = q_dirBS[k]; if (q>=c0o1 && q<=c1o1) (D.f[d0PP])[ktn ]=f_BS - ms*c1o54 * VeloY - ms*c1o54 * VeloZ; - q = q_dirBN[k]; if (q>=c0o1 && q<=c1o1) (D.f[d0MP])[kts ]=f_BN + ms*c1o54 * VeloY - ms*c1o54 * VeloZ; - q = q_dirTS[k]; if (q>=c0o1 && q<=c1o1) (D.f[d0PM])[kbn ]=f_TS - ms*c1o54 * VeloY + ms*c1o54 * VeloZ + c3o1*c1o54*((c2o1*VeloY-vx2)*(c2o1*VeloY-vx2)-vx2*vx2)*on+c1o12*kxxMyyFromfcNEQ; - q = q_dirTNE[k]; if (q>=c0o1 && q<=c1o1) (D.f[dMMM])[kbsw]=f_TNE + ms*c1o216 * VeloX + ms*c1o216 * VeloY + ms*c1o216 * VeloZ + c3o1*c1o216*((c2o1*VeloY-vx2)*(c2o1*VeloY-vx2)-vx2*vx2)*on; - q = q_dirBSW[k]; if (q>=c0o1 && q<=c1o1) (D.f[dPPP])[ktne]=f_BSW - ms*c1o216 * VeloX - ms*c1o216 * VeloY - ms*c1o216 * VeloZ; - q = q_dirBNE[k]; if (q>=c0o1 && q<=c1o1) (D.f[dMMP])[ktsw]=f_BNE + ms*c1o216 * VeloX + ms*c1o216 * VeloY - ms*c1o216 * VeloZ; - q = q_dirTSW[k]; if (q>=c0o1 && q<=c1o1) (D.f[dPPM])[kbne]=f_TSW - ms*c1o216 * VeloX - ms*c1o216 * VeloY + ms*c1o216 * VeloZ + c3o1*c1o216*((c2o1*VeloY-vx2)*(c2o1*VeloY-vx2)-vx2*vx2)*on; - q = q_dirTSE[k]; if (q>=c0o1 && q<=c1o1) (D.f[dMPM])[kbnw]=f_TSE + ms*c1o216 * VeloX - ms*c1o216 * VeloY + ms*c1o216 * VeloZ + c3o1*c1o216*((c2o1*VeloY-vx2)*(c2o1*VeloY-vx2)-vx2*vx2)*on; - q = q_dirBNW[k]; if (q>=c0o1 && q<=c1o1) (D.f[dPMP])[ktse]=f_BNW - ms*c1o216 * VeloX + ms*c1o216 * VeloY - ms*c1o216 * VeloZ; - q = q_dirBSE[k]; if (q>=c0o1 && q<=c1o1) (D.f[dMPP])[ktnw]=f_BSE + ms*c1o216 * VeloX - ms*c1o216 * VeloY - ms*c1o216 * VeloZ; - q = q_dirTNW[k]; if (q>=c0o1 && q<=c1o1) (D.f[dPMM])[kbse]=f_TNW - ms*c1o216 * VeloX + ms*c1o216 * VeloY + ms*c1o216 * VeloZ + c3o1*c1o216*((c2o1*VeloY-vx2)*(c2o1*VeloY-vx2)-vx2*vx2)*on; - //q = q_dirE[k]; if (q>=zero && q<=one) (D.f[dM00])[kw ]=f_E + ms*c2over27 * VeloX; - // q = q_dirW[k]; if (q>=zero && q<=one) (D.f[dP00])[ke ]=f_W - ms*c2over27 * VeloX; - // q = q_dirN[k]; if (q>=zero && q<=one) (D.f[d0M0])[ks ]=f_N + ms*c2over27 * VeloY; - // q = q_dirS[k]; if (q>=zero && q<=one) (D.f[d0P0])[kn ]=f_S - ms*c2over27 * VeloY; - //q = q_dirT[k]; if (q>=zero && q<=one) (D.f[d00M])[kb ]=f_T + ms*c2over27 * VeloZ - c1o9*((two*VeloY-vx2)*(two*VeloY-vx2)-vx2*vx2)*on; - // q = q_dirB[k]; if (q>=zero && q<=one) (D.f[d00P])[kt ]=f_B - ms*c2over27 * VeloZ; - // q = q_dirNE[k]; if (q>=zero && q<=one) (D.f[dMM0])[ksw ]=f_NE + ms*c1over54 * VeloX + ms*c1over54 * VeloY; - //q = q_dirSW[k]; if (q>=zero && q<=one) (D.f[dPP0])[kne ]=f_SW - ms*c1over54 * VeloX - ms*c1over54 * VeloY; - //q = q_dirSE[k]; if (q>=zero && q<=one) (D.f[dMP0])[knw ]=f_SE + ms*c1over54 * VeloX - ms*c1over54 * VeloY; - //q = q_dirNW[k]; if (q>=zero && q<=one) (D.f[dPM0])[kse ]=f_NW - ms*c1over54 * VeloX + ms*c1over54 * VeloY; - //q = q_dirTE[k]; if (q>=zero && q<=one) (D.f[dM0M])[kbw ]=f_TE + ms*c1over54 * VeloX + ms*c1over54 * VeloZ - c1o36*((two*VeloY-vx2)*(two*VeloY-vx2)-vx2*vx2)*on; - //q = q_dirBW[k]; if (q>=zero && q<=one) (D.f[dP0P])[kte ]=f_BW - ms*c1over54 * VeloX - ms*c1over54 * VeloZ; - //q = q_dirBE[k]; if (q>=zero && q<=one) (D.f[dM0P])[ktw ]=f_BE + ms*c1over54 * VeloX - ms*c1over54 * VeloZ; - //q = q_dirTW[k]; if (q>=zero && q<=one) (D.f[dP0M])[kbe ]=f_TW - ms*c1over54 * VeloX + ms*c1over54 * VeloZ - c1o36*((two*VeloY-vx2)*(two*VeloY-vx2)-vx2*vx2)*on; - //q = q_dirTN[k]; if (q>=zero && q<=one) (D.f[d0MM])[kbs ]=f_TN + ms*c1over54 * VeloY + ms*c1over54 * VeloZ + c1o2*c1o9*((two*VeloY-vx2)*(two*VeloY-vx2)-vx2*vx2)*on; - //q = q_dirBS[k]; if (q>=zero && q<=one) (D.f[d0PP])[ktn ]=f_BS - ms*c1over54 * VeloY - ms*c1over54 * VeloZ; - //q = q_dirBN[k]; if (q>=zero && q<=one) (D.f[d0MP])[kts ]=f_BN + ms*c1over54 * VeloY - ms*c1over54 * VeloZ; - //q = q_dirTS[k]; if (q>=zero && q<=one) (D.f[d0PM])[kbn ]=f_TS - ms*c1over54 * VeloY + ms*c1over54 * VeloZ + c1o2*c1o9*((two*VeloY-vx2)*(two*VeloY-vx2)-vx2*vx2)*on; - // q = q_dirTNE[k]; if (q>=zero && q<=one) (D.f[dMMM])[kbsw]=f_TNE + ms*c1over216 * VeloX + ms*c1over216 * VeloY + ms*c1over216 * VeloZ + c1o2*c1o36*((two*VeloY-vx2)*(two*VeloY-vx2)-vx2*vx2)*on; - // q = q_dirBSW[k]; if (q>=zero && q<=one) (D.f[dPPP])[ktne]=f_BSW - ms*c1over216 * VeloX - ms*c1over216 * VeloY - ms*c1over216 * VeloZ; - // q = q_dirBNE[k]; if (q>=zero && q<=one) (D.f[dMMP])[ktsw]=f_BNE + ms*c1over216 * VeloX + ms*c1over216 * VeloY - ms*c1over216 * VeloZ; - // q = q_dirTSW[k]; if (q>=zero && q<=one) (D.f[dPPM])[kbne]=f_TSW - ms*c1over216 * VeloX - ms*c1over216 * VeloY + ms*c1over216 * VeloZ + c1o2*c1o36*((two*VeloY-vx2)*(two*VeloY-vx2)-vx2*vx2)*on; - // q = q_dirTSE[k]; if (q>=zero && q<=one) (D.f[dMPM])[kbnw]=f_TSE + ms*c1over216 * VeloX - ms*c1over216 * VeloY + ms*c1over216 * VeloZ + c1o2*c1o36*((two*VeloY-vx2)*(two*VeloY-vx2)-vx2*vx2)*on; - // q = q_dirBNW[k]; if (q>=zero && q<=one) (D.f[dPMP])[ktse]=f_BNW - ms*c1over216 * VeloX + ms*c1over216 * VeloY - ms*c1over216 * VeloZ; - // q = q_dirBSE[k]; if (q>=zero && q<=one) (D.f[dMPP])[ktnw]=f_BSE + ms*c1over216 * VeloX - ms*c1over216 * VeloY - ms*c1over216 * VeloZ; - // q = q_dirTNW[k]; if (q>=zero && q<=one) (D.f[dPMM])[kbse]=f_TNW - ms*c1over216 * VeloX + ms*c1over216 * VeloY + ms*c1over216 * VeloZ + c1o2*c1o36*((two*VeloY-vx2)*(two*VeloY-vx2)-vx2*vx2)*on; - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + q = q_dirE[k]; if (q>=c0o1 && q<=c1o1) (D.f[dM00])[kw ]=f_E + ms*c2o27 * VeloX; + q = q_dirW[k]; if (q>=c0o1 && q<=c1o1) (D.f[dP00])[ke ]=f_W - ms*c2o27 * VeloX; + q = q_dirN[k]; if (q>=c0o1 && q<=c1o1) (D.f[d0M0])[ks ]=f_N + ms*c2o27 * VeloY; + q = q_dirS[k]; if (q>=c0o1 && q<=c1o1) (D.f[d0P0])[kn ]=f_S - ms*c2o27 * VeloY; + q = q_dirT[k]; if (q>=c0o1 && q<=c1o1) (D.f[d00M])[kb ]=f_T + ms*c2o27 * VeloZ - c3o2*c2o27*((c2o1*VeloY-vx2)*(c2o1*VeloY-vx2)-vx2*vx2)*on; + q = q_dirB[k]; if (q>=c0o1 && q<=c1o1) (D.f[d00P])[kt ]=f_B - ms*c2o27 * VeloZ; + q = q_dirNE[k]; if (q>=c0o1 && q<=c1o1) (D.f[dMM0])[ksw ]=f_NE + ms*c1o54 * VeloX + ms*c1o54 * VeloY; + q = q_dirSW[k]; if (q>=c0o1 && q<=c1o1) (D.f[dPP0])[kne ]=f_SW - ms*c1o54 * VeloX - ms*c1o54 * VeloY; + q = q_dirSE[k]; if (q>=c0o1 && q<=c1o1) (D.f[dMP0])[knw ]=f_SE + ms*c1o54 * VeloX - ms*c1o54 * VeloY; + q = q_dirNW[k]; if (q>=c0o1 && q<=c1o1) (D.f[dPM0])[kse ]=f_NW - ms*c1o54 * VeloX + ms*c1o54 * VeloY; + q = q_dirTE[k]; if (q>=c0o1 && q<=c1o1) (D.f[dM0M])[kbw ]=f_TE + ms*c1o54 * VeloX + ms*c1o54 * VeloZ - c3o2*c1o54*((c2o1*VeloY-vx2)*(c2o1*VeloY-vx2)-vx2*vx2)*on-c1o12*kxxMyyFromfcNEQ; + q = q_dirBW[k]; if (q>=c0o1 && q<=c1o1) (D.f[dP0P])[kte ]=f_BW - ms*c1o54 * VeloX - ms*c1o54 * VeloZ; + q = q_dirBE[k]; if (q>=c0o1 && q<=c1o1) (D.f[dM0P])[ktw ]=f_BE + ms*c1o54 * VeloX - ms*c1o54 * VeloZ; + q = q_dirTW[k]; if (q>=c0o1 && q<=c1o1) (D.f[dP0M])[kbe ]=f_TW - ms*c1o54 * VeloX + ms*c1o54 * VeloZ - c3o2*c1o54*((c2o1*VeloY-vx2)*(c2o1*VeloY-vx2)-vx2*vx2)*on-c1o12*kxxMyyFromfcNEQ; + q = q_dirTN[k]; if (q>=c0o1 && q<=c1o1) (D.f[d0MM])[kbs ]=f_TN + ms*c1o54 * VeloY + ms*c1o54 * VeloZ + c3o1*c1o54*((c2o1*VeloY-vx2)*(c2o1*VeloY-vx2)-vx2*vx2)*on+c1o12*kxxMyyFromfcNEQ; + q = q_dirBS[k]; if (q>=c0o1 && q<=c1o1) (D.f[d0PP])[ktn ]=f_BS - ms*c1o54 * VeloY - ms*c1o54 * VeloZ; + q = q_dirBN[k]; if (q>=c0o1 && q<=c1o1) (D.f[d0MP])[kts ]=f_BN + ms*c1o54 * VeloY - ms*c1o54 * VeloZ; + q = q_dirTS[k]; if (q>=c0o1 && q<=c1o1) (D.f[d0PM])[kbn ]=f_TS - ms*c1o54 * VeloY + ms*c1o54 * VeloZ + c3o1*c1o54*((c2o1*VeloY-vx2)*(c2o1*VeloY-vx2)-vx2*vx2)*on+c1o12*kxxMyyFromfcNEQ; + q = q_dirTNE[k]; if (q>=c0o1 && q<=c1o1) (D.f[dMMM])[kbsw]=f_TNE + ms*c1o216 * VeloX + ms*c1o216 * VeloY + ms*c1o216 * VeloZ + c3o1*c1o216*((c2o1*VeloY-vx2)*(c2o1*VeloY-vx2)-vx2*vx2)*on; + q = q_dirBSW[k]; if (q>=c0o1 && q<=c1o1) (D.f[dPPP])[ktne]=f_BSW - ms*c1o216 * VeloX - ms*c1o216 * VeloY - ms*c1o216 * VeloZ; + q = q_dirBNE[k]; if (q>=c0o1 && q<=c1o1) (D.f[dMMP])[ktsw]=f_BNE + ms*c1o216 * VeloX + ms*c1o216 * VeloY - ms*c1o216 * VeloZ; + q = q_dirTSW[k]; if (q>=c0o1 && q<=c1o1) (D.f[dPPM])[kbne]=f_TSW - ms*c1o216 * VeloX - ms*c1o216 * VeloY + ms*c1o216 * VeloZ + c3o1*c1o216*((c2o1*VeloY-vx2)*(c2o1*VeloY-vx2)-vx2*vx2)*on; + q = q_dirTSE[k]; if (q>=c0o1 && q<=c1o1) (D.f[dMPM])[kbnw]=f_TSE + ms*c1o216 * VeloX - ms*c1o216 * VeloY + ms*c1o216 * VeloZ + c3o1*c1o216*((c2o1*VeloY-vx2)*(c2o1*VeloY-vx2)-vx2*vx2)*on; + q = q_dirBNW[k]; if (q>=c0o1 && q<=c1o1) (D.f[dPMP])[ktse]=f_BNW - ms*c1o216 * VeloX + ms*c1o216 * VeloY - ms*c1o216 * VeloZ; + q = q_dirBSE[k]; if (q>=c0o1 && q<=c1o1) (D.f[dMPP])[ktnw]=f_BSE + ms*c1o216 * VeloX - ms*c1o216 * VeloY - ms*c1o216 * VeloZ; + q = q_dirTNW[k]; if (q>=c0o1 && q<=c1o1) (D.f[dPMM])[kbse]=f_TNW - ms*c1o216 * VeloX + ms*c1o216 * VeloY + ms*c1o216 * VeloZ + c3o1*c1o216*((c2o1*VeloY-vx2)*(c2o1*VeloY-vx2)-vx2*vx2)*on; + //q = q_dirE[k]; if (q>=zero && q<=one) (D.f[dM00])[kw ]=f_E + ms*c2over27 * VeloX; + // q = q_dirW[k]; if (q>=zero && q<=one) (D.f[dP00])[ke ]=f_W - ms*c2over27 * VeloX; + // q = q_dirN[k]; if (q>=zero && q<=one) (D.f[d0M0])[ks ]=f_N + ms*c2over27 * VeloY; + // q = q_dirS[k]; if (q>=zero && q<=one) (D.f[d0P0])[kn ]=f_S - ms*c2over27 * VeloY; + //q = q_dirT[k]; if (q>=zero && q<=one) (D.f[d00M])[kb ]=f_T + ms*c2over27 * VeloZ - c1o9*((two*VeloY-vx2)*(two*VeloY-vx2)-vx2*vx2)*on; + // q = q_dirB[k]; if (q>=zero && q<=one) (D.f[d00P])[kt ]=f_B - ms*c2over27 * VeloZ; + // q = q_dirNE[k]; if (q>=zero && q<=one) (D.f[dMM0])[ksw ]=f_NE + ms*c1over54 * VeloX + ms*c1over54 * VeloY; + //q = q_dirSW[k]; if (q>=zero && q<=one) (D.f[dPP0])[kne ]=f_SW - ms*c1over54 * VeloX - ms*c1over54 * VeloY; + //q = q_dirSE[k]; if (q>=zero && q<=one) (D.f[dMP0])[knw ]=f_SE + ms*c1over54 * VeloX - ms*c1over54 * VeloY; + //q = q_dirNW[k]; if (q>=zero && q<=one) (D.f[dPM0])[kse ]=f_NW - ms*c1over54 * VeloX + ms*c1over54 * VeloY; + //q = q_dirTE[k]; if (q>=zero && q<=one) (D.f[dM0M])[kbw ]=f_TE + ms*c1over54 * VeloX + ms*c1over54 * VeloZ - c1o36*((two*VeloY-vx2)*(two*VeloY-vx2)-vx2*vx2)*on; + //q = q_dirBW[k]; if (q>=zero && q<=one) (D.f[dP0P])[kte ]=f_BW - ms*c1over54 * VeloX - ms*c1over54 * VeloZ; + //q = q_dirBE[k]; if (q>=zero && q<=one) (D.f[dM0P])[ktw ]=f_BE + ms*c1over54 * VeloX - ms*c1over54 * VeloZ; + //q = q_dirTW[k]; if (q>=zero && q<=one) (D.f[dP0M])[kbe ]=f_TW - ms*c1over54 * VeloX + ms*c1over54 * VeloZ - c1o36*((two*VeloY-vx2)*(two*VeloY-vx2)-vx2*vx2)*on; + //q = q_dirTN[k]; if (q>=zero && q<=one) (D.f[d0MM])[kbs ]=f_TN + ms*c1over54 * VeloY + ms*c1over54 * VeloZ + c1o2*c1o9*((two*VeloY-vx2)*(two*VeloY-vx2)-vx2*vx2)*on; + //q = q_dirBS[k]; if (q>=zero && q<=one) (D.f[d0PP])[ktn ]=f_BS - ms*c1over54 * VeloY - ms*c1over54 * VeloZ; + //q = q_dirBN[k]; if (q>=zero && q<=one) (D.f[d0MP])[kts ]=f_BN + ms*c1over54 * VeloY - ms*c1over54 * VeloZ; + //q = q_dirTS[k]; if (q>=zero && q<=one) (D.f[d0PM])[kbn ]=f_TS - ms*c1over54 * VeloY + ms*c1over54 * VeloZ + c1o2*c1o9*((two*VeloY-vx2)*(two*VeloY-vx2)-vx2*vx2)*on; + // q = q_dirTNE[k]; if (q>=zero && q<=one) (D.f[dMMM])[kbsw]=f_TNE + ms*c1over216 * VeloX + ms*c1over216 * VeloY + ms*c1over216 * VeloZ + c1o2*c1o36*((two*VeloY-vx2)*(two*VeloY-vx2)-vx2*vx2)*on; + // q = q_dirBSW[k]; if (q>=zero && q<=one) (D.f[dPPP])[ktne]=f_BSW - ms*c1over216 * VeloX - ms*c1over216 * VeloY - ms*c1over216 * VeloZ; + // q = q_dirBNE[k]; if (q>=zero && q<=one) (D.f[dMMP])[ktsw]=f_BNE + ms*c1over216 * VeloX + ms*c1over216 * VeloY - ms*c1over216 * VeloZ; + // q = q_dirTSW[k]; if (q>=zero && q<=one) (D.f[dPPM])[kbne]=f_TSW - ms*c1over216 * VeloX - ms*c1over216 * VeloY + ms*c1over216 * VeloZ + c1o2*c1o36*((two*VeloY-vx2)*(two*VeloY-vx2)-vx2*vx2)*on; + // q = q_dirTSE[k]; if (q>=zero && q<=one) (D.f[dMPM])[kbnw]=f_TSE + ms*c1over216 * VeloX - ms*c1over216 * VeloY + ms*c1over216 * VeloZ + c1o2*c1o36*((two*VeloY-vx2)*(two*VeloY-vx2)-vx2*vx2)*on; + // q = q_dirBNW[k]; if (q>=zero && q<=one) (D.f[dPMP])[ktse]=f_BNW - ms*c1over216 * VeloX + ms*c1over216 * VeloY - ms*c1over216 * VeloZ; + // q = q_dirBSE[k]; if (q>=zero && q<=one) (D.f[dMPP])[ktnw]=f_BSE + ms*c1over216 * VeloX - ms*c1over216 * VeloY - ms*c1over216 * VeloZ; + // q = q_dirTNW[k]; if (q>=zero && q<=one) (D.f[dPMM])[kbse]=f_TNW - ms*c1over216 * VeloX + ms*c1over216 * VeloY + ms*c1over216 * VeloZ + c1o2*c1o36*((two*VeloY-vx2)*(two*VeloY-vx2)-vx2*vx2)*on; + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// } } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -3752,726 +3752,726 @@ __global__ void QVelDev1h27( unsigned long long numberOfLBnodes, bool isEvenTimestep) { - Distributions27 D; - if (isEvenTimestep==true) - { - D.f[dP00] = &DD[dP00 * numberOfLBnodes]; - D.f[dM00] = &DD[dM00 * numberOfLBnodes]; - D.f[d0P0] = &DD[d0P0 * numberOfLBnodes]; - D.f[d0M0] = &DD[d0M0 * numberOfLBnodes]; - D.f[d00P] = &DD[d00P * numberOfLBnodes]; - D.f[d00M] = &DD[d00M * numberOfLBnodes]; - D.f[dPP0] = &DD[dPP0 * numberOfLBnodes]; - D.f[dMM0] = &DD[dMM0 * numberOfLBnodes]; - D.f[dPM0] = &DD[dPM0 * numberOfLBnodes]; - D.f[dMP0] = &DD[dMP0 * numberOfLBnodes]; - D.f[dP0P] = &DD[dP0P * numberOfLBnodes]; - D.f[dM0M] = &DD[dM0M * numberOfLBnodes]; - D.f[dP0M] = &DD[dP0M * numberOfLBnodes]; - D.f[dM0P] = &DD[dM0P * numberOfLBnodes]; - D.f[d0PP] = &DD[d0PP * numberOfLBnodes]; - D.f[d0MM] = &DD[d0MM * numberOfLBnodes]; - D.f[d0PM] = &DD[d0PM * numberOfLBnodes]; - D.f[d0MP] = &DD[d0MP * numberOfLBnodes]; - D.f[d000] = &DD[d000 * numberOfLBnodes]; - D.f[dPPP] = &DD[dPPP * numberOfLBnodes]; - D.f[dMMP] = &DD[dMMP * numberOfLBnodes]; - D.f[dPMP] = &DD[dPMP * numberOfLBnodes]; - D.f[dMPP] = &DD[dMPP * numberOfLBnodes]; - D.f[dPPM] = &DD[dPPM * numberOfLBnodes]; - D.f[dMMM] = &DD[dMMM * numberOfLBnodes]; - D.f[dPMM] = &DD[dPMM * numberOfLBnodes]; - D.f[dMPM] = &DD[dMPM * numberOfLBnodes]; - } - else - { - D.f[dM00] = &DD[dP00 * numberOfLBnodes]; - D.f[dP00] = &DD[dM00 * numberOfLBnodes]; - D.f[d0M0] = &DD[d0P0 * numberOfLBnodes]; - D.f[d0P0] = &DD[d0M0 * numberOfLBnodes]; - D.f[d00M] = &DD[d00P * numberOfLBnodes]; - D.f[d00P] = &DD[d00M * numberOfLBnodes]; - D.f[dMM0] = &DD[dPP0 * numberOfLBnodes]; - D.f[dPP0] = &DD[dMM0 * numberOfLBnodes]; - D.f[dMP0] = &DD[dPM0 * numberOfLBnodes]; - D.f[dPM0] = &DD[dMP0 * numberOfLBnodes]; - D.f[dM0M] = &DD[dP0P * numberOfLBnodes]; - D.f[dP0P] = &DD[dM0M * numberOfLBnodes]; - D.f[dM0P] = &DD[dP0M * numberOfLBnodes]; - D.f[dP0M] = &DD[dM0P * numberOfLBnodes]; - D.f[d0MM] = &DD[d0PP * numberOfLBnodes]; - D.f[d0PP] = &DD[d0MM * numberOfLBnodes]; - D.f[d0MP] = &DD[d0PM * numberOfLBnodes]; - D.f[d0PM] = &DD[d0MP * numberOfLBnodes]; - D.f[d000] = &DD[d000 * numberOfLBnodes]; - D.f[dPPP] = &DD[dMMM * numberOfLBnodes]; - D.f[dMMP] = &DD[dPPM * numberOfLBnodes]; - D.f[dPMP] = &DD[dMPM * numberOfLBnodes]; - D.f[dMPP] = &DD[dPMM * numberOfLBnodes]; - D.f[dPPM] = &DD[dMMP * numberOfLBnodes]; - D.f[dMMM] = &DD[dPPP * numberOfLBnodes]; - D.f[dPMM] = &DD[dMPP * numberOfLBnodes]; - D.f[dMPM] = &DD[dPMP * numberOfLBnodes]; - } - //////////////////////////////////////////////////////////////////////////////// - const unsigned x = threadIdx.x; // Globaler x-Index - const unsigned y = blockIdx.x; // Globaler y-Index - const unsigned z = blockIdx.y; // Globaler z-Index - - const unsigned nx = blockDim.x; - const unsigned ny = gridDim.x; - - const unsigned k = nx*(ny*z + y) + x; - ////////////////////////////////////////////////////////////////////////// - - if(k<numberOfBCnodes) - { - //////////////////////////////////////////////////////////////////////////////// - real VeloX = cosf(Phi)*vx[k] - sinf(Phi)*vy[k]; - real VeloY = sinf(Phi)*vx[k] + cosf(Phi)*vy[k]; - //real VeloZ = vz[k]; //(16.0*(u0*2.0)*bbx*bby*(grid_nx-bbx)*(grid_ny-bby))/(grid_nx*grid_nx*grid_ny*grid_ny) - //////////////////////////////////////////////////////////////////////////////////// - //Ship - real coord0X = 281.125f;//7.5f; - real coord0Y = 388.125f;//7.5f; - real ux = - angularVelocity * (coordY[k_Q[k]] - coord0Y); - real uy = angularVelocity * (coordX[k_Q[k]] - coord0X); - real VeloXpur=VeloX; - real VeloYpur=VeloY; - VeloX-=ux; - VeloY-=uy; - //////////////////////////////////////////////////////////////////////////////// - real *q_dirE, *q_dirW, *q_dirN, *q_dirS, *q_dirT, *q_dirB, - *q_dirNE, *q_dirSW, *q_dirSE, *q_dirNW, *q_dirTE, *q_dirBW, - *q_dirBE, *q_dirTW, *q_dirTN, *q_dirBS, *q_dirBN, *q_dirTS, - *q_dirTNE, *q_dirTSW, *q_dirTSE, *q_dirTNW, *q_dirBNE, *q_dirBSW, - *q_dirBSE, *q_dirBNW; - q_dirE = &QQ[dP00 * numberOfBCnodes]; - q_dirW = &QQ[dM00 * numberOfBCnodes]; - q_dirN = &QQ[d0P0 * numberOfBCnodes]; - q_dirS = &QQ[d0M0 * numberOfBCnodes]; - q_dirT = &QQ[d00P * numberOfBCnodes]; - q_dirB = &QQ[d00M * numberOfBCnodes]; - q_dirNE = &QQ[dPP0 * numberOfBCnodes]; - q_dirSW = &QQ[dMM0 * numberOfBCnodes]; - q_dirSE = &QQ[dPM0 * numberOfBCnodes]; - q_dirNW = &QQ[dMP0 * numberOfBCnodes]; - q_dirTE = &QQ[dP0P * numberOfBCnodes]; - q_dirBW = &QQ[dM0M * numberOfBCnodes]; - q_dirBE = &QQ[dP0M * numberOfBCnodes]; - q_dirTW = &QQ[dM0P * numberOfBCnodes]; - q_dirTN = &QQ[d0PP * numberOfBCnodes]; - q_dirBS = &QQ[d0MM * numberOfBCnodes]; - q_dirBN = &QQ[d0PM * numberOfBCnodes]; - q_dirTS = &QQ[d0MP * numberOfBCnodes]; - q_dirTNE = &QQ[dPPP * numberOfBCnodes]; - q_dirTSW = &QQ[dMMP * numberOfBCnodes]; - q_dirTSE = &QQ[dPMP * numberOfBCnodes]; - q_dirTNW = &QQ[dMPP * numberOfBCnodes]; - q_dirBNE = &QQ[dPPM * numberOfBCnodes]; - q_dirBSW = &QQ[dMMM * numberOfBCnodes]; - q_dirBSE = &QQ[dPMM * numberOfBCnodes]; - q_dirBNW = &QQ[dMPM * numberOfBCnodes]; - //////////////////////////////////////////////////////////////////////////////// - //index - unsigned int KQK = k_Q[k]; - //unsigned int kzero= KQK; - unsigned int ke = KQK; - unsigned int kw = neighborX[KQK]; - unsigned int kn = KQK; - unsigned int ks = neighborY[KQK]; - unsigned int kt = KQK; - unsigned int kb = neighborZ[KQK]; - unsigned int ksw = neighborY[kw]; - unsigned int kne = KQK; - unsigned int kse = ks; - unsigned int knw = kw; - unsigned int kbw = neighborZ[kw]; - unsigned int kte = KQK; - unsigned int kbe = kb; - unsigned int ktw = kw; - unsigned int kbs = neighborZ[ks]; - unsigned int ktn = KQK; - unsigned int kbn = kb; - unsigned int kts = ks; - unsigned int ktse = ks; - unsigned int kbnw = kbw; - unsigned int ktnw = kw; - unsigned int kbse = kbs; - unsigned int ktsw = ksw; - unsigned int kbne = kb; - unsigned int ktne = KQK; - unsigned int kbsw = neighborZ[ksw]; - //unsigned int nxny = nx*ny; - //unsigned int kzero= KQK; - //unsigned int ke = KQK; - //unsigned int kw = KQK + 1; - //unsigned int kn = KQK; - //unsigned int ks = KQK + nx; - //unsigned int kt = KQK; - //unsigned int kb = KQK + nxny; - //unsigned int ksw = KQK + nx + 1; - //unsigned int kne = KQK; - //unsigned int kse = KQK + nx; - //unsigned int knw = KQK + 1; - //unsigned int kbw = KQK + nxny + 1; - //unsigned int kte = KQK; - //unsigned int kbe = KQK + nxny; - //unsigned int ktw = KQK + 1; - //unsigned int kbs = KQK + nxny + nx; - //unsigned int ktn = KQK; - //unsigned int kbn = KQK + nxny; - //unsigned int kts = KQK + nx; - //unsigned int ktse = KQK + nx; - //unsigned int kbnw = KQK + nxny + 1; - //unsigned int ktnw = KQK + 1; - //unsigned int kbse = KQK + nxny + nx; - //unsigned int ktsw = KQK + nx + 1; - //unsigned int kbne = KQK + nxny; - //unsigned int ktne = KQK; - //unsigned int kbsw = KQK + nxny + nx + 1; - //////////////////////////////////////////////////////////////////////////////// - //real f_E, f_W, f_N, f_S, f_T, f_B, f_NE, f_SW, f_SE, f_NW, f_TE, f_BW, f_BE, - // f_TW, f_TN, f_BS, f_BN, f_TS, f_TNE, f_TSW, f_TSE, f_TNW, f_BNE, f_BSW, f_BSE, f_BNW; - - //f_W = (D.f[dP00])[ke ]; - //f_E = (D.f[dM00])[kw ]; - //f_S = (D.f[d0P0])[kn ]; - //f_N = (D.f[d0M0])[ks ]; - //f_B = (D.f[d00P])[kt ]; - //f_T = (D.f[d00M])[kb ]; - //f_SW = (D.f[dPP0])[kne ]; - //f_NE = (D.f[dMM0])[ksw ]; - //f_NW = (D.f[dPM0])[kse ]; - //f_SE = (D.f[dMP0])[knw ]; - //f_BW = (D.f[dP0P])[kte ]; - //f_TE = (D.f[dM0M])[kbw ]; - //f_TW = (D.f[dP0M])[kbe ]; - //f_BE = (D.f[dM0P])[ktw ]; - //f_BS = (D.f[d0PP])[ktn ]; - //f_TN = (D.f[d0MM])[kbs ]; - //f_TS = (D.f[d0PM])[kbn ]; - //f_BN = (D.f[d0MP])[kts ]; - //f_BSW = (D.f[dPPP])[ktne ]; - //f_BNE = (D.f[dMMP])[ktsw ]; - //f_BNW = (D.f[dPMP])[ktse ]; - //f_BSE = (D.f[dMPP])[ktnw ]; - //f_TSW = (D.f[dPPM])[kbne ]; - //f_TNE = (D.f[dMMM])[kbsw ]; - //f_TNW = (D.f[dPMM])[kbse ]; - //f_TSE = (D.f[dMPM])[kbnw ]; - //////////////////////////////////////////////////////////////////////////////// - real /*vx1, vx2,*/ vx3, drho, feq, q, cu_sq; - //drho = f_TSE + f_TNW + f_TNE + f_TSW + f_BSE + f_BNW + f_BNE + f_BSW + - // f_BN + f_TS + f_TN + f_BS + f_BE + f_TW + f_TE + f_BW + f_SE + f_NW + f_NE + f_SW + - // f_T + f_B + f_N + f_S + f_E + f_W + ((D.f[d000])[kzero]); - - //vx1 = ((f_TSE - f_BNW) - (f_TNW - f_BSE)) + ((f_TNE - f_BSW) - (f_TSW - f_BNE)) + - // ((f_BE - f_TW) + (f_TE - f_BW)) + ((f_SE - f_NW) + (f_NE - f_SW)) + - // (f_E - f_W); - - - //vx2 = (-(f_TSE - f_BNW) + (f_TNW - f_BSE)) + ((f_TNE - f_BSW) - (f_TSW - f_BNE)) + - // ((f_BN - f_TS) + (f_TN - f_BS)) + (-(f_SE - f_NW) + (f_NE - f_SW)) + - // (f_N - f_S); - - //vx3 = ((f_TSE - f_BNW) + (f_TNW - f_BSE)) + ((f_TNE - f_BSW) + (f_TSW - f_BNE)) + - // (-(f_BN - f_TS) + (f_TN - f_BS)) + ((f_TE - f_BW) - (f_BE - f_TW)) + - // (f_T - f_B); - - //cu_sq=c3o2*(vx1*vx1+vx2*vx2+vx3*vx3); - - ////////////////////////////////////////////////////////////////////////// - if (isEvenTimestep==false) - { - D.f[dP00] = &DD[dP00 * numberOfLBnodes]; - D.f[dM00] = &DD[dM00 * numberOfLBnodes]; - D.f[d0P0] = &DD[d0P0 * numberOfLBnodes]; - D.f[d0M0] = &DD[d0M0 * numberOfLBnodes]; - D.f[d00P] = &DD[d00P * numberOfLBnodes]; - D.f[d00M] = &DD[d00M * numberOfLBnodes]; - D.f[dPP0] = &DD[dPP0 * numberOfLBnodes]; - D.f[dMM0] = &DD[dMM0 * numberOfLBnodes]; - D.f[dPM0] = &DD[dPM0 * numberOfLBnodes]; - D.f[dMP0] = &DD[dMP0 * numberOfLBnodes]; - D.f[dP0P] = &DD[dP0P * numberOfLBnodes]; - D.f[dM0M] = &DD[dM0M * numberOfLBnodes]; - D.f[dP0M] = &DD[dP0M * numberOfLBnodes]; - D.f[dM0P] = &DD[dM0P * numberOfLBnodes]; - D.f[d0PP] = &DD[d0PP * numberOfLBnodes]; - D.f[d0MM] = &DD[d0MM * numberOfLBnodes]; - D.f[d0PM] = &DD[d0PM * numberOfLBnodes]; - D.f[d0MP] = &DD[d0MP * numberOfLBnodes]; - D.f[d000] = &DD[d000 * numberOfLBnodes]; - D.f[dPPP] = &DD[dPPP * numberOfLBnodes]; - D.f[dMMP] = &DD[dMMP * numberOfLBnodes]; - D.f[dPMP] = &DD[dPMP * numberOfLBnodes]; - D.f[dMPP] = &DD[dMPP * numberOfLBnodes]; - D.f[dPPM] = &DD[dPPM * numberOfLBnodes]; - D.f[dMMM] = &DD[dMMM * numberOfLBnodes]; - D.f[dPMM] = &DD[dPMM * numberOfLBnodes]; - D.f[dMPM] = &DD[dMPM * numberOfLBnodes]; - } - else - { - D.f[dM00] = &DD[dP00 * numberOfLBnodes]; - D.f[dP00] = &DD[dM00 * numberOfLBnodes]; - D.f[d0M0] = &DD[d0P0 * numberOfLBnodes]; - D.f[d0P0] = &DD[d0M0 * numberOfLBnodes]; - D.f[d00M] = &DD[d00P * numberOfLBnodes]; - D.f[d00P] = &DD[d00M * numberOfLBnodes]; - D.f[dMM0] = &DD[dPP0 * numberOfLBnodes]; - D.f[dPP0] = &DD[dMM0 * numberOfLBnodes]; - D.f[dMP0] = &DD[dPM0 * numberOfLBnodes]; - D.f[dPM0] = &DD[dMP0 * numberOfLBnodes]; - D.f[dM0M] = &DD[dP0P * numberOfLBnodes]; - D.f[dP0P] = &DD[dM0M * numberOfLBnodes]; - D.f[dM0P] = &DD[dP0M * numberOfLBnodes]; - D.f[dP0M] = &DD[dM0P * numberOfLBnodes]; - D.f[d0MM] = &DD[d0PP * numberOfLBnodes]; - D.f[d0PP] = &DD[d0MM * numberOfLBnodes]; - D.f[d0MP] = &DD[d0PM * numberOfLBnodes]; - D.f[d0PM] = &DD[d0MP * numberOfLBnodes]; - D.f[d000] = &DD[d000 * numberOfLBnodes]; - D.f[dPPP] = &DD[dMMM * numberOfLBnodes]; - D.f[dMMP] = &DD[dPPM * numberOfLBnodes]; - D.f[dPMP] = &DD[dMPM * numberOfLBnodes]; - D.f[dMPP] = &DD[dPMM * numberOfLBnodes]; - D.f[dPPM] = &DD[dMMP * numberOfLBnodes]; - D.f[dMMM] = &DD[dPPP * numberOfLBnodes]; - D.f[dPMM] = &DD[dMPP * numberOfLBnodes]; - D.f[dMPM] = &DD[dPMP * numberOfLBnodes]; - } - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //Test - //(D.f[d000])[k]=c1o10; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - //ToDo anders Klammern - - //q = q_dirE[k]; - //if (q>=zero && q<=one) - //{ - // feq=c2over27* (drho/*+three*( vx1 )*/+c9over2*( vx1 )*( vx1 )-cu_sq); - // (D.f[dM00])[kw]=(one-q)/(one+q)*(f_E-f_W+(f_E+f_W-two*feq*om1)/(one-om1))*c1o2+(q*(f_E+f_W)-six*c2over27*( VeloX ))/(one+q); - // //(D.f[dM00])[kw]=zero; - //} - - //q = q_dirW[k]; - //if (q>=zero && q<=one) - //{ - // feq=c2over27* (drho/*+three*(-vx1 )*/+c9over2*(-vx1 )*(-vx1 )-cu_sq); - // (D.f[dP00])[ke]=(one-q)/(one+q)*(f_W-f_E+(f_W+f_E-two*feq*om1)/(one-om1))*c1o2+(q*(f_W+f_E)-six*c2over27*(-VeloX ))/(one+q); - // //(D.f[dP00])[ke]=zero; - //} - - //q = q_dirN[k]; - //if (q>=zero && q<=one) - //{ - // feq=c2over27* (drho/*+three*( vx2 )*/+c9over2*( vx2 )*( vx2 )-cu_sq); - // (D.f[d0M0])[ks]=(one-q)/(one+q)*(f_N-f_S+(f_N+f_S-two*feq*om1)/(one-om1))*c1o2+(q*(f_N+f_S)-six*c2over27*( VeloY ))/(one+q); - // //(D.f[d0M0])[ks]=zero; - //} - - //q = q_dirS[k]; - //if (q>=zero && q<=one) - //{ - // feq=c2over27* (drho/*+three*( -vx2 )*/+c9over2*( -vx2 )*( -vx2 )-cu_sq); - // (D.f[d0P0])[kn]=(one-q)/(one+q)*(f_S-f_N+(f_S+f_N-two*feq*om1)/(one-om1))*c1o2+(q*(f_S+f_N)-six*c2over27*(-VeloY ))/(one+q); - // //(D.f[d0P0])[kn]=zero; - //} - - //q = q_dirT[k]; - //if (q>=zero && q<=one) - //{ - // feq=c2over27* (drho/*+three*( vx3)*/+c9over2*( vx3)*( vx3)-cu_sq); - // (D.f[d00M])[kb]=(one-q)/(one+q)*(f_T-f_B+(f_T+f_B-two*feq*om1)/(one-om1))*c1o2+(q*(f_T+f_B)-six*c2over27*( VeloZ ))/(one+q); - // //(D.f[d00M])[kb]=one; - //} - - //q = q_dirB[k]; - //if (q>=zero && q<=one) - //{ - // feq=c2over27* (drho/*+three*( -vx3)*/+c9over2*( -vx3)*( -vx3)-cu_sq); - // (D.f[d00P])[kt]=(one-q)/(one+q)*(f_B-f_T+(f_B+f_T-two*feq*om1)/(one-om1))*c1o2+(q*(f_B+f_T)-six*c2over27*(-VeloZ ))/(one+q); - // //(D.f[d00P])[kt]=zero; - //} - - //q = q_dirNE[k]; - //if (q>=zero && q<=one) - //{ - // feq=c1over54* (drho/*+three*( vx1+vx2 )*/+c9over2*( vx1+vx2 )*( vx1+vx2 )-cu_sq); - // (D.f[dMM0])[ksw]=(one-q)/(one+q)*(f_NE-f_SW+(f_NE+f_SW-two*feq*om1)/(one-om1))*c1o2+(q*(f_NE+f_SW)-six*c1over54*(VeloX+VeloY))/(one+q); - // //(D.f[dMM0])[ksw]=zero; - //} - - //q = q_dirSW[k]; - //if (q>=zero && q<=one) - //{ - // feq=c1over54* (drho/*+three*(-vx1-vx2 )*/+c9over2*(-vx1-vx2 )*(-vx1-vx2 )-cu_sq); - // (D.f[dPP0])[kne]=(one-q)/(one+q)*(f_SW-f_NE+(f_SW+f_NE-two*feq*om1)/(one-om1))*c1o2+(q*(f_SW+f_NE)-six*c1over54*(-VeloX-VeloY))/(one+q); - // //(D.f[dPP0])[kne]=zero; - //} - - //q = q_dirSE[k]; - //if (q>=zero && q<=one) - //{ - // feq=c1over54* (drho/*+three*( vx1-vx2 )*/+c9over2*( vx1-vx2 )*( vx1-vx2 )-cu_sq); - // (D.f[dMP0])[knw]=(one-q)/(one+q)*(f_SE-f_NW+(f_SE+f_NW-two*feq*om1)/(one-om1))*c1o2+(q*(f_SE+f_NW)-six*c1over54*( VeloX-VeloY))/(one+q); - // //(D.f[dMP0])[knw]=zero; - //} - - //q = q_dirNW[k]; - //if (q>=zero && q<=one) - //{ - // feq=c1over54* (drho/*+three*(-vx1+vx2 )*/+c9over2*(-vx1+vx2 )*(-vx1+vx2 )-cu_sq); - // (D.f[dPM0])[kse]=(one-q)/(one+q)*(f_NW-f_SE+(f_NW+f_SE-two*feq*om1)/(one-om1))*c1o2+(q*(f_NW+f_SE)-six*c1over54*(-VeloX+VeloY))/(one+q); - // //(D.f[dPM0])[kse]=zero; - //} - - //q = q_dirTE[k]; - //if (q>=zero && q<=one) - //{ - // feq=c1over54* (drho/*+three*( vx1 +vx3)*/+c9over2*( vx1 +vx3)*( vx1 +vx3)-cu_sq); - // (D.f[dM0M])[kbw]=(one-q)/(one+q)*(f_TE-f_BW+(f_TE+f_BW-two*feq*om1)/(one-om1))*c1o2+(q*(f_TE+f_BW)-six*c1over54*( VeloX+VeloZ))/(one+q); - // //(D.f[dM0M])[kbw]=zero; - //} - - //q = q_dirBW[k]; - //if (q>=zero && q<=one) - //{ - // feq=c1over54* (drho/*+three*(-vx1 -vx3)*/+c9over2*(-vx1 -vx3)*(-vx1 -vx3)-cu_sq); - // (D.f[dP0P])[kte]=(one-q)/(one+q)*(f_BW-f_TE+(f_BW+f_TE-two*feq*om1)/(one-om1))*c1o2+(q*(f_BW+f_TE)-six*c1over54*(-VeloX-VeloZ))/(one+q); - // //(D.f[dP0P])[kte]=zero; - //} - - //q = q_dirBE[k]; - //if (q>=zero && q<=one) - //{ - // feq=c1over54* (drho/*+three*( vx1 -vx3)*/+c9over2*( vx1 -vx3)*( vx1 -vx3)-cu_sq); - // (D.f[dM0P])[ktw]=(one-q)/(one+q)*(f_BE-f_TW+(f_BE+f_TW-two*feq*om1)/(one-om1))*c1o2+(q*(f_BE+f_TW)-six*c1over54*( VeloX-VeloZ))/(one+q); - // //(D.f[dM0P])[ktw]=zero; - //} - - //q = q_dirTW[k]; - //if (q>=zero && q<=one) - //{ - // feq=c1over54* (drho/*+three*(-vx1 +vx3)*/+c9over2*(-vx1 +vx3)*(-vx1 +vx3)-cu_sq); - // (D.f[dP0M])[kbe]=(one-q)/(one+q)*(f_TW-f_BE+(f_TW+f_BE-two*feq*om1)/(one-om1))*c1o2+(q*(f_TW+f_BE)-six*c1over54*(-VeloX+VeloZ))/(one+q); - // //(D.f[dP0M])[kbe]=zero; - //} - - //q = q_dirTN[k]; - //if (q>=zero && q<=one) - //{ - // feq=c1over54* (drho/*+three*( vx2+vx3)*/+c9over2*( vx2+vx3)*( vx2+vx3)-cu_sq); - // (D.f[d0MM])[kbs]=(one-q)/(one+q)*(f_TN-f_BS+(f_TN+f_BS-two*feq*om1)/(one-om1))*c1o2+(q*(f_TN+f_BS)-six*c1over54*( VeloY+VeloZ))/(one+q); - // //(D.f[d0MM])[kbs]=zero; - //} - - //q = q_dirBS[k]; - //if (q>=zero && q<=one) - //{ - // feq=c1over54* (drho/*+three*( -vx2-vx3)*/+c9over2*( -vx2-vx3)*( -vx2-vx3)-cu_sq); - // (D.f[d0PP])[ktn]=(one-q)/(one+q)*(f_BS-f_TN+(f_BS+f_TN-two*feq*om1)/(one-om1))*c1o2+(q*(f_BS+f_TN)-six*c1over54*( -VeloY-VeloZ))/(one+q); - // //(D.f[d0PP])[ktn]=zero; - //} - - //q = q_dirBN[k]; - //if (q>=zero && q<=one) - //{ - // feq=c1over54* (drho/*+three*( vx2-vx3)*/+c9over2*( vx2-vx3)*( vx2-vx3)-cu_sq); - // (D.f[d0MP])[kts]=(one-q)/(one+q)*(f_BN-f_TS+(f_BN+f_TS-two*feq*om1)/(one-om1))*c1o2+(q*(f_BN+f_TS)-six*c1over54*( VeloY-VeloZ))/(one+q); - // //(D.f[d0MP])[kts]=zero; - //} - - //q = q_dirTS[k]; - //if (q>=zero && q<=one) - //{ - // feq=c1over54* (drho/*+three*( -vx2+vx3)*/+c9over2*( -vx2+vx3)*( -vx2+vx3)-cu_sq); - // (D.f[d0PM])[kbn]=(one-q)/(one+q)*(f_TS-f_BN+(f_TS+f_BN-two*feq*om1)/(one-om1))*c1o2+(q*(f_TS+f_BN)-six*c1over54*( -VeloY+VeloZ))/(one+q); - // //(D.f[d0PM])[kbn]=zero; - //} - - //q = q_dirTNE[k]; - //if (q>=zero && q<=one) - //{ - // feq=c1over216*(drho/*+three*( vx1+vx2+vx3)*/+c9over2*( vx1+vx2+vx3)*( vx1+vx2+vx3)-cu_sq); - // (D.f[dMMM])[kbsw]=(one-q)/(one+q)*(f_TNE-f_BSW+(f_TNE+f_BSW-two*feq*om1)/(one-om1))*c1o2+(q*(f_TNE+f_BSW)-six*c1over216*( VeloX+VeloY+VeloZ))/(one+q); - // //(D.f[dMMM])[kbsw]=zero; - //} - - //q = q_dirBSW[k]; - //if (q>=zero && q<=one) - //{ - // feq=c1over216*(drho/*+three*(-vx1-vx2-vx3)*/+c9over2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3)-cu_sq); - // (D.f[dPPP])[ktne]=(one-q)/(one+q)*(f_BSW-f_TNE+(f_BSW+f_TNE-two*feq*om1)/(one-om1))*c1o2+(q*(f_BSW+f_TNE)-six*c1over216*(-VeloX-VeloY-VeloZ))/(one+q); - // //(D.f[dPPP])[ktne]=zero; - //} - - //q = q_dirBNE[k]; - //if (q>=zero && q<=one) - //{ - // feq=c1over216*(drho/*+three*( vx1+vx2-vx3)*/+c9over2*( vx1+vx2-vx3)*( vx1+vx2-vx3)-cu_sq); - // (D.f[dMMP])[ktsw]=(one-q)/(one+q)*(f_BNE-f_TSW+(f_BNE+f_TSW-two*feq*om1)/(one-om1))*c1o2+(q*(f_BNE+f_TSW)-six*c1over216*( VeloX+VeloY-VeloZ))/(one+q); - // //(D.f[dMMP])[ktsw]=zero; - //} - - //q = q_dirTSW[k]; - //if (q>=zero && q<=one) - //{ - // feq=c1over216*(drho/*+three*(-vx1-vx2+vx3)*/+c9over2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3)-cu_sq); - // (D.f[dPPM])[kbne]=(one-q)/(one+q)*(f_TSW-f_BNE+(f_TSW+f_BNE-two*feq*om1)/(one-om1))*c1o2+(q*(f_TSW+f_BNE)-six*c1over216*(-VeloX-VeloY+VeloZ))/(one+q); - // //(D.f[dPPM])[kbne]=zero; - //} - - //q = q_dirTSE[k]; - //if (q>=zero && q<=one) - //{ - // feq=c1over216*(drho/*+three*( vx1-vx2+vx3)*/+c9over2*( vx1-vx2+vx3)*( vx1-vx2+vx3)-cu_sq); - // (D.f[dMPM])[kbnw]=(one-q)/(one+q)*(f_TSE-f_BNW+(f_TSE+f_BNW-two*feq*om1)/(one-om1))*c1o2+(q*(f_TSE+f_BNW)-six*c1over216*( VeloX-VeloY+VeloZ))/(one+q); - // //(D.f[dMPM])[kbnw]=zero; - //} - - //q = q_dirBNW[k]; - //if (q>=zero && q<=one) - //{ - // feq=c1over216*(drho/*+three*(-vx1+vx2-vx3)*/+c9over2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3)-cu_sq); - // (D.f[dPMP])[ktse]=(one-q)/(one+q)*(f_BNW-f_TSE+(f_BNW+f_TSE-two*feq*om1)/(one-om1))*c1o2+(q*(f_BNW+f_TSE)-six*c1over216*(-VeloX+VeloY-VeloZ))/(one+q); - // //(D.f[dPMP])[ktse]=zero; - //} - - //q = q_dirBSE[k]; - //if (q>=zero && q<=one) - //{ - // feq=c1over216*(drho/*+three*( vx1-vx2-vx3)*/+c9over2*( vx1-vx2-vx3)*( vx1-vx2-vx3)-cu_sq); - // (D.f[dMPP])[ktnw]=(one-q)/(one+q)*(f_BSE-f_TNW+(f_BSE+f_TNW-two*feq*om1)/(one-om1))*c1o2+(q*(f_BSE+f_TNW)-six*c1over216*( VeloX-VeloY-VeloZ))/(one+q); - // //(D.f[dMPP])[ktnw]=zero; - //} - - //q = q_dirTNW[k]; - //if (q>=zero && q<=one) - //{ - // feq=c1over216*(drho/*+three*(-vx1+vx2+vx3)*/+c9over2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cu_sq); - // (D.f[dPMM])[kbse]=(one-q)/(one+q)*(f_TNW-f_BSE+(f_TNW+f_BSE-two*feq*om1)/(one-om1))*c1o2+(q*(f_TNW+f_BSE)-six*c1over216*(-VeloX+VeloY+VeloZ))/(one+q); - // //(D.f[dPMM])[kbse]=zero; - //} - - ///////// equilibrium BC - cu_sq=c3o2*(VeloX*VeloX +VeloY*VeloY); - VeloXpur*=-c1o1; - VeloYpur*=-c1o1; - vx3=c0o1; - drho=c0o1; - q = q_dirE[k]; - if (q>=c0o1 && q<=c1o1) - { - feq=c2o27* (drho+c3o1*( VeloXpur )+c9o2*( VeloX )*( VeloX )-cu_sq); - (D.f[dM00])[kw]=feq; - //(D.f[dM00])[kw]=zero; - } - - q = q_dirW[k]; - if (q>=c0o1 && q<=c1o1) - { - feq=c2o27* (drho+c3o1*(-VeloXpur )+c9o2*(-VeloX )*(-VeloX )-cu_sq); - (D.f[dP00])[ke]=feq; - //(D.f[dP00])[ke]=zero; - } - - q = q_dirN[k]; - if (q>=c0o1 && q<=c1o1) - { - feq=c2o27* (drho+c3o1*( VeloYpur )+c9o2*( VeloY )*( VeloY )-cu_sq); - (D.f[d0M0])[ks]=feq; - //(D.f[d0M0])[ks]=zero; - } - - q = q_dirS[k]; - if (q>=c0o1 && q<=c1o1) - { - feq=c2o27* (drho+c3o1*( -VeloYpur )+c9o2*( -VeloY )*( -VeloY )-cu_sq); - (D.f[d0P0])[kn]=feq; - //(D.f[d0P0])[kn]=zero; - } - - q = q_dirT[k]; - if (q>=c0o1 && q<=c1o1) - { - feq=c2o27* (drho+c3o1*( vx3)+c9o2*( vx3)*( vx3)-cu_sq); - (D.f[d00M])[kb]=feq; - //(D.f[d00M])[kb]=one; - } - - q = q_dirB[k]; - if (q>=c0o1 && q<=c1o1) - { - feq=c2o27* (drho+c3o1*( -vx3)+c9o2*( -vx3)*( -vx3)-cu_sq); - (D.f[d00P])[kt]=feq; - //(D.f[d00P])[kt]=zero; - } - - q = q_dirNE[k]; - if (q>=c0o1 && q<=c1o1) - { - feq=c1o54* (drho+c3o1*( VeloXpur+VeloYpur )+c9o2*( VeloX+VeloY )*( VeloX+VeloY )-cu_sq); - (D.f[dMM0])[ksw]=feq; - //(D.f[dMM0])[ksw]=zero; - } - - q = q_dirSW[k]; - if (q>=c0o1 && q<=c1o1) - { - feq=c1o54* (drho+c3o1*(-VeloXpur-VeloYpur )+c9o2*(-VeloX-VeloY )*(-VeloX-VeloY )-cu_sq); - (D.f[dPP0])[kne]=feq; - //(D.f[dPP0])[kne]=zero; - } - - q = q_dirSE[k]; - if (q>=c0o1 && q<=c1o1) - { - feq=c1o54* (drho+c3o1*( VeloXpur-VeloYpur )+c9o2*( VeloX-VeloY )*( VeloX-VeloY )-cu_sq); - (D.f[dMP0])[knw]=feq; - //(D.f[dMP0])[knw]=zero; - } - - q = q_dirNW[k]; - if (q>=c0o1 && q<=c1o1) - { - feq=c1o54* (drho+c3o1*(-VeloXpur+VeloYpur )+c9o2*(-VeloX+VeloY )*(-VeloX+VeloY )-cu_sq); - (D.f[dPM0])[kse]=feq; - //(D.f[dPM0])[kse]=zero; - } - - q = q_dirTE[k]; - if (q>=c0o1 && q<=c1o1) - { - feq=c1o54* (drho+c3o1*( VeloXpur +vx3)+c9o2*( VeloX +vx3)*( VeloX +vx3)-cu_sq); - (D.f[dM0M])[kbw]=feq; - //(D.f[dM0M])[kbw]=zero; - } - - q = q_dirBW[k]; - if (q>=c0o1 && q<=c1o1) - { - feq=c1o54* (drho+c3o1*(-VeloXpur -vx3)+c9o2*(-VeloX -vx3)*(-VeloX -vx3)-cu_sq); - (D.f[dP0P])[kte]=feq; - //(D.f[dP0P])[kte]=zero; - } - - q = q_dirBE[k]; - if (q>=c0o1 && q<=c1o1) - { - feq=c1o54* (drho+c3o1*( VeloXpur -vx3)+c9o2*( VeloX -vx3)*( VeloX -vx3)-cu_sq); - (D.f[dM0P])[ktw]=feq; - //(D.f[dM0P])[ktw]=zero; - } - - q = q_dirTW[k]; - if (q>=c0o1 && q<=c1o1) - { - feq=c1o54* (drho+c3o1*(-VeloXpur +vx3)+c9o2*(-VeloX +vx3)*(-VeloX +vx3)-cu_sq); - (D.f[dP0M])[kbe]=feq; - //(D.f[dP0M])[kbe]=zero; - } - - q = q_dirTN[k]; - if (q>=c0o1 && q<=c1o1) - { - feq=c1o54* (drho+c3o1*( VeloYpur+vx3)+c9o2*( VeloY+vx3)*( VeloY+vx3)-cu_sq); - (D.f[d0MM])[kbs]=feq; - //(D.f[d0MM])[kbs]=zero; - } - - q = q_dirBS[k]; - if (q>=c0o1 && q<=c1o1) - { - feq=c1o54* (drho+c3o1*( -VeloYpur-vx3)+c9o2*( -VeloY-vx3)*( -VeloY-vx3)-cu_sq); - (D.f[d0PP])[ktn]=feq; - //(D.f[d0PP])[ktn]=zero; - } - - q = q_dirBN[k]; - if (q>=c0o1 && q<=c1o1) - { - feq=c1o54* (drho+c3o1*( VeloYpur-vx3)+c9o2*( VeloY-vx3)*( VeloY-vx3)-cu_sq); - (D.f[d0MP])[kts]=feq; - //(D.f[d0MP])[kts]=zero; - } - - q = q_dirTS[k]; - if (q>=c0o1 && q<=c1o1) - { - feq=c1o54* (drho+c3o1*( -VeloYpur+vx3)+c9o2*( -VeloY+vx3)*( -VeloY+vx3)-cu_sq); - (D.f[d0PM])[kbn]=feq; - //(D.f[d0PM])[kbn]=zero; - } - - q = q_dirTNE[k]; - if (q>=c0o1 && q<=c1o1) - { - feq=c1o216*(drho+c3o1*( VeloXpur+VeloYpur+vx3)+c9o2*( VeloX+VeloY+vx3)*( VeloX+VeloY+vx3)-cu_sq); - (D.f[dMMM])[kbsw]=feq; - //(D.f[dMMM])[kbsw]=zero; - } - - q = q_dirBSW[k]; - if (q>=c0o1 && q<=c1o1) - { - feq=c1o216*(drho+c3o1*(-VeloXpur-VeloYpur-vx3)+c9o2*(-VeloX-VeloY-vx3)*(-VeloX-VeloY-vx3)-cu_sq); - (D.f[dPPP])[ktne]=feq; - //(D.f[dPPP])[ktne]=zero; - } - - q = q_dirBNE[k]; - if (q>=c0o1 && q<=c1o1) - { - feq=c1o216*(drho+c3o1*( VeloXpur+VeloYpur-vx3)+c9o2*( VeloX+VeloY-vx3)*( VeloX+VeloY-vx3)-cu_sq); - (D.f[dMMP])[ktsw]=feq; - //(D.f[dMMP])[ktsw]=zero; - } - - q = q_dirTSW[k]; - if (q>=c0o1 && q<=c1o1) - { - feq=c1o216*(drho+c3o1*(-VeloXpur-VeloYpur+vx3)+c9o2*(-VeloX-VeloY+vx3)*(-VeloX-VeloY+vx3)-cu_sq); - (D.f[dPPM])[kbne]=feq; - //(D.f[dPPM])[kbne]=zero; - } - - q = q_dirTSE[k]; - if (q>=c0o1 && q<=c1o1) - { - feq=c1o216*(drho+c3o1*( VeloXpur-VeloYpur+vx3)+c9o2*( VeloX-VeloY+vx3)*( VeloX-VeloY+vx3)-cu_sq); - (D.f[dMPM])[kbnw]=feq; - //(D.f[dMPM])[kbnw]=zero; - } - - q = q_dirBNW[k]; - if (q>=c0o1 && q<=c1o1) - { - feq=c1o216*(drho+c3o1*(-VeloXpur+VeloYpur-vx3)+c9o2*(-VeloX+VeloY-vx3)*(-VeloX+VeloY-vx3)-cu_sq); - (D.f[dPMP])[ktse]=feq; - //(D.f[dPMP])[ktse]=zero; - } - - q = q_dirBSE[k]; - if (q>=c0o1 && q<=c1o1) - { - feq=c1o216*(drho+c3o1*( VeloXpur-VeloYpur-vx3)+c9o2*( VeloX-VeloY-vx3)*( VeloX-VeloY-vx3)-cu_sq); - (D.f[dMPP])[ktnw]=feq; - //(D.f[dMPP])[ktnw]=zero; - } - - q = q_dirTNW[k]; - if (q>=c0o1 && q<=c1o1) - { - feq=c1o216*(drho+c3o1*(-VeloXpur+VeloYpur+vx3)+c9o2*(-VeloX+VeloY+vx3)*(-VeloX+VeloY+vx3)-cu_sq); - (D.f[dPMM])[kbse]=feq; - //(D.f[dPMM])[kbse]=zero; - } - - } + Distributions27 D; + if (isEvenTimestep==true) + { + D.f[dP00] = &DD[dP00 * numberOfLBnodes]; + D.f[dM00] = &DD[dM00 * numberOfLBnodes]; + D.f[d0P0] = &DD[d0P0 * numberOfLBnodes]; + D.f[d0M0] = &DD[d0M0 * numberOfLBnodes]; + D.f[d00P] = &DD[d00P * numberOfLBnodes]; + D.f[d00M] = &DD[d00M * numberOfLBnodes]; + D.f[dPP0] = &DD[dPP0 * numberOfLBnodes]; + D.f[dMM0] = &DD[dMM0 * numberOfLBnodes]; + D.f[dPM0] = &DD[dPM0 * numberOfLBnodes]; + D.f[dMP0] = &DD[dMP0 * numberOfLBnodes]; + D.f[dP0P] = &DD[dP0P * numberOfLBnodes]; + D.f[dM0M] = &DD[dM0M * numberOfLBnodes]; + D.f[dP0M] = &DD[dP0M * numberOfLBnodes]; + D.f[dM0P] = &DD[dM0P * numberOfLBnodes]; + D.f[d0PP] = &DD[d0PP * numberOfLBnodes]; + D.f[d0MM] = &DD[d0MM * numberOfLBnodes]; + D.f[d0PM] = &DD[d0PM * numberOfLBnodes]; + D.f[d0MP] = &DD[d0MP * numberOfLBnodes]; + D.f[d000] = &DD[d000 * numberOfLBnodes]; + D.f[dPPP] = &DD[dPPP * numberOfLBnodes]; + D.f[dMMP] = &DD[dMMP * numberOfLBnodes]; + D.f[dPMP] = &DD[dPMP * numberOfLBnodes]; + D.f[dMPP] = &DD[dMPP * numberOfLBnodes]; + D.f[dPPM] = &DD[dPPM * numberOfLBnodes]; + D.f[dMMM] = &DD[dMMM * numberOfLBnodes]; + D.f[dPMM] = &DD[dPMM * numberOfLBnodes]; + D.f[dMPM] = &DD[dMPM * numberOfLBnodes]; + } + else + { + D.f[dM00] = &DD[dP00 * numberOfLBnodes]; + D.f[dP00] = &DD[dM00 * numberOfLBnodes]; + D.f[d0M0] = &DD[d0P0 * numberOfLBnodes]; + D.f[d0P0] = &DD[d0M0 * numberOfLBnodes]; + D.f[d00M] = &DD[d00P * numberOfLBnodes]; + D.f[d00P] = &DD[d00M * numberOfLBnodes]; + D.f[dMM0] = &DD[dPP0 * numberOfLBnodes]; + D.f[dPP0] = &DD[dMM0 * numberOfLBnodes]; + D.f[dMP0] = &DD[dPM0 * numberOfLBnodes]; + D.f[dPM0] = &DD[dMP0 * numberOfLBnodes]; + D.f[dM0M] = &DD[dP0P * numberOfLBnodes]; + D.f[dP0P] = &DD[dM0M * numberOfLBnodes]; + D.f[dM0P] = &DD[dP0M * numberOfLBnodes]; + D.f[dP0M] = &DD[dM0P * numberOfLBnodes]; + D.f[d0MM] = &DD[d0PP * numberOfLBnodes]; + D.f[d0PP] = &DD[d0MM * numberOfLBnodes]; + D.f[d0MP] = &DD[d0PM * numberOfLBnodes]; + D.f[d0PM] = &DD[d0MP * numberOfLBnodes]; + D.f[d000] = &DD[d000 * numberOfLBnodes]; + D.f[dPPP] = &DD[dMMM * numberOfLBnodes]; + D.f[dMMP] = &DD[dPPM * numberOfLBnodes]; + D.f[dPMP] = &DD[dMPM * numberOfLBnodes]; + D.f[dMPP] = &DD[dPMM * numberOfLBnodes]; + D.f[dPPM] = &DD[dMMP * numberOfLBnodes]; + D.f[dMMM] = &DD[dPPP * numberOfLBnodes]; + D.f[dPMM] = &DD[dMPP * numberOfLBnodes]; + D.f[dMPM] = &DD[dPMP * numberOfLBnodes]; + } + //////////////////////////////////////////////////////////////////////////////// + const unsigned x = threadIdx.x; // Globaler x-Index + const unsigned y = blockIdx.x; // Globaler y-Index + const unsigned z = blockIdx.y; // Globaler z-Index + + const unsigned nx = blockDim.x; + const unsigned ny = gridDim.x; + + const unsigned k = nx*(ny*z + y) + x; + ////////////////////////////////////////////////////////////////////////// + + if(k<numberOfBCnodes) + { + //////////////////////////////////////////////////////////////////////////////// + real VeloX = cosf(Phi)*vx[k] - sinf(Phi)*vy[k]; + real VeloY = sinf(Phi)*vx[k] + cosf(Phi)*vy[k]; + //real VeloZ = vz[k]; //(16.0*(u0*2.0)*bbx*bby*(grid_nx-bbx)*(grid_ny-bby))/(grid_nx*grid_nx*grid_ny*grid_ny) + //////////////////////////////////////////////////////////////////////////////////// + //Ship + real coord0X = 281.125f;//7.5f; + real coord0Y = 388.125f;//7.5f; + real ux = - angularVelocity * (coordY[k_Q[k]] - coord0Y); + real uy = angularVelocity * (coordX[k_Q[k]] - coord0X); + real VeloXpur=VeloX; + real VeloYpur=VeloY; + VeloX-=ux; + VeloY-=uy; + //////////////////////////////////////////////////////////////////////////////// + real *q_dirE, *q_dirW, *q_dirN, *q_dirS, *q_dirT, *q_dirB, + *q_dirNE, *q_dirSW, *q_dirSE, *q_dirNW, *q_dirTE, *q_dirBW, + *q_dirBE, *q_dirTW, *q_dirTN, *q_dirBS, *q_dirBN, *q_dirTS, + *q_dirTNE, *q_dirTSW, *q_dirTSE, *q_dirTNW, *q_dirBNE, *q_dirBSW, + *q_dirBSE, *q_dirBNW; + q_dirE = &QQ[dP00 * numberOfBCnodes]; + q_dirW = &QQ[dM00 * numberOfBCnodes]; + q_dirN = &QQ[d0P0 * numberOfBCnodes]; + q_dirS = &QQ[d0M0 * numberOfBCnodes]; + q_dirT = &QQ[d00P * numberOfBCnodes]; + q_dirB = &QQ[d00M * numberOfBCnodes]; + q_dirNE = &QQ[dPP0 * numberOfBCnodes]; + q_dirSW = &QQ[dMM0 * numberOfBCnodes]; + q_dirSE = &QQ[dPM0 * numberOfBCnodes]; + q_dirNW = &QQ[dMP0 * numberOfBCnodes]; + q_dirTE = &QQ[dP0P * numberOfBCnodes]; + q_dirBW = &QQ[dM0M * numberOfBCnodes]; + q_dirBE = &QQ[dP0M * numberOfBCnodes]; + q_dirTW = &QQ[dM0P * numberOfBCnodes]; + q_dirTN = &QQ[d0PP * numberOfBCnodes]; + q_dirBS = &QQ[d0MM * numberOfBCnodes]; + q_dirBN = &QQ[d0PM * numberOfBCnodes]; + q_dirTS = &QQ[d0MP * numberOfBCnodes]; + q_dirTNE = &QQ[dPPP * numberOfBCnodes]; + q_dirTSW = &QQ[dMMP * numberOfBCnodes]; + q_dirTSE = &QQ[dPMP * numberOfBCnodes]; + q_dirTNW = &QQ[dMPP * numberOfBCnodes]; + q_dirBNE = &QQ[dPPM * numberOfBCnodes]; + q_dirBSW = &QQ[dMMM * numberOfBCnodes]; + q_dirBSE = &QQ[dPMM * numberOfBCnodes]; + q_dirBNW = &QQ[dMPM * numberOfBCnodes]; + //////////////////////////////////////////////////////////////////////////////// + //index + unsigned int KQK = k_Q[k]; + //unsigned int kzero= KQK; + unsigned int ke = KQK; + unsigned int kw = neighborX[KQK]; + unsigned int kn = KQK; + unsigned int ks = neighborY[KQK]; + unsigned int kt = KQK; + unsigned int kb = neighborZ[KQK]; + unsigned int ksw = neighborY[kw]; + unsigned int kne = KQK; + unsigned int kse = ks; + unsigned int knw = kw; + unsigned int kbw = neighborZ[kw]; + unsigned int kte = KQK; + unsigned int kbe = kb; + unsigned int ktw = kw; + unsigned int kbs = neighborZ[ks]; + unsigned int ktn = KQK; + unsigned int kbn = kb; + unsigned int kts = ks; + unsigned int ktse = ks; + unsigned int kbnw = kbw; + unsigned int ktnw = kw; + unsigned int kbse = kbs; + unsigned int ktsw = ksw; + unsigned int kbne = kb; + unsigned int ktne = KQK; + unsigned int kbsw = neighborZ[ksw]; + //unsigned int nxny = nx*ny; + //unsigned int kzero= KQK; + //unsigned int ke = KQK; + //unsigned int kw = KQK + 1; + //unsigned int kn = KQK; + //unsigned int ks = KQK + nx; + //unsigned int kt = KQK; + //unsigned int kb = KQK + nxny; + //unsigned int ksw = KQK + nx + 1; + //unsigned int kne = KQK; + //unsigned int kse = KQK + nx; + //unsigned int knw = KQK + 1; + //unsigned int kbw = KQK + nxny + 1; + //unsigned int kte = KQK; + //unsigned int kbe = KQK + nxny; + //unsigned int ktw = KQK + 1; + //unsigned int kbs = KQK + nxny + nx; + //unsigned int ktn = KQK; + //unsigned int kbn = KQK + nxny; + //unsigned int kts = KQK + nx; + //unsigned int ktse = KQK + nx; + //unsigned int kbnw = KQK + nxny + 1; + //unsigned int ktnw = KQK + 1; + //unsigned int kbse = KQK + nxny + nx; + //unsigned int ktsw = KQK + nx + 1; + //unsigned int kbne = KQK + nxny; + //unsigned int ktne = KQK; + //unsigned int kbsw = KQK + nxny + nx + 1; + //////////////////////////////////////////////////////////////////////////////// + //real f_E, f_W, f_N, f_S, f_T, f_B, f_NE, f_SW, f_SE, f_NW, f_TE, f_BW, f_BE, + // f_TW, f_TN, f_BS, f_BN, f_TS, f_TNE, f_TSW, f_TSE, f_TNW, f_BNE, f_BSW, f_BSE, f_BNW; + + //f_W = (D.f[dP00])[ke ]; + //f_E = (D.f[dM00])[kw ]; + //f_S = (D.f[d0P0])[kn ]; + //f_N = (D.f[d0M0])[ks ]; + //f_B = (D.f[d00P])[kt ]; + //f_T = (D.f[d00M])[kb ]; + //f_SW = (D.f[dPP0])[kne ]; + //f_NE = (D.f[dMM0])[ksw ]; + //f_NW = (D.f[dPM0])[kse ]; + //f_SE = (D.f[dMP0])[knw ]; + //f_BW = (D.f[dP0P])[kte ]; + //f_TE = (D.f[dM0M])[kbw ]; + //f_TW = (D.f[dP0M])[kbe ]; + //f_BE = (D.f[dM0P])[ktw ]; + //f_BS = (D.f[d0PP])[ktn ]; + //f_TN = (D.f[d0MM])[kbs ]; + //f_TS = (D.f[d0PM])[kbn ]; + //f_BN = (D.f[d0MP])[kts ]; + //f_BSW = (D.f[dPPP])[ktne ]; + //f_BNE = (D.f[dMMP])[ktsw ]; + //f_BNW = (D.f[dPMP])[ktse ]; + //f_BSE = (D.f[dMPP])[ktnw ]; + //f_TSW = (D.f[dPPM])[kbne ]; + //f_TNE = (D.f[dMMM])[kbsw ]; + //f_TNW = (D.f[dPMM])[kbse ]; + //f_TSE = (D.f[dMPM])[kbnw ]; + //////////////////////////////////////////////////////////////////////////////// + real /*vx1, vx2,*/ vx3, drho, feq, q, cu_sq; + //drho = f_TSE + f_TNW + f_TNE + f_TSW + f_BSE + f_BNW + f_BNE + f_BSW + + // f_BN + f_TS + f_TN + f_BS + f_BE + f_TW + f_TE + f_BW + f_SE + f_NW + f_NE + f_SW + + // f_T + f_B + f_N + f_S + f_E + f_W + ((D.f[d000])[kzero]); + + //vx1 = ((f_TSE - f_BNW) - (f_TNW - f_BSE)) + ((f_TNE - f_BSW) - (f_TSW - f_BNE)) + + // ((f_BE - f_TW) + (f_TE - f_BW)) + ((f_SE - f_NW) + (f_NE - f_SW)) + + // (f_E - f_W); + + + //vx2 = (-(f_TSE - f_BNW) + (f_TNW - f_BSE)) + ((f_TNE - f_BSW) - (f_TSW - f_BNE)) + + // ((f_BN - f_TS) + (f_TN - f_BS)) + (-(f_SE - f_NW) + (f_NE - f_SW)) + + // (f_N - f_S); + + //vx3 = ((f_TSE - f_BNW) + (f_TNW - f_BSE)) + ((f_TNE - f_BSW) + (f_TSW - f_BNE)) + + // (-(f_BN - f_TS) + (f_TN - f_BS)) + ((f_TE - f_BW) - (f_BE - f_TW)) + + // (f_T - f_B); + + //cu_sq=c3o2*(vx1*vx1+vx2*vx2+vx3*vx3); + + ////////////////////////////////////////////////////////////////////////// + if (isEvenTimestep==false) + { + D.f[dP00] = &DD[dP00 * numberOfLBnodes]; + D.f[dM00] = &DD[dM00 * numberOfLBnodes]; + D.f[d0P0] = &DD[d0P0 * numberOfLBnodes]; + D.f[d0M0] = &DD[d0M0 * numberOfLBnodes]; + D.f[d00P] = &DD[d00P * numberOfLBnodes]; + D.f[d00M] = &DD[d00M * numberOfLBnodes]; + D.f[dPP0] = &DD[dPP0 * numberOfLBnodes]; + D.f[dMM0] = &DD[dMM0 * numberOfLBnodes]; + D.f[dPM0] = &DD[dPM0 * numberOfLBnodes]; + D.f[dMP0] = &DD[dMP0 * numberOfLBnodes]; + D.f[dP0P] = &DD[dP0P * numberOfLBnodes]; + D.f[dM0M] = &DD[dM0M * numberOfLBnodes]; + D.f[dP0M] = &DD[dP0M * numberOfLBnodes]; + D.f[dM0P] = &DD[dM0P * numberOfLBnodes]; + D.f[d0PP] = &DD[d0PP * numberOfLBnodes]; + D.f[d0MM] = &DD[d0MM * numberOfLBnodes]; + D.f[d0PM] = &DD[d0PM * numberOfLBnodes]; + D.f[d0MP] = &DD[d0MP * numberOfLBnodes]; + D.f[d000] = &DD[d000 * numberOfLBnodes]; + D.f[dPPP] = &DD[dPPP * numberOfLBnodes]; + D.f[dMMP] = &DD[dMMP * numberOfLBnodes]; + D.f[dPMP] = &DD[dPMP * numberOfLBnodes]; + D.f[dMPP] = &DD[dMPP * numberOfLBnodes]; + D.f[dPPM] = &DD[dPPM * numberOfLBnodes]; + D.f[dMMM] = &DD[dMMM * numberOfLBnodes]; + D.f[dPMM] = &DD[dPMM * numberOfLBnodes]; + D.f[dMPM] = &DD[dMPM * numberOfLBnodes]; + } + else + { + D.f[dM00] = &DD[dP00 * numberOfLBnodes]; + D.f[dP00] = &DD[dM00 * numberOfLBnodes]; + D.f[d0M0] = &DD[d0P0 * numberOfLBnodes]; + D.f[d0P0] = &DD[d0M0 * numberOfLBnodes]; + D.f[d00M] = &DD[d00P * numberOfLBnodes]; + D.f[d00P] = &DD[d00M * numberOfLBnodes]; + D.f[dMM0] = &DD[dPP0 * numberOfLBnodes]; + D.f[dPP0] = &DD[dMM0 * numberOfLBnodes]; + D.f[dMP0] = &DD[dPM0 * numberOfLBnodes]; + D.f[dPM0] = &DD[dMP0 * numberOfLBnodes]; + D.f[dM0M] = &DD[dP0P * numberOfLBnodes]; + D.f[dP0P] = &DD[dM0M * numberOfLBnodes]; + D.f[dM0P] = &DD[dP0M * numberOfLBnodes]; + D.f[dP0M] = &DD[dM0P * numberOfLBnodes]; + D.f[d0MM] = &DD[d0PP * numberOfLBnodes]; + D.f[d0PP] = &DD[d0MM * numberOfLBnodes]; + D.f[d0MP] = &DD[d0PM * numberOfLBnodes]; + D.f[d0PM] = &DD[d0MP * numberOfLBnodes]; + D.f[d000] = &DD[d000 * numberOfLBnodes]; + D.f[dPPP] = &DD[dMMM * numberOfLBnodes]; + D.f[dMMP] = &DD[dPPM * numberOfLBnodes]; + D.f[dPMP] = &DD[dMPM * numberOfLBnodes]; + D.f[dMPP] = &DD[dPMM * numberOfLBnodes]; + D.f[dPPM] = &DD[dMMP * numberOfLBnodes]; + D.f[dMMM] = &DD[dPPP * numberOfLBnodes]; + D.f[dPMM] = &DD[dMPP * numberOfLBnodes]; + D.f[dMPM] = &DD[dPMP * numberOfLBnodes]; + } + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //Test + //(D.f[d000])[k]=c1o10; + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + //ToDo anders Klammern + + //q = q_dirE[k]; + //if (q>=zero && q<=one) + //{ + // feq=c2over27* (drho/*+three*( vx1 )*/+c9over2*( vx1 )*( vx1 )-cu_sq); + // (D.f[dM00])[kw]=(one-q)/(one+q)*(f_E-f_W+(f_E+f_W-two*feq*om1)/(one-om1))*c1o2+(q*(f_E+f_W)-six*c2over27*( VeloX ))/(one+q); + // //(D.f[dM00])[kw]=zero; + //} + + //q = q_dirW[k]; + //if (q>=zero && q<=one) + //{ + // feq=c2over27* (drho/*+three*(-vx1 )*/+c9over2*(-vx1 )*(-vx1 )-cu_sq); + // (D.f[dP00])[ke]=(one-q)/(one+q)*(f_W-f_E+(f_W+f_E-two*feq*om1)/(one-om1))*c1o2+(q*(f_W+f_E)-six*c2over27*(-VeloX ))/(one+q); + // //(D.f[dP00])[ke]=zero; + //} + + //q = q_dirN[k]; + //if (q>=zero && q<=one) + //{ + // feq=c2over27* (drho/*+three*( vx2 )*/+c9over2*( vx2 )*( vx2 )-cu_sq); + // (D.f[d0M0])[ks]=(one-q)/(one+q)*(f_N-f_S+(f_N+f_S-two*feq*om1)/(one-om1))*c1o2+(q*(f_N+f_S)-six*c2over27*( VeloY ))/(one+q); + // //(D.f[d0M0])[ks]=zero; + //} + + //q = q_dirS[k]; + //if (q>=zero && q<=one) + //{ + // feq=c2over27* (drho/*+three*( -vx2 )*/+c9over2*( -vx2 )*( -vx2 )-cu_sq); + // (D.f[d0P0])[kn]=(one-q)/(one+q)*(f_S-f_N+(f_S+f_N-two*feq*om1)/(one-om1))*c1o2+(q*(f_S+f_N)-six*c2over27*(-VeloY ))/(one+q); + // //(D.f[d0P0])[kn]=zero; + //} + + //q = q_dirT[k]; + //if (q>=zero && q<=one) + //{ + // feq=c2over27* (drho/*+three*( vx3)*/+c9over2*( vx3)*( vx3)-cu_sq); + // (D.f[d00M])[kb]=(one-q)/(one+q)*(f_T-f_B+(f_T+f_B-two*feq*om1)/(one-om1))*c1o2+(q*(f_T+f_B)-six*c2over27*( VeloZ ))/(one+q); + // //(D.f[d00M])[kb]=one; + //} + + //q = q_dirB[k]; + //if (q>=zero && q<=one) + //{ + // feq=c2over27* (drho/*+three*( -vx3)*/+c9over2*( -vx3)*( -vx3)-cu_sq); + // (D.f[d00P])[kt]=(one-q)/(one+q)*(f_B-f_T+(f_B+f_T-two*feq*om1)/(one-om1))*c1o2+(q*(f_B+f_T)-six*c2over27*(-VeloZ ))/(one+q); + // //(D.f[d00P])[kt]=zero; + //} + + //q = q_dirNE[k]; + //if (q>=zero && q<=one) + //{ + // feq=c1over54* (drho/*+three*( vx1+vx2 )*/+c9over2*( vx1+vx2 )*( vx1+vx2 )-cu_sq); + // (D.f[dMM0])[ksw]=(one-q)/(one+q)*(f_NE-f_SW+(f_NE+f_SW-two*feq*om1)/(one-om1))*c1o2+(q*(f_NE+f_SW)-six*c1over54*(VeloX+VeloY))/(one+q); + // //(D.f[dMM0])[ksw]=zero; + //} + + //q = q_dirSW[k]; + //if (q>=zero && q<=one) + //{ + // feq=c1over54* (drho/*+three*(-vx1-vx2 )*/+c9over2*(-vx1-vx2 )*(-vx1-vx2 )-cu_sq); + // (D.f[dPP0])[kne]=(one-q)/(one+q)*(f_SW-f_NE+(f_SW+f_NE-two*feq*om1)/(one-om1))*c1o2+(q*(f_SW+f_NE)-six*c1over54*(-VeloX-VeloY))/(one+q); + // //(D.f[dPP0])[kne]=zero; + //} + + //q = q_dirSE[k]; + //if (q>=zero && q<=one) + //{ + // feq=c1over54* (drho/*+three*( vx1-vx2 )*/+c9over2*( vx1-vx2 )*( vx1-vx2 )-cu_sq); + // (D.f[dMP0])[knw]=(one-q)/(one+q)*(f_SE-f_NW+(f_SE+f_NW-two*feq*om1)/(one-om1))*c1o2+(q*(f_SE+f_NW)-six*c1over54*( VeloX-VeloY))/(one+q); + // //(D.f[dMP0])[knw]=zero; + //} + + //q = q_dirNW[k]; + //if (q>=zero && q<=one) + //{ + // feq=c1over54* (drho/*+three*(-vx1+vx2 )*/+c9over2*(-vx1+vx2 )*(-vx1+vx2 )-cu_sq); + // (D.f[dPM0])[kse]=(one-q)/(one+q)*(f_NW-f_SE+(f_NW+f_SE-two*feq*om1)/(one-om1))*c1o2+(q*(f_NW+f_SE)-six*c1over54*(-VeloX+VeloY))/(one+q); + // //(D.f[dPM0])[kse]=zero; + //} + + //q = q_dirTE[k]; + //if (q>=zero && q<=one) + //{ + // feq=c1over54* (drho/*+three*( vx1 +vx3)*/+c9over2*( vx1 +vx3)*( vx1 +vx3)-cu_sq); + // (D.f[dM0M])[kbw]=(one-q)/(one+q)*(f_TE-f_BW+(f_TE+f_BW-two*feq*om1)/(one-om1))*c1o2+(q*(f_TE+f_BW)-six*c1over54*( VeloX+VeloZ))/(one+q); + // //(D.f[dM0M])[kbw]=zero; + //} + + //q = q_dirBW[k]; + //if (q>=zero && q<=one) + //{ + // feq=c1over54* (drho/*+three*(-vx1 -vx3)*/+c9over2*(-vx1 -vx3)*(-vx1 -vx3)-cu_sq); + // (D.f[dP0P])[kte]=(one-q)/(one+q)*(f_BW-f_TE+(f_BW+f_TE-two*feq*om1)/(one-om1))*c1o2+(q*(f_BW+f_TE)-six*c1over54*(-VeloX-VeloZ))/(one+q); + // //(D.f[dP0P])[kte]=zero; + //} + + //q = q_dirBE[k]; + //if (q>=zero && q<=one) + //{ + // feq=c1over54* (drho/*+three*( vx1 -vx3)*/+c9over2*( vx1 -vx3)*( vx1 -vx3)-cu_sq); + // (D.f[dM0P])[ktw]=(one-q)/(one+q)*(f_BE-f_TW+(f_BE+f_TW-two*feq*om1)/(one-om1))*c1o2+(q*(f_BE+f_TW)-six*c1over54*( VeloX-VeloZ))/(one+q); + // //(D.f[dM0P])[ktw]=zero; + //} + + //q = q_dirTW[k]; + //if (q>=zero && q<=one) + //{ + // feq=c1over54* (drho/*+three*(-vx1 +vx3)*/+c9over2*(-vx1 +vx3)*(-vx1 +vx3)-cu_sq); + // (D.f[dP0M])[kbe]=(one-q)/(one+q)*(f_TW-f_BE+(f_TW+f_BE-two*feq*om1)/(one-om1))*c1o2+(q*(f_TW+f_BE)-six*c1over54*(-VeloX+VeloZ))/(one+q); + // //(D.f[dP0M])[kbe]=zero; + //} + + //q = q_dirTN[k]; + //if (q>=zero && q<=one) + //{ + // feq=c1over54* (drho/*+three*( vx2+vx3)*/+c9over2*( vx2+vx3)*( vx2+vx3)-cu_sq); + // (D.f[d0MM])[kbs]=(one-q)/(one+q)*(f_TN-f_BS+(f_TN+f_BS-two*feq*om1)/(one-om1))*c1o2+(q*(f_TN+f_BS)-six*c1over54*( VeloY+VeloZ))/(one+q); + // //(D.f[d0MM])[kbs]=zero; + //} + + //q = q_dirBS[k]; + //if (q>=zero && q<=one) + //{ + // feq=c1over54* (drho/*+three*( -vx2-vx3)*/+c9over2*( -vx2-vx3)*( -vx2-vx3)-cu_sq); + // (D.f[d0PP])[ktn]=(one-q)/(one+q)*(f_BS-f_TN+(f_BS+f_TN-two*feq*om1)/(one-om1))*c1o2+(q*(f_BS+f_TN)-six*c1over54*( -VeloY-VeloZ))/(one+q); + // //(D.f[d0PP])[ktn]=zero; + //} + + //q = q_dirBN[k]; + //if (q>=zero && q<=one) + //{ + // feq=c1over54* (drho/*+three*( vx2-vx3)*/+c9over2*( vx2-vx3)*( vx2-vx3)-cu_sq); + // (D.f[d0MP])[kts]=(one-q)/(one+q)*(f_BN-f_TS+(f_BN+f_TS-two*feq*om1)/(one-om1))*c1o2+(q*(f_BN+f_TS)-six*c1over54*( VeloY-VeloZ))/(one+q); + // //(D.f[d0MP])[kts]=zero; + //} + + //q = q_dirTS[k]; + //if (q>=zero && q<=one) + //{ + // feq=c1over54* (drho/*+three*( -vx2+vx3)*/+c9over2*( -vx2+vx3)*( -vx2+vx3)-cu_sq); + // (D.f[d0PM])[kbn]=(one-q)/(one+q)*(f_TS-f_BN+(f_TS+f_BN-two*feq*om1)/(one-om1))*c1o2+(q*(f_TS+f_BN)-six*c1over54*( -VeloY+VeloZ))/(one+q); + // //(D.f[d0PM])[kbn]=zero; + //} + + //q = q_dirTNE[k]; + //if (q>=zero && q<=one) + //{ + // feq=c1over216*(drho/*+three*( vx1+vx2+vx3)*/+c9over2*( vx1+vx2+vx3)*( vx1+vx2+vx3)-cu_sq); + // (D.f[dMMM])[kbsw]=(one-q)/(one+q)*(f_TNE-f_BSW+(f_TNE+f_BSW-two*feq*om1)/(one-om1))*c1o2+(q*(f_TNE+f_BSW)-six*c1over216*( VeloX+VeloY+VeloZ))/(one+q); + // //(D.f[dMMM])[kbsw]=zero; + //} + + //q = q_dirBSW[k]; + //if (q>=zero && q<=one) + //{ + // feq=c1over216*(drho/*+three*(-vx1-vx2-vx3)*/+c9over2*(-vx1-vx2-vx3)*(-vx1-vx2-vx3)-cu_sq); + // (D.f[dPPP])[ktne]=(one-q)/(one+q)*(f_BSW-f_TNE+(f_BSW+f_TNE-two*feq*om1)/(one-om1))*c1o2+(q*(f_BSW+f_TNE)-six*c1over216*(-VeloX-VeloY-VeloZ))/(one+q); + // //(D.f[dPPP])[ktne]=zero; + //} + + //q = q_dirBNE[k]; + //if (q>=zero && q<=one) + //{ + // feq=c1over216*(drho/*+three*( vx1+vx2-vx3)*/+c9over2*( vx1+vx2-vx3)*( vx1+vx2-vx3)-cu_sq); + // (D.f[dMMP])[ktsw]=(one-q)/(one+q)*(f_BNE-f_TSW+(f_BNE+f_TSW-two*feq*om1)/(one-om1))*c1o2+(q*(f_BNE+f_TSW)-six*c1over216*( VeloX+VeloY-VeloZ))/(one+q); + // //(D.f[dMMP])[ktsw]=zero; + //} + + //q = q_dirTSW[k]; + //if (q>=zero && q<=one) + //{ + // feq=c1over216*(drho/*+three*(-vx1-vx2+vx3)*/+c9over2*(-vx1-vx2+vx3)*(-vx1-vx2+vx3)-cu_sq); + // (D.f[dPPM])[kbne]=(one-q)/(one+q)*(f_TSW-f_BNE+(f_TSW+f_BNE-two*feq*om1)/(one-om1))*c1o2+(q*(f_TSW+f_BNE)-six*c1over216*(-VeloX-VeloY+VeloZ))/(one+q); + // //(D.f[dPPM])[kbne]=zero; + //} + + //q = q_dirTSE[k]; + //if (q>=zero && q<=one) + //{ + // feq=c1over216*(drho/*+three*( vx1-vx2+vx3)*/+c9over2*( vx1-vx2+vx3)*( vx1-vx2+vx3)-cu_sq); + // (D.f[dMPM])[kbnw]=(one-q)/(one+q)*(f_TSE-f_BNW+(f_TSE+f_BNW-two*feq*om1)/(one-om1))*c1o2+(q*(f_TSE+f_BNW)-six*c1over216*( VeloX-VeloY+VeloZ))/(one+q); + // //(D.f[dMPM])[kbnw]=zero; + //} + + //q = q_dirBNW[k]; + //if (q>=zero && q<=one) + //{ + // feq=c1over216*(drho/*+three*(-vx1+vx2-vx3)*/+c9over2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3)-cu_sq); + // (D.f[dPMP])[ktse]=(one-q)/(one+q)*(f_BNW-f_TSE+(f_BNW+f_TSE-two*feq*om1)/(one-om1))*c1o2+(q*(f_BNW+f_TSE)-six*c1over216*(-VeloX+VeloY-VeloZ))/(one+q); + // //(D.f[dPMP])[ktse]=zero; + //} + + //q = q_dirBSE[k]; + //if (q>=zero && q<=one) + //{ + // feq=c1over216*(drho/*+three*( vx1-vx2-vx3)*/+c9over2*( vx1-vx2-vx3)*( vx1-vx2-vx3)-cu_sq); + // (D.f[dMPP])[ktnw]=(one-q)/(one+q)*(f_BSE-f_TNW+(f_BSE+f_TNW-two*feq*om1)/(one-om1))*c1o2+(q*(f_BSE+f_TNW)-six*c1over216*( VeloX-VeloY-VeloZ))/(one+q); + // //(D.f[dMPP])[ktnw]=zero; + //} + + //q = q_dirTNW[k]; + //if (q>=zero && q<=one) + //{ + // feq=c1over216*(drho/*+three*(-vx1+vx2+vx3)*/+c9over2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cu_sq); + // (D.f[dPMM])[kbse]=(one-q)/(one+q)*(f_TNW-f_BSE+(f_TNW+f_BSE-two*feq*om1)/(one-om1))*c1o2+(q*(f_TNW+f_BSE)-six*c1over216*(-VeloX+VeloY+VeloZ))/(one+q); + // //(D.f[dPMM])[kbse]=zero; + //} + + ///////// equilibrium BC + cu_sq=c3o2*(VeloX*VeloX +VeloY*VeloY); + VeloXpur*=-c1o1; + VeloYpur*=-c1o1; + vx3=c0o1; + drho=c0o1; + q = q_dirE[k]; + if (q>=c0o1 && q<=c1o1) + { + feq=c2o27* (drho+c3o1*( VeloXpur )+c9o2*( VeloX )*( VeloX )-cu_sq); + (D.f[dM00])[kw]=feq; + //(D.f[dM00])[kw]=zero; + } + + q = q_dirW[k]; + if (q>=c0o1 && q<=c1o1) + { + feq=c2o27* (drho+c3o1*(-VeloXpur )+c9o2*(-VeloX )*(-VeloX )-cu_sq); + (D.f[dP00])[ke]=feq; + //(D.f[dP00])[ke]=zero; + } + + q = q_dirN[k]; + if (q>=c0o1 && q<=c1o1) + { + feq=c2o27* (drho+c3o1*( VeloYpur )+c9o2*( VeloY )*( VeloY )-cu_sq); + (D.f[d0M0])[ks]=feq; + //(D.f[d0M0])[ks]=zero; + } + + q = q_dirS[k]; + if (q>=c0o1 && q<=c1o1) + { + feq=c2o27* (drho+c3o1*( -VeloYpur )+c9o2*( -VeloY )*( -VeloY )-cu_sq); + (D.f[d0P0])[kn]=feq; + //(D.f[d0P0])[kn]=zero; + } + + q = q_dirT[k]; + if (q>=c0o1 && q<=c1o1) + { + feq=c2o27* (drho+c3o1*( vx3)+c9o2*( vx3)*( vx3)-cu_sq); + (D.f[d00M])[kb]=feq; + //(D.f[d00M])[kb]=one; + } + + q = q_dirB[k]; + if (q>=c0o1 && q<=c1o1) + { + feq=c2o27* (drho+c3o1*( -vx3)+c9o2*( -vx3)*( -vx3)-cu_sq); + (D.f[d00P])[kt]=feq; + //(D.f[d00P])[kt]=zero; + } + + q = q_dirNE[k]; + if (q>=c0o1 && q<=c1o1) + { + feq=c1o54* (drho+c3o1*( VeloXpur+VeloYpur )+c9o2*( VeloX+VeloY )*( VeloX+VeloY )-cu_sq); + (D.f[dMM0])[ksw]=feq; + //(D.f[dMM0])[ksw]=zero; + } + + q = q_dirSW[k]; + if (q>=c0o1 && q<=c1o1) + { + feq=c1o54* (drho+c3o1*(-VeloXpur-VeloYpur )+c9o2*(-VeloX-VeloY )*(-VeloX-VeloY )-cu_sq); + (D.f[dPP0])[kne]=feq; + //(D.f[dPP0])[kne]=zero; + } + + q = q_dirSE[k]; + if (q>=c0o1 && q<=c1o1) + { + feq=c1o54* (drho+c3o1*( VeloXpur-VeloYpur )+c9o2*( VeloX-VeloY )*( VeloX-VeloY )-cu_sq); + (D.f[dMP0])[knw]=feq; + //(D.f[dMP0])[knw]=zero; + } + + q = q_dirNW[k]; + if (q>=c0o1 && q<=c1o1) + { + feq=c1o54* (drho+c3o1*(-VeloXpur+VeloYpur )+c9o2*(-VeloX+VeloY )*(-VeloX+VeloY )-cu_sq); + (D.f[dPM0])[kse]=feq; + //(D.f[dPM0])[kse]=zero; + } + + q = q_dirTE[k]; + if (q>=c0o1 && q<=c1o1) + { + feq=c1o54* (drho+c3o1*( VeloXpur +vx3)+c9o2*( VeloX +vx3)*( VeloX +vx3)-cu_sq); + (D.f[dM0M])[kbw]=feq; + //(D.f[dM0M])[kbw]=zero; + } + + q = q_dirBW[k]; + if (q>=c0o1 && q<=c1o1) + { + feq=c1o54* (drho+c3o1*(-VeloXpur -vx3)+c9o2*(-VeloX -vx3)*(-VeloX -vx3)-cu_sq); + (D.f[dP0P])[kte]=feq; + //(D.f[dP0P])[kte]=zero; + } + + q = q_dirBE[k]; + if (q>=c0o1 && q<=c1o1) + { + feq=c1o54* (drho+c3o1*( VeloXpur -vx3)+c9o2*( VeloX -vx3)*( VeloX -vx3)-cu_sq); + (D.f[dM0P])[ktw]=feq; + //(D.f[dM0P])[ktw]=zero; + } + + q = q_dirTW[k]; + if (q>=c0o1 && q<=c1o1) + { + feq=c1o54* (drho+c3o1*(-VeloXpur +vx3)+c9o2*(-VeloX +vx3)*(-VeloX +vx3)-cu_sq); + (D.f[dP0M])[kbe]=feq; + //(D.f[dP0M])[kbe]=zero; + } + + q = q_dirTN[k]; + if (q>=c0o1 && q<=c1o1) + { + feq=c1o54* (drho+c3o1*( VeloYpur+vx3)+c9o2*( VeloY+vx3)*( VeloY+vx3)-cu_sq); + (D.f[d0MM])[kbs]=feq; + //(D.f[d0MM])[kbs]=zero; + } + + q = q_dirBS[k]; + if (q>=c0o1 && q<=c1o1) + { + feq=c1o54* (drho+c3o1*( -VeloYpur-vx3)+c9o2*( -VeloY-vx3)*( -VeloY-vx3)-cu_sq); + (D.f[d0PP])[ktn]=feq; + //(D.f[d0PP])[ktn]=zero; + } + + q = q_dirBN[k]; + if (q>=c0o1 && q<=c1o1) + { + feq=c1o54* (drho+c3o1*( VeloYpur-vx3)+c9o2*( VeloY-vx3)*( VeloY-vx3)-cu_sq); + (D.f[d0MP])[kts]=feq; + //(D.f[d0MP])[kts]=zero; + } + + q = q_dirTS[k]; + if (q>=c0o1 && q<=c1o1) + { + feq=c1o54* (drho+c3o1*( -VeloYpur+vx3)+c9o2*( -VeloY+vx3)*( -VeloY+vx3)-cu_sq); + (D.f[d0PM])[kbn]=feq; + //(D.f[d0PM])[kbn]=zero; + } + + q = q_dirTNE[k]; + if (q>=c0o1 && q<=c1o1) + { + feq=c1o216*(drho+c3o1*( VeloXpur+VeloYpur+vx3)+c9o2*( VeloX+VeloY+vx3)*( VeloX+VeloY+vx3)-cu_sq); + (D.f[dMMM])[kbsw]=feq; + //(D.f[dMMM])[kbsw]=zero; + } + + q = q_dirBSW[k]; + if (q>=c0o1 && q<=c1o1) + { + feq=c1o216*(drho+c3o1*(-VeloXpur-VeloYpur-vx3)+c9o2*(-VeloX-VeloY-vx3)*(-VeloX-VeloY-vx3)-cu_sq); + (D.f[dPPP])[ktne]=feq; + //(D.f[dPPP])[ktne]=zero; + } + + q = q_dirBNE[k]; + if (q>=c0o1 && q<=c1o1) + { + feq=c1o216*(drho+c3o1*( VeloXpur+VeloYpur-vx3)+c9o2*( VeloX+VeloY-vx3)*( VeloX+VeloY-vx3)-cu_sq); + (D.f[dMMP])[ktsw]=feq; + //(D.f[dMMP])[ktsw]=zero; + } + + q = q_dirTSW[k]; + if (q>=c0o1 && q<=c1o1) + { + feq=c1o216*(drho+c3o1*(-VeloXpur-VeloYpur+vx3)+c9o2*(-VeloX-VeloY+vx3)*(-VeloX-VeloY+vx3)-cu_sq); + (D.f[dPPM])[kbne]=feq; + //(D.f[dPPM])[kbne]=zero; + } + + q = q_dirTSE[k]; + if (q>=c0o1 && q<=c1o1) + { + feq=c1o216*(drho+c3o1*( VeloXpur-VeloYpur+vx3)+c9o2*( VeloX-VeloY+vx3)*( VeloX-VeloY+vx3)-cu_sq); + (D.f[dMPM])[kbnw]=feq; + //(D.f[dMPM])[kbnw]=zero; + } + + q = q_dirBNW[k]; + if (q>=c0o1 && q<=c1o1) + { + feq=c1o216*(drho+c3o1*(-VeloXpur+VeloYpur-vx3)+c9o2*(-VeloX+VeloY-vx3)*(-VeloX+VeloY-vx3)-cu_sq); + (D.f[dPMP])[ktse]=feq; + //(D.f[dPMP])[ktse]=zero; + } + + q = q_dirBSE[k]; + if (q>=c0o1 && q<=c1o1) + { + feq=c1o216*(drho+c3o1*( VeloXpur-VeloYpur-vx3)+c9o2*( VeloX-VeloY-vx3)*( VeloX-VeloY-vx3)-cu_sq); + (D.f[dMPP])[ktnw]=feq; + //(D.f[dMPP])[ktnw]=zero; + } + + q = q_dirTNW[k]; + if (q>=c0o1 && q<=c1o1) + { + feq=c1o216*(drho+c3o1*(-VeloXpur+VeloYpur+vx3)+c9o2*(-VeloX+VeloY+vx3)*(-VeloX+VeloY+vx3)-cu_sq); + (D.f[dPMM])[kbse]=feq; + //(D.f[dPMM])[kbse]=zero; + } + + } } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -5232,7 +5232,7 @@ __global__ void QVelDevice27( //(D.f[d000])[k]=c1o10; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //ToDo anders Klammern + //ToDo anders Klammern q = q_dirE[k]; if (q>=c0o1 && q<=c1o1) @@ -5516,70 +5516,70 @@ __global__ void PropellerBC( Distributions27 D; if (EvenOrOdd==true) { - D.f[dP00] = &DD[dP00 * numberOfLBnodes]; - D.f[dM00] = &DD[dM00 * numberOfLBnodes]; - D.f[d0P0] = &DD[d0P0 * numberOfLBnodes]; - D.f[d0M0] = &DD[d0M0 * numberOfLBnodes]; - D.f[d00P] = &DD[d00P * numberOfLBnodes]; - D.f[d00M] = &DD[d00M * numberOfLBnodes]; - D.f[dPP0] = &DD[dPP0 * numberOfLBnodes]; - D.f[dMM0] = &DD[dMM0 * numberOfLBnodes]; - D.f[dPM0] = &DD[dPM0 * numberOfLBnodes]; - D.f[dMP0] = &DD[dMP0 * numberOfLBnodes]; - D.f[dP0P] = &DD[dP0P * numberOfLBnodes]; - D.f[dM0M] = &DD[dM0M * numberOfLBnodes]; - D.f[dP0M] = &DD[dP0M * numberOfLBnodes]; - D.f[dM0P] = &DD[dM0P * numberOfLBnodes]; - D.f[d0PP] = &DD[d0PP * numberOfLBnodes]; - D.f[d0MM] = &DD[d0MM * numberOfLBnodes]; - D.f[d0PM] = &DD[d0PM * numberOfLBnodes]; - D.f[d0MP] = &DD[d0MP * numberOfLBnodes]; - D.f[d000] = &DD[d000 * numberOfLBnodes]; - D.f[dPPP] = &DD[dPPP * numberOfLBnodes]; - D.f[dMMP] = &DD[dMMP * numberOfLBnodes]; - D.f[dPMP] = &DD[dPMP * numberOfLBnodes]; - D.f[dMPP] = &DD[dMPP * numberOfLBnodes]; - D.f[dPPM] = &DD[dPPM * numberOfLBnodes]; - D.f[dMMM] = &DD[dMMM * numberOfLBnodes]; - D.f[dPMM] = &DD[dPMM * numberOfLBnodes]; - D.f[dMPM] = &DD[dMPM * numberOfLBnodes]; + D.f[dP00] = &DD[dP00 * numberOfLBnodes]; + D.f[dM00] = &DD[dM00 * numberOfLBnodes]; + D.f[d0P0] = &DD[d0P0 * numberOfLBnodes]; + D.f[d0M0] = &DD[d0M0 * numberOfLBnodes]; + D.f[d00P] = &DD[d00P * numberOfLBnodes]; + D.f[d00M] = &DD[d00M * numberOfLBnodes]; + D.f[dPP0] = &DD[dPP0 * numberOfLBnodes]; + D.f[dMM0] = &DD[dMM0 * numberOfLBnodes]; + D.f[dPM0] = &DD[dPM0 * numberOfLBnodes]; + D.f[dMP0] = &DD[dMP0 * numberOfLBnodes]; + D.f[dP0P] = &DD[dP0P * numberOfLBnodes]; + D.f[dM0M] = &DD[dM0M * numberOfLBnodes]; + D.f[dP0M] = &DD[dP0M * numberOfLBnodes]; + D.f[dM0P] = &DD[dM0P * numberOfLBnodes]; + D.f[d0PP] = &DD[d0PP * numberOfLBnodes]; + D.f[d0MM] = &DD[d0MM * numberOfLBnodes]; + D.f[d0PM] = &DD[d0PM * numberOfLBnodes]; + D.f[d0MP] = &DD[d0MP * numberOfLBnodes]; + D.f[d000] = &DD[d000 * numberOfLBnodes]; + D.f[dPPP] = &DD[dPPP * numberOfLBnodes]; + D.f[dMMP] = &DD[dMMP * numberOfLBnodes]; + D.f[dPMP] = &DD[dPMP * numberOfLBnodes]; + D.f[dMPP] = &DD[dMPP * numberOfLBnodes]; + D.f[dPPM] = &DD[dPPM * numberOfLBnodes]; + D.f[dMMM] = &DD[dMMM * numberOfLBnodes]; + D.f[dPMM] = &DD[dPMM * numberOfLBnodes]; + D.f[dMPM] = &DD[dMPM * numberOfLBnodes]; } else { - D.f[dM00] = &DD[dP00 * numberOfLBnodes]; - D.f[dP00] = &DD[dM00 * numberOfLBnodes]; - D.f[d0M0] = &DD[d0P0 * numberOfLBnodes]; - D.f[d0P0] = &DD[d0M0 * numberOfLBnodes]; - D.f[d00M] = &DD[d00P * numberOfLBnodes]; - D.f[d00P] = &DD[d00M * numberOfLBnodes]; - D.f[dMM0] = &DD[dPP0 * numberOfLBnodes]; - D.f[dPP0] = &DD[dMM0 * numberOfLBnodes]; - D.f[dMP0] = &DD[dPM0 * numberOfLBnodes]; - D.f[dPM0] = &DD[dMP0 * numberOfLBnodes]; - D.f[dM0M] = &DD[dP0P * numberOfLBnodes]; - D.f[dP0P] = &DD[dM0M * numberOfLBnodes]; - D.f[dM0P] = &DD[dP0M * numberOfLBnodes]; - D.f[dP0M] = &DD[dM0P * numberOfLBnodes]; - D.f[d0MM] = &DD[d0PP * numberOfLBnodes]; - D.f[d0PP] = &DD[d0MM * numberOfLBnodes]; - D.f[d0MP] = &DD[d0PM * numberOfLBnodes]; - D.f[d0PM] = &DD[d0MP * numberOfLBnodes]; - D.f[d000] = &DD[d000 * numberOfLBnodes]; - D.f[dMMM] = &DD[dPPP * numberOfLBnodes]; - D.f[dPPM] = &DD[dMMP * numberOfLBnodes]; - D.f[dMPM] = &DD[dPMP * numberOfLBnodes]; - D.f[dPMM] = &DD[dMPP * numberOfLBnodes]; - D.f[dMMP] = &DD[dPPM * numberOfLBnodes]; - D.f[dPPP] = &DD[dMMM * numberOfLBnodes]; - D.f[dMPP] = &DD[dPMM * numberOfLBnodes]; - D.f[dPMP] = &DD[dMPM * numberOfLBnodes]; + D.f[dM00] = &DD[dP00 * numberOfLBnodes]; + D.f[dP00] = &DD[dM00 * numberOfLBnodes]; + D.f[d0M0] = &DD[d0P0 * numberOfLBnodes]; + D.f[d0P0] = &DD[d0M0 * numberOfLBnodes]; + D.f[d00M] = &DD[d00P * numberOfLBnodes]; + D.f[d00P] = &DD[d00M * numberOfLBnodes]; + D.f[dMM0] = &DD[dPP0 * numberOfLBnodes]; + D.f[dPP0] = &DD[dMM0 * numberOfLBnodes]; + D.f[dMP0] = &DD[dPM0 * numberOfLBnodes]; + D.f[dPM0] = &DD[dMP0 * numberOfLBnodes]; + D.f[dM0M] = &DD[dP0P * numberOfLBnodes]; + D.f[dP0P] = &DD[dM0M * numberOfLBnodes]; + D.f[dM0P] = &DD[dP0M * numberOfLBnodes]; + D.f[dP0M] = &DD[dM0P * numberOfLBnodes]; + D.f[d0MM] = &DD[d0PP * numberOfLBnodes]; + D.f[d0PP] = &DD[d0MM * numberOfLBnodes]; + D.f[d0MP] = &DD[d0PM * numberOfLBnodes]; + D.f[d0PM] = &DD[d0MP * numberOfLBnodes]; + D.f[d000] = &DD[d000 * numberOfLBnodes]; + D.f[dMMM] = &DD[dPPP * numberOfLBnodes]; + D.f[dPPM] = &DD[dMMP * numberOfLBnodes]; + D.f[dMPM] = &DD[dPMP * numberOfLBnodes]; + D.f[dPMM] = &DD[dMPP * numberOfLBnodes]; + D.f[dMMP] = &DD[dPPM * numberOfLBnodes]; + D.f[dPPP] = &DD[dMMM * numberOfLBnodes]; + D.f[dMPP] = &DD[dPMM * numberOfLBnodes]; + D.f[dPMP] = &DD[dMPM * numberOfLBnodes]; } ////////////////////////////////////////////////////////////////////////// - unsigned int KQK = k_Q[k]; - unsigned int BC = bcMatD[KQK]; - if( (BC != GEO_SOLID) && (BC != GEO_VOID)) - { - ////////////////////////////////////////////////////////////////////////// + unsigned int KQK = k_Q[k]; + unsigned int BC = bcMatD[KQK]; + if( (BC != GEO_SOLID) && (BC != GEO_VOID)) + { + ////////////////////////////////////////////////////////////////////////// real vx1 = ux[k]; real vx2 = uy[k]; real vx3 = uz[k]; @@ -5589,114 +5589,114 @@ __global__ void PropellerBC( ////////////////////////////////////////////////////////////////////////// //index ////////////////////////////////////////////////////////////////////////// - unsigned int kzero= KQK; - unsigned int ke = KQK; - unsigned int kw = neighborX[KQK]; - unsigned int kn = KQK; - unsigned int ks = neighborY[KQK]; - unsigned int kt = KQK; - unsigned int kb = neighborZ[KQK]; - unsigned int ksw = neighborY[kw]; - unsigned int kne = KQK; - unsigned int kse = ks; - unsigned int knw = kw; - unsigned int kbw = neighborZ[kw]; - unsigned int kte = KQK; - unsigned int kbe = kb; - unsigned int ktw = kw; - unsigned int kbs = neighborZ[ks]; - unsigned int ktn = KQK; - unsigned int kbn = kb; - unsigned int kts = ks; - unsigned int ktse = ks; - unsigned int kbnw = kbw; - unsigned int ktnw = kw; - unsigned int kbse = kbs; - unsigned int ktsw = ksw; - unsigned int kbne = kb; - unsigned int ktne = KQK; - unsigned int kbsw = neighborZ[ksw]; + unsigned int kzero= KQK; + unsigned int ke = KQK; + unsigned int kw = neighborX[KQK]; + unsigned int kn = KQK; + unsigned int ks = neighborY[KQK]; + unsigned int kt = KQK; + unsigned int kb = neighborZ[KQK]; + unsigned int ksw = neighborY[kw]; + unsigned int kne = KQK; + unsigned int kse = ks; + unsigned int knw = kw; + unsigned int kbw = neighborZ[kw]; + unsigned int kte = KQK; + unsigned int kbe = kb; + unsigned int ktw = kw; + unsigned int kbs = neighborZ[ks]; + unsigned int ktn = KQK; + unsigned int kbn = kb; + unsigned int kts = ks; + unsigned int ktse = ks; + unsigned int kbnw = kbw; + unsigned int ktnw = kw; + unsigned int kbse = kbs; + unsigned int ktsw = ksw; + unsigned int kbne = kb; + unsigned int ktne = KQK; + unsigned int kbsw = neighborZ[ksw]; ////////////////////////////////////////////////////////////////////////// - real f_E, f_W, f_N, f_S, f_T, f_B, f_NE, f_SW, f_SE, f_NW, f_TE, f_BW, f_BE, - f_TW, f_TN, f_BS, f_BN, f_TS, f_TNE, f_TSW, f_TSE, f_TNW, f_BNE, f_BSW, f_BSE, f_BNW, f_ZERO; - - f_ZERO= (D.f[d000])[kzero]; - f_E = (D.f[dP00])[ke ]; - f_W = (D.f[dM00])[kw ]; - f_N = (D.f[d0P0])[kn ]; - f_S = (D.f[d0M0])[ks ]; - f_T = (D.f[d00P])[kt ]; - f_B = (D.f[d00M])[kb ]; - f_NE = (D.f[dPP0])[kne ]; - f_SW = (D.f[dMM0])[ksw ]; - f_SE = (D.f[dPM0])[kse ]; - f_NW = (D.f[dMP0])[knw ]; - f_TE = (D.f[dP0P])[kte ]; - f_BW = (D.f[dM0M])[kbw ]; - f_BE = (D.f[dP0M])[kbe ]; - f_TW = (D.f[dM0P])[ktw ]; - f_TN = (D.f[d0PP])[ktn ]; - f_BS = (D.f[d0MM])[kbs ]; - f_BN = (D.f[d0PM])[kbn ]; - f_TS = (D.f[d0MP])[kts ]; - f_TNE = (D.f[dPPP])[ktne ]; - f_BSW = (D.f[dMMM])[kbsw ]; - f_BNE = (D.f[dPPM])[kbne ]; - f_TSW = (D.f[dMMP])[ktsw ]; - f_TSE = (D.f[dPMP])[ktse ]; - f_BNW = (D.f[dMPM])[kbnw ]; - f_BSE = (D.f[dPMM])[kbse ]; - f_TNW = (D.f[dMPP])[ktnw ]; - //f_W = (D.f[dP00])[ke ]; - //f_E = (D.f[dM00])[kw ]; - //f_S = (D.f[d0P0])[kn ]; - //f_N = (D.f[d0M0])[ks ]; - //f_B = (D.f[d00P])[kt ]; - //f_T = (D.f[d00M])[kb ]; - //f_SW = (D.f[dPP0])[kne ]; - //f_NE = (D.f[dMM0])[ksw ]; - //f_NW = (D.f[dPM0])[kse ]; - //f_SE = (D.f[dMP0])[knw ]; - //f_BW = (D.f[dP0P])[kte ]; - //f_TE = (D.f[dM0M])[kbw ]; - //f_TW = (D.f[dP0M])[kbe ]; - //f_BE = (D.f[dM0P])[ktw ]; - //f_BS = (D.f[d0PP])[ktn ]; - //f_TN = (D.f[d0MM])[kbs ]; - //f_TS = (D.f[d0PM])[kbn ]; - //f_BN = (D.f[d0MP])[kts ]; - //f_BSW = (D.f[dPPP])[ktne ]; - //f_TNE = (D.f[dMMM])[kbsw ]; - //f_TSW = (D.f[dPPM])[kbne ]; - //f_BNE = (D.f[dMMP])[ktsw ]; - //f_BNW = (D.f[dPMP])[ktse ]; - //f_TSE = (D.f[dMPM])[kbnw ]; - //f_TNW = (D.f[dPMM])[kbse ]; - //f_BSE = (D.f[dMPP])[ktnw ]; - ////////////////////////////////////////////////////////////////////////////////// - real vxo1, vxo2, vxo3, drho; - drho = /*zero;*/f_TSE + f_TNW + f_TNE + f_TSW + f_BSE + f_BNW + f_BNE + f_BSW + - f_BN + f_TS + f_TN + f_BS + f_BE + f_TW + f_TE + f_BW + f_SE + f_NW + f_NE + f_SW + - f_T + f_B + f_N + f_S + f_E + f_W + f_ZERO; - - vxo1 = (((f_TSE - f_BNW) - (f_TNW - f_BSE)) + ((f_TNE - f_BSW) - (f_TSW - f_BNE)) + - ((f_BE - f_TW) + (f_TE - f_BW)) + ((f_SE - f_NW) + (f_NE - f_SW)) + - (f_E - f_W) )/ (c1o1 + drho); + real f_E, f_W, f_N, f_S, f_T, f_B, f_NE, f_SW, f_SE, f_NW, f_TE, f_BW, f_BE, + f_TW, f_TN, f_BS, f_BN, f_TS, f_TNE, f_TSW, f_TSE, f_TNW, f_BNE, f_BSW, f_BSE, f_BNW, f_ZERO; + + f_ZERO= (D.f[d000])[kzero]; + f_E = (D.f[dP00])[ke ]; + f_W = (D.f[dM00])[kw ]; + f_N = (D.f[d0P0])[kn ]; + f_S = (D.f[d0M0])[ks ]; + f_T = (D.f[d00P])[kt ]; + f_B = (D.f[d00M])[kb ]; + f_NE = (D.f[dPP0])[kne ]; + f_SW = (D.f[dMM0])[ksw ]; + f_SE = (D.f[dPM0])[kse ]; + f_NW = (D.f[dMP0])[knw ]; + f_TE = (D.f[dP0P])[kte ]; + f_BW = (D.f[dM0M])[kbw ]; + f_BE = (D.f[dP0M])[kbe ]; + f_TW = (D.f[dM0P])[ktw ]; + f_TN = (D.f[d0PP])[ktn ]; + f_BS = (D.f[d0MM])[kbs ]; + f_BN = (D.f[d0PM])[kbn ]; + f_TS = (D.f[d0MP])[kts ]; + f_TNE = (D.f[dPPP])[ktne ]; + f_BSW = (D.f[dMMM])[kbsw ]; + f_BNE = (D.f[dPPM])[kbne ]; + f_TSW = (D.f[dMMP])[ktsw ]; + f_TSE = (D.f[dPMP])[ktse ]; + f_BNW = (D.f[dMPM])[kbnw ]; + f_BSE = (D.f[dPMM])[kbse ]; + f_TNW = (D.f[dMPP])[ktnw ]; + //f_W = (D.f[dP00])[ke ]; + //f_E = (D.f[dM00])[kw ]; + //f_S = (D.f[d0P0])[kn ]; + //f_N = (D.f[d0M0])[ks ]; + //f_B = (D.f[d00P])[kt ]; + //f_T = (D.f[d00M])[kb ]; + //f_SW = (D.f[dPP0])[kne ]; + //f_NE = (D.f[dMM0])[ksw ]; + //f_NW = (D.f[dPM0])[kse ]; + //f_SE = (D.f[dMP0])[knw ]; + //f_BW = (D.f[dP0P])[kte ]; + //f_TE = (D.f[dM0M])[kbw ]; + //f_TW = (D.f[dP0M])[kbe ]; + //f_BE = (D.f[dM0P])[ktw ]; + //f_BS = (D.f[d0PP])[ktn ]; + //f_TN = (D.f[d0MM])[kbs ]; + //f_TS = (D.f[d0PM])[kbn ]; + //f_BN = (D.f[d0MP])[kts ]; + //f_BSW = (D.f[dPPP])[ktne ]; + //f_TNE = (D.f[dMMM])[kbsw ]; + //f_TSW = (D.f[dPPM])[kbne ]; + //f_BNE = (D.f[dMMP])[ktsw ]; + //f_BNW = (D.f[dPMP])[ktse ]; + //f_TSE = (D.f[dMPM])[kbnw ]; + //f_TNW = (D.f[dPMM])[kbse ]; + //f_BSE = (D.f[dMPP])[ktnw ]; + ////////////////////////////////////////////////////////////////////////////////// + real vxo1, vxo2, vxo3, drho; + drho = /*zero;*/f_TSE + f_TNW + f_TNE + f_TSW + f_BSE + f_BNW + f_BNE + f_BSW + + f_BN + f_TS + f_TN + f_BS + f_BE + f_TW + f_TE + f_BW + f_SE + f_NW + f_NE + f_SW + + f_T + f_B + f_N + f_S + f_E + f_W + f_ZERO; + + vxo1 = (((f_TSE - f_BNW) - (f_TNW - f_BSE)) + ((f_TNE - f_BSW) - (f_TSW - f_BNE)) + + ((f_BE - f_TW) + (f_TE - f_BW)) + ((f_SE - f_NW) + (f_NE - f_SW)) + + (f_E - f_W) )/ (c1o1 + drho); - vxo2 = ((-(f_TSE - f_BNW) + (f_TNW - f_BSE)) + ((f_TNE - f_BSW) - (f_TSW - f_BNE)) + - ((f_BN - f_TS) + (f_TN - f_BS)) + (-(f_SE - f_NW) + (f_NE - f_SW)) + - (f_N - f_S) )/ (c1o1 + drho); + vxo2 = ((-(f_TSE - f_BNW) + (f_TNW - f_BSE)) + ((f_TNE - f_BSW) - (f_TSW - f_BNE)) + + ((f_BN - f_TS) + (f_TN - f_BS)) + (-(f_SE - f_NW) + (f_NE - f_SW)) + + (f_N - f_S) )/ (c1o1 + drho); - vxo3 = (((f_TSE - f_BNW) + (f_TNW - f_BSE)) + ((f_TNE - f_BSW) + (f_TSW - f_BNE)) + - (-(f_BN - f_TS) + (f_TN - f_BS)) + ((f_TE - f_BW) - (f_BE - f_TW)) + - (f_T - f_B) )/ (c1o1 + drho); + vxo3 = (((f_TSE - f_BNW) + (f_TNW - f_BSE)) + ((f_TNE - f_BSW) + (f_TSW - f_BNE)) + + (-(f_BN - f_TS) + (f_TN - f_BS)) + ((f_TE - f_BW) - (f_BE - f_TW)) + + (f_T - f_B) )/ (c1o1 + drho); - real cusq=c3o2*(vxo1*vxo1+vxo2*vxo2+vxo3*vxo3); - //vx1 = vx1 * two - vxo1; - //vx2 = vx2 * two - vxo2; - //vx3 = vx3 * two - vxo3; - real cusq2=c3o2*(vx1*vx1+vx2*vx2+vx3*vx3); + real cusq=c3o2*(vxo1*vxo1+vxo2*vxo2+vxo3*vxo3); + //vx1 = vx1 * two - vxo1; + //vx2 = vx2 * two - vxo2; + //vx3 = vx3 * two - vxo3; + real cusq2=c3o2*(vx1*vx1+vx2*vx2+vx3*vx3); //f_ZERO = ((one+drho) * ( c8over27 *(one+(-cusq2)))) - c8over27; //f_E = ((one+drho) * ( c2over27 *(one+three*( vx1 )+c9over2*( vx1 )*( vx1 )-cusq2))) - c2over27 ; @@ -5725,7 +5725,7 @@ __global__ void PropellerBC( //f_BNW = ((one+drho) * ( c1over216*(one+three*(-vx1+vx2-vx3)+c9over2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3)-cusq2))) - c1over216; //f_BSE = ((one+drho) * ( c1over216*(one+three*( vx1-vx2-vx3)+c9over2*( vx1-vx2-vx3)*( vx1-vx2-vx3)-cusq2))) - c1over216; //f_TNW = ((one+drho) * ( c1over216*(one+three*(-vx1+vx2+vx3)+c9over2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cusq2))) - c1over216; - f_ZERO = f_ZERO + ((c1o1+drho) * (- c8o27* (-cusq) + c8o27* (-cusq2))); + f_ZERO = f_ZERO + ((c1o1+drho) * (- c8o27* (-cusq) + c8o27* (-cusq2))); f_E = f_E + ((c1o1+drho) * (- c2o27* (c3o1*( vxo1 )+c9o2*( vxo1 )*( vxo1 )-cusq) + c2o27* (c3o1*( vx1 )+c9o2*( vx1 )*( vx1 )-cusq2))); f_W = f_W + ((c1o1+drho) * (- c2o27* (c3o1*(-vxo1 )+c9o2*(-vxo1 )*(-vxo1 )-cusq) + c2o27* (c3o1*(-vx1 )+c9o2*(-vx1 )*(-vx1 )-cusq2))); f_N = f_N + ((c1o1+drho) * (- c2o27* (c3o1*( vxo2 )+c9o2*( vxo2 )*( vxo2 )-cusq) + c2o27* (c3o1*( vx2 )+c9o2*( vx2 )*( vx2 )-cusq2))); @@ -5753,62 +5753,62 @@ __global__ void PropellerBC( f_BSE = f_BSE + ((c1o1+drho) * (- c1o216*(c3o1*( vxo1-vxo2-vxo3)+c9o2*( vxo1-vxo2-vxo3)*( vxo1-vxo2-vxo3)-cusq) + c1o216*(c3o1*( vx1-vx2-vx3)+c9o2*( vx1-vx2-vx3)*( vx1-vx2-vx3)-cusq2))); f_TNW = f_TNW + ((c1o1+drho) * (- c1o216*(c3o1*(-vxo1+vxo2+vxo3)+c9o2*(-vxo1+vxo2+vxo3)*(-vxo1+vxo2+vxo3)-cusq) + c1o216*(c3o1*(-vx1+vx2+vx3)+c9o2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cusq2))); - (D.f[d000])[kzero] = f_ZERO; - (D.f[dP00])[ke ] = f_E ; // f_W ;// - (D.f[dM00])[kw ] = f_W ; // f_E ;// - (D.f[d0P0])[kn ] = f_N ; // f_S ;// - (D.f[d0M0])[ks ] = f_S ; // f_N ;// - (D.f[d00P])[kt ] = f_T ; // f_B ;// - (D.f[d00M])[kb ] = f_B ; // f_T ;// - (D.f[dPP0])[kne ] = f_NE ; // f_SW ;// - (D.f[dMM0])[ksw ] = f_SW ; // f_NE ;// - (D.f[dPM0])[kse ] = f_SE ; // f_NW ;// - (D.f[dMP0])[knw ] = f_NW ; // f_SE ;// - (D.f[dP0P])[kte ] = f_TE ; // f_BW ;// - (D.f[dM0M])[kbw ] = f_BW ; // f_TE ;// - (D.f[dP0M])[kbe ] = f_BE ; // f_TW ;// - (D.f[dM0P])[ktw ] = f_TW ; // f_BE ;// - (D.f[d0PP])[ktn ] = f_TN ; // f_BS ;// - (D.f[d0MM])[kbs ] = f_BS ; // f_TN ;// - (D.f[d0PM])[kbn ] = f_BN ; // f_TS ;// - (D.f[d0MP])[kts ] = f_TS ; // f_BN ;// - (D.f[dPPP])[ktne ] = f_TNE ; // f_BSW ;// - (D.f[dMMM])[kbsw ] = f_BSW ; // f_BNE ;// - (D.f[dPPM])[kbne ] = f_BNE ; // f_BNW ;// - (D.f[dMMP])[ktsw ] = f_TSW ; // f_BSE ;// - (D.f[dPMP])[ktse ] = f_TSE ; // f_TSW ;// - (D.f[dMPM])[kbnw ] = f_BNW ; // f_TNE ;// - (D.f[dPMM])[kbse ] = f_BSE ; // f_TNW ;// - (D.f[dMPP])[ktnw ] = f_TNW ; // f_TSE ;// - - ////////////////////////////////////////////////////////////////////////// + (D.f[d000])[kzero] = f_ZERO; + (D.f[dP00])[ke ] = f_E ; // f_W ;// + (D.f[dM00])[kw ] = f_W ; // f_E ;// + (D.f[d0P0])[kn ] = f_N ; // f_S ;// + (D.f[d0M0])[ks ] = f_S ; // f_N ;// + (D.f[d00P])[kt ] = f_T ; // f_B ;// + (D.f[d00M])[kb ] = f_B ; // f_T ;// + (D.f[dPP0])[kne ] = f_NE ; // f_SW ;// + (D.f[dMM0])[ksw ] = f_SW ; // f_NE ;// + (D.f[dPM0])[kse ] = f_SE ; // f_NW ;// + (D.f[dMP0])[knw ] = f_NW ; // f_SE ;// + (D.f[dP0P])[kte ] = f_TE ; // f_BW ;// + (D.f[dM0M])[kbw ] = f_BW ; // f_TE ;// + (D.f[dP0M])[kbe ] = f_BE ; // f_TW ;// + (D.f[dM0P])[ktw ] = f_TW ; // f_BE ;// + (D.f[d0PP])[ktn ] = f_TN ; // f_BS ;// + (D.f[d0MM])[kbs ] = f_BS ; // f_TN ;// + (D.f[d0PM])[kbn ] = f_BN ; // f_TS ;// + (D.f[d0MP])[kts ] = f_TS ; // f_BN ;// + (D.f[dPPP])[ktne ] = f_TNE ; // f_BSW ;// + (D.f[dMMM])[kbsw ] = f_BSW ; // f_BNE ;// + (D.f[dPPM])[kbne ] = f_BNE ; // f_BNW ;// + (D.f[dMMP])[ktsw ] = f_TSW ; // f_BSE ;// + (D.f[dPMP])[ktse ] = f_TSE ; // f_TSW ;// + (D.f[dMPM])[kbnw ] = f_BNW ; // f_TNE ;// + (D.f[dPMM])[kbse ] = f_BSE ; // f_TNW ;// + (D.f[dMPP])[ktnw ] = f_TNW ; // f_TSE ;// + + ////////////////////////////////////////////////////////////////////////// ////(D.f[d000])[kzero] = c8over27* (drho-cu_sq); - //(D.f[dP00])[ke ] = three*c2over27* ( vx1 ); //six - //(D.f[dM00])[kw ] = three*c2over27* (-vx1 ); //six - //(D.f[d0P0])[kn ] = three*c2over27* ( vx2 ); //six - //(D.f[d0M0])[ks ] = three*c2over27* ( -vx2 ); //six - //(D.f[d00P])[kt ] = three*c2over27* ( vx3); //six - //(D.f[d00M])[kb ] = three*c2over27* ( -vx3); //six - //(D.f[dPP0])[kne ] = three*c1over54* ( vx1+vx2 ); //six - //(D.f[dMM0])[ksw ] = three*c1over54* (-vx1-vx2 ); //six - //(D.f[dPM0])[kse ] = three*c1over54* ( vx1-vx2 ); //six - //(D.f[dMP0])[knw ] = three*c1over54* (-vx1+vx2 ); //six - //(D.f[dP0P])[kte ] = three*c1over54* ( vx1 +vx3); //six - //(D.f[dM0M])[kbw ] = three*c1over54* (-vx1 -vx3); //six - //(D.f[dP0M])[kbe ] = three*c1over54* ( vx1 -vx3); //six - //(D.f[dM0P])[ktw ] = three*c1over54* (-vx1 +vx3); //six - //(D.f[d0PP])[ktn ] = three*c1over54* ( vx2+vx3); //six - //(D.f[d0MM])[kbs ] = three*c1over54* ( -vx2-vx3); //six - //(D.f[d0PM])[kbn ] = three*c1over54* ( vx2-vx3); //six - //(D.f[d0MP])[kts ] = three*c1over54* ( -vx2+vx3); //six - //(D.f[dPPP])[ktne ] = three*c1over216*( vx1+vx2+vx3); //six - //(D.f[dMMM])[kbsw ] = three*c1over216*(-vx1-vx2-vx3); //six - //(D.f[dPPM])[kbne ] = three*c1over216*( vx1+vx2-vx3); //six - //(D.f[dMMP])[ktsw ] = three*c1over216*(-vx1-vx2+vx3); //six - //(D.f[dPMP])[ktse ] = three*c1over216*( vx1-vx2+vx3); //six - //(D.f[dMPM])[kbnw ] = three*c1over216*(-vx1+vx2-vx3); //six - //(D.f[dPMM])[kbse ] = three*c1over216*( vx1-vx2-vx3); //six - //(D.f[dMPP])[ktnw ] = three*c1over216*(-vx1+vx2+vx3); //six + //(D.f[dP00])[ke ] = three*c2over27* ( vx1 ); //six + //(D.f[dM00])[kw ] = three*c2over27* (-vx1 ); //six + //(D.f[d0P0])[kn ] = three*c2over27* ( vx2 ); //six + //(D.f[d0M0])[ks ] = three*c2over27* ( -vx2 ); //six + //(D.f[d00P])[kt ] = three*c2over27* ( vx3); //six + //(D.f[d00M])[kb ] = three*c2over27* ( -vx3); //six + //(D.f[dPP0])[kne ] = three*c1over54* ( vx1+vx2 ); //six + //(D.f[dMM0])[ksw ] = three*c1over54* (-vx1-vx2 ); //six + //(D.f[dPM0])[kse ] = three*c1over54* ( vx1-vx2 ); //six + //(D.f[dMP0])[knw ] = three*c1over54* (-vx1+vx2 ); //six + //(D.f[dP0P])[kte ] = three*c1over54* ( vx1 +vx3); //six + //(D.f[dM0M])[kbw ] = three*c1over54* (-vx1 -vx3); //six + //(D.f[dP0M])[kbe ] = three*c1over54* ( vx1 -vx3); //six + //(D.f[dM0P])[ktw ] = three*c1over54* (-vx1 +vx3); //six + //(D.f[d0PP])[ktn ] = three*c1over54* ( vx2+vx3); //six + //(D.f[d0MM])[kbs ] = three*c1over54* ( -vx2-vx3); //six + //(D.f[d0PM])[kbn ] = three*c1over54* ( vx2-vx3); //six + //(D.f[d0MP])[kts ] = three*c1over54* ( -vx2+vx3); //six + //(D.f[dPPP])[ktne ] = three*c1over216*( vx1+vx2+vx3); //six + //(D.f[dMMM])[kbsw ] = three*c1over216*(-vx1-vx2-vx3); //six + //(D.f[dPPM])[kbne ] = three*c1over216*( vx1+vx2-vx3); //six + //(D.f[dMMP])[ktsw ] = three*c1over216*(-vx1-vx2+vx3); //six + //(D.f[dPMP])[ktse ] = three*c1over216*( vx1-vx2+vx3); //six + //(D.f[dMPM])[kbnw ] = three*c1over216*(-vx1+vx2-vx3); //six + //(D.f[dPMM])[kbse ] = three*c1over216*( vx1-vx2-vx3); //six + //(D.f[dMPP])[ktnw ] = three*c1over216*(-vx1+vx2+vx3); //six //(D.f[d000])[kzero] = c8over27* (drho-cu_sq); //(D.f[dP00])[ke ] = c2over27* (drho+three*( vx1 )+c9over2*( vx1 )*( vx1 )-cu_sq); //(D.f[dM00])[kw ] = c2over27* (drho+three*(-vx1 )+c9over2*(-vx1 )*(-vx1 )-cu_sq); @@ -5836,7 +5836,7 @@ __global__ void PropellerBC( //(D.f[dMPM])[kbnw ] = c1over216*(drho+three*(-vx1+vx2-vx3)+c9over2*(-vx1+vx2-vx3)*(-vx1+vx2-vx3)-cu_sq); //(D.f[dPMM])[kbse ] = c1over216*(drho+three*( vx1-vx2-vx3)+c9over2*( vx1-vx2-vx3)*( vx1-vx2-vx3)-cu_sq); //(D.f[dMPP])[ktnw ] = c1over216*(drho+three*(-vx1+vx2+vx3)+c9over2*(-vx1+vx2+vx3)*(-vx1+vx2+vx3)-cu_sq); - } + } } } ////////////////////////////////////////////////////////////////////////// diff --git a/src/gpu/core/GPU/WallFunction.cu b/src/gpu/core/GPU/WallFunction.cu index 2777a11fd8044e746885586aec3e33fa242642b4..0c81eba65f7c5d8f711bee9499168d4fa73de9bd 100644 --- a/src/gpu/core/GPU/WallFunction.cu +++ b/src/gpu/core/GPU/WallFunction.cu @@ -9,19 +9,19 @@ using namespace vf::lbm::dir; ////////////////////////////////////////////////////////////////////////////// __global__ void WallFunction27( - real* vx, - real* vy, - real* vz, - real* DD, - int* k_Q, - real* QQ, - unsigned int numberOfBCnodes, - real om1, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - unsigned long long numberOfLBnodes, - bool isEvenTimestep) + real* vx, + real* vy, + real* vz, + real* DD, + int* k_Q, + real* QQ, + unsigned int numberOfBCnodes, + real om1, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + unsigned long long numberOfLBnodes, + bool isEvenTimestep) { Distributions27 D; if (isEvenTimestep==true) @@ -215,21 +215,21 @@ __global__ void WallFunction27( //real cu_sq=c3o2*(vx1*vx1+vx2*vx2+vx3*vx3) * (one + drho); - real nu = c1o3 * (c1o1 / om1 - c1o2); - real qw = c1o1; - real uTau = sqrt(nu * (vx1 - VeloX) / qw); + real nu = c1o3 * (c1o1 / om1 - c1o2); + real qw = c1o1; + real uTau = sqrt(nu * (vx1 - VeloX) / qw); - if (abs(uTau)/nu>11){ - uTau = vx1 * 0.41 / (log10(9.8 * uTau * qw / nu)); - + if (abs(uTau)/nu>11){ + uTau = vx1 * 0.41 / (log10(9.8 * uTau * qw / nu)); + - - vx[k] = vx1 - uTau * uTau * qw / nu; - vx[k] = (vx[k]> 0.05) ? 0.05 : ((vx[k]< -0.05) ? -0.05 : vx[k] ); - } - else{ vx[k]=c0o1; } - //vy[k] = 0.01; //Test...muss wieder raus - //vz[k] = 0.01; //Test...muss wieder raus + + vx[k] = vx1 - uTau * uTau * qw / nu; + vx[k] = (vx[k]> 0.05) ? 0.05 : ((vx[k]< -0.05) ? -0.05 : vx[k] ); + } + else{ vx[k]=c0o1; } + //vy[k] = 0.01; //Test...muss wieder raus + //vz[k] = 0.01; //Test...muss wieder raus // ////////////////////////////////////////////////////////////////////////// // if (isEvenTimestep==false) @@ -297,7 +297,7 @@ __global__ void WallFunction27( // //(D.f[d000])[k]=c1o10; // //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - ////ToDo anders Klammern + ////ToDo anders Klammern // q = q_dirE[k]; // if (q>=zero && q<=one) diff --git a/src/gpu/core/Init/InitLattice.cpp b/src/gpu/core/Init/InitLattice.cpp index ba4a5cae5259ff43a1d85e6ee97dd125e3da912f..f8e00006e3b6438080c23b3a24bb9d30aa17fe48 100644 --- a/src/gpu/core/Init/InitLattice.cpp +++ b/src/gpu/core/Init/InitLattice.cpp @@ -39,7 +39,7 @@ #include "Temperature/FindTemperature.h" -void initLattice(SPtr<Parameter> para, SPtr<PreProcessor> preProcessor, SPtr<CudaMemoryManager> cudaMemoryManager) +void initLattice(SPtr<Parameter> para, SPtr<PreProcessor> preProcessor, SPtr<PreProcessor> preProcessorAD, SPtr<CudaMemoryManager> cudaMemoryManager) { for (int lev = para->getFine(); lev >= para->getCoarse(); lev--) { preProcessor->init(para, lev); @@ -84,7 +84,8 @@ void initLattice(SPtr<Parameter> para, SPtr<PreProcessor> preProcessor, SPtr<Cud for (size_t index = 0; index < para->getParH(lev)->numberOfNodes; index++) { para->getParH(lev)->concentration[index] = para->getTemperatureInit(); } - initTemperatur(para.get(), cudaMemoryManager.get(), lev); + + preProcessorAD->init(para, lev); } } } diff --git a/src/gpu/core/Init/InitLattice.h b/src/gpu/core/Init/InitLattice.h index 8de22f321899ba7f8a08f8809fbd904c2d9ec1ec..2e51f911ce93525cf3cbc418ea14fe02aa598cd0 100644 --- a/src/gpu/core/Init/InitLattice.h +++ b/src/gpu/core/Init/InitLattice.h @@ -39,6 +39,6 @@ class Parameter; class PreProcessor; class CudaMemoryManager; -void initLattice(SPtr<Parameter> para, SPtr<PreProcessor> preProcessor, SPtr<CudaMemoryManager> cudaMemoryManager); +void initLattice(SPtr<Parameter> para, SPtr<PreProcessor> preProcessor, SPtr<PreProcessor> preProcessorAD, SPtr<CudaMemoryManager> cudaMemoryManager); #endif diff --git a/src/gpu/core/Init/PositionReader.cpp b/src/gpu/core/Init/PositionReader.cpp index 2863ce419e1e74a94f9e65ea2546a7bb143241b6..c94ea46acb9aa1d9b86feb77ebbc58c2aa47e431 100644 --- a/src/gpu/core/Init/PositionReader.cpp +++ b/src/gpu/core/Init/PositionReader.cpp @@ -9,65 +9,65 @@ using namespace vf::lbm::dir; ////////////////////////////////////////////////////////////////////////// void PositionReader::readFilePropellerCylinderForAlloc(Parameter* para) { - UbFileInputASCII in(para->getpropellerCylinder()); - int test = 0, count = 0; - int maxlevel = in.readInteger(); - in.readLine(); + UbFileInputASCII in(para->getpropellerCylinder()); + int test = 0, count = 0; + int maxlevel = in.readInteger(); + in.readLine(); - for (int level = 0; level < maxlevel; level++) - { - para->getParH(level)->propellerBC.numberOfBCnodes = in.readInteger(); - para->getParD(level)->propellerBC.numberOfBCnodes = para->getParH(level)->propellerBC.numberOfBCnodes; - in.readLine(); - if (level == para->getFine()) - { - for(uint u=0; u<para->getParH(level)->propellerBC.numberOfBCnodes; u++) - { - test = in.readInteger(); - if (para->getParH(level)->typeOfGridNode[test] == GEO_FLUID) - { - count++; - } - //////////////////////////////////////////////////////////////////////// - //for(unsigned int ix3=0; ix3<para->getParH(level)->nz; ix3++) - //{ - // for(unsigned int ix2=0; ix2<para->getParH(level)->ny; ix2++) - // { - // for(unsigned int ix1=0; ix1<para->getParH(level)->nx; ix1++) - // { - // unsigned int m = para->getParH(level)->nx*(para->getParH(level)->ny*ix3 + ix2) + ix1; - // if (para->getParH(level)->k[m] == test) - // { - // if(para->getParH(level)->geo[m] == 1) - // { - // count++; - // } - // } - // } - // } - //} - //count++; - //////////////////////////////////////////////////////////////////////// - in.readDouble(); - in.readDouble(); - in.readDouble(); - in.readLine(); - } - } - else - { - for(uint u=0; u<para->getParH(level)->propellerBC.numberOfBCnodes; u++) - { - in.readInteger(); - in.readDouble(); - in.readDouble(); - in.readDouble(); - in.readLine(); - } - } - para->getParH(level)->propellerBC.numberOfBCnodes = count; - para->getParD(level)->propellerBC.numberOfBCnodes = para->getParH(level)->propellerBC.numberOfBCnodes; - } + for (int level = 0; level < maxlevel; level++) + { + para->getParH(level)->propellerBC.numberOfBCnodes = in.readInteger(); + para->getParD(level)->propellerBC.numberOfBCnodes = para->getParH(level)->propellerBC.numberOfBCnodes; + in.readLine(); + if (level == para->getFine()) + { + for(uint u=0; u<para->getParH(level)->propellerBC.numberOfBCnodes; u++) + { + test = in.readInteger(); + if (para->getParH(level)->typeOfGridNode[test] == GEO_FLUID) + { + count++; + } + //////////////////////////////////////////////////////////////////////// + //for(unsigned int ix3=0; ix3<para->getParH(level)->nz; ix3++) + //{ + // for(unsigned int ix2=0; ix2<para->getParH(level)->ny; ix2++) + // { + // for(unsigned int ix1=0; ix1<para->getParH(level)->nx; ix1++) + // { + // unsigned int m = para->getParH(level)->nx*(para->getParH(level)->ny*ix3 + ix2) + ix1; + // if (para->getParH(level)->k[m] == test) + // { + // if(para->getParH(level)->geo[m] == 1) + // { + // count++; + // } + // } + // } + // } + //} + //count++; + //////////////////////////////////////////////////////////////////////// + in.readDouble(); + in.readDouble(); + in.readDouble(); + in.readLine(); + } + } + else + { + for(uint u=0; u<para->getParH(level)->propellerBC.numberOfBCnodes; u++) + { + in.readInteger(); + in.readDouble(); + in.readDouble(); + in.readDouble(); + in.readLine(); + } + } + para->getParH(level)->propellerBC.numberOfBCnodes = count; + para->getParD(level)->propellerBC.numberOfBCnodes = para->getParH(level)->propellerBC.numberOfBCnodes; + } } ////////////////////////////////////////////////////////////////////////// @@ -75,59 +75,59 @@ void PositionReader::readFilePropellerCylinderForAlloc(Parameter* para) ////////////////////////////////////////////////////////////////////////// void PositionReader::readFilePropellerCylinder(Parameter* para) { - UbFileInputASCII in(para->getpropellerCylinder()); - int test = 0, count = 0; - int maxlevel = in.readInteger(); - in.readLine(); + UbFileInputASCII in(para->getpropellerCylinder()); + int test = 0, count = 0; + int maxlevel = in.readInteger(); + in.readLine(); - for (int level = 0; level < maxlevel; level++) - { - int allnodes = in.readInteger(); - in.readLine(); - if (level == para->getFine()) - { - for(int u=0; u<allnodes; u++) - { - test = in.readInteger(); - //////////////////////////////////////////////////////////////////////// - if (para->getParH(level)->typeOfGridNode[test] == GEO_FLUID) - { - para->getParH(level)->propellerBC.k[count] = test; - para->getParH(level)->propellerBC.Vx[count] = (real)in.readDouble(); - para->getParH(level)->propellerBC.Vy[count] = (real)in.readDouble(); - para->getParH(level)->propellerBC.Vz[count] = (real)in.readDouble(); - para->getParH(level)->propellerBC.RhoBC[count] = 0.0f; - count++; - } - else - { - in.readDouble(); - in.readDouble(); - in.readDouble(); - } - //para->getParH(level)->propellerBC.k[count] = test; - //para->getParH(level)->propellerBC.Vx[count] = (real)in.readDouble(); - //para->getParH(level)->propellerBC.Vy[count] = (real)in.readDouble(); - //para->getParH(level)->propellerBC.Vz[count] = (real)in.readDouble(); - //para->getParH(level)->propellerBC.Vx[count] = 0.07f; - //para->getParH(level)->propellerBC.Vy[count] = 0.0f; - //para->getParH(level)->propellerBC.Vz[count] = 0.0f; - in.readLine(); - } - } - else - { - for(int u=0; u<allnodes; u++) - { - in.readInteger(); - in.readDouble(); - in.readDouble(); - in.readDouble(); - in.readLine(); - } - } - printf("allnodes = %d, count = %d\n", allnodes, count); - } + for (int level = 0; level < maxlevel; level++) + { + int allnodes = in.readInteger(); + in.readLine(); + if (level == para->getFine()) + { + for(int u=0; u<allnodes; u++) + { + test = in.readInteger(); + //////////////////////////////////////////////////////////////////////// + if (para->getParH(level)->typeOfGridNode[test] == GEO_FLUID) + { + para->getParH(level)->propellerBC.k[count] = test; + para->getParH(level)->propellerBC.Vx[count] = (real)in.readDouble(); + para->getParH(level)->propellerBC.Vy[count] = (real)in.readDouble(); + para->getParH(level)->propellerBC.Vz[count] = (real)in.readDouble(); + para->getParH(level)->propellerBC.RhoBC[count] = 0.0f; + count++; + } + else + { + in.readDouble(); + in.readDouble(); + in.readDouble(); + } + //para->getParH(level)->propellerBC.k[count] = test; + //para->getParH(level)->propellerBC.Vx[count] = (real)in.readDouble(); + //para->getParH(level)->propellerBC.Vy[count] = (real)in.readDouble(); + //para->getParH(level)->propellerBC.Vz[count] = (real)in.readDouble(); + //para->getParH(level)->propellerBC.Vx[count] = 0.07f; + //para->getParH(level)->propellerBC.Vy[count] = 0.0f; + //para->getParH(level)->propellerBC.Vz[count] = 0.0f; + in.readLine(); + } + } + else + { + for(int u=0; u<allnodes; u++) + { + in.readInteger(); + in.readDouble(); + in.readDouble(); + in.readDouble(); + in.readLine(); + } + } + printf("allnodes = %d, count = %d\n", allnodes, count); + } } ////////////////////////////////////////////////////////////////////////// @@ -135,56 +135,56 @@ void PositionReader::readFilePropellerCylinder(Parameter* para) ////////////////////////////////////////////////////////////////////////// void PositionReader::definePropellerQs(Parameter* para) { - ////////////////////////////////////////////////////////////////// - //preprocessing - real* QQ = para->getParH(para->getFine())->propellerBC.q27[0]; - unsigned int sizeQ = para->getParH(para->getFine())->propellerBC.numberOfBCnodes; - QforBoundaryConditions Q; - Q.q27[dP00 ] = &QQ[dP00 *sizeQ]; - Q.q27[dM00 ] = &QQ[dM00 *sizeQ]; - Q.q27[d0P0 ] = &QQ[d0P0 *sizeQ]; - Q.q27[d0M0 ] = &QQ[d0M0 *sizeQ]; - Q.q27[d00P ] = &QQ[d00P *sizeQ]; - Q.q27[d00M ] = &QQ[d00M *sizeQ]; - Q.q27[dPP0 ] = &QQ[dPP0 *sizeQ]; - Q.q27[dMM0 ] = &QQ[dMM0 *sizeQ]; - Q.q27[dPM0 ] = &QQ[dPM0 *sizeQ]; - Q.q27[dMP0 ] = &QQ[dMP0 *sizeQ]; - Q.q27[dP0P ] = &QQ[dP0P *sizeQ]; - Q.q27[dM0M ] = &QQ[dM0M *sizeQ]; - Q.q27[dP0M ] = &QQ[dP0M *sizeQ]; - Q.q27[dM0P ] = &QQ[dM0P *sizeQ]; - Q.q27[d0PP ] = &QQ[d0PP *sizeQ]; - Q.q27[d0MM ] = &QQ[d0MM *sizeQ]; - Q.q27[d0PM ] = &QQ[d0PM *sizeQ]; - Q.q27[d0MP ] = &QQ[d0MP *sizeQ]; - Q.q27[d000] = &QQ[d000*sizeQ]; - Q.q27[dPPP ] = &QQ[dPPP *sizeQ]; - Q.q27[dMMP ] = &QQ[dMMP *sizeQ]; - Q.q27[dPMP ] = &QQ[dPMP *sizeQ]; - Q.q27[dMPP ] = &QQ[dMPP *sizeQ]; - Q.q27[dPPM ] = &QQ[dPPM *sizeQ]; - Q.q27[dMMM ] = &QQ[dMMM *sizeQ]; - Q.q27[dPMM ] = &QQ[dPMM *sizeQ]; - Q.q27[dMPM ] = &QQ[dMPM *sizeQ]; - ////////////////////////////////////////////////////////////////// - for(uint u=0; u<para->getParH(para->getFine())->propellerBC.numberOfBCnodes; u++) - { - for (size_t dir = dP00; dir<=dMMM; dir++) - { - if ((dir==dP00) || - (dir==dPP0) || (dir==dPM0) || (dir==dP0P) || (dir==dP0M) || - (dir==dPPP)|| (dir==dPPM)|| (dir==dPMP)|| (dir==dPMM)) - { - Q.q27[dir][u] = 1.0f; - } - else - { - Q.q27[dir][u] = -1.0f; - } - } - } - ////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////// + //preprocessing + real* QQ = para->getParH(para->getFine())->propellerBC.q27[0]; + unsigned int sizeQ = para->getParH(para->getFine())->propellerBC.numberOfBCnodes; + QforBoundaryConditions Q; + Q.q27[dP00 ] = &QQ[dP00 *sizeQ]; + Q.q27[dM00 ] = &QQ[dM00 *sizeQ]; + Q.q27[d0P0 ] = &QQ[d0P0 *sizeQ]; + Q.q27[d0M0 ] = &QQ[d0M0 *sizeQ]; + Q.q27[d00P ] = &QQ[d00P *sizeQ]; + Q.q27[d00M ] = &QQ[d00M *sizeQ]; + Q.q27[dPP0 ] = &QQ[dPP0 *sizeQ]; + Q.q27[dMM0 ] = &QQ[dMM0 *sizeQ]; + Q.q27[dPM0 ] = &QQ[dPM0 *sizeQ]; + Q.q27[dMP0 ] = &QQ[dMP0 *sizeQ]; + Q.q27[dP0P ] = &QQ[dP0P *sizeQ]; + Q.q27[dM0M ] = &QQ[dM0M *sizeQ]; + Q.q27[dP0M ] = &QQ[dP0M *sizeQ]; + Q.q27[dM0P ] = &QQ[dM0P *sizeQ]; + Q.q27[d0PP ] = &QQ[d0PP *sizeQ]; + Q.q27[d0MM ] = &QQ[d0MM *sizeQ]; + Q.q27[d0PM ] = &QQ[d0PM *sizeQ]; + Q.q27[d0MP ] = &QQ[d0MP *sizeQ]; + Q.q27[d000] = &QQ[d000*sizeQ]; + Q.q27[dPPP ] = &QQ[dPPP *sizeQ]; + Q.q27[dMMP ] = &QQ[dMMP *sizeQ]; + Q.q27[dPMP ] = &QQ[dPMP *sizeQ]; + Q.q27[dMPP ] = &QQ[dMPP *sizeQ]; + Q.q27[dPPM ] = &QQ[dPPM *sizeQ]; + Q.q27[dMMM ] = &QQ[dMMM *sizeQ]; + Q.q27[dPMM ] = &QQ[dPMM *sizeQ]; + Q.q27[dMPM ] = &QQ[dMPM *sizeQ]; + ////////////////////////////////////////////////////////////////// + for(uint u=0; u<para->getParH(para->getFine())->propellerBC.numberOfBCnodes; u++) + { + for (size_t dir = dP00; dir<=dMMM; dir++) + { + if ((dir==dP00) || + (dir==dPP0) || (dir==dPM0) || (dir==dP0P) || (dir==dP0M) || + (dir==dPPP)|| (dir==dPPM)|| (dir==dPMP)|| (dir==dPMM)) + { + Q.q27[dir][u] = 1.0f; + } + else + { + Q.q27[dir][u] = -1.0f; + } + } + } + ////////////////////////////////////////////////////////////////// } ////////////////////////////////////////////////////////////////////////// @@ -192,23 +192,23 @@ void PositionReader::definePropellerQs(Parameter* para) ////////////////////////////////////////////////////////////////////////// void PositionReader::readMeasurePoints( Parameter* para ) { - UbFileInputASCII in(para->getmeasurePoints()); - int numberOfAllNodes = in.readInteger(); - in.readLine(); - int tempLevel; - MeasurePoints tempMP; - //printf("done, init the values...\n"); - for (int u = 0; u < numberOfAllNodes; u++) - { - tempMP.name = in.readString(); - //printf("done, read the name...\n"); - tempMP.k = in.readInteger(); - //printf("done, read k...\n"); - tempLevel = in.readInteger(); - //printf("done, read level...\n"); - in.readLine(); - //printf("done, read the values...\n"); - para->getParH(tempLevel)->MP.push_back(tempMP); - //printf("done, put it into a vector...\n"); - } + UbFileInputASCII in(para->getmeasurePoints()); + int numberOfAllNodes = in.readInteger(); + in.readLine(); + int tempLevel; + MeasurePoints tempMP; + //printf("done, init the values...\n"); + for (int u = 0; u < numberOfAllNodes; u++) + { + tempMP.name = in.readString(); + //printf("done, read the name...\n"); + tempMP.k = in.readInteger(); + //printf("done, read k...\n"); + tempLevel = in.readInteger(); + //printf("done, read level...\n"); + in.readLine(); + //printf("done, read the values...\n"); + para->getParH(tempLevel)->MP.push_back(tempMP); + //printf("done, put it into a vector...\n"); + } } diff --git a/src/gpu/core/Init/VfReader.cpp b/src/gpu/core/Init/VfReader.cpp index 1406abff0ed77399333fda33353f9f231953d3df..8a567200863cfa5ff78c24b04a619cfccf6fa036 100644 --- a/src/gpu/core/Init/VfReader.cpp +++ b/src/gpu/core/Init/VfReader.cpp @@ -7,61 +7,61 @@ //////////////////////////////////////////////////////////////////////////////// void readPropellerCylinder(Parameter* para, CudaMemoryManager* cudaMemoryManager) { - PositionReader::readFilePropellerCylinderForAlloc(para); + PositionReader::readFilePropellerCylinderForAlloc(para); - cudaMemoryManager->cudaAllocVeloPropeller(para->getFine()); + cudaMemoryManager->cudaAllocVeloPropeller(para->getFine()); - PositionReader::readFilePropellerCylinder(para); - //PositionReader::definePropellerQs(para); + PositionReader::readFilePropellerCylinder(para); + //PositionReader::definePropellerQs(para); - cudaMemoryManager->cudaCopyVeloPropeller(para->getFine()); + cudaMemoryManager->cudaCopyVeloPropeller(para->getFine()); } //////////////////////////////////////////////////////////////////////////////// void readMeasurePoints(Parameter* para, CudaMemoryManager* cudaMemoryManager) { - //read measure points from file - PositionReader::readMeasurePoints(para); - //printf("done, reading the file...\n"); - //level loop - for (int lev = 0; lev <= para->getMaxLevel(); lev++) - { - //set Memory Size and malloc of the indices and macroscopic values per level - para->getParH(lev)->numberOfValuesMP = (unsigned int)para->getParH(lev)->MP.size()*(unsigned int)para->getclockCycleForMP()/((unsigned int)para->getTimestepForMP()); - para->getParD(lev)->numberOfValuesMP = para->getParH(lev)->numberOfValuesMP; - - para->getParH(lev)->numberOfPointskMP = (int)para->getParH(lev)->MP.size(); - para->getParD(lev)->numberOfPointskMP = para->getParH(lev)->numberOfPointskMP; - - para->getParH(lev)->memSizeIntkMP = sizeof(unsigned int)*(int)para->getParH(lev)->MP.size(); - para->getParD(lev)->memSizeIntkMP = para->getParH(lev)->memSizeIntkMP; - - para->getParH(lev)->memSizerealkMP = sizeof(real)*para->getParH(lev)->numberOfValuesMP; - para->getParD(lev)->memSizerealkMP = para->getParH(lev)->memSizerealkMP; - - printf("Level: %d, numberOfValuesMP: %d, memSizeIntkMP: %d, memSizerealkMP: %d\n",lev,para->getParH(lev)->numberOfValuesMP,para->getParH(lev)->memSizeIntkMP, para->getParD(lev)->memSizerealkMP); - - cudaMemoryManager->cudaAllocMeasurePointsIndex(lev); - - //loop over all measure points per level - for(int index = 0; index < (int)para->getParH(lev)->MP.size(); index++) - { - //set indices - para->getParH(lev)->kMP[index] = para->getParH(lev)->MP[index].k; - } - //loop over all measure points per level times MPClockCycle - for(int index = 0; index < (int)para->getParH(lev)->numberOfValuesMP; index++) - { - //init values - para->getParH(lev)->VxMP[index] = (real)0.0; - para->getParH(lev)->VyMP[index] = (real)0.0; - para->getParH(lev)->VzMP[index] = (real)0.0; - para->getParH(lev)->RhoMP[index] = (real)0.0; - } - - //copy indices-arrays - cudaMemoryManager->cudaCopyMeasurePointsIndex(lev); - } + //read measure points from file + PositionReader::readMeasurePoints(para); + //printf("done, reading the file...\n"); + //level loop + for (int lev = 0; lev <= para->getMaxLevel(); lev++) + { + //set Memory Size and malloc of the indices and macroscopic values per level + para->getParH(lev)->numberOfValuesMP = (unsigned int)para->getParH(lev)->MP.size()*(unsigned int)para->getclockCycleForMP()/((unsigned int)para->getTimestepForMP()); + para->getParD(lev)->numberOfValuesMP = para->getParH(lev)->numberOfValuesMP; + + para->getParH(lev)->numberOfPointskMP = (int)para->getParH(lev)->MP.size(); + para->getParD(lev)->numberOfPointskMP = para->getParH(lev)->numberOfPointskMP; + + para->getParH(lev)->memSizeIntkMP = sizeof(unsigned int)*(int)para->getParH(lev)->MP.size(); + para->getParD(lev)->memSizeIntkMP = para->getParH(lev)->memSizeIntkMP; + + para->getParH(lev)->memSizerealkMP = sizeof(real)*para->getParH(lev)->numberOfValuesMP; + para->getParD(lev)->memSizerealkMP = para->getParH(lev)->memSizerealkMP; + + printf("Level: %d, numberOfValuesMP: %d, memSizeIntkMP: %d, memSizerealkMP: %d\n",lev,para->getParH(lev)->numberOfValuesMP,para->getParH(lev)->memSizeIntkMP, para->getParD(lev)->memSizerealkMP); + + cudaMemoryManager->cudaAllocMeasurePointsIndex(lev); + + //loop over all measure points per level + for(int index = 0; index < (int)para->getParH(lev)->MP.size(); index++) + { + //set indices + para->getParH(lev)->kMP[index] = para->getParH(lev)->MP[index].k; + } + //loop over all measure points per level times MPClockCycle + for(int index = 0; index < (int)para->getParH(lev)->numberOfValuesMP; index++) + { + //init values + para->getParH(lev)->VxMP[index] = (real)0.0; + para->getParH(lev)->VyMP[index] = (real)0.0; + para->getParH(lev)->VzMP[index] = (real)0.0; + para->getParH(lev)->RhoMP[index] = (real)0.0; + } + + //copy indices-arrays + cudaMemoryManager->cudaCopyMeasurePointsIndex(lev); + } } //////////////////////////////////////////////////////////////////////////////// diff --git a/src/gpu/core/Kernel/Compressible/AdvectionDiffusion/F16/F16CompressibleAdvectionDiffusion.cu b/src/gpu/core/Kernel/Compressible/AdvectionDiffusion/F16/F16CompressibleAdvectionDiffusion.cu index 33b1a5c89544c115d948b35eef5161ba7d02e8e9..d9b1027576beb8ceb016318e032b62eec60bebeb 100644 --- a/src/gpu/core/Kernel/Compressible/AdvectionDiffusion/F16/F16CompressibleAdvectionDiffusion.cu +++ b/src/gpu/core/Kernel/Compressible/AdvectionDiffusion/F16/F16CompressibleAdvectionDiffusion.cu @@ -6,7 +6,7 @@ std::shared_ptr<F16CompressibleAdvectionDiffusion> F16CompressibleAdvectionDiffusion::getNewInstance(std::shared_ptr<Parameter> para, int level) { - return std::shared_ptr<F16CompressibleAdvectionDiffusion>(new F16CompressibleAdvectionDiffusion(para, level)); + return std::shared_ptr<F16CompressibleAdvectionDiffusion>(new F16CompressibleAdvectionDiffusion(para, level)); } void F16CompressibleAdvectionDiffusion::run() @@ -29,10 +29,10 @@ void F16CompressibleAdvectionDiffusion::run() F16CompressibleAdvectionDiffusion::F16CompressibleAdvectionDiffusion(std::shared_ptr<Parameter> para, int level) { - this->para = para; - this->level = level; + this->para = para; + this->level = level; - myPreProcessorTypes.push_back(InitCompAD27); + myPreProcessorTypes.push_back(InitAdvectionDiffusionCompressible); } diff --git a/src/gpu/core/Kernel/Compressible/AdvectionDiffusion/F16/F16CompressibleAdvectionDiffusion.h b/src/gpu/core/Kernel/Compressible/AdvectionDiffusion/F16/F16CompressibleAdvectionDiffusion.h index 5eda04602ce24aa5f2bac5c6043aee7f7dcc47c6..fa4d7db685627e084a83bdc56db6b8d87cb8ce32 100644 --- a/src/gpu/core/Kernel/Compressible/AdvectionDiffusion/F16/F16CompressibleAdvectionDiffusion.h +++ b/src/gpu/core/Kernel/Compressible/AdvectionDiffusion/F16/F16CompressibleAdvectionDiffusion.h @@ -6,11 +6,11 @@ class F16CompressibleAdvectionDiffusion : public AdvectionDiffusionKernel { public: - static std::shared_ptr<F16CompressibleAdvectionDiffusion> getNewInstance(std::shared_ptr< Parameter> para, int level); - void run(); + static std::shared_ptr<F16CompressibleAdvectionDiffusion> getNewInstance(std::shared_ptr< Parameter> para, int level); + void run(); private: - F16CompressibleAdvectionDiffusion(); - F16CompressibleAdvectionDiffusion(std::shared_ptr< Parameter> para, int level); + F16CompressibleAdvectionDiffusion(); + F16CompressibleAdvectionDiffusion(std::shared_ptr< Parameter> para, int level); }; #endif \ No newline at end of file diff --git a/src/gpu/core/Kernel/Compressible/AdvectionDiffusion/F16/F16CompressibleAdvectionDiffusion_Device.cu b/src/gpu/core/Kernel/Compressible/AdvectionDiffusion/F16/F16CompressibleAdvectionDiffusion_Device.cu index 29d7f9961b0dcdf546ce0081cffc5e77b0dae6c8..dbd9a6bf32329b0e35cb9aaa0c0d08ca70d083f5 100644 --- a/src/gpu/core/Kernel/Compressible/AdvectionDiffusion/F16/F16CompressibleAdvectionDiffusion_Device.cu +++ b/src/gpu/core/Kernel/Compressible/AdvectionDiffusion/F16/F16CompressibleAdvectionDiffusion_Device.cu @@ -9,269 +9,269 @@ using namespace vf::lbm::dir; #include "math.h" __global__ void F16CompressibleAdvectionDiffusion_Device( - real omegaDiffusivity, - uint* typeOfGridNode, - uint* neighborX, - uint* neighborY, - uint* neighborZ, - real* distributions, - real* distributionsAD, - unsigned long long numberOfLBnodes, - real* forces, - bool isEvenTimestep) + real omegaDiffusivity, + uint* typeOfGridNode, + uint* neighborX, + uint* neighborY, + uint* neighborZ, + real* distributions, + real* distributionsAD, + unsigned long long numberOfLBnodes, + real* forces, + bool isEvenTimestep) { - ////////////////////////////////////////////////////////////////////////// - //! Cumulant K17 Kernel is based on \ref - //! <a href="https://doi.org/10.1016/j.jcp.2017.05.040"><b>[ M. Geier et al. (2017), DOI:10.1016/j.jcp.2017.05.040 ]</b></a> - //! and \ref - //! <a href="https://doi.org/10.1016/j.jcp.2017.07.004"><b>[ M. Geier et al. (2017), DOI:10.1016/j.jcp.2017.07.004 ]</b></a> - //! - //! The cumulant kernel is executed in the following steps - //! - //////////////////////////////////////////////////////////////////////////////// - //! - Get node index coordinates from threadIdx, blockIdx, blockDim and gridDim. - //! - const unsigned x = threadIdx.x; - const unsigned y = blockIdx.x; - const unsigned z = blockIdx.y; + ////////////////////////////////////////////////////////////////////////// + //! Cumulant K17 Kernel is based on \ref + //! <a href="https://doi.org/10.1016/j.jcp.2017.05.040"><b>[ M. Geier et al. (2017), DOI:10.1016/j.jcp.2017.05.040 ]</b></a> + //! and \ref + //! <a href="https://doi.org/10.1016/j.jcp.2017.07.004"><b>[ M. Geier et al. (2017), DOI:10.1016/j.jcp.2017.07.004 ]</b></a> + //! + //! The cumulant kernel is executed in the following steps + //! + //////////////////////////////////////////////////////////////////////////////// + //! - Get node index coordinates from threadIdx, blockIdx, blockDim and gridDim. + //! + const unsigned x = threadIdx.x; + const unsigned y = blockIdx.x; + const unsigned z = blockIdx.y; - const unsigned nx = blockDim.x; - const unsigned ny = gridDim.x; + const unsigned nx = blockDim.x; + const unsigned ny = gridDim.x; - const unsigned k = nx*(ny*z + y) + x; + const unsigned k = nx*(ny*z + y) + x; - ////////////////////////////////////////////////////////////////////////// - // run for all indices in size_Mat and fluid nodes - if ((k < numberOfLBnodes) && (typeOfGridNode[k] == GEO_FLUID)) - { - ////////////////////////////////////////////////////////////////////////// - //! - Read distributions: style of reading and writing the distributions from/to stored arrays dependent on timestep is based on the esoteric twist algorithm \ref - //! <a href="https://doi.org/10.3390/computation5020019"><b>[ M. Geier et al. (2017), DOI:10.3390/computation5020019 ]</b></a> - //! - Distributions27 dist; - if (isEvenTimestep) - { - dist.f[dP00] = &distributions[dP00 * numberOfLBnodes]; - dist.f[dM00] = &distributions[dM00 * numberOfLBnodes]; - dist.f[d0P0] = &distributions[d0P0 * numberOfLBnodes]; - dist.f[d0M0] = &distributions[d0M0 * numberOfLBnodes]; - dist.f[d00P] = &distributions[d00P * numberOfLBnodes]; - dist.f[d00M] = &distributions[d00M * numberOfLBnodes]; - dist.f[dPP0] = &distributions[dPP0 * numberOfLBnodes]; - dist.f[dMM0] = &distributions[dMM0 * numberOfLBnodes]; - dist.f[dPM0] = &distributions[dPM0 * numberOfLBnodes]; - dist.f[dMP0] = &distributions[dMP0 * numberOfLBnodes]; - dist.f[dP0P] = &distributions[dP0P * numberOfLBnodes]; - dist.f[dM0M] = &distributions[dM0M * numberOfLBnodes]; - dist.f[dP0M] = &distributions[dP0M * numberOfLBnodes]; - dist.f[dM0P] = &distributions[dM0P * numberOfLBnodes]; - dist.f[d0PP] = &distributions[d0PP * numberOfLBnodes]; - dist.f[d0MM] = &distributions[d0MM * numberOfLBnodes]; - dist.f[d0PM] = &distributions[d0PM * numberOfLBnodes]; - dist.f[d0MP] = &distributions[d0MP * numberOfLBnodes]; - dist.f[d000] = &distributions[d000 * numberOfLBnodes]; - dist.f[dPPP] = &distributions[dPPP * numberOfLBnodes]; - dist.f[dMMP] = &distributions[dMMP * numberOfLBnodes]; - dist.f[dPMP] = &distributions[dPMP * numberOfLBnodes]; - dist.f[dMPP] = &distributions[dMPP * numberOfLBnodes]; - dist.f[dPPM] = &distributions[dPPM * numberOfLBnodes]; - dist.f[dMMM] = &distributions[dMMM * numberOfLBnodes]; - dist.f[dPMM] = &distributions[dPMM * numberOfLBnodes]; - dist.f[dMPM] = &distributions[dMPM * numberOfLBnodes]; - } - else - { - dist.f[dM00] = &distributions[dP00 * numberOfLBnodes]; - dist.f[dP00] = &distributions[dM00 * numberOfLBnodes]; - dist.f[d0M0] = &distributions[d0P0 * numberOfLBnodes]; - dist.f[d0P0] = &distributions[d0M0 * numberOfLBnodes]; - dist.f[d00M] = &distributions[d00P * numberOfLBnodes]; - dist.f[d00P] = &distributions[d00M * numberOfLBnodes]; - dist.f[dMM0] = &distributions[dPP0 * numberOfLBnodes]; - dist.f[dPP0] = &distributions[dMM0 * numberOfLBnodes]; - dist.f[dMP0] = &distributions[dPM0 * numberOfLBnodes]; - dist.f[dPM0] = &distributions[dMP0 * numberOfLBnodes]; - dist.f[dM0M] = &distributions[dP0P * numberOfLBnodes]; - dist.f[dP0P] = &distributions[dM0M * numberOfLBnodes]; - dist.f[dM0P] = &distributions[dP0M * numberOfLBnodes]; - dist.f[dP0M] = &distributions[dM0P * numberOfLBnodes]; - dist.f[d0MM] = &distributions[d0PP * numberOfLBnodes]; - dist.f[d0PP] = &distributions[d0MM * numberOfLBnodes]; - dist.f[d0MP] = &distributions[d0PM * numberOfLBnodes]; - dist.f[d0PM] = &distributions[d0MP * numberOfLBnodes]; - dist.f[d000] = &distributions[d000 * numberOfLBnodes]; - dist.f[dMMM] = &distributions[dPPP * numberOfLBnodes]; - dist.f[dPPM] = &distributions[dMMP * numberOfLBnodes]; - dist.f[dMPM] = &distributions[dPMP * numberOfLBnodes]; - dist.f[dPMM] = &distributions[dMPP * numberOfLBnodes]; - dist.f[dMMP] = &distributions[dPPM * numberOfLBnodes]; - dist.f[dPPP] = &distributions[dMMM * numberOfLBnodes]; - dist.f[dMPP] = &distributions[dPMM * numberOfLBnodes]; - dist.f[dPMP] = &distributions[dMPM * numberOfLBnodes]; - } - //////////////////////////////////////////////////////////////////////////////// - Distributions27 distAD; - if (isEvenTimestep) - { - distAD.f[dP00] = &distributionsAD[dP00 * numberOfLBnodes]; - distAD.f[dM00] = &distributionsAD[dM00 * numberOfLBnodes]; - distAD.f[d0P0] = &distributionsAD[d0P0 * numberOfLBnodes]; - distAD.f[d0M0] = &distributionsAD[d0M0 * numberOfLBnodes]; - distAD.f[d00P] = &distributionsAD[d00P * numberOfLBnodes]; - distAD.f[d00M] = &distributionsAD[d00M * numberOfLBnodes]; - distAD.f[dPP0] = &distributionsAD[dPP0 * numberOfLBnodes]; - distAD.f[dMM0] = &distributionsAD[dMM0 * numberOfLBnodes]; - distAD.f[dPM0] = &distributionsAD[dPM0 * numberOfLBnodes]; - distAD.f[dMP0] = &distributionsAD[dMP0 * numberOfLBnodes]; - distAD.f[dP0P] = &distributionsAD[dP0P * numberOfLBnodes]; - distAD.f[dM0M] = &distributionsAD[dM0M * numberOfLBnodes]; - distAD.f[dP0M] = &distributionsAD[dP0M * numberOfLBnodes]; - distAD.f[dM0P] = &distributionsAD[dM0P * numberOfLBnodes]; - distAD.f[d0PP] = &distributionsAD[d0PP * numberOfLBnodes]; - distAD.f[d0MM] = &distributionsAD[d0MM * numberOfLBnodes]; - distAD.f[d0PM] = &distributionsAD[d0PM * numberOfLBnodes]; - distAD.f[d0MP] = &distributionsAD[d0MP * numberOfLBnodes]; - distAD.f[d000] = &distributionsAD[d000 * numberOfLBnodes]; - distAD.f[dPPP] = &distributionsAD[dPPP * numberOfLBnodes]; - distAD.f[dMMP] = &distributionsAD[dMMP * numberOfLBnodes]; - distAD.f[dPMP] = &distributionsAD[dPMP * numberOfLBnodes]; - distAD.f[dMPP] = &distributionsAD[dMPP * numberOfLBnodes]; - distAD.f[dPPM] = &distributionsAD[dPPM * numberOfLBnodes]; - distAD.f[dMMM] = &distributionsAD[dMMM * numberOfLBnodes]; - distAD.f[dPMM] = &distributionsAD[dPMM * numberOfLBnodes]; - distAD.f[dMPM] = &distributionsAD[dMPM * numberOfLBnodes]; - } - else - { - distAD.f[dM00] = &distributionsAD[dP00 * numberOfLBnodes]; - distAD.f[dP00] = &distributionsAD[dM00 * numberOfLBnodes]; - distAD.f[d0M0] = &distributionsAD[d0P0 * numberOfLBnodes]; - distAD.f[d0P0] = &distributionsAD[d0M0 * numberOfLBnodes]; - distAD.f[d00M] = &distributionsAD[d00P * numberOfLBnodes]; - distAD.f[d00P] = &distributionsAD[d00M * numberOfLBnodes]; - distAD.f[dMM0] = &distributionsAD[dPP0 * numberOfLBnodes]; - distAD.f[dPP0] = &distributionsAD[dMM0 * numberOfLBnodes]; - distAD.f[dMP0] = &distributionsAD[dPM0 * numberOfLBnodes]; - distAD.f[dPM0] = &distributionsAD[dMP0 * numberOfLBnodes]; - distAD.f[dM0M] = &distributionsAD[dP0P * numberOfLBnodes]; - distAD.f[dP0P] = &distributionsAD[dM0M * numberOfLBnodes]; - distAD.f[dM0P] = &distributionsAD[dP0M * numberOfLBnodes]; - distAD.f[dP0M] = &distributionsAD[dM0P * numberOfLBnodes]; - distAD.f[d0MM] = &distributionsAD[d0PP * numberOfLBnodes]; - distAD.f[d0PP] = &distributionsAD[d0MM * numberOfLBnodes]; - distAD.f[d0MP] = &distributionsAD[d0PM * numberOfLBnodes]; - distAD.f[d0PM] = &distributionsAD[d0MP * numberOfLBnodes]; - distAD.f[d000] = &distributionsAD[d000 * numberOfLBnodes]; - distAD.f[dMMM] = &distributionsAD[dPPP * numberOfLBnodes]; - distAD.f[dPPM] = &distributionsAD[dMMP * numberOfLBnodes]; - distAD.f[dMPM] = &distributionsAD[dPMP * numberOfLBnodes]; - distAD.f[dPMM] = &distributionsAD[dMPP * numberOfLBnodes]; - distAD.f[dMMP] = &distributionsAD[dPPM * numberOfLBnodes]; - distAD.f[dPPP] = &distributionsAD[dMMM * numberOfLBnodes]; - distAD.f[dMPP] = &distributionsAD[dPMM * numberOfLBnodes]; - distAD.f[dPMP] = &distributionsAD[dMPM * numberOfLBnodes]; - } - //////////////////////////////////////////////////////////////////////////////// - //! - Set neighbor indices (necessary for indirect addressing) - uint kw = neighborX[k]; - uint ks = neighborY[k]; - uint kb = neighborZ[k]; - uint ksw = neighborY[kw]; - uint kbw = neighborZ[kw]; - uint kbs = neighborZ[ks]; - uint kbsw = neighborZ[ksw]; - //////////////////////////////////////////////////////////////////////////////////// - //! - Set local distributions Fluid - //! - real fcbb = (dist.f[dP00])[k]; - real fabb = (dist.f[dM00])[kw]; - real fbcb = (dist.f[d0P0])[k]; - real fbab = (dist.f[d0M0])[ks]; - real fbbc = (dist.f[d00P])[k]; - real fbba = (dist.f[d00M])[kb]; - real fccb = (dist.f[dPP0])[k]; - real faab = (dist.f[dMM0])[ksw]; - real fcab = (dist.f[dPM0])[ks]; - real facb = (dist.f[dMP0])[kw]; - real fcbc = (dist.f[dP0P])[k]; - real faba = (dist.f[dM0M])[kbw]; - real fcba = (dist.f[dP0M])[kb]; - real fabc = (dist.f[dM0P])[kw]; - real fbcc = (dist.f[d0PP])[k]; - real fbaa = (dist.f[d0MM])[kbs]; - real fbca = (dist.f[d0PM])[kb]; - real fbac = (dist.f[d0MP])[ks]; - real fbbb = (dist.f[d000])[k]; - real fccc = (dist.f[dPPP])[k]; - real faac = (dist.f[dMMP])[ksw]; - real fcac = (dist.f[dPMP])[ks]; - real facc = (dist.f[dMPP])[kw]; - real fcca = (dist.f[dPPM])[kb]; - real faaa = (dist.f[dMMM])[kbsw]; - real fcaa = (dist.f[dPMM])[kbs]; - real faca = (dist.f[dMPM])[kbw]; - //////////////////////////////////////////////////////////////////////////////////// - //! - Set local distributions Advection Diffusion - //! - real mfcbb = (distAD.f[dP00])[k]; - real mfabb = (distAD.f[dM00])[kw]; - real mfbcb = (distAD.f[d0P0])[k]; - real mfbab = (distAD.f[d0M0])[ks]; - real mfbbc = (distAD.f[d00P])[k]; - real mfbba = (distAD.f[d00M])[kb]; - real mfccb = (distAD.f[dPP0])[k]; - real mfaab = (distAD.f[dMM0])[ksw]; - real mfcab = (distAD.f[dPM0])[ks]; - real mfacb = (distAD.f[dMP0])[kw]; - real mfcbc = (distAD.f[dP0P])[k]; - real mfaba = (distAD.f[dM0M])[kbw]; - real mfcba = (distAD.f[dP0M])[kb]; - real mfabc = (distAD.f[dM0P])[kw]; - real mfbcc = (distAD.f[d0PP])[k]; - real mfbaa = (distAD.f[d0MM])[kbs]; - real mfbca = (distAD.f[d0PM])[kb]; - real mfbac = (distAD.f[d0MP])[ks]; - real mfbbb = (distAD.f[d000])[k]; - real mfccc = (distAD.f[dPPP])[k]; - real mfaac = (distAD.f[dMMP])[ksw]; - real mfcac = (distAD.f[dPMP])[ks]; - real mfacc = (distAD.f[dMPP])[kw]; - real mfcca = (distAD.f[dPPM])[kb]; - real mfaaa = (distAD.f[dMMM])[kbsw]; - real mfcaa = (distAD.f[dPMM])[kbs]; - real mfaca = (distAD.f[dMPM])[kbw]; - //////////////////////////////////////////////////////////////////////////////////// - //! - Calculate density and velocity using pyramid summation for low round-off errors as in Eq. (J1)-(J3) \ref - //! <a href="https://doi.org/10.1016/j.camwa.2015.05.001"><b>[ M. Geier et al. (2015), DOI:10.1016/j.camwa.2015.05.001 ]</b></a> - //! - //////////////////////////////////////////////////////////////////////////////////// - // fluid component - real drhoFluid = - ((((fccc + faaa) + (faca + fcac)) + ((facc + fcaa) + (faac + fcca))) + - (((fbac + fbca) + (fbaa + fbcc)) + ((fabc + fcba) + (faba + fcbc)) + ((facb + fcab) + (faab + fccb))) + - ((fabb + fcbb) + (fbab + fbcb) + (fbba + fbbc))) + fbbb; + ////////////////////////////////////////////////////////////////////////// + // run for all indices in size_Mat and fluid nodes + if ((k < numberOfLBnodes) && (typeOfGridNode[k] == GEO_FLUID)) + { + ////////////////////////////////////////////////////////////////////////// + //! - Read distributions: style of reading and writing the distributions from/to stored arrays dependent on timestep is based on the esoteric twist algorithm \ref + //! <a href="https://doi.org/10.3390/computation5020019"><b>[ M. Geier et al. (2017), DOI:10.3390/computation5020019 ]</b></a> + //! + Distributions27 dist; + if (isEvenTimestep) + { + dist.f[dP00] = &distributions[dP00 * numberOfLBnodes]; + dist.f[dM00] = &distributions[dM00 * numberOfLBnodes]; + dist.f[d0P0] = &distributions[d0P0 * numberOfLBnodes]; + dist.f[d0M0] = &distributions[d0M0 * numberOfLBnodes]; + dist.f[d00P] = &distributions[d00P * numberOfLBnodes]; + dist.f[d00M] = &distributions[d00M * numberOfLBnodes]; + dist.f[dPP0] = &distributions[dPP0 * numberOfLBnodes]; + dist.f[dMM0] = &distributions[dMM0 * numberOfLBnodes]; + dist.f[dPM0] = &distributions[dPM0 * numberOfLBnodes]; + dist.f[dMP0] = &distributions[dMP0 * numberOfLBnodes]; + dist.f[dP0P] = &distributions[dP0P * numberOfLBnodes]; + dist.f[dM0M] = &distributions[dM0M * numberOfLBnodes]; + dist.f[dP0M] = &distributions[dP0M * numberOfLBnodes]; + dist.f[dM0P] = &distributions[dM0P * numberOfLBnodes]; + dist.f[d0PP] = &distributions[d0PP * numberOfLBnodes]; + dist.f[d0MM] = &distributions[d0MM * numberOfLBnodes]; + dist.f[d0PM] = &distributions[d0PM * numberOfLBnodes]; + dist.f[d0MP] = &distributions[d0MP * numberOfLBnodes]; + dist.f[d000] = &distributions[d000 * numberOfLBnodes]; + dist.f[dPPP] = &distributions[dPPP * numberOfLBnodes]; + dist.f[dMMP] = &distributions[dMMP * numberOfLBnodes]; + dist.f[dPMP] = &distributions[dPMP * numberOfLBnodes]; + dist.f[dMPP] = &distributions[dMPP * numberOfLBnodes]; + dist.f[dPPM] = &distributions[dPPM * numberOfLBnodes]; + dist.f[dMMM] = &distributions[dMMM * numberOfLBnodes]; + dist.f[dPMM] = &distributions[dPMM * numberOfLBnodes]; + dist.f[dMPM] = &distributions[dMPM * numberOfLBnodes]; + } + else + { + dist.f[dM00] = &distributions[dP00 * numberOfLBnodes]; + dist.f[dP00] = &distributions[dM00 * numberOfLBnodes]; + dist.f[d0M0] = &distributions[d0P0 * numberOfLBnodes]; + dist.f[d0P0] = &distributions[d0M0 * numberOfLBnodes]; + dist.f[d00M] = &distributions[d00P * numberOfLBnodes]; + dist.f[d00P] = &distributions[d00M * numberOfLBnodes]; + dist.f[dMM0] = &distributions[dPP0 * numberOfLBnodes]; + dist.f[dPP0] = &distributions[dMM0 * numberOfLBnodes]; + dist.f[dMP0] = &distributions[dPM0 * numberOfLBnodes]; + dist.f[dPM0] = &distributions[dMP0 * numberOfLBnodes]; + dist.f[dM0M] = &distributions[dP0P * numberOfLBnodes]; + dist.f[dP0P] = &distributions[dM0M * numberOfLBnodes]; + dist.f[dM0P] = &distributions[dP0M * numberOfLBnodes]; + dist.f[dP0M] = &distributions[dM0P * numberOfLBnodes]; + dist.f[d0MM] = &distributions[d0PP * numberOfLBnodes]; + dist.f[d0PP] = &distributions[d0MM * numberOfLBnodes]; + dist.f[d0MP] = &distributions[d0PM * numberOfLBnodes]; + dist.f[d0PM] = &distributions[d0MP * numberOfLBnodes]; + dist.f[d000] = &distributions[d000 * numberOfLBnodes]; + dist.f[dMMM] = &distributions[dPPP * numberOfLBnodes]; + dist.f[dPPM] = &distributions[dMMP * numberOfLBnodes]; + dist.f[dMPM] = &distributions[dPMP * numberOfLBnodes]; + dist.f[dPMM] = &distributions[dMPP * numberOfLBnodes]; + dist.f[dMMP] = &distributions[dPPM * numberOfLBnodes]; + dist.f[dPPP] = &distributions[dMMM * numberOfLBnodes]; + dist.f[dMPP] = &distributions[dPMM * numberOfLBnodes]; + dist.f[dPMP] = &distributions[dMPM * numberOfLBnodes]; + } + //////////////////////////////////////////////////////////////////////////////// + Distributions27 distAD; + if (isEvenTimestep) + { + distAD.f[dP00] = &distributionsAD[dP00 * numberOfLBnodes]; + distAD.f[dM00] = &distributionsAD[dM00 * numberOfLBnodes]; + distAD.f[d0P0] = &distributionsAD[d0P0 * numberOfLBnodes]; + distAD.f[d0M0] = &distributionsAD[d0M0 * numberOfLBnodes]; + distAD.f[d00P] = &distributionsAD[d00P * numberOfLBnodes]; + distAD.f[d00M] = &distributionsAD[d00M * numberOfLBnodes]; + distAD.f[dPP0] = &distributionsAD[dPP0 * numberOfLBnodes]; + distAD.f[dMM0] = &distributionsAD[dMM0 * numberOfLBnodes]; + distAD.f[dPM0] = &distributionsAD[dPM0 * numberOfLBnodes]; + distAD.f[dMP0] = &distributionsAD[dMP0 * numberOfLBnodes]; + distAD.f[dP0P] = &distributionsAD[dP0P * numberOfLBnodes]; + distAD.f[dM0M] = &distributionsAD[dM0M * numberOfLBnodes]; + distAD.f[dP0M] = &distributionsAD[dP0M * numberOfLBnodes]; + distAD.f[dM0P] = &distributionsAD[dM0P * numberOfLBnodes]; + distAD.f[d0PP] = &distributionsAD[d0PP * numberOfLBnodes]; + distAD.f[d0MM] = &distributionsAD[d0MM * numberOfLBnodes]; + distAD.f[d0PM] = &distributionsAD[d0PM * numberOfLBnodes]; + distAD.f[d0MP] = &distributionsAD[d0MP * numberOfLBnodes]; + distAD.f[d000] = &distributionsAD[d000 * numberOfLBnodes]; + distAD.f[dPPP] = &distributionsAD[dPPP * numberOfLBnodes]; + distAD.f[dMMP] = &distributionsAD[dMMP * numberOfLBnodes]; + distAD.f[dPMP] = &distributionsAD[dPMP * numberOfLBnodes]; + distAD.f[dMPP] = &distributionsAD[dMPP * numberOfLBnodes]; + distAD.f[dPPM] = &distributionsAD[dPPM * numberOfLBnodes]; + distAD.f[dMMM] = &distributionsAD[dMMM * numberOfLBnodes]; + distAD.f[dPMM] = &distributionsAD[dPMM * numberOfLBnodes]; + distAD.f[dMPM] = &distributionsAD[dMPM * numberOfLBnodes]; + } + else + { + distAD.f[dM00] = &distributionsAD[dP00 * numberOfLBnodes]; + distAD.f[dP00] = &distributionsAD[dM00 * numberOfLBnodes]; + distAD.f[d0M0] = &distributionsAD[d0P0 * numberOfLBnodes]; + distAD.f[d0P0] = &distributionsAD[d0M0 * numberOfLBnodes]; + distAD.f[d00M] = &distributionsAD[d00P * numberOfLBnodes]; + distAD.f[d00P] = &distributionsAD[d00M * numberOfLBnodes]; + distAD.f[dMM0] = &distributionsAD[dPP0 * numberOfLBnodes]; + distAD.f[dPP0] = &distributionsAD[dMM0 * numberOfLBnodes]; + distAD.f[dMP0] = &distributionsAD[dPM0 * numberOfLBnodes]; + distAD.f[dPM0] = &distributionsAD[dMP0 * numberOfLBnodes]; + distAD.f[dM0M] = &distributionsAD[dP0P * numberOfLBnodes]; + distAD.f[dP0P] = &distributionsAD[dM0M * numberOfLBnodes]; + distAD.f[dM0P] = &distributionsAD[dP0M * numberOfLBnodes]; + distAD.f[dP0M] = &distributionsAD[dM0P * numberOfLBnodes]; + distAD.f[d0MM] = &distributionsAD[d0PP * numberOfLBnodes]; + distAD.f[d0PP] = &distributionsAD[d0MM * numberOfLBnodes]; + distAD.f[d0MP] = &distributionsAD[d0PM * numberOfLBnodes]; + distAD.f[d0PM] = &distributionsAD[d0MP * numberOfLBnodes]; + distAD.f[d000] = &distributionsAD[d000 * numberOfLBnodes]; + distAD.f[dMMM] = &distributionsAD[dPPP * numberOfLBnodes]; + distAD.f[dPPM] = &distributionsAD[dMMP * numberOfLBnodes]; + distAD.f[dMPM] = &distributionsAD[dPMP * numberOfLBnodes]; + distAD.f[dPMM] = &distributionsAD[dMPP * numberOfLBnodes]; + distAD.f[dMMP] = &distributionsAD[dPPM * numberOfLBnodes]; + distAD.f[dPPP] = &distributionsAD[dMMM * numberOfLBnodes]; + distAD.f[dMPP] = &distributionsAD[dPMM * numberOfLBnodes]; + distAD.f[dPMP] = &distributionsAD[dMPM * numberOfLBnodes]; + } + //////////////////////////////////////////////////////////////////////////////// + //! - Set neighbor indices (necessary for indirect addressing) + uint kw = neighborX[k]; + uint ks = neighborY[k]; + uint kb = neighborZ[k]; + uint ksw = neighborY[kw]; + uint kbw = neighborZ[kw]; + uint kbs = neighborZ[ks]; + uint kbsw = neighborZ[ksw]; + //////////////////////////////////////////////////////////////////////////////////// + //! - Set local distributions Fluid + //! + real fcbb = (dist.f[dP00])[k]; + real fabb = (dist.f[dM00])[kw]; + real fbcb = (dist.f[d0P0])[k]; + real fbab = (dist.f[d0M0])[ks]; + real fbbc = (dist.f[d00P])[k]; + real fbba = (dist.f[d00M])[kb]; + real fccb = (dist.f[dPP0])[k]; + real faab = (dist.f[dMM0])[ksw]; + real fcab = (dist.f[dPM0])[ks]; + real facb = (dist.f[dMP0])[kw]; + real fcbc = (dist.f[dP0P])[k]; + real faba = (dist.f[dM0M])[kbw]; + real fcba = (dist.f[dP0M])[kb]; + real fabc = (dist.f[dM0P])[kw]; + real fbcc = (dist.f[d0PP])[k]; + real fbaa = (dist.f[d0MM])[kbs]; + real fbca = (dist.f[d0PM])[kb]; + real fbac = (dist.f[d0MP])[ks]; + real fbbb = (dist.f[d000])[k]; + real fccc = (dist.f[dPPP])[k]; + real faac = (dist.f[dMMP])[ksw]; + real fcac = (dist.f[dPMP])[ks]; + real facc = (dist.f[dMPP])[kw]; + real fcca = (dist.f[dPPM])[kb]; + real faaa = (dist.f[dMMM])[kbsw]; + real fcaa = (dist.f[dPMM])[kbs]; + real faca = (dist.f[dMPM])[kbw]; + //////////////////////////////////////////////////////////////////////////////////// + //! - Set local distributions Advection Diffusion + //! + real mfcbb = (distAD.f[dP00])[k]; + real mfabb = (distAD.f[dM00])[kw]; + real mfbcb = (distAD.f[d0P0])[k]; + real mfbab = (distAD.f[d0M0])[ks]; + real mfbbc = (distAD.f[d00P])[k]; + real mfbba = (distAD.f[d00M])[kb]; + real mfccb = (distAD.f[dPP0])[k]; + real mfaab = (distAD.f[dMM0])[ksw]; + real mfcab = (distAD.f[dPM0])[ks]; + real mfacb = (distAD.f[dMP0])[kw]; + real mfcbc = (distAD.f[dP0P])[k]; + real mfaba = (distAD.f[dM0M])[kbw]; + real mfcba = (distAD.f[dP0M])[kb]; + real mfabc = (distAD.f[dM0P])[kw]; + real mfbcc = (distAD.f[d0PP])[k]; + real mfbaa = (distAD.f[d0MM])[kbs]; + real mfbca = (distAD.f[d0PM])[kb]; + real mfbac = (distAD.f[d0MP])[ks]; + real mfbbb = (distAD.f[d000])[k]; + real mfccc = (distAD.f[dPPP])[k]; + real mfaac = (distAD.f[dMMP])[ksw]; + real mfcac = (distAD.f[dPMP])[ks]; + real mfacc = (distAD.f[dMPP])[kw]; + real mfcca = (distAD.f[dPPM])[kb]; + real mfaaa = (distAD.f[dMMM])[kbsw]; + real mfcaa = (distAD.f[dPMM])[kbs]; + real mfaca = (distAD.f[dMPM])[kbw]; + //////////////////////////////////////////////////////////////////////////////////// + //! - Calculate density and velocity using pyramid summation for low round-off errors as in Eq. (J1)-(J3) \ref + //! <a href="https://doi.org/10.1016/j.camwa.2015.05.001"><b>[ M. Geier et al. (2015), DOI:10.1016/j.camwa.2015.05.001 ]</b></a> + //! + //////////////////////////////////////////////////////////////////////////////////// + // fluid component + real drhoFluid = + ((((fccc + faaa) + (faca + fcac)) + ((facc + fcaa) + (faac + fcca))) + + (((fbac + fbca) + (fbaa + fbcc)) + ((fabc + fcba) + (faba + fcbc)) + ((facb + fcab) + (faab + fccb))) + + ((fabb + fcbb) + (fbab + fbcb) + (fbba + fbbc))) + fbbb; - real rhoFluid = c1o1 + drhoFluid; - real OOrhoFluid = c1o1 / rhoFluid; + real rhoFluid = c1o1 + drhoFluid; + real OOrhoFluid = c1o1 / rhoFluid; real vvx = - ((((fccc - faaa) + (fcac - faca)) + ((fcaa - facc) + (fcca - faac))) + - (((fcba - fabc) + (fcbc - faba)) + ((fcab - facb) + (fccb - faab))) + - (fcbb - fabb)) * OOrhoFluid; - real vvy = - ((((fccc - faaa) + (faca - fcac)) + ((facc - fcaa) + (fcca - faac))) + - (((fbca - fbac) + (fbcc - fbaa)) + ((facb - fcab) + (fccb - faab))) + - (fbcb - fbab)) * OOrhoFluid; - real vvz = - ((((fccc - faaa) + (fcac - faca)) + ((facc - fcaa) + (faac - fcca))) + - (((fbac - fbca) + (fbcc - fbaa)) + ((fabc - fcba) + (fcbc - faba))) + - (fbbc - fbba)) * OOrhoFluid; - //////////////////////////////////////////////////////////////////////////////////// - // second component - real rho = - ((((mfccc + mfaaa) + (mfaca + mfcac)) + ((mfacc + mfcaa) + (mfaac + mfcca))) + - (((mfbac + mfbca) + (mfbaa + mfbcc)) + ((mfabc + mfcba) + (mfaba + mfcbc)) + ((mfacb + mfcab) + (mfaab + mfccb))) + - ((mfabb + mfcbb) + (mfbab + mfbcb) + (mfbba + mfbbc))) + mfbbb; + ((((fccc - faaa) + (fcac - faca)) + ((fcaa - facc) + (fcca - faac))) + + (((fcba - fabc) + (fcbc - faba)) + ((fcab - facb) + (fccb - faab))) + + (fcbb - fabb)) * OOrhoFluid; + real vvy = + ((((fccc - faaa) + (faca - fcac)) + ((facc - fcaa) + (fcca - faac))) + + (((fbca - fbac) + (fbcc - fbaa)) + ((facb - fcab) + (fccb - faab))) + + (fbcb - fbab)) * OOrhoFluid; + real vvz = + ((((fccc - faaa) + (fcac - faca)) + ((facc - fcaa) + (faac - fcca))) + + (((fbac - fbca) + (fbcc - fbaa)) + ((fabc - fcba) + (fcbc - faba))) + + (fbbc - fbba)) * OOrhoFluid; + //////////////////////////////////////////////////////////////////////////////////// + // second component + real rho = + ((((mfccc + mfaaa) + (mfaca + mfcac)) + ((mfacc + mfcaa) + (mfaac + mfcca))) + + (((mfbac + mfbca) + (mfbaa + mfbcc)) + ((mfabc + mfcba) + (mfaba + mfcbc)) + ((mfacb + mfcab) + (mfaab + mfccb))) + + ((mfabb + mfcbb) + (mfbab + mfbcb) + (mfbba + mfbbc))) + mfbbb; //////////////////////////////////////////////////////////////////////////////////// //! - Add half of the acceleration (body force) to the velocity as in Eq. (42) \ref @@ -284,195 +284,195 @@ __global__ void F16CompressibleAdvectionDiffusion_Device( vvy += fy*c1o2; vvz += fz*c1o2; //////////////////////////////////////////////////////////////////////////////////// - // calculate the square of velocities for this lattice node - real vx2 = vvx*vvx; - real vy2 = vvy*vvy; - real vz2 = vvz*vvz; - //////////////////////////////////////////////////////////////////////////////////// - //real omegaDiffusivity = c2o1 / (c6o1 * diffusivity + c1o1); - //////////////////////////////////////////////////////////////////////////////////// - //! - Chimera transform from distributions to central moments as defined in Eq. (43)-(45) in \ref - //! <a href="https://doi.org/10.1016/j.camwa.2015.05.001"><b>[ M. Geier et al. (2015), DOI:10.1016/j.camwa.2015.05.001 ]</b></a> - //! - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - forwardChimera(mfaaa, mfaab, mfaac, vvz, vz2); - forwardChimera(mfaba, mfabb, mfabc, vvz, vz2); - forwardChimera(mfaca, mfacb, mfacc, vvz, vz2); - forwardChimera(mfbaa, mfbab, mfbac, vvz, vz2); - forwardChimera(mfbba, mfbbb, mfbbc, vvz, vz2); - forwardChimera(mfbca, mfbcb, mfbcc, vvz, vz2); - forwardChimera(mfcaa, mfcab, mfcac, vvz, vz2); - forwardChimera(mfcba, mfcbb, mfcbc, vvz, vz2); - forwardChimera(mfcca, mfccb, mfccc, vvz, vz2); + // calculate the square of velocities for this lattice node + real vx2 = vvx*vvx; + real vy2 = vvy*vvy; + real vz2 = vvz*vvz; + //////////////////////////////////////////////////////////////////////////////////// + //real omegaDiffusivity = c2o1 / (c6o1 * diffusivity + c1o1); + //////////////////////////////////////////////////////////////////////////////////// + //! - Chimera transform from distributions to central moments as defined in Eq. (43)-(45) in \ref + //! <a href="https://doi.org/10.1016/j.camwa.2015.05.001"><b>[ M. Geier et al. (2015), DOI:10.1016/j.camwa.2015.05.001 ]</b></a> + //! + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + forwardChimera(mfaaa, mfaab, mfaac, vvz, vz2); + forwardChimera(mfaba, mfabb, mfabc, vvz, vz2); + forwardChimera(mfaca, mfacb, mfacc, vvz, vz2); + forwardChimera(mfbaa, mfbab, mfbac, vvz, vz2); + forwardChimera(mfbba, mfbbb, mfbbc, vvz, vz2); + forwardChimera(mfbca, mfbcb, mfbcc, vvz, vz2); + forwardChimera(mfcaa, mfcab, mfcac, vvz, vz2); + forwardChimera(mfcba, mfcbb, mfcbc, vvz, vz2); + forwardChimera(mfcca, mfccb, mfccc, vvz, vz2); - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - forwardChimera(mfaaa, mfaba, mfaca, vvy, vy2); - forwardChimera(mfaab, mfabb, mfacb, vvy, vy2); - forwardChimera(mfaac, mfabc, mfacc, vvy, vy2); - forwardChimera(mfbaa, mfbba, mfbca, vvy, vy2); - forwardChimera(mfbab, mfbbb, mfbcb, vvy, vy2); - forwardChimera(mfbac, mfbbc, mfbcc, vvy, vy2); - forwardChimera(mfcaa, mfcba, mfcca, vvy, vy2); - forwardChimera(mfcab, mfcbb, mfccb, vvy, vy2); - forwardChimera(mfcac, mfcbc, mfccc, vvy, vy2); + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + forwardChimera(mfaaa, mfaba, mfaca, vvy, vy2); + forwardChimera(mfaab, mfabb, mfacb, vvy, vy2); + forwardChimera(mfaac, mfabc, mfacc, vvy, vy2); + forwardChimera(mfbaa, mfbba, mfbca, vvy, vy2); + forwardChimera(mfbab, mfbbb, mfbcb, vvy, vy2); + forwardChimera(mfbac, mfbbc, mfbcc, vvy, vy2); + forwardChimera(mfcaa, mfcba, mfcca, vvy, vy2); + forwardChimera(mfcab, mfcbb, mfccb, vvy, vy2); + forwardChimera(mfcac, mfcbc, mfccc, vvy, vy2); - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - forwardChimera(mfaaa, mfbaa, mfcaa, vvx, vx2); - forwardChimera(mfaba, mfbba, mfcba, vvx, vx2); - forwardChimera(mfaca, mfbca, mfcca, vvx, vx2); - forwardChimera(mfaab, mfbab, mfcab, vvx, vx2); - forwardChimera(mfabb, mfbbb, mfcbb, vvx, vx2); - forwardChimera(mfacb, mfbcb, mfccb, vvx, vx2); - forwardChimera(mfaac, mfbac, mfcac, vvx, vx2); - forwardChimera(mfabc, mfbbc, mfcbc, vvx, vx2); - forwardChimera(mfacc, mfbcc, mfccc, vvx, vx2); + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + forwardChimera(mfaaa, mfbaa, mfcaa, vvx, vx2); + forwardChimera(mfaba, mfbba, mfcba, vvx, vx2); + forwardChimera(mfaca, mfbca, mfcca, vvx, vx2); + forwardChimera(mfaab, mfbab, mfcab, vvx, vx2); + forwardChimera(mfabb, mfbbb, mfcbb, vvx, vx2); + forwardChimera(mfacb, mfbcb, mfccb, vvx, vx2); + forwardChimera(mfaac, mfbac, mfcac, vvx, vx2); + forwardChimera(mfabc, mfbbc, mfcbc, vvx, vx2); + forwardChimera(mfacc, mfbcc, mfccc, vvx, vx2); - //////////////////////////////////////////////////////////////////////////////////// - //! - Factorized central moments for Advection Diffusion Equation - Eq. (15)-(16) in \ref - //! <a href="https://doi.org/10.1016/j.advwatres.2015.09.015"><b>[ X. Yang et al. (2016), DOI: 10.1016/j.advwatres.2015.09.015]</b></a> - //! + //////////////////////////////////////////////////////////////////////////////////// + //! - Factorized central moments for Advection Diffusion Equation - Eq. (15)-(16) in \ref + //! <a href="https://doi.org/10.1016/j.advwatres.2015.09.015"><b>[ X. Yang et al. (2016), DOI: 10.1016/j.advwatres.2015.09.015]</b></a> + //! - // linearized orthogonalization of 3rd order central moments - real Mabc = mfabc - mfaba*c1o3; - real Mbca = mfbca - mfbaa*c1o3; - real Macb = mfacb - mfaab*c1o3; - real Mcba = mfcba - mfaba*c1o3; - real Mcab = mfcab - mfaab*c1o3; - real Mbac = mfbac - mfbaa*c1o3; - // linearized orthogonalization of 5th order central moments - real Mcbc = mfcbc - mfaba*c1o9; - real Mbcc = mfbcc - mfbaa*c1o9; - real Mccb = mfccb - mfaab*c1o9; + // linearized orthogonalization of 3rd order central moments + real Mabc = mfabc - mfaba*c1o3; + real Mbca = mfbca - mfbaa*c1o3; + real Macb = mfacb - mfaab*c1o3; + real Mcba = mfcba - mfaba*c1o3; + real Mcab = mfcab - mfaab*c1o3; + real Mbac = mfbac - mfbaa*c1o3; + // linearized orthogonalization of 5th order central moments + real Mcbc = mfcbc - mfaba*c1o9; + real Mbcc = mfbcc - mfbaa*c1o9; + real Mccb = mfccb - mfaab*c1o9; - // collision of 1st order moments - mfbaa *= c1o1 - omegaDiffusivity; - mfaba *= c1o1 - omegaDiffusivity; - mfaab *= c1o1 - omegaDiffusivity; + // collision of 1st order moments + mfbaa *= c1o1 - omegaDiffusivity; + mfaba *= c1o1 - omegaDiffusivity; + mfaab *= c1o1 - omegaDiffusivity; - // equilibration of 3rd order moments - Mabc = c0o1; - Mbca = c0o1; - Macb = c0o1; - Mcba = c0o1; - Mcab = c0o1; - Mbac = c0o1; - mfbbb = c0o1; + // equilibration of 3rd order moments + Mabc = c0o1; + Mbca = c0o1; + Macb = c0o1; + Mcba = c0o1; + Mcab = c0o1; + Mbac = c0o1; + mfbbb = c0o1; - // equilibration of 5th order moments - Mcbc = c0o1; - Mbcc = c0o1; - Mccb = c0o1; + // equilibration of 5th order moments + Mcbc = c0o1; + Mbcc = c0o1; + Mccb = c0o1; - // equilibration of 2nd order moments - mfbba = c0o1; - mfbab = c0o1; - mfabb = c0o1; + // equilibration of 2nd order moments + mfbba = c0o1; + mfbab = c0o1; + mfabb = c0o1; - mfcaa = c1o3 * rho; - mfaca = c1o3 * rho; - mfaac = c1o3 * rho; + mfcaa = c1o3 * rho; + mfaca = c1o3 * rho; + mfaac = c1o3 * rho; - // equilibration of 4th order moments - mfacc = c1o9 * rho; - mfcac = c1o9 * rho; - mfcca = c1o9 * rho; + // equilibration of 4th order moments + mfacc = c1o9 * rho; + mfcac = c1o9 * rho; + mfcca = c1o9 * rho; - mfcbb = c0o1; - mfbcb = c0o1; - mfbbc = c0o1; + mfcbb = c0o1; + mfbcb = c0o1; + mfbbc = c0o1; - // equilibration of 6th order moment - mfccc = c1o27 * rho; + // equilibration of 6th order moment + mfccc = c1o27 * rho; - // from linearized orthogonalization 3rd order central moments to central moments - mfabc = Mabc + mfaba*c1o3; - mfbca = Mbca + mfbaa*c1o3; - mfacb = Macb + mfaab*c1o3; - mfcba = Mcba + mfaba*c1o3; - mfcab = Mcab + mfaab*c1o3; - mfbac = Mbac + mfbaa*c1o3; + // from linearized orthogonalization 3rd order central moments to central moments + mfabc = Mabc + mfaba*c1o3; + mfbca = Mbca + mfbaa*c1o3; + mfacb = Macb + mfaab*c1o3; + mfcba = Mcba + mfaba*c1o3; + mfcab = Mcab + mfaab*c1o3; + mfbac = Mbac + mfbaa*c1o3; - // from linearized orthogonalization 5th order central moments to central moments - mfcbc = Mcbc + mfaba*c1o9; - mfbcc = Mbcc + mfbaa*c1o9; - mfccb = Mccb + mfaab*c1o9; + // from linearized orthogonalization 5th order central moments to central moments + mfcbc = Mcbc + mfaba*c1o9; + mfbcc = Mbcc + mfbaa*c1o9; + mfccb = Mccb + mfaab*c1o9; - //////////////////////////////////////////////////////////////////////////////////// - //! - Chimera transform from central moments to distributions as defined in Eq. (88)-(96) in \ref - //! <a href="https://doi.org/10.1016/j.camwa.2015.05.001"><b>[ M. Geier et al. (2015), DOI:10.1016/j.camwa.2015.05.001 ]</b></a> - //! - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - backwardChimera(mfaaa, mfbaa, mfcaa, vvx, vx2); - backwardChimera(mfaba, mfbba, mfcba, vvx, vx2); - backwardChimera(mfaca, mfbca, mfcca, vvx, vx2); - backwardChimera(mfaab, mfbab, mfcab, vvx, vx2); - backwardChimera(mfabb, mfbbb, mfcbb, vvx, vx2); - backwardChimera(mfacb, mfbcb, mfccb, vvx, vx2); - backwardChimera(mfaac, mfbac, mfcac, vvx, vx2); - backwardChimera(mfabc, mfbbc, mfcbc, vvx, vx2); - backwardChimera(mfacc, mfbcc, mfccc, vvx, vx2); + //////////////////////////////////////////////////////////////////////////////////// + //! - Chimera transform from central moments to distributions as defined in Eq. (88)-(96) in \ref + //! <a href="https://doi.org/10.1016/j.camwa.2015.05.001"><b>[ M. Geier et al. (2015), DOI:10.1016/j.camwa.2015.05.001 ]</b></a> + //! + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + backwardChimera(mfaaa, mfbaa, mfcaa, vvx, vx2); + backwardChimera(mfaba, mfbba, mfcba, vvx, vx2); + backwardChimera(mfaca, mfbca, mfcca, vvx, vx2); + backwardChimera(mfaab, mfbab, mfcab, vvx, vx2); + backwardChimera(mfabb, mfbbb, mfcbb, vvx, vx2); + backwardChimera(mfacb, mfbcb, mfccb, vvx, vx2); + backwardChimera(mfaac, mfbac, mfcac, vvx, vx2); + backwardChimera(mfabc, mfbbc, mfcbc, vvx, vx2); + backwardChimera(mfacc, mfbcc, mfccc, vvx, vx2); - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - backwardChimera(mfaaa, mfaba, mfaca, vvy, vy2); - backwardChimera(mfaab, mfabb, mfacb, vvy, vy2); - backwardChimera(mfaac, mfabc, mfacc, vvy, vy2); - backwardChimera(mfbaa, mfbba, mfbca, vvy, vy2); - backwardChimera(mfbab, mfbbb, mfbcb, vvy, vy2); - backwardChimera(mfbac, mfbbc, mfbcc, vvy, vy2); - backwardChimera(mfcaa, mfcba, mfcca, vvy, vy2); - backwardChimera(mfcab, mfcbb, mfccb, vvy, vy2); - backwardChimera(mfcac, mfcbc, mfccc, vvy, vy2); + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + backwardChimera(mfaaa, mfaba, mfaca, vvy, vy2); + backwardChimera(mfaab, mfabb, mfacb, vvy, vy2); + backwardChimera(mfaac, mfabc, mfacc, vvy, vy2); + backwardChimera(mfbaa, mfbba, mfbca, vvy, vy2); + backwardChimera(mfbab, mfbbb, mfbcb, vvy, vy2); + backwardChimera(mfbac, mfbbc, mfbcc, vvy, vy2); + backwardChimera(mfcaa, mfcba, mfcca, vvy, vy2); + backwardChimera(mfcab, mfcbb, mfccb, vvy, vy2); + backwardChimera(mfcac, mfcbc, mfccc, vvy, vy2); - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - backwardChimera(mfaaa, mfaab, mfaac, vvz, vz2); - backwardChimera(mfaba, mfabb, mfabc, vvz, vz2); - backwardChimera(mfaca, mfacb, mfacc, vvz, vz2); - backwardChimera(mfbaa, mfbab, mfbac, vvz, vz2); - backwardChimera(mfbba, mfbbb, mfbbc, vvz, vz2); - backwardChimera(mfbca, mfbcb, mfbcc, vvz, vz2); - backwardChimera(mfcaa, mfcab, mfcac, vvz, vz2); - backwardChimera(mfcba, mfcbb, mfcbc, vvz, vz2); - backwardChimera(mfcca, mfccb, mfccc, vvz, vz2); + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + backwardChimera(mfaaa, mfaab, mfaac, vvz, vz2); + backwardChimera(mfaba, mfabb, mfabc, vvz, vz2); + backwardChimera(mfaca, mfacb, mfacc, vvz, vz2); + backwardChimera(mfbaa, mfbab, mfbac, vvz, vz2); + backwardChimera(mfbba, mfbbb, mfbbc, vvz, vz2); + backwardChimera(mfbca, mfbcb, mfbcc, vvz, vz2); + backwardChimera(mfcaa, mfcab, mfcac, vvz, vz2); + backwardChimera(mfcba, mfcbb, mfcbc, vvz, vz2); + backwardChimera(mfcca, mfccb, mfccc, vvz, vz2); - //////////////////////////////////////////////////////////////////////////////////// - //! - Write distributions: style of reading and writing the distributions from/to - //! stored arrays dependent on timestep is based on the esoteric twist algorithm - //! <a href="https://doi.org/10.3390/computation5020019"><b>[ M. Geier et al. (2017), DOI:10.3390/computation5020019 ]</b></a> - //! - (distAD.f[dP00])[k ] = mfabb; - (distAD.f[dM00])[kw ] = mfcbb; - (distAD.f[d0P0])[k ] = mfbab; - (distAD.f[d0M0])[ks ] = mfbcb; - (distAD.f[d00P])[k ] = mfbba; - (distAD.f[d00M])[kb ] = mfbbc; - (distAD.f[dPP0])[k ] = mfaab; - (distAD.f[dMM0])[ksw ] = mfccb; - (distAD.f[dPM0])[ks ] = mfacb; - (distAD.f[dMP0])[kw ] = mfcab; - (distAD.f[dP0P])[k ] = mfaba; - (distAD.f[dM0M])[kbw ] = mfcbc; - (distAD.f[dP0M])[kb ] = mfabc; - (distAD.f[dM0P])[kw ] = mfcba; - (distAD.f[d0PP])[k ] = mfbaa; - (distAD.f[d0MM])[kbs ] = mfbcc; - (distAD.f[d0PM])[kb ] = mfbac; - (distAD.f[d0MP])[ks ] = mfbca; - (distAD.f[d000])[k ] = mfbbb; - (distAD.f[dPPP])[k ] = mfaaa; - (distAD.f[dPMP])[ks ] = mfaca; - (distAD.f[dPPM])[kb ] = mfaac; - (distAD.f[dPMM])[kbs ] = mfacc; - (distAD.f[dMPP])[kw ] = mfcaa; - (distAD.f[dMMP])[ksw ] = mfcca; - (distAD.f[dMPM])[kbw ] = mfcac; - (distAD.f[dMMM])[kbsw] = mfccc; - } + //////////////////////////////////////////////////////////////////////////////////// + //! - Write distributions: style of reading and writing the distributions from/to + //! stored arrays dependent on timestep is based on the esoteric twist algorithm + //! <a href="https://doi.org/10.3390/computation5020019"><b>[ M. Geier et al. (2017), DOI:10.3390/computation5020019 ]</b></a> + //! + (distAD.f[dP00])[k ] = mfabb; + (distAD.f[dM00])[kw ] = mfcbb; + (distAD.f[d0P0])[k ] = mfbab; + (distAD.f[d0M0])[ks ] = mfbcb; + (distAD.f[d00P])[k ] = mfbba; + (distAD.f[d00M])[kb ] = mfbbc; + (distAD.f[dPP0])[k ] = mfaab; + (distAD.f[dMM0])[ksw ] = mfccb; + (distAD.f[dPM0])[ks ] = mfacb; + (distAD.f[dMP0])[kw ] = mfcab; + (distAD.f[dP0P])[k ] = mfaba; + (distAD.f[dM0M])[kbw ] = mfcbc; + (distAD.f[dP0M])[kb ] = mfabc; + (distAD.f[dM0P])[kw ] = mfcba; + (distAD.f[d0PP])[k ] = mfbaa; + (distAD.f[d0MM])[kbs ] = mfbcc; + (distAD.f[d0PM])[kb ] = mfbac; + (distAD.f[d0MP])[ks ] = mfbca; + (distAD.f[d000])[k ] = mfbbb; + (distAD.f[dPPP])[k ] = mfaaa; + (distAD.f[dPMP])[ks ] = mfaca; + (distAD.f[dPPM])[kb ] = mfaac; + (distAD.f[dPMM])[kbs ] = mfacc; + (distAD.f[dMPP])[kw ] = mfcaa; + (distAD.f[dMMP])[ksw ] = mfcca; + (distAD.f[dMPM])[kbw ] = mfcac; + (distAD.f[dMMM])[kbsw] = mfccc; + } } //////////////////////////////////////////////////////////////////////////////// diff --git a/src/gpu/core/Kernel/Compressible/AdvectionDiffusion/F16/F16CompressibleAdvectionDiffusion_Device.cuh b/src/gpu/core/Kernel/Compressible/AdvectionDiffusion/F16/F16CompressibleAdvectionDiffusion_Device.cuh index 30687e2a26d4965f4fbab1fb54e2be661ecee263..7f4d3ad429539e9e0c788c8f01b394590975222e 100644 --- a/src/gpu/core/Kernel/Compressible/AdvectionDiffusion/F16/F16CompressibleAdvectionDiffusion_Device.cuh +++ b/src/gpu/core/Kernel/Compressible/AdvectionDiffusion/F16/F16CompressibleAdvectionDiffusion_Device.cuh @@ -5,15 +5,15 @@ #include <curand.h> __global__ void F16CompressibleAdvectionDiffusion_Device( - real omegaDiffusivity, - uint* typeOfGridNode, - uint* neighborX, - uint* neighborY, - uint* neighborZ, - real* distributions, - real* distributionsAD, - unsigned long long numberOfLBnodes, - real* forces, - bool isEvenTimestep); + real omegaDiffusivity, + uint* typeOfGridNode, + uint* neighborX, + uint* neighborY, + uint* neighborZ, + real* distributions, + real* distributionsAD, + unsigned long long numberOfLBnodes, + real* forces, + bool isEvenTimestep); #endif \ No newline at end of file diff --git a/src/gpu/core/Kernel/Compressible/NavierStokes/B15/B15CompressibleNavierStokesBGKplus.cu b/src/gpu/core/Kernel/Compressible/NavierStokes/B15/B15CompressibleNavierStokesBGKplus.cu index 955dc0736de37ed3ad680a99ced5bb0e55d77b11..6f51eee72ee8b7db62cf43bb827b6d117cf26ec9 100644 --- a/src/gpu/core/Kernel/Compressible/NavierStokes/B15/B15CompressibleNavierStokesBGKplus.cu +++ b/src/gpu/core/Kernel/Compressible/NavierStokes/B15/B15CompressibleNavierStokesBGKplus.cu @@ -6,7 +6,7 @@ std::shared_ptr<B15CompressibleNavierStokesBGKplus> B15CompressibleNavierStokesBGKplus::getNewInstance(std::shared_ptr<Parameter> para, int level) { - return std::shared_ptr<B15CompressibleNavierStokesBGKplus>(new B15CompressibleNavierStokesBGKplus(para, level)); + return std::shared_ptr<B15CompressibleNavierStokesBGKplus>(new B15CompressibleNavierStokesBGKplus(para, level)); } void B15CompressibleNavierStokesBGKplus::run() @@ -27,12 +27,12 @@ void B15CompressibleNavierStokesBGKplus::run() B15CompressibleNavierStokesBGKplus::B15CompressibleNavierStokesBGKplus(std::shared_ptr<Parameter> para, int level) { - this->para = para; - this->level = level; + this->para = para; + this->level = level; - myPreProcessorTypes.push_back(InitCompSP27); + myPreProcessorTypes.push_back(InitNavierStokesCompressible); - + } B15CompressibleNavierStokesBGKplus::B15CompressibleNavierStokesBGKplus() diff --git a/src/gpu/core/Kernel/Compressible/NavierStokes/B15/B15CompressibleNavierStokesBGKplus.h b/src/gpu/core/Kernel/Compressible/NavierStokes/B15/B15CompressibleNavierStokesBGKplus.h index 0347e30dc1aec97bcdd6e21eb58cf929084987cc..34ea741ea9a99aa1f0cb7672bcdcc32715b1ec48 100644 --- a/src/gpu/core/Kernel/Compressible/NavierStokes/B15/B15CompressibleNavierStokesBGKplus.h +++ b/src/gpu/core/Kernel/Compressible/NavierStokes/B15/B15CompressibleNavierStokesBGKplus.h @@ -6,12 +6,12 @@ class B15CompressibleNavierStokesBGKplus : public KernelImp { public: - static std::shared_ptr<B15CompressibleNavierStokesBGKplus> getNewInstance(std::shared_ptr< Parameter> para, int level); - void run(); + static std::shared_ptr<B15CompressibleNavierStokesBGKplus> getNewInstance(std::shared_ptr< Parameter> para, int level); + void run(); private: - B15CompressibleNavierStokesBGKplus(); - B15CompressibleNavierStokesBGKplus(std::shared_ptr< Parameter> para, int level); + B15CompressibleNavierStokesBGKplus(); + B15CompressibleNavierStokesBGKplus(std::shared_ptr< Parameter> para, int level); }; #endif \ No newline at end of file diff --git a/src/gpu/core/Kernel/Compressible/NavierStokes/B15/B15CompressibleNavierStokesBGKplus_Device.cu b/src/gpu/core/Kernel/Compressible/NavierStokes/B15/B15CompressibleNavierStokesBGKplus_Device.cu index 11ae68e4d5e14d89599573765295b65463fad712..e445247edc03ad4017b1641b01bac412af3cef21 100644 --- a/src/gpu/core/Kernel/Compressible/NavierStokes/B15/B15CompressibleNavierStokesBGKplus_Device.cu +++ b/src/gpu/core/Kernel/Compressible/NavierStokes/B15/B15CompressibleNavierStokesBGKplus_Device.cu @@ -7,820 +7,820 @@ using namespace vf::lbm::dir; #include "math.h" __global__ void B15CompressibleNavierStokesBGKplus_Device( - real omega, - unsigned int* bcMatD, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - real* DDStart, - int size_Mat, - bool EvenOrOdd) + real omega, + unsigned int* bcMatD, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + real* DDStart, + int size_Mat, + bool EvenOrOdd) { - //////////////////////////////////////////////////////////////////////////////// - const unsigned x = threadIdx.x; // Globaler x-Index - const unsigned y = blockIdx.x; // Globaler y-Index - const unsigned z = blockIdx.y; // Globaler z-Index + //////////////////////////////////////////////////////////////////////////////// + const unsigned x = threadIdx.x; // Globaler x-Index + const unsigned y = blockIdx.x; // Globaler y-Index + const unsigned z = blockIdx.y; // Globaler z-Index - const unsigned nx = blockDim.x; - const unsigned ny = gridDim.x; + const unsigned nx = blockDim.x; + const unsigned ny = gridDim.x; - const unsigned k = nx*(ny*z + y) + x; - ////////////////////////////////////////////////////////////////////////// + const unsigned k = nx*(ny*z + y) + x; + ////////////////////////////////////////////////////////////////////////// - if (k < size_Mat) - { - //////////////////////////////////////////////////////////////////////////////// - unsigned int BC; - BC = bcMatD[k]; + if (k < size_Mat) + { + //////////////////////////////////////////////////////////////////////////////// + unsigned int BC; + BC = bcMatD[k]; - if ((BC != GEO_SOLID) && (BC != GEO_VOID)) - { - Distributions27 D; - if (EvenOrOdd == true) - { - D.f[dP00] = &DDStart[dP00 * size_Mat]; - D.f[dM00] = &DDStart[dM00 * size_Mat]; - D.f[d0P0] = &DDStart[d0P0 * size_Mat]; - D.f[d0M0] = &DDStart[d0M0 * size_Mat]; - D.f[d00P] = &DDStart[d00P * size_Mat]; - D.f[d00M] = &DDStart[d00M * size_Mat]; - D.f[dPP0] = &DDStart[dPP0 * size_Mat]; - D.f[dMM0] = &DDStart[dMM0 * size_Mat]; - D.f[dPM0] = &DDStart[dPM0 * size_Mat]; - D.f[dMP0] = &DDStart[dMP0 * size_Mat]; - D.f[dP0P] = &DDStart[dP0P * size_Mat]; - D.f[dM0M] = &DDStart[dM0M * size_Mat]; - D.f[dP0M] = &DDStart[dP0M * size_Mat]; - D.f[dM0P] = &DDStart[dM0P * size_Mat]; - D.f[d0PP] = &DDStart[d0PP * size_Mat]; - D.f[d0MM] = &DDStart[d0MM * size_Mat]; - D.f[d0PM] = &DDStart[d0PM * size_Mat]; - D.f[d0MP] = &DDStart[d0MP * size_Mat]; - D.f[d000] = &DDStart[d000 * size_Mat]; - D.f[dPPP] = &DDStart[dPPP * size_Mat]; - D.f[dMMP] = &DDStart[dMMP * size_Mat]; - D.f[dPMP] = &DDStart[dPMP * size_Mat]; - D.f[dMPP] = &DDStart[dMPP * size_Mat]; - D.f[dPPM] = &DDStart[dPPM * size_Mat]; - D.f[dMMM] = &DDStart[dMMM * size_Mat]; - D.f[dPMM] = &DDStart[dPMM * size_Mat]; - D.f[dMPM] = &DDStart[dMPM * size_Mat]; - } - else - { - D.f[dM00] = &DDStart[dP00 * size_Mat]; - D.f[dP00] = &DDStart[dM00 * size_Mat]; - D.f[d0M0] = &DDStart[d0P0 * size_Mat]; - D.f[d0P0] = &DDStart[d0M0 * size_Mat]; - D.f[d00M] = &DDStart[d00P * size_Mat]; - D.f[d00P] = &DDStart[d00M * size_Mat]; - D.f[dMM0] = &DDStart[dPP0 * size_Mat]; - D.f[dPP0] = &DDStart[dMM0 * size_Mat]; - D.f[dMP0] = &DDStart[dPM0 * size_Mat]; - D.f[dPM0] = &DDStart[dMP0 * size_Mat]; - D.f[dM0M] = &DDStart[dP0P * size_Mat]; - D.f[dP0P] = &DDStart[dM0M * size_Mat]; - D.f[dM0P] = &DDStart[dP0M * size_Mat]; - D.f[dP0M] = &DDStart[dM0P * size_Mat]; - D.f[d0MM] = &DDStart[d0PP * size_Mat]; - D.f[d0PP] = &DDStart[d0MM * size_Mat]; - D.f[d0MP] = &DDStart[d0PM * size_Mat]; - D.f[d0PM] = &DDStart[d0MP * size_Mat]; - D.f[d000] = &DDStart[d000 * size_Mat]; - D.f[dMMM] = &DDStart[dPPP * size_Mat]; - D.f[dPPM] = &DDStart[dMMP * size_Mat]; - D.f[dMPM] = &DDStart[dPMP * size_Mat]; - D.f[dPMM] = &DDStart[dMPP * size_Mat]; - D.f[dMMP] = &DDStart[dPPM * size_Mat]; - D.f[dPPP] = &DDStart[dMMM * size_Mat]; - D.f[dMPP] = &DDStart[dPMM * size_Mat]; - D.f[dPMP] = &DDStart[dMPM * size_Mat]; - } + if ((BC != GEO_SOLID) && (BC != GEO_VOID)) + { + Distributions27 D; + if (EvenOrOdd == true) + { + D.f[dP00] = &DDStart[dP00 * size_Mat]; + D.f[dM00] = &DDStart[dM00 * size_Mat]; + D.f[d0P0] = &DDStart[d0P0 * size_Mat]; + D.f[d0M0] = &DDStart[d0M0 * size_Mat]; + D.f[d00P] = &DDStart[d00P * size_Mat]; + D.f[d00M] = &DDStart[d00M * size_Mat]; + D.f[dPP0] = &DDStart[dPP0 * size_Mat]; + D.f[dMM0] = &DDStart[dMM0 * size_Mat]; + D.f[dPM0] = &DDStart[dPM0 * size_Mat]; + D.f[dMP0] = &DDStart[dMP0 * size_Mat]; + D.f[dP0P] = &DDStart[dP0P * size_Mat]; + D.f[dM0M] = &DDStart[dM0M * size_Mat]; + D.f[dP0M] = &DDStart[dP0M * size_Mat]; + D.f[dM0P] = &DDStart[dM0P * size_Mat]; + D.f[d0PP] = &DDStart[d0PP * size_Mat]; + D.f[d0MM] = &DDStart[d0MM * size_Mat]; + D.f[d0PM] = &DDStart[d0PM * size_Mat]; + D.f[d0MP] = &DDStart[d0MP * size_Mat]; + D.f[d000] = &DDStart[d000 * size_Mat]; + D.f[dPPP] = &DDStart[dPPP * size_Mat]; + D.f[dMMP] = &DDStart[dMMP * size_Mat]; + D.f[dPMP] = &DDStart[dPMP * size_Mat]; + D.f[dMPP] = &DDStart[dMPP * size_Mat]; + D.f[dPPM] = &DDStart[dPPM * size_Mat]; + D.f[dMMM] = &DDStart[dMMM * size_Mat]; + D.f[dPMM] = &DDStart[dPMM * size_Mat]; + D.f[dMPM] = &DDStart[dMPM * size_Mat]; + } + else + { + D.f[dM00] = &DDStart[dP00 * size_Mat]; + D.f[dP00] = &DDStart[dM00 * size_Mat]; + D.f[d0M0] = &DDStart[d0P0 * size_Mat]; + D.f[d0P0] = &DDStart[d0M0 * size_Mat]; + D.f[d00M] = &DDStart[d00P * size_Mat]; + D.f[d00P] = &DDStart[d00M * size_Mat]; + D.f[dMM0] = &DDStart[dPP0 * size_Mat]; + D.f[dPP0] = &DDStart[dMM0 * size_Mat]; + D.f[dMP0] = &DDStart[dPM0 * size_Mat]; + D.f[dPM0] = &DDStart[dMP0 * size_Mat]; + D.f[dM0M] = &DDStart[dP0P * size_Mat]; + D.f[dP0P] = &DDStart[dM0M * size_Mat]; + D.f[dM0P] = &DDStart[dP0M * size_Mat]; + D.f[dP0M] = &DDStart[dM0P * size_Mat]; + D.f[d0MM] = &DDStart[d0PP * size_Mat]; + D.f[d0PP] = &DDStart[d0MM * size_Mat]; + D.f[d0MP] = &DDStart[d0PM * size_Mat]; + D.f[d0PM] = &DDStart[d0MP * size_Mat]; + D.f[d000] = &DDStart[d000 * size_Mat]; + D.f[dMMM] = &DDStart[dPPP * size_Mat]; + D.f[dPPM] = &DDStart[dMMP * size_Mat]; + D.f[dMPM] = &DDStart[dPMP * size_Mat]; + D.f[dPMM] = &DDStart[dMPP * size_Mat]; + D.f[dMMP] = &DDStart[dPPM * size_Mat]; + D.f[dPPP] = &DDStart[dMMM * size_Mat]; + D.f[dMPP] = &DDStart[dPMM * size_Mat]; + D.f[dPMP] = &DDStart[dMPM * size_Mat]; + } - //////////////////////////////////////////////////////////////////////////////// - //index - //unsigned int kzero= k; - //unsigned int ke = k; - unsigned int kw = neighborX[k]; - //unsigned int kn = k; - unsigned int ks = neighborY[k]; - //unsigned int kt = k; - unsigned int kb = neighborZ[k]; - unsigned int ksw = neighborY[kw]; - //unsigned int kne = k; - //unsigned int kse = ks; - //unsigned int knw = kw; - unsigned int kbw = neighborZ[kw]; - //unsigned int kte = k; - //unsigned int kbe = kb; - //unsigned int ktw = kw; - unsigned int kbs = neighborZ[ks]; - //unsigned int ktn = k; - //unsigned int kbn = kb; - //unsigned int kts = ks; - //unsigned int ktse = ks; - //unsigned int kbnw = kbw; - //unsigned int ktnw = kw; - //unsigned int kbse = kbs; - //unsigned int ktsw = ksw; - //unsigned int kbne = kb; - //unsigned int ktne = k; - unsigned int kbsw = neighborZ[ksw]; - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real mfcbb = (D.f[dP00])[k];//[ke ];// + c2over27 ;(D.f[dP00])[k ];//ke - real mfabb = (D.f[dM00])[kw];//[kw ];// + c2over27 ;(D.f[dM00])[kw ]; - real mfbcb = (D.f[d0P0])[k];//[kn ];// + c2over27 ;(D.f[d0P0])[k ];//kn - real mfbab = (D.f[d0M0])[ks];//[ks ];// + c2over27 ;(D.f[d0M0])[ks ]; - real mfbbc = (D.f[d00P])[k];//[kt ];// + c2over27 ;(D.f[d00P])[k ];//kt - real mfbba = (D.f[d00M])[kb];//[kb ];// + c2over27 ;(D.f[d00M])[kb ]; - real mfccb = (D.f[dPP0])[k];//[kne ];// + c1over54 ;(D.f[dPP0])[k ];//kne - real mfaab = (D.f[dMM0])[ksw];//[ksw ];// + c1over54 ;(D.f[dMM0])[ksw]; - real mfcab = (D.f[dPM0])[ks];//[kse ];// + c1over54 ;(D.f[dPM0])[ks ];//kse - real mfacb = (D.f[dMP0])[kw];//[knw ];// + c1over54 ;(D.f[dMP0])[kw ];//knw - real mfcbc = (D.f[dP0P])[k];//[kte ];// + c1over54 ;(D.f[dP0P])[k ];//kte - real mfaba = (D.f[dM0M])[kbw];//[kbw ];// + c1over54 ;(D.f[dM0M])[kbw]; - real mfcba = (D.f[dP0M])[kb];//[kbe ];// + c1over54 ;(D.f[dP0M])[kb ];//kbe - real mfabc = (D.f[dM0P])[kw];//[ktw ];// + c1over54 ;(D.f[dM0P])[kw ];//ktw - real mfbcc = (D.f[d0PP])[k];//[ktn ];// + c1over54 ;(D.f[d0PP])[k ];//ktn - real mfbaa = (D.f[d0MM])[kbs];//[kbs ];// + c1over54 ;(D.f[d0MM])[kbs]; - real mfbca = (D.f[d0PM])[kb];//[kbn ];// + c1over54 ;(D.f[d0PM])[kb ];//kbn - real mfbac = (D.f[d0MP])[ks];//[kts ];// + c1over54 ;(D.f[d0MP])[ks ];//kts - real mfbbb = (D.f[d000])[k];//[kzero];// + c8over27 ;(D.f[d000])[k ];//kzero - real mfccc = (D.f[dPPP])[k];//[ktne ];// + c1over216;(D.f[dPPP])[k ];//ktne - real mfaac = (D.f[dMMP])[ksw];//[ktsw ];// + c1over216;(D.f[dMMP])[ksw];//ktsw - real mfcac = (D.f[dPMP])[ks];//[ktse ];// + c1over216;(D.f[dPMP])[ks ];//ktse - real mfacc = (D.f[dMPP])[kw];//[ktnw ];// + c1over216;(D.f[dMPP])[kw ];//ktnw - real mfcca = (D.f[dPPM])[kb];//[kbne ];// + c1over216;(D.f[dPPM])[kb ];//kbne - real mfaaa = (D.f[dMMM])[kbsw];//[kbsw ];// + c1over216;(D.f[dMMM])[kbsw]; - real mfcaa = (D.f[dPMM])[kbs];//[kbse ];// + c1over216;(D.f[dPMM])[kbs];//kbse - real mfaca = (D.f[dMPM])[kbw];//[kbnw ];// + c1over216;(D.f[dMPM])[kbw];//kbnw - //////////////////////////////////////////////////////////////////////////////////// - //slow - //real oMdrho = one - ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + - // (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + - // ((mfabb+mfcbb) + (mfbab+mfbcb) + (mfbba+mfbbc)));//fehlt mfbbb - //////////////////////////////////////////////////////////////////////////////////// - real rho = (mfccc + mfaaa + mfaca + mfcac + mfacc + mfcaa + mfaac + mfcca + - mfbac + mfbca + mfbaa + mfbcc + mfabc + mfcba + mfaba + mfcbc + mfacb + mfcab + mfaab + mfccb + - mfabb + mfcbb + mfbab + mfbcb + mfbba + mfbbc + mfbbb + c1o1);//!!!!Achtung + one - //////////////////////////////////////////////////////////////////////////////////// - real vvx = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfcaa - mfacc) + (mfcca - mfaac))) + - (((mfcba - mfabc) + (mfcbc - mfaba)) + ((mfcab - mfacb) + (mfccb - mfaab))) + - (mfcbb - mfabb)) / rho; - real vvy = ((((mfccc - mfaaa) + (mfaca - mfcac)) + ((mfacc - mfcaa) + (mfcca - mfaac))) + - (((mfbca - mfbac) + (mfbcc - mfbaa)) + ((mfacb - mfcab) + (mfccb - mfaab))) + - (mfbcb - mfbab)) / rho; - real vvz = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfacc - mfcaa) + (mfaac - mfcca))) + - (((mfbac - mfbca) + (mfbcc - mfbaa)) + ((mfabc - mfcba) + (mfcbc - mfaba))) + - (mfbbc - mfbba)) / rho; - //////////////////////////////////////////////////////////////////////////////////// - real vx2 = vvx * vvx; - real vy2 = vvy * vvy; - real vz2 = vvz * vvz; - //////////////////////////////////////////////////////////////////////////////////// - real m200 = (mfccc + mfaaa + mfaca + mfcac + mfacc + mfcaa + mfaac + mfcca + - mfabc + mfcba + mfaba + mfcbc + mfacb + mfcab + mfaab + mfccb + - mfabb + mfcbb); - real m020 = (mfccc + mfaaa + mfaca + mfcac + mfacc + mfcaa + mfaac + mfcca + - mfbac + mfbca + mfbaa + mfbcc + mfacb + mfcab + mfaab + mfccb + - mfbab + mfbcb); - real m002 = (mfccc + mfaaa + mfaca + mfcac + mfacc + mfcaa + mfaac + mfcca + - mfbac + mfbca + mfbaa + mfbcc + mfabc + mfcba + mfaba + mfcbc + - mfbba + mfbbc); - //////////////////////////////////////////////////////////////////////////////////// - //Galilei Korrektur - real Gx = -c3o1 * vx2 * (-c1o2 * (c3o1 * m200 / rho + c1o1 / rho - c1o1 - c3o1 * vx2)) * (c1o1 - omega * c1o2); - real Gy = -c3o1 * vy2 * (-c1o2 * (c3o1 * m020 / rho + c1o1 / rho - c1o1 - c3o1 * vy2)) * (c1o1 - omega * c1o2); - real Gz = -c3o1 * vz2 * (-c1o2 * (c3o1 * m002 / rho + c1o1 / rho - c1o1 - c3o1 * vz2)) * (c1o1 - omega * c1o2); - //real Gx = zero; - //real Gy = zero; - //real Gz = zero; - //////////////////////////////////////////////////////////////////////////////////// - real XXb = -c2o3 + vx2 + Gx; - real XXc = -c1o2 * (XXb + c1o1 + vvx); - real XXa = XXc + vvx; - real YYb = -c2o3 + vy2 + Gy; - real YYc = -c1o2 * (YYb + c1o1 + vvy); - real YYa = YYc + vvy; - real ZZb = -c2o3 + vz2 + Gz; - real ZZc = -c1o2 * (ZZb + c1o1 + vvz); - real ZZa = ZZc + vvz; - //////////////////////////////////////////////////////////////////////////////////// - mfcbb = mfcbb * (c1o1 - omega) + omega * (-rho * XXc * YYb * ZZb - c2o27); - mfabb = mfabb * (c1o1 - omega) + omega * (-rho * XXa * YYb * ZZb - c2o27); - mfbcb = mfbcb * (c1o1 - omega) + omega * (-rho * XXb * YYc * ZZb - c2o27); - mfbab = mfbab * (c1o1 - omega) + omega * (-rho * XXb * YYa * ZZb - c2o27); - mfbbc = mfbbc * (c1o1 - omega) + omega * (-rho * XXb * YYb * ZZc - c2o27); - mfbba = mfbba * (c1o1 - omega) + omega * (-rho * XXb * YYb * ZZa - c2o27); - mfccb = mfccb * (c1o1 - omega) + omega * (-rho * XXc * YYc * ZZb - c1o54); - mfaab = mfaab * (c1o1 - omega) + omega * (-rho * XXa * YYa * ZZb - c1o54); - mfcab = mfcab * (c1o1 - omega) + omega * (-rho * XXc * YYa * ZZb - c1o54); - mfacb = mfacb * (c1o1 - omega) + omega * (-rho * XXa * YYc * ZZb - c1o54); - mfcbc = mfcbc * (c1o1 - omega) + omega * (-rho * XXc * YYb * ZZc - c1o54); - mfaba = mfaba * (c1o1 - omega) + omega * (-rho * XXa * YYb * ZZa - c1o54); - mfcba = mfcba * (c1o1 - omega) + omega * (-rho * XXc * YYb * ZZa - c1o54); - mfabc = mfabc * (c1o1 - omega) + omega * (-rho * XXa * YYb * ZZc - c1o54); - mfbcc = mfbcc * (c1o1 - omega) + omega * (-rho * XXb * YYc * ZZc - c1o54); - mfbaa = mfbaa * (c1o1 - omega) + omega * (-rho * XXb * YYa * ZZa - c1o54); - mfbca = mfbca * (c1o1 - omega) + omega * (-rho * XXb * YYc * ZZa - c1o54); - mfbac = mfbac * (c1o1 - omega) + omega * (-rho * XXb * YYa * ZZc - c1o54); - mfbbb = mfbbb * (c1o1 - omega) + omega * (-rho * XXb * YYb * ZZb - c8o27); - mfccc = mfccc * (c1o1 - omega) + omega * (-rho * XXc * YYc * ZZc - c1o216); - mfaac = mfaac * (c1o1 - omega) + omega * (-rho * XXa * YYa * ZZc - c1o216); - mfcac = mfcac * (c1o1 - omega) + omega * (-rho * XXc * YYa * ZZc - c1o216); - mfacc = mfacc * (c1o1 - omega) + omega * (-rho * XXa * YYc * ZZc - c1o216); - mfcca = mfcca * (c1o1 - omega) + omega * (-rho * XXc * YYc * ZZa - c1o216); - mfaaa = mfaaa * (c1o1 - omega) + omega * (-rho * XXa * YYa * ZZa - c1o216); - mfcaa = mfcaa * (c1o1 - omega) + omega * (-rho * XXc * YYa * ZZa - c1o216); - mfaca = mfaca * (c1o1 - omega) + omega * (-rho * XXa * YYc * ZZa - c1o216); - // //////////////////////////////////////////////////////////////////////////////////// - // //fast - // real oMdrho = one; //comp special - // //real oMdrho = one - (mfccc+mfaaa + mfaca+mfcac + mfacc+mfcaa + mfaac+mfcca + - // // mfbac+mfbca + mfbaa+mfbcc + mfabc+mfcba + mfaba+mfcbc + mfacb+mfcab + mfaab+mfccb + - // // mfabb+mfcbb + mfbab+mfbcb + mfbba+mfbbc + mfbbb + one);//fehlt mfbbb nicht mehr !!!!Achtung + one - // //////////////////////////////////////////////////////////////////////////////////// - // real m0, m1, m2; - // real vx2; - // real vy2; - // real vz2; - // vx2=vvx*vvx; - // vy2=vvy*vvy; - // vz2=vvz*vvz; - // //////////////////////////////////////////////////////////////////////////////////// - // real wadjust; - // real qudricLimit = 0.01f; - // //////////////////////////////////////////////////////////////////////////////////// - // //Hin - // //////////////////////////////////////////////////////////////////////////////////// - // // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - // //////////////////////////////////////////////////////////////////////////////////// - // // Z - Dir - // m2 = mfaaa + mfaac; - // m1 = mfaac - mfaaa; - // m0 = m2 + mfaab; - // mfaaa = m0; - // m0 += c1o36 * oMdrho; - // mfaab = m1 ; - // mfaac = m2 ; - // //////////////////////////////////////////////////////////////////////////////////// - // m2 = mfaba + mfabc; - // m1 = mfabc - mfaba; - // m0 = m2 + mfabb; - // mfaba = m0; - // m0 += c1o9 * oMdrho; - // mfabb = m1 ; - // mfabc = m2 ; - // //////////////////////////////////////////////////////////////////////////////////// - // m2 = mfaca + mfacc; - // m1 = mfacc - mfaca; - // m0 = m2 + mfacb; - // mfaca = m0; - // m0 += c1o36 * oMdrho; - // mfacb = m1 ; - // mfacc = m2 ; - // //////////////////////////////////////////////////////////////////////////////////// - // //////////////////////////////////////////////////////////////////////////////////// - // m2 = mfbaa + mfbac; - // m1 = mfbac - mfbaa; - // m0 = m2 + mfbab; - // mfbaa = m0; - // m0 += c1o9 * oMdrho; - // mfbab = m1 ; - // mfbac = m2 ; - // //////////////////////////////////////////////////////////////////////////////////// - // m2 = mfbba + mfbbc; - // m1 = mfbbc - mfbba; - // m0 = m2 + mfbbb; - // mfbba = m0; - // m0 += c4o9 * oMdrho; - // mfbbb = m1 ; - // mfbbc = m2 ; - // //////////////////////////////////////////////////////////////////////////////////// - // m2 = mfbca + mfbcc; - // m1 = mfbcc - mfbca; - // m0 = m2 + mfbcb; - // mfbca = m0; - // m0 += c1o9 * oMdrho; - // mfbcb = m1 ; - // mfbcc = m2 ; - // //////////////////////////////////////////////////////////////////////////////////// - // //////////////////////////////////////////////////////////////////////////////////// - // m2 = mfcaa + mfcac; - // m1 = mfcac - mfcaa; - // m0 = m2 + mfcab; - // mfcaa = m0; - // m0 += c1o36 * oMdrho; - // mfcab = m1 ; - // mfcac = m2 ; - // //////////////////////////////////////////////////////////////////////////////////// - // m2 = mfcba + mfcbc; - // m1 = mfcbc - mfcba; - // m0 = m2 + mfcbb; - // mfcba = m0; - // m0 += c1o9 * oMdrho; - // mfcbb = m1 ; - // mfcbc = m2 ; - // //////////////////////////////////////////////////////////////////////////////////// - // m2 = mfcca + mfccc; - // m1 = mfccc - mfcca; - // m0 = m2 + mfccb; - // mfcca = m0; - // m0 += c1o36 * oMdrho; - // mfccb = m1 ; - // mfccc = m2 ; - // //////////////////////////////////////////////////////////////////////////////////// - // //////////////////////////////////////////////////////////////////////////////////// - // // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren - // //////////////////////////////////////////////////////////////////////////////////// - // // Y - Dir - // m2 = mfaaa + mfaca; - // m1 = mfaca - mfaaa; - // m0 = m2 + mfaba; - // mfaaa = m0; - // m0 += c1o6 * oMdrho; - // mfaba = m1 ; - // mfaca = m2 ; - // //////////////////////////////////////////////////////////////////////////////////// - // m2 = mfaab + mfacb; - // m1 = mfacb - mfaab; - // m0 = m2 + mfabb; - // mfaab = m0; - // mfabb = m1 ; - // mfacb = m2 ; - // //////////////////////////////////////////////////////////////////////////////////// - // m2 = mfaac + mfacc; - // m1 = mfacc - mfaac; - // m0 = m2 + mfabc; - // mfaac = m0; - // m0 += c1o18 * oMdrho; - // mfabc = m1 ; - // mfacc = m2 ; - // //////////////////////////////////////////////////////////////////////////////////// - // //////////////////////////////////////////////////////////////////////////////////// - // m2 = mfbaa + mfbca; - // m1 = mfbca - mfbaa; - // m0 = m2 + mfbba; - // mfbaa = m0; - // m0 += c2o3 * oMdrho; - // mfbba = m1 ; - // mfbca = m2 ; - // //////////////////////////////////////////////////////////////////////////////////// - // m2 = mfbab + mfbcb; - // m1 = mfbcb - mfbab; - // m0 = m2 + mfbbb; - // mfbab = m0; - // mfbbb = m1 ; - // mfbcb = m2 ; - // //////////////////////////////////////////////////////////////////////////////////// - // m2 = mfbac + mfbcc; - // m1 = mfbcc - mfbac; - // m0 = m2 + mfbbc; - // mfbac = m0; - // m0 += c2o9 * oMdrho; - // mfbbc = m1 ; - // mfbcc = m2 ; - // //////////////////////////////////////////////////////////////////////////////////// - // //////////////////////////////////////////////////////////////////////////////////// - // m2 = mfcaa + mfcca; - // m1 = mfcca - mfcaa; - // m0 = m2 + mfcba; - // mfcaa = m0; - // m0 += c1o6 * oMdrho; - // mfcba = m1 ; - // mfcca = m2 ; - // //////////////////////////////////////////////////////////////////////////////////// - // m2 = mfcab + mfccb; - // m1 = mfccb - mfcab; - // m0 = m2 + mfcbb; - // mfcab = m0; - // mfcbb = m1 ; - // mfccb = m2 ; - // //////////////////////////////////////////////////////////////////////////////////// - // m2 = mfcac + mfccc; - // m1 = mfccc - mfcac; - // m0 = m2 + mfcbc; - // mfcac = m0; - // m0 += c1o18 * oMdrho; - // mfcbc = m1 ; - // mfccc = m2 ; - // //////////////////////////////////////////////////////////////////////////////////// - // //////////////////////////////////////////////////////////////////////////////////// - // // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - // //////////////////////////////////////////////////////////////////////////////////// - // // X - Dir - // m2 = mfaaa + mfcaa; - // m1 = mfcaa - mfaaa; - // m0 = m2 + mfbaa; - // mfaaa = m0; - // m0 += one* oMdrho; - // mfbaa = m1 ; - // mfcaa = m2 ; - // //////////////////////////////////////////////////////////////////////////////////// - // m2 = mfaba + mfcba; - // m1 = mfcba - mfaba; - // m0 = m2 + mfbba; - // mfaba = m0; - // mfbba = m1 ; - // mfcba = m2 ; - // //////////////////////////////////////////////////////////////////////////////////// - // m2 = mfaca + mfcca; - // m1 = mfcca - mfaca; - // m0 = m2 + mfbca; - // mfaca = m0; - // m0 += c1o3 * oMdrho; - // mfbca = m1 ; - // mfcca = m2 ; - // //////////////////////////////////////////////////////////////////////////////////// - // //////////////////////////////////////////////////////////////////////////////////// - // m2 = mfaab + mfcab; - // m1 = mfcab - mfaab; - // m0 = m2 + mfbab; - // mfaab = m0; - // mfbab = m1 ; - // mfcab = m2 ; - // //////////////////////////////////////////////////////////////////////////////////// - // m2 = mfabb + mfcbb; - // m1 = mfcbb - mfabb; - // m0 = m2 + mfbbb; - // mfabb = m0; - // mfbbb = m1 ; - // mfcbb = m2 ; - // //////////////////////////////////////////////////////////////////////////////////// - // m2 = mfacb + mfccb; - // m1 = mfccb - mfacb; - // m0 = m2 + mfbcb; - // mfacb = m0; - // mfbcb = m1 ; - // mfccb = m2 ; - // //////////////////////////////////////////////////////////////////////////////////// - // //////////////////////////////////////////////////////////////////////////////////// - // m2 = mfaac + mfcac; - // m1 = mfcac - mfaac; - // m0 = m2 + mfbac; - // mfaac = m0; - // m0 += c1o3 * oMdrho; - // mfbac = m1 ; - // mfcac = m2 ; - // //////////////////////////////////////////////////////////////////////////////////// - // m2 = mfabc + mfcbc; - // m1 = mfcbc - mfabc; - // m0 = m2 + mfbbc; - // mfabc = m0; - // mfbbc = m1 ; - // mfcbc = m2 ; - // //////////////////////////////////////////////////////////////////////////////////// - // m2 = mfacc + mfccc; - // m1 = mfccc - mfacc; - // m0 = m2 + mfbcc; - // mfacc = m0; - // m0 += c1o9 * oMdrho; - // mfbcc = m1 ; - // mfccc = m2 ; - // //////////////////////////////////////////////////////////////////////////////////// - // //////////////////////////////////////////////////////////////////////////////////// - // - // - // //////////////////////////////////////////////////////////////////////////////////// - // // BGK - // //////////////////////////////////////////////////////////////////////////////////// - // real OxxPyyPzz = omega; - // real OxyyPxzz = omega;//two-omega;//eight*(two-omega)/(eight -omega);//one;//omega;//two-omega;// - // real OxyyMxzz = omega;//omega;//one;//eight*(two-omega)/(eight -omega);//one;//two-omega;//one;// - // real O4 = omega; - // real O5 = omega; - // real O6 = omega; - // - // real mxxPyyPzz = mfcaa + mfaca + mfaac; - // real mxxMyy = mfcaa - mfaca; - // real mxxMzz = mfcaa - mfaac; - // - // /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // //incl. correction - // { - // real dxux = c1o2 * (-omega) *(mxxMyy + mxxMzz+(-two*vx2+vy2+vz2)*rho) + c1o2 * OxxPyyPzz * (mfaaa+(vx2+vy2+vz2)*rho - mxxPyyPzz); - // real dyuy = dxux + omega * c3o2 * (mxxMyy+(-vx2+vy2)*rho); - // real dzuz = dxux + omega * c3o2 * (mxxMzz+(-vx2+vz2)*rho); - // - // //relax - // mxxPyyPzz += OxxPyyPzz*(mfaaa +(vx2+vy2+vz2)*rho - mxxPyyPzz)- three * (one - c1o2 * OxxPyyPzz) * (vx2 * dxux + vy2 * dyuy + vz2 * dzuz); - // mxxMyy += omega * ((vx2-vy2)*rho-mxxMyy) - three * (one + c1o2 * (-omega)) * (vx2 * dxux - vy2 * dyuy); - // mxxMzz += omega * ((vx2-vz2)*rho-mxxMzz) - three * (one + c1o2 * (-omega)) * (vx2 * dxux - vz2 * dzuz); - // } - // /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - //// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //// //no correction - //// mxxPyyPzz += OxxPyyPzz*(mfaaa+(vx2+vy2+vz2)*rho-mxxPyyPzz); - //// mxxMyy += -(-omega) * ((vx2-vy2)*rho-mxxMyy); - //// mxxMzz += -(-omega) * ((vx2-vz2)*rho-mxxMzz); - //// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // mfabb += omega * ((vvy*vvz)*rho-mfabb); - // mfbab += omega * ((vvx*vvz)*rho-mfbab); - // mfbba += omega * ((vvx*vvy)*rho-mfbba); - // - // // linear combinations back - // mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz); - // mfaca = c1o3 * (-two* mxxMyy + mxxMzz + mxxPyyPzz); - // mfaac = c1o3 * ( mxxMyy - two* mxxMzz + mxxPyyPzz); - // - // //3. - // // linear combinations - // - // real mxxyPyzz = mfcba + mfabc; - // real mxxyMyzz = mfcba - mfabc; - // - // real mxxzPyyz = mfcab + mfacb; - // real mxxzMyyz = mfcab - mfacb; - // - // real mxyyPxzz = mfbca + mfbac; - // real mxyyMxzz = mfbca - mfbac; - // - // mxxyMyzz += OxyyMxzz*((vx2-vz2)*vvy*rho-mxxyMyzz); - // mxxzMyyz += OxyyMxzz*((vx2-vy2)*vvz*rho-mxxzMyyz); - // mxyyMxzz += OxyyMxzz*((vy2-vz2)*vvx*rho-mxyyMxzz); - // - // mxxyPyzz += OxyyPxzz*((c2o3+vx2+vz2)*vvy*rho-mxxyPyzz); - // mxxzPyyz += OxyyPxzz*((c2o3+vx2+vy2)*vvz*rho-mxxzPyyz); - // mxyyPxzz += OxyyPxzz*((c2o3+vy2+vz2)*vvx*rho-mxyyPxzz); - // - // mfbbb += OxyyMxzz * (vvx*vvy*vvz*rho - mfbbb); - // - // mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - // mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - // mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - // mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - // mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - // mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - // - // //4. - // //mfacc += O4*((c1o3+vy2)*(c1o3+vz2)*rho+c1o9*(mfaaa-one)-mfacc); - // //mfcac += O4*((c1o3+vx2)*(c1o3+vz2)*rho+c1o9*(mfaaa-one)-mfcac); - // //mfcca += O4*((c1o3+vx2)*(c1o3+vy2)*rho+c1o9*(mfaaa-one)-mfcca); - // mfacc += O4*((c1o3+vy2)*(c1o3+vz2)*rho-c1o9-mfacc); - // mfcac += O4*((c1o3+vx2)*(c1o3+vz2)*rho-c1o9-mfcac); - // mfcca += O4*((c1o3+vx2)*(c1o3+vy2)*rho-c1o9-mfcca); - // - // mfcbb += O4*((c1o3+vx2)*vvy*vvz*rho-mfcbb); - // mfbcb += O4*((c1o3+vy2)*vvx*vvz*rho-mfbcb); - // mfbbc += O4*((c1o3+vz2)*vvx*vvy*rho-mfbbc); - // - // //5. - // mfbcc += O5*((c1o3+vy2)*(c1o3+vz2)*vvx*rho-mfbcc); - // mfcbc += O5*((c1o3+vx2)*(c1o3+vz2)*vvy*rho-mfcbc); - // mfccb += O5*((c1o3+vx2)*(c1o3+vy2)*vvz*rho-mfccb); - // - // //6. - // mfccc += O6*((c1o3+vx2)*(c1o3+vy2)*(c1o3+vz2)*rho-c1o27-mfccc); - // - // - // //bad fix - // vvx = zero; - // vvy = zero; - // vvz = zero; - // vx2 = zero; - // vy2 = zero; - // vz2 = zero; - // //////////////////////////////////////////////////////////////////////////////////// - // //back - // //////////////////////////////////////////////////////////////////////////////////// - // //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - // //////////////////////////////////////////////////////////////////////////////////// - // // Z - Dir - // m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + one* oMdrho) * ( vz2 - vvz) * c1o2; - // m1 = -mfaac - two* mfaab * vvz + mfaaa * (one- vz2) - one* oMdrho * vz2; - // m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + one* oMdrho) * ( vz2 + vvz) * c1o2; - // mfaaa = m0; - // mfaab = m1; - // mfaac = m2; - // //////////////////////////////////////////////////////////////////////////////////// - // m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; - // m1 = -mfabc - two* mfabb * vvz + mfaba * (one- vz2); - // m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; - // mfaba = m0; - // mfabb = m1; - // mfabc = m2; - // //////////////////////////////////////////////////////////////////////////////////// - // m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - // m1 = -mfacc - two* mfacb * vvz + mfaca * (one- vz2) - c1o3 * oMdrho * vz2; - // m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - // mfaca = m0; - // mfacb = m1; - // mfacc = m2; - // //////////////////////////////////////////////////////////////////////////////////// - // //////////////////////////////////////////////////////////////////////////////////// - // m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; - // m1 = -mfbac - two* mfbab * vvz + mfbaa * (one- vz2); - // m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; - // mfbaa = m0; - // mfbab = m1; - // mfbac = m2; - // /////////b////////////////////////////////////////////////////////////////////////// - // m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; - // m1 = -mfbbc - two* mfbbb * vvz + mfbba * (one- vz2); - // m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; - // mfbba = m0; - // mfbbb = m1; - // mfbbc = m2; - // /////////b////////////////////////////////////////////////////////////////////////// - // m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; - // m1 = -mfbcc - two* mfbcb * vvz + mfbca * (one- vz2); - // m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; - // mfbca = m0; - // mfbcb = m1; - // mfbcc = m2; - // //////////////////////////////////////////////////////////////////////////////////// - // //////////////////////////////////////////////////////////////////////////////////// - // m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; - // m1 = -mfcac - two* mfcab * vvz + mfcaa * (one- vz2) - c1o3 * oMdrho * vz2; - // m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; - // mfcaa = m0; - // mfcab = m1; - // mfcac = m2; - // /////////c////////////////////////////////////////////////////////////////////////// - // m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; - // m1 = -mfcbc - two* mfcbb * vvz + mfcba * (one- vz2); - // m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; - // mfcba = m0; - // mfcbb = m1; - // mfcbc = m2; - // /////////c////////////////////////////////////////////////////////////////////////// - // m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; - // m1 = -mfccc - two* mfccb * vvz + mfcca * (one- vz2) - c1o9 * oMdrho * vz2; - // m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; - // mfcca = m0; - // mfccb = m1; - // mfccc = m2; - // //////////////////////////////////////////////////////////////////////////////////// - // //////////////////////////////////////////////////////////////////////////////////// - // //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - // //////////////////////////////////////////////////////////////////////////////////// - // // Y - Dir - // m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - // m1 = -mfaca - two* mfaba * vvy + mfaaa * (one- vy2) - c1o6 * oMdrho * vy2; - // m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - // mfaaa = m0; - // mfaba = m1; - // mfaca = m2; - // //////////////////////////////////////////////////////////////////////////////////// - // m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; - // m1 = -mfacb - two* mfabb * vvy + mfaab * (one- vy2) - c2o3 * oMdrho * vy2; - // m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; - // mfaab = m0; - // mfabb = m1; - // mfacb = m2; - // //////////////////////////////////////////////////////////////////////////////////// - // m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; - // m1 = -mfacc - two* mfabc * vvy + mfaac * (one- vy2) - c1o6 * oMdrho * vy2; - // m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; - // mfaac = m0; - // mfabc = m1; - // mfacc = m2; - // //////////////////////////////////////////////////////////////////////////////////// - // //////////////////////////////////////////////////////////////////////////////////// - // m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; - // m1 = -mfbca - two* mfbba * vvy + mfbaa * (one- vy2); - // m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; - // mfbaa = m0; - // mfbba = m1; - // mfbca = m2; - // /////////b////////////////////////////////////////////////////////////////////////// - // m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; - // m1 = -mfbcb - two* mfbbb * vvy + mfbab * (one- vy2); - // m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; - // mfbab = m0; - // mfbbb = m1; - // mfbcb = m2; - // /////////b////////////////////////////////////////////////////////////////////////// - // m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; - // m1 = -mfbcc - two* mfbbc * vvy + mfbac * (one- vy2); - // m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; - // mfbac = m0; - // mfbbc = m1; - // mfbcc = m2; - // //////////////////////////////////////////////////////////////////////////////////// - // //////////////////////////////////////////////////////////////////////////////////// - // m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - // m1 = -mfcca - two* mfcba * vvy + mfcaa * (one- vy2) - c1o18 * oMdrho * vy2; - // m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - // mfcaa = m0; - // mfcba = m1; - // mfcca = m2; - // /////////c////////////////////////////////////////////////////////////////////////// - // m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; - // m1 = -mfccb - two* mfcbb * vvy + mfcab * (one- vy2) - c2o9 * oMdrho * vy2; - // m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; - // mfcab = m0; - // mfcbb = m1; - // mfccb = m2; - // /////////c////////////////////////////////////////////////////////////////////////// - // m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; - // m1 = -mfccc - two* mfcbc * vvy + mfcac * (one- vy2) - c1o18 * oMdrho * vy2; - // m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; - // mfcac = m0; - // mfcbc = m1; - // mfccc = m2; - // //////////////////////////////////////////////////////////////////////////////////// - // //////////////////////////////////////////////////////////////////////////////////// - // //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - // //////////////////////////////////////////////////////////////////////////////////// - // // X - Dir - // m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - // m1 = -mfcaa - two* mfbaa * vvx + mfaaa * (one- vx2) - c1o36 * oMdrho * vx2; - // m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - // mfaaa = m0; - // mfbaa = m1; - // mfcaa = m2; - // //////////////////////////////////////////////////////////////////////////////////// - // m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - // m1 = -mfcba - two* mfbba * vvx + mfaba * (one- vx2) - c1o9 * oMdrho * vx2; - // m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - // mfaba = m0; - // mfbba = m1; - // mfcba = m2; - // //////////////////////////////////////////////////////////////////////////////////// - // m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - // m1 = -mfcca - two* mfbca * vvx + mfaca * (one- vx2) - c1o36 * oMdrho * vx2; - // m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - // mfaca = m0; - // mfbca = m1; - // mfcca = m2; - // //////////////////////////////////////////////////////////////////////////////////// - // //////////////////////////////////////////////////////////////////////////////////// - // m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - // m1 = -mfcab - two* mfbab * vvx + mfaab * (one- vx2) - c1o9 * oMdrho * vx2; - // m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - // mfaab = m0; - // mfbab = m1; - // mfcab = m2; - // ///////////b//////////////////////////////////////////////////////////////////////// - // m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; - // m1 = -mfcbb - two* mfbbb * vvx + mfabb * (one- vx2) - c4o9 * oMdrho * vx2; - // m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; - // mfabb = m0; - // mfbbb = m1; - // mfcbb = m2; - // ///////////b//////////////////////////////////////////////////////////////////////// - // m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - // m1 = -mfccb - two* mfbcb * vvx + mfacb * (one- vx2) - c1o9 * oMdrho * vx2; - // m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - // mfacb = m0; - // mfbcb = m1; - // mfccb = m2; - // //////////////////////////////////////////////////////////////////////////////////// - // //////////////////////////////////////////////////////////////////////////////////// - // m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - // m1 = -mfcac - two* mfbac * vvx + mfaac * (one- vx2) - c1o36 * oMdrho * vx2; - // m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - // mfaac = m0; - // mfbac = m1; - // mfcac = m2; - // ///////////c//////////////////////////////////////////////////////////////////////// - // m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; - // m1 = -mfcbc - two* mfbbc * vvx + mfabc * (one- vx2) - c1o9 * oMdrho * vx2; - // m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; - // mfabc = m0; - // mfbbc = m1; - // mfcbc = m2; - // ///////////c//////////////////////////////////////////////////////////////////////// - // m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; - // m1 = -mfccc - two* mfbcc * vvx + mfacc * (one- vx2) - c1o36 * oMdrho * vx2; - // m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; - // mfacc = m0; - // mfbcc = m1; - // mfccc = m2; - // //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //index + //unsigned int kzero= k; + //unsigned int ke = k; + unsigned int kw = neighborX[k]; + //unsigned int kn = k; + unsigned int ks = neighborY[k]; + //unsigned int kt = k; + unsigned int kb = neighborZ[k]; + unsigned int ksw = neighborY[kw]; + //unsigned int kne = k; + //unsigned int kse = ks; + //unsigned int knw = kw; + unsigned int kbw = neighborZ[kw]; + //unsigned int kte = k; + //unsigned int kbe = kb; + //unsigned int ktw = kw; + unsigned int kbs = neighborZ[ks]; + //unsigned int ktn = k; + //unsigned int kbn = kb; + //unsigned int kts = ks; + //unsigned int ktse = ks; + //unsigned int kbnw = kbw; + //unsigned int ktnw = kw; + //unsigned int kbse = kbs; + //unsigned int ktsw = ksw; + //unsigned int kbne = kb; + //unsigned int ktne = k; + unsigned int kbsw = neighborZ[ksw]; + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + real mfcbb = (D.f[dP00])[k];//[ke ];// + c2over27 ;(D.f[dP00])[k ];//ke + real mfabb = (D.f[dM00])[kw];//[kw ];// + c2over27 ;(D.f[dM00])[kw ]; + real mfbcb = (D.f[d0P0])[k];//[kn ];// + c2over27 ;(D.f[d0P0])[k ];//kn + real mfbab = (D.f[d0M0])[ks];//[ks ];// + c2over27 ;(D.f[d0M0])[ks ]; + real mfbbc = (D.f[d00P])[k];//[kt ];// + c2over27 ;(D.f[d00P])[k ];//kt + real mfbba = (D.f[d00M])[kb];//[kb ];// + c2over27 ;(D.f[d00M])[kb ]; + real mfccb = (D.f[dPP0])[k];//[kne ];// + c1over54 ;(D.f[dPP0])[k ];//kne + real mfaab = (D.f[dMM0])[ksw];//[ksw ];// + c1over54 ;(D.f[dMM0])[ksw]; + real mfcab = (D.f[dPM0])[ks];//[kse ];// + c1over54 ;(D.f[dPM0])[ks ];//kse + real mfacb = (D.f[dMP0])[kw];//[knw ];// + c1over54 ;(D.f[dMP0])[kw ];//knw + real mfcbc = (D.f[dP0P])[k];//[kte ];// + c1over54 ;(D.f[dP0P])[k ];//kte + real mfaba = (D.f[dM0M])[kbw];//[kbw ];// + c1over54 ;(D.f[dM0M])[kbw]; + real mfcba = (D.f[dP0M])[kb];//[kbe ];// + c1over54 ;(D.f[dP0M])[kb ];//kbe + real mfabc = (D.f[dM0P])[kw];//[ktw ];// + c1over54 ;(D.f[dM0P])[kw ];//ktw + real mfbcc = (D.f[d0PP])[k];//[ktn ];// + c1over54 ;(D.f[d0PP])[k ];//ktn + real mfbaa = (D.f[d0MM])[kbs];//[kbs ];// + c1over54 ;(D.f[d0MM])[kbs]; + real mfbca = (D.f[d0PM])[kb];//[kbn ];// + c1over54 ;(D.f[d0PM])[kb ];//kbn + real mfbac = (D.f[d0MP])[ks];//[kts ];// + c1over54 ;(D.f[d0MP])[ks ];//kts + real mfbbb = (D.f[d000])[k];//[kzero];// + c8over27 ;(D.f[d000])[k ];//kzero + real mfccc = (D.f[dPPP])[k];//[ktne ];// + c1over216;(D.f[dPPP])[k ];//ktne + real mfaac = (D.f[dMMP])[ksw];//[ktsw ];// + c1over216;(D.f[dMMP])[ksw];//ktsw + real mfcac = (D.f[dPMP])[ks];//[ktse ];// + c1over216;(D.f[dPMP])[ks ];//ktse + real mfacc = (D.f[dMPP])[kw];//[ktnw ];// + c1over216;(D.f[dMPP])[kw ];//ktnw + real mfcca = (D.f[dPPM])[kb];//[kbne ];// + c1over216;(D.f[dPPM])[kb ];//kbne + real mfaaa = (D.f[dMMM])[kbsw];//[kbsw ];// + c1over216;(D.f[dMMM])[kbsw]; + real mfcaa = (D.f[dPMM])[kbs];//[kbse ];// + c1over216;(D.f[dPMM])[kbs];//kbse + real mfaca = (D.f[dMPM])[kbw];//[kbnw ];// + c1over216;(D.f[dMPM])[kbw];//kbnw + //////////////////////////////////////////////////////////////////////////////////// + //slow + //real oMdrho = one - ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + + // (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + + // ((mfabb+mfcbb) + (mfbab+mfbcb) + (mfbba+mfbbc)));//fehlt mfbbb + //////////////////////////////////////////////////////////////////////////////////// + real rho = (mfccc + mfaaa + mfaca + mfcac + mfacc + mfcaa + mfaac + mfcca + + mfbac + mfbca + mfbaa + mfbcc + mfabc + mfcba + mfaba + mfcbc + mfacb + mfcab + mfaab + mfccb + + mfabb + mfcbb + mfbab + mfbcb + mfbba + mfbbc + mfbbb + c1o1);//!!!!Achtung + one + //////////////////////////////////////////////////////////////////////////////////// + real vvx = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfcaa - mfacc) + (mfcca - mfaac))) + + (((mfcba - mfabc) + (mfcbc - mfaba)) + ((mfcab - mfacb) + (mfccb - mfaab))) + + (mfcbb - mfabb)) / rho; + real vvy = ((((mfccc - mfaaa) + (mfaca - mfcac)) + ((mfacc - mfcaa) + (mfcca - mfaac))) + + (((mfbca - mfbac) + (mfbcc - mfbaa)) + ((mfacb - mfcab) + (mfccb - mfaab))) + + (mfbcb - mfbab)) / rho; + real vvz = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfacc - mfcaa) + (mfaac - mfcca))) + + (((mfbac - mfbca) + (mfbcc - mfbaa)) + ((mfabc - mfcba) + (mfcbc - mfaba))) + + (mfbbc - mfbba)) / rho; + //////////////////////////////////////////////////////////////////////////////////// + real vx2 = vvx * vvx; + real vy2 = vvy * vvy; + real vz2 = vvz * vvz; + //////////////////////////////////////////////////////////////////////////////////// + real m200 = (mfccc + mfaaa + mfaca + mfcac + mfacc + mfcaa + mfaac + mfcca + + mfabc + mfcba + mfaba + mfcbc + mfacb + mfcab + mfaab + mfccb + + mfabb + mfcbb); + real m020 = (mfccc + mfaaa + mfaca + mfcac + mfacc + mfcaa + mfaac + mfcca + + mfbac + mfbca + mfbaa + mfbcc + mfacb + mfcab + mfaab + mfccb + + mfbab + mfbcb); + real m002 = (mfccc + mfaaa + mfaca + mfcac + mfacc + mfcaa + mfaac + mfcca + + mfbac + mfbca + mfbaa + mfbcc + mfabc + mfcba + mfaba + mfcbc + + mfbba + mfbbc); + //////////////////////////////////////////////////////////////////////////////////// + //Galilei Korrektur + real Gx = -c3o1 * vx2 * (-c1o2 * (c3o1 * m200 / rho + c1o1 / rho - c1o1 - c3o1 * vx2)) * (c1o1 - omega * c1o2); + real Gy = -c3o1 * vy2 * (-c1o2 * (c3o1 * m020 / rho + c1o1 / rho - c1o1 - c3o1 * vy2)) * (c1o1 - omega * c1o2); + real Gz = -c3o1 * vz2 * (-c1o2 * (c3o1 * m002 / rho + c1o1 / rho - c1o1 - c3o1 * vz2)) * (c1o1 - omega * c1o2); + //real Gx = zero; + //real Gy = zero; + //real Gz = zero; + //////////////////////////////////////////////////////////////////////////////////// + real XXb = -c2o3 + vx2 + Gx; + real XXc = -c1o2 * (XXb + c1o1 + vvx); + real XXa = XXc + vvx; + real YYb = -c2o3 + vy2 + Gy; + real YYc = -c1o2 * (YYb + c1o1 + vvy); + real YYa = YYc + vvy; + real ZZb = -c2o3 + vz2 + Gz; + real ZZc = -c1o2 * (ZZb + c1o1 + vvz); + real ZZa = ZZc + vvz; + //////////////////////////////////////////////////////////////////////////////////// + mfcbb = mfcbb * (c1o1 - omega) + omega * (-rho * XXc * YYb * ZZb - c2o27); + mfabb = mfabb * (c1o1 - omega) + omega * (-rho * XXa * YYb * ZZb - c2o27); + mfbcb = mfbcb * (c1o1 - omega) + omega * (-rho * XXb * YYc * ZZb - c2o27); + mfbab = mfbab * (c1o1 - omega) + omega * (-rho * XXb * YYa * ZZb - c2o27); + mfbbc = mfbbc * (c1o1 - omega) + omega * (-rho * XXb * YYb * ZZc - c2o27); + mfbba = mfbba * (c1o1 - omega) + omega * (-rho * XXb * YYb * ZZa - c2o27); + mfccb = mfccb * (c1o1 - omega) + omega * (-rho * XXc * YYc * ZZb - c1o54); + mfaab = mfaab * (c1o1 - omega) + omega * (-rho * XXa * YYa * ZZb - c1o54); + mfcab = mfcab * (c1o1 - omega) + omega * (-rho * XXc * YYa * ZZb - c1o54); + mfacb = mfacb * (c1o1 - omega) + omega * (-rho * XXa * YYc * ZZb - c1o54); + mfcbc = mfcbc * (c1o1 - omega) + omega * (-rho * XXc * YYb * ZZc - c1o54); + mfaba = mfaba * (c1o1 - omega) + omega * (-rho * XXa * YYb * ZZa - c1o54); + mfcba = mfcba * (c1o1 - omega) + omega * (-rho * XXc * YYb * ZZa - c1o54); + mfabc = mfabc * (c1o1 - omega) + omega * (-rho * XXa * YYb * ZZc - c1o54); + mfbcc = mfbcc * (c1o1 - omega) + omega * (-rho * XXb * YYc * ZZc - c1o54); + mfbaa = mfbaa * (c1o1 - omega) + omega * (-rho * XXb * YYa * ZZa - c1o54); + mfbca = mfbca * (c1o1 - omega) + omega * (-rho * XXb * YYc * ZZa - c1o54); + mfbac = mfbac * (c1o1 - omega) + omega * (-rho * XXb * YYa * ZZc - c1o54); + mfbbb = mfbbb * (c1o1 - omega) + omega * (-rho * XXb * YYb * ZZb - c8o27); + mfccc = mfccc * (c1o1 - omega) + omega * (-rho * XXc * YYc * ZZc - c1o216); + mfaac = mfaac * (c1o1 - omega) + omega * (-rho * XXa * YYa * ZZc - c1o216); + mfcac = mfcac * (c1o1 - omega) + omega * (-rho * XXc * YYa * ZZc - c1o216); + mfacc = mfacc * (c1o1 - omega) + omega * (-rho * XXa * YYc * ZZc - c1o216); + mfcca = mfcca * (c1o1 - omega) + omega * (-rho * XXc * YYc * ZZa - c1o216); + mfaaa = mfaaa * (c1o1 - omega) + omega * (-rho * XXa * YYa * ZZa - c1o216); + mfcaa = mfcaa * (c1o1 - omega) + omega * (-rho * XXc * YYa * ZZa - c1o216); + mfaca = mfaca * (c1o1 - omega) + omega * (-rho * XXa * YYc * ZZa - c1o216); + // //////////////////////////////////////////////////////////////////////////////////// + // //fast + // real oMdrho = one; //comp special + // //real oMdrho = one - (mfccc+mfaaa + mfaca+mfcac + mfacc+mfcaa + mfaac+mfcca + + // // mfbac+mfbca + mfbaa+mfbcc + mfabc+mfcba + mfaba+mfcbc + mfacb+mfcab + mfaab+mfccb + + // // mfabb+mfcbb + mfbab+mfbcb + mfbba+mfbbc + mfbbb + one);//fehlt mfbbb nicht mehr !!!!Achtung + one + // //////////////////////////////////////////////////////////////////////////////////// + // real m0, m1, m2; + // real vx2; + // real vy2; + // real vz2; + // vx2=vvx*vvx; + // vy2=vvy*vvy; + // vz2=vvz*vvz; + // //////////////////////////////////////////////////////////////////////////////////// + // real wadjust; + // real qudricLimit = 0.01f; + // //////////////////////////////////////////////////////////////////////////////////// + // //Hin + // //////////////////////////////////////////////////////////////////////////////////// + // // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + // //////////////////////////////////////////////////////////////////////////////////// + // // Z - Dir + // m2 = mfaaa + mfaac; + // m1 = mfaac - mfaaa; + // m0 = m2 + mfaab; + // mfaaa = m0; + // m0 += c1o36 * oMdrho; + // mfaab = m1 ; + // mfaac = m2 ; + // //////////////////////////////////////////////////////////////////////////////////// + // m2 = mfaba + mfabc; + // m1 = mfabc - mfaba; + // m0 = m2 + mfabb; + // mfaba = m0; + // m0 += c1o9 * oMdrho; + // mfabb = m1 ; + // mfabc = m2 ; + // //////////////////////////////////////////////////////////////////////////////////// + // m2 = mfaca + mfacc; + // m1 = mfacc - mfaca; + // m0 = m2 + mfacb; + // mfaca = m0; + // m0 += c1o36 * oMdrho; + // mfacb = m1 ; + // mfacc = m2 ; + // //////////////////////////////////////////////////////////////////////////////////// + // //////////////////////////////////////////////////////////////////////////////////// + // m2 = mfbaa + mfbac; + // m1 = mfbac - mfbaa; + // m0 = m2 + mfbab; + // mfbaa = m0; + // m0 += c1o9 * oMdrho; + // mfbab = m1 ; + // mfbac = m2 ; + // //////////////////////////////////////////////////////////////////////////////////// + // m2 = mfbba + mfbbc; + // m1 = mfbbc - mfbba; + // m0 = m2 + mfbbb; + // mfbba = m0; + // m0 += c4o9 * oMdrho; + // mfbbb = m1 ; + // mfbbc = m2 ; + // //////////////////////////////////////////////////////////////////////////////////// + // m2 = mfbca + mfbcc; + // m1 = mfbcc - mfbca; + // m0 = m2 + mfbcb; + // mfbca = m0; + // m0 += c1o9 * oMdrho; + // mfbcb = m1 ; + // mfbcc = m2 ; + // //////////////////////////////////////////////////////////////////////////////////// + // //////////////////////////////////////////////////////////////////////////////////// + // m2 = mfcaa + mfcac; + // m1 = mfcac - mfcaa; + // m0 = m2 + mfcab; + // mfcaa = m0; + // m0 += c1o36 * oMdrho; + // mfcab = m1 ; + // mfcac = m2 ; + // //////////////////////////////////////////////////////////////////////////////////// + // m2 = mfcba + mfcbc; + // m1 = mfcbc - mfcba; + // m0 = m2 + mfcbb; + // mfcba = m0; + // m0 += c1o9 * oMdrho; + // mfcbb = m1 ; + // mfcbc = m2 ; + // //////////////////////////////////////////////////////////////////////////////////// + // m2 = mfcca + mfccc; + // m1 = mfccc - mfcca; + // m0 = m2 + mfccb; + // mfcca = m0; + // m0 += c1o36 * oMdrho; + // mfccb = m1 ; + // mfccc = m2 ; + // //////////////////////////////////////////////////////////////////////////////////// + // //////////////////////////////////////////////////////////////////////////////////// + // // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren + // //////////////////////////////////////////////////////////////////////////////////// + // // Y - Dir + // m2 = mfaaa + mfaca; + // m1 = mfaca - mfaaa; + // m0 = m2 + mfaba; + // mfaaa = m0; + // m0 += c1o6 * oMdrho; + // mfaba = m1 ; + // mfaca = m2 ; + // //////////////////////////////////////////////////////////////////////////////////// + // m2 = mfaab + mfacb; + // m1 = mfacb - mfaab; + // m0 = m2 + mfabb; + // mfaab = m0; + // mfabb = m1 ; + // mfacb = m2 ; + // //////////////////////////////////////////////////////////////////////////////////// + // m2 = mfaac + mfacc; + // m1 = mfacc - mfaac; + // m0 = m2 + mfabc; + // mfaac = m0; + // m0 += c1o18 * oMdrho; + // mfabc = m1 ; + // mfacc = m2 ; + // //////////////////////////////////////////////////////////////////////////////////// + // //////////////////////////////////////////////////////////////////////////////////// + // m2 = mfbaa + mfbca; + // m1 = mfbca - mfbaa; + // m0 = m2 + mfbba; + // mfbaa = m0; + // m0 += c2o3 * oMdrho; + // mfbba = m1 ; + // mfbca = m2 ; + // //////////////////////////////////////////////////////////////////////////////////// + // m2 = mfbab + mfbcb; + // m1 = mfbcb - mfbab; + // m0 = m2 + mfbbb; + // mfbab = m0; + // mfbbb = m1 ; + // mfbcb = m2 ; + // //////////////////////////////////////////////////////////////////////////////////// + // m2 = mfbac + mfbcc; + // m1 = mfbcc - mfbac; + // m0 = m2 + mfbbc; + // mfbac = m0; + // m0 += c2o9 * oMdrho; + // mfbbc = m1 ; + // mfbcc = m2 ; + // //////////////////////////////////////////////////////////////////////////////////// + // //////////////////////////////////////////////////////////////////////////////////// + // m2 = mfcaa + mfcca; + // m1 = mfcca - mfcaa; + // m0 = m2 + mfcba; + // mfcaa = m0; + // m0 += c1o6 * oMdrho; + // mfcba = m1 ; + // mfcca = m2 ; + // //////////////////////////////////////////////////////////////////////////////////// + // m2 = mfcab + mfccb; + // m1 = mfccb - mfcab; + // m0 = m2 + mfcbb; + // mfcab = m0; + // mfcbb = m1 ; + // mfccb = m2 ; + // //////////////////////////////////////////////////////////////////////////////////// + // m2 = mfcac + mfccc; + // m1 = mfccc - mfcac; + // m0 = m2 + mfcbc; + // mfcac = m0; + // m0 += c1o18 * oMdrho; + // mfcbc = m1 ; + // mfccc = m2 ; + // //////////////////////////////////////////////////////////////////////////////////// + // //////////////////////////////////////////////////////////////////////////////////// + // // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + // //////////////////////////////////////////////////////////////////////////////////// + // // X - Dir + // m2 = mfaaa + mfcaa; + // m1 = mfcaa - mfaaa; + // m0 = m2 + mfbaa; + // mfaaa = m0; + // m0 += one* oMdrho; + // mfbaa = m1 ; + // mfcaa = m2 ; + // //////////////////////////////////////////////////////////////////////////////////// + // m2 = mfaba + mfcba; + // m1 = mfcba - mfaba; + // m0 = m2 + mfbba; + // mfaba = m0; + // mfbba = m1 ; + // mfcba = m2 ; + // //////////////////////////////////////////////////////////////////////////////////// + // m2 = mfaca + mfcca; + // m1 = mfcca - mfaca; + // m0 = m2 + mfbca; + // mfaca = m0; + // m0 += c1o3 * oMdrho; + // mfbca = m1 ; + // mfcca = m2 ; + // //////////////////////////////////////////////////////////////////////////////////// + // //////////////////////////////////////////////////////////////////////////////////// + // m2 = mfaab + mfcab; + // m1 = mfcab - mfaab; + // m0 = m2 + mfbab; + // mfaab = m0; + // mfbab = m1 ; + // mfcab = m2 ; + // //////////////////////////////////////////////////////////////////////////////////// + // m2 = mfabb + mfcbb; + // m1 = mfcbb - mfabb; + // m0 = m2 + mfbbb; + // mfabb = m0; + // mfbbb = m1 ; + // mfcbb = m2 ; + // //////////////////////////////////////////////////////////////////////////////////// + // m2 = mfacb + mfccb; + // m1 = mfccb - mfacb; + // m0 = m2 + mfbcb; + // mfacb = m0; + // mfbcb = m1 ; + // mfccb = m2 ; + // //////////////////////////////////////////////////////////////////////////////////// + // //////////////////////////////////////////////////////////////////////////////////// + // m2 = mfaac + mfcac; + // m1 = mfcac - mfaac; + // m0 = m2 + mfbac; + // mfaac = m0; + // m0 += c1o3 * oMdrho; + // mfbac = m1 ; + // mfcac = m2 ; + // //////////////////////////////////////////////////////////////////////////////////// + // m2 = mfabc + mfcbc; + // m1 = mfcbc - mfabc; + // m0 = m2 + mfbbc; + // mfabc = m0; + // mfbbc = m1 ; + // mfcbc = m2 ; + // //////////////////////////////////////////////////////////////////////////////////// + // m2 = mfacc + mfccc; + // m1 = mfccc - mfacc; + // m0 = m2 + mfbcc; + // mfacc = m0; + // m0 += c1o9 * oMdrho; + // mfbcc = m1 ; + // mfccc = m2 ; + // //////////////////////////////////////////////////////////////////////////////////// + // //////////////////////////////////////////////////////////////////////////////////// + // + // + // //////////////////////////////////////////////////////////////////////////////////// + // // BGK + // //////////////////////////////////////////////////////////////////////////////////// + // real OxxPyyPzz = omega; + // real OxyyPxzz = omega;//two-omega;//eight*(two-omega)/(eight -omega);//one;//omega;//two-omega;// + // real OxyyMxzz = omega;//omega;//one;//eight*(two-omega)/(eight -omega);//one;//two-omega;//one;// + // real O4 = omega; + // real O5 = omega; + // real O6 = omega; + // + // real mxxPyyPzz = mfcaa + mfaca + mfaac; + // real mxxMyy = mfcaa - mfaca; + // real mxxMzz = mfcaa - mfaac; + // + // /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // //incl. correction + // { + // real dxux = c1o2 * (-omega) *(mxxMyy + mxxMzz+(-two*vx2+vy2+vz2)*rho) + c1o2 * OxxPyyPzz * (mfaaa+(vx2+vy2+vz2)*rho - mxxPyyPzz); + // real dyuy = dxux + omega * c3o2 * (mxxMyy+(-vx2+vy2)*rho); + // real dzuz = dxux + omega * c3o2 * (mxxMzz+(-vx2+vz2)*rho); + // + // //relax + // mxxPyyPzz += OxxPyyPzz*(mfaaa +(vx2+vy2+vz2)*rho - mxxPyyPzz)- three * (one - c1o2 * OxxPyyPzz) * (vx2 * dxux + vy2 * dyuy + vz2 * dzuz); + // mxxMyy += omega * ((vx2-vy2)*rho-mxxMyy) - three * (one + c1o2 * (-omega)) * (vx2 * dxux - vy2 * dyuy); + // mxxMzz += omega * ((vx2-vz2)*rho-mxxMzz) - three * (one + c1o2 * (-omega)) * (vx2 * dxux - vz2 * dzuz); + // } + // /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + //// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //// //no correction + //// mxxPyyPzz += OxxPyyPzz*(mfaaa+(vx2+vy2+vz2)*rho-mxxPyyPzz); + //// mxxMyy += -(-omega) * ((vx2-vy2)*rho-mxxMyy); + //// mxxMzz += -(-omega) * ((vx2-vz2)*rho-mxxMzz); + //// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // mfabb += omega * ((vvy*vvz)*rho-mfabb); + // mfbab += omega * ((vvx*vvz)*rho-mfbab); + // mfbba += omega * ((vvx*vvy)*rho-mfbba); + // + // // linear combinations back + // mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz); + // mfaca = c1o3 * (-two* mxxMyy + mxxMzz + mxxPyyPzz); + // mfaac = c1o3 * ( mxxMyy - two* mxxMzz + mxxPyyPzz); + // + // //3. + // // linear combinations + // + // real mxxyPyzz = mfcba + mfabc; + // real mxxyMyzz = mfcba - mfabc; + // + // real mxxzPyyz = mfcab + mfacb; + // real mxxzMyyz = mfcab - mfacb; + // + // real mxyyPxzz = mfbca + mfbac; + // real mxyyMxzz = mfbca - mfbac; + // + // mxxyMyzz += OxyyMxzz*((vx2-vz2)*vvy*rho-mxxyMyzz); + // mxxzMyyz += OxyyMxzz*((vx2-vy2)*vvz*rho-mxxzMyyz); + // mxyyMxzz += OxyyMxzz*((vy2-vz2)*vvx*rho-mxyyMxzz); + // + // mxxyPyzz += OxyyPxzz*((c2o3+vx2+vz2)*vvy*rho-mxxyPyzz); + // mxxzPyyz += OxyyPxzz*((c2o3+vx2+vy2)*vvz*rho-mxxzPyyz); + // mxyyPxzz += OxyyPxzz*((c2o3+vy2+vz2)*vvx*rho-mxyyPxzz); + // + // mfbbb += OxyyMxzz * (vvx*vvy*vvz*rho - mfbbb); + // + // mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + // mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + // mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + // mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + // mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + // mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + // + // //4. + // //mfacc += O4*((c1o3+vy2)*(c1o3+vz2)*rho+c1o9*(mfaaa-one)-mfacc); + // //mfcac += O4*((c1o3+vx2)*(c1o3+vz2)*rho+c1o9*(mfaaa-one)-mfcac); + // //mfcca += O4*((c1o3+vx2)*(c1o3+vy2)*rho+c1o9*(mfaaa-one)-mfcca); + // mfacc += O4*((c1o3+vy2)*(c1o3+vz2)*rho-c1o9-mfacc); + // mfcac += O4*((c1o3+vx2)*(c1o3+vz2)*rho-c1o9-mfcac); + // mfcca += O4*((c1o3+vx2)*(c1o3+vy2)*rho-c1o9-mfcca); + // + // mfcbb += O4*((c1o3+vx2)*vvy*vvz*rho-mfcbb); + // mfbcb += O4*((c1o3+vy2)*vvx*vvz*rho-mfbcb); + // mfbbc += O4*((c1o3+vz2)*vvx*vvy*rho-mfbbc); + // + // //5. + // mfbcc += O5*((c1o3+vy2)*(c1o3+vz2)*vvx*rho-mfbcc); + // mfcbc += O5*((c1o3+vx2)*(c1o3+vz2)*vvy*rho-mfcbc); + // mfccb += O5*((c1o3+vx2)*(c1o3+vy2)*vvz*rho-mfccb); + // + // //6. + // mfccc += O6*((c1o3+vx2)*(c1o3+vy2)*(c1o3+vz2)*rho-c1o27-mfccc); + // + // + // //bad fix + // vvx = zero; + // vvy = zero; + // vvz = zero; + // vx2 = zero; + // vy2 = zero; + // vz2 = zero; + // //////////////////////////////////////////////////////////////////////////////////// + // //back + // //////////////////////////////////////////////////////////////////////////////////// + // //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + // //////////////////////////////////////////////////////////////////////////////////// + // // Z - Dir + // m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + one* oMdrho) * ( vz2 - vvz) * c1o2; + // m1 = -mfaac - two* mfaab * vvz + mfaaa * (one- vz2) - one* oMdrho * vz2; + // m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + one* oMdrho) * ( vz2 + vvz) * c1o2; + // mfaaa = m0; + // mfaab = m1; + // mfaac = m2; + // //////////////////////////////////////////////////////////////////////////////////// + // m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * ( vz2 - vvz) * c1o2; + // m1 = -mfabc - two* mfabb * vvz + mfaba * (one- vz2); + // m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * ( vz2 + vvz) * c1o2; + // mfaba = m0; + // mfabb = m1; + // mfabc = m2; + // //////////////////////////////////////////////////////////////////////////////////// + // m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + // m1 = -mfacc - two* mfacb * vvz + mfaca * (one- vz2) - c1o3 * oMdrho * vz2; + // m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + // mfaca = m0; + // mfacb = m1; + // mfacc = m2; + // //////////////////////////////////////////////////////////////////////////////////// + // //////////////////////////////////////////////////////////////////////////////////// + // m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * ( vz2 - vvz) * c1o2; + // m1 = -mfbac - two* mfbab * vvz + mfbaa * (one- vz2); + // m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * ( vz2 + vvz) * c1o2; + // mfbaa = m0; + // mfbab = m1; + // mfbac = m2; + // /////////b////////////////////////////////////////////////////////////////////////// + // m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * ( vz2 - vvz) * c1o2; + // m1 = -mfbbc - two* mfbbb * vvz + mfbba * (one- vz2); + // m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * ( vz2 + vvz) * c1o2; + // mfbba = m0; + // mfbbb = m1; + // mfbbc = m2; + // /////////b////////////////////////////////////////////////////////////////////////// + // m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * ( vz2 - vvz) * c1o2; + // m1 = -mfbcc - two* mfbcb * vvz + mfbca * (one- vz2); + // m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * ( vz2 + vvz) * c1o2; + // mfbca = m0; + // mfbcb = m1; + // mfbcc = m2; + // //////////////////////////////////////////////////////////////////////////////////// + // //////////////////////////////////////////////////////////////////////////////////// + // m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 - vvz) * c1o2; + // m1 = -mfcac - two* mfcab * vvz + mfcaa * (one- vz2) - c1o3 * oMdrho * vz2; + // m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * ( vz2 + vvz) * c1o2; + // mfcaa = m0; + // mfcab = m1; + // mfcac = m2; + // /////////c////////////////////////////////////////////////////////////////////////// + // m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * ( vz2 - vvz) * c1o2; + // m1 = -mfcbc - two* mfcbb * vvz + mfcba * (one- vz2); + // m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * ( vz2 + vvz) * c1o2; + // mfcba = m0; + // mfcbb = m1; + // mfcbc = m2; + // /////////c////////////////////////////////////////////////////////////////////////// + // m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 - vvz) * c1o2; + // m1 = -mfccc - two* mfccb * vvz + mfcca * (one- vz2) - c1o9 * oMdrho * vz2; + // m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * ( vz2 + vvz) * c1o2; + // mfcca = m0; + // mfccb = m1; + // mfccc = m2; + // //////////////////////////////////////////////////////////////////////////////////// + // //////////////////////////////////////////////////////////////////////////////////// + // //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + // //////////////////////////////////////////////////////////////////////////////////// + // // Y - Dir + // m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + // m1 = -mfaca - two* mfaba * vvy + mfaaa * (one- vy2) - c1o6 * oMdrho * vy2; + // m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + // mfaaa = m0; + // mfaba = m1; + // mfaca = m2; + // //////////////////////////////////////////////////////////////////////////////////// + // m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 - vvy) * c1o2; + // m1 = -mfacb - two* mfabb * vvy + mfaab * (one- vy2) - c2o3 * oMdrho * vy2; + // m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * ( vy2 + vvy) * c1o2; + // mfaab = m0; + // mfabb = m1; + // mfacb = m2; + // //////////////////////////////////////////////////////////////////////////////////// + // m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 - vvy) * c1o2; + // m1 = -mfacc - two* mfabc * vvy + mfaac * (one- vy2) - c1o6 * oMdrho * vy2; + // m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * ( vy2 + vvy) * c1o2; + // mfaac = m0; + // mfabc = m1; + // mfacc = m2; + // //////////////////////////////////////////////////////////////////////////////////// + // //////////////////////////////////////////////////////////////////////////////////// + // m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * ( vy2 - vvy) * c1o2; + // m1 = -mfbca - two* mfbba * vvy + mfbaa * (one- vy2); + // m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * ( vy2 + vvy) * c1o2; + // mfbaa = m0; + // mfbba = m1; + // mfbca = m2; + // /////////b////////////////////////////////////////////////////////////////////////// + // m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * ( vy2 - vvy) * c1o2; + // m1 = -mfbcb - two* mfbbb * vvy + mfbab * (one- vy2); + // m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * ( vy2 + vvy) * c1o2; + // mfbab = m0; + // mfbbb = m1; + // mfbcb = m2; + // /////////b////////////////////////////////////////////////////////////////////////// + // m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * ( vy2 - vvy) * c1o2; + // m1 = -mfbcc - two* mfbbc * vvy + mfbac * (one- vy2); + // m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * ( vy2 + vvy) * c1o2; + // mfbac = m0; + // mfbbc = m1; + // mfbcc = m2; + // //////////////////////////////////////////////////////////////////////////////////// + // //////////////////////////////////////////////////////////////////////////////////// + // m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + // m1 = -mfcca - two* mfcba * vvy + mfcaa * (one- vy2) - c1o18 * oMdrho * vy2; + // m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + // mfcaa = m0; + // mfcba = m1; + // mfcca = m2; + // /////////c////////////////////////////////////////////////////////////////////////// + // m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 - vvy) * c1o2; + // m1 = -mfccb - two* mfcbb * vvy + mfcab * (one- vy2) - c2o9 * oMdrho * vy2; + // m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * ( vy2 + vvy) * c1o2; + // mfcab = m0; + // mfcbb = m1; + // mfccb = m2; + // /////////c////////////////////////////////////////////////////////////////////////// + // m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 - vvy) * c1o2; + // m1 = -mfccc - two* mfcbc * vvy + mfcac * (one- vy2) - c1o18 * oMdrho * vy2; + // m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * ( vy2 + vvy) * c1o2; + // mfcac = m0; + // mfcbc = m1; + // mfccc = m2; + // //////////////////////////////////////////////////////////////////////////////////// + // //////////////////////////////////////////////////////////////////////////////////// + // //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + // //////////////////////////////////////////////////////////////////////////////////// + // // X - Dir + // m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + // m1 = -mfcaa - two* mfbaa * vvx + mfaaa * (one- vx2) - c1o36 * oMdrho * vx2; + // m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + // mfaaa = m0; + // mfbaa = m1; + // mfcaa = m2; + // //////////////////////////////////////////////////////////////////////////////////// + // m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + // m1 = -mfcba - two* mfbba * vvx + mfaba * (one- vx2) - c1o9 * oMdrho * vx2; + // m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + // mfaba = m0; + // mfbba = m1; + // mfcba = m2; + // //////////////////////////////////////////////////////////////////////////////////// + // m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + // m1 = -mfcca - two* mfbca * vvx + mfaca * (one- vx2) - c1o36 * oMdrho * vx2; + // m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + // mfaca = m0; + // mfbca = m1; + // mfcca = m2; + // //////////////////////////////////////////////////////////////////////////////////// + // //////////////////////////////////////////////////////////////////////////////////// + // m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + // m1 = -mfcab - two* mfbab * vvx + mfaab * (one- vx2) - c1o9 * oMdrho * vx2; + // m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + // mfaab = m0; + // mfbab = m1; + // mfcab = m2; + // ///////////b//////////////////////////////////////////////////////////////////////// + // m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 - vvx) * c1o2; + // m1 = -mfcbb - two* mfbbb * vvx + mfabb * (one- vx2) - c4o9 * oMdrho * vx2; + // m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * ( vx2 + vvx) * c1o2; + // mfabb = m0; + // mfbbb = m1; + // mfcbb = m2; + // ///////////b//////////////////////////////////////////////////////////////////////// + // m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + // m1 = -mfccb - two* mfbcb * vvx + mfacb * (one- vx2) - c1o9 * oMdrho * vx2; + // m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + // mfacb = m0; + // mfbcb = m1; + // mfccb = m2; + // //////////////////////////////////////////////////////////////////////////////////// + // //////////////////////////////////////////////////////////////////////////////////// + // m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + // m1 = -mfcac - two* mfbac * vvx + mfaac * (one- vx2) - c1o36 * oMdrho * vx2; + // m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + // mfaac = m0; + // mfbac = m1; + // mfcac = m2; + // ///////////c//////////////////////////////////////////////////////////////////////// + // m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 - vvx) * c1o2; + // m1 = -mfcbc - two* mfbbc * vvx + mfabc * (one- vx2) - c1o9 * oMdrho * vx2; + // m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * ( vx2 + vvx) * c1o2; + // mfabc = m0; + // mfbbc = m1; + // mfcbc = m2; + // ///////////c//////////////////////////////////////////////////////////////////////// + // m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 - vvx) * c1o2; + // m1 = -mfccc - two* mfbcc * vvx + mfacc * (one- vx2) - c1o36 * oMdrho * vx2; + // m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * ( vx2 + vvx) * c1o2; + // mfacc = m0; + // mfbcc = m1; + // mfccc = m2; + // //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - (D.f[dP00])[k] = mfabb;//(D.f[ dP00 ])[ke ] = mfabb;// - c2over27 ; (D.f[ dP00 ])[k ] - (D.f[dM00])[kw] = mfcbb;//(D.f[ dM00 ])[kw ] = mfcbb;// - c2over27 ; (D.f[ dM00 ])[kw ] - (D.f[d0P0])[k] = mfbab;//(D.f[ d0P0 ])[kn ] = mfbab;// - c2over27 ; (D.f[ d0P0 ])[k ] - (D.f[d0M0])[ks] = mfbcb;//(D.f[ d0M0 ])[ks ] = mfbcb;// - c2over27 ; (D.f[ d0M0 ])[ks ] - (D.f[d00P])[k] = mfbba;//(D.f[ d00P ])[kt ] = mfbba;// - c2over27 ; (D.f[ d00P ])[k ] - (D.f[d00M])[kb] = mfbbc;//(D.f[ d00M ])[kb ] = mfbbc;// - c2over27 ; (D.f[ d00M ])[kb ] - (D.f[dPP0])[k] = mfaab;//(D.f[ dPP0 ])[kne ] = mfaab;// - c1over54 ; (D.f[ dPP0 ])[k ] - (D.f[dMM0])[ksw] = mfccb;//(D.f[ dMM0 ])[ksw ] = mfccb;// - c1over54 ; (D.f[ dMM0 ])[ksw ] - (D.f[dPM0])[ks] = mfacb;//(D.f[ dPM0 ])[kse ] = mfacb;// - c1over54 ; (D.f[ dPM0 ])[ks ] - (D.f[dMP0])[kw] = mfcab;//(D.f[ dMP0 ])[knw ] = mfcab;// - c1over54 ; (D.f[ dMP0 ])[kw ] - (D.f[dP0P])[k] = mfaba;//(D.f[ dP0P ])[kte ] = mfaba;// - c1over54 ; (D.f[ dP0P ])[k ] - (D.f[dM0M])[kbw] = mfcbc;//(D.f[ dM0M ])[kbw ] = mfcbc;// - c1over54 ; (D.f[ dM0M ])[kbw ] - (D.f[dP0M])[kb] = mfabc;//(D.f[ dP0M ])[kbe ] = mfabc;// - c1over54 ; (D.f[ dP0M ])[kb ] - (D.f[dM0P])[kw] = mfcba;//(D.f[ dM0P ])[ktw ] = mfcba;// - c1over54 ; (D.f[ dM0P ])[kw ] - (D.f[d0PP])[k] = mfbaa;//(D.f[ d0PP ])[ktn ] = mfbaa;// - c1over54 ; (D.f[ d0PP ])[k ] - (D.f[d0MM])[kbs] = mfbcc;//(D.f[ d0MM ])[kbs ] = mfbcc;// - c1over54 ; (D.f[ d0MM ])[kbs ] - (D.f[d0PM])[kb] = mfbac;//(D.f[ d0PM ])[kbn ] = mfbac;// - c1over54 ; (D.f[ d0PM ])[kb ] - (D.f[d0MP])[ks] = mfbca;//(D.f[ d0MP ])[kts ] = mfbca;// - c1over54 ; (D.f[ d0MP ])[ks ] - (D.f[d000])[k] = mfbbb;//(D.f[ d000])[kzero] = mfbbb;// - c8over27 ; (D.f[ d000])[k ] - (D.f[dPPP])[k] = mfaaa;//(D.f[ dPPP ])[ktne ] = mfaaa;// - c1over216; (D.f[ dPPP ])[k ] - (D.f[dPMP])[ks] = mfaca;//(D.f[ dPMP ])[ktse ] = mfaca;// - c1over216; (D.f[ dPMP ])[ks ] - (D.f[dPPM])[kb] = mfaac;//(D.f[ dPPM ])[kbne ] = mfaac;// - c1over216; (D.f[ dPPM ])[kb ] - (D.f[dPMM])[kbs] = mfacc;//(D.f[ dPMM ])[kbse ] = mfacc;// - c1over216; (D.f[ dPMM ])[kbs ] - (D.f[dMPP])[kw] = mfcaa;//(D.f[ dMPP ])[ktnw ] = mfcaa;// - c1over216; (D.f[ dMPP ])[kw ] - (D.f[dMMP])[ksw] = mfcca;//(D.f[ dMMP ])[ktsw ] = mfcca;// - c1over216; (D.f[ dMMP ])[ksw ] - (D.f[dMPM])[kbw] = mfcac;//(D.f[ dMPM ])[kbnw ] = mfcac;// - c1over216; (D.f[ dMPM ])[kbw ] - (D.f[dMMM])[kbsw] = mfccc;//(D.f[ dMMM ])[kbsw ] = mfccc;// - c1over216; (D.f[ dMMM ])[kbsw] - //////////////////////////////////////////////////////////////////////////////////// - } - } + //////////////////////////////////////////////////////////////////////////////////// + (D.f[dP00])[k] = mfabb;//(D.f[ dP00 ])[ke ] = mfabb;// - c2over27 ; (D.f[ dP00 ])[k ] + (D.f[dM00])[kw] = mfcbb;//(D.f[ dM00 ])[kw ] = mfcbb;// - c2over27 ; (D.f[ dM00 ])[kw ] + (D.f[d0P0])[k] = mfbab;//(D.f[ d0P0 ])[kn ] = mfbab;// - c2over27 ; (D.f[ d0P0 ])[k ] + (D.f[d0M0])[ks] = mfbcb;//(D.f[ d0M0 ])[ks ] = mfbcb;// - c2over27 ; (D.f[ d0M0 ])[ks ] + (D.f[d00P])[k] = mfbba;//(D.f[ d00P ])[kt ] = mfbba;// - c2over27 ; (D.f[ d00P ])[k ] + (D.f[d00M])[kb] = mfbbc;//(D.f[ d00M ])[kb ] = mfbbc;// - c2over27 ; (D.f[ d00M ])[kb ] + (D.f[dPP0])[k] = mfaab;//(D.f[ dPP0 ])[kne ] = mfaab;// - c1over54 ; (D.f[ dPP0 ])[k ] + (D.f[dMM0])[ksw] = mfccb;//(D.f[ dMM0 ])[ksw ] = mfccb;// - c1over54 ; (D.f[ dMM0 ])[ksw ] + (D.f[dPM0])[ks] = mfacb;//(D.f[ dPM0 ])[kse ] = mfacb;// - c1over54 ; (D.f[ dPM0 ])[ks ] + (D.f[dMP0])[kw] = mfcab;//(D.f[ dMP0 ])[knw ] = mfcab;// - c1over54 ; (D.f[ dMP0 ])[kw ] + (D.f[dP0P])[k] = mfaba;//(D.f[ dP0P ])[kte ] = mfaba;// - c1over54 ; (D.f[ dP0P ])[k ] + (D.f[dM0M])[kbw] = mfcbc;//(D.f[ dM0M ])[kbw ] = mfcbc;// - c1over54 ; (D.f[ dM0M ])[kbw ] + (D.f[dP0M])[kb] = mfabc;//(D.f[ dP0M ])[kbe ] = mfabc;// - c1over54 ; (D.f[ dP0M ])[kb ] + (D.f[dM0P])[kw] = mfcba;//(D.f[ dM0P ])[ktw ] = mfcba;// - c1over54 ; (D.f[ dM0P ])[kw ] + (D.f[d0PP])[k] = mfbaa;//(D.f[ d0PP ])[ktn ] = mfbaa;// - c1over54 ; (D.f[ d0PP ])[k ] + (D.f[d0MM])[kbs] = mfbcc;//(D.f[ d0MM ])[kbs ] = mfbcc;// - c1over54 ; (D.f[ d0MM ])[kbs ] + (D.f[d0PM])[kb] = mfbac;//(D.f[ d0PM ])[kbn ] = mfbac;// - c1over54 ; (D.f[ d0PM ])[kb ] + (D.f[d0MP])[ks] = mfbca;//(D.f[ d0MP ])[kts ] = mfbca;// - c1over54 ; (D.f[ d0MP ])[ks ] + (D.f[d000])[k] = mfbbb;//(D.f[ d000])[kzero] = mfbbb;// - c8over27 ; (D.f[ d000])[k ] + (D.f[dPPP])[k] = mfaaa;//(D.f[ dPPP ])[ktne ] = mfaaa;// - c1over216; (D.f[ dPPP ])[k ] + (D.f[dPMP])[ks] = mfaca;//(D.f[ dPMP ])[ktse ] = mfaca;// - c1over216; (D.f[ dPMP ])[ks ] + (D.f[dPPM])[kb] = mfaac;//(D.f[ dPPM ])[kbne ] = mfaac;// - c1over216; (D.f[ dPPM ])[kb ] + (D.f[dPMM])[kbs] = mfacc;//(D.f[ dPMM ])[kbse ] = mfacc;// - c1over216; (D.f[ dPMM ])[kbs ] + (D.f[dMPP])[kw] = mfcaa;//(D.f[ dMPP ])[ktnw ] = mfcaa;// - c1over216; (D.f[ dMPP ])[kw ] + (D.f[dMMP])[ksw] = mfcca;//(D.f[ dMMP ])[ktsw ] = mfcca;// - c1over216; (D.f[ dMMP ])[ksw ] + (D.f[dMPM])[kbw] = mfcac;//(D.f[ dMPM ])[kbnw ] = mfcac;// - c1over216; (D.f[ dMPM ])[kbw ] + (D.f[dMMM])[kbsw] = mfccc;//(D.f[ dMMM ])[kbsw ] = mfccc;// - c1over216; (D.f[ dMMM ])[kbsw] + //////////////////////////////////////////////////////////////////////////////////// + } + } } \ No newline at end of file diff --git a/src/gpu/core/Kernel/Compressible/NavierStokes/B15/B15CompressibleNavierStokesBGKplus_Device.cuh b/src/gpu/core/Kernel/Compressible/NavierStokes/B15/B15CompressibleNavierStokesBGKplus_Device.cuh index 2a4775b95d0b4d371fadb332a08868fda0fafd37..191e19041cc2199b54742a8e7c0273e9efed1e44 100644 --- a/src/gpu/core/Kernel/Compressible/NavierStokes/B15/B15CompressibleNavierStokesBGKplus_Device.cuh +++ b/src/gpu/core/Kernel/Compressible/NavierStokes/B15/B15CompressibleNavierStokesBGKplus_Device.cuh @@ -5,12 +5,12 @@ #include <curand.h> __global__ void B15CompressibleNavierStokesBGKplus_Device( - real omega, - unsigned int* bcMatD, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - real* DDStart, - int size_Mat, - bool EvenOrOdd); + real omega, + unsigned int* bcMatD, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + real* DDStart, + int size_Mat, + bool EvenOrOdd); #endif \ No newline at end of file diff --git a/src/gpu/core/Kernel/Compressible/NavierStokes/B92/B92CompressibleNavierStokes.cu b/src/gpu/core/Kernel/Compressible/NavierStokes/B92/B92CompressibleNavierStokes.cu index cf5971023e5f1110dd8bfb11bff38626ecc5dc7a..1dba9343c90a213fee5193d417b135e03e855e3c 100644 --- a/src/gpu/core/Kernel/Compressible/NavierStokes/B92/B92CompressibleNavierStokes.cu +++ b/src/gpu/core/Kernel/Compressible/NavierStokes/B92/B92CompressibleNavierStokes.cu @@ -6,7 +6,7 @@ std::shared_ptr<B92CompressibleNavierStokes> B92CompressibleNavierStokes::getNewInstance(std::shared_ptr<Parameter> para, int level) { - return std::shared_ptr<B92CompressibleNavierStokes>(new B92CompressibleNavierStokes(para, level)); + return std::shared_ptr<B92CompressibleNavierStokes>(new B92CompressibleNavierStokes(para, level)); } void B92CompressibleNavierStokes::run() @@ -27,11 +27,11 @@ void B92CompressibleNavierStokes::run() B92CompressibleNavierStokes::B92CompressibleNavierStokes(std::shared_ptr<Parameter> para, int level) { - this->para = para; - this->level = level; + this->para = para; + this->level = level; - myPreProcessorTypes.push_back(InitCompSP27); - + myPreProcessorTypes.push_back(InitNavierStokesCompressible); + } B92CompressibleNavierStokes::B92CompressibleNavierStokes() diff --git a/src/gpu/core/Kernel/Compressible/NavierStokes/B92/B92CompressibleNavierStokes.h b/src/gpu/core/Kernel/Compressible/NavierStokes/B92/B92CompressibleNavierStokes.h index 8b7ba23b33c6c78c1a87113a4e61748da42d400d..eabe949c0a11b6d5e38b9861194aec0f196cc099 100644 --- a/src/gpu/core/Kernel/Compressible/NavierStokes/B92/B92CompressibleNavierStokes.h +++ b/src/gpu/core/Kernel/Compressible/NavierStokes/B92/B92CompressibleNavierStokes.h @@ -6,11 +6,11 @@ class B92CompressibleNavierStokes : public KernelImp { public: - static std::shared_ptr<B92CompressibleNavierStokes> getNewInstance(std::shared_ptr< Parameter> para, int level); - void run(); - + static std::shared_ptr<B92CompressibleNavierStokes> getNewInstance(std::shared_ptr< Parameter> para, int level); + void run(); + private: - B92CompressibleNavierStokes(); - B92CompressibleNavierStokes(std::shared_ptr< Parameter> para, int level); + B92CompressibleNavierStokes(); + B92CompressibleNavierStokes(std::shared_ptr< Parameter> para, int level); }; #endif \ No newline at end of file diff --git a/src/gpu/core/Kernel/Compressible/NavierStokes/B92/B92CompressibleNavierStokes_Device.cu b/src/gpu/core/Kernel/Compressible/NavierStokes/B92/B92CompressibleNavierStokes_Device.cu index 415634bb4749fb4307419ce58ca96c0c0d0d3862..53b916a26cabe8ef23bdd6ea0570a2d57c0cc173 100644 --- a/src/gpu/core/Kernel/Compressible/NavierStokes/B92/B92CompressibleNavierStokes_Device.cu +++ b/src/gpu/core/Kernel/Compressible/NavierStokes/B92/B92CompressibleNavierStokes_Device.cu @@ -7,237 +7,237 @@ using namespace vf::lbm::dir; #include "math.h" -__global__ void B92CompressibleNavierStokes_Device( real omega, - unsigned int* bcMatD, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - real* DDStart, - int size_Mat, - bool EvenOrOdd) +__global__ void B92CompressibleNavierStokes_Device( real omega, + unsigned int* bcMatD, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + real* DDStart, + int size_Mat, + bool EvenOrOdd) { - //////////////////////////////////////////////////////////////////////////////// - const unsigned x = threadIdx.x; // Globaler x-Index - const unsigned y = blockIdx.x; // Globaler y-Index - const unsigned z = blockIdx.y; // Globaler z-Index - - const unsigned nx = blockDim.x; - const unsigned ny = gridDim.x; - - const unsigned k = nx*(ny*z + y) + x; - /////////////////////////////////////////////////////////////////////////////// - - if (k < size_Mat) - { - //////////////////////////////////////////////////////////////////////////////// - unsigned int BC; - BC = bcMatD[k]; - - if ((BC != GEO_SOLID) && (BC != GEO_VOID)) - { - Distributions27 D; - if (EvenOrOdd == true) - { - D.f[dP00] = &DDStart[dP00 * size_Mat]; - D.f[dM00] = &DDStart[dM00 * size_Mat]; - D.f[d0P0] = &DDStart[d0P0 * size_Mat]; - D.f[d0M0] = &DDStart[d0M0 * size_Mat]; - D.f[d00P] = &DDStart[d00P * size_Mat]; - D.f[d00M] = &DDStart[d00M * size_Mat]; - D.f[dPP0] = &DDStart[dPP0 * size_Mat]; - D.f[dMM0] = &DDStart[dMM0 * size_Mat]; - D.f[dPM0] = &DDStart[dPM0 * size_Mat]; - D.f[dMP0] = &DDStart[dMP0 * size_Mat]; - D.f[dP0P] = &DDStart[dP0P * size_Mat]; - D.f[dM0M] = &DDStart[dM0M * size_Mat]; - D.f[dP0M] = &DDStart[dP0M * size_Mat]; - D.f[dM0P] = &DDStart[dM0P * size_Mat]; - D.f[d0PP] = &DDStart[d0PP * size_Mat]; - D.f[d0MM] = &DDStart[d0MM * size_Mat]; - D.f[d0PM] = &DDStart[d0PM * size_Mat]; - D.f[d0MP] = &DDStart[d0MP * size_Mat]; - D.f[d000] = &DDStart[d000 * size_Mat]; - D.f[dPPP] = &DDStart[dPPP * size_Mat]; - D.f[dMMP] = &DDStart[dMMP * size_Mat]; - D.f[dPMP] = &DDStart[dPMP * size_Mat]; - D.f[dMPP] = &DDStart[dMPP * size_Mat]; - D.f[dPPM] = &DDStart[dPPM * size_Mat]; - D.f[dMMM] = &DDStart[dMMM * size_Mat]; - D.f[dPMM] = &DDStart[dPMM * size_Mat]; - D.f[dMPM] = &DDStart[dMPM * size_Mat]; - } - else - { - D.f[dM00] = &DDStart[dP00 * size_Mat]; - D.f[dP00] = &DDStart[dM00 * size_Mat]; - D.f[d0M0] = &DDStart[d0P0 * size_Mat]; - D.f[d0P0] = &DDStart[d0M0 * size_Mat]; - D.f[d00M] = &DDStart[d00P * size_Mat]; - D.f[d00P] = &DDStart[d00M * size_Mat]; - D.f[dMM0] = &DDStart[dPP0 * size_Mat]; - D.f[dPP0] = &DDStart[dMM0 * size_Mat]; - D.f[dMP0] = &DDStart[dPM0 * size_Mat]; - D.f[dPM0] = &DDStart[dMP0 * size_Mat]; - D.f[dM0M] = &DDStart[dP0P * size_Mat]; - D.f[dP0P] = &DDStart[dM0M * size_Mat]; - D.f[dM0P] = &DDStart[dP0M * size_Mat]; - D.f[dP0M] = &DDStart[dM0P * size_Mat]; - D.f[d0MM] = &DDStart[d0PP * size_Mat]; - D.f[d0PP] = &DDStart[d0MM * size_Mat]; - D.f[d0MP] = &DDStart[d0PM * size_Mat]; - D.f[d0PM] = &DDStart[d0MP * size_Mat]; - D.f[d000] = &DDStart[d000 * size_Mat]; - D.f[dMMM] = &DDStart[dPPP * size_Mat]; - D.f[dPPM] = &DDStart[dMMP * size_Mat]; - D.f[dMPM] = &DDStart[dPMP * size_Mat]; - D.f[dPMM] = &DDStart[dMPP * size_Mat]; - D.f[dMMP] = &DDStart[dPPM * size_Mat]; - D.f[dPPP] = &DDStart[dMMM * size_Mat]; - D.f[dMPP] = &DDStart[dPMM * size_Mat]; - D.f[dPMP] = &DDStart[dMPM * size_Mat]; - } - - //////////////////////////////////////////////////////////////////////////////// - //index - //unsigned int kzero= k; - //unsigned int ke = k; - unsigned int kw = neighborX[k]; - //unsigned int kn = k; - unsigned int ks = neighborY[k]; - //unsigned int kt = k; - unsigned int kb = neighborZ[k]; - unsigned int ksw = neighborY[kw]; - //unsigned int kne = k; - //unsigned int kse = ks; - //unsigned int knw = kw; - unsigned int kbw = neighborZ[kw]; - //unsigned int kte = k; - //unsigned int kbe = kb; - //unsigned int ktw = kw; - unsigned int kbs = neighborZ[ks]; - //unsigned int ktn = k; - //unsigned int kbn = kb; - //unsigned int kts = ks; - //unsigned int ktse = ks; - //unsigned int kbnw = kbw; - //unsigned int ktnw = kw; - //unsigned int kbse = kbs; - //unsigned int ktsw = ksw; - //unsigned int kbne = kb; - //unsigned int ktne = k; - unsigned int kbsw = neighborZ[ksw]; - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real fE = (D.f[dP00])[k];//ke - real fW = (D.f[dM00])[kw]; - real fN = (D.f[d0P0])[k];//kn - real fS = (D.f[d0M0])[ks]; - real fT = (D.f[d00P])[k];//kt - real fB = (D.f[d00M])[kb]; - real fNE = (D.f[dPP0])[k];//kne - real fSW = (D.f[dMM0])[ksw]; - real fSE = (D.f[dPM0])[ks];//kse - real fNW = (D.f[dMP0])[kw];//knw - real fTE = (D.f[dP0P])[k];//kte - real fBW = (D.f[dM0M])[kbw]; - real fBE = (D.f[dP0M])[kb];//kbe - real fTW = (D.f[dM0P])[kw];//ktw - real fTN = (D.f[d0PP])[k];//ktn - real fBS = (D.f[d0MM])[kbs]; - real fBN = (D.f[d0PM])[kb];//kbn - real fTS = (D.f[d0MP])[ks];//kts - real fZERO = (D.f[d000])[k];//kzero - real fTNE = (D.f[dPPP])[k];//ktne - real fTSW = (D.f[dMMP])[ksw];//ktsw - real fTSE = (D.f[dPMP])[ks];//ktse - real fTNW = (D.f[dMPP])[kw];//ktnw - real fBNE = (D.f[dPPM])[kb];//kbne - real fBSW = (D.f[dMMM])[kbsw]; - real fBSE = (D.f[dPMM])[kbs];//kbse - real fBNW = (D.f[dMPM])[kbw];//kbnw - //////////////////////////////////////////////////////////////////////////////// - real drho = (fTNE + fBSW) + (fTSW + fBNE) + (fTSE + fBNW) + (fTNW + fBSE) + (fNE + fSW) + (fNW + fSE) + (fTE + fBW) + (fBE + fTW) + (fTN + fBS) + (fBN + fTS) + (fE + fW) + (fN + fS) + (fT + fB) + fZERO; - real rho = drho + c1o1; - real OORho = c1o1 / rho; - real vx1 = OORho*((fTNE - fBSW) + (fBNE - fTSW) + (fTSE - fBNW) + (fBSE - fTNW) + (fNE - fSW) + (fSE - fNW) + (fTE - fBW) + (fBE - fTW) + (fE - fW)); - real vx2 = OORho*((fTNE - fBSW) + (fBNE - fTSW) + (fBNW - fTSE) + (fTNW - fBSE) + (fNE - fSW) + (fNW - fSE) + (fTN - fBS) + (fBN - fTS) + (fN - fS)); - real vx3 = OORho*((fTNE - fBSW) + (fTSW - fBNE) + (fTSE - fBNW) + (fTNW - fBSE) + (fTE - fBW) + (fTW - fBE) + (fTN - fBS) + (fTS - fBN) + (fT - fB)); - //////////////////////////////////////////////////////////////////////////////// - - - - - - - - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //BGK comp - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real cusq = c3o2*(vx1*vx1 + vx2*vx2 + vx3*vx3); - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - fZERO = fZERO *(c1o1 + (-omega)) - (-omega)* c8o27* (drho - rho * cusq); - fE = fE *(c1o1 + (-omega)) - (-omega)* c2o27* (drho + rho * (c3o1*(vx1)+c9o2*(vx1)*(vx1)-cusq)); - fW = fW *(c1o1 + (-omega)) - (-omega)* c2o27* (drho + rho * (c3o1*(-vx1) + c9o2*(-vx1)*(-vx1) - cusq)); - fN = fN *(c1o1 + (-omega)) - (-omega)* c2o27* (drho + rho * (c3o1*(vx2)+c9o2*(vx2)*(vx2)-cusq)); - fS = fS *(c1o1 + (-omega)) - (-omega)* c2o27* (drho + rho * (c3o1*(-vx2) + c9o2*(-vx2)*(-vx2) - cusq)); - fT = fT *(c1o1 + (-omega)) - (-omega)* c2o27* (drho + rho * (c3o1*(vx3)+c9o2*(vx3)*(vx3)-cusq)); - fB = fB *(c1o1 + (-omega)) - (-omega)* c2o27* (drho + rho * (c3o1*(-vx3) + c9o2*(-vx3)*(-vx3) - cusq)); - fNE = fNE *(c1o1 + (-omega)) - (-omega)* c1o54* (drho + rho * (c3o1*(vx1 + vx2) + c9o2*(vx1 + vx2)*(vx1 + vx2) - cusq)); - fSW = fSW *(c1o1 + (-omega)) - (-omega)* c1o54* (drho + rho * (c3o1*(-vx1 - vx2) + c9o2*(-vx1 - vx2)*(-vx1 - vx2) - cusq)); - fSE = fSE *(c1o1 + (-omega)) - (-omega)* c1o54* (drho + rho * (c3o1*(vx1 - vx2) + c9o2*(vx1 - vx2)*(vx1 - vx2) - cusq)); - fNW = fNW *(c1o1 + (-omega)) - (-omega)* c1o54* (drho + rho * (c3o1*(-vx1 + vx2) + c9o2*(-vx1 + vx2)*(-vx1 + vx2) - cusq)); - fTE = fTE *(c1o1 + (-omega)) - (-omega)* c1o54* (drho + rho * (c3o1*(vx1 + vx3) + c9o2*(vx1 + vx3)*(vx1 + vx3) - cusq)); - fBW = fBW *(c1o1 + (-omega)) - (-omega)* c1o54* (drho + rho * (c3o1*(-vx1 - vx3) + c9o2*(-vx1 - vx3)*(-vx1 - vx3) - cusq)); - fBE = fBE *(c1o1 + (-omega)) - (-omega)* c1o54* (drho + rho * (c3o1*(vx1 - vx3) + c9o2*(vx1 - vx3)*(vx1 - vx3) - cusq)); - fTW = fTW *(c1o1 + (-omega)) - (-omega)* c1o54* (drho + rho * (c3o1*(-vx1 + vx3) + c9o2*(-vx1 + vx3)*(-vx1 + vx3) - cusq)); - fTN = fTN *(c1o1 + (-omega)) - (-omega)* c1o54* (drho + rho * (c3o1*(vx2 + vx3) + c9o2*(vx2 + vx3)*(vx2 + vx3) - cusq)); - fBS = fBS *(c1o1 + (-omega)) - (-omega)* c1o54* (drho + rho * (c3o1*(-vx2 - vx3) + c9o2*(-vx2 - vx3)*(-vx2 - vx3) - cusq)); - fBN = fBN *(c1o1 + (-omega)) - (-omega)* c1o54* (drho + rho * (c3o1*(vx2 - vx3) + c9o2*(vx2 - vx3)*(vx2 - vx3) - cusq)); - fTS = fTS *(c1o1 + (-omega)) - (-omega)* c1o54* (drho + rho * (c3o1*(-vx2 + vx3) + c9o2*(-vx2 + vx3)*(-vx2 + vx3) - cusq)); - fTNE = fTNE *(c1o1 + (-omega)) - (-omega)* c1o216*(drho + rho * (c3o1*(vx1 + vx2 + vx3) + c9o2*(vx1 + vx2 + vx3)*(vx1 + vx2 + vx3) - cusq)); - fBSW = fBSW *(c1o1 + (-omega)) - (-omega)* c1o216*(drho + rho * (c3o1*(-vx1 - vx2 - vx3) + c9o2*(-vx1 - vx2 - vx3)*(-vx1 - vx2 - vx3) - cusq)); - fBNE = fBNE *(c1o1 + (-omega)) - (-omega)* c1o216*(drho + rho * (c3o1*(vx1 + vx2 - vx3) + c9o2*(vx1 + vx2 - vx3)*(vx1 + vx2 - vx3) - cusq)); - fTSW = fTSW *(c1o1 + (-omega)) - (-omega)* c1o216*(drho + rho * (c3o1*(-vx1 - vx2 + vx3) + c9o2*(-vx1 - vx2 + vx3)*(-vx1 - vx2 + vx3) - cusq)); - fTSE = fTSE *(c1o1 + (-omega)) - (-omega)* c1o216*(drho + rho * (c3o1*(vx1 - vx2 + vx3) + c9o2*(vx1 - vx2 + vx3)*(vx1 - vx2 + vx3) - cusq)); - fBNW = fBNW *(c1o1 + (-omega)) - (-omega)* c1o216*(drho + rho * (c3o1*(-vx1 + vx2 - vx3) + c9o2*(-vx1 + vx2 - vx3)*(-vx1 + vx2 - vx3) - cusq)); - fBSE = fBSE *(c1o1 + (-omega)) - (-omega)* c1o216*(drho + rho * (c3o1*(vx1 - vx2 - vx3) + c9o2*(vx1 - vx2 - vx3)*(vx1 - vx2 - vx3) - cusq)); - fTNW = fTNW *(c1o1 + (-omega)) - (-omega)* c1o216*(drho + rho * (c3o1*(-vx1 + vx2 + vx3) + c9o2*(-vx1 + vx2 + vx3)*(-vx1 + vx2 + vx3) - cusq)); - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - - - - - - - ////////////////////////////////////////////////////////////////////////// - (D.f[dP00])[k] = fW; - (D.f[dM00])[kw] = fE; - (D.f[d0P0])[k] = fS; - (D.f[d0M0])[ks] = fN; - (D.f[d00P])[k] = fB; - (D.f[d00M])[kb] = fT; - (D.f[dPP0])[k] = fSW; - (D.f[dMM0])[ksw] = fNE; - (D.f[dPM0])[ks] = fNW; - (D.f[dMP0])[kw] = fSE; - (D.f[dP0P])[k] = fBW; - (D.f[dM0M])[kbw] = fTE; - (D.f[dP0M])[kb] = fTW; - (D.f[dM0P])[kw] = fBE; - (D.f[d0PP])[k] = fBS; - (D.f[d0MM])[kbs] = fTN; - (D.f[d0PM])[kb] = fTS; - (D.f[d0MP])[ks] = fBN; - (D.f[d000])[k] = fZERO; - (D.f[dPPP])[k] = fBSW; - (D.f[dPMP])[ks] = fBNW; - (D.f[dPPM])[kb] = fTSW; - (D.f[dPMM])[kbs] = fTNW; - (D.f[dMPP])[kw] = fBSE; - (D.f[dMMP])[ksw] = fBNE; - (D.f[dMPM])[kbw] = fTSE; - (D.f[dMMM])[kbsw] = fTNE; - ////////////////////////////////////////////////////////////////////////// - } - } + //////////////////////////////////////////////////////////////////////////////// + const unsigned x = threadIdx.x; // Globaler x-Index + const unsigned y = blockIdx.x; // Globaler y-Index + const unsigned z = blockIdx.y; // Globaler z-Index + + const unsigned nx = blockDim.x; + const unsigned ny = gridDim.x; + + const unsigned k = nx*(ny*z + y) + x; + /////////////////////////////////////////////////////////////////////////////// + + if (k < size_Mat) + { + //////////////////////////////////////////////////////////////////////////////// + unsigned int BC; + BC = bcMatD[k]; + + if ((BC != GEO_SOLID) && (BC != GEO_VOID)) + { + Distributions27 D; + if (EvenOrOdd == true) + { + D.f[dP00] = &DDStart[dP00 * size_Mat]; + D.f[dM00] = &DDStart[dM00 * size_Mat]; + D.f[d0P0] = &DDStart[d0P0 * size_Mat]; + D.f[d0M0] = &DDStart[d0M0 * size_Mat]; + D.f[d00P] = &DDStart[d00P * size_Mat]; + D.f[d00M] = &DDStart[d00M * size_Mat]; + D.f[dPP0] = &DDStart[dPP0 * size_Mat]; + D.f[dMM0] = &DDStart[dMM0 * size_Mat]; + D.f[dPM0] = &DDStart[dPM0 * size_Mat]; + D.f[dMP0] = &DDStart[dMP0 * size_Mat]; + D.f[dP0P] = &DDStart[dP0P * size_Mat]; + D.f[dM0M] = &DDStart[dM0M * size_Mat]; + D.f[dP0M] = &DDStart[dP0M * size_Mat]; + D.f[dM0P] = &DDStart[dM0P * size_Mat]; + D.f[d0PP] = &DDStart[d0PP * size_Mat]; + D.f[d0MM] = &DDStart[d0MM * size_Mat]; + D.f[d0PM] = &DDStart[d0PM * size_Mat]; + D.f[d0MP] = &DDStart[d0MP * size_Mat]; + D.f[d000] = &DDStart[d000 * size_Mat]; + D.f[dPPP] = &DDStart[dPPP * size_Mat]; + D.f[dMMP] = &DDStart[dMMP * size_Mat]; + D.f[dPMP] = &DDStart[dPMP * size_Mat]; + D.f[dMPP] = &DDStart[dMPP * size_Mat]; + D.f[dPPM] = &DDStart[dPPM * size_Mat]; + D.f[dMMM] = &DDStart[dMMM * size_Mat]; + D.f[dPMM] = &DDStart[dPMM * size_Mat]; + D.f[dMPM] = &DDStart[dMPM * size_Mat]; + } + else + { + D.f[dM00] = &DDStart[dP00 * size_Mat]; + D.f[dP00] = &DDStart[dM00 * size_Mat]; + D.f[d0M0] = &DDStart[d0P0 * size_Mat]; + D.f[d0P0] = &DDStart[d0M0 * size_Mat]; + D.f[d00M] = &DDStart[d00P * size_Mat]; + D.f[d00P] = &DDStart[d00M * size_Mat]; + D.f[dMM0] = &DDStart[dPP0 * size_Mat]; + D.f[dPP0] = &DDStart[dMM0 * size_Mat]; + D.f[dMP0] = &DDStart[dPM0 * size_Mat]; + D.f[dPM0] = &DDStart[dMP0 * size_Mat]; + D.f[dM0M] = &DDStart[dP0P * size_Mat]; + D.f[dP0P] = &DDStart[dM0M * size_Mat]; + D.f[dM0P] = &DDStart[dP0M * size_Mat]; + D.f[dP0M] = &DDStart[dM0P * size_Mat]; + D.f[d0MM] = &DDStart[d0PP * size_Mat]; + D.f[d0PP] = &DDStart[d0MM * size_Mat]; + D.f[d0MP] = &DDStart[d0PM * size_Mat]; + D.f[d0PM] = &DDStart[d0MP * size_Mat]; + D.f[d000] = &DDStart[d000 * size_Mat]; + D.f[dMMM] = &DDStart[dPPP * size_Mat]; + D.f[dPPM] = &DDStart[dMMP * size_Mat]; + D.f[dMPM] = &DDStart[dPMP * size_Mat]; + D.f[dPMM] = &DDStart[dMPP * size_Mat]; + D.f[dMMP] = &DDStart[dPPM * size_Mat]; + D.f[dPPP] = &DDStart[dMMM * size_Mat]; + D.f[dMPP] = &DDStart[dPMM * size_Mat]; + D.f[dPMP] = &DDStart[dMPM * size_Mat]; + } + + //////////////////////////////////////////////////////////////////////////////// + //index + //unsigned int kzero= k; + //unsigned int ke = k; + unsigned int kw = neighborX[k]; + //unsigned int kn = k; + unsigned int ks = neighborY[k]; + //unsigned int kt = k; + unsigned int kb = neighborZ[k]; + unsigned int ksw = neighborY[kw]; + //unsigned int kne = k; + //unsigned int kse = ks; + //unsigned int knw = kw; + unsigned int kbw = neighborZ[kw]; + //unsigned int kte = k; + //unsigned int kbe = kb; + //unsigned int ktw = kw; + unsigned int kbs = neighborZ[ks]; + //unsigned int ktn = k; + //unsigned int kbn = kb; + //unsigned int kts = ks; + //unsigned int ktse = ks; + //unsigned int kbnw = kbw; + //unsigned int ktnw = kw; + //unsigned int kbse = kbs; + //unsigned int ktsw = ksw; + //unsigned int kbne = kb; + //unsigned int ktne = k; + unsigned int kbsw = neighborZ[ksw]; + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + real fE = (D.f[dP00])[k];//ke + real fW = (D.f[dM00])[kw]; + real fN = (D.f[d0P0])[k];//kn + real fS = (D.f[d0M0])[ks]; + real fT = (D.f[d00P])[k];//kt + real fB = (D.f[d00M])[kb]; + real fNE = (D.f[dPP0])[k];//kne + real fSW = (D.f[dMM0])[ksw]; + real fSE = (D.f[dPM0])[ks];//kse + real fNW = (D.f[dMP0])[kw];//knw + real fTE = (D.f[dP0P])[k];//kte + real fBW = (D.f[dM0M])[kbw]; + real fBE = (D.f[dP0M])[kb];//kbe + real fTW = (D.f[dM0P])[kw];//ktw + real fTN = (D.f[d0PP])[k];//ktn + real fBS = (D.f[d0MM])[kbs]; + real fBN = (D.f[d0PM])[kb];//kbn + real fTS = (D.f[d0MP])[ks];//kts + real fZERO = (D.f[d000])[k];//kzero + real fTNE = (D.f[dPPP])[k];//ktne + real fTSW = (D.f[dMMP])[ksw];//ktsw + real fTSE = (D.f[dPMP])[ks];//ktse + real fTNW = (D.f[dMPP])[kw];//ktnw + real fBNE = (D.f[dPPM])[kb];//kbne + real fBSW = (D.f[dMMM])[kbsw]; + real fBSE = (D.f[dPMM])[kbs];//kbse + real fBNW = (D.f[dMPM])[kbw];//kbnw + //////////////////////////////////////////////////////////////////////////////// + real drho = (fTNE + fBSW) + (fTSW + fBNE) + (fTSE + fBNW) + (fTNW + fBSE) + (fNE + fSW) + (fNW + fSE) + (fTE + fBW) + (fBE + fTW) + (fTN + fBS) + (fBN + fTS) + (fE + fW) + (fN + fS) + (fT + fB) + fZERO; + real rho = drho + c1o1; + real OORho = c1o1 / rho; + real vx1 = OORho*((fTNE - fBSW) + (fBNE - fTSW) + (fTSE - fBNW) + (fBSE - fTNW) + (fNE - fSW) + (fSE - fNW) + (fTE - fBW) + (fBE - fTW) + (fE - fW)); + real vx2 = OORho*((fTNE - fBSW) + (fBNE - fTSW) + (fBNW - fTSE) + (fTNW - fBSE) + (fNE - fSW) + (fNW - fSE) + (fTN - fBS) + (fBN - fTS) + (fN - fS)); + real vx3 = OORho*((fTNE - fBSW) + (fTSW - fBNE) + (fTSE - fBNW) + (fTNW - fBSE) + (fTE - fBW) + (fTW - fBE) + (fTN - fBS) + (fTS - fBN) + (fT - fB)); + //////////////////////////////////////////////////////////////////////////////// + + + + + + + + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //BGK comp + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + real cusq = c3o2*(vx1*vx1 + vx2*vx2 + vx3*vx3); + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + fZERO = fZERO *(c1o1 + (-omega)) - (-omega)* c8o27* (drho - rho * cusq); + fE = fE *(c1o1 + (-omega)) - (-omega)* c2o27* (drho + rho * (c3o1*(vx1)+c9o2*(vx1)*(vx1)-cusq)); + fW = fW *(c1o1 + (-omega)) - (-omega)* c2o27* (drho + rho * (c3o1*(-vx1) + c9o2*(-vx1)*(-vx1) - cusq)); + fN = fN *(c1o1 + (-omega)) - (-omega)* c2o27* (drho + rho * (c3o1*(vx2)+c9o2*(vx2)*(vx2)-cusq)); + fS = fS *(c1o1 + (-omega)) - (-omega)* c2o27* (drho + rho * (c3o1*(-vx2) + c9o2*(-vx2)*(-vx2) - cusq)); + fT = fT *(c1o1 + (-omega)) - (-omega)* c2o27* (drho + rho * (c3o1*(vx3)+c9o2*(vx3)*(vx3)-cusq)); + fB = fB *(c1o1 + (-omega)) - (-omega)* c2o27* (drho + rho * (c3o1*(-vx3) + c9o2*(-vx3)*(-vx3) - cusq)); + fNE = fNE *(c1o1 + (-omega)) - (-omega)* c1o54* (drho + rho * (c3o1*(vx1 + vx2) + c9o2*(vx1 + vx2)*(vx1 + vx2) - cusq)); + fSW = fSW *(c1o1 + (-omega)) - (-omega)* c1o54* (drho + rho * (c3o1*(-vx1 - vx2) + c9o2*(-vx1 - vx2)*(-vx1 - vx2) - cusq)); + fSE = fSE *(c1o1 + (-omega)) - (-omega)* c1o54* (drho + rho * (c3o1*(vx1 - vx2) + c9o2*(vx1 - vx2)*(vx1 - vx2) - cusq)); + fNW = fNW *(c1o1 + (-omega)) - (-omega)* c1o54* (drho + rho * (c3o1*(-vx1 + vx2) + c9o2*(-vx1 + vx2)*(-vx1 + vx2) - cusq)); + fTE = fTE *(c1o1 + (-omega)) - (-omega)* c1o54* (drho + rho * (c3o1*(vx1 + vx3) + c9o2*(vx1 + vx3)*(vx1 + vx3) - cusq)); + fBW = fBW *(c1o1 + (-omega)) - (-omega)* c1o54* (drho + rho * (c3o1*(-vx1 - vx3) + c9o2*(-vx1 - vx3)*(-vx1 - vx3) - cusq)); + fBE = fBE *(c1o1 + (-omega)) - (-omega)* c1o54* (drho + rho * (c3o1*(vx1 - vx3) + c9o2*(vx1 - vx3)*(vx1 - vx3) - cusq)); + fTW = fTW *(c1o1 + (-omega)) - (-omega)* c1o54* (drho + rho * (c3o1*(-vx1 + vx3) + c9o2*(-vx1 + vx3)*(-vx1 + vx3) - cusq)); + fTN = fTN *(c1o1 + (-omega)) - (-omega)* c1o54* (drho + rho * (c3o1*(vx2 + vx3) + c9o2*(vx2 + vx3)*(vx2 + vx3) - cusq)); + fBS = fBS *(c1o1 + (-omega)) - (-omega)* c1o54* (drho + rho * (c3o1*(-vx2 - vx3) + c9o2*(-vx2 - vx3)*(-vx2 - vx3) - cusq)); + fBN = fBN *(c1o1 + (-omega)) - (-omega)* c1o54* (drho + rho * (c3o1*(vx2 - vx3) + c9o2*(vx2 - vx3)*(vx2 - vx3) - cusq)); + fTS = fTS *(c1o1 + (-omega)) - (-omega)* c1o54* (drho + rho * (c3o1*(-vx2 + vx3) + c9o2*(-vx2 + vx3)*(-vx2 + vx3) - cusq)); + fTNE = fTNE *(c1o1 + (-omega)) - (-omega)* c1o216*(drho + rho * (c3o1*(vx1 + vx2 + vx3) + c9o2*(vx1 + vx2 + vx3)*(vx1 + vx2 + vx3) - cusq)); + fBSW = fBSW *(c1o1 + (-omega)) - (-omega)* c1o216*(drho + rho * (c3o1*(-vx1 - vx2 - vx3) + c9o2*(-vx1 - vx2 - vx3)*(-vx1 - vx2 - vx3) - cusq)); + fBNE = fBNE *(c1o1 + (-omega)) - (-omega)* c1o216*(drho + rho * (c3o1*(vx1 + vx2 - vx3) + c9o2*(vx1 + vx2 - vx3)*(vx1 + vx2 - vx3) - cusq)); + fTSW = fTSW *(c1o1 + (-omega)) - (-omega)* c1o216*(drho + rho * (c3o1*(-vx1 - vx2 + vx3) + c9o2*(-vx1 - vx2 + vx3)*(-vx1 - vx2 + vx3) - cusq)); + fTSE = fTSE *(c1o1 + (-omega)) - (-omega)* c1o216*(drho + rho * (c3o1*(vx1 - vx2 + vx3) + c9o2*(vx1 - vx2 + vx3)*(vx1 - vx2 + vx3) - cusq)); + fBNW = fBNW *(c1o1 + (-omega)) - (-omega)* c1o216*(drho + rho * (c3o1*(-vx1 + vx2 - vx3) + c9o2*(-vx1 + vx2 - vx3)*(-vx1 + vx2 - vx3) - cusq)); + fBSE = fBSE *(c1o1 + (-omega)) - (-omega)* c1o216*(drho + rho * (c3o1*(vx1 - vx2 - vx3) + c9o2*(vx1 - vx2 - vx3)*(vx1 - vx2 - vx3) - cusq)); + fTNW = fTNW *(c1o1 + (-omega)) - (-omega)* c1o216*(drho + rho * (c3o1*(-vx1 + vx2 + vx3) + c9o2*(-vx1 + vx2 + vx3)*(-vx1 + vx2 + vx3) - cusq)); + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + + + + + + + ////////////////////////////////////////////////////////////////////////// + (D.f[dP00])[k] = fW; + (D.f[dM00])[kw] = fE; + (D.f[d0P0])[k] = fS; + (D.f[d0M0])[ks] = fN; + (D.f[d00P])[k] = fB; + (D.f[d00M])[kb] = fT; + (D.f[dPP0])[k] = fSW; + (D.f[dMM0])[ksw] = fNE; + (D.f[dPM0])[ks] = fNW; + (D.f[dMP0])[kw] = fSE; + (D.f[dP0P])[k] = fBW; + (D.f[dM0M])[kbw] = fTE; + (D.f[dP0M])[kb] = fTW; + (D.f[dM0P])[kw] = fBE; + (D.f[d0PP])[k] = fBS; + (D.f[d0MM])[kbs] = fTN; + (D.f[d0PM])[kb] = fTS; + (D.f[d0MP])[ks] = fBN; + (D.f[d000])[k] = fZERO; + (D.f[dPPP])[k] = fBSW; + (D.f[dPMP])[ks] = fBNW; + (D.f[dPPM])[kb] = fTSW; + (D.f[dPMM])[kbs] = fTNW; + (D.f[dMPP])[kw] = fBSE; + (D.f[dMMP])[ksw] = fBNE; + (D.f[dMPM])[kbw] = fTSE; + (D.f[dMMM])[kbsw] = fTNE; + ////////////////////////////////////////////////////////////////////////// + } + } } \ No newline at end of file diff --git a/src/gpu/core/Kernel/Compressible/NavierStokes/B92/B92CompressibleNavierStokes_Device.cuh b/src/gpu/core/Kernel/Compressible/NavierStokes/B92/B92CompressibleNavierStokes_Device.cuh index 4e0450452ddeca71cfd7c76074988159e51fa78d..25406d56a770f59e1f014c54debd03d80dcc86cc 100644 --- a/src/gpu/core/Kernel/Compressible/NavierStokes/B92/B92CompressibleNavierStokes_Device.cuh +++ b/src/gpu/core/Kernel/Compressible/NavierStokes/B92/B92CompressibleNavierStokes_Device.cuh @@ -5,13 +5,13 @@ #include <curand.h> __global__ void B92CompressibleNavierStokes_Device( - real omega, - unsigned int* bcMatD, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - real* DDStart, - int size_Mat, - bool EvenOrOdd); + real omega, + unsigned int* bcMatD, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + real* DDStart, + int size_Mat, + bool EvenOrOdd); #endif \ No newline at end of file diff --git a/src/gpu/core/Kernel/Compressible/NavierStokes/K15/K15CompressibleNavierStokes.cu b/src/gpu/core/Kernel/Compressible/NavierStokes/K15/K15CompressibleNavierStokes.cu index 086914172185a45a7a84873ded4726ea77bc0985..4cb59734754105e50a9d9ea5d707fa493404f1d5 100644 --- a/src/gpu/core/Kernel/Compressible/NavierStokes/K15/K15CompressibleNavierStokes.cu +++ b/src/gpu/core/Kernel/Compressible/NavierStokes/K15/K15CompressibleNavierStokes.cu @@ -6,49 +6,49 @@ std::shared_ptr<K15CompressibleNavierStokes> K15CompressibleNavierStokes::getNewInstance(std::shared_ptr<Parameter> para, int level) { - return std::shared_ptr<K15CompressibleNavierStokes>(new K15CompressibleNavierStokes(para, level)); + return std::shared_ptr<K15CompressibleNavierStokes>(new K15CompressibleNavierStokes(para, level)); } void K15CompressibleNavierStokes::run() { - int numberOfThreads = para->getParD(level)->numberofthreads; - int size_Mat = (int)para->getParD(level)->numberOfNodes; - - int Grid = (size_Mat / numberOfThreads) + 1; - int Grid1, Grid2; - if (Grid > 512) - { - Grid1 = 512; - Grid2 = (Grid / Grid1) + 1; - } - else - { - Grid1 = 1; - Grid2 = Grid; - } - dim3 grid(Grid1, Grid2, 1); - dim3 threads(numberOfThreads, 1, 1); - - K15CompressibleNavierStokes_Device <<< grid, threads >>>( - para->getParD(level)->omega, - para->getParD(level)->typeOfGridNode, - para->getParD(level)->neighborX, - para->getParD(level)->neighborY, - para->getParD(level)->neighborZ, - para->getParD(level)->distributions.f[0], - para->getParD(level)->numberOfNodes, - level, - para->getForcesDev(), - para->getParD(level)->isEvenTimestep); - getLastCudaError("LB_Kernel_CumulantK15Comp execution failed"); + int numberOfThreads = para->getParD(level)->numberofthreads; + int size_Mat = (int)para->getParD(level)->numberOfNodes; + + int Grid = (size_Mat / numberOfThreads) + 1; + int Grid1, Grid2; + if (Grid > 512) + { + Grid1 = 512; + Grid2 = (Grid / Grid1) + 1; + } + else + { + Grid1 = 1; + Grid2 = Grid; + } + dim3 grid(Grid1, Grid2, 1); + dim3 threads(numberOfThreads, 1, 1); + + K15CompressibleNavierStokes_Device <<< grid, threads >>>( + para->getParD(level)->omega, + para->getParD(level)->typeOfGridNode, + para->getParD(level)->neighborX, + para->getParD(level)->neighborY, + para->getParD(level)->neighborZ, + para->getParD(level)->distributions.f[0], + para->getParD(level)->numberOfNodes, + level, + para->getForcesDev(), + para->getParD(level)->isEvenTimestep); + getLastCudaError("LB_Kernel_CumulantK15Comp execution failed"); } K15CompressibleNavierStokes::K15CompressibleNavierStokes(std::shared_ptr<Parameter> para, int level) { - this->para = para; - this->level = level; + this->para = para; + this->level = level; - myPreProcessorTypes.push_back(InitCompSP27); + myPreProcessorTypes.push_back(InitNavierStokesCompressible); - + } \ No newline at end of file diff --git a/src/gpu/core/Kernel/Compressible/NavierStokes/K15/K15CompressibleNavierStokes.h b/src/gpu/core/Kernel/Compressible/NavierStokes/K15/K15CompressibleNavierStokes.h index 2410a8eb2d744bba87f5642218f22c9d9ab39fd1..51245a10e77ff24eccc434caf8e94475012976f3 100644 --- a/src/gpu/core/Kernel/Compressible/NavierStokes/K15/K15CompressibleNavierStokes.h +++ b/src/gpu/core/Kernel/Compressible/NavierStokes/K15/K15CompressibleNavierStokes.h @@ -6,11 +6,11 @@ class K15CompressibleNavierStokes : public KernelImp { public: - static std::shared_ptr< K15CompressibleNavierStokes> getNewInstance(std::shared_ptr< Parameter> para, int level); - void run(); + static std::shared_ptr< K15CompressibleNavierStokes> getNewInstance(std::shared_ptr< Parameter> para, int level); + void run(); private: - K15CompressibleNavierStokes(); - K15CompressibleNavierStokes(std::shared_ptr< Parameter> para, int level); + K15CompressibleNavierStokes(); + K15CompressibleNavierStokes(std::shared_ptr< Parameter> para, int level); }; #endif \ No newline at end of file diff --git a/src/gpu/core/Kernel/Compressible/NavierStokes/K15/K15CompressibleNavierStokes_Device.cu b/src/gpu/core/Kernel/Compressible/NavierStokes/K15/K15CompressibleNavierStokes_Device.cu index c3be0a4e23b009e0c8d5b523b0a34da0c8551294..1e3e26e9445f413281b0781e5e19b7b247a0f84e 100644 --- a/src/gpu/core/Kernel/Compressible/NavierStokes/K15/K15CompressibleNavierStokes_Device.cu +++ b/src/gpu/core/Kernel/Compressible/NavierStokes/K15/K15CompressibleNavierStokes_Device.cu @@ -7,1269 +7,1269 @@ using namespace vf::lbm::dir; #include "math.h" __global__ void K15CompressibleNavierStokes_Device(real omega, - unsigned int* bcMatD, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - real* DDStart, - int size_Mat, - int level, - real* forces, - bool EvenOrOdd) + unsigned int* bcMatD, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + real* DDStart, + int size_Mat, + int level, + real* forces, + bool EvenOrOdd) { - //////////////////////////////////////////////////////////////////////////////// - const unsigned x = threadIdx.x; // Globaler x-Index - const unsigned y = blockIdx.x; // Globaler y-Index - const unsigned z = blockIdx.y; // Globaler z-Index - - const unsigned nx = blockDim.x; - const unsigned ny = gridDim.x; - - const unsigned k = nx*(ny*z + y) + x; - ////////////////////////////////////////////////////////////////////////// - - if (k<size_Mat) - { - //////////////////////////////////////////////////////////////////////////////// - unsigned int BC; - BC = bcMatD[k]; - - if (BC >= GEO_FLUID/*(BC != GEO_SOLID) && (BC != GEO_VOID)*/) - { - Distributions27 D; - if (EvenOrOdd == true) - { - D.f[dP00] = &DDStart[dP00 * size_Mat]; - D.f[dM00] = &DDStart[dM00 * size_Mat]; - D.f[d0P0] = &DDStart[d0P0 * size_Mat]; - D.f[d0M0] = &DDStart[d0M0 * size_Mat]; - D.f[d00P] = &DDStart[d00P * size_Mat]; - D.f[d00M] = &DDStart[d00M * size_Mat]; - D.f[dPP0] = &DDStart[dPP0 * size_Mat]; - D.f[dMM0] = &DDStart[dMM0 * size_Mat]; - D.f[dPM0] = &DDStart[dPM0 * size_Mat]; - D.f[dMP0] = &DDStart[dMP0 * size_Mat]; - D.f[dP0P] = &DDStart[dP0P * size_Mat]; - D.f[dM0M] = &DDStart[dM0M * size_Mat]; - D.f[dP0M] = &DDStart[dP0M * size_Mat]; - D.f[dM0P] = &DDStart[dM0P * size_Mat]; - D.f[d0PP] = &DDStart[d0PP * size_Mat]; - D.f[d0MM] = &DDStart[d0MM * size_Mat]; - D.f[d0PM] = &DDStart[d0PM * size_Mat]; - D.f[d0MP] = &DDStart[d0MP * size_Mat]; - D.f[d000] = &DDStart[d000 * size_Mat]; - D.f[dPPP] = &DDStart[dPPP * size_Mat]; - D.f[dMMP] = &DDStart[dMMP * size_Mat]; - D.f[dPMP] = &DDStart[dPMP * size_Mat]; - D.f[dMPP] = &DDStart[dMPP * size_Mat]; - D.f[dPPM] = &DDStart[dPPM * size_Mat]; - D.f[dMMM] = &DDStart[dMMM * size_Mat]; - D.f[dPMM] = &DDStart[dPMM * size_Mat]; - D.f[dMPM] = &DDStart[dMPM * size_Mat]; - } - else - { - D.f[dM00] = &DDStart[dP00 * size_Mat]; - D.f[dP00] = &DDStart[dM00 * size_Mat]; - D.f[d0M0] = &DDStart[d0P0 * size_Mat]; - D.f[d0P0] = &DDStart[d0M0 * size_Mat]; - D.f[d00M] = &DDStart[d00P * size_Mat]; - D.f[d00P] = &DDStart[d00M * size_Mat]; - D.f[dMM0] = &DDStart[dPP0 * size_Mat]; - D.f[dPP0] = &DDStart[dMM0 * size_Mat]; - D.f[dMP0] = &DDStart[dPM0 * size_Mat]; - D.f[dPM0] = &DDStart[dMP0 * size_Mat]; - D.f[dM0M] = &DDStart[dP0P * size_Mat]; - D.f[dP0P] = &DDStart[dM0M * size_Mat]; - D.f[dM0P] = &DDStart[dP0M * size_Mat]; - D.f[dP0M] = &DDStart[dM0P * size_Mat]; - D.f[d0MM] = &DDStart[d0PP * size_Mat]; - D.f[d0PP] = &DDStart[d0MM * size_Mat]; - D.f[d0MP] = &DDStart[d0PM * size_Mat]; - D.f[d0PM] = &DDStart[d0MP * size_Mat]; - D.f[d000] = &DDStart[d000 * size_Mat]; - D.f[dMMM] = &DDStart[dPPP * size_Mat]; - D.f[dPPM] = &DDStart[dMMP * size_Mat]; - D.f[dMPM] = &DDStart[dPMP * size_Mat]; - D.f[dPMM] = &DDStart[dMPP * size_Mat]; - D.f[dMMP] = &DDStart[dPPM * size_Mat]; - D.f[dPPP] = &DDStart[dMMM * size_Mat]; - D.f[dMPP] = &DDStart[dPMM * size_Mat]; - D.f[dPMP] = &DDStart[dMPM * size_Mat]; - } - - //////////////////////////////////////////////////////////////////////////////// - //index - //unsigned int kzero= k; - //unsigned int ke = k; - unsigned int kw = neighborX[k]; - //unsigned int kn = k; - unsigned int ks = neighborY[k]; - //unsigned int kt = k; - unsigned int kb = neighborZ[k]; - unsigned int ksw = neighborY[kw]; - //unsigned int kne = k; - //unsigned int kse = ks; - //unsigned int knw = kw; - unsigned int kbw = neighborZ[kw]; - //unsigned int kte = k; - //unsigned int kbe = kb; - //unsigned int ktw = kw; - unsigned int kbs = neighborZ[ks]; - //unsigned int ktn = k; - //unsigned int kbn = kb; - //unsigned int kts = ks; - //unsigned int ktse = ks; - //unsigned int kbnw = kbw; - //unsigned int ktnw = kw; - //unsigned int kbse = kbs; - //unsigned int ktsw = ksw; - //unsigned int kbne = kb; - //unsigned int ktne = k; - unsigned int kbsw = neighborZ[ksw]; - - //unsigned int kzero= k; - //unsigned int ke = k; - //unsigned int kw = neighborX[k]; - //unsigned int kn = k; - //unsigned int ks = neighborY[k]; - //unsigned int kt = k; - //unsigned int kb = neighborZ[k]; - //unsigned int ksw = neighborY[kw]; - //unsigned int kne = k; - //unsigned int kse = ks; - //unsigned int knw = kw; - //unsigned int kbw = neighborZ[kw]; - //unsigned int kte = k; - //unsigned int kbe = kb; - //unsigned int ktw = kw; - //unsigned int kbs = neighborZ[ks]; - //unsigned int ktn = k; - //unsigned int kbn = kb; - //unsigned int kts = ks; - //unsigned int ktse = ks; - //unsigned int kbnw = kbw; - //unsigned int ktnw = kw; - //unsigned int kbse = kbs; - //unsigned int ktsw = ksw; - //unsigned int kbne = kb; - //unsigned int ktne = k; - //unsigned int kbsw = neighborZ[ksw]; - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real mfcbb = (D.f[dP00])[k];//[ke ];// + c2over27 ;(D.f[dP00])[k ];//ke - real mfabb = (D.f[dM00])[kw];//[kw ];// + c2over27 ;(D.f[dM00])[kw ]; - real mfbcb = (D.f[d0P0])[k];//[kn ];// + c2over27 ;(D.f[d0P0])[k ];//kn - real mfbab = (D.f[d0M0])[ks];//[ks ];// + c2over27 ;(D.f[d0M0])[ks ]; - real mfbbc = (D.f[d00P])[k];//[kt ];// + c2over27 ;(D.f[d00P])[k ];//kt - real mfbba = (D.f[d00M])[kb];//[kb ];// + c2over27 ;(D.f[d00M])[kb ]; - real mfccb = (D.f[dPP0])[k];//[kne ];// + c1over54 ;(D.f[dPP0])[k ];//kne - real mfaab = (D.f[dMM0])[ksw];//[ksw ];// + c1over54 ;(D.f[dMM0])[ksw]; - real mfcab = (D.f[dPM0])[ks];//[kse ];// + c1over54 ;(D.f[dPM0])[ks ];//kse - real mfacb = (D.f[dMP0])[kw];//[knw ];// + c1over54 ;(D.f[dMP0])[kw ];//knw - real mfcbc = (D.f[dP0P])[k];//[kte ];// + c1over54 ;(D.f[dP0P])[k ];//kte - real mfaba = (D.f[dM0M])[kbw];//[kbw ];// + c1over54 ;(D.f[dM0M])[kbw]; - real mfcba = (D.f[dP0M])[kb];//[kbe ];// + c1over54 ;(D.f[dP0M])[kb ];//kbe - real mfabc = (D.f[dM0P])[kw];//[ktw ];// + c1over54 ;(D.f[dM0P])[kw ];//ktw - real mfbcc = (D.f[d0PP])[k];//[ktn ];// + c1over54 ;(D.f[d0PP])[k ];//ktn - real mfbaa = (D.f[d0MM])[kbs];//[kbs ];// + c1over54 ;(D.f[d0MM])[kbs]; - real mfbca = (D.f[d0PM])[kb];//[kbn ];// + c1over54 ;(D.f[d0PM])[kb ];//kbn - real mfbac = (D.f[d0MP])[ks];//[kts ];// + c1over54 ;(D.f[d0MP])[ks ];//kts - real mfbbb = (D.f[d000])[k];//[kzero];// + c8over27 ;(D.f[d000])[k ];//kzero - real mfccc = (D.f[dPPP])[k];//[ktne ];// + c1over216;(D.f[dPPP])[k ];//ktne - real mfaac = (D.f[dMMP])[ksw];//[ktsw ];// + c1over216;(D.f[dMMP])[ksw];//ktsw - real mfcac = (D.f[dPMP])[ks];//[ktse ];// + c1over216;(D.f[dPMP])[ks ];//ktse - real mfacc = (D.f[dMPP])[kw];//[ktnw ];// + c1over216;(D.f[dMPP])[kw ];//ktnw - real mfcca = (D.f[dPPM])[kb];//[kbne ];// + c1over216;(D.f[dPPM])[kb ];//kbne - real mfaaa = (D.f[dMMM])[kbsw];//[kbsw ];// + c1over216;(D.f[dMMM])[kbsw]; - real mfcaa = (D.f[dPMM])[kbs];//[kbse ];// + c1over216;(D.f[dPMM])[kbs];//kbse - real mfaca = (D.f[dMPM])[kbw];//[kbnw ];// + c1over216;(D.f[dMPM])[kbw];//kbnw - //////////////////////////////////////////////////////////////////////////////////// - real drho = ((((mfccc + mfaaa) + (mfaca + mfcac)) + ((mfacc + mfcaa) + (mfaac + mfcca))) + - (((mfbac + mfbca) + (mfbaa + mfbcc)) + ((mfabc + mfcba) + (mfaba + mfcbc)) + ((mfacb + mfcab) + (mfaab + mfccb))) + - ((mfabb + mfcbb) + (mfbab + mfbcb) + (mfbba + mfbbc))) + mfbbb; - - real rho = c1o1 + drho; - //////////////////////////////////////////////////////////////////////////////////// - //slow - //real oMdrho = one - ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + - // (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + - // ((mfabb+mfcbb) + (mfbab+mfbcb) + (mfbba+mfbbc)));//fehlt mfbbb - real vvx = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfcaa - mfacc) + (mfcca - mfaac))) + - (((mfcba - mfabc) + (mfcbc - mfaba)) + ((mfcab - mfacb) + (mfccb - mfaab))) + - (mfcbb - mfabb)) / rho; - real vvy = ((((mfccc - mfaaa) + (mfaca - mfcac)) + ((mfacc - mfcaa) + (mfcca - mfaac))) + - (((mfbca - mfbac) + (mfbcc - mfbaa)) + ((mfacb - mfcab) + (mfccb - mfaab))) + - (mfbcb - mfbab)) / rho; - real vvz = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfacc - mfcaa) + (mfaac - mfcca))) + - (((mfbac - mfbca) + (mfbcc - mfbaa)) + ((mfabc - mfcba) + (mfcbc - mfaba))) + - (mfbbc - mfbba)) / rho; - //////////////////////////////////////////////////////////////////////////////////// - //the force be with you - real fx = forces[0] / (pow((double)c2o1, (double)level)); //zero;//0.0032653/(pow(two,level)); //0.000000005;//(two/1600000.0) / 120.0; // - real fy = forces[1] / (pow((double)c2o1, (double)level)); //zero; - real fz = forces[2] / (pow((double)c2o1, (double)level)); //zero; - vvx += fx*c1o2; - vvy += fy*c1o2; - vvz += fz*c1o2; - //////////////////////////////////////////////////////////////////////////////////// - //real omega = omega_in; - //////////////////////////////////////////////////////////////////////////////////// - //fast - real oMdrho = c1o1; // comp special - //real oMdrho = one - (mfccc+mfaaa + mfaca+mfcac + mfacc+mfcaa + mfaac+mfcca + - // mfbac+mfbca + mfbaa+mfbcc + mfabc+mfcba + mfaba+mfcbc + mfacb+mfcab + mfaab+mfccb + - // mfabb+mfcbb + mfbab+mfbcb + mfbba+mfbbc + mfbbb);//fehlt mfbbb nicht mehr - //real vvx =mfccc-mfaaa + mfcac-mfaca + mfcaa-mfacc + mfcca-mfaac + - // mfcba-mfabc + mfcbc-mfaba + mfcab-mfacb + mfccb-mfaab + - // mfcbb-mfabb; - //real vvy =mfccc-mfaaa + mfaca-mfcac + mfacc-mfcaa + mfcca-mfaac + - // mfbca-mfbac + mfbcc-mfbaa + mfacb-mfcab + mfccb-mfaab + - // mfbcb-mfbab; - //real vvz =mfccc-mfaaa + mfcac-mfaca + mfacc-mfcaa + mfaac-mfcca + - // mfbac-mfbca + mfbcc-mfbaa + mfabc-mfcba + mfcbc-mfaba + - // mfbbc-mfbba; - //////////////////////////////////////////////////////////////////////////////////// - // oMdrho assembler style -------> faaaaaastaaaa - // or much sloooowaaaa ... it dep�ndssssss on sadaku - real m0, m1, m2; - //real oMdrho; - //{ - // oMdrho=mfccc+mfaaa; - // m0=mfaca+mfcac; - // m1=mfacc+mfcaa; - // m2=mfaac+mfcca; - // oMdrho+=m0; - // m1+=m2; - // oMdrho+=m1; - // m0=mfbac+mfbca; - // m1=mfbaa+mfbcc; - // m0+=m1; - // m1=mfabc+mfcba; - // m2=mfaba+mfcbc; - // m1+=m2; - // m0+=m1; - // m1=mfacb+mfcab; - // m2=mfaab+mfccb; - // m1+=m2; - // m0+=m1; - // oMdrho+=m0; - // m0=mfabb+mfcbb; - // m1=mfbab+mfbcb; - // m2=mfbba+mfbbc; - // m0+=m1+m2; - // m0+=mfbbb; //hat gefehlt - // oMdrho = one - (oMdrho + m0); - //} - //real vvx; - real vx2; - //{ - // vvx = mfccc-mfaaa; - // m0 = mfcac-mfaca; - // m1 = mfcaa-mfacc; - // m2 = mfcca-mfaac; - // vvx+= m0; - // m1 += m2; - // vvx+= m1; - // vx2 = mfcba-mfabc; - // m0 = mfcbc-mfaba; - // m1 = mfcab-mfacb; - // m2 = mfccb-mfaab; - // vx2+= m0; - // m1 += m2; - // vx2+= m1; - // vvx+= vx2; - // vx2 = mfcbb-mfabb; - // vvx+= vx2; - //} - //real vvy; - real vy2; - //{ - // vvy = mfccc-mfaaa; - // m0 = mfaca-mfcac; - // m1 = mfacc-mfcaa; - // m2 = mfcca-mfaac; - // vvy+= m0; - // m1 += m2; - // vvy+= m1; - // vy2 = mfbca-mfbac; - // m0 = mfbcc-mfbaa; - // m1 = mfacb-mfcab; - // m2 = mfccb-mfaab; - // vy2+= m0; - // m1 += m2; - // vy2+= m1; - // vvy+= vy2; - // vy2 = mfbcb-mfbab; - // vvy+= vy2; - //} - //real vvz; - real vz2; - //{ - // vvz = mfccc-mfaaa; - // m0 = mfcac-mfaca; - // m1 = mfacc-mfcaa; - // m2 = mfaac-mfcca; - // vvz+= m0; - // m1 += m2; - // vvz+= m1; - // vz2 = mfbac-mfbca; - // m0 = mfbcc-mfbaa; - // m1 = mfabc-mfcba; - // m2 = mfcbc-mfaba; - // vz2+= m0; - // m1 += m2; - // vz2+= m1; - // vvz+= vz2; - // vz2 = mfbbc-mfbba; - // vvz+= vz2; - //} - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - ////////////////////////////////////////////////////////////////////////////////////// - //// test rundungsfehler.... - //mfcbb = (mfcbb - c2over27* (rho-one))/(rho); - //mfabb = (mfabb - c2over27* (rho-one))/(rho); - //mfbcb = (mfbcb - c2over27* (rho-one))/(rho); - //mfbab = (mfbab - c2over27* (rho-one))/(rho); - //mfbbc = (mfbbc - c2over27* (rho-one))/(rho); - //mfbba = (mfbba - c2over27* (rho-one))/(rho); - //mfccb = (mfccb - c1over54* (rho-one))/(rho); - //mfaab = (mfaab - c1over54* (rho-one))/(rho); - //mfcab = (mfcab - c1over54* (rho-one))/(rho); - //mfacb = (mfacb - c1over54* (rho-one))/(rho); - //mfcbc = (mfcbc - c1over54* (rho-one))/(rho); - //mfaba = (mfaba - c1over54* (rho-one))/(rho); - //mfcba = (mfcba - c1over54* (rho-one))/(rho); - //mfabc = (mfabc - c1over54* (rho-one))/(rho); - //mfbcc = (mfbcc - c1over54* (rho-one))/(rho); - //mfbaa = (mfbaa - c1over54* (rho-one))/(rho); - //mfbca = (mfbca - c1over54* (rho-one))/(rho); - //mfbac = (mfbac - c1over54* (rho-one))/(rho); - //mfbbb = (mfbbb - c8over27* (rho-one))/(rho); - //mfccc = (mfccc - c1over216*(rho-one))/(rho); - //mfaac = (mfaac - c1over216*(rho-one))/(rho); - //mfcac = (mfcac - c1over216*(rho-one))/(rho); - //mfacc = (mfacc - c1over216*(rho-one))/(rho); - //mfcca = (mfcca - c1over216*(rho-one))/(rho); - //mfaaa = (mfaaa - c1over216*(rho-one))/(rho); - //mfcaa = (mfcaa - c1over216*(rho-one))/(rho); - //mfaca = (mfaca - c1over216*(rho-one))/(rho); - //////////////////////////////////////////////////////////////////////////////////// - real wadjust; - real qudricLimitP = c1o100;// * 0.0001f; - real qudricLimitM = c1o100;// * 0.0001f; - real qudricLimitD = c1o100;// * 0.001f; - //real s9 = minusomega; - //test - //s9 = 0.; - //////////////////////////////////////////////////////////////////////////////////// - //Hin - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m2 = mfaaa + mfaac; - m1 = mfaac - mfaaa; - m0 = m2 + mfaab; - mfaaa = m0; - m0 += c1o36 * oMdrho; - mfaab = m1 - m0 * vvz; - mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfabc; - m1 = mfabc - mfaba; - m0 = m2 + mfabb; - mfaba = m0; - m0 += c1o9 * oMdrho; - mfabb = m1 - m0 * vvz; - mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfacc; - m1 = mfacc - mfaca; - m0 = m2 + mfacb; - mfaca = m0; - m0 += c1o36 * oMdrho; - mfacb = m1 - m0 * vvz; - mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbac; - m1 = mfbac - mfbaa; - m0 = m2 + mfbab; - mfbaa = m0; - m0 += c1o9 * oMdrho; - mfbab = m1 - m0 * vvz; - mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbba + mfbbc; - m1 = mfbbc - mfbba; - m0 = m2 + mfbbb; - mfbba = m0; - m0 += c4o9 * oMdrho; - mfbbb = m1 - m0 * vvz; - mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbca + mfbcc; - m1 = mfbcc - mfbca; - m0 = m2 + mfbcb; - mfbca = m0; - m0 += c1o9 * oMdrho; - mfbcb = m1 - m0 * vvz; - mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcac; - m1 = mfcac - mfcaa; - m0 = m2 + mfcab; - mfcaa = m0; - m0 += c1o36 * oMdrho; - mfcab = m1 - m0 * vvz; - mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcba + mfcbc; - m1 = mfcbc - mfcba; - m0 = m2 + mfcbb; - mfcba = m0; - m0 += c1o9 * oMdrho; - mfcbb = m1 - m0 * vvz; - mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcca + mfccc; - m1 = mfccc - mfcca; - m0 = m2 + mfccb; - mfcca = m0; - m0 += c1o36 * oMdrho; - mfccb = m1 - m0 * vvz; - mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m2 = mfaaa + mfaca; - m1 = mfaca - mfaaa; - m0 = m2 + mfaba; - mfaaa = m0; - m0 += c1o6 * oMdrho; - mfaba = m1 - m0 * vvy; - mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfacb; - m1 = mfacb - mfaab; - m0 = m2 + mfabb; - mfaab = m0; - mfabb = m1 - m0 * vvy; - mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfacc; - m1 = mfacc - mfaac; - m0 = m2 + mfabc; - mfaac = m0; - m0 += c1o18 * oMdrho; - mfabc = m1 - m0 * vvy; - mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbca; - m1 = mfbca - mfbaa; - m0 = m2 + mfbba; - mfbaa = m0; - m0 += c2o3 * oMdrho; - mfbba = m1 - m0 * vvy; - mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbab + mfbcb; - m1 = mfbcb - mfbab; - m0 = m2 + mfbbb; - mfbab = m0; - mfbbb = m1 - m0 * vvy; - mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbac + mfbcc; - m1 = mfbcc - mfbac; - m0 = m2 + mfbbc; - mfbac = m0; - m0 += c2o9 * oMdrho; - mfbbc = m1 - m0 * vvy; - mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcca; - m1 = mfcca - mfcaa; - m0 = m2 + mfcba; - mfcaa = m0; - m0 += c1o6 * oMdrho; - mfcba = m1 - m0 * vvy; - mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcab + mfccb; - m1 = mfccb - mfcab; - m0 = m2 + mfcbb; - mfcab = m0; - mfcbb = m1 - m0 * vvy; - mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcac + mfccc; - m1 = mfccc - mfcac; - m0 = m2 + mfcbc; - mfcac = m0; - m0 += c1o18 * oMdrho; - mfcbc = m1 - m0 * vvy; - mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m2 = mfaaa + mfcaa; - m1 = mfcaa - mfaaa; - m0 = m2 + mfbaa; - mfaaa = m0; - m0 += c1o1* oMdrho; - mfbaa = m1 - m0 * vvx; - mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfcba; - m1 = mfcba - mfaba; - m0 = m2 + mfbba; - mfaba = m0; - mfbba = m1 - m0 * vvx; - mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfcca; - m1 = mfcca - mfaca; - m0 = m2 + mfbca; - mfaca = m0; - m0 += c1o3 * oMdrho; - mfbca = m1 - m0 * vvx; - mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfcab; - m1 = mfcab - mfaab; - m0 = m2 + mfbab; - mfaab = m0; - mfbab = m1 - m0 * vvx; - mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabb + mfcbb; - m1 = mfcbb - mfabb; - m0 = m2 + mfbbb; - mfabb = m0; - mfbbb = m1 - m0 * vvx; - mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacb + mfccb; - m1 = mfccb - mfacb; - m0 = m2 + mfbcb; - mfacb = m0; - mfbcb = m1 - m0 * vvx; - mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfcac; - m1 = mfcac - mfaac; - m0 = m2 + mfbac; - mfaac = m0; - m0 += c1o3 * oMdrho; - mfbac = m1 - m0 * vvx; - mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabc + mfcbc; - m1 = mfcbc - mfabc; - m0 = m2 + mfbbc; - mfabc = m0; - mfbbc = m1 - m0 * vvx; - mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacc + mfccc; - m1 = mfccc - mfacc; - m0 = m2 + mfbcc; - mfacc = m0; - m0 += c1o9 * oMdrho; - mfbcc = m1 - m0 * vvx; - mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - - - //////////////////////////////////////////////////////////////////////////////////// - // Cumulants - //////////////////////////////////////////////////////////////////////////////////// - real OxxPyyPzz = c1o1; //omega; // one; //set the bulk viscosity one is high / two is very low and zero is (too) high - - //////////////////////////////////////////////////////////// - //3. - ////////////////////////////// - real OxyyPxzz = c1o1;//three * (two - omega) / (three - omega);//one;//(1000.*(-2. + omega))/(-1000. + 439.*omega);//(eight * (omega - two)) / (omega - eight);//two-omega;//eight*(two-omega)/(eight -omega);//one;//omega;//two-omega;// - real OxyyMxzz = c1o1;//six * (two - omega) / (six - omega);//one;//two-omega;//(1000.*(-2. + omega))/(-1000. + 439.*omega);//(eight * (omega - two)) / (omega - eight);//omega;//one;//eight*(two-omega)/(eight -omega);//one;//two-omega;//one;// - real Oxyz = c1o1;//twelve * (two - omega) / (twelve + omega);//one;//two-omega;//(1000.*(-2. + omega))/(-1000. + 439.*omega);//(eight * (omega - two)) / (omega - eight);//omega;//one;//eight*(two-omega)/(eight -omega);//one;//two-omega;//one;// - ////////////////////////////// - //real OxyyPxzz = two-omega;// - //real OxyyMxzz = two-omega;// - ////////////////////////////// - //real OxyyPxzz = (eight * (omega - two)) / (omega - eight);//Ginzburg - //real OxyyMxzz = (eight * (omega - two)) / (omega - eight);//Ginzburg - ////////////////////////////// - //real OxyyPxzz = omega;//BGK - //real OxyyMxzz = omega;//BGK - ////////////////////////////// - //real OxyyPxzz = (one + omega) / two;//1P5 - //real OxyyMxzz = (one + omega) / two;//1P5 - ////////////////////////////// - //real OxyyPxzz = (three - omega) / two;//0P5 - //real OxyyMxzz = (three - omega) / two;//0P5 - ////////////////////////////// - //real OxyyPxzz = (one + (eight * (omega - two)) / (omega - eight)) / two;//one + Ginzburg / two ... Car - //real OxyyMxzz = (one + (eight * (omega - two)) / (omega - eight)) / two;//one + Ginzburg / two ... Car - //////////////////////////////////////////////////////////// - //4. - ////////////////////////////// - real O4 = c1o1; - ////////////////////////////// - //real O4 = omega;//TRT - //////////////////////////////////////////////////////////// - //5. - ////////////////////////////// - real O5 = c1o1; - //////////////////////////////////////////////////////////// - //6. - ////////////////////////////// - real O6 = c1o1; - //////////////////////////////////////////////////////////// - - - //central moments to cumulants - //4. - //real CUMcbb = mfcbb - ((mfcaa + c1o3 * oMdrho) * mfabb + two * mfbba * mfbab) / rho; //bis 15.05.2015 verwendet - //real CUMbcb = mfbcb - ((mfaca + c1o3 * oMdrho) * mfbab + two * mfbba * mfabb) / rho; //bis 15.05.2015 verwendet - //real CUMbbc = mfbbc - ((mfaac + c1o3 * oMdrho) * mfbba + two * mfbab * mfabb) / rho; //bis 15.05.2015 verwendet - real CUMcbb = mfcbb - ((mfcaa + c1o3) * mfabb + c2o1 * mfbba * mfbab) / rho; //ab 15.05.2015 verwendet - real CUMbcb = mfbcb - ((mfaca + c1o3) * mfbab + c2o1 * mfbba * mfabb) / rho; //ab 15.05.2015 verwendet - real CUMbbc = mfbbc - ((mfaac + c1o3) * mfbba + c2o1 * mfbab * mfabb) / rho; //ab 15.05.2015 verwendet - - real CUMcca = mfcca - (((mfcaa * mfaca + c2o1 * mfbba * mfbba) + c1o3 * (mfcaa + mfaca)) / rho - c1o9*(drho / rho)); - real CUMcac = mfcac - (((mfcaa * mfaac + c2o1 * mfbab * mfbab) + c1o3 * (mfcaa + mfaac)) / rho - c1o9*(drho / rho)); - real CUMacc = mfacc - (((mfaac * mfaca + c2o1 * mfabb * mfabb) + c1o3 * (mfaac + mfaca)) / rho - c1o9*(drho / rho)); - - //5. - real CUMbcc = mfbcc - ((mfaac * mfbca + mfaca * mfbac + c4o1 * mfabb * mfbbb + c2o1 * (mfbab * mfacb + mfbba * mfabc)) + c1o3 * (mfbca + mfbac)) / rho; - real CUMcbc = mfcbc - ((mfaac * mfcba + mfcaa * mfabc + c4o1 * mfbab * mfbbb + c2o1 * (mfabb * mfcab + mfbba * mfbac)) + c1o3 * (mfcba + mfabc)) / rho; - real CUMccb = mfccb - ((mfcaa * mfacb + mfaca * mfcab + c4o1 * mfbba * mfbbb + c2o1 * (mfbab * mfbca + mfabb * mfcba)) + c1o3 * (mfacb + mfcab)) / rho; - - //6. - - real CUMccc = mfccc + ((-c4o1 * mfbbb * mfbbb - - (mfcaa * mfacc + mfaca * mfcac + mfaac * mfcca) - - c4o1 * (mfabb * mfcbb + mfbab * mfbcb + mfbba * mfbbc) - - c2o1 * (mfbca * mfbac + mfcba * mfabc + mfcab * mfacb)) / rho - + (c4o1 * (mfbab * mfbab * mfaca + mfabb * mfabb * mfcaa + mfbba * mfbba * mfaac) - + c2o1 * (mfcaa * mfaca * mfaac) - + c16o1 * mfbba * mfbab * mfabb) / (rho * rho) - - c1o3 * (mfacc + mfcac + mfcca) / rho - - c1o9 * (mfcaa + mfaca + mfaac) / rho - + (c2o1 * (mfbab * mfbab + mfabb * mfabb + mfbba * mfbba) - + (mfaac * mfaca + mfaac * mfcaa + mfaca * mfcaa) + c1o3 *(mfaac + mfaca + mfcaa)) / (rho * rho) * c2o3 - + c1o27*((drho * drho - drho) / (rho*rho))); - //+ c1o27*(one -three/rho +two/(rho*rho))); - - - - - ////Cum 4. - //real CUMcbb = mfcbb - ((mfcaa + c1o3 * oMdrho) * mfabb + two * mfbba * mfbab)/rho; // - //real CUMbcb = mfbcb - ((mfaca + c1o3 * oMdrho) * mfbab + two * mfbba * mfabb)/rho; // - //real CUMbbc = mfbbc - ((mfaac + c1o3 * oMdrho) * mfbba + two * mfbab * mfabb)/rho; // - - //real CUMcca = mfcca - ((mfcaa * mfaca + two * mfbba * mfbba) /rho + c1o3 * (mfcaa + mfaca) * oMdrho + c1o9*(oMdrho-one)*oMdrho); - //real CUMcac = mfcac - ((mfcaa * mfaac + two * mfbab * mfbab) /rho + c1o3 * (mfcaa + mfaac) * oMdrho + c1o9*(oMdrho-one)*oMdrho); - //real CUMacc = mfacc - ((mfaac * mfaca + two * mfabb * mfabb) /rho + c1o3 * (mfaac + mfaca) * oMdrho + c1o9*(oMdrho-one)*oMdrho); - - ////Cum 5. - //real CUMbcc = mfbcc - (mfaac * mfbca + mfaca * mfbac + four * mfabb * mfbbb + two * (mfbab * mfacb + mfbba * mfabc)) / rho - c1o3 * (mfbca + mfbac) * oMdrho; - //real CUMcbc = mfcbc - (mfaac * mfcba + mfcaa * mfabc + four * mfbab * mfbbb + two * (mfabb * mfcab + mfbba * mfbac)) / rho - c1o3 * (mfcba + mfabc) * oMdrho; - //real CUMccb = mfccb - (mfcaa * mfacb + mfaca * mfcab + four * mfbba * mfbbb + two * (mfbab * mfbca + mfabb * mfcba)) / rho - c1o3 * (mfacb + mfcab) * oMdrho; - - ////Cum 6. - //real CUMccc = mfccc +((-four * mfbbb * mfbbb - // - (mfcaa * mfacc + mfaca * mfcac + mfaac * mfcca) - // - four * (mfabb * mfcbb + mfbab * mfbcb + mfbba * mfbbc) - // - two * (mfbca * mfbac + mfcba * mfabc + mfcab * mfacb)) / rho - // +( four * (mfbab * mfbab * mfaca + mfabb * mfabb * mfcaa + mfbba * mfbba * mfaac) - // + two * (mfcaa * mfaca * mfaac) - // + sixteen * mfbba * mfbab * mfabb) / (rho * rho) - // - c1o3 * (mfacc + mfcac + mfcca) * oMdrho -c1o9*oMdrho*oMdrho - // - c1o9 * (mfcaa + mfaca + mfaac) * oMdrho*(one-two* oMdrho)- c1o27* oMdrho * oMdrho*(-two* oMdrho) - // +( two * (mfbab * mfbab + mfabb * mfabb + mfbba * mfbba) - // + (mfaac * mfaca + mfaac * mfcaa + mfaca * mfcaa)) / rho * c2o3*oMdrho) +c1o27*oMdrho; - - - - - - //2. - // linear combinations - real mxxPyyPzz = mfcaa + mfaca + mfaac; - real mxxMyy = mfcaa - mfaca; - real mxxMzz = mfcaa - mfaac; - - ////////////////////////////////////////////////////////////////////////// - // real magicBulk=(CUMacc+CUMcac+CUMcca)*(one/OxxPyyPzz-c1o2)*c3o2*8.; - - ////////////////////////////////////////////////////////////////////////// - //limiter-Scheise Teil 1 - //real oxxyy,oxxzz,oxy,oxz,oyz; - //real smag=0.001; - //oxxyy = omega+(one-omega)*abs(mxxMyy)/(abs(mxxMyy)+smag); - //oxxzz = omega+(one-omega)*abs(mxxMzz)/(abs(mxxMzz)+smag); - //oxy = omega+(one-omega)*abs(mfbba)/(abs(mfbba)+smag); - //oxz = omega+(one-omega)*abs(mfbab)/(abs(mfbab)+smag); - //oyz = omega+(one-omega)*abs(mfabb)/(abs(mfabb)+smag); - - //////////////////////////////////////////////////////////////////////////// - ////Teil 1b - //real constante = 1000.0; - //real nuEddi = constante * abs(mxxPyyPzz); - //real omegaLimit = one / (one / omega + three * nuEddi); - - //{ - // real dxux = c1o2 * (-omegaLimit) *(mxxMyy + mxxMzz) + OxxPyyPzz * (mfaaa - mxxPyyPzz); - // real dyuy = dxux + omegaLimit * c3o2 * mxxMyy; - // real dzuz = dxux + omegaLimit * c3o2 * mxxMzz; - - ////relax - //mxxPyyPzz += OxxPyyPzz*(mfaaa - mxxPyyPzz)- three * (one - c1o2 * OxxPyyPzz) * (vx2 * dxux + vy2 * dyuy + vz2 * dzuz); - //mxxMyy += omegaLimit * (-mxxMyy) - three * (one + c1o2 * (-omegaLimit)) * (vx2 * dxux + vy2 * dyuy); - //mxxMzz += omegaLimit * (-mxxMzz) - three * (one + c1o2 * (-omegaLimit)) * (vx2 * dxux + vz2 * dzuz); - - //} - //mfabb += omegaLimit * (-mfabb); - //mfbab += omegaLimit * (-mfbab); - //mfbba += omegaLimit * (-mfbba); - //////////////////////////////////////////////////////////////////////////// - - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //incl. correction (hat noch nicht so gut funktioniert...Optimierungsbedarf??) - { - real dxux = c1o2 * (-omega) *(mxxMyy + mxxMzz) + c1o2 * OxxPyyPzz * (mfaaa - mxxPyyPzz); - real dyuy = dxux + omega * c3o2 * mxxMyy; - real dzuz = dxux + omega * c3o2 * mxxMzz; - - //relax - mxxPyyPzz += OxxPyyPzz*(mfaaa - mxxPyyPzz) - c3o1 * (c1o1 - c1o2 * OxxPyyPzz) * (vx2 * dxux + vy2 * dyuy + vz2 * dzuz);//-magicBulk*OxxPyyPzz; - mxxMyy += omega * (-mxxMyy) - c3o1 * (c1o1 + c1o2 * (-omega)) * (vx2 * dxux - vy2 * dyuy); - mxxMzz += omega * (-mxxMzz) - c3o1 * (c1o1 + c1o2 * (-omega)) * (vx2 * dxux - vz2 * dzuz); - - ////////////////////////////////////////////////////////////////////////// - //limiter-Scheise Teil 2 - //mxxMyy += oxxyy * (-mxxMyy) - three * (one + c1o2 * (-omega)) * (vx2 * dxux + vy2 * dyuy); - //mxxMzz += oxxzz * (-mxxMzz) - three * (one + c1o2 * (-omega)) * (vx2 * dxux + vz2 * dzuz); - ////////////////////////////////////////////////////////////////////////// - - } - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - ////no correction - //mxxPyyPzz += OxxPyyPzz*(mfaaa-mxxPyyPzz);//-magicBulk*OxxPyyPzz; - //mxxMyy += -(-omega) * (-mxxMyy); - //mxxMzz += -(-omega) * (-mxxMzz); - ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - mfabb += omega * (-mfabb); - mfbab += omega * (-mfbab); - mfbba += omega * (-mfbba); - - ////////////////////////////////////////////////////////////////////////// - //limiter-Scheise Teil 3 - //mfabb += oyz * (-mfabb); - //mfbab += oxz * (-mfbab); - //mfbba += oxy * (-mfbba); - ////////////////////////////////////////////////////////////////////////// - - // linear combinations back - mfcaa = c1o3 * (mxxMyy + mxxMzz + mxxPyyPzz); - mfaca = c1o3 * (-c2o1* mxxMyy + mxxMzz + mxxPyyPzz); - mfaac = c1o3 * (mxxMyy - c2o1* mxxMzz + mxxPyyPzz); - - //3. - // linear combinations - - real mxxyPyzz = mfcba + mfabc; - real mxxyMyzz = mfcba - mfabc; - - real mxxzPyyz = mfcab + mfacb; - real mxxzMyyz = mfcab - mfacb; - - real mxyyPxzz = mfbca + mfbac; - real mxyyMxzz = mfbca - mfbac; - - //relax - ////////////////////////////////////////////////////////////////////////// - //das ist der limiter - wadjust = Oxyz + (c1o1 - Oxyz)*abs(mfbbb) / (abs(mfbbb) + qudricLimitD); - mfbbb += wadjust * (-mfbbb); - wadjust = OxyyPxzz + (c1o1 - OxyyPxzz)*abs(mxxyPyzz) / (abs(mxxyPyzz) + qudricLimitP); - mxxyPyzz += wadjust * (-mxxyPyzz); - wadjust = OxyyMxzz + (c1o1 - OxyyMxzz)*abs(mxxyMyzz) / (abs(mxxyMyzz) + qudricLimitM); - mxxyMyzz += wadjust * (-mxxyMyzz); - wadjust = OxyyPxzz + (c1o1 - OxyyPxzz)*abs(mxxzPyyz) / (abs(mxxzPyyz) + qudricLimitP); - mxxzPyyz += wadjust * (-mxxzPyyz); - wadjust = OxyyMxzz + (c1o1 - OxyyMxzz)*abs(mxxzMyyz) / (abs(mxxzMyyz) + qudricLimitM); - mxxzMyyz += wadjust * (-mxxzMyyz); - wadjust = OxyyPxzz + (c1o1 - OxyyPxzz)*abs(mxyyPxzz) / (abs(mxyyPxzz) + qudricLimitP); - mxyyPxzz += wadjust * (-mxyyPxzz); - wadjust = OxyyMxzz + (c1o1 - OxyyMxzz)*abs(mxyyMxzz) / (abs(mxyyMxzz) + qudricLimitM); - mxyyMxzz += wadjust * (-mxyyMxzz); - ////////////////////////////////////////////////////////////////////////// - //ohne limiter - //mfbbb += OxyyMxzz * (-mfbbb); - //mxxyPyzz += OxyyPxzz * (-mxxyPyzz); - //mxxyMyzz += OxyyMxzz * (-mxxyMyzz); - //mxxzPyyz += OxyyPxzz * (-mxxzPyyz); - //mxxzMyyz += OxyyMxzz * (-mxxzMyyz); - //mxyyPxzz += OxyyPxzz * (-mxyyPxzz); - //mxyyMxzz += OxyyMxzz * (-mxyyMxzz); - ////////////////////////////////////////////////////////////////////////// - - //// linear combinations back - ////generic - //mfcba = zero; - //mfabc = zero; - //mfcab = zero; - //mfacb = zero; - //mfbca = zero; - //mfbac = zero; - - mfcba = (mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = (mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = (mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4. - //CUMacc = zero; - //CUMcac = zero; - //CUMcca = zero; - // - //CUMbbc = zero; - //CUMbcb = zero; - //CUMcbb = zero; - // - ////5. - //CUMbcc = zero; - //CUMcbc = zero; - //CUMccb = zero; - // - ////6. - //CUMccc = zero; - - //4. - ////////////////////////////////////////////////////////////////////////// - //mit limiter - // wadjust = O4+(one-O4)*abs(CUMacc)/(abs(CUMacc)+qudricLimit); - //CUMacc += wadjust * (-CUMacc); - // wadjust = O4+(one-O4)*abs(CUMcac)/(abs(CUMcac)+qudricLimit); - //CUMcac += wadjust * (-CUMcac); - // wadjust = O4+(one-O4)*abs(CUMcca)/(abs(CUMcca)+qudricLimit); - //CUMcca += wadjust * (-CUMcca); - - // wadjust = O4+(one-O4)*abs(CUMbbc)/(abs(CUMbbc)+qudricLimit); - //CUMbbc += wadjust * (-CUMbbc); - // wadjust = O4+(one-O4)*abs(CUMbcb)/(abs(CUMbcb)+qudricLimit); - //CUMbcb += wadjust * (-CUMbcb); - // wadjust = O4+(one-O4)*abs(CUMcbb)/(abs(CUMcbb)+qudricLimit); - //CUMcbb += wadjust * (-CUMcbb); - ////////////////////////////////////////////////////////////////////////// - //ohne limiter - CUMacc += O4 * (-CUMacc); - CUMcac += O4 * (-CUMcac); - CUMcca += O4 * (-CUMcca); - - CUMbbc += O4 * (-CUMbbc); - CUMbcb += O4 * (-CUMbcb); - CUMcbb += O4 * (-CUMcbb); - ////////////////////////////////////////////////////////////////////////// - - - //5. - CUMbcc += O5 * (-CUMbcc); - CUMcbc += O5 * (-CUMcbc); - CUMccb += O5 * (-CUMccb); - - //6. - CUMccc += O6 * (-CUMccc); - - - - //back cumulants to central moments - //4. - //mfcbb = CUMcbb + ((mfcaa + c1o3 * oMdrho) * mfabb + two * mfbba * mfbab) / rho; //bis 15.05.2015 verwendet - //mfbcb = CUMbcb + ((mfaca + c1o3 * oMdrho) * mfbab + two * mfbba * mfabb) / rho; //bis 15.05.2015 verwendet - //mfbbc = CUMbbc + ((mfaac + c1o3 * oMdrho) * mfbba + two * mfbab * mfabb) / rho; //bis 15.05.2015 verwendet - mfcbb = CUMcbb + ((mfcaa + c1o3) * mfabb + c2o1 * mfbba * mfbab) / rho; //ab 15.05.2015 verwendet - mfbcb = CUMbcb + ((mfaca + c1o3) * mfbab + c2o1 * mfbba * mfabb) / rho; //ab 15.05.2015 verwendet - mfbbc = CUMbbc + ((mfaac + c1o3) * mfbba + c2o1 * mfbab * mfabb) / rho; //ab 15.05.2015 verwendet - - mfcca = CUMcca + (((mfcaa * mfaca + c2o1 * mfbba * mfbba) + c1o3 * (mfcaa + mfaca)) / rho - c1o9*(drho / rho));//(one/rho-one)); - mfcac = CUMcac + (((mfcaa * mfaac + c2o1 * mfbab * mfbab) + c1o3 * (mfcaa + mfaac)) / rho - c1o9*(drho / rho));//(one/rho-one)); - mfacc = CUMacc + (((mfaac * mfaca + c2o1 * mfabb * mfabb) + c1o3 * (mfaac + mfaca)) / rho - c1o9*(drho / rho));//(one/rho-one)); - - //5. - mfbcc = CUMbcc + ((mfaac * mfbca + mfaca * mfbac + c4o1 * mfabb * mfbbb + c2o1 * (mfbab * mfacb + mfbba * mfabc)) + c1o3 * (mfbca + mfbac)) / rho; - mfcbc = CUMcbc + ((mfaac * mfcba + mfcaa * mfabc + c4o1 * mfbab * mfbbb + c2o1 * (mfabb * mfcab + mfbba * mfbac)) + c1o3 * (mfcba + mfabc)) / rho; - mfccb = CUMccb + ((mfcaa * mfacb + mfaca * mfcab + c4o1 * mfbba * mfbbb + c2o1 * (mfbab * mfbca + mfabb * mfcba)) + c1o3 * (mfacb + mfcab)) / rho; - - //6. - - mfccc = CUMccc - ((-c4o1 * mfbbb * mfbbb - - (mfcaa * mfacc + mfaca * mfcac + mfaac * mfcca) - - c4o1 * (mfabb * mfcbb + mfbab * mfbcb + mfbba * mfbbc) - - c2o1 * (mfbca * mfbac + mfcba * mfabc + mfcab * mfacb)) / rho - + (c4o1 * (mfbab * mfbab * mfaca + mfabb * mfabb * mfcaa + mfbba * mfbba * mfaac) - + c2o1 * (mfcaa * mfaca * mfaac) - + c16o1 * mfbba * mfbab * mfabb) / (rho * rho) - - c1o3 * (mfacc + mfcac + mfcca) / rho - - c1o9 * (mfcaa + mfaca + mfaac) / rho - + (c2o1 * (mfbab * mfbab + mfabb * mfabb + mfbba * mfbba) - + (mfaac * mfaca + mfaac * mfcaa + mfaca * mfcaa) + c1o3 *(mfaac + mfaca + mfcaa)) / (rho * rho) * c2o3 - + c1o27*((drho * drho - drho) / (rho*rho))); - //+ c1o27*(one -three/rho +two/(rho*rho))); - - - //mfccc = CUMccc - ((-four * mfbbb * mfbbb - // - (mfcaa * mfacc + mfaca * mfcac + mfaac * mfcca) - // - four * (mfabb * mfcbb + mfbab * mfbcb + mfbba * mfbbc) - // - two * (mfbca * mfbac + mfcba * mfabc + mfcab * mfacb)) / rho - // +( four * (mfbab * mfbab * mfaca + mfabb * mfabb * mfcaa + mfbba * mfbba * mfaac) - // + two * (mfcaa * mfaca * mfaac) - // + sixteen * mfbba * mfbab * mfabb) / (rho * rho) - // - c1o3 * (mfacc + mfcac + mfcca) * oMdrho -c1o9*oMdrho*oMdrho - // - c1o9 * (mfcaa + mfaca + mfaac) * oMdrho*(one-two* oMdrho)- c1o27* oMdrho * oMdrho*(-two* oMdrho) - // +( two * (mfbab * mfbab + mfabb * mfabb + mfbba * mfbba) - // + (mfaac * mfaca + mfaac * mfcaa + mfaca * mfcaa)) / rho * c2o3*oMdrho) -c1o27*oMdrho; - - - - - - //mfccc = CUMccc -(( -four * mfbbb * mfbbb - // - (mfcaa * mfacc + mfaca * mfcac + mfaac * mfcca) - // - four * (mfabb * mfcbb + mfbab * mfbcb + mfbba * mfbbc) - // - two * (mfbca * mfbac + mfcba * mfabc + mfcab * mfacb)) / rho - // +( four * (mfbab * mfbab * mfaca + mfabb * mfabb * mfcaa + mfbba * mfbba * mfaac) - // + two * (mfcaa * mfaca * mfaac) - // + sixteen * mfbba * mfbab * mfabb) / (rho * rho) - // + (c1o3 * (mfacc + mfcac + mfcca) )/rho - // + (c1o9 * (mfcaa + mfaca + mfaac) )/rho - // - (four*c1o3*(mfabb * mfabb + mfbab * mfbab + mfbba * mfbba) + two * ( c1o3 *(mfcaa * mfaca + mfcaa * mfaac + mfaca * mfaac) + c1o9* (mfcaa + mfaca + mfaac )))/(rho*rho) - // + c1o27*(three/rho - two/(rho * rho) - one); - // //- c1o9 * (mfcaa + mfaca + mfaac) * oMdrho*(one-two* oMdrho)- c1o27* oMdrho * oMdrho*(-two* oMdrho) //???? - // //+( two * (mfbab * mfbab + mfabb * mfabb + mfbba * mfbba) - // //+ (mfaac * mfaca + mfaac * mfcaa + mfaca * mfcaa)) / rho * c2o3*oMdrho) -c1o27*oMdrho; - - //Test Cascade - //4. - //mfacc = mfaaa * c1o9 * O4 + (one - O4) * mfacc; - //mfcac = mfaaa * c1o9 * O4 + (one - O4) * mfcac; - //mfcca = mfaaa * c1o9 * O4 + (one - O4) * mfcca; - // - //mfbbc += O4 * (-mfbbc); - //mfbcb += O4 * (-mfbcb); - //mfcbb += O4 * (-mfcbb); - - ////5. - //mfbcc += O5 * (-mfbcc); - //mfcbc += O5 * (-mfcbc); - //mfccb += O5 * (-mfccb); - - //6. - //mfccc = mfaaa * c1o27 * O6 + (one - O6) * mfccc; - - //////////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////// - //the force be with you - mfbaa = -mfbaa; - mfaba = -mfaba; - mfaab = -mfaab; - //////////////////////////////////////////////////////////////////////////////////// - - - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1* oMdrho) * (vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1* mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1* oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1* oMdrho) * (vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * (vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1* mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * (vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * (vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1* mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * (vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * (vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1* mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * (vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * (vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1* mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * (vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * (vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1* mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * (vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * (vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1* mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * (vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * (vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1* mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * (vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * (vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1* mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * (vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * (vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1* mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * (vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * (vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1* mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * (vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * (vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1* mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * (vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * (vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1* mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * (vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * (vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1* mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * (vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * (vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1* mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * (vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * (vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1* mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * (vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * (vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1* mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * (vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * (vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1* mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * (vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * (vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1* mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * (vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * (vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1* mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * (vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * (vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1* mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * (vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * (vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1* mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * (vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * (vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1* mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * (vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * (vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1* mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * (vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * (vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1* mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * (vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * (vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1* mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * (vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * (vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1* mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * (vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////////////////// - //// test rundungsfehler.... - //mfcbb = (mfcbb * rho + c2over27* (rho-one)); - //mfabb = (mfabb * rho + c2over27* (rho-one)); - //mfbcb = (mfbcb * rho + c2over27* (rho-one)); - //mfbab = (mfbab * rho + c2over27* (rho-one)); - //mfbbc = (mfbbc * rho + c2over27* (rho-one)); - //mfbba = (mfbba * rho + c2over27* (rho-one)); - //mfccb = (mfccb * rho + c1over54* (rho-one)); - //mfaab = (mfaab * rho + c1over54* (rho-one)); - //mfcab = (mfcab * rho + c1over54* (rho-one)); - //mfacb = (mfacb * rho + c1over54* (rho-one)); - //mfcbc = (mfcbc * rho + c1over54* (rho-one)); - //mfaba = (mfaba * rho + c1over54* (rho-one)); - //mfcba = (mfcba * rho + c1over54* (rho-one)); - //mfabc = (mfabc * rho + c1over54* (rho-one)); - //mfbcc = (mfbcc * rho + c1over54* (rho-one)); - //mfbaa = (mfbaa * rho + c1over54* (rho-one)); - //mfbca = (mfbca * rho + c1over54* (rho-one)); - //mfbac = (mfbac * rho + c1over54* (rho-one)); - //mfbbb = (mfbbb * rho + c8over27* (rho-one)); - //mfccc = (mfccc * rho + c1over216*(rho-one)); - //mfaac = (mfaac * rho + c1over216*(rho-one)); - //mfcac = (mfcac * rho + c1over216*(rho-one)); - //mfacc = (mfacc * rho + c1over216*(rho-one)); - //mfcca = (mfcca * rho + c1over216*(rho-one)); - //mfaaa = (mfaaa * rho + c1over216*(rho-one)); - //mfcaa = (mfcaa * rho + c1over216*(rho-one)); - //mfaca = (mfaca * rho + c1over216*(rho-one)); - real drhoPost = - ((((mfccc + mfaaa) + (mfaca + mfcac)) + ((mfacc + mfcaa) + (mfaac + mfcca))) + - (((mfbac + mfbca) + (mfbaa + mfbcc)) + ((mfabc + mfcba) + (mfaba + mfcbc)) + ((mfacb + mfcab) + (mfaab + mfccb))) + - ((mfabb + mfcbb) + (mfbab + mfbcb) + (mfbba + mfbbc))) + mfbbb; - mfbbb += drho - drhoPost; - //////////////////////////////////////////////////////////////////////////////////// - (D.f[dP00])[k] = mfabb;//(D.f[ dP00 ])[ke ] = mfabb;// - c2over27 ; (D.f[ dP00 ])[k ] - (D.f[dM00])[kw] = mfcbb;//(D.f[ dM00 ])[kw ] = mfcbb;// - c2over27 ; (D.f[ dM00 ])[kw ] - (D.f[d0P0])[k] = mfbab;//(D.f[ d0P0 ])[kn ] = mfbab;// - c2over27 ; (D.f[ d0P0 ])[k ] - (D.f[d0M0])[ks] = mfbcb;//(D.f[ d0M0 ])[ks ] = mfbcb;// - c2over27 ; (D.f[ d0M0 ])[ks ] - (D.f[d00P])[k] = mfbba;//(D.f[ d00P ])[kt ] = mfbba;// - c2over27 ; (D.f[ d00P ])[k ] - (D.f[d00M])[kb] = mfbbc;//(D.f[ d00M ])[kb ] = mfbbc;// - c2over27 ; (D.f[ d00M ])[kb ] - (D.f[dPP0])[k] = mfaab;//(D.f[ dPP0 ])[kne ] = mfaab;// - c1over54 ; (D.f[ dPP0 ])[k ] - (D.f[dMM0])[ksw] = mfccb;//(D.f[ dMM0 ])[ksw ] = mfccb;// - c1over54 ; (D.f[ dMM0 ])[ksw ] - (D.f[dPM0])[ks] = mfacb;//(D.f[ dPM0 ])[kse ] = mfacb;// - c1over54 ; (D.f[ dPM0 ])[ks ] - (D.f[dMP0])[kw] = mfcab;//(D.f[ dMP0 ])[knw ] = mfcab;// - c1over54 ; (D.f[ dMP0 ])[kw ] - (D.f[dP0P])[k] = mfaba;//(D.f[ dP0P ])[kte ] = mfaba;// - c1over54 ; (D.f[ dP0P ])[k ] - (D.f[dM0M])[kbw] = mfcbc;//(D.f[ dM0M ])[kbw ] = mfcbc;// - c1over54 ; (D.f[ dM0M ])[kbw ] - (D.f[dP0M])[kb] = mfabc;//(D.f[ dP0M ])[kbe ] = mfabc;// - c1over54 ; (D.f[ dP0M ])[kb ] - (D.f[dM0P])[kw] = mfcba;//(D.f[ dM0P ])[ktw ] = mfcba;// - c1over54 ; (D.f[ dM0P ])[kw ] - (D.f[d0PP])[k] = mfbaa;//(D.f[ d0PP ])[ktn ] = mfbaa;// - c1over54 ; (D.f[ d0PP ])[k ] - (D.f[d0MM])[kbs] = mfbcc;//(D.f[ d0MM ])[kbs ] = mfbcc;// - c1over54 ; (D.f[ d0MM ])[kbs ] - (D.f[d0PM])[kb] = mfbac;//(D.f[ d0PM ])[kbn ] = mfbac;// - c1over54 ; (D.f[ d0PM ])[kb ] - (D.f[d0MP])[ks] = mfbca;//(D.f[ d0MP ])[kts ] = mfbca;// - c1over54 ; (D.f[ d0MP ])[ks ] - (D.f[d000])[k] = mfbbb;//(D.f[ d000])[kzero] = mfbbb;// - c8over27 ; (D.f[ d000])[k ] - (D.f[dPPP])[k] = mfaaa;//(D.f[ dPPP ])[ktne ] = mfaaa;// - c1over216; (D.f[ dPPP ])[k ] - (D.f[dPMP])[ks] = mfaca;//(D.f[ dPMP ])[ktse ] = mfaca;// - c1over216; (D.f[ dPMP ])[ks ] - (D.f[dPPM])[kb] = mfaac;//(D.f[ dPPM ])[kbne ] = mfaac;// - c1over216; (D.f[ dPPM ])[kb ] - (D.f[dPMM])[kbs] = mfacc;//(D.f[ dPMM ])[kbse ] = mfacc;// - c1over216; (D.f[ dPMM ])[kbs ] - (D.f[dMPP])[kw] = mfcaa;//(D.f[ dMPP ])[ktnw ] = mfcaa;// - c1over216; (D.f[ dMPP ])[kw ] - (D.f[dMMP])[ksw] = mfcca;//(D.f[ dMMP ])[ktsw ] = mfcca;// - c1over216; (D.f[ dMMP ])[ksw ] - (D.f[dMPM])[kbw] = mfcac;//(D.f[ dMPM ])[kbnw ] = mfcac;// - c1over216; (D.f[ dMPM ])[kbw ] - (D.f[dMMM])[kbsw] = mfccc;//(D.f[ dMMM ])[kbsw ] = mfccc;// - c1over216; (D.f[ dMMM ])[kbsw] - //////////////////////////////////////////////////////////////////////////////////// - } - } + //////////////////////////////////////////////////////////////////////////////// + const unsigned x = threadIdx.x; // Globaler x-Index + const unsigned y = blockIdx.x; // Globaler y-Index + const unsigned z = blockIdx.y; // Globaler z-Index + + const unsigned nx = blockDim.x; + const unsigned ny = gridDim.x; + + const unsigned k = nx*(ny*z + y) + x; + ////////////////////////////////////////////////////////////////////////// + + if (k<size_Mat) + { + //////////////////////////////////////////////////////////////////////////////// + unsigned int BC; + BC = bcMatD[k]; + + if (BC >= GEO_FLUID/*(BC != GEO_SOLID) && (BC != GEO_VOID)*/) + { + Distributions27 D; + if (EvenOrOdd == true) + { + D.f[dP00] = &DDStart[dP00 * size_Mat]; + D.f[dM00] = &DDStart[dM00 * size_Mat]; + D.f[d0P0] = &DDStart[d0P0 * size_Mat]; + D.f[d0M0] = &DDStart[d0M0 * size_Mat]; + D.f[d00P] = &DDStart[d00P * size_Mat]; + D.f[d00M] = &DDStart[d00M * size_Mat]; + D.f[dPP0] = &DDStart[dPP0 * size_Mat]; + D.f[dMM0] = &DDStart[dMM0 * size_Mat]; + D.f[dPM0] = &DDStart[dPM0 * size_Mat]; + D.f[dMP0] = &DDStart[dMP0 * size_Mat]; + D.f[dP0P] = &DDStart[dP0P * size_Mat]; + D.f[dM0M] = &DDStart[dM0M * size_Mat]; + D.f[dP0M] = &DDStart[dP0M * size_Mat]; + D.f[dM0P] = &DDStart[dM0P * size_Mat]; + D.f[d0PP] = &DDStart[d0PP * size_Mat]; + D.f[d0MM] = &DDStart[d0MM * size_Mat]; + D.f[d0PM] = &DDStart[d0PM * size_Mat]; + D.f[d0MP] = &DDStart[d0MP * size_Mat]; + D.f[d000] = &DDStart[d000 * size_Mat]; + D.f[dPPP] = &DDStart[dPPP * size_Mat]; + D.f[dMMP] = &DDStart[dMMP * size_Mat]; + D.f[dPMP] = &DDStart[dPMP * size_Mat]; + D.f[dMPP] = &DDStart[dMPP * size_Mat]; + D.f[dPPM] = &DDStart[dPPM * size_Mat]; + D.f[dMMM] = &DDStart[dMMM * size_Mat]; + D.f[dPMM] = &DDStart[dPMM * size_Mat]; + D.f[dMPM] = &DDStart[dMPM * size_Mat]; + } + else + { + D.f[dM00] = &DDStart[dP00 * size_Mat]; + D.f[dP00] = &DDStart[dM00 * size_Mat]; + D.f[d0M0] = &DDStart[d0P0 * size_Mat]; + D.f[d0P0] = &DDStart[d0M0 * size_Mat]; + D.f[d00M] = &DDStart[d00P * size_Mat]; + D.f[d00P] = &DDStart[d00M * size_Mat]; + D.f[dMM0] = &DDStart[dPP0 * size_Mat]; + D.f[dPP0] = &DDStart[dMM0 * size_Mat]; + D.f[dMP0] = &DDStart[dPM0 * size_Mat]; + D.f[dPM0] = &DDStart[dMP0 * size_Mat]; + D.f[dM0M] = &DDStart[dP0P * size_Mat]; + D.f[dP0P] = &DDStart[dM0M * size_Mat]; + D.f[dM0P] = &DDStart[dP0M * size_Mat]; + D.f[dP0M] = &DDStart[dM0P * size_Mat]; + D.f[d0MM] = &DDStart[d0PP * size_Mat]; + D.f[d0PP] = &DDStart[d0MM * size_Mat]; + D.f[d0MP] = &DDStart[d0PM * size_Mat]; + D.f[d0PM] = &DDStart[d0MP * size_Mat]; + D.f[d000] = &DDStart[d000 * size_Mat]; + D.f[dMMM] = &DDStart[dPPP * size_Mat]; + D.f[dPPM] = &DDStart[dMMP * size_Mat]; + D.f[dMPM] = &DDStart[dPMP * size_Mat]; + D.f[dPMM] = &DDStart[dMPP * size_Mat]; + D.f[dMMP] = &DDStart[dPPM * size_Mat]; + D.f[dPPP] = &DDStart[dMMM * size_Mat]; + D.f[dMPP] = &DDStart[dPMM * size_Mat]; + D.f[dPMP] = &DDStart[dMPM * size_Mat]; + } + + //////////////////////////////////////////////////////////////////////////////// + //index + //unsigned int kzero= k; + //unsigned int ke = k; + unsigned int kw = neighborX[k]; + //unsigned int kn = k; + unsigned int ks = neighborY[k]; + //unsigned int kt = k; + unsigned int kb = neighborZ[k]; + unsigned int ksw = neighborY[kw]; + //unsigned int kne = k; + //unsigned int kse = ks; + //unsigned int knw = kw; + unsigned int kbw = neighborZ[kw]; + //unsigned int kte = k; + //unsigned int kbe = kb; + //unsigned int ktw = kw; + unsigned int kbs = neighborZ[ks]; + //unsigned int ktn = k; + //unsigned int kbn = kb; + //unsigned int kts = ks; + //unsigned int ktse = ks; + //unsigned int kbnw = kbw; + //unsigned int ktnw = kw; + //unsigned int kbse = kbs; + //unsigned int ktsw = ksw; + //unsigned int kbne = kb; + //unsigned int ktne = k; + unsigned int kbsw = neighborZ[ksw]; + + //unsigned int kzero= k; + //unsigned int ke = k; + //unsigned int kw = neighborX[k]; + //unsigned int kn = k; + //unsigned int ks = neighborY[k]; + //unsigned int kt = k; + //unsigned int kb = neighborZ[k]; + //unsigned int ksw = neighborY[kw]; + //unsigned int kne = k; + //unsigned int kse = ks; + //unsigned int knw = kw; + //unsigned int kbw = neighborZ[kw]; + //unsigned int kte = k; + //unsigned int kbe = kb; + //unsigned int ktw = kw; + //unsigned int kbs = neighborZ[ks]; + //unsigned int ktn = k; + //unsigned int kbn = kb; + //unsigned int kts = ks; + //unsigned int ktse = ks; + //unsigned int kbnw = kbw; + //unsigned int ktnw = kw; + //unsigned int kbse = kbs; + //unsigned int ktsw = ksw; + //unsigned int kbne = kb; + //unsigned int ktne = k; + //unsigned int kbsw = neighborZ[ksw]; + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + real mfcbb = (D.f[dP00])[k];//[ke ];// + c2over27 ;(D.f[dP00])[k ];//ke + real mfabb = (D.f[dM00])[kw];//[kw ];// + c2over27 ;(D.f[dM00])[kw ]; + real mfbcb = (D.f[d0P0])[k];//[kn ];// + c2over27 ;(D.f[d0P0])[k ];//kn + real mfbab = (D.f[d0M0])[ks];//[ks ];// + c2over27 ;(D.f[d0M0])[ks ]; + real mfbbc = (D.f[d00P])[k];//[kt ];// + c2over27 ;(D.f[d00P])[k ];//kt + real mfbba = (D.f[d00M])[kb];//[kb ];// + c2over27 ;(D.f[d00M])[kb ]; + real mfccb = (D.f[dPP0])[k];//[kne ];// + c1over54 ;(D.f[dPP0])[k ];//kne + real mfaab = (D.f[dMM0])[ksw];//[ksw ];// + c1over54 ;(D.f[dMM0])[ksw]; + real mfcab = (D.f[dPM0])[ks];//[kse ];// + c1over54 ;(D.f[dPM0])[ks ];//kse + real mfacb = (D.f[dMP0])[kw];//[knw ];// + c1over54 ;(D.f[dMP0])[kw ];//knw + real mfcbc = (D.f[dP0P])[k];//[kte ];// + c1over54 ;(D.f[dP0P])[k ];//kte + real mfaba = (D.f[dM0M])[kbw];//[kbw ];// + c1over54 ;(D.f[dM0M])[kbw]; + real mfcba = (D.f[dP0M])[kb];//[kbe ];// + c1over54 ;(D.f[dP0M])[kb ];//kbe + real mfabc = (D.f[dM0P])[kw];//[ktw ];// + c1over54 ;(D.f[dM0P])[kw ];//ktw + real mfbcc = (D.f[d0PP])[k];//[ktn ];// + c1over54 ;(D.f[d0PP])[k ];//ktn + real mfbaa = (D.f[d0MM])[kbs];//[kbs ];// + c1over54 ;(D.f[d0MM])[kbs]; + real mfbca = (D.f[d0PM])[kb];//[kbn ];// + c1over54 ;(D.f[d0PM])[kb ];//kbn + real mfbac = (D.f[d0MP])[ks];//[kts ];// + c1over54 ;(D.f[d0MP])[ks ];//kts + real mfbbb = (D.f[d000])[k];//[kzero];// + c8over27 ;(D.f[d000])[k ];//kzero + real mfccc = (D.f[dPPP])[k];//[ktne ];// + c1over216;(D.f[dPPP])[k ];//ktne + real mfaac = (D.f[dMMP])[ksw];//[ktsw ];// + c1over216;(D.f[dMMP])[ksw];//ktsw + real mfcac = (D.f[dPMP])[ks];//[ktse ];// + c1over216;(D.f[dPMP])[ks ];//ktse + real mfacc = (D.f[dMPP])[kw];//[ktnw ];// + c1over216;(D.f[dMPP])[kw ];//ktnw + real mfcca = (D.f[dPPM])[kb];//[kbne ];// + c1over216;(D.f[dPPM])[kb ];//kbne + real mfaaa = (D.f[dMMM])[kbsw];//[kbsw ];// + c1over216;(D.f[dMMM])[kbsw]; + real mfcaa = (D.f[dPMM])[kbs];//[kbse ];// + c1over216;(D.f[dPMM])[kbs];//kbse + real mfaca = (D.f[dMPM])[kbw];//[kbnw ];// + c1over216;(D.f[dMPM])[kbw];//kbnw + //////////////////////////////////////////////////////////////////////////////////// + real drho = ((((mfccc + mfaaa) + (mfaca + mfcac)) + ((mfacc + mfcaa) + (mfaac + mfcca))) + + (((mfbac + mfbca) + (mfbaa + mfbcc)) + ((mfabc + mfcba) + (mfaba + mfcbc)) + ((mfacb + mfcab) + (mfaab + mfccb))) + + ((mfabb + mfcbb) + (mfbab + mfbcb) + (mfbba + mfbbc))) + mfbbb; + + real rho = c1o1 + drho; + //////////////////////////////////////////////////////////////////////////////////// + //slow + //real oMdrho = one - ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + + // (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + + // ((mfabb+mfcbb) + (mfbab+mfbcb) + (mfbba+mfbbc)));//fehlt mfbbb + real vvx = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfcaa - mfacc) + (mfcca - mfaac))) + + (((mfcba - mfabc) + (mfcbc - mfaba)) + ((mfcab - mfacb) + (mfccb - mfaab))) + + (mfcbb - mfabb)) / rho; + real vvy = ((((mfccc - mfaaa) + (mfaca - mfcac)) + ((mfacc - mfcaa) + (mfcca - mfaac))) + + (((mfbca - mfbac) + (mfbcc - mfbaa)) + ((mfacb - mfcab) + (mfccb - mfaab))) + + (mfbcb - mfbab)) / rho; + real vvz = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfacc - mfcaa) + (mfaac - mfcca))) + + (((mfbac - mfbca) + (mfbcc - mfbaa)) + ((mfabc - mfcba) + (mfcbc - mfaba))) + + (mfbbc - mfbba)) / rho; + //////////////////////////////////////////////////////////////////////////////////// + //the force be with you + real fx = forces[0] / (pow((double)c2o1, (double)level)); //zero;//0.0032653/(pow(two,level)); //0.000000005;//(two/1600000.0) / 120.0; // + real fy = forces[1] / (pow((double)c2o1, (double)level)); //zero; + real fz = forces[2] / (pow((double)c2o1, (double)level)); //zero; + vvx += fx*c1o2; + vvy += fy*c1o2; + vvz += fz*c1o2; + //////////////////////////////////////////////////////////////////////////////////// + //real omega = omega_in; + //////////////////////////////////////////////////////////////////////////////////// + //fast + real oMdrho = c1o1; // comp special + //real oMdrho = one - (mfccc+mfaaa + mfaca+mfcac + mfacc+mfcaa + mfaac+mfcca + + // mfbac+mfbca + mfbaa+mfbcc + mfabc+mfcba + mfaba+mfcbc + mfacb+mfcab + mfaab+mfccb + + // mfabb+mfcbb + mfbab+mfbcb + mfbba+mfbbc + mfbbb);//fehlt mfbbb nicht mehr + //real vvx =mfccc-mfaaa + mfcac-mfaca + mfcaa-mfacc + mfcca-mfaac + + // mfcba-mfabc + mfcbc-mfaba + mfcab-mfacb + mfccb-mfaab + + // mfcbb-mfabb; + //real vvy =mfccc-mfaaa + mfaca-mfcac + mfacc-mfcaa + mfcca-mfaac + + // mfbca-mfbac + mfbcc-mfbaa + mfacb-mfcab + mfccb-mfaab + + // mfbcb-mfbab; + //real vvz =mfccc-mfaaa + mfcac-mfaca + mfacc-mfcaa + mfaac-mfcca + + // mfbac-mfbca + mfbcc-mfbaa + mfabc-mfcba + mfcbc-mfaba + + // mfbbc-mfbba; + //////////////////////////////////////////////////////////////////////////////////// + // oMdrho assembler style -------> faaaaaastaaaa + // or much sloooowaaaa ... it dep�ndssssss on sadaku + real m0, m1, m2; + //real oMdrho; + //{ + // oMdrho=mfccc+mfaaa; + // m0=mfaca+mfcac; + // m1=mfacc+mfcaa; + // m2=mfaac+mfcca; + // oMdrho+=m0; + // m1+=m2; + // oMdrho+=m1; + // m0=mfbac+mfbca; + // m1=mfbaa+mfbcc; + // m0+=m1; + // m1=mfabc+mfcba; + // m2=mfaba+mfcbc; + // m1+=m2; + // m0+=m1; + // m1=mfacb+mfcab; + // m2=mfaab+mfccb; + // m1+=m2; + // m0+=m1; + // oMdrho+=m0; + // m0=mfabb+mfcbb; + // m1=mfbab+mfbcb; + // m2=mfbba+mfbbc; + // m0+=m1+m2; + // m0+=mfbbb; //hat gefehlt + // oMdrho = one - (oMdrho + m0); + //} + //real vvx; + real vx2; + //{ + // vvx = mfccc-mfaaa; + // m0 = mfcac-mfaca; + // m1 = mfcaa-mfacc; + // m2 = mfcca-mfaac; + // vvx+= m0; + // m1 += m2; + // vvx+= m1; + // vx2 = mfcba-mfabc; + // m0 = mfcbc-mfaba; + // m1 = mfcab-mfacb; + // m2 = mfccb-mfaab; + // vx2+= m0; + // m1 += m2; + // vx2+= m1; + // vvx+= vx2; + // vx2 = mfcbb-mfabb; + // vvx+= vx2; + //} + //real vvy; + real vy2; + //{ + // vvy = mfccc-mfaaa; + // m0 = mfaca-mfcac; + // m1 = mfacc-mfcaa; + // m2 = mfcca-mfaac; + // vvy+= m0; + // m1 += m2; + // vvy+= m1; + // vy2 = mfbca-mfbac; + // m0 = mfbcc-mfbaa; + // m1 = mfacb-mfcab; + // m2 = mfccb-mfaab; + // vy2+= m0; + // m1 += m2; + // vy2+= m1; + // vvy+= vy2; + // vy2 = mfbcb-mfbab; + // vvy+= vy2; + //} + //real vvz; + real vz2; + //{ + // vvz = mfccc-mfaaa; + // m0 = mfcac-mfaca; + // m1 = mfacc-mfcaa; + // m2 = mfaac-mfcca; + // vvz+= m0; + // m1 += m2; + // vvz+= m1; + // vz2 = mfbac-mfbca; + // m0 = mfbcc-mfbaa; + // m1 = mfabc-mfcba; + // m2 = mfcbc-mfaba; + // vz2+= m0; + // m1 += m2; + // vz2+= m1; + // vvz+= vz2; + // vz2 = mfbbc-mfbba; + // vvz+= vz2; + //} + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + ////////////////////////////////////////////////////////////////////////////////////// + //// test rundungsfehler.... + //mfcbb = (mfcbb - c2over27* (rho-one))/(rho); + //mfabb = (mfabb - c2over27* (rho-one))/(rho); + //mfbcb = (mfbcb - c2over27* (rho-one))/(rho); + //mfbab = (mfbab - c2over27* (rho-one))/(rho); + //mfbbc = (mfbbc - c2over27* (rho-one))/(rho); + //mfbba = (mfbba - c2over27* (rho-one))/(rho); + //mfccb = (mfccb - c1over54* (rho-one))/(rho); + //mfaab = (mfaab - c1over54* (rho-one))/(rho); + //mfcab = (mfcab - c1over54* (rho-one))/(rho); + //mfacb = (mfacb - c1over54* (rho-one))/(rho); + //mfcbc = (mfcbc - c1over54* (rho-one))/(rho); + //mfaba = (mfaba - c1over54* (rho-one))/(rho); + //mfcba = (mfcba - c1over54* (rho-one))/(rho); + //mfabc = (mfabc - c1over54* (rho-one))/(rho); + //mfbcc = (mfbcc - c1over54* (rho-one))/(rho); + //mfbaa = (mfbaa - c1over54* (rho-one))/(rho); + //mfbca = (mfbca - c1over54* (rho-one))/(rho); + //mfbac = (mfbac - c1over54* (rho-one))/(rho); + //mfbbb = (mfbbb - c8over27* (rho-one))/(rho); + //mfccc = (mfccc - c1over216*(rho-one))/(rho); + //mfaac = (mfaac - c1over216*(rho-one))/(rho); + //mfcac = (mfcac - c1over216*(rho-one))/(rho); + //mfacc = (mfacc - c1over216*(rho-one))/(rho); + //mfcca = (mfcca - c1over216*(rho-one))/(rho); + //mfaaa = (mfaaa - c1over216*(rho-one))/(rho); + //mfcaa = (mfcaa - c1over216*(rho-one))/(rho); + //mfaca = (mfaca - c1over216*(rho-one))/(rho); + //////////////////////////////////////////////////////////////////////////////////// + real wadjust; + real qudricLimitP = c1o100;// * 0.0001f; + real qudricLimitM = c1o100;// * 0.0001f; + real qudricLimitD = c1o100;// * 0.001f; + //real s9 = minusomega; + //test + //s9 = 0.; + //////////////////////////////////////////////////////////////////////////////////// + //Hin + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m2 = mfaaa + mfaac; + m1 = mfaac - mfaaa; + m0 = m2 + mfaab; + mfaaa = m0; + m0 += c1o36 * oMdrho; + mfaab = m1 - m0 * vvz; + mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfabc; + m1 = mfabc - mfaba; + m0 = m2 + mfabb; + mfaba = m0; + m0 += c1o9 * oMdrho; + mfabb = m1 - m0 * vvz; + mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfacc; + m1 = mfacc - mfaca; + m0 = m2 + mfacb; + mfaca = m0; + m0 += c1o36 * oMdrho; + mfacb = m1 - m0 * vvz; + mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbac; + m1 = mfbac - mfbaa; + m0 = m2 + mfbab; + mfbaa = m0; + m0 += c1o9 * oMdrho; + mfbab = m1 - m0 * vvz; + mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbba + mfbbc; + m1 = mfbbc - mfbba; + m0 = m2 + mfbbb; + mfbba = m0; + m0 += c4o9 * oMdrho; + mfbbb = m1 - m0 * vvz; + mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbca + mfbcc; + m1 = mfbcc - mfbca; + m0 = m2 + mfbcb; + mfbca = m0; + m0 += c1o9 * oMdrho; + mfbcb = m1 - m0 * vvz; + mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcac; + m1 = mfcac - mfcaa; + m0 = m2 + mfcab; + mfcaa = m0; + m0 += c1o36 * oMdrho; + mfcab = m1 - m0 * vvz; + mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcba + mfcbc; + m1 = mfcbc - mfcba; + m0 = m2 + mfcbb; + mfcba = m0; + m0 += c1o9 * oMdrho; + mfcbb = m1 - m0 * vvz; + mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcca + mfccc; + m1 = mfccc - mfcca; + m0 = m2 + mfccb; + mfcca = m0; + m0 += c1o36 * oMdrho; + mfccb = m1 - m0 * vvz; + mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m2 = mfaaa + mfaca; + m1 = mfaca - mfaaa; + m0 = m2 + mfaba; + mfaaa = m0; + m0 += c1o6 * oMdrho; + mfaba = m1 - m0 * vvy; + mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfacb; + m1 = mfacb - mfaab; + m0 = m2 + mfabb; + mfaab = m0; + mfabb = m1 - m0 * vvy; + mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfacc; + m1 = mfacc - mfaac; + m0 = m2 + mfabc; + mfaac = m0; + m0 += c1o18 * oMdrho; + mfabc = m1 - m0 * vvy; + mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbca; + m1 = mfbca - mfbaa; + m0 = m2 + mfbba; + mfbaa = m0; + m0 += c2o3 * oMdrho; + mfbba = m1 - m0 * vvy; + mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbab + mfbcb; + m1 = mfbcb - mfbab; + m0 = m2 + mfbbb; + mfbab = m0; + mfbbb = m1 - m0 * vvy; + mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbac + mfbcc; + m1 = mfbcc - mfbac; + m0 = m2 + mfbbc; + mfbac = m0; + m0 += c2o9 * oMdrho; + mfbbc = m1 - m0 * vvy; + mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcca; + m1 = mfcca - mfcaa; + m0 = m2 + mfcba; + mfcaa = m0; + m0 += c1o6 * oMdrho; + mfcba = m1 - m0 * vvy; + mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcab + mfccb; + m1 = mfccb - mfcab; + m0 = m2 + mfcbb; + mfcab = m0; + mfcbb = m1 - m0 * vvy; + mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcac + mfccc; + m1 = mfccc - mfcac; + m0 = m2 + mfcbc; + mfcac = m0; + m0 += c1o18 * oMdrho; + mfcbc = m1 - m0 * vvy; + mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m2 = mfaaa + mfcaa; + m1 = mfcaa - mfaaa; + m0 = m2 + mfbaa; + mfaaa = m0; + m0 += c1o1* oMdrho; + mfbaa = m1 - m0 * vvx; + mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfcba; + m1 = mfcba - mfaba; + m0 = m2 + mfbba; + mfaba = m0; + mfbba = m1 - m0 * vvx; + mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfcca; + m1 = mfcca - mfaca; + m0 = m2 + mfbca; + mfaca = m0; + m0 += c1o3 * oMdrho; + mfbca = m1 - m0 * vvx; + mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfcab; + m1 = mfcab - mfaab; + m0 = m2 + mfbab; + mfaab = m0; + mfbab = m1 - m0 * vvx; + mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabb + mfcbb; + m1 = mfcbb - mfabb; + m0 = m2 + mfbbb; + mfabb = m0; + mfbbb = m1 - m0 * vvx; + mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacb + mfccb; + m1 = mfccb - mfacb; + m0 = m2 + mfbcb; + mfacb = m0; + mfbcb = m1 - m0 * vvx; + mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfcac; + m1 = mfcac - mfaac; + m0 = m2 + mfbac; + mfaac = m0; + m0 += c1o3 * oMdrho; + mfbac = m1 - m0 * vvx; + mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabc + mfcbc; + m1 = mfcbc - mfabc; + m0 = m2 + mfbbc; + mfabc = m0; + mfbbc = m1 - m0 * vvx; + mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacc + mfccc; + m1 = mfccc - mfacc; + m0 = m2 + mfbcc; + mfacc = m0; + m0 += c1o9 * oMdrho; + mfbcc = m1 - m0 * vvx; + mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + + + //////////////////////////////////////////////////////////////////////////////////// + // Cumulants + //////////////////////////////////////////////////////////////////////////////////// + real OxxPyyPzz = c1o1; //omega; // one; //set the bulk viscosity one is high / two is very low and zero is (too) high + + //////////////////////////////////////////////////////////// + //3. + ////////////////////////////// + real OxyyPxzz = c1o1;//three * (two - omega) / (three - omega);//one;//(1000.*(-2. + omega))/(-1000. + 439.*omega);//(eight * (omega - two)) / (omega - eight);//two-omega;//eight*(two-omega)/(eight -omega);//one;//omega;//two-omega;// + real OxyyMxzz = c1o1;//six * (two - omega) / (six - omega);//one;//two-omega;//(1000.*(-2. + omega))/(-1000. + 439.*omega);//(eight * (omega - two)) / (omega - eight);//omega;//one;//eight*(two-omega)/(eight -omega);//one;//two-omega;//one;// + real Oxyz = c1o1;//twelve * (two - omega) / (twelve + omega);//one;//two-omega;//(1000.*(-2. + omega))/(-1000. + 439.*omega);//(eight * (omega - two)) / (omega - eight);//omega;//one;//eight*(two-omega)/(eight -omega);//one;//two-omega;//one;// + ////////////////////////////// + //real OxyyPxzz = two-omega;// + //real OxyyMxzz = two-omega;// + ////////////////////////////// + //real OxyyPxzz = (eight * (omega - two)) / (omega - eight);//Ginzburg + //real OxyyMxzz = (eight * (omega - two)) / (omega - eight);//Ginzburg + ////////////////////////////// + //real OxyyPxzz = omega;//BGK + //real OxyyMxzz = omega;//BGK + ////////////////////////////// + //real OxyyPxzz = (one + omega) / two;//1P5 + //real OxyyMxzz = (one + omega) / two;//1P5 + ////////////////////////////// + //real OxyyPxzz = (three - omega) / two;//0P5 + //real OxyyMxzz = (three - omega) / two;//0P5 + ////////////////////////////// + //real OxyyPxzz = (one + (eight * (omega - two)) / (omega - eight)) / two;//one + Ginzburg / two ... Car + //real OxyyMxzz = (one + (eight * (omega - two)) / (omega - eight)) / two;//one + Ginzburg / two ... Car + //////////////////////////////////////////////////////////// + //4. + ////////////////////////////// + real O4 = c1o1; + ////////////////////////////// + //real O4 = omega;//TRT + //////////////////////////////////////////////////////////// + //5. + ////////////////////////////// + real O5 = c1o1; + //////////////////////////////////////////////////////////// + //6. + ////////////////////////////// + real O6 = c1o1; + //////////////////////////////////////////////////////////// + + + //central moments to cumulants + //4. + //real CUMcbb = mfcbb - ((mfcaa + c1o3 * oMdrho) * mfabb + two * mfbba * mfbab) / rho; //bis 15.05.2015 verwendet + //real CUMbcb = mfbcb - ((mfaca + c1o3 * oMdrho) * mfbab + two * mfbba * mfabb) / rho; //bis 15.05.2015 verwendet + //real CUMbbc = mfbbc - ((mfaac + c1o3 * oMdrho) * mfbba + two * mfbab * mfabb) / rho; //bis 15.05.2015 verwendet + real CUMcbb = mfcbb - ((mfcaa + c1o3) * mfabb + c2o1 * mfbba * mfbab) / rho; //ab 15.05.2015 verwendet + real CUMbcb = mfbcb - ((mfaca + c1o3) * mfbab + c2o1 * mfbba * mfabb) / rho; //ab 15.05.2015 verwendet + real CUMbbc = mfbbc - ((mfaac + c1o3) * mfbba + c2o1 * mfbab * mfabb) / rho; //ab 15.05.2015 verwendet + + real CUMcca = mfcca - (((mfcaa * mfaca + c2o1 * mfbba * mfbba) + c1o3 * (mfcaa + mfaca)) / rho - c1o9*(drho / rho)); + real CUMcac = mfcac - (((mfcaa * mfaac + c2o1 * mfbab * mfbab) + c1o3 * (mfcaa + mfaac)) / rho - c1o9*(drho / rho)); + real CUMacc = mfacc - (((mfaac * mfaca + c2o1 * mfabb * mfabb) + c1o3 * (mfaac + mfaca)) / rho - c1o9*(drho / rho)); + + //5. + real CUMbcc = mfbcc - ((mfaac * mfbca + mfaca * mfbac + c4o1 * mfabb * mfbbb + c2o1 * (mfbab * mfacb + mfbba * mfabc)) + c1o3 * (mfbca + mfbac)) / rho; + real CUMcbc = mfcbc - ((mfaac * mfcba + mfcaa * mfabc + c4o1 * mfbab * mfbbb + c2o1 * (mfabb * mfcab + mfbba * mfbac)) + c1o3 * (mfcba + mfabc)) / rho; + real CUMccb = mfccb - ((mfcaa * mfacb + mfaca * mfcab + c4o1 * mfbba * mfbbb + c2o1 * (mfbab * mfbca + mfabb * mfcba)) + c1o3 * (mfacb + mfcab)) / rho; + + //6. + + real CUMccc = mfccc + ((-c4o1 * mfbbb * mfbbb + - (mfcaa * mfacc + mfaca * mfcac + mfaac * mfcca) + - c4o1 * (mfabb * mfcbb + mfbab * mfbcb + mfbba * mfbbc) + - c2o1 * (mfbca * mfbac + mfcba * mfabc + mfcab * mfacb)) / rho + + (c4o1 * (mfbab * mfbab * mfaca + mfabb * mfabb * mfcaa + mfbba * mfbba * mfaac) + + c2o1 * (mfcaa * mfaca * mfaac) + + c16o1 * mfbba * mfbab * mfabb) / (rho * rho) + - c1o3 * (mfacc + mfcac + mfcca) / rho + - c1o9 * (mfcaa + mfaca + mfaac) / rho + + (c2o1 * (mfbab * mfbab + mfabb * mfabb + mfbba * mfbba) + + (mfaac * mfaca + mfaac * mfcaa + mfaca * mfcaa) + c1o3 *(mfaac + mfaca + mfcaa)) / (rho * rho) * c2o3 + + c1o27*((drho * drho - drho) / (rho*rho))); + //+ c1o27*(one -three/rho +two/(rho*rho))); + + + + + ////Cum 4. + //real CUMcbb = mfcbb - ((mfcaa + c1o3 * oMdrho) * mfabb + two * mfbba * mfbab)/rho; // + //real CUMbcb = mfbcb - ((mfaca + c1o3 * oMdrho) * mfbab + two * mfbba * mfabb)/rho; // + //real CUMbbc = mfbbc - ((mfaac + c1o3 * oMdrho) * mfbba + two * mfbab * mfabb)/rho; // + + //real CUMcca = mfcca - ((mfcaa * mfaca + two * mfbba * mfbba) /rho + c1o3 * (mfcaa + mfaca) * oMdrho + c1o9*(oMdrho-one)*oMdrho); + //real CUMcac = mfcac - ((mfcaa * mfaac + two * mfbab * mfbab) /rho + c1o3 * (mfcaa + mfaac) * oMdrho + c1o9*(oMdrho-one)*oMdrho); + //real CUMacc = mfacc - ((mfaac * mfaca + two * mfabb * mfabb) /rho + c1o3 * (mfaac + mfaca) * oMdrho + c1o9*(oMdrho-one)*oMdrho); + + ////Cum 5. + //real CUMbcc = mfbcc - (mfaac * mfbca + mfaca * mfbac + four * mfabb * mfbbb + two * (mfbab * mfacb + mfbba * mfabc)) / rho - c1o3 * (mfbca + mfbac) * oMdrho; + //real CUMcbc = mfcbc - (mfaac * mfcba + mfcaa * mfabc + four * mfbab * mfbbb + two * (mfabb * mfcab + mfbba * mfbac)) / rho - c1o3 * (mfcba + mfabc) * oMdrho; + //real CUMccb = mfccb - (mfcaa * mfacb + mfaca * mfcab + four * mfbba * mfbbb + two * (mfbab * mfbca + mfabb * mfcba)) / rho - c1o3 * (mfacb + mfcab) * oMdrho; + + ////Cum 6. + //real CUMccc = mfccc +((-four * mfbbb * mfbbb + // - (mfcaa * mfacc + mfaca * mfcac + mfaac * mfcca) + // - four * (mfabb * mfcbb + mfbab * mfbcb + mfbba * mfbbc) + // - two * (mfbca * mfbac + mfcba * mfabc + mfcab * mfacb)) / rho + // +( four * (mfbab * mfbab * mfaca + mfabb * mfabb * mfcaa + mfbba * mfbba * mfaac) + // + two * (mfcaa * mfaca * mfaac) + // + sixteen * mfbba * mfbab * mfabb) / (rho * rho) + // - c1o3 * (mfacc + mfcac + mfcca) * oMdrho -c1o9*oMdrho*oMdrho + // - c1o9 * (mfcaa + mfaca + mfaac) * oMdrho*(one-two* oMdrho)- c1o27* oMdrho * oMdrho*(-two* oMdrho) + // +( two * (mfbab * mfbab + mfabb * mfabb + mfbba * mfbba) + // + (mfaac * mfaca + mfaac * mfcaa + mfaca * mfcaa)) / rho * c2o3*oMdrho) +c1o27*oMdrho; + + + + + + //2. + // linear combinations + real mxxPyyPzz = mfcaa + mfaca + mfaac; + real mxxMyy = mfcaa - mfaca; + real mxxMzz = mfcaa - mfaac; + + ////////////////////////////////////////////////////////////////////////// + // real magicBulk=(CUMacc+CUMcac+CUMcca)*(one/OxxPyyPzz-c1o2)*c3o2*8.; + + ////////////////////////////////////////////////////////////////////////// + //limiter-Scheise Teil 1 + //real oxxyy,oxxzz,oxy,oxz,oyz; + //real smag=0.001; + //oxxyy = omega+(one-omega)*abs(mxxMyy)/(abs(mxxMyy)+smag); + //oxxzz = omega+(one-omega)*abs(mxxMzz)/(abs(mxxMzz)+smag); + //oxy = omega+(one-omega)*abs(mfbba)/(abs(mfbba)+smag); + //oxz = omega+(one-omega)*abs(mfbab)/(abs(mfbab)+smag); + //oyz = omega+(one-omega)*abs(mfabb)/(abs(mfabb)+smag); + + //////////////////////////////////////////////////////////////////////////// + ////Teil 1b + //real constante = 1000.0; + //real nuEddi = constante * abs(mxxPyyPzz); + //real omegaLimit = one / (one / omega + three * nuEddi); + + //{ + // real dxux = c1o2 * (-omegaLimit) *(mxxMyy + mxxMzz) + OxxPyyPzz * (mfaaa - mxxPyyPzz); + // real dyuy = dxux + omegaLimit * c3o2 * mxxMyy; + // real dzuz = dxux + omegaLimit * c3o2 * mxxMzz; + + ////relax + //mxxPyyPzz += OxxPyyPzz*(mfaaa - mxxPyyPzz)- three * (one - c1o2 * OxxPyyPzz) * (vx2 * dxux + vy2 * dyuy + vz2 * dzuz); + //mxxMyy += omegaLimit * (-mxxMyy) - three * (one + c1o2 * (-omegaLimit)) * (vx2 * dxux + vy2 * dyuy); + //mxxMzz += omegaLimit * (-mxxMzz) - three * (one + c1o2 * (-omegaLimit)) * (vx2 * dxux + vz2 * dzuz); + + //} + //mfabb += omegaLimit * (-mfabb); + //mfbab += omegaLimit * (-mfbab); + //mfbba += omegaLimit * (-mfbba); + //////////////////////////////////////////////////////////////////////////// + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //incl. correction (hat noch nicht so gut funktioniert...Optimierungsbedarf??) + { + real dxux = c1o2 * (-omega) *(mxxMyy + mxxMzz) + c1o2 * OxxPyyPzz * (mfaaa - mxxPyyPzz); + real dyuy = dxux + omega * c3o2 * mxxMyy; + real dzuz = dxux + omega * c3o2 * mxxMzz; + + //relax + mxxPyyPzz += OxxPyyPzz*(mfaaa - mxxPyyPzz) - c3o1 * (c1o1 - c1o2 * OxxPyyPzz) * (vx2 * dxux + vy2 * dyuy + vz2 * dzuz);//-magicBulk*OxxPyyPzz; + mxxMyy += omega * (-mxxMyy) - c3o1 * (c1o1 + c1o2 * (-omega)) * (vx2 * dxux - vy2 * dyuy); + mxxMzz += omega * (-mxxMzz) - c3o1 * (c1o1 + c1o2 * (-omega)) * (vx2 * dxux - vz2 * dzuz); + + ////////////////////////////////////////////////////////////////////////// + //limiter-Scheise Teil 2 + //mxxMyy += oxxyy * (-mxxMyy) - three * (one + c1o2 * (-omega)) * (vx2 * dxux + vy2 * dyuy); + //mxxMzz += oxxzz * (-mxxMzz) - three * (one + c1o2 * (-omega)) * (vx2 * dxux + vz2 * dzuz); + ////////////////////////////////////////////////////////////////////////// + + } + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + ////no correction + //mxxPyyPzz += OxxPyyPzz*(mfaaa-mxxPyyPzz);//-magicBulk*OxxPyyPzz; + //mxxMyy += -(-omega) * (-mxxMyy); + //mxxMzz += -(-omega) * (-mxxMzz); + ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + mfabb += omega * (-mfabb); + mfbab += omega * (-mfbab); + mfbba += omega * (-mfbba); + + ////////////////////////////////////////////////////////////////////////// + //limiter-Scheise Teil 3 + //mfabb += oyz * (-mfabb); + //mfbab += oxz * (-mfbab); + //mfbba += oxy * (-mfbba); + ////////////////////////////////////////////////////////////////////////// + + // linear combinations back + mfcaa = c1o3 * (mxxMyy + mxxMzz + mxxPyyPzz); + mfaca = c1o3 * (-c2o1* mxxMyy + mxxMzz + mxxPyyPzz); + mfaac = c1o3 * (mxxMyy - c2o1* mxxMzz + mxxPyyPzz); + + //3. + // linear combinations + + real mxxyPyzz = mfcba + mfabc; + real mxxyMyzz = mfcba - mfabc; + + real mxxzPyyz = mfcab + mfacb; + real mxxzMyyz = mfcab - mfacb; + + real mxyyPxzz = mfbca + mfbac; + real mxyyMxzz = mfbca - mfbac; + + //relax + ////////////////////////////////////////////////////////////////////////// + //das ist der limiter + wadjust = Oxyz + (c1o1 - Oxyz)*abs(mfbbb) / (abs(mfbbb) + qudricLimitD); + mfbbb += wadjust * (-mfbbb); + wadjust = OxyyPxzz + (c1o1 - OxyyPxzz)*abs(mxxyPyzz) / (abs(mxxyPyzz) + qudricLimitP); + mxxyPyzz += wadjust * (-mxxyPyzz); + wadjust = OxyyMxzz + (c1o1 - OxyyMxzz)*abs(mxxyMyzz) / (abs(mxxyMyzz) + qudricLimitM); + mxxyMyzz += wadjust * (-mxxyMyzz); + wadjust = OxyyPxzz + (c1o1 - OxyyPxzz)*abs(mxxzPyyz) / (abs(mxxzPyyz) + qudricLimitP); + mxxzPyyz += wadjust * (-mxxzPyyz); + wadjust = OxyyMxzz + (c1o1 - OxyyMxzz)*abs(mxxzMyyz) / (abs(mxxzMyyz) + qudricLimitM); + mxxzMyyz += wadjust * (-mxxzMyyz); + wadjust = OxyyPxzz + (c1o1 - OxyyPxzz)*abs(mxyyPxzz) / (abs(mxyyPxzz) + qudricLimitP); + mxyyPxzz += wadjust * (-mxyyPxzz); + wadjust = OxyyMxzz + (c1o1 - OxyyMxzz)*abs(mxyyMxzz) / (abs(mxyyMxzz) + qudricLimitM); + mxyyMxzz += wadjust * (-mxyyMxzz); + ////////////////////////////////////////////////////////////////////////// + //ohne limiter + //mfbbb += OxyyMxzz * (-mfbbb); + //mxxyPyzz += OxyyPxzz * (-mxxyPyzz); + //mxxyMyzz += OxyyMxzz * (-mxxyMyzz); + //mxxzPyyz += OxyyPxzz * (-mxxzPyyz); + //mxxzMyyz += OxyyMxzz * (-mxxzMyyz); + //mxyyPxzz += OxyyPxzz * (-mxyyPxzz); + //mxyyMxzz += OxyyMxzz * (-mxyyMxzz); + ////////////////////////////////////////////////////////////////////////// + + //// linear combinations back + ////generic + //mfcba = zero; + //mfabc = zero; + //mfcab = zero; + //mfacb = zero; + //mfbca = zero; + //mfbac = zero; + + mfcba = (mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = (mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = (mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4. + //CUMacc = zero; + //CUMcac = zero; + //CUMcca = zero; + // + //CUMbbc = zero; + //CUMbcb = zero; + //CUMcbb = zero; + // + ////5. + //CUMbcc = zero; + //CUMcbc = zero; + //CUMccb = zero; + // + ////6. + //CUMccc = zero; + + //4. + ////////////////////////////////////////////////////////////////////////// + //mit limiter + // wadjust = O4+(one-O4)*abs(CUMacc)/(abs(CUMacc)+qudricLimit); + //CUMacc += wadjust * (-CUMacc); + // wadjust = O4+(one-O4)*abs(CUMcac)/(abs(CUMcac)+qudricLimit); + //CUMcac += wadjust * (-CUMcac); + // wadjust = O4+(one-O4)*abs(CUMcca)/(abs(CUMcca)+qudricLimit); + //CUMcca += wadjust * (-CUMcca); + + // wadjust = O4+(one-O4)*abs(CUMbbc)/(abs(CUMbbc)+qudricLimit); + //CUMbbc += wadjust * (-CUMbbc); + // wadjust = O4+(one-O4)*abs(CUMbcb)/(abs(CUMbcb)+qudricLimit); + //CUMbcb += wadjust * (-CUMbcb); + // wadjust = O4+(one-O4)*abs(CUMcbb)/(abs(CUMcbb)+qudricLimit); + //CUMcbb += wadjust * (-CUMcbb); + ////////////////////////////////////////////////////////////////////////// + //ohne limiter + CUMacc += O4 * (-CUMacc); + CUMcac += O4 * (-CUMcac); + CUMcca += O4 * (-CUMcca); + + CUMbbc += O4 * (-CUMbbc); + CUMbcb += O4 * (-CUMbcb); + CUMcbb += O4 * (-CUMcbb); + ////////////////////////////////////////////////////////////////////////// + + + //5. + CUMbcc += O5 * (-CUMbcc); + CUMcbc += O5 * (-CUMcbc); + CUMccb += O5 * (-CUMccb); + + //6. + CUMccc += O6 * (-CUMccc); + + + + //back cumulants to central moments + //4. + //mfcbb = CUMcbb + ((mfcaa + c1o3 * oMdrho) * mfabb + two * mfbba * mfbab) / rho; //bis 15.05.2015 verwendet + //mfbcb = CUMbcb + ((mfaca + c1o3 * oMdrho) * mfbab + two * mfbba * mfabb) / rho; //bis 15.05.2015 verwendet + //mfbbc = CUMbbc + ((mfaac + c1o3 * oMdrho) * mfbba + two * mfbab * mfabb) / rho; //bis 15.05.2015 verwendet + mfcbb = CUMcbb + ((mfcaa + c1o3) * mfabb + c2o1 * mfbba * mfbab) / rho; //ab 15.05.2015 verwendet + mfbcb = CUMbcb + ((mfaca + c1o3) * mfbab + c2o1 * mfbba * mfabb) / rho; //ab 15.05.2015 verwendet + mfbbc = CUMbbc + ((mfaac + c1o3) * mfbba + c2o1 * mfbab * mfabb) / rho; //ab 15.05.2015 verwendet + + mfcca = CUMcca + (((mfcaa * mfaca + c2o1 * mfbba * mfbba) + c1o3 * (mfcaa + mfaca)) / rho - c1o9*(drho / rho));//(one/rho-one)); + mfcac = CUMcac + (((mfcaa * mfaac + c2o1 * mfbab * mfbab) + c1o3 * (mfcaa + mfaac)) / rho - c1o9*(drho / rho));//(one/rho-one)); + mfacc = CUMacc + (((mfaac * mfaca + c2o1 * mfabb * mfabb) + c1o3 * (mfaac + mfaca)) / rho - c1o9*(drho / rho));//(one/rho-one)); + + //5. + mfbcc = CUMbcc + ((mfaac * mfbca + mfaca * mfbac + c4o1 * mfabb * mfbbb + c2o1 * (mfbab * mfacb + mfbba * mfabc)) + c1o3 * (mfbca + mfbac)) / rho; + mfcbc = CUMcbc + ((mfaac * mfcba + mfcaa * mfabc + c4o1 * mfbab * mfbbb + c2o1 * (mfabb * mfcab + mfbba * mfbac)) + c1o3 * (mfcba + mfabc)) / rho; + mfccb = CUMccb + ((mfcaa * mfacb + mfaca * mfcab + c4o1 * mfbba * mfbbb + c2o1 * (mfbab * mfbca + mfabb * mfcba)) + c1o3 * (mfacb + mfcab)) / rho; + + //6. + + mfccc = CUMccc - ((-c4o1 * mfbbb * mfbbb + - (mfcaa * mfacc + mfaca * mfcac + mfaac * mfcca) + - c4o1 * (mfabb * mfcbb + mfbab * mfbcb + mfbba * mfbbc) + - c2o1 * (mfbca * mfbac + mfcba * mfabc + mfcab * mfacb)) / rho + + (c4o1 * (mfbab * mfbab * mfaca + mfabb * mfabb * mfcaa + mfbba * mfbba * mfaac) + + c2o1 * (mfcaa * mfaca * mfaac) + + c16o1 * mfbba * mfbab * mfabb) / (rho * rho) + - c1o3 * (mfacc + mfcac + mfcca) / rho + - c1o9 * (mfcaa + mfaca + mfaac) / rho + + (c2o1 * (mfbab * mfbab + mfabb * mfabb + mfbba * mfbba) + + (mfaac * mfaca + mfaac * mfcaa + mfaca * mfcaa) + c1o3 *(mfaac + mfaca + mfcaa)) / (rho * rho) * c2o3 + + c1o27*((drho * drho - drho) / (rho*rho))); + //+ c1o27*(one -three/rho +two/(rho*rho))); + + + //mfccc = CUMccc - ((-four * mfbbb * mfbbb + // - (mfcaa * mfacc + mfaca * mfcac + mfaac * mfcca) + // - four * (mfabb * mfcbb + mfbab * mfbcb + mfbba * mfbbc) + // - two * (mfbca * mfbac + mfcba * mfabc + mfcab * mfacb)) / rho + // +( four * (mfbab * mfbab * mfaca + mfabb * mfabb * mfcaa + mfbba * mfbba * mfaac) + // + two * (mfcaa * mfaca * mfaac) + // + sixteen * mfbba * mfbab * mfabb) / (rho * rho) + // - c1o3 * (mfacc + mfcac + mfcca) * oMdrho -c1o9*oMdrho*oMdrho + // - c1o9 * (mfcaa + mfaca + mfaac) * oMdrho*(one-two* oMdrho)- c1o27* oMdrho * oMdrho*(-two* oMdrho) + // +( two * (mfbab * mfbab + mfabb * mfabb + mfbba * mfbba) + // + (mfaac * mfaca + mfaac * mfcaa + mfaca * mfcaa)) / rho * c2o3*oMdrho) -c1o27*oMdrho; + + + + + + //mfccc = CUMccc -(( -four * mfbbb * mfbbb + // - (mfcaa * mfacc + mfaca * mfcac + mfaac * mfcca) + // - four * (mfabb * mfcbb + mfbab * mfbcb + mfbba * mfbbc) + // - two * (mfbca * mfbac + mfcba * mfabc + mfcab * mfacb)) / rho + // +( four * (mfbab * mfbab * mfaca + mfabb * mfabb * mfcaa + mfbba * mfbba * mfaac) + // + two * (mfcaa * mfaca * mfaac) + // + sixteen * mfbba * mfbab * mfabb) / (rho * rho) + // + (c1o3 * (mfacc + mfcac + mfcca) )/rho + // + (c1o9 * (mfcaa + mfaca + mfaac) )/rho + // - (four*c1o3*(mfabb * mfabb + mfbab * mfbab + mfbba * mfbba) + two * ( c1o3 *(mfcaa * mfaca + mfcaa * mfaac + mfaca * mfaac) + c1o9* (mfcaa + mfaca + mfaac )))/(rho*rho) + // + c1o27*(three/rho - two/(rho * rho) - one); + // //- c1o9 * (mfcaa + mfaca + mfaac) * oMdrho*(one-two* oMdrho)- c1o27* oMdrho * oMdrho*(-two* oMdrho) //???? + // //+( two * (mfbab * mfbab + mfabb * mfabb + mfbba * mfbba) + // //+ (mfaac * mfaca + mfaac * mfcaa + mfaca * mfcaa)) / rho * c2o3*oMdrho) -c1o27*oMdrho; + + //Test Cascade + //4. + //mfacc = mfaaa * c1o9 * O4 + (one - O4) * mfacc; + //mfcac = mfaaa * c1o9 * O4 + (one - O4) * mfcac; + //mfcca = mfaaa * c1o9 * O4 + (one - O4) * mfcca; + // + //mfbbc += O4 * (-mfbbc); + //mfbcb += O4 * (-mfbcb); + //mfcbb += O4 * (-mfcbb); + + ////5. + //mfbcc += O5 * (-mfbcc); + //mfcbc += O5 * (-mfcbc); + //mfccb += O5 * (-mfccb); + + //6. + //mfccc = mfaaa * c1o27 * O6 + (one - O6) * mfccc; + + //////////////////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////////////////// + //the force be with you + mfbaa = -mfbaa; + mfaba = -mfaba; + mfaab = -mfaab; + //////////////////////////////////////////////////////////////////////////////////// + + + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1* oMdrho) * (vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1* mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1* oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1* oMdrho) * (vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * (vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1* mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * (vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * (vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1* mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * (vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * (vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1* mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * (vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * (vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1* mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * (vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * (vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1* mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * (vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * (vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1* mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * (vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * (vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1* mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * (vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * (vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1* mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * (vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * (vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1* mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * (vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * (vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1* mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * (vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * (vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1* mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * (vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * (vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1* mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * (vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * (vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1* mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * (vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * (vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1* mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * (vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * (vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1* mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * (vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * (vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1* mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * (vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * (vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1* mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * (vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * (vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1* mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * (vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * (vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1* mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * (vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * (vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1* mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * (vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * (vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1* mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * (vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * (vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1* mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * (vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * (vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1* mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * (vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * (vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1* mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * (vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * (vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1* mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * (vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * (vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1* mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * (vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////////////////// + //// test rundungsfehler.... + //mfcbb = (mfcbb * rho + c2over27* (rho-one)); + //mfabb = (mfabb * rho + c2over27* (rho-one)); + //mfbcb = (mfbcb * rho + c2over27* (rho-one)); + //mfbab = (mfbab * rho + c2over27* (rho-one)); + //mfbbc = (mfbbc * rho + c2over27* (rho-one)); + //mfbba = (mfbba * rho + c2over27* (rho-one)); + //mfccb = (mfccb * rho + c1over54* (rho-one)); + //mfaab = (mfaab * rho + c1over54* (rho-one)); + //mfcab = (mfcab * rho + c1over54* (rho-one)); + //mfacb = (mfacb * rho + c1over54* (rho-one)); + //mfcbc = (mfcbc * rho + c1over54* (rho-one)); + //mfaba = (mfaba * rho + c1over54* (rho-one)); + //mfcba = (mfcba * rho + c1over54* (rho-one)); + //mfabc = (mfabc * rho + c1over54* (rho-one)); + //mfbcc = (mfbcc * rho + c1over54* (rho-one)); + //mfbaa = (mfbaa * rho + c1over54* (rho-one)); + //mfbca = (mfbca * rho + c1over54* (rho-one)); + //mfbac = (mfbac * rho + c1over54* (rho-one)); + //mfbbb = (mfbbb * rho + c8over27* (rho-one)); + //mfccc = (mfccc * rho + c1over216*(rho-one)); + //mfaac = (mfaac * rho + c1over216*(rho-one)); + //mfcac = (mfcac * rho + c1over216*(rho-one)); + //mfacc = (mfacc * rho + c1over216*(rho-one)); + //mfcca = (mfcca * rho + c1over216*(rho-one)); + //mfaaa = (mfaaa * rho + c1over216*(rho-one)); + //mfcaa = (mfcaa * rho + c1over216*(rho-one)); + //mfaca = (mfaca * rho + c1over216*(rho-one)); + real drhoPost = + ((((mfccc + mfaaa) + (mfaca + mfcac)) + ((mfacc + mfcaa) + (mfaac + mfcca))) + + (((mfbac + mfbca) + (mfbaa + mfbcc)) + ((mfabc + mfcba) + (mfaba + mfcbc)) + ((mfacb + mfcab) + (mfaab + mfccb))) + + ((mfabb + mfcbb) + (mfbab + mfbcb) + (mfbba + mfbbc))) + mfbbb; + mfbbb += drho - drhoPost; + //////////////////////////////////////////////////////////////////////////////////// + (D.f[dP00])[k] = mfabb;//(D.f[ dP00 ])[ke ] = mfabb;// - c2over27 ; (D.f[ dP00 ])[k ] + (D.f[dM00])[kw] = mfcbb;//(D.f[ dM00 ])[kw ] = mfcbb;// - c2over27 ; (D.f[ dM00 ])[kw ] + (D.f[d0P0])[k] = mfbab;//(D.f[ d0P0 ])[kn ] = mfbab;// - c2over27 ; (D.f[ d0P0 ])[k ] + (D.f[d0M0])[ks] = mfbcb;//(D.f[ d0M0 ])[ks ] = mfbcb;// - c2over27 ; (D.f[ d0M0 ])[ks ] + (D.f[d00P])[k] = mfbba;//(D.f[ d00P ])[kt ] = mfbba;// - c2over27 ; (D.f[ d00P ])[k ] + (D.f[d00M])[kb] = mfbbc;//(D.f[ d00M ])[kb ] = mfbbc;// - c2over27 ; (D.f[ d00M ])[kb ] + (D.f[dPP0])[k] = mfaab;//(D.f[ dPP0 ])[kne ] = mfaab;// - c1over54 ; (D.f[ dPP0 ])[k ] + (D.f[dMM0])[ksw] = mfccb;//(D.f[ dMM0 ])[ksw ] = mfccb;// - c1over54 ; (D.f[ dMM0 ])[ksw ] + (D.f[dPM0])[ks] = mfacb;//(D.f[ dPM0 ])[kse ] = mfacb;// - c1over54 ; (D.f[ dPM0 ])[ks ] + (D.f[dMP0])[kw] = mfcab;//(D.f[ dMP0 ])[knw ] = mfcab;// - c1over54 ; (D.f[ dMP0 ])[kw ] + (D.f[dP0P])[k] = mfaba;//(D.f[ dP0P ])[kte ] = mfaba;// - c1over54 ; (D.f[ dP0P ])[k ] + (D.f[dM0M])[kbw] = mfcbc;//(D.f[ dM0M ])[kbw ] = mfcbc;// - c1over54 ; (D.f[ dM0M ])[kbw ] + (D.f[dP0M])[kb] = mfabc;//(D.f[ dP0M ])[kbe ] = mfabc;// - c1over54 ; (D.f[ dP0M ])[kb ] + (D.f[dM0P])[kw] = mfcba;//(D.f[ dM0P ])[ktw ] = mfcba;// - c1over54 ; (D.f[ dM0P ])[kw ] + (D.f[d0PP])[k] = mfbaa;//(D.f[ d0PP ])[ktn ] = mfbaa;// - c1over54 ; (D.f[ d0PP ])[k ] + (D.f[d0MM])[kbs] = mfbcc;//(D.f[ d0MM ])[kbs ] = mfbcc;// - c1over54 ; (D.f[ d0MM ])[kbs ] + (D.f[d0PM])[kb] = mfbac;//(D.f[ d0PM ])[kbn ] = mfbac;// - c1over54 ; (D.f[ d0PM ])[kb ] + (D.f[d0MP])[ks] = mfbca;//(D.f[ d0MP ])[kts ] = mfbca;// - c1over54 ; (D.f[ d0MP ])[ks ] + (D.f[d000])[k] = mfbbb;//(D.f[ d000])[kzero] = mfbbb;// - c8over27 ; (D.f[ d000])[k ] + (D.f[dPPP])[k] = mfaaa;//(D.f[ dPPP ])[ktne ] = mfaaa;// - c1over216; (D.f[ dPPP ])[k ] + (D.f[dPMP])[ks] = mfaca;//(D.f[ dPMP ])[ktse ] = mfaca;// - c1over216; (D.f[ dPMP ])[ks ] + (D.f[dPPM])[kb] = mfaac;//(D.f[ dPPM ])[kbne ] = mfaac;// - c1over216; (D.f[ dPPM ])[kb ] + (D.f[dPMM])[kbs] = mfacc;//(D.f[ dPMM ])[kbse ] = mfacc;// - c1over216; (D.f[ dPMM ])[kbs ] + (D.f[dMPP])[kw] = mfcaa;//(D.f[ dMPP ])[ktnw ] = mfcaa;// - c1over216; (D.f[ dMPP ])[kw ] + (D.f[dMMP])[ksw] = mfcca;//(D.f[ dMMP ])[ktsw ] = mfcca;// - c1over216; (D.f[ dMMP ])[ksw ] + (D.f[dMPM])[kbw] = mfcac;//(D.f[ dMPM ])[kbnw ] = mfcac;// - c1over216; (D.f[ dMPM ])[kbw ] + (D.f[dMMM])[kbsw] = mfccc;//(D.f[ dMMM ])[kbsw ] = mfccc;// - c1over216; (D.f[ dMMM ])[kbsw] + //////////////////////////////////////////////////////////////////////////////////// + } + } } \ No newline at end of file diff --git a/src/gpu/core/Kernel/Compressible/NavierStokes/K15/K15CompressibleNavierStokes_Device.cuh b/src/gpu/core/Kernel/Compressible/NavierStokes/K15/K15CompressibleNavierStokes_Device.cuh index 0dfdb3488136575921eb169cde4364d9de1507f5..92a3c988bdb8c32302a082b4d7ed0351b32458c2 100644 --- a/src/gpu/core/Kernel/Compressible/NavierStokes/K15/K15CompressibleNavierStokes_Device.cuh +++ b/src/gpu/core/Kernel/Compressible/NavierStokes/K15/K15CompressibleNavierStokes_Device.cuh @@ -4,15 +4,15 @@ #include <DataTypes.h> #include <curand.h> -__global__ void K15CompressibleNavierStokes_Device( - real omega, - unsigned int* bcMatD, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - real* DDStart, - int size_Mat, - int level, - real* forces, - bool EvenOrOdd); +__global__ void K15CompressibleNavierStokes_Device( + real omega, + unsigned int* bcMatD, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + real* DDStart, + int size_Mat, + int level, + real* forces, + bool EvenOrOdd); #endif \ No newline at end of file diff --git a/src/gpu/core/Kernel/Compressible/NavierStokes/K17/K17CompressibleNavierStokes.cu b/src/gpu/core/Kernel/Compressible/NavierStokes/K17/K17CompressibleNavierStokes.cu index 60d4a031451b73e1c4b8de1b317d6488d32e69e1..3fd0f5786e5ed9562f591bd4c264c06fb18e3f4d 100644 --- a/src/gpu/core/Kernel/Compressible/NavierStokes/K17/K17CompressibleNavierStokes.cu +++ b/src/gpu/core/Kernel/Compressible/NavierStokes/K17/K17CompressibleNavierStokes.cu @@ -116,7 +116,7 @@ void K17CompressibleNavierStokes<turbulenceModel>::runOnIndices(const unsigned i template <vf::lbm::TurbulenceModel turbulenceModel> K17CompressibleNavierStokes<turbulenceModel>::K17CompressibleNavierStokes(std::shared_ptr<Parameter> para, int level) : KernelImp(para, level) { - myPreProcessorTypes.push_back(InitCompSP27); + myPreProcessorTypes.push_back(InitNavierStokesCompressible); this->cudaGrid = vf::cuda::CudaGrid(para->getParD(level)->numberofthreads, para->getParD(level)->numberOfNodes); this->kernelUsesFluidNodeIndices = true; diff --git a/src/gpu/core/Kernel/Incompressible/AdvectionDiffusion/F16/F16IncompressibleAdvectionDiffusion.cu b/src/gpu/core/Kernel/Incompressible/AdvectionDiffusion/F16/F16IncompressibleAdvectionDiffusion.cu index de5bf40679472c586a6273554f17fa3d30074506..9ea0fe2a84c5fe933680acb93ddde7eab6c661fa 100644 --- a/src/gpu/core/Kernel/Incompressible/AdvectionDiffusion/F16/F16IncompressibleAdvectionDiffusion.cu +++ b/src/gpu/core/Kernel/Incompressible/AdvectionDiffusion/F16/F16IncompressibleAdvectionDiffusion.cu @@ -6,7 +6,7 @@ std::shared_ptr<F16IncompressibleAdvectionDiffusion> F16IncompressibleAdvectionDiffusion::getNewInstance(std::shared_ptr<Parameter> para, int level) { - return std::shared_ptr<F16IncompressibleAdvectionDiffusion>(new F16IncompressibleAdvectionDiffusion(para, level)); + return std::shared_ptr<F16IncompressibleAdvectionDiffusion>(new F16IncompressibleAdvectionDiffusion(para, level)); } void F16IncompressibleAdvectionDiffusion::run() @@ -29,10 +29,10 @@ void F16IncompressibleAdvectionDiffusion::run() F16IncompressibleAdvectionDiffusion::F16IncompressibleAdvectionDiffusion(std::shared_ptr<Parameter> para, int level) { - this->para = para; - this->level = level; + this->para = para; + this->level = level; - myPreProcessorTypes.push_back(InitIncompAD27); + myPreProcessorTypes.push_back(InitAdvectionDiffusionIncompressible); } diff --git a/src/gpu/core/Kernel/Incompressible/AdvectionDiffusion/F16/F16IncompressibleAdvectionDiffusion.h b/src/gpu/core/Kernel/Incompressible/AdvectionDiffusion/F16/F16IncompressibleAdvectionDiffusion.h index e7ebfac181a4f1cbeca97dc9349ef6107560730d..d46c9bf7ba146f46d4bc1c47ec9a22259e920f19 100644 --- a/src/gpu/core/Kernel/Incompressible/AdvectionDiffusion/F16/F16IncompressibleAdvectionDiffusion.h +++ b/src/gpu/core/Kernel/Incompressible/AdvectionDiffusion/F16/F16IncompressibleAdvectionDiffusion.h @@ -7,11 +7,11 @@ class F16IncompressibleAdvectionDiffusion : public AdvectionDiffusionKernel { public: - static std::shared_ptr<F16IncompressibleAdvectionDiffusion> getNewInstance(std::shared_ptr<Parameter> para, int level); - void run(); + static std::shared_ptr<F16IncompressibleAdvectionDiffusion> getNewInstance(std::shared_ptr<Parameter> para, int level); + void run(); private: - F16IncompressibleAdvectionDiffusion(); - F16IncompressibleAdvectionDiffusion(std::shared_ptr< Parameter> para, int level); + F16IncompressibleAdvectionDiffusion(); + F16IncompressibleAdvectionDiffusion(std::shared_ptr< Parameter> para, int level); }; #endif \ No newline at end of file diff --git a/src/gpu/core/Kernel/Incompressible/AdvectionDiffusion/F16/F16IncompressibleAdvectionDiffusion_Device.cu b/src/gpu/core/Kernel/Incompressible/AdvectionDiffusion/F16/F16IncompressibleAdvectionDiffusion_Device.cu index 07cbe4adbb623aff3fecca992de7b5eb9f080bf0..ba2aec9b1d9482cf0faaf6f8412f7272a1c267ac 100644 --- a/src/gpu/core/Kernel/Incompressible/AdvectionDiffusion/F16/F16IncompressibleAdvectionDiffusion_Device.cu +++ b/src/gpu/core/Kernel/Incompressible/AdvectionDiffusion/F16/F16IncompressibleAdvectionDiffusion_Device.cu @@ -9,266 +9,261 @@ using namespace vf::lbm::dir; #include "math.h" __global__ void F16IncompressibleAdvectionDiffusion_Device( - real omegaDiffusivity, - uint* typeOfGridNode, - uint* neighborX, - uint* neighborY, - uint* neighborZ, - real* distributions, - real* distributionsAD, - unsigned long long numberOfLBnodes, - real* forces, - bool isEvenTimestep) + real omegaDiffusivity, + uint* typeOfGridNode, + uint* neighborX, + uint* neighborY, + uint* neighborZ, + real* distributions, + real* distributionsAD, + unsigned long long numberOfLBnodes, + real* forces, + bool isEvenTimestep) { - ////////////////////////////////////////////////////////////////////////// - //! Cumulant K17 Kernel is based on \ref - //! <a href="https://doi.org/10.1016/j.jcp.2017.05.040"><b>[ M. Geier et al. (2017), DOI:10.1016/j.jcp.2017.05.040 ]</b></a> - //! and \ref - //! <a href="https://doi.org/10.1016/j.jcp.2017.07.004"><b>[ M. Geier et al. (2017), DOI:10.1016/j.jcp.2017.07.004 ]</b></a> - //! - //! The cumulant kernel is executed in the following steps - //! - //////////////////////////////////////////////////////////////////////////////// - //! - Get node index coordinates from threadIdx, blockIdx, blockDim and gridDim. - //! - const unsigned x = threadIdx.x; - const unsigned y = blockIdx.x; - const unsigned z = blockIdx.y; + ////////////////////////////////////////////////////////////////////////// + //! Cumulant K17 Kernel is based on \ref + //! <a href="https://doi.org/10.1016/j.jcp.2017.05.040"><b>[ M. Geier et al. (2017), DOI:10.1016/j.jcp.2017.05.040 ]</b></a> + //! and \ref + //! <a href="https://doi.org/10.1016/j.jcp.2017.07.004"><b>[ M. Geier et al. (2017), DOI:10.1016/j.jcp.2017.07.004 ]</b></a> + //! + //! The cumulant kernel is executed in the following steps + //! + //////////////////////////////////////////////////////////////////////////////// + //! - Get node index coordinates from threadIdx, blockIdx, blockDim and gridDim. + //! + const unsigned x = threadIdx.x; + const unsigned y = blockIdx.x; + const unsigned z = blockIdx.y; - const unsigned nx = blockDim.x; - const unsigned ny = gridDim.x; + const unsigned nx = blockDim.x; + const unsigned ny = gridDim.x; - const unsigned k = nx*(ny*z + y) + x; - - ////////////////////////////////////////////////////////////////////////// - // run for all indices in size_Mat and fluid nodes - if ((k < numberOfLBnodes) && (typeOfGridNode[k] == GEO_FLUID)) - { - ////////////////////////////////////////////////////////////////////////// - //! - Read distributions: style of reading and writing the distributions from/to stored arrays dependent on timestep is based on the esoteric twist algorithm \ref - //! <a href="https://doi.org/10.3390/computation5020019"><b>[ M. Geier et al. (2017), DOI:10.3390/computation5020019 ]</b></a> - //! - Distributions27 dist; - if (isEvenTimestep) - { - dist.f[dP00] = &distributions[dP00 * numberOfLBnodes]; - dist.f[dM00] = &distributions[dM00 * numberOfLBnodes]; - dist.f[d0P0] = &distributions[d0P0 * numberOfLBnodes]; - dist.f[d0M0] = &distributions[d0M0 * numberOfLBnodes]; - dist.f[d00P] = &distributions[d00P * numberOfLBnodes]; - dist.f[d00M] = &distributions[d00M * numberOfLBnodes]; - dist.f[dPP0] = &distributions[dPP0 * numberOfLBnodes]; - dist.f[dMM0] = &distributions[dMM0 * numberOfLBnodes]; - dist.f[dPM0] = &distributions[dPM0 * numberOfLBnodes]; - dist.f[dMP0] = &distributions[dMP0 * numberOfLBnodes]; - dist.f[dP0P] = &distributions[dP0P * numberOfLBnodes]; - dist.f[dM0M] = &distributions[dM0M * numberOfLBnodes]; - dist.f[dP0M] = &distributions[dP0M * numberOfLBnodes]; - dist.f[dM0P] = &distributions[dM0P * numberOfLBnodes]; - dist.f[d0PP] = &distributions[d0PP * numberOfLBnodes]; - dist.f[d0MM] = &distributions[d0MM * numberOfLBnodes]; - dist.f[d0PM] = &distributions[d0PM * numberOfLBnodes]; - dist.f[d0MP] = &distributions[d0MP * numberOfLBnodes]; - dist.f[d000] = &distributions[d000 * numberOfLBnodes]; - dist.f[dPPP] = &distributions[dPPP * numberOfLBnodes]; - dist.f[dMMP] = &distributions[dMMP * numberOfLBnodes]; - dist.f[dPMP] = &distributions[dPMP * numberOfLBnodes]; - dist.f[dMPP] = &distributions[dMPP * numberOfLBnodes]; - dist.f[dPPM] = &distributions[dPPM * numberOfLBnodes]; - dist.f[dMMM] = &distributions[dMMM * numberOfLBnodes]; - dist.f[dPMM] = &distributions[dPMM * numberOfLBnodes]; - dist.f[dMPM] = &distributions[dMPM * numberOfLBnodes]; - } - else - { - dist.f[dM00] = &distributions[dP00 * numberOfLBnodes]; - dist.f[dP00] = &distributions[dM00 * numberOfLBnodes]; - dist.f[d0M0] = &distributions[d0P0 * numberOfLBnodes]; - dist.f[d0P0] = &distributions[d0M0 * numberOfLBnodes]; - dist.f[d00M] = &distributions[d00P * numberOfLBnodes]; - dist.f[d00P] = &distributions[d00M * numberOfLBnodes]; - dist.f[dMM0] = &distributions[dPP0 * numberOfLBnodes]; - dist.f[dPP0] = &distributions[dMM0 * numberOfLBnodes]; - dist.f[dMP0] = &distributions[dPM0 * numberOfLBnodes]; - dist.f[dPM0] = &distributions[dMP0 * numberOfLBnodes]; - dist.f[dM0M] = &distributions[dP0P * numberOfLBnodes]; - dist.f[dP0P] = &distributions[dM0M * numberOfLBnodes]; - dist.f[dM0P] = &distributions[dP0M * numberOfLBnodes]; - dist.f[dP0M] = &distributions[dM0P * numberOfLBnodes]; - dist.f[d0MM] = &distributions[d0PP * numberOfLBnodes]; - dist.f[d0PP] = &distributions[d0MM * numberOfLBnodes]; - dist.f[d0MP] = &distributions[d0PM * numberOfLBnodes]; - dist.f[d0PM] = &distributions[d0MP * numberOfLBnodes]; - dist.f[d000] = &distributions[d000 * numberOfLBnodes]; - dist.f[dMMM] = &distributions[dPPP * numberOfLBnodes]; - dist.f[dPPM] = &distributions[dMMP * numberOfLBnodes]; - dist.f[dMPM] = &distributions[dPMP * numberOfLBnodes]; - dist.f[dPMM] = &distributions[dMPP * numberOfLBnodes]; - dist.f[dMMP] = &distributions[dPPM * numberOfLBnodes]; - dist.f[dPPP] = &distributions[dMMM * numberOfLBnodes]; - dist.f[dMPP] = &distributions[dPMM * numberOfLBnodes]; - dist.f[dPMP] = &distributions[dMPM * numberOfLBnodes]; - } - //////////////////////////////////////////////////////////////////////////////// - Distributions27 distAD; - if (isEvenTimestep) - { - distAD.f[dP00] = &distributionsAD[dP00 * numberOfLBnodes]; - distAD.f[dM00] = &distributionsAD[dM00 * numberOfLBnodes]; - distAD.f[d0P0] = &distributionsAD[d0P0 * numberOfLBnodes]; - distAD.f[d0M0] = &distributionsAD[d0M0 * numberOfLBnodes]; - distAD.f[d00P] = &distributionsAD[d00P * numberOfLBnodes]; - distAD.f[d00M] = &distributionsAD[d00M * numberOfLBnodes]; - distAD.f[dPP0] = &distributionsAD[dPP0 * numberOfLBnodes]; - distAD.f[dMM0] = &distributionsAD[dMM0 * numberOfLBnodes]; - distAD.f[dPM0] = &distributionsAD[dPM0 * numberOfLBnodes]; - distAD.f[dMP0] = &distributionsAD[dMP0 * numberOfLBnodes]; - distAD.f[dP0P] = &distributionsAD[dP0P * numberOfLBnodes]; - distAD.f[dM0M] = &distributionsAD[dM0M * numberOfLBnodes]; - distAD.f[dP0M] = &distributionsAD[dP0M * numberOfLBnodes]; - distAD.f[dM0P] = &distributionsAD[dM0P * numberOfLBnodes]; - distAD.f[d0PP] = &distributionsAD[d0PP * numberOfLBnodes]; - distAD.f[d0MM] = &distributionsAD[d0MM * numberOfLBnodes]; - distAD.f[d0PM] = &distributionsAD[d0PM * numberOfLBnodes]; - distAD.f[d0MP] = &distributionsAD[d0MP * numberOfLBnodes]; - distAD.f[d000] = &distributionsAD[d000 * numberOfLBnodes]; - distAD.f[dPPP] = &distributionsAD[dPPP * numberOfLBnodes]; - distAD.f[dMMP] = &distributionsAD[dMMP * numberOfLBnodes]; - distAD.f[dPMP] = &distributionsAD[dPMP * numberOfLBnodes]; - distAD.f[dMPP] = &distributionsAD[dMPP * numberOfLBnodes]; - distAD.f[dPPM] = &distributionsAD[dPPM * numberOfLBnodes]; - distAD.f[dMMM] = &distributionsAD[dMMM * numberOfLBnodes]; - distAD.f[dPMM] = &distributionsAD[dPMM * numberOfLBnodes]; - distAD.f[dMPM] = &distributionsAD[dMPM * numberOfLBnodes]; - } - else - { - distAD.f[dM00] = &distributionsAD[dP00 * numberOfLBnodes]; - distAD.f[dP00] = &distributionsAD[dM00 * numberOfLBnodes]; - distAD.f[d0M0] = &distributionsAD[d0P0 * numberOfLBnodes]; - distAD.f[d0P0] = &distributionsAD[d0M0 * numberOfLBnodes]; - distAD.f[d00M] = &distributionsAD[d00P * numberOfLBnodes]; - distAD.f[d00P] = &distributionsAD[d00M * numberOfLBnodes]; - distAD.f[dMM0] = &distributionsAD[dPP0 * numberOfLBnodes]; - distAD.f[dPP0] = &distributionsAD[dMM0 * numberOfLBnodes]; - distAD.f[dMP0] = &distributionsAD[dPM0 * numberOfLBnodes]; - distAD.f[dPM0] = &distributionsAD[dMP0 * numberOfLBnodes]; - distAD.f[dM0M] = &distributionsAD[dP0P * numberOfLBnodes]; - distAD.f[dP0P] = &distributionsAD[dM0M * numberOfLBnodes]; - distAD.f[dM0P] = &distributionsAD[dP0M * numberOfLBnodes]; - distAD.f[dP0M] = &distributionsAD[dM0P * numberOfLBnodes]; - distAD.f[d0MM] = &distributionsAD[d0PP * numberOfLBnodes]; - distAD.f[d0PP] = &distributionsAD[d0MM * numberOfLBnodes]; - distAD.f[d0MP] = &distributionsAD[d0PM * numberOfLBnodes]; - distAD.f[d0PM] = &distributionsAD[d0MP * numberOfLBnodes]; - distAD.f[d000] = &distributionsAD[d000 * numberOfLBnodes]; - distAD.f[dMMM] = &distributionsAD[dPPP * numberOfLBnodes]; - distAD.f[dPPM] = &distributionsAD[dMMP * numberOfLBnodes]; - distAD.f[dMPM] = &distributionsAD[dPMP * numberOfLBnodes]; - distAD.f[dPMM] = &distributionsAD[dMPP * numberOfLBnodes]; - distAD.f[dMMP] = &distributionsAD[dPPM * numberOfLBnodes]; - distAD.f[dPPP] = &distributionsAD[dMMM * numberOfLBnodes]; - distAD.f[dMPP] = &distributionsAD[dPMM * numberOfLBnodes]; - distAD.f[dPMP] = &distributionsAD[dMPM * numberOfLBnodes]; - } - //////////////////////////////////////////////////////////////////////////////// - //! - Set neighbor indices (necessary for indirect addressing) - uint kw = neighborX[k]; - uint ks = neighborY[k]; - uint kb = neighborZ[k]; - uint ksw = neighborY[kw]; - uint kbw = neighborZ[kw]; - uint kbs = neighborZ[ks]; - uint kbsw = neighborZ[ksw]; - //////////////////////////////////////////////////////////////////////////////////// - //! - Set local distributions Fluid - //! - real fcbb = (dist.f[dP00])[k]; - real fabb = (dist.f[dM00])[kw]; - real fbcb = (dist.f[d0P0])[k]; - real fbab = (dist.f[d0M0])[ks]; - real fbbc = (dist.f[d00P])[k]; - real fbba = (dist.f[d00M])[kb]; - real fccb = (dist.f[dPP0])[k]; - real faab = (dist.f[dMM0])[ksw]; - real fcab = (dist.f[dPM0])[ks]; - real facb = (dist.f[dMP0])[kw]; - real fcbc = (dist.f[dP0P])[k]; - real faba = (dist.f[dM0M])[kbw]; - real fcba = (dist.f[dP0M])[kb]; - real fabc = (dist.f[dM0P])[kw]; - real fbcc = (dist.f[d0PP])[k]; - real fbaa = (dist.f[d0MM])[kbs]; - real fbca = (dist.f[d0PM])[kb]; - real fbac = (dist.f[d0MP])[ks]; - real fbbb = (dist.f[d000])[k]; - real fccc = (dist.f[dPPP])[k]; - real faac = (dist.f[dMMP])[ksw]; - real fcac = (dist.f[dPMP])[ks]; - real facc = (dist.f[dMPP])[kw]; - real fcca = (dist.f[dPPM])[kb]; - real faaa = (dist.f[dMMM])[kbsw]; - real fcaa = (dist.f[dPMM])[kbs]; - real faca = (dist.f[dMPM])[kbw]; - //////////////////////////////////////////////////////////////////////////////////// - //! - Set local distributions Advection Diffusion - //! - real mfcbb = (distAD.f[dP00])[k]; - real mfabb = (distAD.f[dM00])[kw]; - real mfbcb = (distAD.f[d0P0])[k]; - real mfbab = (distAD.f[d0M0])[ks]; - real mfbbc = (distAD.f[d00P])[k]; - real mfbba = (distAD.f[d00M])[kb]; - real mfccb = (distAD.f[dPP0])[k]; - real mfaab = (distAD.f[dMM0])[ksw]; - real mfcab = (distAD.f[dPM0])[ks]; - real mfacb = (distAD.f[dMP0])[kw]; - real mfcbc = (distAD.f[dP0P])[k]; - real mfaba = (distAD.f[dM0M])[kbw]; - real mfcba = (distAD.f[dP0M])[kb]; - real mfabc = (distAD.f[dM0P])[kw]; - real mfbcc = (distAD.f[d0PP])[k]; - real mfbaa = (distAD.f[d0MM])[kbs]; - real mfbca = (distAD.f[d0PM])[kb]; - real mfbac = (distAD.f[d0MP])[ks]; - real mfbbb = (distAD.f[d000])[k]; - real mfccc = (distAD.f[dPPP])[k]; - real mfaac = (distAD.f[dMMP])[ksw]; - real mfcac = (distAD.f[dPMP])[ks]; - real mfacc = (distAD.f[dMPP])[kw]; - real mfcca = (distAD.f[dPPM])[kb]; - real mfaaa = (distAD.f[dMMM])[kbsw]; - real mfcaa = (distAD.f[dPMM])[kbs]; - real mfaca = (distAD.f[dMPM])[kbw]; - //////////////////////////////////////////////////////////////////////////////////// - //! - Calculate density and velocity using pyramid summation for low round-off errors as in Eq. (J1)-(J3) \ref - //! <a href="https://doi.org/10.1016/j.camwa.2015.05.001"><b>[ M. Geier et al. (2015), DOI:10.1016/j.camwa.2015.05.001 ]</b></a> - //! - //////////////////////////////////////////////////////////////////////////////////// - // fluid component - real drhoFluid = - ((((fccc + faaa) + (faca + fcac)) + ((facc + fcaa) + (faac + fcca))) + - (((fbac + fbca) + (fbaa + fbcc)) + ((fabc + fcba) + (faba + fcbc)) + ((facb + fcab) + (faab + fccb))) + - ((fabb + fcbb) + (fbab + fbcb) + (fbba + fbbc))) + fbbb; + const unsigned k = nx*(ny*z + y) + x; + ////////////////////////////////////////////////////////////////////////// + // run for all indices in size_Mat and fluid nodes + if ((k < numberOfLBnodes) && (typeOfGridNode[k] == GEO_FLUID)) + { + ////////////////////////////////////////////////////////////////////////// + //! - Read distributions: style of reading and writing the distributions from/to stored arrays dependent on timestep is based on the esoteric twist algorithm \ref + //! <a href="https://doi.org/10.3390/computation5020019"><b>[ M. Geier et al. (2017), DOI:10.3390/computation5020019 ]</b></a> + //! + Distributions27 dist; + if (isEvenTimestep) + { + dist.f[dP00] = &distributions[dP00 * numberOfLBnodes]; + dist.f[dM00] = &distributions[dM00 * numberOfLBnodes]; + dist.f[d0P0] = &distributions[d0P0 * numberOfLBnodes]; + dist.f[d0M0] = &distributions[d0M0 * numberOfLBnodes]; + dist.f[d00P] = &distributions[d00P * numberOfLBnodes]; + dist.f[d00M] = &distributions[d00M * numberOfLBnodes]; + dist.f[dPP0] = &distributions[dPP0 * numberOfLBnodes]; + dist.f[dMM0] = &distributions[dMM0 * numberOfLBnodes]; + dist.f[dPM0] = &distributions[dPM0 * numberOfLBnodes]; + dist.f[dMP0] = &distributions[dMP0 * numberOfLBnodes]; + dist.f[dP0P] = &distributions[dP0P * numberOfLBnodes]; + dist.f[dM0M] = &distributions[dM0M * numberOfLBnodes]; + dist.f[dP0M] = &distributions[dP0M * numberOfLBnodes]; + dist.f[dM0P] = &distributions[dM0P * numberOfLBnodes]; + dist.f[d0PP] = &distributions[d0PP * numberOfLBnodes]; + dist.f[d0MM] = &distributions[d0MM * numberOfLBnodes]; + dist.f[d0PM] = &distributions[d0PM * numberOfLBnodes]; + dist.f[d0MP] = &distributions[d0MP * numberOfLBnodes]; + dist.f[d000] = &distributions[d000 * numberOfLBnodes]; + dist.f[dPPP] = &distributions[dPPP * numberOfLBnodes]; + dist.f[dMMP] = &distributions[dMMP * numberOfLBnodes]; + dist.f[dPMP] = &distributions[dPMP * numberOfLBnodes]; + dist.f[dMPP] = &distributions[dMPP * numberOfLBnodes]; + dist.f[dPPM] = &distributions[dPPM * numberOfLBnodes]; + dist.f[dMMM] = &distributions[dMMM * numberOfLBnodes]; + dist.f[dPMM] = &distributions[dPMM * numberOfLBnodes]; + dist.f[dMPM] = &distributions[dMPM * numberOfLBnodes]; + } + else + { + dist.f[dM00] = &distributions[dP00 * numberOfLBnodes]; + dist.f[dP00] = &distributions[dM00 * numberOfLBnodes]; + dist.f[d0M0] = &distributions[d0P0 * numberOfLBnodes]; + dist.f[d0P0] = &distributions[d0M0 * numberOfLBnodes]; + dist.f[d00M] = &distributions[d00P * numberOfLBnodes]; + dist.f[d00P] = &distributions[d00M * numberOfLBnodes]; + dist.f[dMM0] = &distributions[dPP0 * numberOfLBnodes]; + dist.f[dPP0] = &distributions[dMM0 * numberOfLBnodes]; + dist.f[dMP0] = &distributions[dPM0 * numberOfLBnodes]; + dist.f[dPM0] = &distributions[dMP0 * numberOfLBnodes]; + dist.f[dM0M] = &distributions[dP0P * numberOfLBnodes]; + dist.f[dP0P] = &distributions[dM0M * numberOfLBnodes]; + dist.f[dM0P] = &distributions[dP0M * numberOfLBnodes]; + dist.f[dP0M] = &distributions[dM0P * numberOfLBnodes]; + dist.f[d0MM] = &distributions[d0PP * numberOfLBnodes]; + dist.f[d0PP] = &distributions[d0MM * numberOfLBnodes]; + dist.f[d0MP] = &distributions[d0PM * numberOfLBnodes]; + dist.f[d0PM] = &distributions[d0MP * numberOfLBnodes]; + dist.f[d000] = &distributions[d000 * numberOfLBnodes]; + dist.f[dMMM] = &distributions[dPPP * numberOfLBnodes]; + dist.f[dPPM] = &distributions[dMMP * numberOfLBnodes]; + dist.f[dMPM] = &distributions[dPMP * numberOfLBnodes]; + dist.f[dPMM] = &distributions[dMPP * numberOfLBnodes]; + dist.f[dMMP] = &distributions[dPPM * numberOfLBnodes]; + dist.f[dPPP] = &distributions[dMMM * numberOfLBnodes]; + dist.f[dMPP] = &distributions[dPMM * numberOfLBnodes]; + dist.f[dPMP] = &distributions[dMPM * numberOfLBnodes]; + } + //////////////////////////////////////////////////////////////////////////////// + Distributions27 distAD; + if (isEvenTimestep) + { + distAD.f[dP00] = &distributionsAD[dP00 * numberOfLBnodes]; + distAD.f[dM00] = &distributionsAD[dM00 * numberOfLBnodes]; + distAD.f[d0P0] = &distributionsAD[d0P0 * numberOfLBnodes]; + distAD.f[d0M0] = &distributionsAD[d0M0 * numberOfLBnodes]; + distAD.f[d00P] = &distributionsAD[d00P * numberOfLBnodes]; + distAD.f[d00M] = &distributionsAD[d00M * numberOfLBnodes]; + distAD.f[dPP0] = &distributionsAD[dPP0 * numberOfLBnodes]; + distAD.f[dMM0] = &distributionsAD[dMM0 * numberOfLBnodes]; + distAD.f[dPM0] = &distributionsAD[dPM0 * numberOfLBnodes]; + distAD.f[dMP0] = &distributionsAD[dMP0 * numberOfLBnodes]; + distAD.f[dP0P] = &distributionsAD[dP0P * numberOfLBnodes]; + distAD.f[dM0M] = &distributionsAD[dM0M * numberOfLBnodes]; + distAD.f[dP0M] = &distributionsAD[dP0M * numberOfLBnodes]; + distAD.f[dM0P] = &distributionsAD[dM0P * numberOfLBnodes]; + distAD.f[d0PP] = &distributionsAD[d0PP * numberOfLBnodes]; + distAD.f[d0MM] = &distributionsAD[d0MM * numberOfLBnodes]; + distAD.f[d0PM] = &distributionsAD[d0PM * numberOfLBnodes]; + distAD.f[d0MP] = &distributionsAD[d0MP * numberOfLBnodes]; + distAD.f[d000] = &distributionsAD[d000 * numberOfLBnodes]; + distAD.f[dPPP] = &distributionsAD[dPPP * numberOfLBnodes]; + distAD.f[dMMP] = &distributionsAD[dMMP * numberOfLBnodes]; + distAD.f[dPMP] = &distributionsAD[dPMP * numberOfLBnodes]; + distAD.f[dMPP] = &distributionsAD[dMPP * numberOfLBnodes]; + distAD.f[dPPM] = &distributionsAD[dPPM * numberOfLBnodes]; + distAD.f[dMMM] = &distributionsAD[dMMM * numberOfLBnodes]; + distAD.f[dPMM] = &distributionsAD[dPMM * numberOfLBnodes]; + distAD.f[dMPM] = &distributionsAD[dMPM * numberOfLBnodes]; + } + else + { + distAD.f[dM00] = &distributionsAD[dP00 * numberOfLBnodes]; + distAD.f[dP00] = &distributionsAD[dM00 * numberOfLBnodes]; + distAD.f[d0M0] = &distributionsAD[d0P0 * numberOfLBnodes]; + distAD.f[d0P0] = &distributionsAD[d0M0 * numberOfLBnodes]; + distAD.f[d00M] = &distributionsAD[d00P * numberOfLBnodes]; + distAD.f[d00P] = &distributionsAD[d00M * numberOfLBnodes]; + distAD.f[dMM0] = &distributionsAD[dPP0 * numberOfLBnodes]; + distAD.f[dPP0] = &distributionsAD[dMM0 * numberOfLBnodes]; + distAD.f[dMP0] = &distributionsAD[dPM0 * numberOfLBnodes]; + distAD.f[dPM0] = &distributionsAD[dMP0 * numberOfLBnodes]; + distAD.f[dM0M] = &distributionsAD[dP0P * numberOfLBnodes]; + distAD.f[dP0P] = &distributionsAD[dM0M * numberOfLBnodes]; + distAD.f[dM0P] = &distributionsAD[dP0M * numberOfLBnodes]; + distAD.f[dP0M] = &distributionsAD[dM0P * numberOfLBnodes]; + distAD.f[d0MM] = &distributionsAD[d0PP * numberOfLBnodes]; + distAD.f[d0PP] = &distributionsAD[d0MM * numberOfLBnodes]; + distAD.f[d0MP] = &distributionsAD[d0PM * numberOfLBnodes]; + distAD.f[d0PM] = &distributionsAD[d0MP * numberOfLBnodes]; + distAD.f[d000] = &distributionsAD[d000 * numberOfLBnodes]; + distAD.f[dMMM] = &distributionsAD[dPPP * numberOfLBnodes]; + distAD.f[dPPM] = &distributionsAD[dMMP * numberOfLBnodes]; + distAD.f[dMPM] = &distributionsAD[dPMP * numberOfLBnodes]; + distAD.f[dPMM] = &distributionsAD[dMPP * numberOfLBnodes]; + distAD.f[dMMP] = &distributionsAD[dPPM * numberOfLBnodes]; + distAD.f[dPPP] = &distributionsAD[dMMM * numberOfLBnodes]; + distAD.f[dMPP] = &distributionsAD[dPMM * numberOfLBnodes]; + distAD.f[dPMP] = &distributionsAD[dMPM * numberOfLBnodes]; + } + //////////////////////////////////////////////////////////////////////////////// + //! - Set neighbor indices (necessary for indirect addressing) + uint kw = neighborX[k]; + uint ks = neighborY[k]; + uint kb = neighborZ[k]; + uint ksw = neighborY[kw]; + uint kbw = neighborZ[kw]; + uint kbs = neighborZ[ks]; + uint kbsw = neighborZ[ksw]; + //////////////////////////////////////////////////////////////////////////////////// + //! - Set local distributions Fluid + //! + real fcbb = (dist.f[dP00])[k]; + real fabb = (dist.f[dM00])[kw]; + real fbcb = (dist.f[d0P0])[k]; + real fbab = (dist.f[d0M0])[ks]; + real fbbc = (dist.f[d00P])[k]; + real fbba = (dist.f[d00M])[kb]; + real fccb = (dist.f[dPP0])[k]; + real faab = (dist.f[dMM0])[ksw]; + real fcab = (dist.f[dPM0])[ks]; + real facb = (dist.f[dMP0])[kw]; + real fcbc = (dist.f[dP0P])[k]; + real faba = (dist.f[dM0M])[kbw]; + real fcba = (dist.f[dP0M])[kb]; + real fabc = (dist.f[dM0P])[kw]; + real fbcc = (dist.f[d0PP])[k]; + real fbaa = (dist.f[d0MM])[kbs]; + real fbca = (dist.f[d0PM])[kb]; + real fbac = (dist.f[d0MP])[ks]; + real fbbb = (dist.f[d000])[k]; + real fccc = (dist.f[dPPP])[k]; + real faac = (dist.f[dMMP])[ksw]; + real fcac = (dist.f[dPMP])[ks]; + real facc = (dist.f[dMPP])[kw]; + real fcca = (dist.f[dPPM])[kb]; + real faaa = (dist.f[dMMM])[kbsw]; + real fcaa = (dist.f[dPMM])[kbs]; + real faca = (dist.f[dMPM])[kbw]; + //////////////////////////////////////////////////////////////////////////////////// + //! - Set local distributions Advection Diffusion + //! + real mfcbb = (distAD.f[dP00])[k]; + real mfabb = (distAD.f[dM00])[kw]; + real mfbcb = (distAD.f[d0P0])[k]; + real mfbab = (distAD.f[d0M0])[ks]; + real mfbbc = (distAD.f[d00P])[k]; + real mfbba = (distAD.f[d00M])[kb]; + real mfccb = (distAD.f[dPP0])[k]; + real mfaab = (distAD.f[dMM0])[ksw]; + real mfcab = (distAD.f[dPM0])[ks]; + real mfacb = (distAD.f[dMP0])[kw]; + real mfcbc = (distAD.f[dP0P])[k]; + real mfaba = (distAD.f[dM0M])[kbw]; + real mfcba = (distAD.f[dP0M])[kb]; + real mfabc = (distAD.f[dM0P])[kw]; + real mfbcc = (distAD.f[d0PP])[k]; + real mfbaa = (distAD.f[d0MM])[kbs]; + real mfbca = (distAD.f[d0PM])[kb]; + real mfbac = (distAD.f[d0MP])[ks]; + real mfbbb = (distAD.f[d000])[k]; + real mfccc = (distAD.f[dPPP])[k]; + real mfaac = (distAD.f[dMMP])[ksw]; + real mfcac = (distAD.f[dPMP])[ks]; + real mfacc = (distAD.f[dMPP])[kw]; + real mfcca = (distAD.f[dPPM])[kb]; + real mfaaa = (distAD.f[dMMM])[kbsw]; + real mfcaa = (distAD.f[dPMM])[kbs]; + real mfaca = (distAD.f[dMPM])[kbw]; + //////////////////////////////////////////////////////////////////////////////////// + //! - Calculate density and velocity using pyramid summation for low round-off errors as in Eq. (J1)-(J3) \ref + //! <a href="https://doi.org/10.1016/j.camwa.2015.05.001"><b>[ M. Geier et al. (2015), DOI:10.1016/j.camwa.2015.05.001 ]</b></a> + //! + //////////////////////////////////////////////////////////////////////////////////// + // fluid component real vvx = - ((((fccc - faaa) + (fcac - faca)) + ((fcaa - facc) + (fcca - faac))) + - (((fcba - fabc) + (fcbc - faba)) + ((fcab - facb) + (fccb - faab))) + - (fcbb - fabb)); - real vvy = - ((((fccc - faaa) + (faca - fcac)) + ((facc - fcaa) + (fcca - faac))) + - (((fbca - fbac) + (fbcc - fbaa)) + ((facb - fcab) + (fccb - faab))) + - (fbcb - fbab)); - real vvz = - ((((fccc - faaa) + (fcac - faca)) + ((facc - fcaa) + (faac - fcca))) + - (((fbac - fbca) + (fbcc - fbaa)) + ((fabc - fcba) + (fcbc - faba))) + - (fbbc - fbba)); - //////////////////////////////////////////////////////////////////////////////////// - // second component - real rho = - ((((mfccc + mfaaa) + (mfaca + mfcac)) + ((mfacc + mfcaa) + (mfaac + mfcca))) + - (((mfbac + mfbca) + (mfbaa + mfbcc)) + ((mfabc + mfcba) + (mfaba + mfcbc)) + ((mfacb + mfcab) + (mfaab + mfccb))) + - ((mfabb + mfcbb) + (mfbab + mfbcb) + (mfbba + mfbbc))) + mfbbb; + ((((fccc - faaa) + (fcac - faca)) + ((fcaa - facc) + (fcca - faac))) + + (((fcba - fabc) + (fcbc - faba)) + ((fcab - facb) + (fccb - faab))) + + (fcbb - fabb)); + real vvy = + ((((fccc - faaa) + (faca - fcac)) + ((facc - fcaa) + (fcca - faac))) + + (((fbca - fbac) + (fbcc - fbaa)) + ((facb - fcab) + (fccb - faab))) + + (fbcb - fbab)); + real vvz = + ((((fccc - faaa) + (fcac - faca)) + ((facc - fcaa) + (faac - fcca))) + + (((fbac - fbca) + (fbcc - fbaa)) + ((fabc - fcba) + (fcbc - faba))) + + (fbbc - fbba)); + //////////////////////////////////////////////////////////////////////////////////// + // second component + real rho = + ((((mfccc + mfaaa) + (mfaca + mfcac)) + ((mfacc + mfcaa) + (mfaac + mfcca))) + + (((mfbac + mfbca) + (mfbaa + mfbcc)) + ((mfabc + mfcba) + (mfaba + mfcbc)) + ((mfacb + mfcab) + (mfaab + mfccb))) + + ((mfabb + mfcbb) + (mfbab + mfbcb) + (mfbba + mfbbc))) + mfbbb; //////////////////////////////////////////////////////////////////////////////////// //! - Add half of the acceleration (body force) to the velocity as in Eq. (42) \ref @@ -281,195 +276,195 @@ __global__ void F16IncompressibleAdvectionDiffusion_Device( vvy += fy*c1o2; vvz += fz*c1o2; //////////////////////////////////////////////////////////////////////////////////// - // calculate the square of velocities for this lattice node - real vx2 = vvx*vvx; - real vy2 = vvy*vvy; - real vz2 = vvz*vvz; - //////////////////////////////////////////////////////////////////////////////////// - //real omegaDiffusivity = c2o1 / (c6o1 * diffusivity + c1o1); - //////////////////////////////////////////////////////////////////////////////////// - //! - Chimera transform from distributions to central moments as defined in Eq. (43)-(45) in \ref - //! <a href="https://doi.org/10.1016/j.camwa.2015.05.001"><b>[ M. Geier et al. (2015), DOI:10.1016/j.camwa.2015.05.001 ]</b></a> - //! - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - forwardChimera(mfaaa, mfaab, mfaac, vvz, vz2); - forwardChimera(mfaba, mfabb, mfabc, vvz, vz2); - forwardChimera(mfaca, mfacb, mfacc, vvz, vz2); - forwardChimera(mfbaa, mfbab, mfbac, vvz, vz2); - forwardChimera(mfbba, mfbbb, mfbbc, vvz, vz2); - forwardChimera(mfbca, mfbcb, mfbcc, vvz, vz2); - forwardChimera(mfcaa, mfcab, mfcac, vvz, vz2); - forwardChimera(mfcba, mfcbb, mfcbc, vvz, vz2); - forwardChimera(mfcca, mfccb, mfccc, vvz, vz2); + // calculate the square of velocities for this lattice node + real vx2 = vvx*vvx; + real vy2 = vvy*vvy; + real vz2 = vvz*vvz; + //////////////////////////////////////////////////////////////////////////////////// + //real omegaDiffusivity = c2o1 / (c6o1 * diffusivity + c1o1); + //////////////////////////////////////////////////////////////////////////////////// + //! - Chimera transform from distributions to central moments as defined in Eq. (43)-(45) in \ref + //! <a href="https://doi.org/10.1016/j.camwa.2015.05.001"><b>[ M. Geier et al. (2015), DOI:10.1016/j.camwa.2015.05.001 ]</b></a> + //! + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + forwardChimera(mfaaa, mfaab, mfaac, vvz, vz2); + forwardChimera(mfaba, mfabb, mfabc, vvz, vz2); + forwardChimera(mfaca, mfacb, mfacc, vvz, vz2); + forwardChimera(mfbaa, mfbab, mfbac, vvz, vz2); + forwardChimera(mfbba, mfbbb, mfbbc, vvz, vz2); + forwardChimera(mfbca, mfbcb, mfbcc, vvz, vz2); + forwardChimera(mfcaa, mfcab, mfcac, vvz, vz2); + forwardChimera(mfcba, mfcbb, mfcbc, vvz, vz2); + forwardChimera(mfcca, mfccb, mfccc, vvz, vz2); - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - forwardChimera(mfaaa, mfaba, mfaca, vvy, vy2); - forwardChimera(mfaab, mfabb, mfacb, vvy, vy2); - forwardChimera(mfaac, mfabc, mfacc, vvy, vy2); - forwardChimera(mfbaa, mfbba, mfbca, vvy, vy2); - forwardChimera(mfbab, mfbbb, mfbcb, vvy, vy2); - forwardChimera(mfbac, mfbbc, mfbcc, vvy, vy2); - forwardChimera(mfcaa, mfcba, mfcca, vvy, vy2); - forwardChimera(mfcab, mfcbb, mfccb, vvy, vy2); - forwardChimera(mfcac, mfcbc, mfccc, vvy, vy2); + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + forwardChimera(mfaaa, mfaba, mfaca, vvy, vy2); + forwardChimera(mfaab, mfabb, mfacb, vvy, vy2); + forwardChimera(mfaac, mfabc, mfacc, vvy, vy2); + forwardChimera(mfbaa, mfbba, mfbca, vvy, vy2); + forwardChimera(mfbab, mfbbb, mfbcb, vvy, vy2); + forwardChimera(mfbac, mfbbc, mfbcc, vvy, vy2); + forwardChimera(mfcaa, mfcba, mfcca, vvy, vy2); + forwardChimera(mfcab, mfcbb, mfccb, vvy, vy2); + forwardChimera(mfcac, mfcbc, mfccc, vvy, vy2); - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - forwardChimera(mfaaa, mfbaa, mfcaa, vvx, vx2); - forwardChimera(mfaba, mfbba, mfcba, vvx, vx2); - forwardChimera(mfaca, mfbca, mfcca, vvx, vx2); - forwardChimera(mfaab, mfbab, mfcab, vvx, vx2); - forwardChimera(mfabb, mfbbb, mfcbb, vvx, vx2); - forwardChimera(mfacb, mfbcb, mfccb, vvx, vx2); - forwardChimera(mfaac, mfbac, mfcac, vvx, vx2); - forwardChimera(mfabc, mfbbc, mfcbc, vvx, vx2); - forwardChimera(mfacc, mfbcc, mfccc, vvx, vx2); + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + forwardChimera(mfaaa, mfbaa, mfcaa, vvx, vx2); + forwardChimera(mfaba, mfbba, mfcba, vvx, vx2); + forwardChimera(mfaca, mfbca, mfcca, vvx, vx2); + forwardChimera(mfaab, mfbab, mfcab, vvx, vx2); + forwardChimera(mfabb, mfbbb, mfcbb, vvx, vx2); + forwardChimera(mfacb, mfbcb, mfccb, vvx, vx2); + forwardChimera(mfaac, mfbac, mfcac, vvx, vx2); + forwardChimera(mfabc, mfbbc, mfcbc, vvx, vx2); + forwardChimera(mfacc, mfbcc, mfccc, vvx, vx2); - //////////////////////////////////////////////////////////////////////////////////// - //! - Factorized central moments for Advection Diffusion Equation - Eq. (15)-(16) in \ref - //! <a href="https://doi.org/10.1016/j.advwatres.2015.09.015"><b>[ X. Yang et al. (2016), DOI: 10.1016/j.advwatres.2015.09.015]</b></a> - //! + //////////////////////////////////////////////////////////////////////////////////// + //! - Factorized central moments for Advection Diffusion Equation - Eq. (15)-(16) in \ref + //! <a href="https://doi.org/10.1016/j.advwatres.2015.09.015"><b>[ X. Yang et al. (2016), DOI: 10.1016/j.advwatres.2015.09.015]</b></a> + //! - // linearized orthogonalization of 3rd order central moments - real Mabc = mfabc - mfaba*c1o3; - real Mbca = mfbca - mfbaa*c1o3; - real Macb = mfacb - mfaab*c1o3; - real Mcba = mfcba - mfaba*c1o3; - real Mcab = mfcab - mfaab*c1o3; - real Mbac = mfbac - mfbaa*c1o3; - // linearized orthogonalization of 5th order central moments - real Mcbc = mfcbc - mfaba*c1o9; - real Mbcc = mfbcc - mfbaa*c1o9; - real Mccb = mfccb - mfaab*c1o9; + // linearized orthogonalization of 3rd order central moments + real Mabc = mfabc - mfaba*c1o3; + real Mbca = mfbca - mfbaa*c1o3; + real Macb = mfacb - mfaab*c1o3; + real Mcba = mfcba - mfaba*c1o3; + real Mcab = mfcab - mfaab*c1o3; + real Mbac = mfbac - mfbaa*c1o3; + // linearized orthogonalization of 5th order central moments + real Mcbc = mfcbc - mfaba*c1o9; + real Mbcc = mfbcc - mfbaa*c1o9; + real Mccb = mfccb - mfaab*c1o9; - // collision of 1st order moments - mfbaa *= c1o1 - omegaDiffusivity; - mfaba *= c1o1 - omegaDiffusivity; - mfaab *= c1o1 - omegaDiffusivity; + // collision of 1st order moments + mfbaa *= c1o1 - omegaDiffusivity; + mfaba *= c1o1 - omegaDiffusivity; + mfaab *= c1o1 - omegaDiffusivity; - // equilibration of 3rd order moments - Mabc = c0o1; - Mbca = c0o1; - Macb = c0o1; - Mcba = c0o1; - Mcab = c0o1; - Mbac = c0o1; - mfbbb = c0o1; + // equilibration of 3rd order moments + Mabc = c0o1; + Mbca = c0o1; + Macb = c0o1; + Mcba = c0o1; + Mcab = c0o1; + Mbac = c0o1; + mfbbb = c0o1; - // equilibration of 5th order moments - Mcbc = c0o1; - Mbcc = c0o1; - Mccb = c0o1; + // equilibration of 5th order moments + Mcbc = c0o1; + Mbcc = c0o1; + Mccb = c0o1; - // equilibration of 2nd order moments - mfbba = c0o1; - mfbab = c0o1; - mfabb = c0o1; + // equilibration of 2nd order moments + mfbba = c0o1; + mfbab = c0o1; + mfabb = c0o1; - mfcaa = c1o3 * rho; - mfaca = c1o3 * rho; - mfaac = c1o3 * rho; + mfcaa = c1o3 * rho; + mfaca = c1o3 * rho; + mfaac = c1o3 * rho; - // equilibration of 4th order moments - mfacc = c1o9 * rho; - mfcac = c1o9 * rho; - mfcca = c1o9 * rho; + // equilibration of 4th order moments + mfacc = c1o9 * rho; + mfcac = c1o9 * rho; + mfcca = c1o9 * rho; - mfcbb = c0o1; - mfbcb = c0o1; - mfbbc = c0o1; + mfcbb = c0o1; + mfbcb = c0o1; + mfbbc = c0o1; - // equilibration of 6th order moment - mfccc = c1o27 * rho; + // equilibration of 6th order moment + mfccc = c1o27 * rho; - // from linearized orthogonalization 3rd order central moments to central moments - mfabc = Mabc + mfaba*c1o3; - mfbca = Mbca + mfbaa*c1o3; - mfacb = Macb + mfaab*c1o3; - mfcba = Mcba + mfaba*c1o3; - mfcab = Mcab + mfaab*c1o3; - mfbac = Mbac + mfbaa*c1o3; + // from linearized orthogonalization 3rd order central moments to central moments + mfabc = Mabc + mfaba*c1o3; + mfbca = Mbca + mfbaa*c1o3; + mfacb = Macb + mfaab*c1o3; + mfcba = Mcba + mfaba*c1o3; + mfcab = Mcab + mfaab*c1o3; + mfbac = Mbac + mfbaa*c1o3; - // from linearized orthogonalization 5th order central moments to central moments - mfcbc = Mcbc + mfaba*c1o9; - mfbcc = Mbcc + mfbaa*c1o9; - mfccb = Mccb + mfaab*c1o9; + // from linearized orthogonalization 5th order central moments to central moments + mfcbc = Mcbc + mfaba*c1o9; + mfbcc = Mbcc + mfbaa*c1o9; + mfccb = Mccb + mfaab*c1o9; - //////////////////////////////////////////////////////////////////////////////////// - //! - Chimera transform from central moments to distributions as defined in Eq. (88)-(96) in \ref - //! <a href="https://doi.org/10.1016/j.camwa.2015.05.001"><b>[ M. Geier et al. (2015), DOI:10.1016/j.camwa.2015.05.001 ]</b></a> - //! - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - backwardChimera(mfaaa, mfbaa, mfcaa, vvx, vx2); - backwardChimera(mfaba, mfbba, mfcba, vvx, vx2); - backwardChimera(mfaca, mfbca, mfcca, vvx, vx2); - backwardChimera(mfaab, mfbab, mfcab, vvx, vx2); - backwardChimera(mfabb, mfbbb, mfcbb, vvx, vx2); - backwardChimera(mfacb, mfbcb, mfccb, vvx, vx2); - backwardChimera(mfaac, mfbac, mfcac, vvx, vx2); - backwardChimera(mfabc, mfbbc, mfcbc, vvx, vx2); - backwardChimera(mfacc, mfbcc, mfccc, vvx, vx2); + //////////////////////////////////////////////////////////////////////////////////// + //! - Chimera transform from central moments to distributions as defined in Eq. (88)-(96) in \ref + //! <a href="https://doi.org/10.1016/j.camwa.2015.05.001"><b>[ M. Geier et al. (2015), DOI:10.1016/j.camwa.2015.05.001 ]</b></a> + //! + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + backwardChimera(mfaaa, mfbaa, mfcaa, vvx, vx2); + backwardChimera(mfaba, mfbba, mfcba, vvx, vx2); + backwardChimera(mfaca, mfbca, mfcca, vvx, vx2); + backwardChimera(mfaab, mfbab, mfcab, vvx, vx2); + backwardChimera(mfabb, mfbbb, mfcbb, vvx, vx2); + backwardChimera(mfacb, mfbcb, mfccb, vvx, vx2); + backwardChimera(mfaac, mfbac, mfcac, vvx, vx2); + backwardChimera(mfabc, mfbbc, mfcbc, vvx, vx2); + backwardChimera(mfacc, mfbcc, mfccc, vvx, vx2); - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - backwardChimera(mfaaa, mfaba, mfaca, vvy, vy2); - backwardChimera(mfaab, mfabb, mfacb, vvy, vy2); - backwardChimera(mfaac, mfabc, mfacc, vvy, vy2); - backwardChimera(mfbaa, mfbba, mfbca, vvy, vy2); - backwardChimera(mfbab, mfbbb, mfbcb, vvy, vy2); - backwardChimera(mfbac, mfbbc, mfbcc, vvy, vy2); - backwardChimera(mfcaa, mfcba, mfcca, vvy, vy2); - backwardChimera(mfcab, mfcbb, mfccb, vvy, vy2); - backwardChimera(mfcac, mfcbc, mfccc, vvy, vy2); + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + backwardChimera(mfaaa, mfaba, mfaca, vvy, vy2); + backwardChimera(mfaab, mfabb, mfacb, vvy, vy2); + backwardChimera(mfaac, mfabc, mfacc, vvy, vy2); + backwardChimera(mfbaa, mfbba, mfbca, vvy, vy2); + backwardChimera(mfbab, mfbbb, mfbcb, vvy, vy2); + backwardChimera(mfbac, mfbbc, mfbcc, vvy, vy2); + backwardChimera(mfcaa, mfcba, mfcca, vvy, vy2); + backwardChimera(mfcab, mfcbb, mfccb, vvy, vy2); + backwardChimera(mfcac, mfcbc, mfccc, vvy, vy2); - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - backwardChimera(mfaaa, mfaab, mfaac, vvz, vz2); - backwardChimera(mfaba, mfabb, mfabc, vvz, vz2); - backwardChimera(mfaca, mfacb, mfacc, vvz, vz2); - backwardChimera(mfbaa, mfbab, mfbac, vvz, vz2); - backwardChimera(mfbba, mfbbb, mfbbc, vvz, vz2); - backwardChimera(mfbca, mfbcb, mfbcc, vvz, vz2); - backwardChimera(mfcaa, mfcab, mfcac, vvz, vz2); - backwardChimera(mfcba, mfcbb, mfcbc, vvz, vz2); - backwardChimera(mfcca, mfccb, mfccc, vvz, vz2); + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + backwardChimera(mfaaa, mfaab, mfaac, vvz, vz2); + backwardChimera(mfaba, mfabb, mfabc, vvz, vz2); + backwardChimera(mfaca, mfacb, mfacc, vvz, vz2); + backwardChimera(mfbaa, mfbab, mfbac, vvz, vz2); + backwardChimera(mfbba, mfbbb, mfbbc, vvz, vz2); + backwardChimera(mfbca, mfbcb, mfbcc, vvz, vz2); + backwardChimera(mfcaa, mfcab, mfcac, vvz, vz2); + backwardChimera(mfcba, mfcbb, mfcbc, vvz, vz2); + backwardChimera(mfcca, mfccb, mfccc, vvz, vz2); - //////////////////////////////////////////////////////////////////////////////////// - //! - Write distributions: style of reading and writing the distributions from/to - //! stored arrays dependent on timestep is based on the esoteric twist algorithm - //! <a href="https://doi.org/10.3390/computation5020019"><b>[ M. Geier et al. (2017), DOI:10.3390/computation5020019 ]</b></a> - //! - (distAD.f[dP00])[k ] = mfabb; - (distAD.f[dM00])[kw ] = mfcbb; - (distAD.f[d0P0])[k ] = mfbab; - (distAD.f[d0M0])[ks ] = mfbcb; - (distAD.f[d00P])[k ] = mfbba; - (distAD.f[d00M])[kb ] = mfbbc; - (distAD.f[dPP0])[k ] = mfaab; - (distAD.f[dMM0])[ksw ] = mfccb; - (distAD.f[dPM0])[ks ] = mfacb; - (distAD.f[dMP0])[kw ] = mfcab; - (distAD.f[dP0P])[k ] = mfaba; - (distAD.f[dM0M])[kbw ] = mfcbc; - (distAD.f[dP0M])[kb ] = mfabc; - (distAD.f[dM0P])[kw ] = mfcba; - (distAD.f[d0PP])[k ] = mfbaa; - (distAD.f[d0MM])[kbs ] = mfbcc; - (distAD.f[d0PM])[kb ] = mfbac; - (distAD.f[d0MP])[ks ] = mfbca; - (distAD.f[d000])[k ] = mfbbb; - (distAD.f[dPPP])[k ] = mfaaa; - (distAD.f[dPMP])[ks ] = mfaca; - (distAD.f[dPPM])[kb ] = mfaac; - (distAD.f[dPMM])[kbs ] = mfacc; - (distAD.f[dMPP])[kw ] = mfcaa; - (distAD.f[dMMP])[ksw ] = mfcca; - (distAD.f[dMPM])[kbw ] = mfcac; - (distAD.f[dMMM])[kbsw] = mfccc; - } + //////////////////////////////////////////////////////////////////////////////////// + //! - Write distributions: style of reading and writing the distributions from/to + //! stored arrays dependent on timestep is based on the esoteric twist algorithm + //! <a href="https://doi.org/10.3390/computation5020019"><b>[ M. Geier et al. (2017), DOI:10.3390/computation5020019 ]</b></a> + //! + (distAD.f[dP00])[k ] = mfabb; + (distAD.f[dM00])[kw ] = mfcbb; + (distAD.f[d0P0])[k ] = mfbab; + (distAD.f[d0M0])[ks ] = mfbcb; + (distAD.f[d00P])[k ] = mfbba; + (distAD.f[d00M])[kb ] = mfbbc; + (distAD.f[dPP0])[k ] = mfaab; + (distAD.f[dMM0])[ksw ] = mfccb; + (distAD.f[dPM0])[ks ] = mfacb; + (distAD.f[dMP0])[kw ] = mfcab; + (distAD.f[dP0P])[k ] = mfaba; + (distAD.f[dM0M])[kbw ] = mfcbc; + (distAD.f[dP0M])[kb ] = mfabc; + (distAD.f[dM0P])[kw ] = mfcba; + (distAD.f[d0PP])[k ] = mfbaa; + (distAD.f[d0MM])[kbs ] = mfbcc; + (distAD.f[d0PM])[kb ] = mfbac; + (distAD.f[d0MP])[ks ] = mfbca; + (distAD.f[d000])[k ] = mfbbb; + (distAD.f[dPPP])[k ] = mfaaa; + (distAD.f[dPMP])[ks ] = mfaca; + (distAD.f[dPPM])[kb ] = mfaac; + (distAD.f[dPMM])[kbs ] = mfacc; + (distAD.f[dMPP])[kw ] = mfcaa; + (distAD.f[dMMP])[ksw ] = mfcca; + (distAD.f[dMPM])[kbw ] = mfcac; + (distAD.f[dMMM])[kbsw] = mfccc; + } } //////////////////////////////////////////////////////////////////////////////// diff --git a/src/gpu/core/Kernel/Incompressible/NavierStokes/B15/B15IncompressibleNavierStokesBGKplus.cu b/src/gpu/core/Kernel/Incompressible/NavierStokes/B15/B15IncompressibleNavierStokesBGKplus.cu index 846c2effc1d7df08f76e9752ed706e821254aba7..cc0b6d43e4b7bd5fb329a0cbbf1ba7e33f466a75 100644 --- a/src/gpu/core/Kernel/Incompressible/NavierStokes/B15/B15IncompressibleNavierStokesBGKplus.cu +++ b/src/gpu/core/Kernel/Incompressible/NavierStokes/B15/B15IncompressibleNavierStokesBGKplus.cu @@ -6,7 +6,7 @@ std::shared_ptr<B15IncompressibleNavierStokesBGKplus> B15IncompressibleNavierStokesBGKplus::getNewInstance(std::shared_ptr<Parameter> para, int level) { - return std::shared_ptr<B15IncompressibleNavierStokesBGKplus>(new B15IncompressibleNavierStokesBGKplus(para, level)); + return std::shared_ptr<B15IncompressibleNavierStokesBGKplus>(new B15IncompressibleNavierStokesBGKplus(para, level)); } void B15IncompressibleNavierStokesBGKplus::run() @@ -27,12 +27,12 @@ void B15IncompressibleNavierStokesBGKplus::run() B15IncompressibleNavierStokesBGKplus::B15IncompressibleNavierStokesBGKplus(std::shared_ptr<Parameter> para, int level) { - this->para = para; - this->level = level; + this->para = para; + this->level = level; - myPreProcessorTypes.push_back(InitSP27); + myPreProcessorTypes.push_back(InitNavierStokesIncompressible); - + } B15IncompressibleNavierStokesBGKplus::B15IncompressibleNavierStokesBGKplus() diff --git a/src/gpu/core/Kernel/Incompressible/NavierStokes/B15/B15IncompressibleNavierStokesBGKplus.h b/src/gpu/core/Kernel/Incompressible/NavierStokes/B15/B15IncompressibleNavierStokesBGKplus.h index 2426d32cb0262c90aa32e8eaeea40ad9e273b75d..11585f69736db77bde471418bd548fa68ea9d6dd 100644 --- a/src/gpu/core/Kernel/Incompressible/NavierStokes/B15/B15IncompressibleNavierStokesBGKplus.h +++ b/src/gpu/core/Kernel/Incompressible/NavierStokes/B15/B15IncompressibleNavierStokesBGKplus.h @@ -6,12 +6,12 @@ class B15IncompressibleNavierStokesBGKplus : public KernelImp { public: - static std::shared_ptr<B15IncompressibleNavierStokesBGKplus> getNewInstance(std::shared_ptr< Parameter> para, int level); - void run(); + static std::shared_ptr<B15IncompressibleNavierStokesBGKplus> getNewInstance(std::shared_ptr< Parameter> para, int level); + void run(); private: - B15IncompressibleNavierStokesBGKplus(); - B15IncompressibleNavierStokesBGKplus(std::shared_ptr< Parameter> para, int level); + B15IncompressibleNavierStokesBGKplus(); + B15IncompressibleNavierStokesBGKplus(std::shared_ptr< Parameter> para, int level); }; #endif \ No newline at end of file diff --git a/src/gpu/core/Kernel/Incompressible/NavierStokes/B15/B15IncompressibleNavierStokesBGKplus_Device.cu b/src/gpu/core/Kernel/Incompressible/NavierStokes/B15/B15IncompressibleNavierStokesBGKplus_Device.cu index 626f33bae48e880a14734281c884a4e0b309fac1..ea5dd79414218b055298cad4a804d250601f3f50 100644 --- a/src/gpu/core/Kernel/Incompressible/NavierStokes/B15/B15IncompressibleNavierStokesBGKplus_Device.cu +++ b/src/gpu/core/Kernel/Incompressible/NavierStokes/B15/B15IncompressibleNavierStokesBGKplus_Device.cu @@ -7,751 +7,751 @@ using namespace vf::lbm::dir; #include "math.h" __global__ void B15IncompressibleNavierStokesBGKplus_Device(real omega, - unsigned int* bcMatD, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - real* DDStart, - int size_Mat, - bool EvenOrOdd) + unsigned int* bcMatD, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + real* DDStart, + int size_Mat, + bool EvenOrOdd) { - //////////////////////////////////////////////////////////////////////////////// - const unsigned x = threadIdx.x; // Globaler x-Index - const unsigned y = blockIdx.x; // Globaler y-Index - const unsigned z = blockIdx.y; // Globaler z-Index + //////////////////////////////////////////////////////////////////////////////// + const unsigned x = threadIdx.x; // Globaler x-Index + const unsigned y = blockIdx.x; // Globaler y-Index + const unsigned z = blockIdx.y; // Globaler z-Index - const unsigned nx = blockDim.x; - const unsigned ny = gridDim.x; + const unsigned nx = blockDim.x; + const unsigned ny = gridDim.x; - const unsigned k = nx*(ny*z + y) + x; - ////////////////////////////////////////////////////////////////////////// + const unsigned k = nx*(ny*z + y) + x; + ////////////////////////////////////////////////////////////////////////// - if (k < size_Mat) - { - //////////////////////////////////////////////////////////////////////////////// - unsigned int BC; - BC = bcMatD[k]; + if (k < size_Mat) + { + //////////////////////////////////////////////////////////////////////////////// + unsigned int BC; + BC = bcMatD[k]; - if ((BC != GEO_SOLID) && (BC != GEO_VOID)) - { - Distributions27 D; - if (EvenOrOdd == true) - { - D.f[dP00] = &DDStart[dP00 * size_Mat]; - D.f[dM00] = &DDStart[dM00 * size_Mat]; - D.f[d0P0] = &DDStart[d0P0 * size_Mat]; - D.f[d0M0] = &DDStart[d0M0 * size_Mat]; - D.f[d00P] = &DDStart[d00P * size_Mat]; - D.f[d00M] = &DDStart[d00M * size_Mat]; - D.f[dPP0] = &DDStart[dPP0 * size_Mat]; - D.f[dMM0] = &DDStart[dMM0 * size_Mat]; - D.f[dPM0] = &DDStart[dPM0 * size_Mat]; - D.f[dMP0] = &DDStart[dMP0 * size_Mat]; - D.f[dP0P] = &DDStart[dP0P * size_Mat]; - D.f[dM0M] = &DDStart[dM0M * size_Mat]; - D.f[dP0M] = &DDStart[dP0M * size_Mat]; - D.f[dM0P] = &DDStart[dM0P * size_Mat]; - D.f[d0PP] = &DDStart[d0PP * size_Mat]; - D.f[d0MM] = &DDStart[d0MM * size_Mat]; - D.f[d0PM] = &DDStart[d0PM * size_Mat]; - D.f[d0MP] = &DDStart[d0MP * size_Mat]; - D.f[d000] = &DDStart[d000 * size_Mat]; - D.f[dPPP] = &DDStart[dPPP * size_Mat]; - D.f[dMMP] = &DDStart[dMMP * size_Mat]; - D.f[dPMP] = &DDStart[dPMP * size_Mat]; - D.f[dMPP] = &DDStart[dMPP * size_Mat]; - D.f[dPPM] = &DDStart[dPPM * size_Mat]; - D.f[dMMM] = &DDStart[dMMM * size_Mat]; - D.f[dPMM] = &DDStart[dPMM * size_Mat]; - D.f[dMPM] = &DDStart[dMPM * size_Mat]; - } - else - { - D.f[dM00] = &DDStart[dP00 * size_Mat]; - D.f[dP00] = &DDStart[dM00 * size_Mat]; - D.f[d0M0] = &DDStart[d0P0 * size_Mat]; - D.f[d0P0] = &DDStart[d0M0 * size_Mat]; - D.f[d00M] = &DDStart[d00P * size_Mat]; - D.f[d00P] = &DDStart[d00M * size_Mat]; - D.f[dMM0] = &DDStart[dPP0 * size_Mat]; - D.f[dPP0] = &DDStart[dMM0 * size_Mat]; - D.f[dMP0] = &DDStart[dPM0 * size_Mat]; - D.f[dPM0] = &DDStart[dMP0 * size_Mat]; - D.f[dM0M] = &DDStart[dP0P * size_Mat]; - D.f[dP0P] = &DDStart[dM0M * size_Mat]; - D.f[dM0P] = &DDStart[dP0M * size_Mat]; - D.f[dP0M] = &DDStart[dM0P * size_Mat]; - D.f[d0MM] = &DDStart[d0PP * size_Mat]; - D.f[d0PP] = &DDStart[d0MM * size_Mat]; - D.f[d0MP] = &DDStart[d0PM * size_Mat]; - D.f[d0PM] = &DDStart[d0MP * size_Mat]; - D.f[d000] = &DDStart[d000 * size_Mat]; - D.f[dMMM] = &DDStart[dPPP * size_Mat]; - D.f[dPPM] = &DDStart[dMMP * size_Mat]; - D.f[dMPM] = &DDStart[dPMP * size_Mat]; - D.f[dPMM] = &DDStart[dMPP * size_Mat]; - D.f[dMMP] = &DDStart[dPPM * size_Mat]; - D.f[dPPP] = &DDStart[dMMM * size_Mat]; - D.f[dMPP] = &DDStart[dPMM * size_Mat]; - D.f[dPMP] = &DDStart[dMPM * size_Mat]; - } + if ((BC != GEO_SOLID) && (BC != GEO_VOID)) + { + Distributions27 D; + if (EvenOrOdd == true) + { + D.f[dP00] = &DDStart[dP00 * size_Mat]; + D.f[dM00] = &DDStart[dM00 * size_Mat]; + D.f[d0P0] = &DDStart[d0P0 * size_Mat]; + D.f[d0M0] = &DDStart[d0M0 * size_Mat]; + D.f[d00P] = &DDStart[d00P * size_Mat]; + D.f[d00M] = &DDStart[d00M * size_Mat]; + D.f[dPP0] = &DDStart[dPP0 * size_Mat]; + D.f[dMM0] = &DDStart[dMM0 * size_Mat]; + D.f[dPM0] = &DDStart[dPM0 * size_Mat]; + D.f[dMP0] = &DDStart[dMP0 * size_Mat]; + D.f[dP0P] = &DDStart[dP0P * size_Mat]; + D.f[dM0M] = &DDStart[dM0M * size_Mat]; + D.f[dP0M] = &DDStart[dP0M * size_Mat]; + D.f[dM0P] = &DDStart[dM0P * size_Mat]; + D.f[d0PP] = &DDStart[d0PP * size_Mat]; + D.f[d0MM] = &DDStart[d0MM * size_Mat]; + D.f[d0PM] = &DDStart[d0PM * size_Mat]; + D.f[d0MP] = &DDStart[d0MP * size_Mat]; + D.f[d000] = &DDStart[d000 * size_Mat]; + D.f[dPPP] = &DDStart[dPPP * size_Mat]; + D.f[dMMP] = &DDStart[dMMP * size_Mat]; + D.f[dPMP] = &DDStart[dPMP * size_Mat]; + D.f[dMPP] = &DDStart[dMPP * size_Mat]; + D.f[dPPM] = &DDStart[dPPM * size_Mat]; + D.f[dMMM] = &DDStart[dMMM * size_Mat]; + D.f[dPMM] = &DDStart[dPMM * size_Mat]; + D.f[dMPM] = &DDStart[dMPM * size_Mat]; + } + else + { + D.f[dM00] = &DDStart[dP00 * size_Mat]; + D.f[dP00] = &DDStart[dM00 * size_Mat]; + D.f[d0M0] = &DDStart[d0P0 * size_Mat]; + D.f[d0P0] = &DDStart[d0M0 * size_Mat]; + D.f[d00M] = &DDStart[d00P * size_Mat]; + D.f[d00P] = &DDStart[d00M * size_Mat]; + D.f[dMM0] = &DDStart[dPP0 * size_Mat]; + D.f[dPP0] = &DDStart[dMM0 * size_Mat]; + D.f[dMP0] = &DDStart[dPM0 * size_Mat]; + D.f[dPM0] = &DDStart[dMP0 * size_Mat]; + D.f[dM0M] = &DDStart[dP0P * size_Mat]; + D.f[dP0P] = &DDStart[dM0M * size_Mat]; + D.f[dM0P] = &DDStart[dP0M * size_Mat]; + D.f[dP0M] = &DDStart[dM0P * size_Mat]; + D.f[d0MM] = &DDStart[d0PP * size_Mat]; + D.f[d0PP] = &DDStart[d0MM * size_Mat]; + D.f[d0MP] = &DDStart[d0PM * size_Mat]; + D.f[d0PM] = &DDStart[d0MP * size_Mat]; + D.f[d000] = &DDStart[d000 * size_Mat]; + D.f[dMMM] = &DDStart[dPPP * size_Mat]; + D.f[dPPM] = &DDStart[dMMP * size_Mat]; + D.f[dMPM] = &DDStart[dPMP * size_Mat]; + D.f[dPMM] = &DDStart[dMPP * size_Mat]; + D.f[dMMP] = &DDStart[dPPM * size_Mat]; + D.f[dPPP] = &DDStart[dMMM * size_Mat]; + D.f[dMPP] = &DDStart[dPMM * size_Mat]; + D.f[dPMP] = &DDStart[dMPM * size_Mat]; + } - //////////////////////////////////////////////////////////////////////////////// - //index - //unsigned int kzero= k; - //unsigned int ke = k; - unsigned int kw = neighborX[k]; - //unsigned int kn = k; - unsigned int ks = neighborY[k]; - //unsigned int kt = k; - unsigned int kb = neighborZ[k]; - unsigned int ksw = neighborY[kw]; - //unsigned int kne = k; - //unsigned int kse = ks; - //unsigned int knw = kw; - unsigned int kbw = neighborZ[kw]; - //unsigned int kte = k; - //unsigned int kbe = kb; - //unsigned int ktw = kw; - unsigned int kbs = neighborZ[ks]; - //unsigned int ktn = k; - //unsigned int kbn = kb; - //unsigned int kts = ks; - //unsigned int ktse = ks; - //unsigned int kbnw = kbw; - //unsigned int ktnw = kw; - //unsigned int kbse = kbs; - //unsigned int ktsw = ksw; - //unsigned int kbne = kb; - //unsigned int ktne = k; - unsigned int kbsw = neighborZ[ksw]; - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real mfcbb = (D.f[dP00])[k];//[ke ];// + c2over27 ;(D.f[dP00])[k ];//ke - real mfabb = (D.f[dM00])[kw];//[kw ];// + c2over27 ;(D.f[dM00])[kw ]; - real mfbcb = (D.f[d0P0])[k];//[kn ];// + c2over27 ;(D.f[d0P0])[k ];//kn - real mfbab = (D.f[d0M0])[ks];//[ks ];// + c2over27 ;(D.f[d0M0])[ks ]; - real mfbbc = (D.f[d00P])[k];//[kt ];// + c2over27 ;(D.f[d00P])[k ];//kt - real mfbba = (D.f[d00M])[kb];//[kb ];// + c2over27 ;(D.f[d00M])[kb ]; - real mfccb = (D.f[dPP0])[k];//[kne ];// + c1over54 ;(D.f[dPP0])[k ];//kne - real mfaab = (D.f[dMM0])[ksw];//[ksw ];// + c1over54 ;(D.f[dMM0])[ksw]; - real mfcab = (D.f[dPM0])[ks];//[kse ];// + c1over54 ;(D.f[dPM0])[ks ];//kse - real mfacb = (D.f[dMP0])[kw];//[knw ];// + c1over54 ;(D.f[dMP0])[kw ];//knw - real mfcbc = (D.f[dP0P])[k];//[kte ];// + c1over54 ;(D.f[dP0P])[k ];//kte - real mfaba = (D.f[dM0M])[kbw];//[kbw ];// + c1over54 ;(D.f[dM0M])[kbw]; - real mfcba = (D.f[dP0M])[kb];//[kbe ];// + c1over54 ;(D.f[dP0M])[kb ];//kbe - real mfabc = (D.f[dM0P])[kw];//[ktw ];// + c1over54 ;(D.f[dM0P])[kw ];//ktw - real mfbcc = (D.f[d0PP])[k];//[ktn ];// + c1over54 ;(D.f[d0PP])[k ];//ktn - real mfbaa = (D.f[d0MM])[kbs];//[kbs ];// + c1over54 ;(D.f[d0MM])[kbs]; - real mfbca = (D.f[d0PM])[kb];//[kbn ];// + c1over54 ;(D.f[d0PM])[kb ];//kbn - real mfbac = (D.f[d0MP])[ks];//[kts ];// + c1over54 ;(D.f[d0MP])[ks ];//kts - real mfbbb = (D.f[d000])[k];//[kzero];// + c8over27 ;(D.f[d000])[k ];//kzero - real mfccc = (D.f[dPPP])[k];//[ktne ];// + c1over216;(D.f[dPPP])[k ];//ktne - real mfaac = (D.f[dMMP])[ksw];//[ktsw ];// + c1over216;(D.f[dMMP])[ksw];//ktsw - real mfcac = (D.f[dPMP])[ks];//[ktse ];// + c1over216;(D.f[dPMP])[ks ];//ktse - real mfacc = (D.f[dMPP])[kw];//[ktnw ];// + c1over216;(D.f[dMPP])[kw ];//ktnw - real mfcca = (D.f[dPPM])[kb];//[kbne ];// + c1over216;(D.f[dPPM])[kb ];//kbne - real mfaaa = (D.f[dMMM])[kbsw];//[kbsw ];// + c1over216;(D.f[dMMM])[kbsw]; - real mfcaa = (D.f[dPMM])[kbs];//[kbse ];// + c1over216;(D.f[dPMM])[kbs];//kbse - real mfaca = (D.f[dMPM])[kbw];//[kbnw ];// + c1over216;(D.f[dMPM])[kbw];//kbnw - //////////////////////////////////////////////////////////////////////////////////// - //slow - //real oMdrho = one - ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + - // (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + - // ((mfabb+mfcbb) + (mfbab+mfbcb) + (mfbba+mfbbc)));//fehlt mfbbb - real vvx = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfcaa - mfacc) + (mfcca - mfaac))) + - (((mfcba - mfabc) + (mfcbc - mfaba)) + ((mfcab - mfacb) + (mfccb - mfaab))) + - (mfcbb - mfabb)); - real vvy = ((((mfccc - mfaaa) + (mfaca - mfcac)) + ((mfacc - mfcaa) + (mfcca - mfaac))) + - (((mfbca - mfbac) + (mfbcc - mfbaa)) + ((mfacb - mfcab) + (mfccb - mfaab))) + - (mfbcb - mfbab)); - real vvz = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfacc - mfcaa) + (mfaac - mfcca))) + - (((mfbac - mfbca) + (mfbcc - mfbaa)) + ((mfabc - mfcba) + (mfcbc - mfaba))) + - (mfbbc - mfbba)); - //////////////////////////////////////////////////////////////////////////////////// - //fast - real oMdrho = c1o1 - (mfccc + mfaaa + mfaca + mfcac + mfacc + mfcaa + mfaac + mfcca + - mfbac + mfbca + mfbaa + mfbcc + mfabc + mfcba + mfaba + mfcbc + mfacb + mfcab + mfaab + mfccb + - mfabb + mfcbb + mfbab + mfbcb + mfbba + mfbbc + mfbbb);//fehlt mfbbb nicht mehr - //////////////////////////////////////////////////////////////////////////////////// - real m0, m1, m2; - real vx2; - real vy2; - real vz2; - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - //////////////////////////////////////////////////////////////////////////////////// - //real wadjust; - //real qudricLimit = 0.01f; - //////////////////////////////////////////////////////////////////////////////////// - //Hin - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m2 = mfaaa + mfaac; - m1 = mfaac - mfaaa; - m0 = m2 + mfaab; - mfaaa = m0; - m0 += c1o36 * oMdrho; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfabc; - m1 = mfabc - mfaba; - m0 = m2 + mfabb; - mfaba = m0; - m0 += c1o9 * oMdrho; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfacc; - m1 = mfacc - mfaca; - m0 = m2 + mfacb; - mfaca = m0; - m0 += c1o36 * oMdrho; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbac; - m1 = mfbac - mfbaa; - m0 = m2 + mfbab; - mfbaa = m0; - m0 += c1o9 * oMdrho; - mfbab = m1; - mfbac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbba + mfbbc; - m1 = mfbbc - mfbba; - m0 = m2 + mfbbb; - mfbba = m0; - m0 += c4o9 * oMdrho; - mfbbb = m1; - mfbbc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbca + mfbcc; - m1 = mfbcc - mfbca; - m0 = m2 + mfbcb; - mfbca = m0; - m0 += c1o9 * oMdrho; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcac; - m1 = mfcac - mfcaa; - m0 = m2 + mfcab; - mfcaa = m0; - m0 += c1o36 * oMdrho; - mfcab = m1; - mfcac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcba + mfcbc; - m1 = mfcbc - mfcba; - m0 = m2 + mfcbb; - mfcba = m0; - m0 += c1o9 * oMdrho; - mfcbb = m1; - mfcbc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcca + mfccc; - m1 = mfccc - mfcca; - m0 = m2 + mfccb; - mfcca = m0; - m0 += c1o36 * oMdrho; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m2 = mfaaa + mfaca; - m1 = mfaca - mfaaa; - m0 = m2 + mfaba; - mfaaa = m0; - m0 += c1o6 * oMdrho; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfacb; - m1 = mfacb - mfaab; - m0 = m2 + mfabb; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfacc; - m1 = mfacc - mfaac; - m0 = m2 + mfabc; - mfaac = m0; - m0 += c1o18 * oMdrho; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbca; - m1 = mfbca - mfbaa; - m0 = m2 + mfbba; - mfbaa = m0; - m0 += c2o3 * oMdrho; - mfbba = m1; - mfbca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbab + mfbcb; - m1 = mfbcb - mfbab; - m0 = m2 + mfbbb; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbac + mfbcc; - m1 = mfbcc - mfbac; - m0 = m2 + mfbbc; - mfbac = m0; - m0 += c2o9 * oMdrho; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcca; - m1 = mfcca - mfcaa; - m0 = m2 + mfcba; - mfcaa = m0; - m0 += c1o6 * oMdrho; - mfcba = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcab + mfccb; - m1 = mfccb - mfcab; - m0 = m2 + mfcbb; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcac + mfccc; - m1 = mfccc - mfcac; - m0 = m2 + mfcbc; - mfcac = m0; - m0 += c1o18 * oMdrho; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m2 = mfaaa + mfcaa; - m1 = mfcaa - mfaaa; - m0 = m2 + mfbaa; - mfaaa = m0; - m0 += c1o1* oMdrho; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfcba; - m1 = mfcba - mfaba; - m0 = m2 + mfbba; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfcca; - m1 = mfcca - mfaca; - m0 = m2 + mfbca; - mfaca = m0; - m0 += c1o3 * oMdrho; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfcab; - m1 = mfcab - mfaab; - m0 = m2 + mfbab; - mfaab = m0; - mfbab = m1; - mfcab = m2; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabb + mfcbb; - m1 = mfcbb - mfabb; - m0 = m2 + mfbbb; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacb + mfccb; - m1 = mfccb - mfacb; - m0 = m2 + mfbcb; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfcac; - m1 = mfcac - mfaac; - m0 = m2 + mfbac; - mfaac = m0; - m0 += c1o3 * oMdrho; - mfbac = m1; - mfcac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabc + mfcbc; - m1 = mfcbc - mfabc; - m0 = m2 + mfbbc; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacc + mfccc; - m1 = mfccc - mfacc; - m0 = m2 + mfbcc; - mfacc = m0; - m0 += c1o9 * oMdrho; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //index + //unsigned int kzero= k; + //unsigned int ke = k; + unsigned int kw = neighborX[k]; + //unsigned int kn = k; + unsigned int ks = neighborY[k]; + //unsigned int kt = k; + unsigned int kb = neighborZ[k]; + unsigned int ksw = neighborY[kw]; + //unsigned int kne = k; + //unsigned int kse = ks; + //unsigned int knw = kw; + unsigned int kbw = neighborZ[kw]; + //unsigned int kte = k; + //unsigned int kbe = kb; + //unsigned int ktw = kw; + unsigned int kbs = neighborZ[ks]; + //unsigned int ktn = k; + //unsigned int kbn = kb; + //unsigned int kts = ks; + //unsigned int ktse = ks; + //unsigned int kbnw = kbw; + //unsigned int ktnw = kw; + //unsigned int kbse = kbs; + //unsigned int ktsw = ksw; + //unsigned int kbne = kb; + //unsigned int ktne = k; + unsigned int kbsw = neighborZ[ksw]; + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + real mfcbb = (D.f[dP00])[k];//[ke ];// + c2over27 ;(D.f[dP00])[k ];//ke + real mfabb = (D.f[dM00])[kw];//[kw ];// + c2over27 ;(D.f[dM00])[kw ]; + real mfbcb = (D.f[d0P0])[k];//[kn ];// + c2over27 ;(D.f[d0P0])[k ];//kn + real mfbab = (D.f[d0M0])[ks];//[ks ];// + c2over27 ;(D.f[d0M0])[ks ]; + real mfbbc = (D.f[d00P])[k];//[kt ];// + c2over27 ;(D.f[d00P])[k ];//kt + real mfbba = (D.f[d00M])[kb];//[kb ];// + c2over27 ;(D.f[d00M])[kb ]; + real mfccb = (D.f[dPP0])[k];//[kne ];// + c1over54 ;(D.f[dPP0])[k ];//kne + real mfaab = (D.f[dMM0])[ksw];//[ksw ];// + c1over54 ;(D.f[dMM0])[ksw]; + real mfcab = (D.f[dPM0])[ks];//[kse ];// + c1over54 ;(D.f[dPM0])[ks ];//kse + real mfacb = (D.f[dMP0])[kw];//[knw ];// + c1over54 ;(D.f[dMP0])[kw ];//knw + real mfcbc = (D.f[dP0P])[k];//[kte ];// + c1over54 ;(D.f[dP0P])[k ];//kte + real mfaba = (D.f[dM0M])[kbw];//[kbw ];// + c1over54 ;(D.f[dM0M])[kbw]; + real mfcba = (D.f[dP0M])[kb];//[kbe ];// + c1over54 ;(D.f[dP0M])[kb ];//kbe + real mfabc = (D.f[dM0P])[kw];//[ktw ];// + c1over54 ;(D.f[dM0P])[kw ];//ktw + real mfbcc = (D.f[d0PP])[k];//[ktn ];// + c1over54 ;(D.f[d0PP])[k ];//ktn + real mfbaa = (D.f[d0MM])[kbs];//[kbs ];// + c1over54 ;(D.f[d0MM])[kbs]; + real mfbca = (D.f[d0PM])[kb];//[kbn ];// + c1over54 ;(D.f[d0PM])[kb ];//kbn + real mfbac = (D.f[d0MP])[ks];//[kts ];// + c1over54 ;(D.f[d0MP])[ks ];//kts + real mfbbb = (D.f[d000])[k];//[kzero];// + c8over27 ;(D.f[d000])[k ];//kzero + real mfccc = (D.f[dPPP])[k];//[ktne ];// + c1over216;(D.f[dPPP])[k ];//ktne + real mfaac = (D.f[dMMP])[ksw];//[ktsw ];// + c1over216;(D.f[dMMP])[ksw];//ktsw + real mfcac = (D.f[dPMP])[ks];//[ktse ];// + c1over216;(D.f[dPMP])[ks ];//ktse + real mfacc = (D.f[dMPP])[kw];//[ktnw ];// + c1over216;(D.f[dMPP])[kw ];//ktnw + real mfcca = (D.f[dPPM])[kb];//[kbne ];// + c1over216;(D.f[dPPM])[kb ];//kbne + real mfaaa = (D.f[dMMM])[kbsw];//[kbsw ];// + c1over216;(D.f[dMMM])[kbsw]; + real mfcaa = (D.f[dPMM])[kbs];//[kbse ];// + c1over216;(D.f[dPMM])[kbs];//kbse + real mfaca = (D.f[dMPM])[kbw];//[kbnw ];// + c1over216;(D.f[dMPM])[kbw];//kbnw + //////////////////////////////////////////////////////////////////////////////////// + //slow + //real oMdrho = one - ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + + // (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + + // ((mfabb+mfcbb) + (mfbab+mfbcb) + (mfbba+mfbbc)));//fehlt mfbbb + real vvx = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfcaa - mfacc) + (mfcca - mfaac))) + + (((mfcba - mfabc) + (mfcbc - mfaba)) + ((mfcab - mfacb) + (mfccb - mfaab))) + + (mfcbb - mfabb)); + real vvy = ((((mfccc - mfaaa) + (mfaca - mfcac)) + ((mfacc - mfcaa) + (mfcca - mfaac))) + + (((mfbca - mfbac) + (mfbcc - mfbaa)) + ((mfacb - mfcab) + (mfccb - mfaab))) + + (mfbcb - mfbab)); + real vvz = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfacc - mfcaa) + (mfaac - mfcca))) + + (((mfbac - mfbca) + (mfbcc - mfbaa)) + ((mfabc - mfcba) + (mfcbc - mfaba))) + + (mfbbc - mfbba)); + //////////////////////////////////////////////////////////////////////////////////// + //fast + real oMdrho = c1o1 - (mfccc + mfaaa + mfaca + mfcac + mfacc + mfcaa + mfaac + mfcca + + mfbac + mfbca + mfbaa + mfbcc + mfabc + mfcba + mfaba + mfcbc + mfacb + mfcab + mfaab + mfccb + + mfabb + mfcbb + mfbab + mfbcb + mfbba + mfbbc + mfbbb);//fehlt mfbbb nicht mehr + //////////////////////////////////////////////////////////////////////////////////// + real m0, m1, m2; + real vx2; + real vy2; + real vz2; + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + //////////////////////////////////////////////////////////////////////////////////// + //real wadjust; + //real qudricLimit = 0.01f; + //////////////////////////////////////////////////////////////////////////////////// + //Hin + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m2 = mfaaa + mfaac; + m1 = mfaac - mfaaa; + m0 = m2 + mfaab; + mfaaa = m0; + m0 += c1o36 * oMdrho; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfabc; + m1 = mfabc - mfaba; + m0 = m2 + mfabb; + mfaba = m0; + m0 += c1o9 * oMdrho; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfacc; + m1 = mfacc - mfaca; + m0 = m2 + mfacb; + mfaca = m0; + m0 += c1o36 * oMdrho; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbac; + m1 = mfbac - mfbaa; + m0 = m2 + mfbab; + mfbaa = m0; + m0 += c1o9 * oMdrho; + mfbab = m1; + mfbac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbba + mfbbc; + m1 = mfbbc - mfbba; + m0 = m2 + mfbbb; + mfbba = m0; + m0 += c4o9 * oMdrho; + mfbbb = m1; + mfbbc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbca + mfbcc; + m1 = mfbcc - mfbca; + m0 = m2 + mfbcb; + mfbca = m0; + m0 += c1o9 * oMdrho; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcac; + m1 = mfcac - mfcaa; + m0 = m2 + mfcab; + mfcaa = m0; + m0 += c1o36 * oMdrho; + mfcab = m1; + mfcac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcba + mfcbc; + m1 = mfcbc - mfcba; + m0 = m2 + mfcbb; + mfcba = m0; + m0 += c1o9 * oMdrho; + mfcbb = m1; + mfcbc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcca + mfccc; + m1 = mfccc - mfcca; + m0 = m2 + mfccb; + mfcca = m0; + m0 += c1o36 * oMdrho; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m2 = mfaaa + mfaca; + m1 = mfaca - mfaaa; + m0 = m2 + mfaba; + mfaaa = m0; + m0 += c1o6 * oMdrho; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfacb; + m1 = mfacb - mfaab; + m0 = m2 + mfabb; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfacc; + m1 = mfacc - mfaac; + m0 = m2 + mfabc; + mfaac = m0; + m0 += c1o18 * oMdrho; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbca; + m1 = mfbca - mfbaa; + m0 = m2 + mfbba; + mfbaa = m0; + m0 += c2o3 * oMdrho; + mfbba = m1; + mfbca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbab + mfbcb; + m1 = mfbcb - mfbab; + m0 = m2 + mfbbb; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbac + mfbcc; + m1 = mfbcc - mfbac; + m0 = m2 + mfbbc; + mfbac = m0; + m0 += c2o9 * oMdrho; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcca; + m1 = mfcca - mfcaa; + m0 = m2 + mfcba; + mfcaa = m0; + m0 += c1o6 * oMdrho; + mfcba = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcab + mfccb; + m1 = mfccb - mfcab; + m0 = m2 + mfcbb; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcac + mfccc; + m1 = mfccc - mfcac; + m0 = m2 + mfcbc; + mfcac = m0; + m0 += c1o18 * oMdrho; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m2 = mfaaa + mfcaa; + m1 = mfcaa - mfaaa; + m0 = m2 + mfbaa; + mfaaa = m0; + m0 += c1o1* oMdrho; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfcba; + m1 = mfcba - mfaba; + m0 = m2 + mfbba; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfcca; + m1 = mfcca - mfaca; + m0 = m2 + mfbca; + mfaca = m0; + m0 += c1o3 * oMdrho; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfcab; + m1 = mfcab - mfaab; + m0 = m2 + mfbab; + mfaab = m0; + mfbab = m1; + mfcab = m2; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabb + mfcbb; + m1 = mfcbb - mfabb; + m0 = m2 + mfbbb; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacb + mfccb; + m1 = mfccb - mfacb; + m0 = m2 + mfbcb; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfcac; + m1 = mfcac - mfaac; + m0 = m2 + mfbac; + mfaac = m0; + m0 += c1o3 * oMdrho; + mfbac = m1; + mfcac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabc + mfcbc; + m1 = mfcbc - mfabc; + m0 = m2 + mfbbc; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacc + mfccc; + m1 = mfccc - mfacc; + m0 = m2 + mfbcc; + mfacc = m0; + m0 += c1o9 * oMdrho; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // BGK - //////////////////////////////////////////////////////////////////////////////////// - real OxxPyyPzz = omega; - real OxyyPxzz = omega;//two-omega;//eight*(two-omega)/(eight -omega);//one;//omega;//two-omega;// - real OxyyMxzz = omega;//omega;//one;//eight*(two-omega)/(eight -omega);//one;//two-omega;//one;// - real O4 = omega; - real O5 = omega; - real O6 = omega; + //////////////////////////////////////////////////////////////////////////////////// + // BGK + //////////////////////////////////////////////////////////////////////////////////// + real OxxPyyPzz = omega; + real OxyyPxzz = omega;//two-omega;//eight*(two-omega)/(eight -omega);//one;//omega;//two-omega;// + real OxyyMxzz = omega;//omega;//one;//eight*(two-omega)/(eight -omega);//one;//two-omega;//one;// + real O4 = omega; + real O5 = omega; + real O6 = omega; - real mxxPyyPzz = mfcaa + mfaca + mfaac; - real mxxMyy = mfcaa - mfaca; - real mxxMzz = mfcaa - mfaac; + real mxxPyyPzz = mfcaa + mfaca + mfaac; + real mxxMyy = mfcaa - mfaca; + real mxxMzz = mfcaa - mfaac; - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //incl. correction - { - real dxux = c1o2 * (-omega) *(mxxMyy + mxxMzz - c2o1*vx2 + vy2 + vz2) + c1o2 * OxxPyyPzz * (mfaaa + vx2 + vy2 + vz2 - mxxPyyPzz); - real dyuy = dxux + omega * c3o2 * (mxxMyy - vx2 + vy2); - real dzuz = dxux + omega * c3o2 * (mxxMzz - vx2 + vz2); + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //incl. correction + { + real dxux = c1o2 * (-omega) *(mxxMyy + mxxMzz - c2o1*vx2 + vy2 + vz2) + c1o2 * OxxPyyPzz * (mfaaa + vx2 + vy2 + vz2 - mxxPyyPzz); + real dyuy = dxux + omega * c3o2 * (mxxMyy - vx2 + vy2); + real dzuz = dxux + omega * c3o2 * (mxxMzz - vx2 + vz2); - //relax - mxxPyyPzz += OxxPyyPzz*(mfaaa + vx2 + vy2 + vz2 - mxxPyyPzz) - c3o1 * (c1o1 - c1o2 * OxxPyyPzz) * (vx2 * dxux + vy2 * dyuy + vz2 * dzuz); - mxxMyy += omega * (vx2 - vy2 - mxxMyy) - c3o1 * (c1o1 + c1o2 * (-omega)) * (vx2 * dxux - vy2 * dyuy); - mxxMzz += omega * (vx2 - vz2 - mxxMzz) - c3o1 * (c1o1 + c1o2 * (-omega)) * (vx2 * dxux - vz2 * dzuz); - } - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //relax + mxxPyyPzz += OxxPyyPzz*(mfaaa + vx2 + vy2 + vz2 - mxxPyyPzz) - c3o1 * (c1o1 - c1o2 * OxxPyyPzz) * (vx2 * dxux + vy2 * dyuy + vz2 * dzuz); + mxxMyy += omega * (vx2 - vy2 - mxxMyy) - c3o1 * (c1o1 + c1o2 * (-omega)) * (vx2 * dxux - vy2 * dyuy); + mxxMzz += omega * (vx2 - vz2 - mxxMzz) - c3o1 * (c1o1 + c1o2 * (-omega)) * (vx2 * dxux - vz2 * dzuz); + } + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // //no correction - // mxxPyyPzz += OxxPyyPzz*(mfaaa+vx2+vy2+vz2-mxxPyyPzz); - // mxxMyy += -(-omega) * (vx2-vy2-mxxMyy); - // mxxMzz += -(-omega) * (vx2-vz2-mxxMzz); - // /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // //no correction + // mxxPyyPzz += OxxPyyPzz*(mfaaa+vx2+vy2+vz2-mxxPyyPzz); + // mxxMyy += -(-omega) * (vx2-vy2-mxxMyy); + // mxxMzz += -(-omega) * (vx2-vz2-mxxMzz); + // /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - mfabb += omega * (vvy*vvz - mfabb); - mfbab += omega * (vvx*vvz - mfbab); - mfbba += omega * (vvx*vvy - mfbba); + mfabb += omega * (vvy*vvz - mfabb); + mfbab += omega * (vvx*vvz - mfbab); + mfbba += omega * (vvx*vvy - mfbba); - // linear combinations back - mfcaa = c1o3 * (mxxMyy + mxxMzz + mxxPyyPzz); - mfaca = c1o3 * (-c2o1* mxxMyy + mxxMzz + mxxPyyPzz); - mfaac = c1o3 * (mxxMyy - c2o1* mxxMzz + mxxPyyPzz); + // linear combinations back + mfcaa = c1o3 * (mxxMyy + mxxMzz + mxxPyyPzz); + mfaca = c1o3 * (-c2o1* mxxMyy + mxxMzz + mxxPyyPzz); + mfaac = c1o3 * (mxxMyy - c2o1* mxxMzz + mxxPyyPzz); - //3. - // linear combinations + //3. + // linear combinations - real mxxyPyzz = mfcba + mfabc; - real mxxyMyzz = mfcba - mfabc; + real mxxyPyzz = mfcba + mfabc; + real mxxyMyzz = mfcba - mfabc; - real mxxzPyyz = mfcab + mfacb; - real mxxzMyyz = mfcab - mfacb; + real mxxzPyyz = mfcab + mfacb; + real mxxzMyyz = mfcab - mfacb; - real mxyyPxzz = mfbca + mfbac; - real mxyyMxzz = mfbca - mfbac; + real mxyyPxzz = mfbca + mfbac; + real mxyyMxzz = mfbca - mfbac; - mxxyMyzz += OxyyMxzz*((vx2 - vz2)*vvy - mxxyMyzz); - mxxzMyyz += OxyyMxzz*((vx2 - vy2)*vvz - mxxzMyyz); - mxyyMxzz += OxyyMxzz*((vy2 - vz2)*vvx - mxyyMxzz); + mxxyMyzz += OxyyMxzz*((vx2 - vz2)*vvy - mxxyMyzz); + mxxzMyyz += OxyyMxzz*((vx2 - vy2)*vvz - mxxzMyyz); + mxyyMxzz += OxyyMxzz*((vy2 - vz2)*vvx - mxyyMxzz); - mxxyPyzz += OxyyPxzz*((c2o3 + vx2 + vz2)*vvy - mxxyPyzz); - mxxzPyyz += OxyyPxzz*((c2o3 + vx2 + vy2)*vvz - mxxzPyyz); - mxyyPxzz += OxyyPxzz*((c2o3 + vy2 + vz2)*vvx - mxyyPxzz); + mxxyPyzz += OxyyPxzz*((c2o3 + vx2 + vz2)*vvy - mxxyPyzz); + mxxzPyyz += OxyyPxzz*((c2o3 + vx2 + vy2)*vvz - mxxzPyyz); + mxyyPxzz += OxyyPxzz*((c2o3 + vy2 + vz2)*vvx - mxyyPxzz); - mfbbb += OxyyMxzz * (vvx*vvy*vvz - mfbbb); + mfbbb += OxyyMxzz * (vvx*vvy*vvz - mfbbb); - mfcba = (mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = (mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = (mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + mfcba = (mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = (mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = (mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - //4. - mfacc += O4*((c1o3 + vy2)*(c1o3 + vz2) + c1o9*(mfaaa - c1o1) - mfacc); - mfcac += O4*((c1o3 + vx2)*(c1o3 + vz2) + c1o9*(mfaaa - c1o1) - mfcac); - mfcca += O4*((c1o3 + vx2)*(c1o3 + vy2) + c1o9*(mfaaa - c1o1) - mfcca); + //4. + mfacc += O4*((c1o3 + vy2)*(c1o3 + vz2) + c1o9*(mfaaa - c1o1) - mfacc); + mfcac += O4*((c1o3 + vx2)*(c1o3 + vz2) + c1o9*(mfaaa - c1o1) - mfcac); + mfcca += O4*((c1o3 + vx2)*(c1o3 + vy2) + c1o9*(mfaaa - c1o1) - mfcca); - mfcbb += O4*((c1o3 + vx2)*vvy*vvz - mfcbb); - mfbcb += O4*((c1o3 + vy2)*vvx*vvz - mfbcb); - mfbbc += O4*((c1o3 + vz2)*vvx*vvy - mfbbc); + mfcbb += O4*((c1o3 + vx2)*vvy*vvz - mfcbb); + mfbcb += O4*((c1o3 + vy2)*vvx*vvz - mfbcb); + mfbbc += O4*((c1o3 + vz2)*vvx*vvy - mfbbc); - //5. - mfbcc += O5*((c1o3 + vy2)*(c1o3 + vz2)*vvx - mfbcc); - mfcbc += O5*((c1o3 + vx2)*(c1o3 + vz2)*vvy - mfcbc); - mfccb += O5*((c1o3 + vx2)*(c1o3 + vy2)*vvz - mfccb); + //5. + mfbcc += O5*((c1o3 + vy2)*(c1o3 + vz2)*vvx - mfbcc); + mfcbc += O5*((c1o3 + vx2)*(c1o3 + vz2)*vvy - mfcbc); + mfccb += O5*((c1o3 + vx2)*(c1o3 + vy2)*vvz - mfccb); - //6. - mfccc += O6*((c1o3 + vx2)*(c1o3 + vy2)*(c1o3 + vz2) + c1o27*(mfaaa - c1o1) - mfccc); + //6. + mfccc += O6*((c1o3 + vx2)*(c1o3 + vy2)*(c1o3 + vz2) + c1o27*(mfaaa - c1o1) - mfccc); - //bad fix - vvx = c0o1; - vvy = c0o1; - vvz = c0o1; - vx2 = c0o1; - vy2 = c0o1; - vz2 = c0o1; - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1* oMdrho) * (vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1* mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1* oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1* oMdrho) * (vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * (vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1* mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * (vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * (vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1* mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * (vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * (vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1* mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * (vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * (vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1* mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * (vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * (vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1* mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * (vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * (vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1* mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * (vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * (vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1* mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * (vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * (vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1* mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * (vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * (vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1* mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * (vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * (vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1* mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * (vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * (vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1* mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * (vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * (vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1* mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * (vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * (vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1* mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * (vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * (vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1* mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * (vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * (vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1* mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * (vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * (vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1* mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * (vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * (vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1* mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * (vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * (vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1* mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * (vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * (vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1* mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * (vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * (vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1* mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * (vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * (vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1* mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * (vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * (vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1* mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * (vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * (vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1* mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * (vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * (vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1* mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * (vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * (vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1* mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * (vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * (vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1* mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * (vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// + //bad fix + vvx = c0o1; + vvy = c0o1; + vvz = c0o1; + vx2 = c0o1; + vy2 = c0o1; + vz2 = c0o1; + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1* oMdrho) * (vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1* mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1* oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1* oMdrho) * (vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * (vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1* mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * (vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * (vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1* mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * (vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * (vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1* mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * (vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * (vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1* mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * (vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * (vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1* mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * (vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * (vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1* mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * (vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * (vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1* mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * (vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * (vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1* mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * (vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * (vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1* mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * (vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * (vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1* mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * (vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * (vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1* mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * (vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * (vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1* mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * (vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * (vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1* mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * (vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * (vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1* mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * (vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * (vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1* mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * (vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * (vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1* mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * (vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * (vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1* mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * (vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * (vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1* mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * (vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * (vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1* mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * (vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * (vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1* mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * (vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * (vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1* mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * (vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * (vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1* mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * (vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * (vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1* mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * (vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * (vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1* mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * (vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * (vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1* mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * (vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * (vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1* mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * (vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - (D.f[dP00])[k] = mfabb;//(D.f[ dP00 ])[ke ] = mfabb;// - c2over27 ; (D.f[ dP00 ])[k ] - (D.f[dM00])[kw] = mfcbb;//(D.f[ dM00 ])[kw ] = mfcbb;// - c2over27 ; (D.f[ dM00 ])[kw ] - (D.f[d0P0])[k] = mfbab;//(D.f[ d0P0 ])[kn ] = mfbab;// - c2over27 ; (D.f[ d0P0 ])[k ] - (D.f[d0M0])[ks] = mfbcb;//(D.f[ d0M0 ])[ks ] = mfbcb;// - c2over27 ; (D.f[ d0M0 ])[ks ] - (D.f[d00P])[k] = mfbba;//(D.f[ d00P ])[kt ] = mfbba;// - c2over27 ; (D.f[ d00P ])[k ] - (D.f[d00M])[kb] = mfbbc;//(D.f[ d00M ])[kb ] = mfbbc;// - c2over27 ; (D.f[ d00M ])[kb ] - (D.f[dPP0])[k] = mfaab;//(D.f[ dPP0 ])[kne ] = mfaab;// - c1over54 ; (D.f[ dPP0 ])[k ] - (D.f[dMM0])[ksw] = mfccb;//(D.f[ dMM0 ])[ksw ] = mfccb;// - c1over54 ; (D.f[ dMM0 ])[ksw ] - (D.f[dPM0])[ks] = mfacb;//(D.f[ dPM0 ])[kse ] = mfacb;// - c1over54 ; (D.f[ dPM0 ])[ks ] - (D.f[dMP0])[kw] = mfcab;//(D.f[ dMP0 ])[knw ] = mfcab;// - c1over54 ; (D.f[ dMP0 ])[kw ] - (D.f[dP0P])[k] = mfaba;//(D.f[ dP0P ])[kte ] = mfaba;// - c1over54 ; (D.f[ dP0P ])[k ] - (D.f[dM0M])[kbw] = mfcbc;//(D.f[ dM0M ])[kbw ] = mfcbc;// - c1over54 ; (D.f[ dM0M ])[kbw ] - (D.f[dP0M])[kb] = mfabc;//(D.f[ dP0M ])[kbe ] = mfabc;// - c1over54 ; (D.f[ dP0M ])[kb ] - (D.f[dM0P])[kw] = mfcba;//(D.f[ dM0P ])[ktw ] = mfcba;// - c1over54 ; (D.f[ dM0P ])[kw ] - (D.f[d0PP])[k] = mfbaa;//(D.f[ d0PP ])[ktn ] = mfbaa;// - c1over54 ; (D.f[ d0PP ])[k ] - (D.f[d0MM])[kbs] = mfbcc;//(D.f[ d0MM ])[kbs ] = mfbcc;// - c1over54 ; (D.f[ d0MM ])[kbs ] - (D.f[d0PM])[kb] = mfbac;//(D.f[ d0PM ])[kbn ] = mfbac;// - c1over54 ; (D.f[ d0PM ])[kb ] - (D.f[d0MP])[ks] = mfbca;//(D.f[ d0MP ])[kts ] = mfbca;// - c1over54 ; (D.f[ d0MP ])[ks ] - (D.f[d000])[k] = mfbbb;//(D.f[ d000])[kzero] = mfbbb;// - c8over27 ; (D.f[ d000])[k ] - (D.f[dPPP])[k] = mfaaa;//(D.f[ dPPP ])[ktne ] = mfaaa;// - c1over216; (D.f[ dPPP ])[k ] - (D.f[dPMP])[ks] = mfaca;//(D.f[ dPMP ])[ktse ] = mfaca;// - c1over216; (D.f[ dPMP ])[ks ] - (D.f[dPPM])[kb] = mfaac;//(D.f[ dPPM ])[kbne ] = mfaac;// - c1over216; (D.f[ dPPM ])[kb ] - (D.f[dPMM])[kbs] = mfacc;//(D.f[ dPMM ])[kbse ] = mfacc;// - c1over216; (D.f[ dPMM ])[kbs ] - (D.f[dMPP])[kw] = mfcaa;//(D.f[ dMPP ])[ktnw ] = mfcaa;// - c1over216; (D.f[ dMPP ])[kw ] - (D.f[dMMP])[ksw] = mfcca;//(D.f[ dMMP ])[ktsw ] = mfcca;// - c1over216; (D.f[ dMMP ])[ksw ] - (D.f[dMPM])[kbw] = mfcac;//(D.f[ dMPM ])[kbnw ] = mfcac;// - c1over216; (D.f[ dMPM ])[kbw ] - (D.f[dMMM])[kbsw] = mfccc;//(D.f[ dMMM ])[kbsw ] = mfccc;// - c1over216; (D.f[ dMMM ])[kbsw] - //////////////////////////////////////////////////////////////////////////////////// - } - } + //////////////////////////////////////////////////////////////////////////////////// + (D.f[dP00])[k] = mfabb;//(D.f[ dP00 ])[ke ] = mfabb;// - c2over27 ; (D.f[ dP00 ])[k ] + (D.f[dM00])[kw] = mfcbb;//(D.f[ dM00 ])[kw ] = mfcbb;// - c2over27 ; (D.f[ dM00 ])[kw ] + (D.f[d0P0])[k] = mfbab;//(D.f[ d0P0 ])[kn ] = mfbab;// - c2over27 ; (D.f[ d0P0 ])[k ] + (D.f[d0M0])[ks] = mfbcb;//(D.f[ d0M0 ])[ks ] = mfbcb;// - c2over27 ; (D.f[ d0M0 ])[ks ] + (D.f[d00P])[k] = mfbba;//(D.f[ d00P ])[kt ] = mfbba;// - c2over27 ; (D.f[ d00P ])[k ] + (D.f[d00M])[kb] = mfbbc;//(D.f[ d00M ])[kb ] = mfbbc;// - c2over27 ; (D.f[ d00M ])[kb ] + (D.f[dPP0])[k] = mfaab;//(D.f[ dPP0 ])[kne ] = mfaab;// - c1over54 ; (D.f[ dPP0 ])[k ] + (D.f[dMM0])[ksw] = mfccb;//(D.f[ dMM0 ])[ksw ] = mfccb;// - c1over54 ; (D.f[ dMM0 ])[ksw ] + (D.f[dPM0])[ks] = mfacb;//(D.f[ dPM0 ])[kse ] = mfacb;// - c1over54 ; (D.f[ dPM0 ])[ks ] + (D.f[dMP0])[kw] = mfcab;//(D.f[ dMP0 ])[knw ] = mfcab;// - c1over54 ; (D.f[ dMP0 ])[kw ] + (D.f[dP0P])[k] = mfaba;//(D.f[ dP0P ])[kte ] = mfaba;// - c1over54 ; (D.f[ dP0P ])[k ] + (D.f[dM0M])[kbw] = mfcbc;//(D.f[ dM0M ])[kbw ] = mfcbc;// - c1over54 ; (D.f[ dM0M ])[kbw ] + (D.f[dP0M])[kb] = mfabc;//(D.f[ dP0M ])[kbe ] = mfabc;// - c1over54 ; (D.f[ dP0M ])[kb ] + (D.f[dM0P])[kw] = mfcba;//(D.f[ dM0P ])[ktw ] = mfcba;// - c1over54 ; (D.f[ dM0P ])[kw ] + (D.f[d0PP])[k] = mfbaa;//(D.f[ d0PP ])[ktn ] = mfbaa;// - c1over54 ; (D.f[ d0PP ])[k ] + (D.f[d0MM])[kbs] = mfbcc;//(D.f[ d0MM ])[kbs ] = mfbcc;// - c1over54 ; (D.f[ d0MM ])[kbs ] + (D.f[d0PM])[kb] = mfbac;//(D.f[ d0PM ])[kbn ] = mfbac;// - c1over54 ; (D.f[ d0PM ])[kb ] + (D.f[d0MP])[ks] = mfbca;//(D.f[ d0MP ])[kts ] = mfbca;// - c1over54 ; (D.f[ d0MP ])[ks ] + (D.f[d000])[k] = mfbbb;//(D.f[ d000])[kzero] = mfbbb;// - c8over27 ; (D.f[ d000])[k ] + (D.f[dPPP])[k] = mfaaa;//(D.f[ dPPP ])[ktne ] = mfaaa;// - c1over216; (D.f[ dPPP ])[k ] + (D.f[dPMP])[ks] = mfaca;//(D.f[ dPMP ])[ktse ] = mfaca;// - c1over216; (D.f[ dPMP ])[ks ] + (D.f[dPPM])[kb] = mfaac;//(D.f[ dPPM ])[kbne ] = mfaac;// - c1over216; (D.f[ dPPM ])[kb ] + (D.f[dPMM])[kbs] = mfacc;//(D.f[ dPMM ])[kbse ] = mfacc;// - c1over216; (D.f[ dPMM ])[kbs ] + (D.f[dMPP])[kw] = mfcaa;//(D.f[ dMPP ])[ktnw ] = mfcaa;// - c1over216; (D.f[ dMPP ])[kw ] + (D.f[dMMP])[ksw] = mfcca;//(D.f[ dMMP ])[ktsw ] = mfcca;// - c1over216; (D.f[ dMMP ])[ksw ] + (D.f[dMPM])[kbw] = mfcac;//(D.f[ dMPM ])[kbnw ] = mfcac;// - c1over216; (D.f[ dMPM ])[kbw ] + (D.f[dMMM])[kbsw] = mfccc;//(D.f[ dMMM ])[kbsw ] = mfccc;// - c1over216; (D.f[ dMMM ])[kbsw] + //////////////////////////////////////////////////////////////////////////////////// + } + } } \ No newline at end of file diff --git a/src/gpu/core/Kernel/Incompressible/NavierStokes/B15/B15IncompressibleNavierStokesBGKplus_Device.cuh b/src/gpu/core/Kernel/Incompressible/NavierStokes/B15/B15IncompressibleNavierStokesBGKplus_Device.cuh index 1c812f936541deaba06060fda0367dc60f231e63..a857a43bab38c7bdf03a50d8e06d1b404b41c0de 100644 --- a/src/gpu/core/Kernel/Incompressible/NavierStokes/B15/B15IncompressibleNavierStokesBGKplus_Device.cuh +++ b/src/gpu/core/Kernel/Incompressible/NavierStokes/B15/B15IncompressibleNavierStokesBGKplus_Device.cuh @@ -5,13 +5,13 @@ #include <curand.h> __global__ void B15IncompressibleNavierStokesBGKplus_Device( - real omega, - unsigned int* bcMatD, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - real* DDStart, - int size_Mat, - bool EvenOrOdd); + real omega, + unsigned int* bcMatD, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + real* DDStart, + int size_Mat, + bool EvenOrOdd); #endif \ No newline at end of file diff --git a/src/gpu/core/Kernel/Incompressible/NavierStokes/B92/B92IncompressibleNavierStokes.cu b/src/gpu/core/Kernel/Incompressible/NavierStokes/B92/B92IncompressibleNavierStokes.cu index 99f5fda8377bd7ce5bd4d486db5e2a680add7e84..49210b1fe31a0addf91401f3c86161846787b96c 100644 --- a/src/gpu/core/Kernel/Incompressible/NavierStokes/B92/B92IncompressibleNavierStokes.cu +++ b/src/gpu/core/Kernel/Incompressible/NavierStokes/B92/B92IncompressibleNavierStokes.cu @@ -6,7 +6,7 @@ std::shared_ptr<B92IncompressibleNavierStokes> B92IncompressibleNavierStokes::getNewInstance(std::shared_ptr<Parameter> para, int level) { - return std::shared_ptr<B92IncompressibleNavierStokes>(new B92IncompressibleNavierStokes(para, level)); + return std::shared_ptr<B92IncompressibleNavierStokes>(new B92IncompressibleNavierStokes(para, level)); } void B92IncompressibleNavierStokes::run() @@ -27,12 +27,12 @@ void B92IncompressibleNavierStokes::run() B92IncompressibleNavierStokes::B92IncompressibleNavierStokes(std::shared_ptr<Parameter> para, int level) { - this->para = para; - this->level = level; + this->para = para; + this->level = level; - myPreProcessorTypes.push_back(InitSP27); + myPreProcessorTypes.push_back(InitNavierStokesIncompressible); - + } B92IncompressibleNavierStokes::B92IncompressibleNavierStokes() diff --git a/src/gpu/core/Kernel/Incompressible/NavierStokes/B92/B92IncompressibleNavierStokes.h b/src/gpu/core/Kernel/Incompressible/NavierStokes/B92/B92IncompressibleNavierStokes.h index 782b764460b85b6525d8c3ec89ef25e333eadd40..0a84e9db596fd9d1cf933635665ba808753cf714 100644 --- a/src/gpu/core/Kernel/Incompressible/NavierStokes/B92/B92IncompressibleNavierStokes.h +++ b/src/gpu/core/Kernel/Incompressible/NavierStokes/B92/B92IncompressibleNavierStokes.h @@ -7,11 +7,11 @@ class B92IncompressibleNavierStokes : public KernelImp { public: - static std::shared_ptr<B92IncompressibleNavierStokes> getNewInstance(std::shared_ptr< Parameter> para, int level); - void run(); + static std::shared_ptr<B92IncompressibleNavierStokes> getNewInstance(std::shared_ptr< Parameter> para, int level); + void run(); private: - B92IncompressibleNavierStokes(); - B92IncompressibleNavierStokes(std::shared_ptr< Parameter> para, int level); + B92IncompressibleNavierStokes(); + B92IncompressibleNavierStokes(std::shared_ptr< Parameter> para, int level); }; #endif \ No newline at end of file diff --git a/src/gpu/core/Kernel/Incompressible/NavierStokes/B92/B92IncompressibleNavierStokes_Device.cu b/src/gpu/core/Kernel/Incompressible/NavierStokes/B92/B92IncompressibleNavierStokes_Device.cu index 8c8197b815f0060d5612656617c1236d0e0b01fc..edc01efbc9064c85b714777c57a31bf4283b83d3 100644 --- a/src/gpu/core/Kernel/Incompressible/NavierStokes/B92/B92IncompressibleNavierStokes_Device.cu +++ b/src/gpu/core/Kernel/Incompressible/NavierStokes/B92/B92IncompressibleNavierStokes_Device.cu @@ -7,233 +7,233 @@ using namespace vf::lbm::dir; #include "math.h" __global__ void B92IncompressibleNavierStokes_Device(real omega, - unsigned int* bcMatD, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - real* DDStart, - int size_Mat, - bool EvenOrOdd) + unsigned int* bcMatD, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + real* DDStart, + int size_Mat, + bool EvenOrOdd) { - //////////////////////////////////////////////////////////////////////////////// - const unsigned x = threadIdx.x; // Globaler x-Index - const unsigned y = blockIdx.x; // Globaler y-Index - const unsigned z = blockIdx.y; // Globaler z-Index - - const unsigned nx = blockDim.x; - const unsigned ny = gridDim.x; - - const unsigned k = nx*(ny*z + y) + x; - ////////////////////////////////////////////////////////////////////////// - - if (k < size_Mat) - { - //////////////////////////////////////////////////////////////////////////////// - unsigned int BC; - BC = bcMatD[k]; - - if ((BC != GEO_SOLID) && (BC != GEO_VOID)) - { - Distributions27 D; - if (EvenOrOdd == true) - { - D.f[dP00] = &DDStart[dP00 * size_Mat]; - D.f[dM00] = &DDStart[dM00 * size_Mat]; - D.f[d0P0] = &DDStart[d0P0 * size_Mat]; - D.f[d0M0] = &DDStart[d0M0 * size_Mat]; - D.f[d00P] = &DDStart[d00P * size_Mat]; - D.f[d00M] = &DDStart[d00M * size_Mat]; - D.f[dPP0] = &DDStart[dPP0 * size_Mat]; - D.f[dMM0] = &DDStart[dMM0 * size_Mat]; - D.f[dPM0] = &DDStart[dPM0 * size_Mat]; - D.f[dMP0] = &DDStart[dMP0 * size_Mat]; - D.f[dP0P] = &DDStart[dP0P * size_Mat]; - D.f[dM0M] = &DDStart[dM0M * size_Mat]; - D.f[dP0M] = &DDStart[dP0M * size_Mat]; - D.f[dM0P] = &DDStart[dM0P * size_Mat]; - D.f[d0PP] = &DDStart[d0PP * size_Mat]; - D.f[d0MM] = &DDStart[d0MM * size_Mat]; - D.f[d0PM] = &DDStart[d0PM * size_Mat]; - D.f[d0MP] = &DDStart[d0MP * size_Mat]; - D.f[d000] = &DDStart[d000 * size_Mat]; - D.f[dPPP] = &DDStart[dPPP * size_Mat]; - D.f[dMMP] = &DDStart[dMMP * size_Mat]; - D.f[dPMP] = &DDStart[dPMP * size_Mat]; - D.f[dMPP] = &DDStart[dMPP * size_Mat]; - D.f[dPPM] = &DDStart[dPPM * size_Mat]; - D.f[dMMM] = &DDStart[dMMM * size_Mat]; - D.f[dPMM] = &DDStart[dPMM * size_Mat]; - D.f[dMPM] = &DDStart[dMPM * size_Mat]; - } - else - { - D.f[dM00] = &DDStart[dP00 * size_Mat]; - D.f[dP00] = &DDStart[dM00 * size_Mat]; - D.f[d0M0] = &DDStart[d0P0 * size_Mat]; - D.f[d0P0] = &DDStart[d0M0 * size_Mat]; - D.f[d00M] = &DDStart[d00P * size_Mat]; - D.f[d00P] = &DDStart[d00M * size_Mat]; - D.f[dMM0] = &DDStart[dPP0 * size_Mat]; - D.f[dPP0] = &DDStart[dMM0 * size_Mat]; - D.f[dMP0] = &DDStart[dPM0 * size_Mat]; - D.f[dPM0] = &DDStart[dMP0 * size_Mat]; - D.f[dM0M] = &DDStart[dP0P * size_Mat]; - D.f[dP0P] = &DDStart[dM0M * size_Mat]; - D.f[dM0P] = &DDStart[dP0M * size_Mat]; - D.f[dP0M] = &DDStart[dM0P * size_Mat]; - D.f[d0MM] = &DDStart[d0PP * size_Mat]; - D.f[d0PP] = &DDStart[d0MM * size_Mat]; - D.f[d0MP] = &DDStart[d0PM * size_Mat]; - D.f[d0PM] = &DDStart[d0MP * size_Mat]; - D.f[d000] = &DDStart[d000 * size_Mat]; - D.f[dMMM] = &DDStart[dPPP * size_Mat]; - D.f[dPPM] = &DDStart[dMMP * size_Mat]; - D.f[dMPM] = &DDStart[dPMP * size_Mat]; - D.f[dPMM] = &DDStart[dMPP * size_Mat]; - D.f[dMMP] = &DDStart[dPPM * size_Mat]; - D.f[dPPP] = &DDStart[dMMM * size_Mat]; - D.f[dMPP] = &DDStart[dPMM * size_Mat]; - D.f[dPMP] = &DDStart[dMPM * size_Mat]; - } - - //////////////////////////////////////////////////////////////////////////////// - //index - //unsigned int kzero= k; - //unsigned int ke = k; - unsigned int kw = neighborX[k]; - //unsigned int kn = k; - unsigned int ks = neighborY[k]; - //unsigned int kt = k; - unsigned int kb = neighborZ[k]; - unsigned int ksw = neighborY[kw]; - //unsigned int kne = k; - //unsigned int kse = ks; - //unsigned int knw = kw; - unsigned int kbw = neighborZ[kw]; - //unsigned int kte = k; - //unsigned int kbe = kb; - //unsigned int ktw = kw; - unsigned int kbs = neighborZ[ks]; - //unsigned int ktn = k; - //unsigned int kbn = kb; - //unsigned int kts = ks; - //unsigned int ktse = ks; - //unsigned int kbnw = kbw; - //unsigned int ktnw = kw; - //unsigned int kbse = kbs; - //unsigned int ktsw = ksw; - //unsigned int kbne = kb; - //unsigned int ktne = k; - unsigned int kbsw = neighborZ[ksw]; - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real fE = (D.f[dP00])[k];//ke - real fW = (D.f[dM00])[kw]; - real fN = (D.f[d0P0])[k];//kn - real fS = (D.f[d0M0])[ks]; - real fT = (D.f[d00P])[k];//kt - real fB = (D.f[d00M])[kb]; - real fNE = (D.f[dPP0])[k];//kne - real fSW = (D.f[dMM0])[ksw]; - real fSE = (D.f[dPM0])[ks];//kse - real fNW = (D.f[dMP0])[kw];//knw - real fTE = (D.f[dP0P])[k];//kte - real fBW = (D.f[dM0M])[kbw]; - real fBE = (D.f[dP0M])[kb];//kbe - real fTW = (D.f[dM0P])[kw];//ktw - real fTN = (D.f[d0PP])[k];//ktn - real fBS = (D.f[d0MM])[kbs]; - real fBN = (D.f[d0PM])[kb];//kbn - real fTS = (D.f[d0MP])[ks];//kts - real fZERO = (D.f[d000])[k];//kzero - real fTNE = (D.f[dPPP])[k];//ktne - real fTSW = (D.f[dMMP])[ksw];//ktsw - real fTSE = (D.f[dPMP])[ks];//ktse - real fTNW = (D.f[dMPP])[kw];//ktnw - real fBNE = (D.f[dPPM])[kb];//kbne - real fBSW = (D.f[dMMM])[kbsw]; - real fBSE = (D.f[dPMM])[kbs];//kbse - real fBNW = (D.f[dMPM])[kbw];//kbnw - //////////////////////////////////////////////////////////////////////////////// - - - - - - - - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //BGK incomp - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real drho = (fTNE + fBSW) + (fTSW + fBNE) + (fTSE + fBNW) + (fTNW + fBSE) + (fNE + fSW) + (fNW + fSE) + (fTE + fBW) + (fBE + fTW) + (fTN + fBS) + (fBN + fTS) + (fE + fW) + (fN + fS) + (fT + fB) + fZERO; - real vx1 = (fTNE - fBSW) + (fBNE - fTSW) + (fTSE - fBNW) + (fBSE - fTNW) + (fNE - fSW) + (fSE - fNW) + (fTE - fBW) + (fBE - fTW) + (fE - fW); - real vx2 = (fTNE - fBSW) + (fBNE - fTSW) + (fBNW - fTSE) + (fTNW - fBSE) + (fNE - fSW) + (fNW - fSE) + (fTN - fBS) + (fBN - fTS) + (fN - fS); - real vx3 = (fTNE - fBSW) + (fTSW - fBNE) + (fTSE - fBNW) + (fTNW - fBSE) + (fTE - fBW) + (fTW - fBE) + (fTN - fBS) + (fTS - fBN) + (fT - fB); - real cusq = c3o2*(vx1*vx1 + vx2*vx2 + vx3*vx3); - ////////////////////////////////////////////////////////////////////////// - fZERO = fZERO *(c1o1 + (-omega)) - (-omega)* c8o27* (drho - cusq); - fE = fE *(c1o1 + (-omega)) - (-omega)* c2o27* (drho + c3o1*(vx1)+c9o2*(vx1)*(vx1)-cusq); - fW = fW *(c1o1 + (-omega)) - (-omega)* c2o27* (drho + c3o1*(-vx1) + c9o2*(-vx1)*(-vx1) - cusq); - fN = fN *(c1o1 + (-omega)) - (-omega)* c2o27* (drho + c3o1*(vx2)+c9o2*(vx2)*(vx2)-cusq); - fS = fS *(c1o1 + (-omega)) - (-omega)* c2o27* (drho + c3o1*(-vx2) + c9o2*(-vx2)*(-vx2) - cusq); - fT = fT *(c1o1 + (-omega)) - (-omega)* c2o27* (drho + c3o1*(vx3)+c9o2*(vx3)*(vx3)-cusq); - fB = fB *(c1o1 + (-omega)) - (-omega)* c2o27* (drho + c3o1*(-vx3) + c9o2*(-vx3)*(-vx3) - cusq); - fNE = fNE *(c1o1 + (-omega)) - (-omega)* c1o54* (drho + c3o1*(vx1 + vx2) + c9o2*(vx1 + vx2)*(vx1 + vx2) - cusq); - fSW = fSW *(c1o1 + (-omega)) - (-omega)* c1o54* (drho + c3o1*(-vx1 - vx2) + c9o2*(-vx1 - vx2)*(-vx1 - vx2) - cusq); - fSE = fSE *(c1o1 + (-omega)) - (-omega)* c1o54* (drho + c3o1*(vx1 - vx2) + c9o2*(vx1 - vx2)*(vx1 - vx2) - cusq); - fNW = fNW *(c1o1 + (-omega)) - (-omega)* c1o54* (drho + c3o1*(-vx1 + vx2) + c9o2*(-vx1 + vx2)*(-vx1 + vx2) - cusq); - fTE = fTE *(c1o1 + (-omega)) - (-omega)* c1o54* (drho + c3o1*(vx1 + vx3) + c9o2*(vx1 + vx3)*(vx1 + vx3) - cusq); - fBW = fBW *(c1o1 + (-omega)) - (-omega)* c1o54* (drho + c3o1*(-vx1 - vx3) + c9o2*(-vx1 - vx3)*(-vx1 - vx3) - cusq); - fBE = fBE *(c1o1 + (-omega)) - (-omega)* c1o54* (drho + c3o1*(vx1 - vx3) + c9o2*(vx1 - vx3)*(vx1 - vx3) - cusq); - fTW = fTW *(c1o1 + (-omega)) - (-omega)* c1o54* (drho + c3o1*(-vx1 + vx3) + c9o2*(-vx1 + vx3)*(-vx1 + vx3) - cusq); - fTN = fTN *(c1o1 + (-omega)) - (-omega)* c1o54* (drho + c3o1*(vx2 + vx3) + c9o2*(vx2 + vx3)*(vx2 + vx3) - cusq); - fBS = fBS *(c1o1 + (-omega)) - (-omega)* c1o54* (drho + c3o1*(-vx2 - vx3) + c9o2*(-vx2 - vx3)*(-vx2 - vx3) - cusq); - fBN = fBN *(c1o1 + (-omega)) - (-omega)* c1o54* (drho + c3o1*(vx2 - vx3) + c9o2*(vx2 - vx3)*(vx2 - vx3) - cusq); - fTS = fTS *(c1o1 + (-omega)) - (-omega)* c1o54* (drho + c3o1*(-vx2 + vx3) + c9o2*(-vx2 + vx3)*(-vx2 + vx3) - cusq); - fTNE = fTNE *(c1o1 + (-omega)) - (-omega)* c1o216*(drho + c3o1*(vx1 + vx2 + vx3) + c9o2*(vx1 + vx2 + vx3)*(vx1 + vx2 + vx3) - cusq); - fBSW = fBSW *(c1o1 + (-omega)) - (-omega)* c1o216*(drho + c3o1*(-vx1 - vx2 - vx3) + c9o2*(-vx1 - vx2 - vx3)*(-vx1 - vx2 - vx3) - cusq); - fBNE = fBNE *(c1o1 + (-omega)) - (-omega)* c1o216*(drho + c3o1*(vx1 + vx2 - vx3) + c9o2*(vx1 + vx2 - vx3)*(vx1 + vx2 - vx3) - cusq); - fTSW = fTSW *(c1o1 + (-omega)) - (-omega)* c1o216*(drho + c3o1*(-vx1 - vx2 + vx3) + c9o2*(-vx1 - vx2 + vx3)*(-vx1 - vx2 + vx3) - cusq); - fTSE = fTSE *(c1o1 + (-omega)) - (-omega)* c1o216*(drho + c3o1*(vx1 - vx2 + vx3) + c9o2*(vx1 - vx2 + vx3)*(vx1 - vx2 + vx3) - cusq); - fBNW = fBNW *(c1o1 + (-omega)) - (-omega)* c1o216*(drho + c3o1*(-vx1 + vx2 - vx3) + c9o2*(-vx1 + vx2 - vx3)*(-vx1 + vx2 - vx3) - cusq); - fBSE = fBSE *(c1o1 + (-omega)) - (-omega)* c1o216*(drho + c3o1*(vx1 - vx2 - vx3) + c9o2*(vx1 - vx2 - vx3)*(vx1 - vx2 - vx3) - cusq); - fTNW = fTNW *(c1o1 + (-omega)) - (-omega)* c1o216*(drho + c3o1*(-vx1 + vx2 + vx3) + c9o2*(-vx1 + vx2 + vx3)*(-vx1 + vx2 + vx3) - cusq); - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - - - - - - - ////////////////////////////////////////////////////////////////////////// - (D.f[dP00])[k] = fW; - (D.f[dM00])[kw] = fE; - (D.f[d0P0])[k] = fS; - (D.f[d0M0])[ks] = fN; - (D.f[d00P])[k] = fB; - (D.f[d00M])[kb] = fT; - (D.f[dPP0])[k] = fSW; - (D.f[dMM0])[ksw] = fNE; - (D.f[dPM0])[ks] = fNW; - (D.f[dMP0])[kw] = fSE; - (D.f[dP0P])[k] = fBW; - (D.f[dM0M])[kbw] = fTE; - (D.f[dP0M])[kb] = fTW; - (D.f[dM0P])[kw] = fBE; - (D.f[d0PP])[k] = fBS; - (D.f[d0MM])[kbs] = fTN; - (D.f[d0PM])[kb] = fTS; - (D.f[d0MP])[ks] = fBN; - (D.f[d000])[k] = fZERO; - (D.f[dPPP])[k] = fBSW; - (D.f[dPMP])[ks] = fBNW; - (D.f[dPPM])[kb] = fTSW; - (D.f[dPMM])[kbs] = fTNW; - (D.f[dMPP])[kw] = fBSE; - (D.f[dMMP])[ksw] = fBNE; - (D.f[dMPM])[kbw] = fTSE; - (D.f[dMMM])[kbsw] = fTNE; - ////////////////////////////////////////////////////////////////////////// - } - } + //////////////////////////////////////////////////////////////////////////////// + const unsigned x = threadIdx.x; // Globaler x-Index + const unsigned y = blockIdx.x; // Globaler y-Index + const unsigned z = blockIdx.y; // Globaler z-Index + + const unsigned nx = blockDim.x; + const unsigned ny = gridDim.x; + + const unsigned k = nx*(ny*z + y) + x; + ////////////////////////////////////////////////////////////////////////// + + if (k < size_Mat) + { + //////////////////////////////////////////////////////////////////////////////// + unsigned int BC; + BC = bcMatD[k]; + + if ((BC != GEO_SOLID) && (BC != GEO_VOID)) + { + Distributions27 D; + if (EvenOrOdd == true) + { + D.f[dP00] = &DDStart[dP00 * size_Mat]; + D.f[dM00] = &DDStart[dM00 * size_Mat]; + D.f[d0P0] = &DDStart[d0P0 * size_Mat]; + D.f[d0M0] = &DDStart[d0M0 * size_Mat]; + D.f[d00P] = &DDStart[d00P * size_Mat]; + D.f[d00M] = &DDStart[d00M * size_Mat]; + D.f[dPP0] = &DDStart[dPP0 * size_Mat]; + D.f[dMM0] = &DDStart[dMM0 * size_Mat]; + D.f[dPM0] = &DDStart[dPM0 * size_Mat]; + D.f[dMP0] = &DDStart[dMP0 * size_Mat]; + D.f[dP0P] = &DDStart[dP0P * size_Mat]; + D.f[dM0M] = &DDStart[dM0M * size_Mat]; + D.f[dP0M] = &DDStart[dP0M * size_Mat]; + D.f[dM0P] = &DDStart[dM0P * size_Mat]; + D.f[d0PP] = &DDStart[d0PP * size_Mat]; + D.f[d0MM] = &DDStart[d0MM * size_Mat]; + D.f[d0PM] = &DDStart[d0PM * size_Mat]; + D.f[d0MP] = &DDStart[d0MP * size_Mat]; + D.f[d000] = &DDStart[d000 * size_Mat]; + D.f[dPPP] = &DDStart[dPPP * size_Mat]; + D.f[dMMP] = &DDStart[dMMP * size_Mat]; + D.f[dPMP] = &DDStart[dPMP * size_Mat]; + D.f[dMPP] = &DDStart[dMPP * size_Mat]; + D.f[dPPM] = &DDStart[dPPM * size_Mat]; + D.f[dMMM] = &DDStart[dMMM * size_Mat]; + D.f[dPMM] = &DDStart[dPMM * size_Mat]; + D.f[dMPM] = &DDStart[dMPM * size_Mat]; + } + else + { + D.f[dM00] = &DDStart[dP00 * size_Mat]; + D.f[dP00] = &DDStart[dM00 * size_Mat]; + D.f[d0M0] = &DDStart[d0P0 * size_Mat]; + D.f[d0P0] = &DDStart[d0M0 * size_Mat]; + D.f[d00M] = &DDStart[d00P * size_Mat]; + D.f[d00P] = &DDStart[d00M * size_Mat]; + D.f[dMM0] = &DDStart[dPP0 * size_Mat]; + D.f[dPP0] = &DDStart[dMM0 * size_Mat]; + D.f[dMP0] = &DDStart[dPM0 * size_Mat]; + D.f[dPM0] = &DDStart[dMP0 * size_Mat]; + D.f[dM0M] = &DDStart[dP0P * size_Mat]; + D.f[dP0P] = &DDStart[dM0M * size_Mat]; + D.f[dM0P] = &DDStart[dP0M * size_Mat]; + D.f[dP0M] = &DDStart[dM0P * size_Mat]; + D.f[d0MM] = &DDStart[d0PP * size_Mat]; + D.f[d0PP] = &DDStart[d0MM * size_Mat]; + D.f[d0MP] = &DDStart[d0PM * size_Mat]; + D.f[d0PM] = &DDStart[d0MP * size_Mat]; + D.f[d000] = &DDStart[d000 * size_Mat]; + D.f[dMMM] = &DDStart[dPPP * size_Mat]; + D.f[dPPM] = &DDStart[dMMP * size_Mat]; + D.f[dMPM] = &DDStart[dPMP * size_Mat]; + D.f[dPMM] = &DDStart[dMPP * size_Mat]; + D.f[dMMP] = &DDStart[dPPM * size_Mat]; + D.f[dPPP] = &DDStart[dMMM * size_Mat]; + D.f[dMPP] = &DDStart[dPMM * size_Mat]; + D.f[dPMP] = &DDStart[dMPM * size_Mat]; + } + + //////////////////////////////////////////////////////////////////////////////// + //index + //unsigned int kzero= k; + //unsigned int ke = k; + unsigned int kw = neighborX[k]; + //unsigned int kn = k; + unsigned int ks = neighborY[k]; + //unsigned int kt = k; + unsigned int kb = neighborZ[k]; + unsigned int ksw = neighborY[kw]; + //unsigned int kne = k; + //unsigned int kse = ks; + //unsigned int knw = kw; + unsigned int kbw = neighborZ[kw]; + //unsigned int kte = k; + //unsigned int kbe = kb; + //unsigned int ktw = kw; + unsigned int kbs = neighborZ[ks]; + //unsigned int ktn = k; + //unsigned int kbn = kb; + //unsigned int kts = ks; + //unsigned int ktse = ks; + //unsigned int kbnw = kbw; + //unsigned int ktnw = kw; + //unsigned int kbse = kbs; + //unsigned int ktsw = ksw; + //unsigned int kbne = kb; + //unsigned int ktne = k; + unsigned int kbsw = neighborZ[ksw]; + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + real fE = (D.f[dP00])[k];//ke + real fW = (D.f[dM00])[kw]; + real fN = (D.f[d0P0])[k];//kn + real fS = (D.f[d0M0])[ks]; + real fT = (D.f[d00P])[k];//kt + real fB = (D.f[d00M])[kb]; + real fNE = (D.f[dPP0])[k];//kne + real fSW = (D.f[dMM0])[ksw]; + real fSE = (D.f[dPM0])[ks];//kse + real fNW = (D.f[dMP0])[kw];//knw + real fTE = (D.f[dP0P])[k];//kte + real fBW = (D.f[dM0M])[kbw]; + real fBE = (D.f[dP0M])[kb];//kbe + real fTW = (D.f[dM0P])[kw];//ktw + real fTN = (D.f[d0PP])[k];//ktn + real fBS = (D.f[d0MM])[kbs]; + real fBN = (D.f[d0PM])[kb];//kbn + real fTS = (D.f[d0MP])[ks];//kts + real fZERO = (D.f[d000])[k];//kzero + real fTNE = (D.f[dPPP])[k];//ktne + real fTSW = (D.f[dMMP])[ksw];//ktsw + real fTSE = (D.f[dPMP])[ks];//ktse + real fTNW = (D.f[dMPP])[kw];//ktnw + real fBNE = (D.f[dPPM])[kb];//kbne + real fBSW = (D.f[dMMM])[kbsw]; + real fBSE = (D.f[dPMM])[kbs];//kbse + real fBNW = (D.f[dMPM])[kbw];//kbnw + //////////////////////////////////////////////////////////////////////////////// + + + + + + + + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //BGK incomp + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + real drho = (fTNE + fBSW) + (fTSW + fBNE) + (fTSE + fBNW) + (fTNW + fBSE) + (fNE + fSW) + (fNW + fSE) + (fTE + fBW) + (fBE + fTW) + (fTN + fBS) + (fBN + fTS) + (fE + fW) + (fN + fS) + (fT + fB) + fZERO; + real vx1 = (fTNE - fBSW) + (fBNE - fTSW) + (fTSE - fBNW) + (fBSE - fTNW) + (fNE - fSW) + (fSE - fNW) + (fTE - fBW) + (fBE - fTW) + (fE - fW); + real vx2 = (fTNE - fBSW) + (fBNE - fTSW) + (fBNW - fTSE) + (fTNW - fBSE) + (fNE - fSW) + (fNW - fSE) + (fTN - fBS) + (fBN - fTS) + (fN - fS); + real vx3 = (fTNE - fBSW) + (fTSW - fBNE) + (fTSE - fBNW) + (fTNW - fBSE) + (fTE - fBW) + (fTW - fBE) + (fTN - fBS) + (fTS - fBN) + (fT - fB); + real cusq = c3o2*(vx1*vx1 + vx2*vx2 + vx3*vx3); + ////////////////////////////////////////////////////////////////////////// + fZERO = fZERO *(c1o1 + (-omega)) - (-omega)* c8o27* (drho - cusq); + fE = fE *(c1o1 + (-omega)) - (-omega)* c2o27* (drho + c3o1*(vx1)+c9o2*(vx1)*(vx1)-cusq); + fW = fW *(c1o1 + (-omega)) - (-omega)* c2o27* (drho + c3o1*(-vx1) + c9o2*(-vx1)*(-vx1) - cusq); + fN = fN *(c1o1 + (-omega)) - (-omega)* c2o27* (drho + c3o1*(vx2)+c9o2*(vx2)*(vx2)-cusq); + fS = fS *(c1o1 + (-omega)) - (-omega)* c2o27* (drho + c3o1*(-vx2) + c9o2*(-vx2)*(-vx2) - cusq); + fT = fT *(c1o1 + (-omega)) - (-omega)* c2o27* (drho + c3o1*(vx3)+c9o2*(vx3)*(vx3)-cusq); + fB = fB *(c1o1 + (-omega)) - (-omega)* c2o27* (drho + c3o1*(-vx3) + c9o2*(-vx3)*(-vx3) - cusq); + fNE = fNE *(c1o1 + (-omega)) - (-omega)* c1o54* (drho + c3o1*(vx1 + vx2) + c9o2*(vx1 + vx2)*(vx1 + vx2) - cusq); + fSW = fSW *(c1o1 + (-omega)) - (-omega)* c1o54* (drho + c3o1*(-vx1 - vx2) + c9o2*(-vx1 - vx2)*(-vx1 - vx2) - cusq); + fSE = fSE *(c1o1 + (-omega)) - (-omega)* c1o54* (drho + c3o1*(vx1 - vx2) + c9o2*(vx1 - vx2)*(vx1 - vx2) - cusq); + fNW = fNW *(c1o1 + (-omega)) - (-omega)* c1o54* (drho + c3o1*(-vx1 + vx2) + c9o2*(-vx1 + vx2)*(-vx1 + vx2) - cusq); + fTE = fTE *(c1o1 + (-omega)) - (-omega)* c1o54* (drho + c3o1*(vx1 + vx3) + c9o2*(vx1 + vx3)*(vx1 + vx3) - cusq); + fBW = fBW *(c1o1 + (-omega)) - (-omega)* c1o54* (drho + c3o1*(-vx1 - vx3) + c9o2*(-vx1 - vx3)*(-vx1 - vx3) - cusq); + fBE = fBE *(c1o1 + (-omega)) - (-omega)* c1o54* (drho + c3o1*(vx1 - vx3) + c9o2*(vx1 - vx3)*(vx1 - vx3) - cusq); + fTW = fTW *(c1o1 + (-omega)) - (-omega)* c1o54* (drho + c3o1*(-vx1 + vx3) + c9o2*(-vx1 + vx3)*(-vx1 + vx3) - cusq); + fTN = fTN *(c1o1 + (-omega)) - (-omega)* c1o54* (drho + c3o1*(vx2 + vx3) + c9o2*(vx2 + vx3)*(vx2 + vx3) - cusq); + fBS = fBS *(c1o1 + (-omega)) - (-omega)* c1o54* (drho + c3o1*(-vx2 - vx3) + c9o2*(-vx2 - vx3)*(-vx2 - vx3) - cusq); + fBN = fBN *(c1o1 + (-omega)) - (-omega)* c1o54* (drho + c3o1*(vx2 - vx3) + c9o2*(vx2 - vx3)*(vx2 - vx3) - cusq); + fTS = fTS *(c1o1 + (-omega)) - (-omega)* c1o54* (drho + c3o1*(-vx2 + vx3) + c9o2*(-vx2 + vx3)*(-vx2 + vx3) - cusq); + fTNE = fTNE *(c1o1 + (-omega)) - (-omega)* c1o216*(drho + c3o1*(vx1 + vx2 + vx3) + c9o2*(vx1 + vx2 + vx3)*(vx1 + vx2 + vx3) - cusq); + fBSW = fBSW *(c1o1 + (-omega)) - (-omega)* c1o216*(drho + c3o1*(-vx1 - vx2 - vx3) + c9o2*(-vx1 - vx2 - vx3)*(-vx1 - vx2 - vx3) - cusq); + fBNE = fBNE *(c1o1 + (-omega)) - (-omega)* c1o216*(drho + c3o1*(vx1 + vx2 - vx3) + c9o2*(vx1 + vx2 - vx3)*(vx1 + vx2 - vx3) - cusq); + fTSW = fTSW *(c1o1 + (-omega)) - (-omega)* c1o216*(drho + c3o1*(-vx1 - vx2 + vx3) + c9o2*(-vx1 - vx2 + vx3)*(-vx1 - vx2 + vx3) - cusq); + fTSE = fTSE *(c1o1 + (-omega)) - (-omega)* c1o216*(drho + c3o1*(vx1 - vx2 + vx3) + c9o2*(vx1 - vx2 + vx3)*(vx1 - vx2 + vx3) - cusq); + fBNW = fBNW *(c1o1 + (-omega)) - (-omega)* c1o216*(drho + c3o1*(-vx1 + vx2 - vx3) + c9o2*(-vx1 + vx2 - vx3)*(-vx1 + vx2 - vx3) - cusq); + fBSE = fBSE *(c1o1 + (-omega)) - (-omega)* c1o216*(drho + c3o1*(vx1 - vx2 - vx3) + c9o2*(vx1 - vx2 - vx3)*(vx1 - vx2 - vx3) - cusq); + fTNW = fTNW *(c1o1 + (-omega)) - (-omega)* c1o216*(drho + c3o1*(-vx1 + vx2 + vx3) + c9o2*(-vx1 + vx2 + vx3)*(-vx1 + vx2 + vx3) - cusq); + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + + + + + + + ////////////////////////////////////////////////////////////////////////// + (D.f[dP00])[k] = fW; + (D.f[dM00])[kw] = fE; + (D.f[d0P0])[k] = fS; + (D.f[d0M0])[ks] = fN; + (D.f[d00P])[k] = fB; + (D.f[d00M])[kb] = fT; + (D.f[dPP0])[k] = fSW; + (D.f[dMM0])[ksw] = fNE; + (D.f[dPM0])[ks] = fNW; + (D.f[dMP0])[kw] = fSE; + (D.f[dP0P])[k] = fBW; + (D.f[dM0M])[kbw] = fTE; + (D.f[dP0M])[kb] = fTW; + (D.f[dM0P])[kw] = fBE; + (D.f[d0PP])[k] = fBS; + (D.f[d0MM])[kbs] = fTN; + (D.f[d0PM])[kb] = fTS; + (D.f[d0MP])[ks] = fBN; + (D.f[d000])[k] = fZERO; + (D.f[dPPP])[k] = fBSW; + (D.f[dPMP])[ks] = fBNW; + (D.f[dPPM])[kb] = fTSW; + (D.f[dPMM])[kbs] = fTNW; + (D.f[dMPP])[kw] = fBSE; + (D.f[dMMP])[ksw] = fBNE; + (D.f[dMPM])[kbw] = fTSE; + (D.f[dMMM])[kbsw] = fTNE; + ////////////////////////////////////////////////////////////////////////// + } + } } \ No newline at end of file diff --git a/src/gpu/core/Kernel/Incompressible/NavierStokes/B92/B92IncompressibleNavierStokes_Device.cuh b/src/gpu/core/Kernel/Incompressible/NavierStokes/B92/B92IncompressibleNavierStokes_Device.cuh index 8b81ebf323cd27faaa60f4b5f75d113a17a2b5e8..2d46a0b0d2794c0edd96dbe63971e44e9301678c 100644 --- a/src/gpu/core/Kernel/Incompressible/NavierStokes/B92/B92IncompressibleNavierStokes_Device.cuh +++ b/src/gpu/core/Kernel/Incompressible/NavierStokes/B92/B92IncompressibleNavierStokes_Device.cuh @@ -5,13 +5,13 @@ #include <curand.h> __global__ void B92IncompressibleNavierStokes_Device( - real omega, - unsigned int* bcMatD, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - real* DDStart, - int size_Mat, - bool EvenOrOdd); + real omega, + unsigned int* bcMatD, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + real* DDStart, + int size_Mat, + bool EvenOrOdd); #endif \ No newline at end of file diff --git a/src/gpu/core/Kernel/Incompressible/NavierStokes/K15/K15IncompressibleNavierStokes.cu b/src/gpu/core/Kernel/Incompressible/NavierStokes/K15/K15IncompressibleNavierStokes.cu index f457eb98e856733795681f5b285d82decc6ff2b6..5d64f3216ba65389a03941b55f61a7091170e0ea 100644 --- a/src/gpu/core/Kernel/Incompressible/NavierStokes/K15/K15IncompressibleNavierStokes.cu +++ b/src/gpu/core/Kernel/Incompressible/NavierStokes/K15/K15IncompressibleNavierStokes.cu @@ -6,7 +6,7 @@ std::shared_ptr<K15IncompressibleNavierStokes> K15IncompressibleNavierStokes::getNewInstance(std::shared_ptr<Parameter> para, int level) { - return std::shared_ptr<K15IncompressibleNavierStokes>(new K15IncompressibleNavierStokes(para, level)); + return std::shared_ptr<K15IncompressibleNavierStokes>(new K15IncompressibleNavierStokes(para, level)); } void K15IncompressibleNavierStokes::run() @@ -27,12 +27,12 @@ void K15IncompressibleNavierStokes::run() K15IncompressibleNavierStokes::K15IncompressibleNavierStokes(std::shared_ptr<Parameter> para, int level) { - this->para = para; - this->level = level; + this->para = para; + this->level = level; - myPreProcessorTypes.push_back(InitSP27); + myPreProcessorTypes.push_back(InitNavierStokesIncompressible); - + } K15IncompressibleNavierStokes::K15IncompressibleNavierStokes() diff --git a/src/gpu/core/Kernel/Incompressible/NavierStokes/K15/K15IncompressibleNavierStokes.h b/src/gpu/core/Kernel/Incompressible/NavierStokes/K15/K15IncompressibleNavierStokes.h index 40d06dfaef95cdd71ab1d11fbfc356087345ce91..858050ddc8e92abb7a0457439aeec9edb592f5c2 100644 --- a/src/gpu/core/Kernel/Incompressible/NavierStokes/K15/K15IncompressibleNavierStokes.h +++ b/src/gpu/core/Kernel/Incompressible/NavierStokes/K15/K15IncompressibleNavierStokes.h @@ -6,11 +6,11 @@ class K15IncompressibleNavierStokes : public KernelImp { public: - static std::shared_ptr<K15IncompressibleNavierStokes> getNewInstance(std::shared_ptr< Parameter> para, int level); - void run(); + static std::shared_ptr<K15IncompressibleNavierStokes> getNewInstance(std::shared_ptr< Parameter> para, int level); + void run(); private: - K15IncompressibleNavierStokes(); - K15IncompressibleNavierStokes(std::shared_ptr< Parameter> para, int level); + K15IncompressibleNavierStokes(); + K15IncompressibleNavierStokes(std::shared_ptr< Parameter> para, int level); }; #endif \ No newline at end of file diff --git a/src/gpu/core/Kernel/Incompressible/NavierStokes/K15/K15IncompressibleNavierStokes_Device.cu b/src/gpu/core/Kernel/Incompressible/NavierStokes/K15/K15IncompressibleNavierStokes_Device.cu index 4438d69ecd25ac21dc6f944f450cfa1b61e273e3..c1a538c07ea820b2212901ac601fe36ddc2d6dac 100644 --- a/src/gpu/core/Kernel/Incompressible/NavierStokes/K15/K15IncompressibleNavierStokes_Device.cu +++ b/src/gpu/core/Kernel/Incompressible/NavierStokes/K15/K15IncompressibleNavierStokes_Device.cu @@ -7,1234 +7,1234 @@ using namespace vf::lbm::dir; #include "math.h" __global__ void K15IncompressibleNavierStokes_Device( - real omega, - unsigned int* bcMatD, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - real* DDStart, - int size_Mat, - bool EvenOrOdd) + real omega, + unsigned int* bcMatD, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + real* DDStart, + int size_Mat, + bool EvenOrOdd) { - //////////////////////////////////////////////////////////////////////////////// - const unsigned x = threadIdx.x; // Globaler x-Index - const unsigned y = blockIdx.x; // Globaler y-Index - const unsigned z = blockIdx.y; // Globaler z-Index - - const unsigned nx = blockDim.x; - const unsigned ny = gridDim.x; - - const unsigned k = nx*(ny*z + y) + x; - ////////////////////////////////////////////////////////////////////////// - - if (k<size_Mat) - { - //////////////////////////////////////////////////////////////////////////////// - unsigned int BC; - BC = bcMatD[k]; - - if ((BC != GEO_SOLID) && (BC != GEO_VOID)) - { - Distributions27 D; - if (EvenOrOdd == true) - { - D.f[dP00] = &DDStart[dP00 * size_Mat]; - D.f[dM00] = &DDStart[dM00 * size_Mat]; - D.f[d0P0] = &DDStart[d0P0 * size_Mat]; - D.f[d0M0] = &DDStart[d0M0 * size_Mat]; - D.f[d00P] = &DDStart[d00P * size_Mat]; - D.f[d00M] = &DDStart[d00M * size_Mat]; - D.f[dPP0] = &DDStart[dPP0 * size_Mat]; - D.f[dMM0] = &DDStart[dMM0 * size_Mat]; - D.f[dPM0] = &DDStart[dPM0 * size_Mat]; - D.f[dMP0] = &DDStart[dMP0 * size_Mat]; - D.f[dP0P] = &DDStart[dP0P * size_Mat]; - D.f[dM0M] = &DDStart[dM0M * size_Mat]; - D.f[dP0M] = &DDStart[dP0M * size_Mat]; - D.f[dM0P] = &DDStart[dM0P * size_Mat]; - D.f[d0PP] = &DDStart[d0PP * size_Mat]; - D.f[d0MM] = &DDStart[d0MM * size_Mat]; - D.f[d0PM] = &DDStart[d0PM * size_Mat]; - D.f[d0MP] = &DDStart[d0MP * size_Mat]; - D.f[d000] = &DDStart[d000 * size_Mat]; - D.f[dPPP] = &DDStart[dPPP * size_Mat]; - D.f[dMMP] = &DDStart[dMMP * size_Mat]; - D.f[dPMP] = &DDStart[dPMP * size_Mat]; - D.f[dMPP] = &DDStart[dMPP * size_Mat]; - D.f[dPPM] = &DDStart[dPPM * size_Mat]; - D.f[dMMM] = &DDStart[dMMM * size_Mat]; - D.f[dPMM] = &DDStart[dPMM * size_Mat]; - D.f[dMPM] = &DDStart[dMPM * size_Mat]; - } - else - { - D.f[dM00] = &DDStart[dP00 * size_Mat]; - D.f[dP00] = &DDStart[dM00 * size_Mat]; - D.f[d0M0] = &DDStart[d0P0 * size_Mat]; - D.f[d0P0] = &DDStart[d0M0 * size_Mat]; - D.f[d00M] = &DDStart[d00P * size_Mat]; - D.f[d00P] = &DDStart[d00M * size_Mat]; - D.f[dMM0] = &DDStart[dPP0 * size_Mat]; - D.f[dPP0] = &DDStart[dMM0 * size_Mat]; - D.f[dMP0] = &DDStart[dPM0 * size_Mat]; - D.f[dPM0] = &DDStart[dMP0 * size_Mat]; - D.f[dM0M] = &DDStart[dP0P * size_Mat]; - D.f[dP0P] = &DDStart[dM0M * size_Mat]; - D.f[dM0P] = &DDStart[dP0M * size_Mat]; - D.f[dP0M] = &DDStart[dM0P * size_Mat]; - D.f[d0MM] = &DDStart[d0PP * size_Mat]; - D.f[d0PP] = &DDStart[d0MM * size_Mat]; - D.f[d0MP] = &DDStart[d0PM * size_Mat]; - D.f[d0PM] = &DDStart[d0MP * size_Mat]; - D.f[d000] = &DDStart[d000 * size_Mat]; - D.f[dMMM] = &DDStart[dPPP * size_Mat]; - D.f[dPPM] = &DDStart[dMMP * size_Mat]; - D.f[dMPM] = &DDStart[dPMP * size_Mat]; - D.f[dPMM] = &DDStart[dMPP * size_Mat]; - D.f[dMMP] = &DDStart[dPPM * size_Mat]; - D.f[dPPP] = &DDStart[dMMM * size_Mat]; - D.f[dMPP] = &DDStart[dPMM * size_Mat]; - D.f[dPMP] = &DDStart[dMPM * size_Mat]; - } - - //////////////////////////////////////////////////////////////////////////////// - //index - //unsigned int kzero= k; - //unsigned int ke = k; - unsigned int kw = neighborX[k]; - //unsigned int kn = k; - unsigned int ks = neighborY[k]; - //unsigned int kt = k; - unsigned int kb = neighborZ[k]; - unsigned int ksw = neighborY[kw]; - //unsigned int kne = k; - //unsigned int kse = ks; - //unsigned int knw = kw; - unsigned int kbw = neighborZ[kw]; - //unsigned int kte = k; - //unsigned int kbe = kb; - //unsigned int ktw = kw; - unsigned int kbs = neighborZ[ks]; - //unsigned int ktn = k; - //unsigned int kbn = kb; - //unsigned int kts = ks; - //unsigned int ktse = ks; - //unsigned int kbnw = kbw; - //unsigned int ktnw = kw; - //unsigned int kbse = kbs; - //unsigned int ktsw = ksw; - //unsigned int kbne = kb; - //unsigned int ktne = k; - unsigned int kbsw = neighborZ[ksw]; - - //unsigned int kzero= k; - //unsigned int ke = k; - //unsigned int kw = neighborX[k]; - //unsigned int kn = k; - //unsigned int ks = neighborY[k]; - //unsigned int kt = k; - //unsigned int kb = neighborZ[k]; - //unsigned int ksw = neighborY[kw]; - //unsigned int kne = k; - //unsigned int kse = ks; - //unsigned int knw = kw; - //unsigned int kbw = neighborZ[kw]; - //unsigned int kte = k; - //unsigned int kbe = kb; - //unsigned int ktw = kw; - //unsigned int kbs = neighborZ[ks]; - //unsigned int ktn = k; - //unsigned int kbn = kb; - //unsigned int kts = ks; - //unsigned int ktse = ks; - //unsigned int kbnw = kbw; - //unsigned int ktnw = kw; - //unsigned int kbse = kbs; - //unsigned int ktsw = ksw; - //unsigned int kbne = kb; - //unsigned int ktne = k; - //unsigned int kbsw = neighborZ[ksw]; - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - real mfcbb = (D.f[dP00])[k];//[ke ];// + c2over27 ;(D.f[dP00])[k ];//ke - real mfabb = (D.f[dM00])[kw];//[kw ];// + c2over27 ;(D.f[dM00])[kw ]; - real mfbcb = (D.f[d0P0])[k];//[kn ];// + c2over27 ;(D.f[d0P0])[k ];//kn - real mfbab = (D.f[d0M0])[ks];//[ks ];// + c2over27 ;(D.f[d0M0])[ks ]; - real mfbbc = (D.f[d00P])[k];//[kt ];// + c2over27 ;(D.f[d00P])[k ];//kt - real mfbba = (D.f[d00M])[kb];//[kb ];// + c2over27 ;(D.f[d00M])[kb ]; - real mfccb = (D.f[dPP0])[k];//[kne ];// + c1over54 ;(D.f[dPP0])[k ];//kne - real mfaab = (D.f[dMM0])[ksw];//[ksw ];// + c1over54 ;(D.f[dMM0])[ksw]; - real mfcab = (D.f[dPM0])[ks];//[kse ];// + c1over54 ;(D.f[dPM0])[ks ];//kse - real mfacb = (D.f[dMP0])[kw];//[knw ];// + c1over54 ;(D.f[dMP0])[kw ];//knw - real mfcbc = (D.f[dP0P])[k];//[kte ];// + c1over54 ;(D.f[dP0P])[k ];//kte - real mfaba = (D.f[dM0M])[kbw];//[kbw ];// + c1over54 ;(D.f[dM0M])[kbw]; - real mfcba = (D.f[dP0M])[kb];//[kbe ];// + c1over54 ;(D.f[dP0M])[kb ];//kbe - real mfabc = (D.f[dM0P])[kw];//[ktw ];// + c1over54 ;(D.f[dM0P])[kw ];//ktw - real mfbcc = (D.f[d0PP])[k];//[ktn ];// + c1over54 ;(D.f[d0PP])[k ];//ktn - real mfbaa = (D.f[d0MM])[kbs];//[kbs ];// + c1over54 ;(D.f[d0MM])[kbs]; - real mfbca = (D.f[d0PM])[kb];//[kbn ];// + c1over54 ;(D.f[d0PM])[kb ];//kbn - real mfbac = (D.f[d0MP])[ks];//[kts ];// + c1over54 ;(D.f[d0MP])[ks ];//kts - real mfbbb = (D.f[d000])[k];//[kzero];// + c8over27 ;(D.f[d000])[k ];//kzero - real mfccc = (D.f[dPPP])[k];//[ktne ];// + c1over216;(D.f[dPPP])[k ];//ktne - real mfaac = (D.f[dMMP])[ksw];//[ktsw ];// + c1over216;(D.f[dMMP])[ksw];//ktsw - real mfcac = (D.f[dPMP])[ks];//[ktse ];// + c1over216;(D.f[dPMP])[ks ];//ktse - real mfacc = (D.f[dMPP])[kw];//[ktnw ];// + c1over216;(D.f[dMPP])[kw ];//ktnw - real mfcca = (D.f[dPPM])[kb];//[kbne ];// + c1over216;(D.f[dPPM])[kb ];//kbne - real mfaaa = (D.f[dMMM])[kbsw];//[kbsw ];// + c1over216;(D.f[dMMM])[kbsw]; - real mfcaa = (D.f[dPMM])[kbs];//[kbse ];// + c1over216;(D.f[dPMM])[kbs];//kbse - real mfaca = (D.f[dMPM])[kbw];//[kbnw ];// + c1over216;(D.f[dMPM])[kbw];//kbnw - //////////////////////////////////////////////////////////////////////////////////// - //slow - //real oMdrho = one - ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + - // (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + - // ((mfabb+mfcbb) + (mfbab+mfbcb) + (mfbba+mfbbc)));//fehlt mfbbb - real vvx = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfcaa - mfacc) + (mfcca - mfaac))) + - (((mfcba - mfabc) + (mfcbc - mfaba)) + ((mfcab - mfacb) + (mfccb - mfaab))) + - (mfcbb - mfabb)); - real vvy = ((((mfccc - mfaaa) + (mfaca - mfcac)) + ((mfacc - mfcaa) + (mfcca - mfaac))) + - (((mfbca - mfbac) + (mfbcc - mfbaa)) + ((mfacb - mfcab) + (mfccb - mfaab))) + - (mfbcb - mfbab)); - real vvz = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfacc - mfcaa) + (mfaac - mfcca))) + - (((mfbac - mfbca) + (mfbcc - mfbaa)) + ((mfabc - mfcba) + (mfcbc - mfaba))) + - (mfbbc - mfbba)); - //////////////////////////////////////////////////////////////////////////////////// - //fast - real oMdrho = c1o1 - (mfccc + mfaaa + mfaca + mfcac + mfacc + mfcaa + mfaac + mfcca + - mfbac + mfbca + mfbaa + mfbcc + mfabc + mfcba + mfaba + mfcbc + mfacb + mfcab + mfaab + mfccb + - mfabb + mfcbb + mfbab + mfbcb + mfbba + mfbbc + mfbbb);//fehlt mfbbb nicht mehr - //real vvx =mfccc-mfaaa + mfcac-mfaca + mfcaa-mfacc + mfcca-mfaac + - // mfcba-mfabc + mfcbc-mfaba + mfcab-mfacb + mfccb-mfaab + - // mfcbb-mfabb; - //real vvy =mfccc-mfaaa + mfaca-mfcac + mfacc-mfcaa + mfcca-mfaac + - // mfbca-mfbac + mfbcc-mfbaa + mfacb-mfcab + mfccb-mfaab + - // mfbcb-mfbab; - //real vvz =mfccc-mfaaa + mfcac-mfaca + mfacc-mfcaa + mfaac-mfcca + - // mfbac-mfbca + mfbcc-mfbaa + mfabc-mfcba + mfcbc-mfaba + - // mfbbc-mfbba; - //////////////////////////////////////////////////////////////////////////////////// - // oMdrho assembler style -------> faaaaaastaaaa - // or much sloooowaaaa ... it dep�ndssssss on sadaku - real m0, m1, m2; - //real oMdrho; - //{ - // oMdrho=mfccc+mfaaa; - // m0=mfaca+mfcac; - // m1=mfacc+mfcaa; - // m2=mfaac+mfcca; - // oMdrho+=m0; - // m1+=m2; - // oMdrho+=m1; - // m0=mfbac+mfbca; - // m1=mfbaa+mfbcc; - // m0+=m1; - // m1=mfabc+mfcba; - // m2=mfaba+mfcbc; - // m1+=m2; - // m0+=m1; - // m1=mfacb+mfcab; - // m2=mfaab+mfccb; - // m1+=m2; - // m0+=m1; - // oMdrho+=m0; - // m0=mfabb+mfcbb; - // m1=mfbab+mfbcb; - // m2=mfbba+mfbbc; - // m0+=m1+m2; - // m0+=mfbbb; //hat gefehlt - // oMdrho = one - (oMdrho + m0); - //} - //real vvx; - real vx2; - //{ - // vvx = mfccc-mfaaa; - // m0 = mfcac-mfaca; - // m1 = mfcaa-mfacc; - // m2 = mfcca-mfaac; - // vvx+= m0; - // m1 += m2; - // vvx+= m1; - // vx2 = mfcba-mfabc; - // m0 = mfcbc-mfaba; - // m1 = mfcab-mfacb; - // m2 = mfccb-mfaab; - // vx2+= m0; - // m1 += m2; - // vx2+= m1; - // vvx+= vx2; - // vx2 = mfcbb-mfabb; - // vvx+= vx2; - //} - //real vvy; - real vy2; - //{ - // vvy = mfccc-mfaaa; - // m0 = mfaca-mfcac; - // m1 = mfacc-mfcaa; - // m2 = mfcca-mfaac; - // vvy+= m0; - // m1 += m2; - // vvy+= m1; - // vy2 = mfbca-mfbac; - // m0 = mfbcc-mfbaa; - // m1 = mfacb-mfcab; - // m2 = mfccb-mfaab; - // vy2+= m0; - // m1 += m2; - // vy2+= m1; - // vvy+= vy2; - // vy2 = mfbcb-mfbab; - // vvy+= vy2; - //} - //real vvz; - real vz2; - //{ - // vvz = mfccc-mfaaa; - // m0 = mfcac-mfaca; - // m1 = mfacc-mfcaa; - // m2 = mfaac-mfcca; - // vvz+= m0; - // m1 += m2; - // vvz+= m1; - // vz2 = mfbac-mfbca; - // m0 = mfbcc-mfbaa; - // m1 = mfabc-mfcba; - // m2 = mfcbc-mfaba; - // vz2+= m0; - // m1 += m2; - // vz2+= m1; - // vvz+= vz2; - // vz2 = mfbbc-mfbba; - // vvz+= vz2; - //} - vx2 = vvx*vvx; - vy2 = vvy*vvy; - vz2 = vvz*vvz; - //////////////////////////////////////////////////////////////////////////////////// - //real wadjust; - //real qudricLimit = 0.01f; - //real s9 = minusomega; - //test - //s9 = 0.; - //////////////////////////////////////////////////////////////////////////////////// - //Hin - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m2 = mfaaa + mfaac; - m1 = mfaac - mfaaa; - m0 = m2 + mfaab; - mfaaa = m0; - m0 += c1o36 * oMdrho; - mfaab = m1 - m0 * vvz; - mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfabc; - m1 = mfabc - mfaba; - m0 = m2 + mfabb; - mfaba = m0; - m0 += c1o9 * oMdrho; - mfabb = m1 - m0 * vvz; - mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfacc; - m1 = mfacc - mfaca; - m0 = m2 + mfacb; - mfaca = m0; - m0 += c1o36 * oMdrho; - mfacb = m1 - m0 * vvz; - mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbac; - m1 = mfbac - mfbaa; - m0 = m2 + mfbab; - mfbaa = m0; - m0 += c1o9 * oMdrho; - mfbab = m1 - m0 * vvz; - mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbba + mfbbc; - m1 = mfbbc - mfbba; - m0 = m2 + mfbbb; - mfbba = m0; - m0 += c4o9 * oMdrho; - mfbbb = m1 - m0 * vvz; - mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbca + mfbcc; - m1 = mfbcc - mfbca; - m0 = m2 + mfbcb; - mfbca = m0; - m0 += c1o9 * oMdrho; - mfbcb = m1 - m0 * vvz; - mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcac; - m1 = mfcac - mfcaa; - m0 = m2 + mfcab; - mfcaa = m0; - m0 += c1o36 * oMdrho; - mfcab = m1 - m0 * vvz; - mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcba + mfcbc; - m1 = mfcbc - mfcba; - m0 = m2 + mfcbb; - mfcba = m0; - m0 += c1o9 * oMdrho; - mfcbb = m1 - m0 * vvz; - mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcca + mfccc; - m1 = mfccc - mfcca; - m0 = m2 + mfccb; - mfcca = m0; - m0 += c1o36 * oMdrho; - mfccb = m1 - m0 * vvz; - mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m2 = mfaaa + mfaca; - m1 = mfaca - mfaaa; - m0 = m2 + mfaba; - mfaaa = m0; - m0 += c1o6 * oMdrho; - mfaba = m1 - m0 * vvy; - mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfacb; - m1 = mfacb - mfaab; - m0 = m2 + mfabb; - mfaab = m0; - mfabb = m1 - m0 * vvy; - mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfacc; - m1 = mfacc - mfaac; - m0 = m2 + mfabc; - mfaac = m0; - m0 += c1o18 * oMdrho; - mfabc = m1 - m0 * vvy; - mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbaa + mfbca; - m1 = mfbca - mfbaa; - m0 = m2 + mfbba; - mfbaa = m0; - m0 += c2o3 * oMdrho; - mfbba = m1 - m0 * vvy; - mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbab + mfbcb; - m1 = mfbcb - mfbab; - m0 = m2 + mfbbb; - mfbab = m0; - mfbbb = m1 - m0 * vvy; - mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfbac + mfbcc; - m1 = mfbcc - mfbac; - m0 = m2 + mfbbc; - mfbac = m0; - m0 += c2o9 * oMdrho; - mfbbc = m1 - m0 * vvy; - mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcaa + mfcca; - m1 = mfcca - mfcaa; - m0 = m2 + mfcba; - mfcaa = m0; - m0 += c1o6 * oMdrho; - mfcba = m1 - m0 * vvy; - mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcab + mfccb; - m1 = mfccb - mfcab; - m0 = m2 + mfcbb; - mfcab = m0; - mfcbb = m1 - m0 * vvy; - mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfcac + mfccc; - m1 = mfccc - mfcac; - m0 = m2 + mfcbc; - mfcac = m0; - m0 += c1o18 * oMdrho; - mfcbc = m1 - m0 * vvy; - mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m2 = mfaaa + mfcaa; - m1 = mfcaa - mfaaa; - m0 = m2 + mfbaa; - mfaaa = m0; - m0 += c1o1* oMdrho; - mfbaa = m1 - m0 * vvx; - mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaba + mfcba; - m1 = mfcba - mfaba; - m0 = m2 + mfbba; - mfaba = m0; - mfbba = m1 - m0 * vvx; - mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaca + mfcca; - m1 = mfcca - mfaca; - m0 = m2 + mfbca; - mfaca = m0; - m0 += c1o3 * oMdrho; - mfbca = m1 - m0 * vvx; - mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaab + mfcab; - m1 = mfcab - mfaab; - m0 = m2 + mfbab; - mfaab = m0; - mfbab = m1 - m0 * vvx; - mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabb + mfcbb; - m1 = mfcbb - mfabb; - m0 = m2 + mfbbb; - mfabb = m0; - mfbbb = m1 - m0 * vvx; - mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacb + mfccb; - m1 = mfccb - mfacb; - m0 = m2 + mfbcb; - mfacb = m0; - mfbcb = m1 - m0 * vvx; - mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfaac + mfcac; - m1 = mfcac - mfaac; - m0 = m2 + mfbac; - mfaac = m0; - m0 += c1o3 * oMdrho; - mfbac = m1 - m0 * vvx; - mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfabc + mfcbc; - m1 = mfcbc - mfabc; - m0 = m2 + mfbbc; - mfabc = m0; - mfbbc = m1 - m0 * vvx; - mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - m2 = mfacc + mfccc; - m1 = mfccc - mfacc; - m0 = m2 + mfbcc; - mfacc = m0; - m0 += c1o9 * oMdrho; - mfbcc = m1 - m0 * vvx; - mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - - - //////////////////////////////////////////////////////////////////////////////////// - // BGK - //////////////////////////////////////////////////////////////////////////////////// - ////2. - //mfabb += omega * (-mfabb); - //mfbab += omega * (-mfbab); - //mfbba += omega * (-mfbba); - // - //mfcaa += omega * (c1o3 * mfaaa - mfcaa); - //mfaca += omega * (c1o3 * mfaaa - mfaca); - //mfaac += omega * (c1o3 * mfaaa - mfaac); - // - ////3. - //mfabc += omega * (-mfabc); - //mfbac += omega * (-mfbac); - // - //mfacb += omega * (-mfacb); - //mfbca += omega * (-mfbca); - - //mfcab += omega * (-mfcab); - //mfcba += omega * (-mfcba); - - //mfbbb += omega * (-mfbbb); - - ////4. - //mfacc += omega * (c1o9 * mfaaa - mfacc); - //mfcac += omega * (c1o9 * mfaaa - mfcac); - //mfcca += omega * (c1o9 * mfaaa - mfcca); - - //mfbbc += omega * (-mfbbc); - //mfbcb += omega * (-mfbcb); - //mfcbb += omega * (-mfcbb); - - ////5. - //mfbcc += omega * (-mfbcc); - //mfcbc += omega * (-mfcbc); - //mfccb += omega * (-mfccb); - - ////6. - //mfccc += omega * (c1o27 * mfaaa - mfccc); - ////////////////////////////////////////////////////////////////////////////////////// - - - - ////////////////////////////////////////////////////////////////////////////////////////// - //////// Cumulants - ////////////////////////////////////////////////////////////////////////////////////////// - //////real OxxPyyPzz = one; - //////real OxyyPxzz = one;//two-omega;// - //////real OxyyMxzz = one;//two-omega;// - //////real O4 = one; - //////real O5 = one; - //////real O6 = one; - - ////////Cum 4. - //////real CUMcbb = mfcbb - ((mfcaa + c1o3) * mfabb + two* mfbba * mfbab); - //////real CUMbcb = mfbcb - ((mfaca + c1o3) * mfbab + two* mfbba * mfabb); - //////real CUMbbc = mfbbc - ((mfaac + c1o3) * mfbba + two* mfbab * mfabb); - - //////real CUMcca = mfcca - (mfcaa * mfaca + two* mfbba * mfbba)- c1o3 * (mfcaa + mfaca); - //////real CUMcac = mfcac - (mfcaa * mfaac + two* mfbab * mfbab)- c1o3 * (mfcaa + mfaac); - //////real CUMacc = mfacc - (mfaac * mfaca + two* mfabb * mfabb)- c1o3 * (mfaac + mfaca); - - ////////Cum 5. - //////real CUMbcc = mfbcc - (mfaac * mfbca + mfaca * mfbac + four* mfabb * mfbbb + two* (mfbab * mfacb + mfbba * mfabc)) //O(eps^5) - ////// - c1o3 * (mfbca + mfbac); //O(eps^3) - //////real CUMcbc = mfcbc - (mfaac * mfcba + mfcaa * mfabc + four* mfbab * mfbbb + two* (mfabb * mfcab + mfbba * mfbac)) //O(eps^5) - ////// - c1o3 * (mfcba + mfabc); //O(eps^3) - //////real CUMccb = mfccb - (mfcaa * mfacb + mfaca * mfcab + four* mfbba * mfbbb + two* (mfbab * mfbca + mfabb * mfcba)) //O(eps^5) - ////// - c1o3 * (mfacb + mfcab);//O(eps^3) - - ////////Cum 6. - //////real CUMccc = mfccc +(-four* mfbbb * mfbbb //O(eps^6) - ////// - (mfcaa * mfacc + mfaca * mfcac + mfaac * mfcca) // O(eps^4) - ////// - four* (mfabb * mfcbb + mfbac * mfbca + mfbba * mfbbc) // O(eps^6) - ////// - two* (mfbca * mfbac + mfcba * mfabc + mfcab * mfacb)) // O(esp^6) - ////// +( four* (mfbab * mfbab * mfaca + mfabb * mfabb * mfcaa + mfbba * mfbba * mfaac) //O(eps^6) - ////// + two* (mfcaa * mfaca * mfaac) //O(eps^6) - ////// + sixteen* mfbba * mfbab * mfabb) //O(eps^6) - ////// - c1o3* (mfacc + mfcac + mfcca) //O(eps^2) - ////// + c1o9* (mfcaa + mfaca + mfaac) //O(eps^2) - ////// +( two* (mfbab * mfbab + mfabb * mfabb + mfbba * mfbba)//O(eps^4) - ////// + (mfaac * mfaca + mfaac * mfcaa + mfaca * mfcaa)) * c2o3;//O(eps^4) - - - ////////2. - //////// linear combinations - //////real mxxPyyPzz = mfcaa + mfaca + mfaac; - //////real mxxMyy = mfcaa - mfaca; - //////real mxxMzz = mfcaa - mfaac; - - //////{ - ////// real dxux = c1o2 * ((-omega) * (mxxMyy + mxxMzz) + (mfaaa - mxxPyyPzz)); - ////// real dyuy = dxux + omega * c3o2 * mxxMyy; - ////// real dzuz = dxux + omega * c3o2 * mxxMzz; - - ////// //relax - ////// mxxPyyPzz += OxxPyyPzz*(mfaaa - mxxPyyPzz)- three* (one- c1o2 * OxxPyyPzz) * (vx2 * dxux + vy2 * dyuy + vz2 * dzuz); - ////// mxxMyy += omega * (-mxxMyy) - three* (one+ c1o2 * (-omega)) * (vx2 * dxux + vy2 * dyuy); - ////// mxxMzz += omega * (-mxxMzz) - three* (one+ c1o2 * (-omega)) * (vx2 * dxux + vz2 * dzuz); - //////} - //////mfabb += omega * (-mfabb); - //////mfbab += omega * (-mfbab); - //////mfbba += omega * (-mfbba); - - //////// linear combinations back - //////mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz); - //////mfaca = c1o3 * (-two* mxxMyy + mxxMzz + mxxPyyPzz); - //////mfaac = c1o3 * ( mxxMyy - two* mxxMzz + mxxPyyPzz); - - ////////3. - //////// linear combinations - //////real mxxyPyzz = mfcba + mfabc; - //////real mxxyMyzz = mfcba - mfabc; - - //////real mxxzPyyz = mfcab + mfacb; - //////real mxxzMyyz = mfcab - mfacb; - - //////real mxyyPxzz = mfbca + mfbac; - //////real mxyyMxzz = mfbca - mfbac; - - ////////relax - //////wadjust = OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); - //////mfbbb += wadjust * (-mfbbb); - //////wadjust = OxyyPxzz+(one-OxyyPxzz)*abs(mxxyPyzz)/(abs(mxxyPyzz)+qudricLimit); - //////mxxyPyzz += wadjust * (-mxxyPyzz); - //////wadjust = OxyyMxzz+(one-OxyyMxzz)*abs(mxxyMyzz)/(abs(mxxyMyzz)+qudricLimit); - //////mxxyMyzz += wadjust * (-mxxyMyzz); - //////wadjust = OxyyPxzz+(one-OxyyPxzz)*abs(mxxzPyyz)/(abs(mxxzPyyz)+qudricLimit); - //////mxxzPyyz += wadjust * (-mxxzPyyz); - //////wadjust = OxyyMxzz+(one-OxyyMxzz)*abs(mxxzMyyz)/(abs(mxxzMyyz)+qudricLimit); - //////mxxzMyyz += wadjust * (-mxxzMyyz); - //////wadjust = OxyyPxzz+(one-OxyyPxzz)*abs(mxyyPxzz)/(abs(mxyyPxzz)+qudricLimit); - //////mxyyPxzz += wadjust * (-mxyyPxzz); - //////wadjust = OxyyMxzz+(one-OxyyMxzz)*abs(mxyyMxzz)/(abs(mxyyMxzz)+qudricLimit); - //////mxyyMxzz += wadjust * (-mxyyMxzz); - - //////// linear combinations back - //////mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; - //////mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - //////mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; - //////mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - //////mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; - //////mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - ////////4. - //////CUMacc += O4 * (-CUMacc); - //////CUMcac += O4 * (-CUMcac); - //////CUMcca += O4 * (-CUMcca); - ////// - //////CUMbbc += O4 * (-CUMbbc); - //////CUMbcb += O4 * (-CUMbcb); - //////CUMcbb += O4 * (-CUMcbb); - ////// - ////////5. - //////CUMbcc += O5 * (-CUMbcc); - //////CUMcbc += O5 * (-CUMcbc); - //////CUMccb += O5 * (-CUMccb); - - ////////6. - //////CUMccc += O6 * (-CUMccc); - ////// - ////////back cumulants to central moments - ////////4. - //////mfcbb = CUMcbb + ((mfcaa + c1o3) * mfabb + two* mfbba * mfbab); - //////mfbcb = CUMbcb + ((mfaca + c1o3) * mfbab + two* mfbba * mfabb); - //////mfbbc = CUMbbc + ((mfaac + c1o3) * mfbba + two* mfbab * mfabb); - ////// - //////mfcca = CUMcca + (mfcaa * mfaca + two* mfbba * mfbba) + c1o3 * (mfcaa + mfaca); - //////mfcac = CUMcac + (mfcaa * mfaac + two* mfbab * mfbab) + c1o3 * (mfcaa + mfaac); - //////mfacc = CUMacc + (mfaac * mfaca + two* mfabb * mfabb) + c1o3 * (mfaac + mfaca); - - ////////5. - //////mfbcc = CUMbcc + (mfaac * mfbca + mfaca * mfbac + four* mfabb * mfbbb + two* (mfbab * mfacb + mfbba * mfabc)) + c1o3 * (mfbca + mfbac); - //////mfcbc = CUMcbc + (mfaac * mfcba + mfcaa * mfabc + four* mfbab * mfbbb + two* (mfabb * mfcab + mfbba * mfbac)) + c1o3 * (mfcba + mfabc); - //////mfccb = CUMccb + (mfcaa * mfacb + mfaca * mfcab + four* mfbba * mfbbb + two* (mfbab * mfbca + mfabb * mfcba)) + c1o3 * (mfacb + mfcab); - ////// - ////////6. - //////mfccc = CUMccc -((-four* mfbbb * mfbbb - ////// - (mfcaa * mfacc + mfaca * mfcac + mfaac * mfcca) - ////// - four* (mfabb * mfcbb + mfbac * mfbca + mfbba * mfbbc) - ////// - two* (mfbca * mfbac + mfcba * mfabc + mfcab * mfacb)) - ////// +( four* (mfbab * mfbab * mfaca + mfabb * mfabb * mfcaa + mfbba * mfbba * mfaac) - ////// + two* (mfcaa * mfaca * mfaac) - ////// + sixteen* mfbba * mfbab * mfabb) - ////// - c1o3* (mfacc + mfcac + mfcca) - ////// + c1o9* (mfcaa + mfaca + mfaac) - ////// +( two* (mfbab * mfbab + mfabb * mfabb + mfbba * mfbba) - ////// + (mfaac * mfaca + mfaac * mfcaa + mfaca * mfcaa)) * c2o3); - ////////////////////////////////////////////////////////////////////////////////////////// - - - - //////////////////////////////////////////////////////////////////////////////////// - // Cumulants - //////////////////////////////////////////////////////////////////////////////////// - real OxxPyyPzz = c1o1; - real OxyyPxzz = c8o1*(c2o1 - omega) / (c8o1 - omega);//one;//two-omega;//eight*(two-omega)/(eight -omega);//one;//omega;//two-omega;// - real OxyyMxzz = c8o1*(c2o1 - omega) / (c8o1 - omega);//one;//omega;//one;//eight*(two-omega)/(eight -omega);//one;//two-omega;//one;// - real O4 = c1o1; - real O5 = c1o1; - real O6 = c1o1; - - ////Cum 4. - //real CUMcbb; real CUMbcb; real CUMbbc; - //real CUMcca; real CUMcac; real CUMacc; - ////Cum 5. - //real CUMbcc; real CUMcbc; real CUMccb; - ////Cum 6. - //real CUMccc; - - //Cum 4. - real CUMcbb = mfcbb - ((mfcaa + c1o3 * oMdrho) * mfabb + c2o1 * mfbba * mfbab); // /rho - real CUMbcb = mfbcb - ((mfaca + c1o3 * oMdrho) * mfbab + c2o1 * mfbba * mfabb); // /rho - real CUMbbc = mfbbc - ((mfaac + c1o3 * oMdrho) * mfbba + c2o1 * mfbab * mfabb); // /rho - - real CUMcca = mfcca - ((mfcaa * mfaca + c2o1 * mfbba * mfbba) /* /rho*/ + c1o3 * (mfcaa + mfaca) * oMdrho + c1o9*(oMdrho - c1o1)*oMdrho); - real CUMcac = mfcac - ((mfcaa * mfaac + c2o1 * mfbab * mfbab) /* /rho*/ + c1o3 * (mfcaa + mfaac) * oMdrho + c1o9*(oMdrho - c1o1)*oMdrho); - real CUMacc = mfacc - ((mfaac * mfaca + c2o1 * mfabb * mfabb) /* /rho*/ + c1o3 * (mfaac + mfaca) * oMdrho + c1o9*(oMdrho - c1o1)*oMdrho); - - //Cum 5. - //real CUMbcc = mfbcc - (mfaac * mfbca + mfaca * mfbac + four * mfabb * mfbbb + two * (mfbab * mfacb + mfbba * mfabc)) //O(eps^5) - // - c1o3 * (mfbca + mfbac); //O(eps^3) - //real CUMcbc = mfcbc - (mfaac * mfcba + mfcaa * mfabc + four * mfbab * mfbbb + two * (mfabb * mfcab + mfbba * mfbac)) //O(eps^5) - // - c1o3 * (mfcba + mfabc); //O(eps^3) - //real CUMccb = mfccb - (mfcaa * mfacb + mfaca * mfcab + four * mfbba * mfbbb + two * (mfbab * mfbca + mfabb * mfcba)) //O(eps^5) - // - c1o3 * (mfacb + mfcab);//O(eps^3) - - real CUMbcc = mfbcc - (mfaac * mfbca + mfaca * mfbac + c4o1 * mfabb * mfbbb + c2o1 * (mfbab * mfacb + mfbba * mfabc)) - c1o3 * (mfbca + mfbac) * oMdrho; - real CUMcbc = mfcbc - (mfaac * mfcba + mfcaa * mfabc + c4o1 * mfbab * mfbbb + c2o1 * (mfabb * mfcab + mfbba * mfbac)) - c1o3 * (mfcba + mfabc) * oMdrho; - real CUMccb = mfccb - (mfcaa * mfacb + mfaca * mfcab + c4o1 * mfbba * mfbbb + c2o1 * (mfbab * mfbca + mfabb * mfcba)) - c1o3 * (mfacb + mfcab) * oMdrho; - - //Cum 6. - real CUMccc = mfccc + ((-c4o1 * mfbbb * mfbbb - - (mfcaa * mfacc + mfaca * mfcac + mfaac * mfcca) - - c4o1 * (mfabb * mfcbb + mfbab * mfbcb + mfbba * mfbbc) - - c2o1 * (mfbca * mfbac + mfcba * mfabc + mfcab * mfacb)) - + (c4o1 * (mfbab * mfbab * mfaca + mfabb * mfabb * mfcaa + mfbba * mfbba * mfaac) - + c2o1 * (mfcaa * mfaca * mfaac) - + c16o1 * mfbba * mfbab * mfabb) - - c1o3 * (mfacc + mfcac + mfcca) * oMdrho - c1o9*oMdrho*oMdrho - - c1o9 * (mfcaa + mfaca + mfaac) * oMdrho*(c1o1 - c2o1* oMdrho) - c1o27* oMdrho * oMdrho*(-c2o1* oMdrho) - + (c2o1 * (mfbab * mfbab + mfabb * mfabb + mfbba * mfbba) - + (mfaac * mfaca + mfaac * mfcaa + mfaca * mfcaa)) * c2o3*oMdrho) + c1o27*oMdrho; - - - - - - //2. - // linear combinations - real mxxPyyPzz = mfcaa + mfaca + mfaac; - real mxxMyy = mfcaa - mfaca; - real mxxMzz = mfcaa - mfaac; - - ////////////////////////////////////////////////////////////////////////// - //real magicBulk = (CUMacc + CUMcac + CUMcca)*(c1o1 / OxxPyyPzz - c1o2)*c3o2*8.; - - ////////////////////////////////////////////////////////////////////////// - //limiter-Scheise Teil 1 - //real oxxyy,oxxzz,oxy,oxz,oyz; - //real smag=0.001; - //oxxyy = omega+(one-omega)*abs(mxxMyy)/(abs(mxxMyy)+smag); - //oxxzz = omega+(one-omega)*abs(mxxMzz)/(abs(mxxMzz)+smag); - //oxy = omega+(one-omega)*abs(mfbba)/(abs(mfbba)+smag); - //oxz = omega+(one-omega)*abs(mfbab)/(abs(mfbab)+smag); - //oyz = omega+(one-omega)*abs(mfabb)/(abs(mfabb)+smag); - - //////////////////////////////////////////////////////////////////////////// - ////Teil 1b - //real constante = 1000.0; - //real nuEddi = constante * abs(mxxPyyPzz); - //real omegaLimit = one / (one / omega + three * nuEddi); - - //{ - // real dxux = c1o2 * (-omegaLimit) *(mxxMyy + mxxMzz) + OxxPyyPzz * (mfaaa - mxxPyyPzz); - // real dyuy = dxux + omegaLimit * c3o2 * mxxMyy; - // real dzuz = dxux + omegaLimit * c3o2 * mxxMzz; - - ////relax - //mxxPyyPzz += OxxPyyPzz*(mfaaa - mxxPyyPzz)- three * (one - c1o2 * OxxPyyPzz) * (vx2 * dxux + vy2 * dyuy + vz2 * dzuz); - //mxxMyy += omegaLimit * (-mxxMyy) - three * (one + c1o2 * (-omegaLimit)) * (vx2 * dxux + vy2 * dyuy); - //mxxMzz += omegaLimit * (-mxxMzz) - three * (one + c1o2 * (-omegaLimit)) * (vx2 * dxux + vz2 * dzuz); - - //} - //mfabb += omegaLimit * (-mfabb); - //mfbab += omegaLimit * (-mfbab); - //mfbba += omegaLimit * (-mfbba); - //////////////////////////////////////////////////////////////////////////// - - ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - ////incl. correction (hat noch nicht so gut funktioniert...Optimierungsbedarf??) - //{ - // real dxux = c1o2 * (-omega) *(mxxMyy + mxxMzz) + c1o2 * OxxPyyPzz * (mfaaa - mxxPyyPzz); - // real dyuy = dxux + omega * c3o2 * mxxMyy; - // real dzuz = dxux + omega * c3o2 * mxxMzz; - - // //relax - // mxxPyyPzz += OxxPyyPzz*(mfaaa - mxxPyyPzz)- three * (one - c1o2 * OxxPyyPzz) * (vx2 * dxux + vy2 * dyuy + vz2 * dzuz);//-magicBulk*OxxPyyPzz; - // mxxMyy += omega * (-mxxMyy) - three * (one + c1o2 * (-omega)) * (vx2 * dxux - vy2 * dyuy); - // mxxMzz += omega * (-mxxMzz) - three * (one + c1o2 * (-omega)) * (vx2 * dxux - vz2 * dzuz); - - // ////////////////////////////////////////////////////////////////////////// - // //limiter-Scheise Teil 2 - // //mxxMyy += oxxyy * (-mxxMyy) - three * (one + c1o2 * (-omega)) * (vx2 * dxux + vy2 * dyuy); - // //mxxMzz += oxxzz * (-mxxMzz) - three * (one + c1o2 * (-omega)) * (vx2 * dxux + vz2 * dzuz); - // ////////////////////////////////////////////////////////////////////////// - - //} - ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //no correction - mxxPyyPzz += OxxPyyPzz*(mfaaa - mxxPyyPzz);//-magicBulk*OxxPyyPzz; - mxxMyy += -(-omega) * (-mxxMyy); - mxxMzz += -(-omega) * (-mxxMzz); - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - mfabb += omega * (-mfabb); - mfbab += omega * (-mfbab); - mfbba += omega * (-mfbba); - - ////////////////////////////////////////////////////////////////////////// - //limiter-Scheise Teil 3 - //mfabb += oyz * (-mfabb); - //mfbab += oxz * (-mfbab); - //mfbba += oxy * (-mfbba); - ////////////////////////////////////////////////////////////////////////// - - // linear combinations back - mfcaa = c1o3 * (mxxMyy + mxxMzz + mxxPyyPzz); - mfaca = c1o3 * (-c2o1* mxxMyy + mxxMzz + mxxPyyPzz); - mfaac = c1o3 * (mxxMyy - c2o1* mxxMzz + mxxPyyPzz); - - //3. - // linear combinations - - real mxxyPyzz = mfcba + mfabc; - real mxxyMyzz = mfcba - mfabc; - - real mxxzPyyz = mfcab + mfacb; - real mxxzMyyz = mfcab - mfacb; - - real mxyyPxzz = mfbca + mfbac; - real mxyyMxzz = mfbca - mfbac; - - //relax - // wadjust = OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); - // mfbbb += wadjust * (-mfbbb); - // wadjust = OxyyPxzz+(one-OxyyPxzz)*abs(mxxyPyzz)/(abs(mxxyPyzz)+qudricLimit); - // mxxyPyzz += wadjust * (-mxxyPyzz); - // wadjust = OxyyMxzz+(one-OxyyMxzz)*abs(mxxyMyzz)/(abs(mxxyMyzz)+qudricLimit); - // mxxyMyzz += wadjust * (-mxxyMyzz); - // wadjust = OxyyPxzz+(one-OxyyPxzz)*abs(mxxzPyyz)/(abs(mxxzPyyz)+qudricLimit); - // mxxzPyyz += wadjust * (-mxxzPyyz); - // wadjust = OxyyMxzz+(one-OxyyMxzz)*abs(mxxzMyyz)/(abs(mxxzMyyz)+qudricLimit); - // mxxzMyyz += wadjust * (-mxxzMyyz); - // wadjust = OxyyPxzz+(one-OxyyPxzz)*abs(mxyyPxzz)/(abs(mxyyPxzz)+qudricLimit); - // mxyyPxzz += wadjust * (-mxyyPxzz); - // wadjust = OxyyMxzz+(one-OxyyMxzz)*abs(mxyyMxzz)/(abs(mxyyMxzz)+qudricLimit); - // mxyyMxzz += wadjust * (-mxyyMxzz); - mfbbb += OxyyMxzz * (-mfbbb); - mxxyPyzz += OxyyPxzz * (-mxxyPyzz); - mxxyMyzz += OxyyMxzz * (-mxxyMyzz); - mxxzPyyz += OxyyPxzz * (-mxxzPyyz); - mxxzMyyz += OxyyMxzz * (-mxxzMyyz); - mxyyPxzz += OxyyPxzz * (-mxyyPxzz); - mxyyMxzz += OxyyMxzz * (-mxyyMxzz); - - //// linear combinations back - ////generic - //mfcba = zero; - //mfabc = zero; - //mfcab = zero; - //mfacb = zero; - //mfbca = zero; - //mfbac = zero; - - mfcba = (mxxyMyzz + mxxyPyzz) * c1o2; - mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; - mfcab = (mxxzMyyz + mxxzPyyz) * c1o2; - mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; - mfbca = (mxyyMxzz + mxyyPxzz) * c1o2; - mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; - - //4. - //CUMacc = zero; - //CUMcac = zero; - //CUMcca = zero; - // - //CUMbbc = zero; - //CUMbcb = zero; - //CUMcbb = zero; - // - ////5. - //CUMbcc = zero; - //CUMcbc = zero; - //CUMccb = zero; - // - ////6. - //CUMccc = zero; - - //4. - CUMacc += O4 * (-CUMacc); - CUMcac += O4 * (-CUMcac); - CUMcca += O4 * (-CUMcca); - - CUMbbc += O4 * (-CUMbbc); - CUMbcb += O4 * (-CUMbcb); - CUMcbb += O4 * (-CUMcbb); - - //5. - CUMbcc += O5 * (-CUMbcc); - CUMcbc += O5 * (-CUMcbc); - CUMccb += O5 * (-CUMccb); - - //6. - CUMccc += O6 * (-CUMccc); - - - - //back cumulants to central moments - //4. - mfcbb = CUMcbb + ((mfcaa + c1o3 * oMdrho) * mfabb + c2o1 * mfbba * mfbab); - mfbcb = CUMbcb + ((mfaca + c1o3 * oMdrho) * mfbab + c2o1 * mfbba * mfabb); - mfbbc = CUMbbc + ((mfaac + c1o3 * oMdrho) * mfbba + c2o1 * mfbab * mfabb); - - mfcca = CUMcca + (mfcaa * mfaca + c2o1 * mfbba * mfbba) + c1o3 * (mfcaa + mfaca) * oMdrho + c1o9*(oMdrho - c1o1)*oMdrho; - mfcac = CUMcac + (mfcaa * mfaac + c2o1 * mfbab * mfbab) + c1o3 * (mfcaa + mfaac) * oMdrho + c1o9*(oMdrho - c1o1)*oMdrho; - mfacc = CUMacc + (mfaac * mfaca + c2o1 * mfabb * mfabb) + c1o3 * (mfaac + mfaca) * oMdrho + c1o9*(oMdrho - c1o1)*oMdrho; - - //5. - mfbcc = CUMbcc + (mfaac * mfbca + mfaca * mfbac + c4o1 * mfabb * mfbbb + c2o1 * (mfbab * mfacb + mfbba * mfabc)) + c1o3 * (mfbca + mfbac) * oMdrho; - mfcbc = CUMcbc + (mfaac * mfcba + mfcaa * mfabc + c4o1 * mfbab * mfbbb + c2o1 * (mfabb * mfcab + mfbba * mfbac)) + c1o3 * (mfcba + mfabc) * oMdrho; - mfccb = CUMccb + (mfcaa * mfacb + mfaca * mfcab + c4o1 * mfbba * mfbbb + c2o1 * (mfbab * mfbca + mfabb * mfcba)) + c1o3 * (mfacb + mfcab) * oMdrho; - - //6. - mfccc = CUMccc - ((-c4o1 * mfbbb * mfbbb - - (mfcaa * mfacc + mfaca * mfcac + mfaac * mfcca) - - c4o1 * (mfabb * mfcbb + mfbab * mfbcb + mfbba * mfbbc) - - c2o1 * (mfbca * mfbac + mfcba * mfabc + mfcab * mfacb)) - + (c4o1 * (mfbab * mfbab * mfaca + mfabb * mfabb * mfcaa + mfbba * mfbba * mfaac) - + c2o1 * (mfcaa * mfaca * mfaac) - + c16o1 * mfbba * mfbab * mfabb) - - c1o3 * (mfacc + mfcac + mfcca) * oMdrho - c1o9*oMdrho*oMdrho - - c1o9 * (mfcaa + mfaca + mfaac) * oMdrho*(c1o1 - c2o1* oMdrho) - c1o27* oMdrho * oMdrho*(-c2o1* oMdrho) - + (c2o1 * (mfbab * mfbab + mfabb * mfabb + mfbba * mfbba) - + (mfaac * mfaca + mfaac * mfcaa + mfaca * mfcaa)) * c2o3*oMdrho) - c1o27*oMdrho; - //////////////////////////////////////////////////////////////////////////////////// - - - //////////////////////////////////////////////////////////////////////////////////// - //back - //////////////////////////////////////////////////////////////////////////////////// - //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Z - Dir - m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1* oMdrho) * (vz2 - vvz) * c1o2; - m1 = -mfaac - c2o1* mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1* oMdrho * vz2; - m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1* oMdrho) * (vz2 + vvz) * c1o2; - mfaaa = m0; - mfaab = m1; - mfaac = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * (vz2 - vvz) * c1o2; - m1 = -mfabc - c2o1* mfabb * vvz + mfaba * (c1o1 - vz2); - m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * (vz2 + vvz) * c1o2; - mfaba = m0; - mfabb = m1; - mfabc = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * (vz2 - vvz) * c1o2; - m1 = -mfacc - c2o1* mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * (vz2 + vvz) * c1o2; - mfaca = m0; - mfacb = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * (vz2 - vvz) * c1o2; - m1 = -mfbac - c2o1* mfbab * vvz + mfbaa * (c1o1 - vz2); - m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * (vz2 + vvz) * c1o2; - mfbaa = m0; - mfbab = m1; - mfbac = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * (vz2 - vvz) * c1o2; - m1 = -mfbbc - c2o1* mfbbb * vvz + mfbba * (c1o1 - vz2); - m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * (vz2 + vvz) * c1o2; - mfbba = m0; - mfbbb = m1; - mfbbc = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * (vz2 - vvz) * c1o2; - m1 = -mfbcc - c2o1* mfbcb * vvz + mfbca * (c1o1 - vz2); - m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * (vz2 + vvz) * c1o2; - mfbca = m0; - mfbcb = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * (vz2 - vvz) * c1o2; - m1 = -mfcac - c2o1* mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; - m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * (vz2 + vvz) * c1o2; - mfcaa = m0; - mfcab = m1; - mfcac = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * (vz2 - vvz) * c1o2; - m1 = -mfcbc - c2o1* mfcbb * vvz + mfcba * (c1o1 - vz2); - m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * (vz2 + vvz) * c1o2; - mfcba = m0; - mfcbb = m1; - mfcbc = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * (vz2 - vvz) * c1o2; - m1 = -mfccc - c2o1* mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; - m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * (vz2 + vvz) * c1o2; - mfcca = m0; - mfccb = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // Y - Dir - m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * (vy2 - vvy) * c1o2; - m1 = -mfaca - c2o1* mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * (vy2 + vvy) * c1o2; - mfaaa = m0; - mfaba = m1; - mfaca = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * (vy2 - vvy) * c1o2; - m1 = -mfacb - c2o1* mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; - m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * (vy2 + vvy) * c1o2; - mfaab = m0; - mfabb = m1; - mfacb = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * (vy2 - vvy) * c1o2; - m1 = -mfacc - c2o1* mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; - m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * (vy2 + vvy) * c1o2; - mfaac = m0; - mfabc = m1; - mfacc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * (vy2 - vvy) * c1o2; - m1 = -mfbca - c2o1* mfbba * vvy + mfbaa * (c1o1 - vy2); - m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * (vy2 + vvy) * c1o2; - mfbaa = m0; - mfbba = m1; - mfbca = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * (vy2 - vvy) * c1o2; - m1 = -mfbcb - c2o1* mfbbb * vvy + mfbab * (c1o1 - vy2); - m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * (vy2 + vvy) * c1o2; - mfbab = m0; - mfbbb = m1; - mfbcb = m2; - /////////b////////////////////////////////////////////////////////////////////////// - m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * (vy2 - vvy) * c1o2; - m1 = -mfbcc - c2o1* mfbbc * vvy + mfbac * (c1o1 - vy2); - m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * (vy2 + vvy) * c1o2; - mfbac = m0; - mfbbc = m1; - mfbcc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * (vy2 - vvy) * c1o2; - m1 = -mfcca - c2o1* mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * (vy2 + vvy) * c1o2; - mfcaa = m0; - mfcba = m1; - mfcca = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * (vy2 - vvy) * c1o2; - m1 = -mfccb - c2o1* mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; - m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * (vy2 + vvy) * c1o2; - mfcab = m0; - mfcbb = m1; - mfccb = m2; - /////////c////////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * (vy2 - vvy) * c1o2; - m1 = -mfccc - c2o1* mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; - m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * (vy2 + vvy) * c1o2; - mfcac = m0; - mfcbc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren - //////////////////////////////////////////////////////////////////////////////////// - // X - Dir - m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * (vx2 - vvx) * c1o2; - m1 = -mfcaa - c2o1* mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * (vx2 + vvx) * c1o2; - mfaaa = m0; - mfbaa = m1; - mfcaa = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * (vx2 - vvx) * c1o2; - m1 = -mfcba - c2o1* mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * (vx2 + vvx) * c1o2; - mfaba = m0; - mfbba = m1; - mfcba = m2; - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * (vx2 - vvx) * c1o2; - m1 = -mfcca - c2o1* mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * (vx2 + vvx) * c1o2; - mfaca = m0; - mfbca = m1; - mfcca = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * (vx2 - vvx) * c1o2; - m1 = -mfcab - c2o1* mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * (vx2 + vvx) * c1o2; - mfaab = m0; - mfbab = m1; - mfcab = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * (vx2 - vvx) * c1o2; - m1 = -mfcbb - c2o1* mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; - m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * (vx2 + vvx) * c1o2; - mfabb = m0; - mfbbb = m1; - mfcbb = m2; - ///////////b//////////////////////////////////////////////////////////////////////// - m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * (vx2 - vvx) * c1o2; - m1 = -mfccb - c2o1* mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * (vx2 + vvx) * c1o2; - mfacb = m0; - mfbcb = m1; - mfccb = m2; - //////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////// - m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * (vx2 - vvx) * c1o2; - m1 = -mfcac - c2o1* mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * (vx2 + vvx) * c1o2; - mfaac = m0; - mfbac = m1; - mfcac = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * (vx2 - vvx) * c1o2; - m1 = -mfcbc - c2o1* mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; - m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * (vx2 + vvx) * c1o2; - mfabc = m0; - mfbbc = m1; - mfcbc = m2; - ///////////c//////////////////////////////////////////////////////////////////////// - m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * (vx2 - vvx) * c1o2; - m1 = -mfccc - c2o1* mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; - m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * (vx2 + vvx) * c1o2; - mfacc = m0; - mfbcc = m1; - mfccc = m2; - //////////////////////////////////////////////////////////////////////////////////// - - - //////////////////////////////////////////////////////////////////////////////////// - (D.f[dP00])[k] = mfabb;//(D.f[ dP00 ])[ke ] = mfabb;// - c2over27 ; (D.f[ dP00 ])[k ] - (D.f[dM00])[kw] = mfcbb;//(D.f[ dM00 ])[kw ] = mfcbb;// - c2over27 ; (D.f[ dM00 ])[kw ] - (D.f[d0P0])[k] = mfbab;//(D.f[ d0P0 ])[kn ] = mfbab;// - c2over27 ; (D.f[ d0P0 ])[k ] - (D.f[d0M0])[ks] = mfbcb;//(D.f[ d0M0 ])[ks ] = mfbcb;// - c2over27 ; (D.f[ d0M0 ])[ks ] - (D.f[d00P])[k] = mfbba;//(D.f[ d00P ])[kt ] = mfbba;// - c2over27 ; (D.f[ d00P ])[k ] - (D.f[d00M])[kb] = mfbbc;//(D.f[ d00M ])[kb ] = mfbbc;// - c2over27 ; (D.f[ d00M ])[kb ] - (D.f[dPP0])[k] = mfaab;//(D.f[ dPP0 ])[kne ] = mfaab;// - c1over54 ; (D.f[ dPP0 ])[k ] - (D.f[dMM0])[ksw] = mfccb;//(D.f[ dMM0 ])[ksw ] = mfccb;// - c1over54 ; (D.f[ dMM0 ])[ksw ] - (D.f[dPM0])[ks] = mfacb;//(D.f[ dPM0 ])[kse ] = mfacb;// - c1over54 ; (D.f[ dPM0 ])[ks ] - (D.f[dMP0])[kw] = mfcab;//(D.f[ dMP0 ])[knw ] = mfcab;// - c1over54 ; (D.f[ dMP0 ])[kw ] - (D.f[dP0P])[k] = mfaba;//(D.f[ dP0P ])[kte ] = mfaba;// - c1over54 ; (D.f[ dP0P ])[k ] - (D.f[dM0M])[kbw] = mfcbc;//(D.f[ dM0M ])[kbw ] = mfcbc;// - c1over54 ; (D.f[ dM0M ])[kbw ] - (D.f[dP0M])[kb] = mfabc;//(D.f[ dP0M ])[kbe ] = mfabc;// - c1over54 ; (D.f[ dP0M ])[kb ] - (D.f[dM0P])[kw] = mfcba;//(D.f[ dM0P ])[ktw ] = mfcba;// - c1over54 ; (D.f[ dM0P ])[kw ] - (D.f[d0PP])[k] = mfbaa;//(D.f[ d0PP ])[ktn ] = mfbaa;// - c1over54 ; (D.f[ d0PP ])[k ] - (D.f[d0MM])[kbs] = mfbcc;//(D.f[ d0MM ])[kbs ] = mfbcc;// - c1over54 ; (D.f[ d0MM ])[kbs ] - (D.f[d0PM])[kb] = mfbac;//(D.f[ d0PM ])[kbn ] = mfbac;// - c1over54 ; (D.f[ d0PM ])[kb ] - (D.f[d0MP])[ks] = mfbca;//(D.f[ d0MP ])[kts ] = mfbca;// - c1over54 ; (D.f[ d0MP ])[ks ] - (D.f[d000])[k] = mfbbb;//(D.f[ d000])[kzero] = mfbbb;// - c8over27 ; (D.f[ d000])[k ] - (D.f[dPPP])[k] = mfaaa;//(D.f[ dPPP ])[ktne ] = mfaaa;// - c1over216; (D.f[ dPPP ])[k ] - (D.f[dPMP])[ks] = mfaca;//(D.f[ dPMP ])[ktse ] = mfaca;// - c1over216; (D.f[ dPMP ])[ks ] - (D.f[dPPM])[kb] = mfaac;//(D.f[ dPPM ])[kbne ] = mfaac;// - c1over216; (D.f[ dPPM ])[kb ] - (D.f[dPMM])[kbs] = mfacc;//(D.f[ dPMM ])[kbse ] = mfacc;// - c1over216; (D.f[ dPMM ])[kbs ] - (D.f[dMPP])[kw] = mfcaa;//(D.f[ dMPP ])[ktnw ] = mfcaa;// - c1over216; (D.f[ dMPP ])[kw ] - (D.f[dMMP])[ksw] = mfcca;//(D.f[ dMMP ])[ktsw ] = mfcca;// - c1over216; (D.f[ dMMP ])[ksw ] - (D.f[dMPM])[kbw] = mfcac;//(D.f[ dMPM ])[kbnw ] = mfcac;// - c1over216; (D.f[ dMPM ])[kbw ] - (D.f[dMMM])[kbsw] = mfccc;//(D.f[ dMMM ])[kbsw ] = mfccc;// - c1over216; (D.f[ dMMM ])[kbsw] - //////////////////////////////////////////////////////////////////////////////////// - } - } + //////////////////////////////////////////////////////////////////////////////// + const unsigned x = threadIdx.x; // Globaler x-Index + const unsigned y = blockIdx.x; // Globaler y-Index + const unsigned z = blockIdx.y; // Globaler z-Index + + const unsigned nx = blockDim.x; + const unsigned ny = gridDim.x; + + const unsigned k = nx*(ny*z + y) + x; + ////////////////////////////////////////////////////////////////////////// + + if (k<size_Mat) + { + //////////////////////////////////////////////////////////////////////////////// + unsigned int BC; + BC = bcMatD[k]; + + if ((BC != GEO_SOLID) && (BC != GEO_VOID)) + { + Distributions27 D; + if (EvenOrOdd == true) + { + D.f[dP00] = &DDStart[dP00 * size_Mat]; + D.f[dM00] = &DDStart[dM00 * size_Mat]; + D.f[d0P0] = &DDStart[d0P0 * size_Mat]; + D.f[d0M0] = &DDStart[d0M0 * size_Mat]; + D.f[d00P] = &DDStart[d00P * size_Mat]; + D.f[d00M] = &DDStart[d00M * size_Mat]; + D.f[dPP0] = &DDStart[dPP0 * size_Mat]; + D.f[dMM0] = &DDStart[dMM0 * size_Mat]; + D.f[dPM0] = &DDStart[dPM0 * size_Mat]; + D.f[dMP0] = &DDStart[dMP0 * size_Mat]; + D.f[dP0P] = &DDStart[dP0P * size_Mat]; + D.f[dM0M] = &DDStart[dM0M * size_Mat]; + D.f[dP0M] = &DDStart[dP0M * size_Mat]; + D.f[dM0P] = &DDStart[dM0P * size_Mat]; + D.f[d0PP] = &DDStart[d0PP * size_Mat]; + D.f[d0MM] = &DDStart[d0MM * size_Mat]; + D.f[d0PM] = &DDStart[d0PM * size_Mat]; + D.f[d0MP] = &DDStart[d0MP * size_Mat]; + D.f[d000] = &DDStart[d000 * size_Mat]; + D.f[dPPP] = &DDStart[dPPP * size_Mat]; + D.f[dMMP] = &DDStart[dMMP * size_Mat]; + D.f[dPMP] = &DDStart[dPMP * size_Mat]; + D.f[dMPP] = &DDStart[dMPP * size_Mat]; + D.f[dPPM] = &DDStart[dPPM * size_Mat]; + D.f[dMMM] = &DDStart[dMMM * size_Mat]; + D.f[dPMM] = &DDStart[dPMM * size_Mat]; + D.f[dMPM] = &DDStart[dMPM * size_Mat]; + } + else + { + D.f[dM00] = &DDStart[dP00 * size_Mat]; + D.f[dP00] = &DDStart[dM00 * size_Mat]; + D.f[d0M0] = &DDStart[d0P0 * size_Mat]; + D.f[d0P0] = &DDStart[d0M0 * size_Mat]; + D.f[d00M] = &DDStart[d00P * size_Mat]; + D.f[d00P] = &DDStart[d00M * size_Mat]; + D.f[dMM0] = &DDStart[dPP0 * size_Mat]; + D.f[dPP0] = &DDStart[dMM0 * size_Mat]; + D.f[dMP0] = &DDStart[dPM0 * size_Mat]; + D.f[dPM0] = &DDStart[dMP0 * size_Mat]; + D.f[dM0M] = &DDStart[dP0P * size_Mat]; + D.f[dP0P] = &DDStart[dM0M * size_Mat]; + D.f[dM0P] = &DDStart[dP0M * size_Mat]; + D.f[dP0M] = &DDStart[dM0P * size_Mat]; + D.f[d0MM] = &DDStart[d0PP * size_Mat]; + D.f[d0PP] = &DDStart[d0MM * size_Mat]; + D.f[d0MP] = &DDStart[d0PM * size_Mat]; + D.f[d0PM] = &DDStart[d0MP * size_Mat]; + D.f[d000] = &DDStart[d000 * size_Mat]; + D.f[dMMM] = &DDStart[dPPP * size_Mat]; + D.f[dPPM] = &DDStart[dMMP * size_Mat]; + D.f[dMPM] = &DDStart[dPMP * size_Mat]; + D.f[dPMM] = &DDStart[dMPP * size_Mat]; + D.f[dMMP] = &DDStart[dPPM * size_Mat]; + D.f[dPPP] = &DDStart[dMMM * size_Mat]; + D.f[dMPP] = &DDStart[dPMM * size_Mat]; + D.f[dPMP] = &DDStart[dMPM * size_Mat]; + } + + //////////////////////////////////////////////////////////////////////////////// + //index + //unsigned int kzero= k; + //unsigned int ke = k; + unsigned int kw = neighborX[k]; + //unsigned int kn = k; + unsigned int ks = neighborY[k]; + //unsigned int kt = k; + unsigned int kb = neighborZ[k]; + unsigned int ksw = neighborY[kw]; + //unsigned int kne = k; + //unsigned int kse = ks; + //unsigned int knw = kw; + unsigned int kbw = neighborZ[kw]; + //unsigned int kte = k; + //unsigned int kbe = kb; + //unsigned int ktw = kw; + unsigned int kbs = neighborZ[ks]; + //unsigned int ktn = k; + //unsigned int kbn = kb; + //unsigned int kts = ks; + //unsigned int ktse = ks; + //unsigned int kbnw = kbw; + //unsigned int ktnw = kw; + //unsigned int kbse = kbs; + //unsigned int ktsw = ksw; + //unsigned int kbne = kb; + //unsigned int ktne = k; + unsigned int kbsw = neighborZ[ksw]; + + //unsigned int kzero= k; + //unsigned int ke = k; + //unsigned int kw = neighborX[k]; + //unsigned int kn = k; + //unsigned int ks = neighborY[k]; + //unsigned int kt = k; + //unsigned int kb = neighborZ[k]; + //unsigned int ksw = neighborY[kw]; + //unsigned int kne = k; + //unsigned int kse = ks; + //unsigned int knw = kw; + //unsigned int kbw = neighborZ[kw]; + //unsigned int kte = k; + //unsigned int kbe = kb; + //unsigned int ktw = kw; + //unsigned int kbs = neighborZ[ks]; + //unsigned int ktn = k; + //unsigned int kbn = kb; + //unsigned int kts = ks; + //unsigned int ktse = ks; + //unsigned int kbnw = kbw; + //unsigned int ktnw = kw; + //unsigned int kbse = kbs; + //unsigned int ktsw = ksw; + //unsigned int kbne = kb; + //unsigned int ktne = k; + //unsigned int kbsw = neighborZ[ksw]; + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + real mfcbb = (D.f[dP00])[k];//[ke ];// + c2over27 ;(D.f[dP00])[k ];//ke + real mfabb = (D.f[dM00])[kw];//[kw ];// + c2over27 ;(D.f[dM00])[kw ]; + real mfbcb = (D.f[d0P0])[k];//[kn ];// + c2over27 ;(D.f[d0P0])[k ];//kn + real mfbab = (D.f[d0M0])[ks];//[ks ];// + c2over27 ;(D.f[d0M0])[ks ]; + real mfbbc = (D.f[d00P])[k];//[kt ];// + c2over27 ;(D.f[d00P])[k ];//kt + real mfbba = (D.f[d00M])[kb];//[kb ];// + c2over27 ;(D.f[d00M])[kb ]; + real mfccb = (D.f[dPP0])[k];//[kne ];// + c1over54 ;(D.f[dPP0])[k ];//kne + real mfaab = (D.f[dMM0])[ksw];//[ksw ];// + c1over54 ;(D.f[dMM0])[ksw]; + real mfcab = (D.f[dPM0])[ks];//[kse ];// + c1over54 ;(D.f[dPM0])[ks ];//kse + real mfacb = (D.f[dMP0])[kw];//[knw ];// + c1over54 ;(D.f[dMP0])[kw ];//knw + real mfcbc = (D.f[dP0P])[k];//[kte ];// + c1over54 ;(D.f[dP0P])[k ];//kte + real mfaba = (D.f[dM0M])[kbw];//[kbw ];// + c1over54 ;(D.f[dM0M])[kbw]; + real mfcba = (D.f[dP0M])[kb];//[kbe ];// + c1over54 ;(D.f[dP0M])[kb ];//kbe + real mfabc = (D.f[dM0P])[kw];//[ktw ];// + c1over54 ;(D.f[dM0P])[kw ];//ktw + real mfbcc = (D.f[d0PP])[k];//[ktn ];// + c1over54 ;(D.f[d0PP])[k ];//ktn + real mfbaa = (D.f[d0MM])[kbs];//[kbs ];// + c1over54 ;(D.f[d0MM])[kbs]; + real mfbca = (D.f[d0PM])[kb];//[kbn ];// + c1over54 ;(D.f[d0PM])[kb ];//kbn + real mfbac = (D.f[d0MP])[ks];//[kts ];// + c1over54 ;(D.f[d0MP])[ks ];//kts + real mfbbb = (D.f[d000])[k];//[kzero];// + c8over27 ;(D.f[d000])[k ];//kzero + real mfccc = (D.f[dPPP])[k];//[ktne ];// + c1over216;(D.f[dPPP])[k ];//ktne + real mfaac = (D.f[dMMP])[ksw];//[ktsw ];// + c1over216;(D.f[dMMP])[ksw];//ktsw + real mfcac = (D.f[dPMP])[ks];//[ktse ];// + c1over216;(D.f[dPMP])[ks ];//ktse + real mfacc = (D.f[dMPP])[kw];//[ktnw ];// + c1over216;(D.f[dMPP])[kw ];//ktnw + real mfcca = (D.f[dPPM])[kb];//[kbne ];// + c1over216;(D.f[dPPM])[kb ];//kbne + real mfaaa = (D.f[dMMM])[kbsw];//[kbsw ];// + c1over216;(D.f[dMMM])[kbsw]; + real mfcaa = (D.f[dPMM])[kbs];//[kbse ];// + c1over216;(D.f[dPMM])[kbs];//kbse + real mfaca = (D.f[dMPM])[kbw];//[kbnw ];// + c1over216;(D.f[dMPM])[kbw];//kbnw + //////////////////////////////////////////////////////////////////////////////////// + //slow + //real oMdrho = one - ((((mfccc+mfaaa) + (mfaca+mfcac)) + ((mfacc+mfcaa) + (mfaac+mfcca))) + + // (((mfbac+mfbca) + (mfbaa+mfbcc)) + ((mfabc+mfcba) + (mfaba+mfcbc)) + ((mfacb+mfcab) + (mfaab+mfccb))) + + // ((mfabb+mfcbb) + (mfbab+mfbcb) + (mfbba+mfbbc)));//fehlt mfbbb + real vvx = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfcaa - mfacc) + (mfcca - mfaac))) + + (((mfcba - mfabc) + (mfcbc - mfaba)) + ((mfcab - mfacb) + (mfccb - mfaab))) + + (mfcbb - mfabb)); + real vvy = ((((mfccc - mfaaa) + (mfaca - mfcac)) + ((mfacc - mfcaa) + (mfcca - mfaac))) + + (((mfbca - mfbac) + (mfbcc - mfbaa)) + ((mfacb - mfcab) + (mfccb - mfaab))) + + (mfbcb - mfbab)); + real vvz = ((((mfccc - mfaaa) + (mfcac - mfaca)) + ((mfacc - mfcaa) + (mfaac - mfcca))) + + (((mfbac - mfbca) + (mfbcc - mfbaa)) + ((mfabc - mfcba) + (mfcbc - mfaba))) + + (mfbbc - mfbba)); + //////////////////////////////////////////////////////////////////////////////////// + //fast + real oMdrho = c1o1 - (mfccc + mfaaa + mfaca + mfcac + mfacc + mfcaa + mfaac + mfcca + + mfbac + mfbca + mfbaa + mfbcc + mfabc + mfcba + mfaba + mfcbc + mfacb + mfcab + mfaab + mfccb + + mfabb + mfcbb + mfbab + mfbcb + mfbba + mfbbc + mfbbb);//fehlt mfbbb nicht mehr + //real vvx =mfccc-mfaaa + mfcac-mfaca + mfcaa-mfacc + mfcca-mfaac + + // mfcba-mfabc + mfcbc-mfaba + mfcab-mfacb + mfccb-mfaab + + // mfcbb-mfabb; + //real vvy =mfccc-mfaaa + mfaca-mfcac + mfacc-mfcaa + mfcca-mfaac + + // mfbca-mfbac + mfbcc-mfbaa + mfacb-mfcab + mfccb-mfaab + + // mfbcb-mfbab; + //real vvz =mfccc-mfaaa + mfcac-mfaca + mfacc-mfcaa + mfaac-mfcca + + // mfbac-mfbca + mfbcc-mfbaa + mfabc-mfcba + mfcbc-mfaba + + // mfbbc-mfbba; + //////////////////////////////////////////////////////////////////////////////////// + // oMdrho assembler style -------> faaaaaastaaaa + // or much sloooowaaaa ... it dep�ndssssss on sadaku + real m0, m1, m2; + //real oMdrho; + //{ + // oMdrho=mfccc+mfaaa; + // m0=mfaca+mfcac; + // m1=mfacc+mfcaa; + // m2=mfaac+mfcca; + // oMdrho+=m0; + // m1+=m2; + // oMdrho+=m1; + // m0=mfbac+mfbca; + // m1=mfbaa+mfbcc; + // m0+=m1; + // m1=mfabc+mfcba; + // m2=mfaba+mfcbc; + // m1+=m2; + // m0+=m1; + // m1=mfacb+mfcab; + // m2=mfaab+mfccb; + // m1+=m2; + // m0+=m1; + // oMdrho+=m0; + // m0=mfabb+mfcbb; + // m1=mfbab+mfbcb; + // m2=mfbba+mfbbc; + // m0+=m1+m2; + // m0+=mfbbb; //hat gefehlt + // oMdrho = one - (oMdrho + m0); + //} + //real vvx; + real vx2; + //{ + // vvx = mfccc-mfaaa; + // m0 = mfcac-mfaca; + // m1 = mfcaa-mfacc; + // m2 = mfcca-mfaac; + // vvx+= m0; + // m1 += m2; + // vvx+= m1; + // vx2 = mfcba-mfabc; + // m0 = mfcbc-mfaba; + // m1 = mfcab-mfacb; + // m2 = mfccb-mfaab; + // vx2+= m0; + // m1 += m2; + // vx2+= m1; + // vvx+= vx2; + // vx2 = mfcbb-mfabb; + // vvx+= vx2; + //} + //real vvy; + real vy2; + //{ + // vvy = mfccc-mfaaa; + // m0 = mfaca-mfcac; + // m1 = mfacc-mfcaa; + // m2 = mfcca-mfaac; + // vvy+= m0; + // m1 += m2; + // vvy+= m1; + // vy2 = mfbca-mfbac; + // m0 = mfbcc-mfbaa; + // m1 = mfacb-mfcab; + // m2 = mfccb-mfaab; + // vy2+= m0; + // m1 += m2; + // vy2+= m1; + // vvy+= vy2; + // vy2 = mfbcb-mfbab; + // vvy+= vy2; + //} + //real vvz; + real vz2; + //{ + // vvz = mfccc-mfaaa; + // m0 = mfcac-mfaca; + // m1 = mfacc-mfcaa; + // m2 = mfaac-mfcca; + // vvz+= m0; + // m1 += m2; + // vvz+= m1; + // vz2 = mfbac-mfbca; + // m0 = mfbcc-mfbaa; + // m1 = mfabc-mfcba; + // m2 = mfcbc-mfaba; + // vz2+= m0; + // m1 += m2; + // vz2+= m1; + // vvz+= vz2; + // vz2 = mfbbc-mfbba; + // vvz+= vz2; + //} + vx2 = vvx*vvx; + vy2 = vvy*vvy; + vz2 = vvz*vvz; + //////////////////////////////////////////////////////////////////////////////////// + //real wadjust; + //real qudricLimit = 0.01f; + //real s9 = minusomega; + //test + //s9 = 0.; + //////////////////////////////////////////////////////////////////////////////////// + //Hin + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m2 = mfaaa + mfaac; + m1 = mfaac - mfaaa; + m0 = m2 + mfaab; + mfaaa = m0; + m0 += c1o36 * oMdrho; + mfaab = m1 - m0 * vvz; + mfaac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfabc; + m1 = mfabc - mfaba; + m0 = m2 + mfabb; + mfaba = m0; + m0 += c1o9 * oMdrho; + mfabb = m1 - m0 * vvz; + mfabc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfacc; + m1 = mfacc - mfaca; + m0 = m2 + mfacb; + mfaca = m0; + m0 += c1o36 * oMdrho; + mfacb = m1 - m0 * vvz; + mfacc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbac; + m1 = mfbac - mfbaa; + m0 = m2 + mfbab; + mfbaa = m0; + m0 += c1o9 * oMdrho; + mfbab = m1 - m0 * vvz; + mfbac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbba + mfbbc; + m1 = mfbbc - mfbba; + m0 = m2 + mfbbb; + mfbba = m0; + m0 += c4o9 * oMdrho; + mfbbb = m1 - m0 * vvz; + mfbbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbca + mfbcc; + m1 = mfbcc - mfbca; + m0 = m2 + mfbcb; + mfbca = m0; + m0 += c1o9 * oMdrho; + mfbcb = m1 - m0 * vvz; + mfbcc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcac; + m1 = mfcac - mfcaa; + m0 = m2 + mfcab; + mfcaa = m0; + m0 += c1o36 * oMdrho; + mfcab = m1 - m0 * vvz; + mfcac = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcba + mfcbc; + m1 = mfcbc - mfcba; + m0 = m2 + mfcbb; + mfcba = m0; + m0 += c1o9 * oMdrho; + mfcbb = m1 - m0 * vvz; + mfcbc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcca + mfccc; + m1 = mfccc - mfcca; + m0 = m2 + mfccb; + mfcca = m0; + m0 += c1o36 * oMdrho; + mfccb = m1 - m0 * vvz; + mfccc = m2 - c2o1* m1 * vvz + vz2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1/6, 0, 1/18, 2/3, 0, 2/9, 1/6, 0, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m2 = mfaaa + mfaca; + m1 = mfaca - mfaaa; + m0 = m2 + mfaba; + mfaaa = m0; + m0 += c1o6 * oMdrho; + mfaba = m1 - m0 * vvy; + mfaca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfacb; + m1 = mfacb - mfaab; + m0 = m2 + mfabb; + mfaab = m0; + mfabb = m1 - m0 * vvy; + mfacb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfacc; + m1 = mfacc - mfaac; + m0 = m2 + mfabc; + mfaac = m0; + m0 += c1o18 * oMdrho; + mfabc = m1 - m0 * vvy; + mfacc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbaa + mfbca; + m1 = mfbca - mfbaa; + m0 = m2 + mfbba; + mfbaa = m0; + m0 += c2o3 * oMdrho; + mfbba = m1 - m0 * vvy; + mfbca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbab + mfbcb; + m1 = mfbcb - mfbab; + m0 = m2 + mfbbb; + mfbab = m0; + mfbbb = m1 - m0 * vvy; + mfbcb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfbac + mfbcc; + m1 = mfbcc - mfbac; + m0 = m2 + mfbbc; + mfbac = m0; + m0 += c2o9 * oMdrho; + mfbbc = m1 - m0 * vvy; + mfbcc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcaa + mfcca; + m1 = mfcca - mfcaa; + m0 = m2 + mfcba; + mfcaa = m0; + m0 += c1o6 * oMdrho; + mfcba = m1 - m0 * vvy; + mfcca = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcab + mfccb; + m1 = mfccb - mfcab; + m0 = m2 + mfcbb; + mfcab = m0; + mfcbb = m1 - m0 * vvy; + mfccb = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfcac + mfccc; + m1 = mfccc - mfcac; + m0 = m2 + mfcbc; + mfcac = m0; + m0 += c1o18 * oMdrho; + mfcbc = m1 - m0 * vvy; + mfccc = m2 - c2o1* m1 * vvy + vy2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + // mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m2 = mfaaa + mfcaa; + m1 = mfcaa - mfaaa; + m0 = m2 + mfbaa; + mfaaa = m0; + m0 += c1o1* oMdrho; + mfbaa = m1 - m0 * vvx; + mfcaa = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaba + mfcba; + m1 = mfcba - mfaba; + m0 = m2 + mfbba; + mfaba = m0; + mfbba = m1 - m0 * vvx; + mfcba = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaca + mfcca; + m1 = mfcca - mfaca; + m0 = m2 + mfbca; + mfaca = m0; + m0 += c1o3 * oMdrho; + mfbca = m1 - m0 * vvx; + mfcca = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaab + mfcab; + m1 = mfcab - mfaab; + m0 = m2 + mfbab; + mfaab = m0; + mfbab = m1 - m0 * vvx; + mfcab = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabb + mfcbb; + m1 = mfcbb - mfabb; + m0 = m2 + mfbbb; + mfabb = m0; + mfbbb = m1 - m0 * vvx; + mfcbb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacb + mfccb; + m1 = mfccb - mfacb; + m0 = m2 + mfbcb; + mfacb = m0; + mfbcb = m1 - m0 * vvx; + mfccb = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfaac + mfcac; + m1 = mfcac - mfaac; + m0 = m2 + mfbac; + mfaac = m0; + m0 += c1o3 * oMdrho; + mfbac = m1 - m0 * vvx; + mfcac = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfabc + mfcbc; + m1 = mfcbc - mfabc; + m0 = m2 + mfbbc; + mfabc = m0; + mfbbc = m1 - m0 * vvx; + mfcbc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + m2 = mfacc + mfccc; + m1 = mfccc - mfacc; + m0 = m2 + mfbcc; + mfacc = m0; + m0 += c1o9 * oMdrho; + mfbcc = m1 - m0 * vvx; + mfccc = m2 - c2o1* m1 * vvx + vx2 * m0; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + + + //////////////////////////////////////////////////////////////////////////////////// + // BGK + //////////////////////////////////////////////////////////////////////////////////// + ////2. + //mfabb += omega * (-mfabb); + //mfbab += omega * (-mfbab); + //mfbba += omega * (-mfbba); + // + //mfcaa += omega * (c1o3 * mfaaa - mfcaa); + //mfaca += omega * (c1o3 * mfaaa - mfaca); + //mfaac += omega * (c1o3 * mfaaa - mfaac); + // + ////3. + //mfabc += omega * (-mfabc); + //mfbac += omega * (-mfbac); + // + //mfacb += omega * (-mfacb); + //mfbca += omega * (-mfbca); + + //mfcab += omega * (-mfcab); + //mfcba += omega * (-mfcba); + + //mfbbb += omega * (-mfbbb); + + ////4. + //mfacc += omega * (c1o9 * mfaaa - mfacc); + //mfcac += omega * (c1o9 * mfaaa - mfcac); + //mfcca += omega * (c1o9 * mfaaa - mfcca); + + //mfbbc += omega * (-mfbbc); + //mfbcb += omega * (-mfbcb); + //mfcbb += omega * (-mfcbb); + + ////5. + //mfbcc += omega * (-mfbcc); + //mfcbc += omega * (-mfcbc); + //mfccb += omega * (-mfccb); + + ////6. + //mfccc += omega * (c1o27 * mfaaa - mfccc); + ////////////////////////////////////////////////////////////////////////////////////// + + + + ////////////////////////////////////////////////////////////////////////////////////////// + //////// Cumulants + ////////////////////////////////////////////////////////////////////////////////////////// + //////real OxxPyyPzz = one; + //////real OxyyPxzz = one;//two-omega;// + //////real OxyyMxzz = one;//two-omega;// + //////real O4 = one; + //////real O5 = one; + //////real O6 = one; + + ////////Cum 4. + //////real CUMcbb = mfcbb - ((mfcaa + c1o3) * mfabb + two* mfbba * mfbab); + //////real CUMbcb = mfbcb - ((mfaca + c1o3) * mfbab + two* mfbba * mfabb); + //////real CUMbbc = mfbbc - ((mfaac + c1o3) * mfbba + two* mfbab * mfabb); + + //////real CUMcca = mfcca - (mfcaa * mfaca + two* mfbba * mfbba)- c1o3 * (mfcaa + mfaca); + //////real CUMcac = mfcac - (mfcaa * mfaac + two* mfbab * mfbab)- c1o3 * (mfcaa + mfaac); + //////real CUMacc = mfacc - (mfaac * mfaca + two* mfabb * mfabb)- c1o3 * (mfaac + mfaca); + + ////////Cum 5. + //////real CUMbcc = mfbcc - (mfaac * mfbca + mfaca * mfbac + four* mfabb * mfbbb + two* (mfbab * mfacb + mfbba * mfabc)) //O(eps^5) + ////// - c1o3 * (mfbca + mfbac); //O(eps^3) + //////real CUMcbc = mfcbc - (mfaac * mfcba + mfcaa * mfabc + four* mfbab * mfbbb + two* (mfabb * mfcab + mfbba * mfbac)) //O(eps^5) + ////// - c1o3 * (mfcba + mfabc); //O(eps^3) + //////real CUMccb = mfccb - (mfcaa * mfacb + mfaca * mfcab + four* mfbba * mfbbb + two* (mfbab * mfbca + mfabb * mfcba)) //O(eps^5) + ////// - c1o3 * (mfacb + mfcab);//O(eps^3) + + ////////Cum 6. + //////real CUMccc = mfccc +(-four* mfbbb * mfbbb //O(eps^6) + ////// - (mfcaa * mfacc + mfaca * mfcac + mfaac * mfcca) // O(eps^4) + ////// - four* (mfabb * mfcbb + mfbac * mfbca + mfbba * mfbbc) // O(eps^6) + ////// - two* (mfbca * mfbac + mfcba * mfabc + mfcab * mfacb)) // O(esp^6) + ////// +( four* (mfbab * mfbab * mfaca + mfabb * mfabb * mfcaa + mfbba * mfbba * mfaac) //O(eps^6) + ////// + two* (mfcaa * mfaca * mfaac) //O(eps^6) + ////// + sixteen* mfbba * mfbab * mfabb) //O(eps^6) + ////// - c1o3* (mfacc + mfcac + mfcca) //O(eps^2) + ////// + c1o9* (mfcaa + mfaca + mfaac) //O(eps^2) + ////// +( two* (mfbab * mfbab + mfabb * mfabb + mfbba * mfbba)//O(eps^4) + ////// + (mfaac * mfaca + mfaac * mfcaa + mfaca * mfcaa)) * c2o3;//O(eps^4) + + + ////////2. + //////// linear combinations + //////real mxxPyyPzz = mfcaa + mfaca + mfaac; + //////real mxxMyy = mfcaa - mfaca; + //////real mxxMzz = mfcaa - mfaac; + + //////{ + ////// real dxux = c1o2 * ((-omega) * (mxxMyy + mxxMzz) + (mfaaa - mxxPyyPzz)); + ////// real dyuy = dxux + omega * c3o2 * mxxMyy; + ////// real dzuz = dxux + omega * c3o2 * mxxMzz; + + ////// //relax + ////// mxxPyyPzz += OxxPyyPzz*(mfaaa - mxxPyyPzz)- three* (one- c1o2 * OxxPyyPzz) * (vx2 * dxux + vy2 * dyuy + vz2 * dzuz); + ////// mxxMyy += omega * (-mxxMyy) - three* (one+ c1o2 * (-omega)) * (vx2 * dxux + vy2 * dyuy); + ////// mxxMzz += omega * (-mxxMzz) - three* (one+ c1o2 * (-omega)) * (vx2 * dxux + vz2 * dzuz); + //////} + //////mfabb += omega * (-mfabb); + //////mfbab += omega * (-mfbab); + //////mfbba += omega * (-mfbba); + + //////// linear combinations back + //////mfcaa = c1o3 * ( mxxMyy + mxxMzz + mxxPyyPzz); + //////mfaca = c1o3 * (-two* mxxMyy + mxxMzz + mxxPyyPzz); + //////mfaac = c1o3 * ( mxxMyy - two* mxxMzz + mxxPyyPzz); + + ////////3. + //////// linear combinations + //////real mxxyPyzz = mfcba + mfabc; + //////real mxxyMyzz = mfcba - mfabc; + + //////real mxxzPyyz = mfcab + mfacb; + //////real mxxzMyyz = mfcab - mfacb; + + //////real mxyyPxzz = mfbca + mfbac; + //////real mxyyMxzz = mfbca - mfbac; + + ////////relax + //////wadjust = OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); + //////mfbbb += wadjust * (-mfbbb); + //////wadjust = OxyyPxzz+(one-OxyyPxzz)*abs(mxxyPyzz)/(abs(mxxyPyzz)+qudricLimit); + //////mxxyPyzz += wadjust * (-mxxyPyzz); + //////wadjust = OxyyMxzz+(one-OxyyMxzz)*abs(mxxyMyzz)/(abs(mxxyMyzz)+qudricLimit); + //////mxxyMyzz += wadjust * (-mxxyMyzz); + //////wadjust = OxyyPxzz+(one-OxyyPxzz)*abs(mxxzPyyz)/(abs(mxxzPyyz)+qudricLimit); + //////mxxzPyyz += wadjust * (-mxxzPyyz); + //////wadjust = OxyyMxzz+(one-OxyyMxzz)*abs(mxxzMyyz)/(abs(mxxzMyyz)+qudricLimit); + //////mxxzMyyz += wadjust * (-mxxzMyyz); + //////wadjust = OxyyPxzz+(one-OxyyPxzz)*abs(mxyyPxzz)/(abs(mxyyPxzz)+qudricLimit); + //////mxyyPxzz += wadjust * (-mxyyPxzz); + //////wadjust = OxyyMxzz+(one-OxyyMxzz)*abs(mxyyMxzz)/(abs(mxyyMxzz)+qudricLimit); + //////mxyyMxzz += wadjust * (-mxyyMxzz); + + //////// linear combinations back + //////mfcba = ( mxxyMyzz + mxxyPyzz) * c1o2; + //////mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + //////mfcab = ( mxxzMyyz + mxxzPyyz) * c1o2; + //////mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + //////mfbca = ( mxyyMxzz + mxyyPxzz) * c1o2; + //////mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + ////////4. + //////CUMacc += O4 * (-CUMacc); + //////CUMcac += O4 * (-CUMcac); + //////CUMcca += O4 * (-CUMcca); + ////// + //////CUMbbc += O4 * (-CUMbbc); + //////CUMbcb += O4 * (-CUMbcb); + //////CUMcbb += O4 * (-CUMcbb); + ////// + ////////5. + //////CUMbcc += O5 * (-CUMbcc); + //////CUMcbc += O5 * (-CUMcbc); + //////CUMccb += O5 * (-CUMccb); + + ////////6. + //////CUMccc += O6 * (-CUMccc); + ////// + ////////back cumulants to central moments + ////////4. + //////mfcbb = CUMcbb + ((mfcaa + c1o3) * mfabb + two* mfbba * mfbab); + //////mfbcb = CUMbcb + ((mfaca + c1o3) * mfbab + two* mfbba * mfabb); + //////mfbbc = CUMbbc + ((mfaac + c1o3) * mfbba + two* mfbab * mfabb); + ////// + //////mfcca = CUMcca + (mfcaa * mfaca + two* mfbba * mfbba) + c1o3 * (mfcaa + mfaca); + //////mfcac = CUMcac + (mfcaa * mfaac + two* mfbab * mfbab) + c1o3 * (mfcaa + mfaac); + //////mfacc = CUMacc + (mfaac * mfaca + two* mfabb * mfabb) + c1o3 * (mfaac + mfaca); + + ////////5. + //////mfbcc = CUMbcc + (mfaac * mfbca + mfaca * mfbac + four* mfabb * mfbbb + two* (mfbab * mfacb + mfbba * mfabc)) + c1o3 * (mfbca + mfbac); + //////mfcbc = CUMcbc + (mfaac * mfcba + mfcaa * mfabc + four* mfbab * mfbbb + two* (mfabb * mfcab + mfbba * mfbac)) + c1o3 * (mfcba + mfabc); + //////mfccb = CUMccb + (mfcaa * mfacb + mfaca * mfcab + four* mfbba * mfbbb + two* (mfbab * mfbca + mfabb * mfcba)) + c1o3 * (mfacb + mfcab); + ////// + ////////6. + //////mfccc = CUMccc -((-four* mfbbb * mfbbb + ////// - (mfcaa * mfacc + mfaca * mfcac + mfaac * mfcca) + ////// - four* (mfabb * mfcbb + mfbac * mfbca + mfbba * mfbbc) + ////// - two* (mfbca * mfbac + mfcba * mfabc + mfcab * mfacb)) + ////// +( four* (mfbab * mfbab * mfaca + mfabb * mfabb * mfcaa + mfbba * mfbba * mfaac) + ////// + two* (mfcaa * mfaca * mfaac) + ////// + sixteen* mfbba * mfbab * mfabb) + ////// - c1o3* (mfacc + mfcac + mfcca) + ////// + c1o9* (mfcaa + mfaca + mfaac) + ////// +( two* (mfbab * mfbab + mfabb * mfabb + mfbba * mfbba) + ////// + (mfaac * mfaca + mfaac * mfcaa + mfaca * mfcaa)) * c2o3); + ////////////////////////////////////////////////////////////////////////////////////////// + + + + //////////////////////////////////////////////////////////////////////////////////// + // Cumulants + //////////////////////////////////////////////////////////////////////////////////// + real OxxPyyPzz = c1o1; + real OxyyPxzz = c8o1*(c2o1 - omega) / (c8o1 - omega);//one;//two-omega;//eight*(two-omega)/(eight -omega);//one;//omega;//two-omega;// + real OxyyMxzz = c8o1*(c2o1 - omega) / (c8o1 - omega);//one;//omega;//one;//eight*(two-omega)/(eight -omega);//one;//two-omega;//one;// + real O4 = c1o1; + real O5 = c1o1; + real O6 = c1o1; + + ////Cum 4. + //real CUMcbb; real CUMbcb; real CUMbbc; + //real CUMcca; real CUMcac; real CUMacc; + ////Cum 5. + //real CUMbcc; real CUMcbc; real CUMccb; + ////Cum 6. + //real CUMccc; + + //Cum 4. + real CUMcbb = mfcbb - ((mfcaa + c1o3 * oMdrho) * mfabb + c2o1 * mfbba * mfbab); // /rho + real CUMbcb = mfbcb - ((mfaca + c1o3 * oMdrho) * mfbab + c2o1 * mfbba * mfabb); // /rho + real CUMbbc = mfbbc - ((mfaac + c1o3 * oMdrho) * mfbba + c2o1 * mfbab * mfabb); // /rho + + real CUMcca = mfcca - ((mfcaa * mfaca + c2o1 * mfbba * mfbba) /* /rho*/ + c1o3 * (mfcaa + mfaca) * oMdrho + c1o9*(oMdrho - c1o1)*oMdrho); + real CUMcac = mfcac - ((mfcaa * mfaac + c2o1 * mfbab * mfbab) /* /rho*/ + c1o3 * (mfcaa + mfaac) * oMdrho + c1o9*(oMdrho - c1o1)*oMdrho); + real CUMacc = mfacc - ((mfaac * mfaca + c2o1 * mfabb * mfabb) /* /rho*/ + c1o3 * (mfaac + mfaca) * oMdrho + c1o9*(oMdrho - c1o1)*oMdrho); + + //Cum 5. + //real CUMbcc = mfbcc - (mfaac * mfbca + mfaca * mfbac + four * mfabb * mfbbb + two * (mfbab * mfacb + mfbba * mfabc)) //O(eps^5) + // - c1o3 * (mfbca + mfbac); //O(eps^3) + //real CUMcbc = mfcbc - (mfaac * mfcba + mfcaa * mfabc + four * mfbab * mfbbb + two * (mfabb * mfcab + mfbba * mfbac)) //O(eps^5) + // - c1o3 * (mfcba + mfabc); //O(eps^3) + //real CUMccb = mfccb - (mfcaa * mfacb + mfaca * mfcab + four * mfbba * mfbbb + two * (mfbab * mfbca + mfabb * mfcba)) //O(eps^5) + // - c1o3 * (mfacb + mfcab);//O(eps^3) + + real CUMbcc = mfbcc - (mfaac * mfbca + mfaca * mfbac + c4o1 * mfabb * mfbbb + c2o1 * (mfbab * mfacb + mfbba * mfabc)) - c1o3 * (mfbca + mfbac) * oMdrho; + real CUMcbc = mfcbc - (mfaac * mfcba + mfcaa * mfabc + c4o1 * mfbab * mfbbb + c2o1 * (mfabb * mfcab + mfbba * mfbac)) - c1o3 * (mfcba + mfabc) * oMdrho; + real CUMccb = mfccb - (mfcaa * mfacb + mfaca * mfcab + c4o1 * mfbba * mfbbb + c2o1 * (mfbab * mfbca + mfabb * mfcba)) - c1o3 * (mfacb + mfcab) * oMdrho; + + //Cum 6. + real CUMccc = mfccc + ((-c4o1 * mfbbb * mfbbb + - (mfcaa * mfacc + mfaca * mfcac + mfaac * mfcca) + - c4o1 * (mfabb * mfcbb + mfbab * mfbcb + mfbba * mfbbc) + - c2o1 * (mfbca * mfbac + mfcba * mfabc + mfcab * mfacb)) + + (c4o1 * (mfbab * mfbab * mfaca + mfabb * mfabb * mfcaa + mfbba * mfbba * mfaac) + + c2o1 * (mfcaa * mfaca * mfaac) + + c16o1 * mfbba * mfbab * mfabb) + - c1o3 * (mfacc + mfcac + mfcca) * oMdrho - c1o9*oMdrho*oMdrho + - c1o9 * (mfcaa + mfaca + mfaac) * oMdrho*(c1o1 - c2o1* oMdrho) - c1o27* oMdrho * oMdrho*(-c2o1* oMdrho) + + (c2o1 * (mfbab * mfbab + mfabb * mfabb + mfbba * mfbba) + + (mfaac * mfaca + mfaac * mfcaa + mfaca * mfcaa)) * c2o3*oMdrho) + c1o27*oMdrho; + + + + + + //2. + // linear combinations + real mxxPyyPzz = mfcaa + mfaca + mfaac; + real mxxMyy = mfcaa - mfaca; + real mxxMzz = mfcaa - mfaac; + + ////////////////////////////////////////////////////////////////////////// + //real magicBulk = (CUMacc + CUMcac + CUMcca)*(c1o1 / OxxPyyPzz - c1o2)*c3o2*8.; + + ////////////////////////////////////////////////////////////////////////// + //limiter-Scheise Teil 1 + //real oxxyy,oxxzz,oxy,oxz,oyz; + //real smag=0.001; + //oxxyy = omega+(one-omega)*abs(mxxMyy)/(abs(mxxMyy)+smag); + //oxxzz = omega+(one-omega)*abs(mxxMzz)/(abs(mxxMzz)+smag); + //oxy = omega+(one-omega)*abs(mfbba)/(abs(mfbba)+smag); + //oxz = omega+(one-omega)*abs(mfbab)/(abs(mfbab)+smag); + //oyz = omega+(one-omega)*abs(mfabb)/(abs(mfabb)+smag); + + //////////////////////////////////////////////////////////////////////////// + ////Teil 1b + //real constante = 1000.0; + //real nuEddi = constante * abs(mxxPyyPzz); + //real omegaLimit = one / (one / omega + three * nuEddi); + + //{ + // real dxux = c1o2 * (-omegaLimit) *(mxxMyy + mxxMzz) + OxxPyyPzz * (mfaaa - mxxPyyPzz); + // real dyuy = dxux + omegaLimit * c3o2 * mxxMyy; + // real dzuz = dxux + omegaLimit * c3o2 * mxxMzz; + + ////relax + //mxxPyyPzz += OxxPyyPzz*(mfaaa - mxxPyyPzz)- three * (one - c1o2 * OxxPyyPzz) * (vx2 * dxux + vy2 * dyuy + vz2 * dzuz); + //mxxMyy += omegaLimit * (-mxxMyy) - three * (one + c1o2 * (-omegaLimit)) * (vx2 * dxux + vy2 * dyuy); + //mxxMzz += omegaLimit * (-mxxMzz) - three * (one + c1o2 * (-omegaLimit)) * (vx2 * dxux + vz2 * dzuz); + + //} + //mfabb += omegaLimit * (-mfabb); + //mfbab += omegaLimit * (-mfbab); + //mfbba += omegaLimit * (-mfbba); + //////////////////////////////////////////////////////////////////////////// + + ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + ////incl. correction (hat noch nicht so gut funktioniert...Optimierungsbedarf??) + //{ + // real dxux = c1o2 * (-omega) *(mxxMyy + mxxMzz) + c1o2 * OxxPyyPzz * (mfaaa - mxxPyyPzz); + // real dyuy = dxux + omega * c3o2 * mxxMyy; + // real dzuz = dxux + omega * c3o2 * mxxMzz; + + // //relax + // mxxPyyPzz += OxxPyyPzz*(mfaaa - mxxPyyPzz)- three * (one - c1o2 * OxxPyyPzz) * (vx2 * dxux + vy2 * dyuy + vz2 * dzuz);//-magicBulk*OxxPyyPzz; + // mxxMyy += omega * (-mxxMyy) - three * (one + c1o2 * (-omega)) * (vx2 * dxux - vy2 * dyuy); + // mxxMzz += omega * (-mxxMzz) - three * (one + c1o2 * (-omega)) * (vx2 * dxux - vz2 * dzuz); + + // ////////////////////////////////////////////////////////////////////////// + // //limiter-Scheise Teil 2 + // //mxxMyy += oxxyy * (-mxxMyy) - three * (one + c1o2 * (-omega)) * (vx2 * dxux + vy2 * dyuy); + // //mxxMzz += oxxzz * (-mxxMzz) - three * (one + c1o2 * (-omega)) * (vx2 * dxux + vz2 * dzuz); + // ////////////////////////////////////////////////////////////////////////// + + //} + ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //no correction + mxxPyyPzz += OxxPyyPzz*(mfaaa - mxxPyyPzz);//-magicBulk*OxxPyyPzz; + mxxMyy += -(-omega) * (-mxxMyy); + mxxMzz += -(-omega) * (-mxxMzz); + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + mfabb += omega * (-mfabb); + mfbab += omega * (-mfbab); + mfbba += omega * (-mfbba); + + ////////////////////////////////////////////////////////////////////////// + //limiter-Scheise Teil 3 + //mfabb += oyz * (-mfabb); + //mfbab += oxz * (-mfbab); + //mfbba += oxy * (-mfbba); + ////////////////////////////////////////////////////////////////////////// + + // linear combinations back + mfcaa = c1o3 * (mxxMyy + mxxMzz + mxxPyyPzz); + mfaca = c1o3 * (-c2o1* mxxMyy + mxxMzz + mxxPyyPzz); + mfaac = c1o3 * (mxxMyy - c2o1* mxxMzz + mxxPyyPzz); + + //3. + // linear combinations + + real mxxyPyzz = mfcba + mfabc; + real mxxyMyzz = mfcba - mfabc; + + real mxxzPyyz = mfcab + mfacb; + real mxxzMyyz = mfcab - mfacb; + + real mxyyPxzz = mfbca + mfbac; + real mxyyMxzz = mfbca - mfbac; + + //relax + // wadjust = OxyyMxzz+(one-OxyyMxzz)*abs(mfbbb)/(abs(mfbbb)+qudricLimit); + // mfbbb += wadjust * (-mfbbb); + // wadjust = OxyyPxzz+(one-OxyyPxzz)*abs(mxxyPyzz)/(abs(mxxyPyzz)+qudricLimit); + // mxxyPyzz += wadjust * (-mxxyPyzz); + // wadjust = OxyyMxzz+(one-OxyyMxzz)*abs(mxxyMyzz)/(abs(mxxyMyzz)+qudricLimit); + // mxxyMyzz += wadjust * (-mxxyMyzz); + // wadjust = OxyyPxzz+(one-OxyyPxzz)*abs(mxxzPyyz)/(abs(mxxzPyyz)+qudricLimit); + // mxxzPyyz += wadjust * (-mxxzPyyz); + // wadjust = OxyyMxzz+(one-OxyyMxzz)*abs(mxxzMyyz)/(abs(mxxzMyyz)+qudricLimit); + // mxxzMyyz += wadjust * (-mxxzMyyz); + // wadjust = OxyyPxzz+(one-OxyyPxzz)*abs(mxyyPxzz)/(abs(mxyyPxzz)+qudricLimit); + // mxyyPxzz += wadjust * (-mxyyPxzz); + // wadjust = OxyyMxzz+(one-OxyyMxzz)*abs(mxyyMxzz)/(abs(mxyyMxzz)+qudricLimit); + // mxyyMxzz += wadjust * (-mxyyMxzz); + mfbbb += OxyyMxzz * (-mfbbb); + mxxyPyzz += OxyyPxzz * (-mxxyPyzz); + mxxyMyzz += OxyyMxzz * (-mxxyMyzz); + mxxzPyyz += OxyyPxzz * (-mxxzPyyz); + mxxzMyyz += OxyyMxzz * (-mxxzMyyz); + mxyyPxzz += OxyyPxzz * (-mxyyPxzz); + mxyyMxzz += OxyyMxzz * (-mxyyMxzz); + + //// linear combinations back + ////generic + //mfcba = zero; + //mfabc = zero; + //mfcab = zero; + //mfacb = zero; + //mfbca = zero; + //mfbac = zero; + + mfcba = (mxxyMyzz + mxxyPyzz) * c1o2; + mfabc = (-mxxyMyzz + mxxyPyzz) * c1o2; + mfcab = (mxxzMyyz + mxxzPyyz) * c1o2; + mfacb = (-mxxzMyyz + mxxzPyyz) * c1o2; + mfbca = (mxyyMxzz + mxyyPxzz) * c1o2; + mfbac = (-mxyyMxzz + mxyyPxzz) * c1o2; + + //4. + //CUMacc = zero; + //CUMcac = zero; + //CUMcca = zero; + // + //CUMbbc = zero; + //CUMbcb = zero; + //CUMcbb = zero; + // + ////5. + //CUMbcc = zero; + //CUMcbc = zero; + //CUMccb = zero; + // + ////6. + //CUMccc = zero; + + //4. + CUMacc += O4 * (-CUMacc); + CUMcac += O4 * (-CUMcac); + CUMcca += O4 * (-CUMcca); + + CUMbbc += O4 * (-CUMbbc); + CUMbcb += O4 * (-CUMbcb); + CUMcbb += O4 * (-CUMcbb); + + //5. + CUMbcc += O5 * (-CUMbcc); + CUMcbc += O5 * (-CUMcbc); + CUMccb += O5 * (-CUMccb); + + //6. + CUMccc += O6 * (-CUMccc); + + + + //back cumulants to central moments + //4. + mfcbb = CUMcbb + ((mfcaa + c1o3 * oMdrho) * mfabb + c2o1 * mfbba * mfbab); + mfbcb = CUMbcb + ((mfaca + c1o3 * oMdrho) * mfbab + c2o1 * mfbba * mfabb); + mfbbc = CUMbbc + ((mfaac + c1o3 * oMdrho) * mfbba + c2o1 * mfbab * mfabb); + + mfcca = CUMcca + (mfcaa * mfaca + c2o1 * mfbba * mfbba) + c1o3 * (mfcaa + mfaca) * oMdrho + c1o9*(oMdrho - c1o1)*oMdrho; + mfcac = CUMcac + (mfcaa * mfaac + c2o1 * mfbab * mfbab) + c1o3 * (mfcaa + mfaac) * oMdrho + c1o9*(oMdrho - c1o1)*oMdrho; + mfacc = CUMacc + (mfaac * mfaca + c2o1 * mfabb * mfabb) + c1o3 * (mfaac + mfaca) * oMdrho + c1o9*(oMdrho - c1o1)*oMdrho; + + //5. + mfbcc = CUMbcc + (mfaac * mfbca + mfaca * mfbac + c4o1 * mfabb * mfbbb + c2o1 * (mfbab * mfacb + mfbba * mfabc)) + c1o3 * (mfbca + mfbac) * oMdrho; + mfcbc = CUMcbc + (mfaac * mfcba + mfcaa * mfabc + c4o1 * mfbab * mfbbb + c2o1 * (mfabb * mfcab + mfbba * mfbac)) + c1o3 * (mfcba + mfabc) * oMdrho; + mfccb = CUMccb + (mfcaa * mfacb + mfaca * mfcab + c4o1 * mfbba * mfbbb + c2o1 * (mfbab * mfbca + mfabb * mfcba)) + c1o3 * (mfacb + mfcab) * oMdrho; + + //6. + mfccc = CUMccc - ((-c4o1 * mfbbb * mfbbb + - (mfcaa * mfacc + mfaca * mfcac + mfaac * mfcca) + - c4o1 * (mfabb * mfcbb + mfbab * mfbcb + mfbba * mfbbc) + - c2o1 * (mfbca * mfbac + mfcba * mfabc + mfcab * mfacb)) + + (c4o1 * (mfbab * mfbab * mfaca + mfabb * mfabb * mfcaa + mfbba * mfbba * mfaac) + + c2o1 * (mfcaa * mfaca * mfaac) + + c16o1 * mfbba * mfbab * mfabb) + - c1o3 * (mfacc + mfcac + mfcca) * oMdrho - c1o9*oMdrho*oMdrho + - c1o9 * (mfcaa + mfaca + mfaac) * oMdrho*(c1o1 - c2o1* oMdrho) - c1o27* oMdrho * oMdrho*(-c2o1* oMdrho) + + (c2o1 * (mfbab * mfbab + mfabb * mfabb + mfbba * mfbba) + + (mfaac * mfaca + mfaac * mfcaa + mfaca * mfcaa)) * c2o3*oMdrho) - c1o27*oMdrho; + //////////////////////////////////////////////////////////////////////////////////// + + + //////////////////////////////////////////////////////////////////////////////////// + //back + //////////////////////////////////////////////////////////////////////////////////// + //mit 1, 0, 1/3, 0, 0, 0, 1/3, 0, 1/9 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Z - Dir + m0 = mfaac * c1o2 + mfaab * (vvz - c1o2) + (mfaaa + c1o1* oMdrho) * (vz2 - vvz) * c1o2; + m1 = -mfaac - c2o1* mfaab * vvz + mfaaa * (c1o1 - vz2) - c1o1* oMdrho * vz2; + m2 = mfaac * c1o2 + mfaab * (vvz + c1o2) + (mfaaa + c1o1* oMdrho) * (vz2 + vvz) * c1o2; + mfaaa = m0; + mfaab = m1; + mfaac = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfabc * c1o2 + mfabb * (vvz - c1o2) + mfaba * (vz2 - vvz) * c1o2; + m1 = -mfabc - c2o1* mfabb * vvz + mfaba * (c1o1 - vz2); + m2 = mfabc * c1o2 + mfabb * (vvz + c1o2) + mfaba * (vz2 + vvz) * c1o2; + mfaba = m0; + mfabb = m1; + mfabc = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfacb * (vvz - c1o2) + (mfaca + c1o3 * oMdrho) * (vz2 - vvz) * c1o2; + m1 = -mfacc - c2o1* mfacb * vvz + mfaca * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfacc * c1o2 + mfacb * (vvz + c1o2) + (mfaca + c1o3 * oMdrho) * (vz2 + vvz) * c1o2; + mfaca = m0; + mfacb = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbac * c1o2 + mfbab * (vvz - c1o2) + mfbaa * (vz2 - vvz) * c1o2; + m1 = -mfbac - c2o1* mfbab * vvz + mfbaa * (c1o1 - vz2); + m2 = mfbac * c1o2 + mfbab * (vvz + c1o2) + mfbaa * (vz2 + vvz) * c1o2; + mfbaa = m0; + mfbab = m1; + mfbac = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbbc * c1o2 + mfbbb * (vvz - c1o2) + mfbba * (vz2 - vvz) * c1o2; + m1 = -mfbbc - c2o1* mfbbb * vvz + mfbba * (c1o1 - vz2); + m2 = mfbbc * c1o2 + mfbbb * (vvz + c1o2) + mfbba * (vz2 + vvz) * c1o2; + mfbba = m0; + mfbbb = m1; + mfbbc = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbcb * (vvz - c1o2) + mfbca * (vz2 - vvz) * c1o2; + m1 = -mfbcc - c2o1* mfbcb * vvz + mfbca * (c1o1 - vz2); + m2 = mfbcc * c1o2 + mfbcb * (vvz + c1o2) + mfbca * (vz2 + vvz) * c1o2; + mfbca = m0; + mfbcb = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfcab * (vvz - c1o2) + (mfcaa + c1o3 * oMdrho) * (vz2 - vvz) * c1o2; + m1 = -mfcac - c2o1* mfcab * vvz + mfcaa * (c1o1 - vz2) - c1o3 * oMdrho * vz2; + m2 = mfcac * c1o2 + mfcab * (vvz + c1o2) + (mfcaa + c1o3 * oMdrho) * (vz2 + vvz) * c1o2; + mfcaa = m0; + mfcab = m1; + mfcac = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfcbb * (vvz - c1o2) + mfcba * (vz2 - vvz) * c1o2; + m1 = -mfcbc - c2o1* mfcbb * vvz + mfcba * (c1o1 - vz2); + m2 = mfcbc * c1o2 + mfcbb * (vvz + c1o2) + mfcba * (vz2 + vvz) * c1o2; + mfcba = m0; + mfcbb = m1; + mfcbc = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfccb * (vvz - c1o2) + (mfcca + c1o9 * oMdrho) * (vz2 - vvz) * c1o2; + m1 = -mfccc - c2o1* mfccb * vvz + mfcca * (c1o1 - vz2) - c1o9 * oMdrho * vz2; + m2 = mfccc * c1o2 + mfccb * (vvz + c1o2) + (mfcca + c1o9 * oMdrho) * (vz2 + vvz) * c1o2; + mfcca = m0; + mfccb = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/6, 2/3, 1/6, 0, 0, 0, 1/18, 2/9, 1/18 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // Y - Dir + m0 = mfaca * c1o2 + mfaba * (vvy - c1o2) + (mfaaa + c1o6 * oMdrho) * (vy2 - vvy) * c1o2; + m1 = -mfaca - c2o1* mfaba * vvy + mfaaa * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfaca * c1o2 + mfaba * (vvy + c1o2) + (mfaaa + c1o6 * oMdrho) * (vy2 + vvy) * c1o2; + mfaaa = m0; + mfaba = m1; + mfaca = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacb * c1o2 + mfabb * (vvy - c1o2) + (mfaab + c2o3 * oMdrho) * (vy2 - vvy) * c1o2; + m1 = -mfacb - c2o1* mfabb * vvy + mfaab * (c1o1 - vy2) - c2o3 * oMdrho * vy2; + m2 = mfacb * c1o2 + mfabb * (vvy + c1o2) + (mfaab + c2o3 * oMdrho) * (vy2 + vvy) * c1o2; + mfaab = m0; + mfabb = m1; + mfacb = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfacc * c1o2 + mfabc * (vvy - c1o2) + (mfaac + c1o6 * oMdrho) * (vy2 - vvy) * c1o2; + m1 = -mfacc - c2o1* mfabc * vvy + mfaac * (c1o1 - vy2) - c1o6 * oMdrho * vy2; + m2 = mfacc * c1o2 + mfabc * (vvy + c1o2) + (mfaac + c1o6 * oMdrho) * (vy2 + vvy) * c1o2; + mfaac = m0; + mfabc = m1; + mfacc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfbca * c1o2 + mfbba * (vvy - c1o2) + mfbaa * (vy2 - vvy) * c1o2; + m1 = -mfbca - c2o1* mfbba * vvy + mfbaa * (c1o1 - vy2); + m2 = mfbca * c1o2 + mfbba * (vvy + c1o2) + mfbaa * (vy2 + vvy) * c1o2; + mfbaa = m0; + mfbba = m1; + mfbca = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcb * c1o2 + mfbbb * (vvy - c1o2) + mfbab * (vy2 - vvy) * c1o2; + m1 = -mfbcb - c2o1* mfbbb * vvy + mfbab * (c1o1 - vy2); + m2 = mfbcb * c1o2 + mfbbb * (vvy + c1o2) + mfbab * (vy2 + vvy) * c1o2; + mfbab = m0; + mfbbb = m1; + mfbcb = m2; + /////////b////////////////////////////////////////////////////////////////////////// + m0 = mfbcc * c1o2 + mfbbc * (vvy - c1o2) + mfbac * (vy2 - vvy) * c1o2; + m1 = -mfbcc - c2o1* mfbbc * vvy + mfbac * (c1o1 - vy2); + m2 = mfbcc * c1o2 + mfbbc * (vvy + c1o2) + mfbac * (vy2 + vvy) * c1o2; + mfbac = m0; + mfbbc = m1; + mfbcc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfcba * (vvy - c1o2) + (mfcaa + c1o18 * oMdrho) * (vy2 - vvy) * c1o2; + m1 = -mfcca - c2o1* mfcba * vvy + mfcaa * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfcca * c1o2 + mfcba * (vvy + c1o2) + (mfcaa + c1o18 * oMdrho) * (vy2 + vvy) * c1o2; + mfcaa = m0; + mfcba = m1; + mfcca = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfcbb * (vvy - c1o2) + (mfcab + c2o9 * oMdrho) * (vy2 - vvy) * c1o2; + m1 = -mfccb - c2o1* mfcbb * vvy + mfcab * (c1o1 - vy2) - c2o9 * oMdrho * vy2; + m2 = mfccb * c1o2 + mfcbb * (vvy + c1o2) + (mfcab + c2o9 * oMdrho) * (vy2 + vvy) * c1o2; + mfcab = m0; + mfcbb = m1; + mfccb = m2; + /////////c////////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfcbc * (vvy - c1o2) + (mfcac + c1o18 * oMdrho) * (vy2 - vvy) * c1o2; + m1 = -mfccc - c2o1* mfcbc * vvy + mfcac * (c1o1 - vy2) - c1o18 * oMdrho * vy2; + m2 = mfccc * c1o2 + mfcbc * (vvy + c1o2) + (mfcac + c1o18 * oMdrho) * (vy2 + vvy) * c1o2; + mfcac = m0; + mfcbc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + //mit 1/36, 1/9, 1/36, 1/9, 4/9, 1/9, 1/36, 1/9, 1/36 Konditionieren + //////////////////////////////////////////////////////////////////////////////////// + // X - Dir + m0 = mfcaa * c1o2 + mfbaa * (vvx - c1o2) + (mfaaa + c1o36 * oMdrho) * (vx2 - vvx) * c1o2; + m1 = -mfcaa - c2o1* mfbaa * vvx + mfaaa * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcaa * c1o2 + mfbaa * (vvx + c1o2) + (mfaaa + c1o36 * oMdrho) * (vx2 + vvx) * c1o2; + mfaaa = m0; + mfbaa = m1; + mfcaa = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcba * c1o2 + mfbba * (vvx - c1o2) + (mfaba + c1o9 * oMdrho) * (vx2 - vvx) * c1o2; + m1 = -mfcba - c2o1* mfbba * vvx + mfaba * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcba * c1o2 + mfbba * (vvx + c1o2) + (mfaba + c1o9 * oMdrho) * (vx2 + vvx) * c1o2; + mfaba = m0; + mfbba = m1; + mfcba = m2; + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcca * c1o2 + mfbca * (vvx - c1o2) + (mfaca + c1o36 * oMdrho) * (vx2 - vvx) * c1o2; + m1 = -mfcca - c2o1* mfbca * vvx + mfaca * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcca * c1o2 + mfbca * (vvx + c1o2) + (mfaca + c1o36 * oMdrho) * (vx2 + vvx) * c1o2; + mfaca = m0; + mfbca = m1; + mfcca = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcab * c1o2 + mfbab * (vvx - c1o2) + (mfaab + c1o9 * oMdrho) * (vx2 - vvx) * c1o2; + m1 = -mfcab - c2o1* mfbab * vvx + mfaab * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcab * c1o2 + mfbab * (vvx + c1o2) + (mfaab + c1o9 * oMdrho) * (vx2 + vvx) * c1o2; + mfaab = m0; + mfbab = m1; + mfcab = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfcbb * c1o2 + mfbbb * (vvx - c1o2) + (mfabb + c4o9 * oMdrho) * (vx2 - vvx) * c1o2; + m1 = -mfcbb - c2o1* mfbbb * vvx + mfabb * (c1o1 - vx2) - c4o9 * oMdrho * vx2; + m2 = mfcbb * c1o2 + mfbbb * (vvx + c1o2) + (mfabb + c4o9 * oMdrho) * (vx2 + vvx) * c1o2; + mfabb = m0; + mfbbb = m1; + mfcbb = m2; + ///////////b//////////////////////////////////////////////////////////////////////// + m0 = mfccb * c1o2 + mfbcb * (vvx - c1o2) + (mfacb + c1o9 * oMdrho) * (vx2 - vvx) * c1o2; + m1 = -mfccb - c2o1* mfbcb * vvx + mfacb * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfccb * c1o2 + mfbcb * (vvx + c1o2) + (mfacb + c1o9 * oMdrho) * (vx2 + vvx) * c1o2; + mfacb = m0; + mfbcb = m1; + mfccb = m2; + //////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////// + m0 = mfcac * c1o2 + mfbac * (vvx - c1o2) + (mfaac + c1o36 * oMdrho) * (vx2 - vvx) * c1o2; + m1 = -mfcac - c2o1* mfbac * vvx + mfaac * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfcac * c1o2 + mfbac * (vvx + c1o2) + (mfaac + c1o36 * oMdrho) * (vx2 + vvx) * c1o2; + mfaac = m0; + mfbac = m1; + mfcac = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfcbc * c1o2 + mfbbc * (vvx - c1o2) + (mfabc + c1o9 * oMdrho) * (vx2 - vvx) * c1o2; + m1 = -mfcbc - c2o1* mfbbc * vvx + mfabc * (c1o1 - vx2) - c1o9 * oMdrho * vx2; + m2 = mfcbc * c1o2 + mfbbc * (vvx + c1o2) + (mfabc + c1o9 * oMdrho) * (vx2 + vvx) * c1o2; + mfabc = m0; + mfbbc = m1; + mfcbc = m2; + ///////////c//////////////////////////////////////////////////////////////////////// + m0 = mfccc * c1o2 + mfbcc * (vvx - c1o2) + (mfacc + c1o36 * oMdrho) * (vx2 - vvx) * c1o2; + m1 = -mfccc - c2o1* mfbcc * vvx + mfacc * (c1o1 - vx2) - c1o36 * oMdrho * vx2; + m2 = mfccc * c1o2 + mfbcc * (vvx + c1o2) + (mfacc + c1o36 * oMdrho) * (vx2 + vvx) * c1o2; + mfacc = m0; + mfbcc = m1; + mfccc = m2; + //////////////////////////////////////////////////////////////////////////////////// + + + //////////////////////////////////////////////////////////////////////////////////// + (D.f[dP00])[k] = mfabb;//(D.f[ dP00 ])[ke ] = mfabb;// - c2over27 ; (D.f[ dP00 ])[k ] + (D.f[dM00])[kw] = mfcbb;//(D.f[ dM00 ])[kw ] = mfcbb;// - c2over27 ; (D.f[ dM00 ])[kw ] + (D.f[d0P0])[k] = mfbab;//(D.f[ d0P0 ])[kn ] = mfbab;// - c2over27 ; (D.f[ d0P0 ])[k ] + (D.f[d0M0])[ks] = mfbcb;//(D.f[ d0M0 ])[ks ] = mfbcb;// - c2over27 ; (D.f[ d0M0 ])[ks ] + (D.f[d00P])[k] = mfbba;//(D.f[ d00P ])[kt ] = mfbba;// - c2over27 ; (D.f[ d00P ])[k ] + (D.f[d00M])[kb] = mfbbc;//(D.f[ d00M ])[kb ] = mfbbc;// - c2over27 ; (D.f[ d00M ])[kb ] + (D.f[dPP0])[k] = mfaab;//(D.f[ dPP0 ])[kne ] = mfaab;// - c1over54 ; (D.f[ dPP0 ])[k ] + (D.f[dMM0])[ksw] = mfccb;//(D.f[ dMM0 ])[ksw ] = mfccb;// - c1over54 ; (D.f[ dMM0 ])[ksw ] + (D.f[dPM0])[ks] = mfacb;//(D.f[ dPM0 ])[kse ] = mfacb;// - c1over54 ; (D.f[ dPM0 ])[ks ] + (D.f[dMP0])[kw] = mfcab;//(D.f[ dMP0 ])[knw ] = mfcab;// - c1over54 ; (D.f[ dMP0 ])[kw ] + (D.f[dP0P])[k] = mfaba;//(D.f[ dP0P ])[kte ] = mfaba;// - c1over54 ; (D.f[ dP0P ])[k ] + (D.f[dM0M])[kbw] = mfcbc;//(D.f[ dM0M ])[kbw ] = mfcbc;// - c1over54 ; (D.f[ dM0M ])[kbw ] + (D.f[dP0M])[kb] = mfabc;//(D.f[ dP0M ])[kbe ] = mfabc;// - c1over54 ; (D.f[ dP0M ])[kb ] + (D.f[dM0P])[kw] = mfcba;//(D.f[ dM0P ])[ktw ] = mfcba;// - c1over54 ; (D.f[ dM0P ])[kw ] + (D.f[d0PP])[k] = mfbaa;//(D.f[ d0PP ])[ktn ] = mfbaa;// - c1over54 ; (D.f[ d0PP ])[k ] + (D.f[d0MM])[kbs] = mfbcc;//(D.f[ d0MM ])[kbs ] = mfbcc;// - c1over54 ; (D.f[ d0MM ])[kbs ] + (D.f[d0PM])[kb] = mfbac;//(D.f[ d0PM ])[kbn ] = mfbac;// - c1over54 ; (D.f[ d0PM ])[kb ] + (D.f[d0MP])[ks] = mfbca;//(D.f[ d0MP ])[kts ] = mfbca;// - c1over54 ; (D.f[ d0MP ])[ks ] + (D.f[d000])[k] = mfbbb;//(D.f[ d000])[kzero] = mfbbb;// - c8over27 ; (D.f[ d000])[k ] + (D.f[dPPP])[k] = mfaaa;//(D.f[ dPPP ])[ktne ] = mfaaa;// - c1over216; (D.f[ dPPP ])[k ] + (D.f[dPMP])[ks] = mfaca;//(D.f[ dPMP ])[ktse ] = mfaca;// - c1over216; (D.f[ dPMP ])[ks ] + (D.f[dPPM])[kb] = mfaac;//(D.f[ dPPM ])[kbne ] = mfaac;// - c1over216; (D.f[ dPPM ])[kb ] + (D.f[dPMM])[kbs] = mfacc;//(D.f[ dPMM ])[kbse ] = mfacc;// - c1over216; (D.f[ dPMM ])[kbs ] + (D.f[dMPP])[kw] = mfcaa;//(D.f[ dMPP ])[ktnw ] = mfcaa;// - c1over216; (D.f[ dMPP ])[kw ] + (D.f[dMMP])[ksw] = mfcca;//(D.f[ dMMP ])[ktsw ] = mfcca;// - c1over216; (D.f[ dMMP ])[ksw ] + (D.f[dMPM])[kbw] = mfcac;//(D.f[ dMPM ])[kbnw ] = mfcac;// - c1over216; (D.f[ dMPM ])[kbw ] + (D.f[dMMM])[kbsw] = mfccc;//(D.f[ dMMM ])[kbsw ] = mfccc;// - c1over216; (D.f[ dMMM ])[kbsw] + //////////////////////////////////////////////////////////////////////////////////// + } + } } \ No newline at end of file diff --git a/src/gpu/core/Kernel/Incompressible/NavierStokes/K15/K15IncompressibleNavierStokes_Device.cuh b/src/gpu/core/Kernel/Incompressible/NavierStokes/K15/K15IncompressibleNavierStokes_Device.cuh index 9252b17df43b405e7098359d3c5ff7406cc90759..a8daee5ba20ab4b4a7bf26e748af67309500b8e7 100644 --- a/src/gpu/core/Kernel/Incompressible/NavierStokes/K15/K15IncompressibleNavierStokes_Device.cuh +++ b/src/gpu/core/Kernel/Incompressible/NavierStokes/K15/K15IncompressibleNavierStokes_Device.cuh @@ -5,13 +5,13 @@ #include <curand.h> __global__ void K15IncompressibleNavierStokes_Device( - real s9, - unsigned int* bcMatD, - unsigned int* neighborX, - unsigned int* neighborY, - unsigned int* neighborZ, - real* DDStart, - int size_Mat, - bool EvenOrOdd); + real s9, + unsigned int* bcMatD, + unsigned int* neighborX, + unsigned int* neighborY, + unsigned int* neighborZ, + real* DDStart, + int size_Mat, + bool EvenOrOdd); #endif \ No newline at end of file diff --git a/src/gpu/core/Kernel/KernelFactory/KernelFactory.h b/src/gpu/core/Kernel/KernelFactory/KernelFactory.h index 05755f0eba9c0c0c0bd8fdbab2a2ce4f4590293b..99d2d7fef18709c550bcd8b7f24e5ac586db3b81 100644 --- a/src/gpu/core/Kernel/KernelFactory/KernelFactory.h +++ b/src/gpu/core/Kernel/KernelFactory/KernelFactory.h @@ -17,9 +17,9 @@ class KernelFactory { public: virtual ~KernelFactory() = default; - virtual std::vector< std::shared_ptr< Kernel>> makeKernels(std::shared_ptr<Parameter> para) = 0; - virtual std::vector< std::shared_ptr< AdvectionDiffusionKernel>> makeAdvDifKernels(std::shared_ptr<Parameter> para) = 0; - - virtual void setPorousMedia(std::vector<std::shared_ptr<PorousMedia>> pm) = 0; + virtual std::vector< std::shared_ptr< Kernel>> makeKernels(std::shared_ptr<Parameter> para) = 0; + virtual std::vector< std::shared_ptr< AdvectionDiffusionKernel>> makeAdvDifKernels(std::shared_ptr<Parameter> para) = 0; + + virtual void setPorousMedia(std::vector<std::shared_ptr<PorousMedia>> pm) = 0; }; #endif \ No newline at end of file diff --git a/src/gpu/core/Kernel/KernelFactory/KernelFactoryImp.h b/src/gpu/core/Kernel/KernelFactory/KernelFactoryImp.h index 3f1539413f69c178c1cba68f42cb6121e235ea62..bd156958ef7748d6ecc7bf2f632ba58cf1839c35 100644 --- a/src/gpu/core/Kernel/KernelFactory/KernelFactoryImp.h +++ b/src/gpu/core/Kernel/KernelFactory/KernelFactoryImp.h @@ -8,15 +8,15 @@ class PorousMedia; class KernelFactoryImp : public KernelFactory { public: - std::vector< std::shared_ptr< Kernel>> makeKernels(std::shared_ptr<Parameter> para); - std::vector< std::shared_ptr< AdvectionDiffusionKernel>> makeAdvDifKernels(std::shared_ptr<Parameter> para); + std::vector< std::shared_ptr< Kernel>> makeKernels(std::shared_ptr<Parameter> para); + std::vector< std::shared_ptr< AdvectionDiffusionKernel>> makeAdvDifKernels(std::shared_ptr<Parameter> para); - void setPorousMedia(std::vector<std::shared_ptr<PorousMedia>> pm); + void setPorousMedia(std::vector<std::shared_ptr<PorousMedia>> pm); - std::shared_ptr<Kernel> makeKernel(std::shared_ptr<Parameter> para, std::string kernel, int level); - std::shared_ptr<AdvectionDiffusionKernel> makeAdvDifKernel(std::shared_ptr<Parameter> para, std::string kernel, int level); - void setKernelAtLevel(std::vector< std::shared_ptr<Kernel>> kernels, std::shared_ptr<Parameter> para, std::string kernel, int level); + std::shared_ptr<Kernel> makeKernel(std::shared_ptr<Parameter> para, std::string kernel, int level); + std::shared_ptr<AdvectionDiffusionKernel> makeAdvDifKernel(std::shared_ptr<Parameter> para, std::string kernel, int level); + void setKernelAtLevel(std::vector< std::shared_ptr<Kernel>> kernels, std::shared_ptr<Parameter> para, std::string kernel, int level); - std::vector<std::shared_ptr<PorousMedia>> pm; + std::vector<std::shared_ptr<PorousMedia>> pm; }; #endif \ No newline at end of file diff --git a/src/gpu/core/KernelManager/ADKernelManager.cpp b/src/gpu/core/KernelManager/ADKernelManager.cpp index 0a531bd36eedbd0f90a1ef7f94aa29e5f1dd4ded..7b867dc84acc245633ac65d785f198b48e2979ee 100644 --- a/src/gpu/core/KernelManager/ADKernelManager.cpp +++ b/src/gpu/core/KernelManager/ADKernelManager.cpp @@ -38,56 +38,6 @@ ADKernelManager::ADKernelManager(SPtr<Parameter> parameter, std::vector<SPtr<AdvectionDiffusionKernel>>& adkernels): para(parameter), adkernels(adkernels){} -void ADKernelManager::initAD(const int level) const -{ - ////////////////////////////////////////////////////////////////////////// - // calculation of omega for diffusivity - para->getParD(level)->omegaDiffusivity = (real)2.0 / ((real)6.0 * para->getParD(level)->diffusivity + (real)1.0); - ////////////////////////////////////////////////////////////////////////// - para->getParD(level)->isEvenTimestep = true; - ////////////////////////////////////////////////////////////////////////// - InitADDev27( - para->getParD(level)->numberofthreads, - para->getParD(level)->neighborX, - para->getParD(level)->neighborY, - para->getParD(level)->neighborZ, - para->getParD(level)->typeOfGridNode, - para->getParD(level)->concentration, - para->getParD(level)->velocityX, - para->getParD(level)->velocityY, - para->getParD(level)->velocityZ, - para->getParD(level)->numberOfNodes, - para->getParD(level)->distributionsAD.f[0], - para->getParD(level)->isEvenTimestep); - ////////////////////////////////////////////////////////////////////////// - para->getParD(level)->isEvenTimestep = false; - ////////////////////////////////////////////////////////////////////////// - InitADDev27( - para->getParD(level)->numberofthreads, - para->getParD(level)->neighborX, - para->getParD(level)->neighborY, - para->getParD(level)->neighborZ, - para->getParD(level)->typeOfGridNode, - para->getParD(level)->concentration, - para->getParD(level)->velocityX, - para->getParD(level)->velocityY, - para->getParD(level)->velocityZ, - para->getParD(level)->numberOfNodes, - para->getParD(level)->distributionsAD.f[0], - para->getParD(level)->isEvenTimestep); - ////////////////////////////////////////////////////////////////////////// - CalcConcentration27( - para->getParD(level)->numberofthreads, - para->getParD(level)->concentration, - para->getParD(level)->typeOfGridNode, - para->getParD(level)->neighborX, - para->getParD(level)->neighborY, - para->getParD(level)->neighborZ, - para->getParD(level)->numberOfNodes, - para->getParD(level)->distributionsAD.f[0], - para->getParD(level)->isEvenTimestep); -} - //////////////////////////////////////////////////////////////////////////////// void ADKernelManager::setInitialNodeValuesAD(const int level, SPtr<CudaMemoryManager> cudaMemoryManager) const { diff --git a/src/gpu/core/KernelManager/ADKernelManager.h b/src/gpu/core/KernelManager/ADKernelManager.h index 46d818b04e3a2f3fc2b53d5deef249900d324faa..86a59d58371377fa3b4468f1f9e8bac94e0184d4 100644 --- a/src/gpu/core/KernelManager/ADKernelManager.h +++ b/src/gpu/core/KernelManager/ADKernelManager.h @@ -54,9 +54,6 @@ public: //! \param parameter shared pointer to instance of class Parameter ADKernelManager(SPtr<Parameter> parameter, std::vector<SPtr<AdvectionDiffusionKernel>>& adkernels); - //! \brief initialize the advection diffusion distributions - void initAD(const int level) const; - //! \brief set initial concentration values at all nodes //! \param cudaMemoryManager instance of class CudaMemoryManager void setInitialNodeValuesAD(const int level, SPtr<CudaMemoryManager> cudaMemoryManager) const; diff --git a/src/gpu/core/KernelManager/BCKernelManager.h b/src/gpu/core/KernelManager/BCKernelManager.h index 1961f25f4f9d6ca899d07158aaeeb7caab2b2738..1dd48f0221743f6ac6461c9db3c8a7a9fc97404d 100644 --- a/src/gpu/core/KernelManager/BCKernelManager.h +++ b/src/gpu/core/KernelManager/BCKernelManager.h @@ -86,8 +86,8 @@ public: //! \brief calls the device function of the pressure boundary condition (post-collision) void runPressureBCKernelPost(const int level) const; - //! \brief calls the device function of the precursor boundary condition - void runPrecursorBCKernelPost(int level, uint t, CudaMemoryManager* cudaMemoryManager); + //! \brief calls the device function of the precursor boundary condition + void runPrecursorBCKernelPost(int level, uint t, CudaMemoryManager* cudaMemoryManager); //! \brief calls the device function of the outflow boundary condition void runOutflowBCKernelPre(const int level) const; diff --git a/src/gpu/core/LBM/GPUHelperFunctions/ChimeraTransformation.h b/src/gpu/core/LBM/GPUHelperFunctions/ChimeraTransformation.h deleted file mode 100644 index 4ba786cc1f281725ed24bc9f5c587f33cec78f56..0000000000000000000000000000000000000000 --- a/src/gpu/core/LBM/GPUHelperFunctions/ChimeraTransformation.h +++ /dev/null @@ -1,108 +0,0 @@ -//======================================================================================= -// ____ ____ __ ______ __________ __ __ __ __ -// \ \ | | | | | _ \ |___ ___| | | | | / \ | | -// \ \ | | | | | |_) | | | | | | | / \ | | -// \ \ | | | | | _ / | | | | | | / /\ \ | | -// \ \ | | | | | | \ \ | | | \__/ | / ____ \ | |____ -// \ \ | | |__| |__| \__\ |__| \________/ /__/ \__\ |_______| -// \ \ | | ________________________________________________________________ -// \ \ | | | ______________________________________________________________| -// \ \| | | | __ __ __ __ ______ _______ -// \ | | |_____ | | | | | | | | | _ \ / _____) -// \ | | _____| | | | | | | | | | | \ \ \_______ -// \ | | | | |_____ | \_/ | | | | |_/ / _____ | -// \ _____| |__| |________| \_______/ |__| |______/ (_______/ -// -// This file is part of VirtualFluids. VirtualFluids is free software: you can -// redistribute it and/or modify it under the terms of the GNU General Public -// License as published by the Free Software Foundation, either version 3 of -// the License, or (at your option) any later version. -// -// VirtualFluids is distributed in the hope that it will be useful, but WITHOUT -// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -// for more details. -// -// You should have received a copy of the GNU General Public License along -// with VirtualFluids (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>. -// -//! \file ChimeraTransformation.h -//! \ingroup LBM/GPUHelperFunctions -//! \author Martin Schoenherr, Anna Wellmann, Soeren Peters -//======================================================================================= -#ifndef CHIMERA_TRANSFORMATION_H -#define CHIMERA_TRANSFORMATION_H - -#include "LBM/LB.h" - -#include <basics/constants/NumericConstants.h> - -using namespace vf::basics::constant; - -namespace vf::gpu -{ - -//////////////////////////////////////////////////////////////////////////////// -//! \brief forward chimera transformation \ref forwardInverseChimeraWithK -//! Transformation from distributions to central moments according to Eq. (6)-(14) in \ref -//! <a href="https://doi.org/10.1016/j.jcp.2017.05.040"><b>[ M. Geier et al. (2017), DOI:10.1016/j.jcp.2017.05.040 -//! ]</b></a> Modified for lower round-off errors. -__inline__ __device__ void forwardInverseChimeraWithK(real &mfa, real &mfb, real &mfc, real vv, real v2, real Kinverse, real K) -{ - real m2 = mfa + mfc; - real m1 = mfc - mfa; - real m0 = m2 + mfb; - mfa = m0; - m0 *= Kinverse; - m0 += c1o1; - mfb = (m1 * Kinverse - m0 * vv) * K; - mfc = ((m2 - c2o1 * m1 * vv) * Kinverse + v2 * m0) * K; -} - -//////////////////////////////////////////////////////////////////////////////// -//! \brief backward chimera transformation \ref backwardInverseChimeraWithK -//! Transformation from central moments to distributions according to Eq. (57)-(65) in \ref -//! <a href="https://doi.org/10.1016/j.jcp.2017.05.040"><b>[ M. Geier et al. (2017), DOI:10.1016/j.jcp.2017.05.040 -//! ]</b></a> Modified for lower round-off errors. -__inline__ __device__ void backwardInverseChimeraWithK(real &mfa, real &mfb, real &mfc, real vv, real v2, real Kinverse, real K) -{ - real m0 = (((mfc - mfb) * c1o2 + mfb * vv) * Kinverse + (mfa * Kinverse + c1o1) * (v2 - vv) * c1o2) * K; - real m1 = (((mfa - mfc) - c2o1 * mfb * vv) * Kinverse + (mfa * Kinverse + c1o1) * (-v2)) * K; - mfc = (((mfc + mfb) * c1o2 + mfb * vv) * Kinverse + (mfa * Kinverse + c1o1) * (v2 + vv) * c1o2) * K; - mfa = m0; - mfb = m1; -} - -//////////////////////////////////////////////////////////////////////////////// -//! \brief forward chimera transformation \ref forwardChimera -//! Transformation from distributions to central moments according to Eq. (6)-(14) in \ref -//! <a href="https://doi.org/10.1016/j.jcp.2017.05.040"><b>[ M. Geier et al. (2017), DOI:10.1016/j.jcp.2017.05.040 -//! ]</b></a> for \f$ K_{abc}=0 \f$. This is to avoid unnessary floating point operations. Modified for lower round-off -//! errors. -__inline__ __device__ void forwardChimera(real &mfa, real &mfb, real &mfc, real vv, real v2) -{ - real m1 = (mfa + mfc) + mfb; - real m2 = mfc - mfa; - mfc = (mfc + mfa) + (v2 * m1 - c2o1 * vv * m2); - mfb = m2 - vv * m1; - mfa = m1; -} - -//////////////////////////////////////////////////////////////////////////////// -//! \brief backward chimera transformation \ref backwardChimera -//! Transformation from central moments to distributions according to Eq. (57)-(65) in \ref -//! <a href="https://doi.org/10.1016/j.jcp.2017.05.040"><b>[ M. Geier et al. (2017), DOI:10.1016/j.jcp.2017.05.040 -//! ]</b></a> for \f$ K_{abc}=0 \f$. This is to avoid unnessary floating point operations. Modified for lower round-off -//! errors. -__inline__ __device__ void backwardChimera(real &mfa, real &mfb, real &mfc, real vv, real v2) -{ - real ma = (mfc + mfa * (v2 - vv)) * c1o2 + mfb * (vv - c1o2); - real mb = ((mfa - mfc) - mfa * v2) - c2o1 * mfb * vv; - mfc = (mfc + mfa * (v2 + vv)) * c1o2 + mfb * (vv + c1o2); - mfb = mb; - mfa = ma; -} - -} // namespace vf::gpu - -#endif diff --git a/src/gpu/core/LBM/Simulation.cpp b/src/gpu/core/LBM/Simulation.cpp index 6a597ca881943084df948a7b2f9ae60982331ee9..3566c26f8849e586bcdadbc6c916f0815b8d54cf 100644 --- a/src/gpu/core/LBM/Simulation.cpp +++ b/src/gpu/core/LBM/Simulation.cpp @@ -44,6 +44,7 @@ ////////////////////////////////////////////////////////////////////////// #include "Output/Timer.h" #include "Output/FileWriter.h" +#include "Output/DistributionDebugWriter.h" ////////////////////////////////////////////////////////////////////////// #include "Restart/RestartObject.h" ////////////////////////////////////////////////////////////////////////// @@ -72,8 +73,8 @@ Simulation::Simulation(std::shared_ptr<Parameter> para, std::shared_ptr<CudaMemo : para(para), cudaMemoryManager(memoryManager), communicator(communicator), kernelFactory(std::make_unique<KernelFactoryImp>()), preProcessorFactory(std::make_shared<PreProcessorFactoryImp>()), dataWriter(std::make_unique<FileWriter>()) { - this->tmFactory = SPtr<TurbulenceModelFactory>( new TurbulenceModelFactory(para) ); - init(gridProvider, bcFactory, tmFactory, scalingFactory); + this->tmFactory = SPtr<TurbulenceModelFactory>( new TurbulenceModelFactory(para) ); + init(gridProvider, bcFactory, tmFactory, scalingFactory); } Simulation::Simulation(std::shared_ptr<Parameter> para, std::shared_ptr<CudaMemoryManager> memoryManager, @@ -81,7 +82,7 @@ Simulation::Simulation(std::shared_ptr<Parameter> para, std::shared_ptr<CudaMemo : para(para), cudaMemoryManager(memoryManager), communicator(communicator), kernelFactory(std::make_unique<KernelFactoryImp>()), preProcessorFactory(std::make_shared<PreProcessorFactoryImp>()), dataWriter(std::make_unique<FileWriter>()) { - init(gridProvider, bcFactory, tmFactory, scalingFactory); + init(gridProvider, bcFactory, tmFactory, scalingFactory); } void Simulation::init(GridProvider &gridProvider, BoundaryConditionFactory *bcFactory, SPtr<TurbulenceModelFactory> tmFactory, GridScalingFactory *scalingFactory) @@ -155,6 +156,8 @@ void Simulation::init(GridProvider &gridProvider, BoundaryConditionFactory *bcFa if (para->getDiffOn()) { VF_LOG_INFO("make AD Kernels"); adKernels = kernelFactory->makeAdvDifKernels(para); + std::vector<PreProcessorType> preProADTypes = adKernels.at(0)->getPreProcessorTypes(); + preProcessorAD = preProcessorFactory->makePreProcessor(preProADTypes, para); } ////////////////////////////////////////////////////////////////////////// @@ -269,7 +272,7 @@ void Simulation::init(GridProvider &gridProvider, BoundaryConditionFactory *bcFa // VF_LOG_INFO("done."); VF_LOG_INFO("init lattice..."); - initLattice(para, preProcessor, cudaMemoryManager); + initLattice(para, preProcessor, preProcessorAD, cudaMemoryManager); VF_LOG_INFO("done"); // VF_LOG_INFO("set geo for Q...\n"); @@ -362,12 +365,7 @@ void Simulation::init(GridProvider &gridProvider, BoundaryConditionFactory *bcFa copyAndPrintParticles(para.get(), cudaMemoryManager.get(), 0, true); VF_LOG_INFO("... done."); - ////////////////////////////////////////////////////////////////////////// - VF_LOG_INFO("used Device Memory: {} MB", cudaMemoryManager->getMemsizeGPU() / 1000000.0); - // std::cout << "Process " << communicator.getPID() <<": used device memory" << cudaMemoryManager->getMemsizeGPU() / - // 1000000.0 << " MB\n" << std::endl; - ////////////////////////////////////////////////////////////////////////// - + VF_LOG_INFO("Write vtk files for debugging..."); // NeighborDebugWriter::writeNeighborLinkLinesDebug(para.get()); // InterfaceDebugWriter::writeInterfaceLinesDebugCF(para.get()); @@ -382,6 +380,19 @@ void Simulation::init(GridProvider &gridProvider, BoundaryConditionFactory *bcFa // EdgeNodeDebugWriter::writeEdgeNodesXZ_Send(para); // EdgeNodeDebugWriter::writeEdgeNodesXZ_Recv(para); // } + +#if DEBUG_FS + VF_LOG_INFO("Allocating host memory for DistributionWriter."); + DistributionDebugWriter::allocateDistributionsOnHost(*cudaMemoryManager); +#endif + + VF_LOG_INFO("...done"); + + ////////////////////////////////////////////////////////////////////////// + VF_LOG_INFO("used Device Memory: {} MB", cudaMemoryManager->getMemsizeGPU() / 1000000.0); + // std::cout << "Process " << communicator.getPID() <<": used device memory" << cudaMemoryManager->getMemsizeGPU() / + // 1000000.0 << " MB\n" << std::endl; + ////////////////////////////////////////////////////////////////////////// } void Simulation::addKineticEnergyAnalyzer(uint tAnalyse) @@ -951,6 +962,13 @@ void Simulation::readAndWriteFiles(uint timestep) } //////////////////////////////////////////////////////////////////////// if (para->getCalcParticles()) copyAndPrintParticles(para.get(), cudaMemoryManager.get(), timestep, false); + +#if DEBUG_FS + // Write distributions (f's) for debugging purposes. + DistributionDebugWriter::copyDistributionsToHost(*para, *cudaMemoryManager); + DistributionDebugWriter::writeDistributions(*para, timestep); +#endif + //////////////////////////////////////////////////////////////////////// VF_LOG_INFO("... done"); //////////////////////////////////////////////////////////////////////// diff --git a/src/gpu/core/LBM/Simulation.h b/src/gpu/core/LBM/Simulation.h index 331c4cecfee53b87b65f1918fb38c7145b74dde8..4a9c89ba0aec09439bf8f440b9af2bc02054f167 100644 --- a/src/gpu/core/LBM/Simulation.h +++ b/src/gpu/core/LBM/Simulation.h @@ -38,8 +38,8 @@ class Simulation { public: Simulation(std::shared_ptr<Parameter> para, std::shared_ptr<CudaMemoryManager> memoryManager, - vf::parallel::Communicator &communicator, GridProvider &gridProvider, BoundaryConditionFactory* bcFactory, GridScalingFactory* scalingFactory = nullptr); - Simulation(std::shared_ptr<Parameter> para, std::shared_ptr<CudaMemoryManager> memoryManager, + vf::parallel::Communicator &communicator, GridProvider &gridProvider, BoundaryConditionFactory* bcFactory, GridScalingFactory* scalingFactory = nullptr); + Simulation(std::shared_ptr<Parameter> para, std::shared_ptr<CudaMemoryManager> memoryManager, vf::parallel::Communicator &communicator, GridProvider &gridProvider, BoundaryConditionFactory* bcFactory, SPtr<TurbulenceModelFactory> tmFactory, GridScalingFactory* scalingFactory = nullptr); ~Simulation(); @@ -57,32 +57,33 @@ public: void initTimers(); private: - void init(GridProvider &gridProvider, BoundaryConditionFactory *bcFactory, SPtr<TurbulenceModelFactory> tmFactory, GridScalingFactory *scalingFactory); + void init(GridProvider &gridProvider, BoundaryConditionFactory *bcFactory, SPtr<TurbulenceModelFactory> tmFactory, GridScalingFactory *scalingFactory); void allocNeighborsOffsetsScalesAndBoundaries(GridProvider& gridProvider); void readAndWriteFiles(uint timestep); - std::unique_ptr<KernelFactory> kernelFactory; - std::shared_ptr<PreProcessorFactory> preProcessorFactory; + std::unique_ptr<KernelFactory> kernelFactory; + std::shared_ptr<PreProcessorFactory> preProcessorFactory; - Buffer2D <real> sbuf_t; - Buffer2D <real> rbuf_t; - Buffer2D <real> sbuf_b; - Buffer2D <real> rbuf_b; + Buffer2D <real> sbuf_t; + Buffer2D <real> rbuf_t; + Buffer2D <real> sbuf_b; + Buffer2D <real> rbuf_b; - Buffer2D <int> geo_sbuf_t; - Buffer2D <int> geo_rbuf_t; - Buffer2D <int> geo_sbuf_b; - Buffer2D <int> geo_rbuf_b; + Buffer2D <int> geo_sbuf_t; + Buffer2D <int> geo_rbuf_t; + Buffer2D <int> geo_sbuf_b; + Buffer2D <int> geo_rbuf_b; - vf::parallel::Communicator& communicator; + vf::parallel::Communicator& communicator; SPtr<Parameter> para; std::shared_ptr<DataWriter> dataWriter; - std::shared_ptr<CudaMemoryManager> cudaMemoryManager; - std::vector < SPtr< Kernel>> kernels; - std::vector < SPtr< AdvectionDiffusionKernel>> adKernels; - std::shared_ptr<PreProcessor> preProcessor; - SPtr<TurbulenceModelFactory> tmFactory; + std::shared_ptr<CudaMemoryManager> cudaMemoryManager; + std::vector < SPtr< Kernel>> kernels; + std::vector < SPtr< AdvectionDiffusionKernel>> adKernels; + std::shared_ptr<PreProcessor> preProcessor; + std::shared_ptr<PreProcessor> preProcessorAD; + SPtr<TurbulenceModelFactory> tmFactory; SPtr<RestartObject> restart_object; @@ -93,25 +94,25 @@ private: uint timestepForMeasuringPoints; - //Forcing Calculation - std::shared_ptr<ForceCalculations> forceCalculator; + //Forcing Calculation + std::shared_ptr<ForceCalculations> forceCalculator; // TODO: https://git.rz.tu-bs.de/irmb/VirtualFluids_dev/-/issues/29 - //KQ - Schlaff - // unsigned int kNQ, kSQ, kEQ, kWQ; - // QforBoundaryConditions QnH, QnD; - // QforBoundaryConditions QsH, QsD; - // QforBoundaryConditions QeH, QeD; - // QforBoundaryConditions QwH, QwD; - // real *VxNH, *VyNH, *VzNH, *deltaVNH; - // real *VxND, *VyND, *VzND, *deltaVND; - // real *VxSH, *VySH, *VzSH, *deltaVSH; - // real *VxSD, *VySD, *VzSD, *deltaVSD; - // real *VxEH, *VyEH, *VzEH, *deltaVEH; - // real *VxED, *VyED, *VzED, *deltaVED; - // real *VxWH, *VyWH, *VzWH, *deltaVWH; - // real *VxWD, *VyWD, *VzWD, *deltaVWD; + //KQ - Schlaff + // unsigned int kNQ, kSQ, kEQ, kWQ; + // QforBoundaryConditions QnH, QnD; + // QforBoundaryConditions QsH, QsD; + // QforBoundaryConditions QeH, QeD; + // QforBoundaryConditions QwH, QwD; + // real *VxNH, *VyNH, *VzNH, *deltaVNH; + // real *VxND, *VyND, *VzND, *deltaVND; + // real *VxSH, *VySH, *VzSH, *deltaVSH; + // real *VxSD, *VySD, *VzSD, *deltaVSD; + // real *VxEH, *VyEH, *VzEH, *deltaVEH; + // real *VxED, *VyED, *VzED, *deltaVED; + // real *VxWH, *VyWH, *VzWH, *deltaVWH; + // real *VxWD, *VyWD, *VzWD, *deltaVWD; std::unique_ptr<KineticEnergyAnalyzer> kineticEnergyAnalyzer; diff --git a/src/gpu/core/Output/AnalysisData.hpp b/src/gpu/core/Output/AnalysisData.hpp index 882cc2b46c3faf3eb81a5296a7b8c6f2e1bc3ac8..054f053fc8227f333957242d580e8f3f91cf3c39 100644 --- a/src/gpu/core/Output/AnalysisData.hpp +++ b/src/gpu/core/Output/AnalysisData.hpp @@ -8,148 +8,148 @@ class AnalysisData { public: - AnalysisData(){} - ~AnalysisData(){} - - static void writeAnalysisData(Parameter* para, unsigned int t) - { - UbFileOutputASCII out(para->getFName()+"_AD_"+StringUtil::toString<int>(t)+".dat"); - - unsigned int j = para->getParH(0)->gridNY / 2 + STARTOFFY; - - for (unsigned int k=STARTOFFZ; k<para->getParH(0)->gridNZ + STARTOFFZ; k++) - { - for (unsigned int i=STARTOFFX; i<para->getParH(0)->gridNX + STARTOFFX; i++) - { - int m = para->getParH(0)->nx*(para->getParH(0)->ny*k + j) + i; - //gerade - out.writeDouble((double)para->getParH(0)->velocityY[para->getParH(0)->k[m]]); - //schr�g x -// out.writeDouble((double)para->getParH(0)->vz_SP[para->getParH(0)->k[m]]); - //schr�g z - //out.writeDouble((double)para->getParH(0)->vx_SP[para->getParH(0)->k[m]]); - } - out.writeLine(); - } - } - - static void writeAnalysisDataX(Parameter* para, unsigned int t) - { - UbFileOutputASCII out(para->getFName()+"_AD_X_"+StringUtil::toString<int>(t)+".dat"); - - //unsigned int j = para->getParH(0)->gridNY / 2 + STARTOFFY; - - //for (unsigned int k=STARTOFFZ; k<para->getParH(0)->gridNZ + STARTOFFZ; k++) - //{ - // for (unsigned int i=STARTOFFX; i<para->getParH(0)->gridNX + STARTOFFX; i++) - // { - // int m = para->getParH(0)->nx*(para->getParH(0)->ny*k + j) + i; - // //Taylor Green Vortex - X - // out.writeDouble((double)para->getParH(0)->vx_SP[para->getParH(0)->k[m]]); - // } - // out.writeLine(); - //} - int numberNodes = (int)para->getParH(0)->numberOfNodes; - - real deltaX = 1.0f; - real halfDx = deltaX / 2.0f; - real middleOfTheGrid = (para->getMaxCoordY()[0] + para->getMinCoordY()[0]) / 2.f; - - for (int u = 0; u < numberNodes; u++) - { - if ((para->getParH(0)->typeOfGridNode[u] == GEO_FLUID) && - ((middleOfTheGrid - halfDx) <= para->getParH(0)->coordinateY[u]) && - ((middleOfTheGrid + halfDx) >= para->getParH(0)->coordinateY[u])) - { - out.writeDouble((float)(para->getParH(0)->velocityX[u])); - out.writeLine(); - } - } - } - - static void writeAnalysisDataZ(Parameter* para, unsigned int t) - { - UbFileOutputASCII out(para->getFName()+"_AD_Z_"+StringUtil::toString<int>(t)+".dat"); - - unsigned int j = para->getParH(0)->gridNY / 2 + STARTOFFY; - - for (unsigned int k=STARTOFFZ; k<para->getParH(0)->gridNZ + STARTOFFZ; k++) - { - for (unsigned int i=STARTOFFX; i<para->getParH(0)->gridNX + STARTOFFX; i++) - { - int m = para->getParH(0)->nx*(para->getParH(0)->ny*k + j) + i; - //Taylor Green Vortex - Z - out.writeDouble((double)para->getParH(0)->velocityZ[para->getParH(0)->k[m]]); - } - out.writeLine(); - } - } - - static void writeAnalysisDataXSP(Parameter* para, unsigned int t) - { - UbFileOutputASCII out(para->getFName() + "_AD_X_" + StringUtil::toString<int>(t) + ".dat"); - - real level = 0; //uniform - int numberNodes = (int)para->getParH(level)->numberOfNodes; - - real deltaX = 1.0f / pow(2, level); - real halfDx = deltaX / 2.0f; - real middleOfTheGrid = (para->getMaxCoordY()[0] + para->getMinCoordY()[0]) / 2.f; - - for (int u = 0; u < numberNodes; u++) - { - if ((para->getParH(level)->typeOfGridNode[u] == GEO_FLUID) && - ((middleOfTheGrid - halfDx) <= para->getParH(level)->coordinateY[u]) && - ((middleOfTheGrid + halfDx) >= para->getParH(level)->coordinateY[u])) - { - out.writeDouble((double)(para->getParH(level)->velocityX[u])); - } - } - } - - static void writeAnalysisDataYSP(Parameter* para, unsigned int t) - { - UbFileOutputASCII out(para->getFName() + "_AD_Y_" + StringUtil::toString<int>(t) + ".dat"); - - real level = 0; //uniform - int numberNodes = (int)para->getParH(level)->numberOfNodes; - - real deltaX = 1.0f / pow(2, level); - real halfDx = deltaX / 2.0f; - real middleOfTheGrid = (para->getMaxCoordY()[0] + para->getMinCoordY()[0]) / 2.f; - - for (int u = 0; u < numberNodes; u++) - { - if ((para->getParH(level)->typeOfGridNode[u] == GEO_FLUID) && - ((middleOfTheGrid - halfDx) <= para->getParH(level)->coordinateY[u]) && - ((middleOfTheGrid + halfDx) >= para->getParH(level)->coordinateY[u])) - { - out.writeDouble((double)(para->getParH(level)->velocityY[u])); - } - } - } - - static void writeAnalysisDataZSP(Parameter* para, unsigned int t) - { - UbFileOutputASCII out(para->getFName() + "_AD_Z_" + StringUtil::toString<int>(t) + ".dat"); - - real level = 0; //uniform - int numberNodes = (int)para->getParH(level)->numberOfNodes; - - real deltaX = 1.0f / pow(2, level); - real halfDx = deltaX / 2.0f; - real middleOfTheGrid = (para->getMaxCoordY()[0] + para->getMinCoordY()[0]) / 2.f; - - for (int u = 0; u < numberNodes; u++) - { - if ((para->getParH(level)->typeOfGridNode[u] == GEO_FLUID) && - ((middleOfTheGrid - halfDx) <= para->getParH(level)->coordinateY[u]) && - ((middleOfTheGrid + halfDx) >= para->getParH(level)->coordinateY[u])) - { - out.writeDouble((double)(para->getParH(level)->velocityZ[u])); - } - } - } + AnalysisData(){} + ~AnalysisData(){} + + static void writeAnalysisData(Parameter* para, unsigned int t) + { + UbFileOutputASCII out(para->getFName()+"_AD_"+StringUtil::toString<int>(t)+".dat"); + + unsigned int j = para->getParH(0)->gridNY / 2 + STARTOFFY; + + for (unsigned int k=STARTOFFZ; k<para->getParH(0)->gridNZ + STARTOFFZ; k++) + { + for (unsigned int i=STARTOFFX; i<para->getParH(0)->gridNX + STARTOFFX; i++) + { + int m = para->getParH(0)->nx*(para->getParH(0)->ny*k + j) + i; + //gerade + out.writeDouble((double)para->getParH(0)->velocityY[para->getParH(0)->k[m]]); + //schr�g x +// out.writeDouble((double)para->getParH(0)->vz_SP[para->getParH(0)->k[m]]); + //schr�g z + //out.writeDouble((double)para->getParH(0)->vx_SP[para->getParH(0)->k[m]]); + } + out.writeLine(); + } + } + + static void writeAnalysisDataX(Parameter* para, unsigned int t) + { + UbFileOutputASCII out(para->getFName()+"_AD_X_"+StringUtil::toString<int>(t)+".dat"); + + //unsigned int j = para->getParH(0)->gridNY / 2 + STARTOFFY; + + //for (unsigned int k=STARTOFFZ; k<para->getParH(0)->gridNZ + STARTOFFZ; k++) + //{ + // for (unsigned int i=STARTOFFX; i<para->getParH(0)->gridNX + STARTOFFX; i++) + // { + // int m = para->getParH(0)->nx*(para->getParH(0)->ny*k + j) + i; + // //Taylor Green Vortex - X + // out.writeDouble((double)para->getParH(0)->vx_SP[para->getParH(0)->k[m]]); + // } + // out.writeLine(); + //} + int numberNodes = (int)para->getParH(0)->numberOfNodes; + + real deltaX = 1.0f; + real halfDx = deltaX / 2.0f; + real middleOfTheGrid = (para->getMaxCoordY()[0] + para->getMinCoordY()[0]) / 2.f; + + for (int u = 0; u < numberNodes; u++) + { + if ((para->getParH(0)->typeOfGridNode[u] == GEO_FLUID) && + ((middleOfTheGrid - halfDx) <= para->getParH(0)->coordinateY[u]) && + ((middleOfTheGrid + halfDx) >= para->getParH(0)->coordinateY[u])) + { + out.writeDouble((float)(para->getParH(0)->velocityX[u])); + out.writeLine(); + } + } + } + + static void writeAnalysisDataZ(Parameter* para, unsigned int t) + { + UbFileOutputASCII out(para->getFName()+"_AD_Z_"+StringUtil::toString<int>(t)+".dat"); + + unsigned int j = para->getParH(0)->gridNY / 2 + STARTOFFY; + + for (unsigned int k=STARTOFFZ; k<para->getParH(0)->gridNZ + STARTOFFZ; k++) + { + for (unsigned int i=STARTOFFX; i<para->getParH(0)->gridNX + STARTOFFX; i++) + { + int m = para->getParH(0)->nx*(para->getParH(0)->ny*k + j) + i; + //Taylor Green Vortex - Z + out.writeDouble((double)para->getParH(0)->velocityZ[para->getParH(0)->k[m]]); + } + out.writeLine(); + } + } + + static void writeAnalysisDataXSP(Parameter* para, unsigned int t) + { + UbFileOutputASCII out(para->getFName() + "_AD_X_" + StringUtil::toString<int>(t) + ".dat"); + + real level = 0; //uniform + int numberNodes = (int)para->getParH(level)->numberOfNodes; + + real deltaX = 1.0f / pow(2, level); + real halfDx = deltaX / 2.0f; + real middleOfTheGrid = (para->getMaxCoordY()[0] + para->getMinCoordY()[0]) / 2.f; + + for (int u = 0; u < numberNodes; u++) + { + if ((para->getParH(level)->typeOfGridNode[u] == GEO_FLUID) && + ((middleOfTheGrid - halfDx) <= para->getParH(level)->coordinateY[u]) && + ((middleOfTheGrid + halfDx) >= para->getParH(level)->coordinateY[u])) + { + out.writeDouble((double)(para->getParH(level)->velocityX[u])); + } + } + } + + static void writeAnalysisDataYSP(Parameter* para, unsigned int t) + { + UbFileOutputASCII out(para->getFName() + "_AD_Y_" + StringUtil::toString<int>(t) + ".dat"); + + real level = 0; //uniform + int numberNodes = (int)para->getParH(level)->numberOfNodes; + + real deltaX = 1.0f / pow(2, level); + real halfDx = deltaX / 2.0f; + real middleOfTheGrid = (para->getMaxCoordY()[0] + para->getMinCoordY()[0]) / 2.f; + + for (int u = 0; u < numberNodes; u++) + { + if ((para->getParH(level)->typeOfGridNode[u] == GEO_FLUID) && + ((middleOfTheGrid - halfDx) <= para->getParH(level)->coordinateY[u]) && + ((middleOfTheGrid + halfDx) >= para->getParH(level)->coordinateY[u])) + { + out.writeDouble((double)(para->getParH(level)->velocityY[u])); + } + } + } + + static void writeAnalysisDataZSP(Parameter* para, unsigned int t) + { + UbFileOutputASCII out(para->getFName() + "_AD_Z_" + StringUtil::toString<int>(t) + ".dat"); + + real level = 0; //uniform + int numberNodes = (int)para->getParH(level)->numberOfNodes; + + real deltaX = 1.0f / pow(2, level); + real halfDx = deltaX / 2.0f; + real middleOfTheGrid = (para->getMaxCoordY()[0] + para->getMinCoordY()[0]) / 2.f; + + for (int u = 0; u < numberNodes; u++) + { + if ((para->getParH(level)->typeOfGridNode[u] == GEO_FLUID) && + ((middleOfTheGrid - halfDx) <= para->getParH(level)->coordinateY[u]) && + ((middleOfTheGrid + halfDx) >= para->getParH(level)->coordinateY[u])) + { + out.writeDouble((double)(para->getParH(level)->velocityZ[u])); + } + } + } protected: private: diff --git a/src/gpu/core/Output/ClogWriter.h b/src/gpu/core/Output/ClogWriter.h index 73759cd83f396a947f1fe49dd349218dd292fc5e..89f5f3412506a6de604a166422ec272aca0b60e0 100644 --- a/src/gpu/core/Output/ClogWriter.h +++ b/src/gpu/core/Output/ClogWriter.h @@ -15,4 +15,4 @@ private: int data; }; #endif -#endif //CLOGWRITER_H +#endif //CLOGWRITER_H diff --git a/src/gpu/core/Output/DataWriter.h b/src/gpu/core/Output/DataWriter.h index 51bc38565803c4393665943d1159884a47246ba7..1cee5a008ebb26cf9f05403bcfff6396d43f3711 100644 --- a/src/gpu/core/Output/DataWriter.h +++ b/src/gpu/core/Output/DataWriter.h @@ -19,6 +19,6 @@ public: virtual void writeInit(std::shared_ptr<Parameter> para, std::shared_ptr<CudaMemoryManager> cudaMemoryManager) = 0; virtual void writeTimestep(std::shared_ptr<Parameter> para, unsigned int timestep) = 0; - virtual void writeTimestep(std::shared_ptr<Parameter> para, unsigned int timestep, int level) = 0; + virtual void writeTimestep(std::shared_ptr<Parameter> para, unsigned int timestep, int level) = 0; }; #endif diff --git a/src/gpu/core/Output/DistributionDebugWriter.cpp b/src/gpu/core/Output/DistributionDebugWriter.cpp new file mode 100644 index 0000000000000000000000000000000000000000..fbfee978931477d44568d2413adabe6167fc1955 --- /dev/null +++ b/src/gpu/core/Output/DistributionDebugWriter.cpp @@ -0,0 +1,129 @@ +#include <basics/writer/WbWriterVtkXmlBinary.h> +#include <lbm/constants/D3Q27.h> +#include "DistributionDebugWriter.h" +#include "Parameter/Parameter.h" +#include "WriterUtilities.h" +#include "FilePartCalculator.h" +#include "GPU/CudaMemoryManager.h" + +using namespace vf::lbm::dir; + +void DistributionDebugWriter::writeDistributions(const Parameter& para, uint timestep) +{ + for (int level = para.getCoarse(); level <= para.getFine(); level++) { + DistributionDebugWriter::writeDistributionsForLevel(para, level, timestep); + } +} + +void createFileNames(std::vector<std::string>& fileNames, uint numberOfParts, uint level, uint timestep, const Parameter& para) +{ + for (uint i = 1; i <= numberOfParts; i++) { + fileNames.push_back(para.getFName() + "_bin_distributions" + + WriterUtilities::makePartFileNameEnding(level, para.getMyProcessID(), i, timestep)); + } +} + +void createNodeDataNames(std::vector<std::string>& nodeDataNames) +{ + nodeDataNames.resize(NUMBER_Of_DIRECTIONS); + + for (uint dir = STARTDIR; dir <= ENDDIR; dir++) { + const size_t minLenghtOfNumberString = 2; // the number is padded with zeros to this length + const auto numberString = std::to_string(dir); + nodeDataNames[dir] = + "f_" + std::string(minLenghtOfNumberString - std::min(minLenghtOfNumberString, numberString.length()), '0') + + numberString; + } +} + +void DistributionDebugWriter::writeDistributionsForLevel(const Parameter& para, uint level, uint timestep) +{ + const LBMSimulationParameter& parH = para.getParHostAsReference(level); + const uint numberOfParts = FilePartCalculator::calculateNumberOfParts(parH.numberOfNodes); + + std::vector<std::string> fileNames; + createFileNames(fileNames, numberOfParts, level, timestep, para); + + std::vector<std::string> nodeDataNames; + createNodeDataNames(nodeDataNames); + + uint sizeOfNodes; + uint startPosition; + uint endPosition; + std::array<uint, 8> indicesOfOct; + std::array<uint, 8> relativePosInPart; + uint relativePositionInPart; + + Distributions27 distributions = parH.distributions; + + if (distributions.f[0] == nullptr) + throw std::runtime_error("Distributions (distributions.f[0]) at level " + std::to_string(level) + + " are not allocated on the host. Can't write distributions."); + + for (unsigned int part = 0; part < numberOfParts; part++) { + sizeOfNodes = FilePartCalculator::calculateNumberOfNodesInPart(parH.numberOfNodes, part); + startPosition = FilePartCalculator::calculateStartingPostionOfPart(part); + endPosition = startPosition + sizeOfNodes; + + std::vector<UbTupleFloat3> nodes(sizeOfNodes); + std::vector<UbTupleUInt8> cells; + std::vector<std::vector<double>> nodeData(nodeDataNames.size()); + for (uint i = 0; i < (uint)nodeDataNames.size(); i++) + nodeData[i].resize(sizeOfNodes); + + for (unsigned int pos = startPosition; pos < endPosition; pos++) { + + if (parH.typeOfGridNode[pos] != GEO_FLUID) + continue; + + relativePositionInPart = pos - startPosition; + + nodes[relativePositionInPart] = + makeUbTuple((float)parH.coordinateX[pos], (float)parH.coordinateY[pos], (float)parH.coordinateZ[pos]); + + for (uint dir = STARTDIR; dir <= ENDDIR; dir++) { + nodeData[dir][relativePositionInPart] = distributions.f[0][dir * parH.numberOfNodes + pos]; + } + + WriterUtilities::getIndicesOfAllNodesInOct(indicesOfOct, pos, parH); + if (WriterUtilities::isPeriodicCell(parH, indicesOfOct[0], indicesOfOct[6])) { + continue; + } + + if (WriterUtilities::areAllNodesInOctValidForWriting(indicesOfOct, parH, endPosition)) { + WriterUtilities::calculateRelativeNodeIndexInPart(relativePosInPart, indicesOfOct, startPosition); + cells.push_back(makeUbTupleFromArray(relativePosInPart)); + } + } + + std::string fileName = WbWriterVtkXmlBinary::getInstance()->writeOctsWithNodeData(fileNames[part], nodes, cells, + nodeDataNames, nodeData); + VF_LOG_DEBUG("DistributionDebugWriter wrote to {} ", fileName); + } +} + +void DistributionDebugWriter::allocateDistributionsOnHost(const CudaMemoryManager& cudaMemoryManager) +{ + cudaMemoryManager.cudaAllocFsForAllLevelsOnHost(); +} + +void DistributionDebugWriter::allocateDistributionsOnHost(const CudaMemoryManager& cudaMemoryManager, uint level) +{ + cudaMemoryManager.cudaAllocFsForCheckPointAndRestart(level); +} + +void DistributionDebugWriter::copyDistributionsToHost(const Parameter& para, const CudaMemoryManager& cudaMemoryManager) +{ + for (int level = 0; level <= para.getMaxLevel(); level++) + DistributionDebugWriter::copyDistributionsToHost(para, cudaMemoryManager, level); +} + +void DistributionDebugWriter::copyDistributionsToHost(const Parameter& para, const CudaMemoryManager& cudaMemoryManager, + uint level) +{ + + if (para.getParHostAsReference(level).distributions.f[0] == nullptr) + throw std::runtime_error("Distributions (distributions.f[0]) at level " + std::to_string(level) + + " are not allocated on the host. Can't copy distributions to host"); + cudaMemoryManager.cudaCopyFsForCheckPoint(level); +} \ No newline at end of file diff --git a/src/gpu/core/Output/DistributionDebugWriter.h b/src/gpu/core/Output/DistributionDebugWriter.h new file mode 100644 index 0000000000000000000000000000000000000000..4b4fcf96c6d98e69983665c178dc3b282e1ac54d --- /dev/null +++ b/src/gpu/core/Output/DistributionDebugWriter.h @@ -0,0 +1,36 @@ +#ifndef DISTRIBUTION_DEBUG_WRITER +#define DISTRIBUTION_DEBUG_WRITER + +#include <basics/DataTypes.h> + +class Parameter; +class CudaMemoryManager; + +//! \brief Functions to write the distributions ("f's") to a VTK-file +//! \details to make this work, the distributions need to be copied to the host. This can be slow! +class DistributionDebugWriter +{ +public: + //! \brief allocate memory for the distributions on the host + //! \details Call only once. If no memory is allocated, error + static void allocateDistributionsOnHost(const CudaMemoryManager& cudaMemoryManager); + //! \param level allocate memory for the specified level only + static void allocateDistributionsOnHost(const CudaMemoryManager& cudaMemoryManager, uint level); + + //! \brief Copy distributions from device to host. Call this function before writing data + //! \details copies data for all levels + static void copyDistributionsToHost(const Parameter& para, const CudaMemoryManager& cudaMemoryManager); + //! \param level allocate memory for the specified level only + static void copyDistributionsToHost(const Parameter& para, const CudaMemoryManager& cudaMemoryManager, uint level); + + //! \brief write the distributions for all levels + //! \details for this to work the distributions have to be allocated on the host and have to be copied to the host for + //! the current timestep + static void writeDistributions(const Parameter& para, uint timestep); + //! \brief write the distributions for one level + //! \details for this to work the distributions have to be allocated on the host and have to be copied to the host for + //! the current timestep + static void writeDistributionsForLevel(const Parameter& para, uint level, uint timestep); +}; + +#endif diff --git a/src/gpu/core/Output/DistributionDebugWriterTest.cpp b/src/gpu/core/Output/DistributionDebugWriterTest.cpp new file mode 100644 index 0000000000000000000000000000000000000000..0ab517b97818af1939bdf718c96e8876015624ed --- /dev/null +++ b/src/gpu/core/Output/DistributionDebugWriterTest.cpp @@ -0,0 +1,20 @@ +#include "DistributionDebugWriter.h" +#include "GPU/CudaMemoryManager.h" +#include "Utilities/testUtilitiesGPU.h" +#include <gmock/gmock.h> + +TEST(DistributionDebugWriterTest, DistributionsAreNotAllocated_CopyDistributions_ShouldThrow) +{ + const auto para = testingVF::createParameterForLevel(0); + const CudaMemoryManager cudaMemoryManager(para); + + EXPECT_THROW(DistributionDebugWriter::copyDistributionsToHost(*para, cudaMemoryManager), std::runtime_error); +} + +TEST(DistributionDebugWriterTest, DistributionsAreNotAllocated_WriteDistributions_ShouldThrow) +{ + const auto para = testingVF::createParameterForLevel(0); + const CudaMemoryManager cudaMemoryManager(para); + + EXPECT_THROW(DistributionDebugWriter::writeDistributions(*para, 0), std::runtime_error); +} diff --git a/src/gpu/core/Output/MeasurePointWriter.hpp b/src/gpu/core/Output/MeasurePointWriter.hpp index c4f5e1413860fd0ad4b548090b6ad72af6384765..9ea6d048e7c214d4f6e5bf54cc31ebea9ac3760b 100644 --- a/src/gpu/core/Output/MeasurePointWriter.hpp +++ b/src/gpu/core/Output/MeasurePointWriter.hpp @@ -18,277 +18,277 @@ class MeasurePointWriter { public: - MeasurePointWriter(){} - ~MeasurePointWriter(){} - - static void writeMeasurePoints(Parameter* para, int level, int index, int t) - { - std::ostringstream convert; // stream used for the conversion - convert << t; // insert the textual representation of 'Number' in the characters in the stream - std::string st = convert.str(); - UbFileOutputASCII out(para->getFName()+"_MeasurePoint_"+para->getParH(level)->MP[index].name+"_"+st+".dat"); - - out.writeString("Level:"); - out.writeInteger(level); - out.writeLine(); - out.writeString("Vx Vy Vz Rho"); - out.writeLine(); - int numberNodes = (int)para->getParH(level)->MP[index].Rho.size(); - out.writeInteger(numberNodes); - out.writeLine(); - for(int u=0; u<numberNodes; u++) - { - out.writeFloat((float)(para->getParH(level)->MP[index].Vx[u] * para->getVelocityRatio())); - out.writeFloat((float)(para->getParH(level)->MP[index].Vy[u] * para->getVelocityRatio())); - out.writeFloat((float)(para->getParH(level)->MP[index].Vz[u] * para->getVelocityRatio())); - out.writeFloat((float)(para->getParH(level)->MP[index].Rho[u] / 3.0f * para->getDensityRatio() * para->getVelocityRatio() * para->getVelocityRatio())); - out.writeLine(); - } - out.writeLine(); - } - - static void writeTestAcousticXY(Parameter* para, int level, int t) - { + MeasurePointWriter(){} + ~MeasurePointWriter(){} + + static void writeMeasurePoints(Parameter* para, int level, int index, int t) + { + std::ostringstream convert; // stream used for the conversion + convert << t; // insert the textual representation of 'Number' in the characters in the stream + std::string st = convert.str(); + UbFileOutputASCII out(para->getFName()+"_MeasurePoint_"+para->getParH(level)->MP[index].name+"_"+st+".dat"); + + out.writeString("Level:"); + out.writeInteger(level); + out.writeLine(); + out.writeString("Vx Vy Vz Rho"); + out.writeLine(); + int numberNodes = (int)para->getParH(level)->MP[index].Rho.size(); + out.writeInteger(numberNodes); + out.writeLine(); + for(int u=0; u<numberNodes; u++) + { + out.writeFloat((float)(para->getParH(level)->MP[index].Vx[u] * para->getVelocityRatio())); + out.writeFloat((float)(para->getParH(level)->MP[index].Vy[u] * para->getVelocityRatio())); + out.writeFloat((float)(para->getParH(level)->MP[index].Vz[u] * para->getVelocityRatio())); + out.writeFloat((float)(para->getParH(level)->MP[index].Rho[u] / 3.0f * para->getDensityRatio() * para->getVelocityRatio() * para->getVelocityRatio())); + out.writeLine(); + } + out.writeLine(); + } + + static void writeTestAcousticXY(Parameter* para, int level, int t) + { std::ostringstream convert; // stream used for the conversion - convert << t; // insert the textual representation of 'Number' in the characters in the stream - std::string st = convert.str(); + convert << t; // insert the textual representation of 'Number' in the characters in the stream + std::string st = convert.str(); std::ostringstream convertLevel; // stream used for the conversion - convertLevel << level; // insert the textual representation of 'Number' in the characters in the stream - std::string sLevel = convertLevel.str(); - - UbFileOutputASCII out(para->getFName() + "_timestep_" + st + "_level_" + sLevel + "_XY.dat"); - - int numberNodes = (int)para->getParH(level)->numberOfNodes; - - real deltaX = 1.0f / pow(2, level); - real halfDx = deltaX / 2.0f; - real middleOfTheGrid = (para->getMaxCoordZ()[0] + para->getMinCoordZ()[0]) / 2.f; - //cout << "deltax: " << deltaX << ", halfDx: " << halfDx << ", middle of the grid: " << middleOfTheGrid << endl; - - for (int u = 0; u < numberNodes; u++) - { - if ((para->getParH(level)->typeOfGridNode[u] == GEO_FLUID) && - ((middleOfTheGrid - halfDx) <= para->getParH(level)->coordinateZ[u]) && - ((middleOfTheGrid + halfDx) >= para->getParH(level)->coordinateZ[u]) ) - { - out.writeFloat((float)(para->getParH(level)->rho[u])); - out.writeFloat((float)(para->getParH(level)->pressure[u])); - out.writeFloat((float)(para->getParH(level)->coordinateX[u])); - out.writeFloat((float)(para->getParH(level)->coordinateY[u])); - out.writeLine(); - } - } - } - - static void writeTestAcousticYZ(Parameter* para, int level, int t) - { + convertLevel << level; // insert the textual representation of 'Number' in the characters in the stream + std::string sLevel = convertLevel.str(); + + UbFileOutputASCII out(para->getFName() + "_timestep_" + st + "_level_" + sLevel + "_XY.dat"); + + int numberNodes = (int)para->getParH(level)->numberOfNodes; + + real deltaX = 1.0f / pow(2, level); + real halfDx = deltaX / 2.0f; + real middleOfTheGrid = (para->getMaxCoordZ()[0] + para->getMinCoordZ()[0]) / 2.f; + //cout << "deltax: " << deltaX << ", halfDx: " << halfDx << ", middle of the grid: " << middleOfTheGrid << endl; + + for (int u = 0; u < numberNodes; u++) + { + if ((para->getParH(level)->typeOfGridNode[u] == GEO_FLUID) && + ((middleOfTheGrid - halfDx) <= para->getParH(level)->coordinateZ[u]) && + ((middleOfTheGrid + halfDx) >= para->getParH(level)->coordinateZ[u]) ) + { + out.writeFloat((float)(para->getParH(level)->rho[u])); + out.writeFloat((float)(para->getParH(level)->pressure[u])); + out.writeFloat((float)(para->getParH(level)->coordinateX[u])); + out.writeFloat((float)(para->getParH(level)->coordinateY[u])); + out.writeLine(); + } + } + } + + static void writeTestAcousticYZ(Parameter* para, int level, int t) + { std::ostringstream convert; // stream used for the conversion - convert << t; // insert the textual representation of 'Number' in the characters in the stream - std::string st = convert.str(); + convert << t; // insert the textual representation of 'Number' in the characters in the stream + std::string st = convert.str(); std::ostringstream convertLevel; // stream used for the conversion - convertLevel << level; // insert the textual representation of 'Number' in the characters in the stream - std::string sLevel = convertLevel.str(); - - UbFileOutputASCII out(para->getFName() + "_timestep_" + st + "_level_" + sLevel + "_YZ.dat"); - - int numberNodes = (int)para->getParH(level)->numberOfNodes; - - real deltaX = 1.0f / pow(2, level); - real halfDx = deltaX / 2.0f; - real middleOfTheGrid = (para->getMaxCoordX()[0] + para->getMinCoordX()[0]) / 2.f; - - for (int u = 0; u < numberNodes; u++) - { - if ((para->getParH(level)->typeOfGridNode[u] == GEO_FLUID) && - ((middleOfTheGrid - halfDx) <= para->getParH(level)->coordinateX[u]) && - ((middleOfTheGrid + halfDx) >= para->getParH(level)->coordinateX[u])) - { - out.writeFloat((float)(para->getParH(level)->rho[u])); - out.writeFloat((float)(para->getParH(level)->pressure[u])); - out.writeFloat((float)(para->getParH(level)->coordinateY[u])); - out.writeFloat((float)(para->getParH(level)->coordinateZ[u])); - out.writeLine(); - } - } - } - - static void writeTestAcousticXZ(Parameter* para, int level, int t) - { + convertLevel << level; // insert the textual representation of 'Number' in the characters in the stream + std::string sLevel = convertLevel.str(); + + UbFileOutputASCII out(para->getFName() + "_timestep_" + st + "_level_" + sLevel + "_YZ.dat"); + + int numberNodes = (int)para->getParH(level)->numberOfNodes; + + real deltaX = 1.0f / pow(2, level); + real halfDx = deltaX / 2.0f; + real middleOfTheGrid = (para->getMaxCoordX()[0] + para->getMinCoordX()[0]) / 2.f; + + for (int u = 0; u < numberNodes; u++) + { + if ((para->getParH(level)->typeOfGridNode[u] == GEO_FLUID) && + ((middleOfTheGrid - halfDx) <= para->getParH(level)->coordinateX[u]) && + ((middleOfTheGrid + halfDx) >= para->getParH(level)->coordinateX[u])) + { + out.writeFloat((float)(para->getParH(level)->rho[u])); + out.writeFloat((float)(para->getParH(level)->pressure[u])); + out.writeFloat((float)(para->getParH(level)->coordinateY[u])); + out.writeFloat((float)(para->getParH(level)->coordinateZ[u])); + out.writeLine(); + } + } + } + + static void writeTestAcousticXZ(Parameter* para, int level, int t) + { std::ostringstream convert; // stream used for the conversion - convert << t; // insert the textual representation of 'Number' in the characters in the stream - std::string st = convert.str(); + convert << t; // insert the textual representation of 'Number' in the characters in the stream + std::string st = convert.str(); std::ostringstream convertLevel; // stream used for the conversion - convertLevel << level; // insert the textual representation of 'Number' in the characters in the stream - std::string sLevel = convertLevel.str(); - - UbFileOutputASCII out(para->getFName() + "_timestep_" + st + "_level_" + sLevel + "_XZ.dat"); - - int numberNodes = (int)para->getParH(level)->numberOfNodes; - - real deltaX = 1.0f / pow(2, level); - real halfDx = deltaX / 2.0f; - real middleOfTheGrid = (para->getMaxCoordY()[0] + para->getMinCoordY()[0]) / 2.f; - - for (int u = 0; u < numberNodes; u++) - { - if ((para->getParH(level)->typeOfGridNode[u] == GEO_FLUID) && - ((middleOfTheGrid - halfDx) <= para->getParH(level)->coordinateY[u]) && - ((middleOfTheGrid + halfDx) >= para->getParH(level)->coordinateY[u])) - { - out.writeFloat((float)(para->getParH(level)->rho[u])); - out.writeFloat((float)(para->getParH(level)->pressure[u])); - out.writeFloat((float)(para->getParH(level)->coordinateX[u])); - out.writeFloat((float)(para->getParH(level)->coordinateZ[u])); - out.writeLine(); - } - } - } - - static void calcAndWriteMeanAndFluctuations(Parameter* para, int level, int t, unsigned int startOfCalculation) - { - //calc - int numberNodes = (int)para->getParH(level)->MP.size(); - std::vector<double> uMean(numberNodes); - std::vector<double> vMean(numberNodes); - std::vector<double> wMean(numberNodes); - std::vector<double> uuMean(numberNodes); - std::vector<double> vvMean(numberNodes); - std::vector<double> wwMean(numberNodes); - std::vector<double> uvMean(numberNodes); - std::vector<double> uwMean(numberNodes); - std::vector<double> vwMean(numberNodes); - - int numberSteps = (int)para->getParH(level)->MP[0].Vx.size(); - - std::vector<double> uuFluct(t); - std::vector<double> vvFluct(t); - std::vector<double> wwFluct(t); - std::vector<double> uvFluct(t); - std::vector<double> uwFluct(t); - std::vector<double> vwFluct(t); - - for (int index = 0; index < numberNodes; index++) - { - //uMean[index] = std::accumulate(para->getParH(level)->MP[index].Vx.begin() + (startOfCalculation - 1), para->getParH(level)->MP[index].Vx.end(), 0.0) / double(t - startOfCalculation); - //vMean[index] = std::accumulate(para->getParH(level)->MP[index].Vy.begin() + (startOfCalculation - 1), para->getParH(level)->MP[index].Vy.end(), 0.0) / double(t - startOfCalculation); - //wMean[index] = std::accumulate(para->getParH(level)->MP[index].Vz.begin() + (startOfCalculation - 1), para->getParH(level)->MP[index].Vz.end(), 0.0) / double(t - startOfCalculation); - - uMean[index] = 0.0; - vMean[index] = 0.0; - wMean[index] = 0.0; - - for (int step = startOfCalculation; step < t; step++) - { - uMean[index] += para->getParH(level)->MP[index].Vx[step]; - vMean[index] += para->getParH(level)->MP[index].Vy[step]; - wMean[index] += para->getParH(level)->MP[index].Vz[step]; - } - - uMean[index] /= double(t - startOfCalculation); - vMean[index] /= double(t - startOfCalculation); - wMean[index] /= double(t - startOfCalculation); - - for (int step = 0; step < t; step++) - { - uuFluct[step] = (para->getParH(level)->MP[index].Vx[step] - uMean[index]) * (para->getParH(level)->MP[index].Vx[step] - uMean[index]); - vvFluct[step] = (para->getParH(level)->MP[index].Vy[step] - vMean[index]) * (para->getParH(level)->MP[index].Vy[step] - vMean[index]); - wwFluct[step] = (para->getParH(level)->MP[index].Vz[step] - wMean[index]) * (para->getParH(level)->MP[index].Vz[step] - wMean[index]); - - uvFluct[step] = (para->getParH(level)->MP[index].Vx[step] - uMean[index]) * (para->getParH(level)->MP[index].Vy[step] - vMean[index]); - uwFluct[step] = (para->getParH(level)->MP[index].Vx[step] - uMean[index]) * (para->getParH(level)->MP[index].Vz[step] - wMean[index]); - vwFluct[step] = (para->getParH(level)->MP[index].Vy[step] - vMean[index]) * (para->getParH(level)->MP[index].Vz[step] - wMean[index]); - } - - //uuMean[index] = std::accumulate(uuFluct.begin() + (startOfCalculation - 1), uuFluct.end(), 0.0) / double(t - startOfCalculation); - //vvMean[index] = std::accumulate(vvFluct.begin() + (startOfCalculation - 1), vvFluct.end(), 0.0) / double(t - startOfCalculation); - //wwMean[index] = std::accumulate(wwFluct.begin() + (startOfCalculation - 1), wwFluct.end(), 0.0) / double(t - startOfCalculation); - - //uvMean[index] = std::accumulate(uvFluct.begin() + (startOfCalculation - 1), uvFluct.end(), 0.0) / double(t - startOfCalculation); - //uwMean[index] = std::accumulate(uwFluct.begin() + (startOfCalculation - 1), uwFluct.end(), 0.0) / double(t - startOfCalculation); - //vwMean[index] = std::accumulate(vwFluct.begin() + (startOfCalculation - 1), vwFluct.end(), 0.0) / double(t - startOfCalculation); - - uuMean[index] = 0.0; - vvMean[index] = 0.0; - wwMean[index] = 0.0; - - uvMean[index] = 0.0; - uwMean[index] = 0.0; - vwMean[index] = 0.0; - - for (int step = startOfCalculation; step < t; step++) - { - uuMean[index] += uuFluct[step]; - vvMean[index] += vvFluct[step]; - wwMean[index] += wwFluct[step]; - - uvMean[index] += uvFluct[step]; - uwMean[index] += uwFluct[step]; - vwMean[index] += vwFluct[step]; - } - - uuMean[index] /= double(t - startOfCalculation); - vvMean[index] /= double(t - startOfCalculation); - wwMean[index] /= double(t - startOfCalculation); - - uvMean[index] /= double(t - startOfCalculation); - uwMean[index] /= double(t - startOfCalculation); - vwMean[index] /= double(t - startOfCalculation); - - } - - std::cout << "level: " << level << ", t: " << t << ", startOfCalculation= " << startOfCalculation << ", numberSteps: " << numberSteps << std::endl; - - //write - UbFileOutputASCII out(para->getFName() + "_MeanAndFluct_" + std::to_string(level) + "_" + std::to_string(t) + ".dat"); - - out.writeString("Level:"); - out.writeInteger(level); - out.writeLine(); - out.writeString("PointName uMean vMean wMean uuMean vvMean wwMean uvMean uwMean vwMean"); - out.writeLine(); - out.writeInteger(numberNodes); - out.writeLine(); - for (int index = 0; index < numberNodes; index++) - { - out.writeString(para->getParH(level)->MP[index].name); - out.writeFloat((float)(uMean[index] * para->getVelocityRatio())); - out.writeFloat((float)(vMean[index] * para->getVelocityRatio())); - out.writeFloat((float)(wMean[index] * para->getVelocityRatio())); - out.writeFloat((float)(uuMean[index] * para->getVelocityRatio() * para->getVelocityRatio())); - out.writeFloat((float)(vvMean[index] * para->getVelocityRatio() * para->getVelocityRatio())); - out.writeFloat((float)(wwMean[index] * para->getVelocityRatio() * para->getVelocityRatio())); - out.writeFloat((float)(uvMean[index] * para->getVelocityRatio() * para->getVelocityRatio())); - out.writeFloat((float)(uwMean[index] * para->getVelocityRatio() * para->getVelocityRatio())); - out.writeFloat((float)(vwMean[index] * para->getVelocityRatio() * para->getVelocityRatio())); - out.writeLine(); - } - out.writeLine(); - } - - static void writeNodes(SPtr<Parameter> para, int level) - { + convertLevel << level; // insert the textual representation of 'Number' in the characters in the stream + std::string sLevel = convertLevel.str(); + + UbFileOutputASCII out(para->getFName() + "_timestep_" + st + "_level_" + sLevel + "_XZ.dat"); + + int numberNodes = (int)para->getParH(level)->numberOfNodes; + + real deltaX = 1.0f / pow(2, level); + real halfDx = deltaX / 2.0f; + real middleOfTheGrid = (para->getMaxCoordY()[0] + para->getMinCoordY()[0]) / 2.f; + + for (int u = 0; u < numberNodes; u++) + { + if ((para->getParH(level)->typeOfGridNode[u] == GEO_FLUID) && + ((middleOfTheGrid - halfDx) <= para->getParH(level)->coordinateY[u]) && + ((middleOfTheGrid + halfDx) >= para->getParH(level)->coordinateY[u])) + { + out.writeFloat((float)(para->getParH(level)->rho[u])); + out.writeFloat((float)(para->getParH(level)->pressure[u])); + out.writeFloat((float)(para->getParH(level)->coordinateX[u])); + out.writeFloat((float)(para->getParH(level)->coordinateZ[u])); + out.writeLine(); + } + } + } + + static void calcAndWriteMeanAndFluctuations(Parameter* para, int level, int t, unsigned int startOfCalculation) + { + //calc + int numberNodes = (int)para->getParH(level)->MP.size(); + std::vector<double> uMean(numberNodes); + std::vector<double> vMean(numberNodes); + std::vector<double> wMean(numberNodes); + std::vector<double> uuMean(numberNodes); + std::vector<double> vvMean(numberNodes); + std::vector<double> wwMean(numberNodes); + std::vector<double> uvMean(numberNodes); + std::vector<double> uwMean(numberNodes); + std::vector<double> vwMean(numberNodes); + + int numberSteps = (int)para->getParH(level)->MP[0].Vx.size(); + + std::vector<double> uuFluct(t); + std::vector<double> vvFluct(t); + std::vector<double> wwFluct(t); + std::vector<double> uvFluct(t); + std::vector<double> uwFluct(t); + std::vector<double> vwFluct(t); + + for (int index = 0; index < numberNodes; index++) + { + //uMean[index] = std::accumulate(para->getParH(level)->MP[index].Vx.begin() + (startOfCalculation - 1), para->getParH(level)->MP[index].Vx.end(), 0.0) / double(t - startOfCalculation); + //vMean[index] = std::accumulate(para->getParH(level)->MP[index].Vy.begin() + (startOfCalculation - 1), para->getParH(level)->MP[index].Vy.end(), 0.0) / double(t - startOfCalculation); + //wMean[index] = std::accumulate(para->getParH(level)->MP[index].Vz.begin() + (startOfCalculation - 1), para->getParH(level)->MP[index].Vz.end(), 0.0) / double(t - startOfCalculation); + + uMean[index] = 0.0; + vMean[index] = 0.0; + wMean[index] = 0.0; + + for (int step = startOfCalculation; step < t; step++) + { + uMean[index] += para->getParH(level)->MP[index].Vx[step]; + vMean[index] += para->getParH(level)->MP[index].Vy[step]; + wMean[index] += para->getParH(level)->MP[index].Vz[step]; + } + + uMean[index] /= double(t - startOfCalculation); + vMean[index] /= double(t - startOfCalculation); + wMean[index] /= double(t - startOfCalculation); + + for (int step = 0; step < t; step++) + { + uuFluct[step] = (para->getParH(level)->MP[index].Vx[step] - uMean[index]) * (para->getParH(level)->MP[index].Vx[step] - uMean[index]); + vvFluct[step] = (para->getParH(level)->MP[index].Vy[step] - vMean[index]) * (para->getParH(level)->MP[index].Vy[step] - vMean[index]); + wwFluct[step] = (para->getParH(level)->MP[index].Vz[step] - wMean[index]) * (para->getParH(level)->MP[index].Vz[step] - wMean[index]); + + uvFluct[step] = (para->getParH(level)->MP[index].Vx[step] - uMean[index]) * (para->getParH(level)->MP[index].Vy[step] - vMean[index]); + uwFluct[step] = (para->getParH(level)->MP[index].Vx[step] - uMean[index]) * (para->getParH(level)->MP[index].Vz[step] - wMean[index]); + vwFluct[step] = (para->getParH(level)->MP[index].Vy[step] - vMean[index]) * (para->getParH(level)->MP[index].Vz[step] - wMean[index]); + } + + //uuMean[index] = std::accumulate(uuFluct.begin() + (startOfCalculation - 1), uuFluct.end(), 0.0) / double(t - startOfCalculation); + //vvMean[index] = std::accumulate(vvFluct.begin() + (startOfCalculation - 1), vvFluct.end(), 0.0) / double(t - startOfCalculation); + //wwMean[index] = std::accumulate(wwFluct.begin() + (startOfCalculation - 1), wwFluct.end(), 0.0) / double(t - startOfCalculation); + + //uvMean[index] = std::accumulate(uvFluct.begin() + (startOfCalculation - 1), uvFluct.end(), 0.0) / double(t - startOfCalculation); + //uwMean[index] = std::accumulate(uwFluct.begin() + (startOfCalculation - 1), uwFluct.end(), 0.0) / double(t - startOfCalculation); + //vwMean[index] = std::accumulate(vwFluct.begin() + (startOfCalculation - 1), vwFluct.end(), 0.0) / double(t - startOfCalculation); + + uuMean[index] = 0.0; + vvMean[index] = 0.0; + wwMean[index] = 0.0; + + uvMean[index] = 0.0; + uwMean[index] = 0.0; + vwMean[index] = 0.0; + + for (int step = startOfCalculation; step < t; step++) + { + uuMean[index] += uuFluct[step]; + vvMean[index] += vvFluct[step]; + wwMean[index] += wwFluct[step]; + + uvMean[index] += uvFluct[step]; + uwMean[index] += uwFluct[step]; + vwMean[index] += vwFluct[step]; + } + + uuMean[index] /= double(t - startOfCalculation); + vvMean[index] /= double(t - startOfCalculation); + wwMean[index] /= double(t - startOfCalculation); + + uvMean[index] /= double(t - startOfCalculation); + uwMean[index] /= double(t - startOfCalculation); + vwMean[index] /= double(t - startOfCalculation); + + } + + std::cout << "level: " << level << ", t: " << t << ", startOfCalculation= " << startOfCalculation << ", numberSteps: " << numberSteps << std::endl; + + //write + UbFileOutputASCII out(para->getFName() + "_MeanAndFluct_" + std::to_string(level) + "_" + std::to_string(t) + ".dat"); + + out.writeString("Level:"); + out.writeInteger(level); + out.writeLine(); + out.writeString("PointName uMean vMean wMean uuMean vvMean wwMean uvMean uwMean vwMean"); + out.writeLine(); + out.writeInteger(numberNodes); + out.writeLine(); + for (int index = 0; index < numberNodes; index++) + { + out.writeString(para->getParH(level)->MP[index].name); + out.writeFloat((float)(uMean[index] * para->getVelocityRatio())); + out.writeFloat((float)(vMean[index] * para->getVelocityRatio())); + out.writeFloat((float)(wMean[index] * para->getVelocityRatio())); + out.writeFloat((float)(uuMean[index] * para->getVelocityRatio() * para->getVelocityRatio())); + out.writeFloat((float)(vvMean[index] * para->getVelocityRatio() * para->getVelocityRatio())); + out.writeFloat((float)(wwMean[index] * para->getVelocityRatio() * para->getVelocityRatio())); + out.writeFloat((float)(uvMean[index] * para->getVelocityRatio() * para->getVelocityRatio())); + out.writeFloat((float)(uwMean[index] * para->getVelocityRatio() * para->getVelocityRatio())); + out.writeFloat((float)(vwMean[index] * para->getVelocityRatio() * para->getVelocityRatio())); + out.writeLine(); + } + out.writeLine(); + } + + static void writeNodes(SPtr<Parameter> para, int level) + { std::ostringstream convert; // stream used for the conversion - std::string st = convert.str(); - UbFileOutputASCII out(para->getFName() + "_Nodes_" + std::to_string(level) + ".dat"); - - out.writeString("Level:"); - out.writeInteger(level); - out.writeLine(); - out.writeString("Index Nx Ny Ny"); - out.writeLine(); - int numberNodes = (int)para->getParH(level)->numberOfNodes; - out.writeInteger(numberNodes); - out.writeLine(); - for (int u = 0; u < numberNodes; u++) - { - out.writeInteger((int)(u)); - out.writeInteger((int)(para->getParH(level)->neighborX[u])); - out.writeInteger((int)(para->getParH(level)->neighborY[u])); - out.writeInteger((int)(para->getParH(level)->neighborZ[u])); - out.writeLine(); - } - out.writeLine(); - } + std::string st = convert.str(); + UbFileOutputASCII out(para->getFName() + "_Nodes_" + std::to_string(level) + ".dat"); + + out.writeString("Level:"); + out.writeInteger(level); + out.writeLine(); + out.writeString("Index Nx Ny Ny"); + out.writeLine(); + int numberNodes = (int)para->getParH(level)->numberOfNodes; + out.writeInteger(numberNodes); + out.writeLine(); + for (int u = 0; u < numberNodes; u++) + { + out.writeInteger((int)(u)); + out.writeInteger((int)(para->getParH(level)->neighborX[u])); + out.writeInteger((int)(para->getParH(level)->neighborY[u])); + out.writeInteger((int)(para->getParH(level)->neighborZ[u])); + out.writeLine(); + } + out.writeLine(); + } protected: private: diff --git a/src/gpu/core/Output/OffsetWriter.hpp b/src/gpu/core/Output/OffsetWriter.hpp index fb04951db68ae509dddc7d2fe52250489b54bde2..89ced349dd964edee50497b33ef461845609ce9d 100644 --- a/src/gpu/core/Output/OffsetWriter.hpp +++ b/src/gpu/core/Output/OffsetWriter.hpp @@ -7,47 +7,47 @@ class OffsetWriter { public: - OffsetWriter(){} - ~OffsetWriter(){} + OffsetWriter(){} + ~OffsetWriter(){} - static void writeOffset(Parameter* para, std::string Type) - { - UbFileOutputASCII out(para->getFName()+Type+".dat"); + static void writeOffset(Parameter* para, std::string Type) + { + UbFileOutputASCII out(para->getFName()+Type+".dat"); - out.writeInteger(para->getMaxLevel()); - out.writeLine(); + out.writeInteger(para->getMaxLevel()); + out.writeLine(); - if (Type == "_OffsetCF") - { - for (int level = 0; level < para->getMaxLevel(); level++) - { + if (Type == "_OffsetCF") + { + for (int level = 0; level < para->getMaxLevel(); level++) + { out.writeInteger(para->getParH(level)->coarseToFine.numberOfCells); - out.writeLine(); + out.writeLine(); for (unsigned int u = 0; u < para->getParH(level)->coarseToFine.numberOfCells; u++) - { - out.writeDouble(para->getParH(level)->neighborCoarseToFine.x[u]); - out.writeDouble(para->getParH(level)->neighborCoarseToFine.y[u]); - out.writeDouble(para->getParH(level)->neighborCoarseToFine.z[u]); - } - out.writeLine(); - } //end levelloop - } - else if (Type == "_OffsetFC") - { - for (int level = 0; level < para->getMaxLevel(); level++) - { + { + out.writeDouble(para->getParH(level)->neighborCoarseToFine.x[u]); + out.writeDouble(para->getParH(level)->neighborCoarseToFine.y[u]); + out.writeDouble(para->getParH(level)->neighborCoarseToFine.z[u]); + } + out.writeLine(); + } //end levelloop + } + else if (Type == "_OffsetFC") + { + for (int level = 0; level < para->getMaxLevel(); level++) + { out.writeInteger(para->getParH(level)->fineToCoarse.numberOfCells); - out.writeLine(); + out.writeLine(); for (unsigned int u = 0; u < para->getParH(level)->fineToCoarse.numberOfCells; u++) - { - out.writeDouble(para->getParH(level)->neighborFineToCoarse.x[u]); - out.writeDouble(para->getParH(level)->neighborFineToCoarse.y[u]); - out.writeDouble(para->getParH(level)->neighborFineToCoarse.z[u]); - } - out.writeLine(); - } //end levelloop - } - } + { + out.writeDouble(para->getParH(level)->neighborFineToCoarse.x[u]); + out.writeDouble(para->getParH(level)->neighborFineToCoarse.y[u]); + out.writeDouble(para->getParH(level)->neighborFineToCoarse.z[u]); + } + out.writeLine(); + } //end levelloop + } + } protected: private: }; diff --git a/src/gpu/core/Output/PosVecIntWriter.hpp b/src/gpu/core/Output/PosVecIntWriter.hpp index d7eab31d639d23d2356263aa8b152d69b3c042b8..c927cc6953c1ab80c8ea3bd71411aa58159db6ea 100644 --- a/src/gpu/core/Output/PosVecIntWriter.hpp +++ b/src/gpu/core/Output/PosVecIntWriter.hpp @@ -24,69 +24,69 @@ class PositionVectorIntegerWriter { public: - PositionVectorIntegerWriter(){} - ~PositionVectorIntegerWriter(){} + PositionVectorIntegerWriter(){} + ~PositionVectorIntegerWriter(){} - static void writePositionInterface(Parameter* para, std::string Type) - { - UbFileOutputASCII out(para->getFName()+Type+".dat"); + static void writePositionInterface(Parameter* para, std::string Type) + { + UbFileOutputASCII out(para->getFName()+Type+".dat"); - out.writeInteger(para->getMaxLevel()); - out.writeLine(); + out.writeInteger(para->getMaxLevel()); + out.writeLine(); - if (Type == "_InterfaceCFC") - { - for (int level = 0; level < para->getMaxLevel(); level++) - { + if (Type == "_InterfaceCFC") + { + for (int level = 0; level < para->getMaxLevel(); level++) + { out.writeInteger(para->getParH(level)->coarseToFine.numberOfCells); - out.writeLine(); + out.writeLine(); for (unsigned int u = 0; u < para->getParH(level)->coarseToFine.numberOfCells; u++) - { - out.writeInteger(para->getParH(level)->coarseToFine.coarseCellIndices[u]); - } - out.writeLine(); - } //end levelloop - } - else if (Type == "_InterfaceCFF") - { - for (int level = 0; level < para->getMaxLevel(); level++) - { + { + out.writeInteger(para->getParH(level)->coarseToFine.coarseCellIndices[u]); + } + out.writeLine(); + } //end levelloop + } + else if (Type == "_InterfaceCFF") + { + for (int level = 0; level < para->getMaxLevel(); level++) + { out.writeInteger(para->getParH(level)->coarseToFine.numberOfCells); - out.writeLine(); + out.writeLine(); for (unsigned int u = 0; u < para->getParH(level)->coarseToFine.numberOfCells; u++) - { - out.writeInteger(para->getParH(level)->coarseToFine.fineCellIndices[u]); - } - out.writeLine(); - } //end levelloop - } - else if (Type == "_InterfaceFCC") - { - for (int level = 0; level < para->getMaxLevel(); level++) - { + { + out.writeInteger(para->getParH(level)->coarseToFine.fineCellIndices[u]); + } + out.writeLine(); + } //end levelloop + } + else if (Type == "_InterfaceFCC") + { + for (int level = 0; level < para->getMaxLevel(); level++) + { out.writeInteger(para->getParH(level)->fineToCoarse.numberOfCells); - out.writeLine(); + out.writeLine(); for (unsigned int u = 0; u < para->getParH(level)->fineToCoarse.numberOfCells; u++) - { - out.writeInteger(para->getParH(level)->fineToCoarse.coarseCellIndices[u]); - } - out.writeLine(); - } //end levelloop - } - else if (Type == "_InterfaceFCF") - { - for (int level = 0; level < para->getMaxLevel(); level++) - { + { + out.writeInteger(para->getParH(level)->fineToCoarse.coarseCellIndices[u]); + } + out.writeLine(); + } //end levelloop + } + else if (Type == "_InterfaceFCF") + { + for (int level = 0; level < para->getMaxLevel(); level++) + { out.writeInteger(para->getParH(level)->fineToCoarse.numberOfCells); - out.writeLine(); + out.writeLine(); for (unsigned int u = 0; u < para->getParH(level)->fineToCoarse.numberOfCells; u++) - { - out.writeInteger(para->getParH(level)->fineToCoarse.fineCellIndices[u]); - } - out.writeLine(); - } //end levelloop - } - } + { + out.writeInteger(para->getParH(level)->fineToCoarse.fineCellIndices[u]); + } + out.writeLine(); + } //end levelloop + } + } protected: private: }; diff --git a/src/gpu/core/Output/PosWriter.hpp b/src/gpu/core/Output/PosWriter.hpp index ce611d25d1aa3f9e98840a0f04d9b2045d0a224f..fed46cfe588dbf9f8e15236cc48034a3bbed1bc8 100644 --- a/src/gpu/core/Output/PosWriter.hpp +++ b/src/gpu/core/Output/PosWriter.hpp @@ -17,69 +17,69 @@ class PositionWriter { public: - PositionWriter(){} - ~PositionWriter(){} + PositionWriter(){} + ~PositionWriter(){} - static void writePosition(Parameter* para, std::string Type) - { - UbFileOutputASCII out(para->getFName()+Type+".dat"); + static void writePosition(Parameter* para, std::string Type) + { + UbFileOutputASCII out(para->getFName()+Type+".dat"); - out.writeInteger(para->getMaxLevel()); - out.writeLine(); + out.writeInteger(para->getMaxLevel()); + out.writeLine(); - if (Type == "_geoSP") - { - for (int level = 0; level <= para->getMaxLevel(); level++) - { - out.writeInteger(para->getParH(level)->numberOfNodes); - out.writeLine(); - for(size_t index = 0; index < para->getParH(level)->numberOfNodes; index++) - { - out.writeInteger(para->getParH(level)->typeOfGridNode[index]); - } - out.writeLine(); - } //end levelloop - } - else if (Type == "_neighborX_SP") - { - for (int level = 0; level <= para->getMaxLevel(); level++) - { - out.writeInteger(para->getParH(level)->numberOfNodes); - out.writeLine(); + if (Type == "_geoSP") + { + for (int level = 0; level <= para->getMaxLevel(); level++) + { + out.writeInteger(para->getParH(level)->numberOfNodes); + out.writeLine(); + for(size_t index = 0; index < para->getParH(level)->numberOfNodes; index++) + { + out.writeInteger(para->getParH(level)->typeOfGridNode[index]); + } + out.writeLine(); + } //end levelloop + } + else if (Type == "_neighborX_SP") + { + for (int level = 0; level <= para->getMaxLevel(); level++) + { + out.writeInteger(para->getParH(level)->numberOfNodes); + out.writeLine(); for (size_t index = 0; index < para->getParH(level)->numberOfNodes; index++) - { - out.writeInteger(para->getParH(level)->neighborX[index]); - } - out.writeLine(); - } //end levelloop - } - else if (Type == "_neighborY_SP") - { - for (int level = 0; level <= para->getMaxLevel(); level++) - { - out.writeInteger(para->getParH(level)->numberOfNodes); - out.writeLine(); + { + out.writeInteger(para->getParH(level)->neighborX[index]); + } + out.writeLine(); + } //end levelloop + } + else if (Type == "_neighborY_SP") + { + for (int level = 0; level <= para->getMaxLevel(); level++) + { + out.writeInteger(para->getParH(level)->numberOfNodes); + out.writeLine(); for (size_t index = 0; index < para->getParH(level)->numberOfNodes; index++) - { - out.writeInteger(para->getParH(level)->neighborY[index]); - } - out.writeLine(); - } //end levelloop - } - else if (Type == "_neighborZ_SP") - { - for (int level = 0; level <= para->getMaxLevel(); level++) - { - out.writeInteger(para->getParH(level)->numberOfNodes); - out.writeLine(); + { + out.writeInteger(para->getParH(level)->neighborY[index]); + } + out.writeLine(); + } //end levelloop + } + else if (Type == "_neighborZ_SP") + { + for (int level = 0; level <= para->getMaxLevel(); level++) + { + out.writeInteger(para->getParH(level)->numberOfNodes); + out.writeLine(); for (size_t index = 0; index < para->getParH(level)->numberOfNodes; index++) - { - out.writeInteger(para->getParH(level)->neighborZ[index]); - } - out.writeLine(); - } //end levelloop - } - } + { + out.writeInteger(para->getParH(level)->neighborZ[index]); + } + out.writeLine(); + } //end levelloop + } + } protected: private: }; diff --git a/src/gpu/core/Output/QDebugWriter.hpp b/src/gpu/core/Output/QDebugWriter.hpp index d58526cab3b114e77bdb146053584795b05bac8a..b217aaf991d3b2867a82c7283a7b9f3fd6a0dce9 100644 --- a/src/gpu/core/Output/QDebugWriter.hpp +++ b/src/gpu/core/Output/QDebugWriter.hpp @@ -18,50 +18,50 @@ namespace QDebugWriter void writeQValues(QforBoundaryConditions &Q, int* k, int kq, const std::string &name) { - std::vector< std::vector<real> > qs; - for (int j = 0; j < kq; j++) - { - uint32_t qKey = 0; - std::vector<real> qNode; + std::vector< std::vector<real> > qs; + for (int j = 0; j < kq; j++) + { + uint32_t qKey = 0; + std::vector<real> qNode; - for (int i = 26; i >= 0; i--) - { - real q = Q.q27[i][j]; - if (q > 0) { - qKey += (uint32_t)pow(2, 26 - i); - qNode.push_back(q); - } - } - if (qKey > 0) { - float transportKey = *((float*)&qKey); - qNode.push_back((real)transportKey); - qNode.push_back((real)k[j]); - qs.push_back(qNode); - } - qNode.clear(); + for (int i = 26; i >= 0; i--) + { + real q = Q.q27[i][j]; + if (q > 0) { + qKey += (uint32_t)pow(2, 26 - i); + qNode.push_back(q); + } + } + if (qKey > 0) { + float transportKey = *((float*)&qKey); + qNode.push_back((real)transportKey); + qNode.push_back((real)k[j]); + qs.push_back(qNode); + } + qNode.clear(); - } + } - SPtr<std::ofstream> outQ(new std::ofstream); - outQ->open(name.c_str(), std::ios::out | std::ios::binary); + SPtr<std::ofstream> outQ(new std::ofstream); + outQ->open(name.c_str(), std::ios::out | std::ios::binary); - for (std::size_t index = 0; index < qs.size(); index++) { - std::vector<real> bcs = qs[index]; - uint32_t key = *((uint32_t*)&bcs[bcs.size() - 2]); - int qIndex = (int)bcs[bcs.size() - 1]; + for (std::size_t index = 0; index < qs.size(); index++) { + std::vector<real> bcs = qs[index]; + uint32_t key = *((uint32_t*)&bcs[bcs.size() - 2]); + int qIndex = (int)bcs[bcs.size() - 1]; - *outQ << qIndex << " " << key; + *outQ << qIndex << " " << key; - for (std::size_t i = 0; i < bcs.size() - 2; i++) { - *outQ << " " << std::fixed << std::setprecision(16) << bcs[i]; - } + for (std::size_t i = 0; i < bcs.size() - 2; i++) { + *outQ << " " << std::fixed << std::setprecision(16) << bcs[i]; + } - *outQ << "\n"; - } + *outQ << "\n"; + } - outQ->close(); + outQ->close(); } } diff --git a/src/gpu/core/Output/UnstructuredGridWriter.hpp b/src/gpu/core/Output/UnstructuredGridWriter.hpp index b86ed947879d94740f30668a9d53c4181d956ebf..df6bf0cc4fc2fc61b1d179528860c3bcc89e4a5f 100644 --- a/src/gpu/core/Output/UnstructuredGridWriter.hpp +++ b/src/gpu/core/Output/UnstructuredGridWriter.hpp @@ -16,183 +16,183 @@ namespace UnstructuredGridWriter { - void writeUnstructuredGrid(Parameter* para, int level, std::string& fname, std::string& filenameVec2) - { - vector< UbTupleFloat3 > nodes; - vector< UbTupleUInt8 > cells; - vector< string > nodedatanames; - nodedatanames.push_back("rho"); - nodedatanames.push_back("vx1"); - nodedatanames.push_back("vx2"); - nodedatanames.push_back("vx3"); - nodedatanames.push_back("geo"); - //int number1,number2,number3,number4,number5,number6,number7,number8; - vector< vector< double > > nodedata(nodedatanames.size()); - - bool neighborsFluid; - - unsigned long long allnodes = para->getParH(level)->numberOfNodes * 8; - - nodes.resize(allnodes); - nodedata[0].resize(allnodes); - nodedata[1].resize(allnodes); - nodedata[2].resize(allnodes); - nodedata[3].resize(allnodes); - nodedata[4].resize(allnodes); - - unsigned int nodeCount = 0; - double nodeDeltaLevel = para->getParH(level)->dx; - - for (size_t pos = 0; pos < para->getParH(level)->numberOfNodes; pos++) - { - if (para->getParH(level)->typeOfGridNode[pos] == GEO_FLUID /*!= GEO_VOID*/) - { - ////////////////////////////////////////////////////////////////////////// - double ix1 = para->getParH(level)->coordinateX[pos];//-STARTOFFX; - double ix2 = para->getParH(level)->coordinateY[pos];//-STARTOFFY; - double ix3 = para->getParH(level)->coordinateZ[pos];//-STARTOFFZ; - double ix1P = para->getParH(level)->coordinateX[para->getParH(level)->neighborX[pos]];//-STARTOFFX; - double ix2P = para->getParH(level)->coordinateY[para->getParH(level)->neighborY[pos]];//-STARTOFFY; - double ix3P = para->getParH(level)->coordinateZ[para->getParH(level)->neighborZ[pos]];//-STARTOFFZ; - ////////////////////////////////////////////////////////////////////////// - double x1 = ix1; // para->getParH(level)->distX + ix1 *nodeDeltaLevel;// + tmpDist; - double x2 = ix2; // para->getParH(level)->distY + ix2 *nodeDeltaLevel;// + tmpDist; - double x3 = ix3; // para->getParH(level)->distZ + ix3 *nodeDeltaLevel;// + tmpDist; - double x1P = ix1P; // para->getParH(level)->distX + ix1P*nodeDeltaLevel;// + tmpDist; - double x2P = ix2P; // para->getParH(level)->distY + ix2P*nodeDeltaLevel;// + tmpDist; - double x3P = ix3P; // para->getParH(level)->distZ + ix3P*nodeDeltaLevel;// + tmpDist; - ////////////////////////////////////////////////////////////////////////// - neighborsFluid = true; - ////////////////////////////////////////////////////////////////////////// - //1 - nodes[nodeCount]=( makeUbTuple( (float)(x1 ),(float)(x2 ),(float)(x3 ) ) ); - nodedata[0][nodeCount] = para->getParH(level)->rho[pos] / 3.0f * para->getDensityRatio() * para->getVelocityRatio() * para->getVelocityRatio(); - nodedata[1][nodeCount] = para->getParH(level)->velocityX[pos] * para->getVelocityRatio(); - nodedata[2][nodeCount] = para->getParH(level)->velocityY[pos] * para->getVelocityRatio(); - nodedata[3][nodeCount] = para->getParH(level)->velocityZ[pos] * para->getVelocityRatio(); - nodedata[4][nodeCount] = para->getParH(level)->typeOfGridNode[pos]; - //if(para->getParH(level)->typeOfGridNode[pos]==GEO_VOID) neighborsFluid = false; - nodeCount++; - ////////////////////////////////////////////////////////////////////////// - //2 - nodes[nodeCount]=( makeUbTuple( (float)(x1P),(float)(x2 ),(float)(x3 ) ) ); - nodedata[0][nodeCount] = para->getParH(level)->rho[para->getParH(level)->neighborX[pos]] / 3.0f * para->getDensityRatio() * para->getVelocityRatio() * para->getVelocityRatio(); - nodedata[1][nodeCount] = para->getParH(level)->velocityX[para->getParH(level)->neighborX[pos]] * para->getVelocityRatio(); - nodedata[2][nodeCount] = para->getParH(level)->velocityY[para->getParH(level)->neighborX[pos]] * para->getVelocityRatio(); - nodedata[3][nodeCount] = para->getParH(level)->velocityZ[para->getParH(level)->neighborX[pos]] * para->getVelocityRatio(); - nodedata[4][nodeCount] = para->getParH(level)->typeOfGridNode[para->getParH(level)->neighborX[pos]]; - //if(para->getParH(level)->typeOfGridNode[para->getParH(level)->neighborX[pos]]==GEO_VOID) neighborsFluid = false; - nodeCount++; - ////////////////////////////////////////////////////////////////////////// - //3 - nodes[nodeCount]=( makeUbTuple( (float)(x1P),(float)(x2P),(float)(x3 ) ) ); - nodedata[0][nodeCount] = para->getParH(level)->rho[para->getParH(level)->neighborY[para->getParH(level)->neighborX[pos]]] / 3.0f * para->getDensityRatio() * para->getVelocityRatio() * para->getVelocityRatio(); - nodedata[1][nodeCount] = para->getParH(level)->velocityX[para->getParH(level)->neighborY[para->getParH(level)->neighborX[pos]]] * para->getVelocityRatio(); - nodedata[2][nodeCount] = para->getParH(level)->velocityY[para->getParH(level)->neighborY[para->getParH(level)->neighborX[pos]]] * para->getVelocityRatio(); - nodedata[3][nodeCount] = para->getParH(level)->velocityZ[para->getParH(level)->neighborY[para->getParH(level)->neighborX[pos]]] * para->getVelocityRatio(); - nodedata[4][nodeCount] = para->getParH(level)->typeOfGridNode[para->getParH(level)->neighborY[para->getParH(level)->neighborX[pos]]]; - //if(para->getParH(level)->typeOfGridNode[para->getParH(level)->neighborY[para->getParH(level)->neighborX[pos]]]==GEO_VOID) neighborsFluid = false; - nodeCount++; - ////////////////////////////////////////////////////////////////////////// - //4 - nodes[nodeCount]=( makeUbTuple( (float)(x1 ),(float)(x2P),(float)(x3 ) ) ); - nodedata[0][nodeCount] = para->getParH(level)->rho[para->getParH(level)->neighborY[pos]] / 3.0f * para->getDensityRatio() * para->getVelocityRatio() * para->getVelocityRatio(); - nodedata[1][nodeCount] = para->getParH(level)->velocityX[para->getParH(level)->neighborY[pos]] * para->getVelocityRatio(); - nodedata[2][nodeCount] = para->getParH(level)->velocityY[para->getParH(level)->neighborY[pos]] * para->getVelocityRatio(); - nodedata[3][nodeCount] = para->getParH(level)->velocityZ[para->getParH(level)->neighborY[pos]] * para->getVelocityRatio(); - nodedata[4][nodeCount] = para->getParH(level)->typeOfGridNode[para->getParH(level)->neighborY[pos]]; - //if(para->getParH(level)->typeOfGridNode[para->getParH(level)->neighborY[pos]]==GEO_VOID) neighborsFluid = false; - //if((para->getParH(level)->neighborY[pos]<=pos) && ((para->getParH(level)->coordinateY[pos]) > (para->getParH(level)->gridNY-2))) neighborsFluid = false; - nodeCount++; - ////////////////////////////////////////////////////////////////////////// - //5 - nodes[nodeCount]=( makeUbTuple( (float)(x1 ),(float)(x2 ),(float)(x3P) ) ); - nodedata[0][nodeCount] = para->getParH(level)->rho[para->getParH(level)->neighborZ[pos]] / 3.0f * para->getDensityRatio() * para->getVelocityRatio() * para->getVelocityRatio(); - nodedata[1][nodeCount] = para->getParH(level)->velocityX[para->getParH(level)->neighborZ[pos]] * para->getVelocityRatio(); - nodedata[2][nodeCount] = para->getParH(level)->velocityY[para->getParH(level)->neighborZ[pos]] * para->getVelocityRatio(); - nodedata[3][nodeCount] = para->getParH(level)->velocityZ[para->getParH(level)->neighborZ[pos]] * para->getVelocityRatio(); - nodedata[4][nodeCount] = para->getParH(level)->typeOfGridNode[para->getParH(level)->neighborZ[pos]]; - //if(para->getParH(level)->typeOfGridNode[para->getParH(level)->neighborZ[pos]]==GEO_VOID) neighborsFluid = false; - nodeCount++; - ////////////////////////////////////////////////////////////////////////// - //6 - nodes[nodeCount]=( makeUbTuple( (float)(x1P),(float)(x2 ),(float)(x3P) ) ); - nodedata[0][nodeCount] = para->getParH(level)->rho[para->getParH(level)->neighborZ[para->getParH(level)->neighborX[pos]]] / 3.0f * para->getDensityRatio() * para->getVelocityRatio() * para->getVelocityRatio(); - nodedata[1][nodeCount] = para->getParH(level)->velocityX[para->getParH(level)->neighborZ[para->getParH(level)->neighborX[pos]]] * para->getVelocityRatio(); - nodedata[2][nodeCount] = para->getParH(level)->velocityY[para->getParH(level)->neighborZ[para->getParH(level)->neighborX[pos]]] * para->getVelocityRatio(); - nodedata[3][nodeCount] = para->getParH(level)->velocityZ[para->getParH(level)->neighborZ[para->getParH(level)->neighborX[pos]]] * para->getVelocityRatio(); - nodedata[4][nodeCount] = para->getParH(level)->typeOfGridNode[para->getParH(level)->neighborZ[para->getParH(level)->neighborX[pos]]]; - //if(para->getParH(level)->typeOfGridNode[para->getParH(level)->neighborZ[para->getParH(level)->neighborX[pos]]]==GEO_VOID) neighborsFluid = false; - nodeCount++; - ////////////////////////////////////////////////////////////////////////// - //7 - nodes[nodeCount]=( makeUbTuple( (float)(x1P),(float)(x2P),(float)(x3P) ) ); - nodedata[0][nodeCount] = para->getParH(level)->rho[para->getParH(level)->neighborZ[para->getParH(level)->neighborY[para->getParH(level)->neighborX[pos]]]] / 3.0f * para->getDensityRatio() * para->getVelocityRatio() * para->getVelocityRatio(); - nodedata[1][nodeCount] = para->getParH(level)->velocityX[para->getParH(level)->neighborZ[para->getParH(level)->neighborY[para->getParH(level)->neighborX[pos]]]] * para->getVelocityRatio(); - nodedata[2][nodeCount] = para->getParH(level)->velocityY[para->getParH(level)->neighborZ[para->getParH(level)->neighborY[para->getParH(level)->neighborX[pos]]]] * para->getVelocityRatio(); - nodedata[3][nodeCount] = para->getParH(level)->velocityZ[para->getParH(level)->neighborZ[para->getParH(level)->neighborY[para->getParH(level)->neighborX[pos]]]] * para->getVelocityRatio(); - nodedata[4][nodeCount] = para->getParH(level)->typeOfGridNode[para->getParH(level)->neighborZ[para->getParH(level)->neighborY[para->getParH(level)->neighborX[pos]]]]; - //if(para->getParH(level)->typeOfGridNode[para->getParH(level)->neighborZ[para->getParH(level)->neighborY[para->getParH(level)->neighborX[pos]]]]==GEO_VOID) neighborsFluid = false; - nodeCount++; - ////////////////////////////////////////////////////////////////////////// - //8 - nodes[nodeCount]=( makeUbTuple( (float)(x1 ),(float)(x2P),(float)(x3P) ) ); - nodedata[0][nodeCount] = para->getParH(level)->rho[para->getParH(level)->neighborZ[para->getParH(level)->neighborY[pos]]] / 3.0f * para->getDensityRatio() * para->getVelocityRatio() * para->getVelocityRatio(); - nodedata[1][nodeCount] = para->getParH(level)->velocityX[para->getParH(level)->neighborZ[para->getParH(level)->neighborY[pos]]] * para->getVelocityRatio(); - nodedata[2][nodeCount] = para->getParH(level)->velocityY[para->getParH(level)->neighborZ[para->getParH(level)->neighborY[pos]]] * para->getVelocityRatio(); - nodedata[3][nodeCount] = para->getParH(level)->velocityZ[para->getParH(level)->neighborZ[para->getParH(level)->neighborY[pos]]] * para->getVelocityRatio(); - nodedata[4][nodeCount] = para->getParH(level)->typeOfGridNode[para->getParH(level)->neighborZ[para->getParH(level)->neighborY[pos]]]; - //if(para->getParH(level)->typeOfGridNode[para->getParH(level)->neighborZ[para->getParH(level)->neighborY[pos]]]==GEO_VOID) neighborsFluid = false; - nodeCount++; - - if(neighborsFluid) - { - cells.push_back( makeUbTuple(nodeCount-8,nodeCount-7,nodeCount-6,nodeCount-5,nodeCount-4,nodeCount-3,nodeCount-2,nodeCount-1) ); - } - } - } - WbWriterVtkXmlBinary::getInstance()->writeOctsWithNodeData(fname,nodes,cells,nodedatanames,nodedata); - //WbWriterVtkXmlBinary::getInstance()->writeNodes(filenameVec2,nodes); - } - ////////////////////////////////////////////////////////////////////////// - - - - bool isPeriodicCell(Parameter* para, int level, unsigned int number2, unsigned int number1, unsigned int number3, unsigned int number5) - { - return (para->getParH(level)->coordinateX[number2] < para->getParH(level)->coordinateX[number1]) || - (para->getParH(level)->coordinateY[number3] < para->getParH(level)->coordinateY[number1]) || - (para->getParH(level)->coordinateZ[number5] < para->getParH(level)->coordinateZ[number1]); - } - - - ////////////////////////////////////////////////////////////////////////// - void writeUnstrucuredGridLT(Parameter* para, int level, vector<string >& fname) - { - vector< UbTupleFloat3 > nodes; - vector< UbTupleUInt8 > cells; - //vector< UbTupleUInt8 > cells2; - vector< string > nodedatanames; - nodedatanames.push_back("press"); - nodedatanames.push_back("rho"); - nodedatanames.push_back("vx1"); - nodedatanames.push_back("vx2"); - nodedatanames.push_back("vx3"); - nodedatanames.push_back("geo"); - unsigned int number1,number2,number3,number4,number5,number6,number7,number8; - unsigned int dn1,dn2,dn3,dn4,dn5,dn6,dn7,dn8; - bool neighborsFluid; - double vxmax = 0; - unsigned int startpos = 0; - unsigned int endpos = 0; - unsigned int sizeOfNodes = 0; - vector< vector< double > > nodedata(nodedatanames.size()); - - - //printf("\n test for if... \n"); - for (unsigned int part=0; part < fname.size(); part++) - { - vxmax = 0; + void writeUnstructuredGrid(Parameter* para, int level, std::string& fname, std::string& filenameVec2) + { + vector< UbTupleFloat3 > nodes; + vector< UbTupleUInt8 > cells; + vector< string > nodedatanames; + nodedatanames.push_back("rho"); + nodedatanames.push_back("vx1"); + nodedatanames.push_back("vx2"); + nodedatanames.push_back("vx3"); + nodedatanames.push_back("geo"); + //int number1,number2,number3,number4,number5,number6,number7,number8; + vector< vector< double > > nodedata(nodedatanames.size()); + + bool neighborsFluid; + + unsigned long long allnodes = para->getParH(level)->numberOfNodes * 8; + + nodes.resize(allnodes); + nodedata[0].resize(allnodes); + nodedata[1].resize(allnodes); + nodedata[2].resize(allnodes); + nodedata[3].resize(allnodes); + nodedata[4].resize(allnodes); + + unsigned int nodeCount = 0; + double nodeDeltaLevel = para->getParH(level)->dx; + + for (size_t pos = 0; pos < para->getParH(level)->numberOfNodes; pos++) + { + if (para->getParH(level)->typeOfGridNode[pos] == GEO_FLUID /*!= GEO_VOID*/) + { + ////////////////////////////////////////////////////////////////////////// + double ix1 = para->getParH(level)->coordinateX[pos];//-STARTOFFX; + double ix2 = para->getParH(level)->coordinateY[pos];//-STARTOFFY; + double ix3 = para->getParH(level)->coordinateZ[pos];//-STARTOFFZ; + double ix1P = para->getParH(level)->coordinateX[para->getParH(level)->neighborX[pos]];//-STARTOFFX; + double ix2P = para->getParH(level)->coordinateY[para->getParH(level)->neighborY[pos]];//-STARTOFFY; + double ix3P = para->getParH(level)->coordinateZ[para->getParH(level)->neighborZ[pos]];//-STARTOFFZ; + ////////////////////////////////////////////////////////////////////////// + double x1 = ix1; // para->getParH(level)->distX + ix1 *nodeDeltaLevel;// + tmpDist; + double x2 = ix2; // para->getParH(level)->distY + ix2 *nodeDeltaLevel;// + tmpDist; + double x3 = ix3; // para->getParH(level)->distZ + ix3 *nodeDeltaLevel;// + tmpDist; + double x1P = ix1P; // para->getParH(level)->distX + ix1P*nodeDeltaLevel;// + tmpDist; + double x2P = ix2P; // para->getParH(level)->distY + ix2P*nodeDeltaLevel;// + tmpDist; + double x3P = ix3P; // para->getParH(level)->distZ + ix3P*nodeDeltaLevel;// + tmpDist; + ////////////////////////////////////////////////////////////////////////// + neighborsFluid = true; + ////////////////////////////////////////////////////////////////////////// + //1 + nodes[nodeCount]=( makeUbTuple( (float)(x1 ),(float)(x2 ),(float)(x3 ) ) ); + nodedata[0][nodeCount] = para->getParH(level)->rho[pos] / 3.0f * para->getDensityRatio() * para->getVelocityRatio() * para->getVelocityRatio(); + nodedata[1][nodeCount] = para->getParH(level)->velocityX[pos] * para->getVelocityRatio(); + nodedata[2][nodeCount] = para->getParH(level)->velocityY[pos] * para->getVelocityRatio(); + nodedata[3][nodeCount] = para->getParH(level)->velocityZ[pos] * para->getVelocityRatio(); + nodedata[4][nodeCount] = para->getParH(level)->typeOfGridNode[pos]; + //if(para->getParH(level)->typeOfGridNode[pos]==GEO_VOID) neighborsFluid = false; + nodeCount++; + ////////////////////////////////////////////////////////////////////////// + //2 + nodes[nodeCount]=( makeUbTuple( (float)(x1P),(float)(x2 ),(float)(x3 ) ) ); + nodedata[0][nodeCount] = para->getParH(level)->rho[para->getParH(level)->neighborX[pos]] / 3.0f * para->getDensityRatio() * para->getVelocityRatio() * para->getVelocityRatio(); + nodedata[1][nodeCount] = para->getParH(level)->velocityX[para->getParH(level)->neighborX[pos]] * para->getVelocityRatio(); + nodedata[2][nodeCount] = para->getParH(level)->velocityY[para->getParH(level)->neighborX[pos]] * para->getVelocityRatio(); + nodedata[3][nodeCount] = para->getParH(level)->velocityZ[para->getParH(level)->neighborX[pos]] * para->getVelocityRatio(); + nodedata[4][nodeCount] = para->getParH(level)->typeOfGridNode[para->getParH(level)->neighborX[pos]]; + //if(para->getParH(level)->typeOfGridNode[para->getParH(level)->neighborX[pos]]==GEO_VOID) neighborsFluid = false; + nodeCount++; + ////////////////////////////////////////////////////////////////////////// + //3 + nodes[nodeCount]=( makeUbTuple( (float)(x1P),(float)(x2P),(float)(x3 ) ) ); + nodedata[0][nodeCount] = para->getParH(level)->rho[para->getParH(level)->neighborY[para->getParH(level)->neighborX[pos]]] / 3.0f * para->getDensityRatio() * para->getVelocityRatio() * para->getVelocityRatio(); + nodedata[1][nodeCount] = para->getParH(level)->velocityX[para->getParH(level)->neighborY[para->getParH(level)->neighborX[pos]]] * para->getVelocityRatio(); + nodedata[2][nodeCount] = para->getParH(level)->velocityY[para->getParH(level)->neighborY[para->getParH(level)->neighborX[pos]]] * para->getVelocityRatio(); + nodedata[3][nodeCount] = para->getParH(level)->velocityZ[para->getParH(level)->neighborY[para->getParH(level)->neighborX[pos]]] * para->getVelocityRatio(); + nodedata[4][nodeCount] = para->getParH(level)->typeOfGridNode[para->getParH(level)->neighborY[para->getParH(level)->neighborX[pos]]]; + //if(para->getParH(level)->typeOfGridNode[para->getParH(level)->neighborY[para->getParH(level)->neighborX[pos]]]==GEO_VOID) neighborsFluid = false; + nodeCount++; + ////////////////////////////////////////////////////////////////////////// + //4 + nodes[nodeCount]=( makeUbTuple( (float)(x1 ),(float)(x2P),(float)(x3 ) ) ); + nodedata[0][nodeCount] = para->getParH(level)->rho[para->getParH(level)->neighborY[pos]] / 3.0f * para->getDensityRatio() * para->getVelocityRatio() * para->getVelocityRatio(); + nodedata[1][nodeCount] = para->getParH(level)->velocityX[para->getParH(level)->neighborY[pos]] * para->getVelocityRatio(); + nodedata[2][nodeCount] = para->getParH(level)->velocityY[para->getParH(level)->neighborY[pos]] * para->getVelocityRatio(); + nodedata[3][nodeCount] = para->getParH(level)->velocityZ[para->getParH(level)->neighborY[pos]] * para->getVelocityRatio(); + nodedata[4][nodeCount] = para->getParH(level)->typeOfGridNode[para->getParH(level)->neighborY[pos]]; + //if(para->getParH(level)->typeOfGridNode[para->getParH(level)->neighborY[pos]]==GEO_VOID) neighborsFluid = false; + //if((para->getParH(level)->neighborY[pos]<=pos) && ((para->getParH(level)->coordinateY[pos]) > (para->getParH(level)->gridNY-2))) neighborsFluid = false; + nodeCount++; + ////////////////////////////////////////////////////////////////////////// + //5 + nodes[nodeCount]=( makeUbTuple( (float)(x1 ),(float)(x2 ),(float)(x3P) ) ); + nodedata[0][nodeCount] = para->getParH(level)->rho[para->getParH(level)->neighborZ[pos]] / 3.0f * para->getDensityRatio() * para->getVelocityRatio() * para->getVelocityRatio(); + nodedata[1][nodeCount] = para->getParH(level)->velocityX[para->getParH(level)->neighborZ[pos]] * para->getVelocityRatio(); + nodedata[2][nodeCount] = para->getParH(level)->velocityY[para->getParH(level)->neighborZ[pos]] * para->getVelocityRatio(); + nodedata[3][nodeCount] = para->getParH(level)->velocityZ[para->getParH(level)->neighborZ[pos]] * para->getVelocityRatio(); + nodedata[4][nodeCount] = para->getParH(level)->typeOfGridNode[para->getParH(level)->neighborZ[pos]]; + //if(para->getParH(level)->typeOfGridNode[para->getParH(level)->neighborZ[pos]]==GEO_VOID) neighborsFluid = false; + nodeCount++; + ////////////////////////////////////////////////////////////////////////// + //6 + nodes[nodeCount]=( makeUbTuple( (float)(x1P),(float)(x2 ),(float)(x3P) ) ); + nodedata[0][nodeCount] = para->getParH(level)->rho[para->getParH(level)->neighborZ[para->getParH(level)->neighborX[pos]]] / 3.0f * para->getDensityRatio() * para->getVelocityRatio() * para->getVelocityRatio(); + nodedata[1][nodeCount] = para->getParH(level)->velocityX[para->getParH(level)->neighborZ[para->getParH(level)->neighborX[pos]]] * para->getVelocityRatio(); + nodedata[2][nodeCount] = para->getParH(level)->velocityY[para->getParH(level)->neighborZ[para->getParH(level)->neighborX[pos]]] * para->getVelocityRatio(); + nodedata[3][nodeCount] = para->getParH(level)->velocityZ[para->getParH(level)->neighborZ[para->getParH(level)->neighborX[pos]]] * para->getVelocityRatio(); + nodedata[4][nodeCount] = para->getParH(level)->typeOfGridNode[para->getParH(level)->neighborZ[para->getParH(level)->neighborX[pos]]]; + //if(para->getParH(level)->typeOfGridNode[para->getParH(level)->neighborZ[para->getParH(level)->neighborX[pos]]]==GEO_VOID) neighborsFluid = false; + nodeCount++; + ////////////////////////////////////////////////////////////////////////// + //7 + nodes[nodeCount]=( makeUbTuple( (float)(x1P),(float)(x2P),(float)(x3P) ) ); + nodedata[0][nodeCount] = para->getParH(level)->rho[para->getParH(level)->neighborZ[para->getParH(level)->neighborY[para->getParH(level)->neighborX[pos]]]] / 3.0f * para->getDensityRatio() * para->getVelocityRatio() * para->getVelocityRatio(); + nodedata[1][nodeCount] = para->getParH(level)->velocityX[para->getParH(level)->neighborZ[para->getParH(level)->neighborY[para->getParH(level)->neighborX[pos]]]] * para->getVelocityRatio(); + nodedata[2][nodeCount] = para->getParH(level)->velocityY[para->getParH(level)->neighborZ[para->getParH(level)->neighborY[para->getParH(level)->neighborX[pos]]]] * para->getVelocityRatio(); + nodedata[3][nodeCount] = para->getParH(level)->velocityZ[para->getParH(level)->neighborZ[para->getParH(level)->neighborY[para->getParH(level)->neighborX[pos]]]] * para->getVelocityRatio(); + nodedata[4][nodeCount] = para->getParH(level)->typeOfGridNode[para->getParH(level)->neighborZ[para->getParH(level)->neighborY[para->getParH(level)->neighborX[pos]]]]; + //if(para->getParH(level)->typeOfGridNode[para->getParH(level)->neighborZ[para->getParH(level)->neighborY[para->getParH(level)->neighborX[pos]]]]==GEO_VOID) neighborsFluid = false; + nodeCount++; + ////////////////////////////////////////////////////////////////////////// + //8 + nodes[nodeCount]=( makeUbTuple( (float)(x1 ),(float)(x2P),(float)(x3P) ) ); + nodedata[0][nodeCount] = para->getParH(level)->rho[para->getParH(level)->neighborZ[para->getParH(level)->neighborY[pos]]] / 3.0f * para->getDensityRatio() * para->getVelocityRatio() * para->getVelocityRatio(); + nodedata[1][nodeCount] = para->getParH(level)->velocityX[para->getParH(level)->neighborZ[para->getParH(level)->neighborY[pos]]] * para->getVelocityRatio(); + nodedata[2][nodeCount] = para->getParH(level)->velocityY[para->getParH(level)->neighborZ[para->getParH(level)->neighborY[pos]]] * para->getVelocityRatio(); + nodedata[3][nodeCount] = para->getParH(level)->velocityZ[para->getParH(level)->neighborZ[para->getParH(level)->neighborY[pos]]] * para->getVelocityRatio(); + nodedata[4][nodeCount] = para->getParH(level)->typeOfGridNode[para->getParH(level)->neighborZ[para->getParH(level)->neighborY[pos]]]; + //if(para->getParH(level)->typeOfGridNode[para->getParH(level)->neighborZ[para->getParH(level)->neighborY[pos]]]==GEO_VOID) neighborsFluid = false; + nodeCount++; + + if(neighborsFluid) + { + cells.push_back( makeUbTuple(nodeCount-8,nodeCount-7,nodeCount-6,nodeCount-5,nodeCount-4,nodeCount-3,nodeCount-2,nodeCount-1) ); + } + } + } + WbWriterVtkXmlBinary::getInstance()->writeOctsWithNodeData(fname,nodes,cells,nodedatanames,nodedata); + //WbWriterVtkXmlBinary::getInstance()->writeNodes(filenameVec2,nodes); + } + ////////////////////////////////////////////////////////////////////////// + + + + bool isPeriodicCell(Parameter* para, int level, unsigned int number2, unsigned int number1, unsigned int number3, unsigned int number5) + { + return (para->getParH(level)->coordinateX[number2] < para->getParH(level)->coordinateX[number1]) || + (para->getParH(level)->coordinateY[number3] < para->getParH(level)->coordinateY[number1]) || + (para->getParH(level)->coordinateZ[number5] < para->getParH(level)->coordinateZ[number1]); + } + + + ////////////////////////////////////////////////////////////////////////// + void writeUnstrucuredGridLT(Parameter* para, int level, vector<string >& fname) + { + vector< UbTupleFloat3 > nodes; + vector< UbTupleUInt8 > cells; + //vector< UbTupleUInt8 > cells2; + vector< string > nodedatanames; + nodedatanames.push_back("press"); + nodedatanames.push_back("rho"); + nodedatanames.push_back("vx1"); + nodedatanames.push_back("vx2"); + nodedatanames.push_back("vx3"); + nodedatanames.push_back("geo"); + unsigned int number1,number2,number3,number4,number5,number6,number7,number8; + unsigned int dn1,dn2,dn3,dn4,dn5,dn6,dn7,dn8; + bool neighborsFluid; + double vxmax = 0; + unsigned int startpos = 0; + unsigned int endpos = 0; + unsigned int sizeOfNodes = 0; + vector< vector< double > > nodedata(nodedatanames.size()); + + + //printf("\n test for if... \n"); + for (unsigned int part=0; part < fname.size(); part++) + { + vxmax = 0; // printf("\n test in if I... \n"); ////////////////////////////////////////////////////////////////////////// @@ -204,1111 +204,1111 @@ namespace UnstructuredGridWriter ////////////////////////////////////////////////////////////////////////// cells.clear(); nodes.resize(sizeOfNodes); - nodedata[0].resize(sizeOfNodes); - nodedata[1].resize(sizeOfNodes); - nodedata[2].resize(sizeOfNodes); - nodedata[3].resize(sizeOfNodes); - nodedata[4].resize(sizeOfNodes); - nodedata[5].resize(sizeOfNodes); - ////////////////////////////////////////////////////////////////////////// - //int counter = 0; - ////////////////////////////////////////////////////////////////////////// - //printf("\n test in if II... \n"); - - for (unsigned int pos=startpos;pos<endpos;pos++) - { - if (/*para->getParH(level)->typeOfGridNode[pos] >= GEO_FLUID*/true) - { - ////////////////////////////////////////////////////////////////////////// - double x1 = para->getParH(level)->coordinateX[pos]; - double x2 = para->getParH(level)->coordinateY[pos]; - double x3 = para->getParH(level)->coordinateZ[pos]; - ////////////////////////////////////////////////////////////////////////// - number1 = pos; - dn1 = pos - startpos; - neighborsFluid = true; - ////////////////////////////////////////////////////////////////////////// - //printf("\n test vor node data... \n"); - nodes[dn1]=( makeUbTuple( (float)(x1 ),(float)(x2 ),(float)(x3 ) ) ); - nodedata[0][dn1] = (double)para->getParH(level)->pressure[pos] / (double)3.0 * (double)para->getDensityRatio() * (double)para->getVelocityRatio() * (double)para->getVelocityRatio(); - nodedata[1][dn1] = (double)para->getParH(level)->rho[pos] / (double)3.0 * (double)para->getDensityRatio() * (double)para->getVelocityRatio() * (double)para->getVelocityRatio(); - nodedata[2][dn1] = (double)para->getParH(level)->velocityX[pos] * (double)para->getVelocityRatio(); - nodedata[3][dn1] = (double)para->getParH(level)->velocityY[pos] * (double)para->getVelocityRatio(); - nodedata[4][dn1] = (double)para->getParH(level)->velocityZ[pos] * (double)para->getVelocityRatio(); - nodedata[5][dn1] = (double)para->getParH(level)->typeOfGridNode[pos]; - ////////////////////////////////////////////////////////////////////////// - //printf("\n test vor numbers... \n"); - number2 = para->getParH(level)->neighborX[number1]; - number3 = para->getParH(level)->neighborY[number2]; - number4 = para->getParH(level)->neighborY[number1]; - number5 = para->getParH(level)->neighborZ[number1]; - number6 = para->getParH(level)->neighborZ[number2]; - number7 = para->getParH(level)->neighborZ[number3]; - number8 = para->getParH(level)->neighborZ[number4]; - ////////////////////////////////////////////////////////////////////////// - //printf("\n test vor neighborsFluid... \n"); - if (para->getParH(level)->typeOfGridNode[number2] < GEO_FLUID || - para->getParH(level)->typeOfGridNode[number3] < GEO_FLUID || - para->getParH(level)->typeOfGridNode[number4] < GEO_FLUID || - para->getParH(level)->typeOfGridNode[number5] < GEO_FLUID || - para->getParH(level)->typeOfGridNode[number6] < GEO_FLUID || - para->getParH(level)->typeOfGridNode[number7] < GEO_FLUID || - para->getParH(level)->typeOfGridNode[number8] < GEO_FLUID ) neighborsFluid=false; - ////////////////////////////////////////////////////////////////////////// - //if(neighborsFluid==false) counter++; - ////////////////////////////////////////////////////////////////////////// - //printf("\n test vor numbers and neighborsFluid... \n"); - if (number2 > endpos || - number3 > endpos || - number4 > endpos || - number5 > endpos || - number6 > endpos || - number7 > endpos || - number8 > endpos ) neighborsFluid=false; - ////////////////////////////////////////////////////////////////////////// - //if(neighborsFluid==false) counter++; - ////////////////////////////////////////////////////////////////////////// - //printf("\n test vor dn... \n"); - dn2 = number2 - startpos; - dn3 = number3 - startpos; - dn4 = number4 - startpos; - dn5 = number5 - startpos; - dn6 = number6 - startpos; - dn7 = number7 - startpos; - dn8 = number8 - startpos; - ////////////////////////////////////////////////////////////////////////// - //if( std::fabs(nodedata[2][dn1]) > std::fabs(vxmax) ) vxmax = nodedata[2][dn1]; - ////////////////////////////////////////////////////////////////////////// - if (isPeriodicCell(para, level, number2, number1, number3, number5)) - continue; - ////////////////////////////////////////////////////////////////////////// - //counter++; - if (neighborsFluid) cells.push_back( makeUbTuple(dn1,dn2,dn3,dn4,dn5,dn6,dn7,dn8) ); - ////////////////////////////////////////////////////////////////////////// - } - //printf("\n test II... \n"); - } - //printf("\n number of cells: %d at level: %d\n", cells.size(), level); - WbWriterVtkXmlBinary::getInstance()->writeOctsWithNodeData(fname[part],nodes,cells,nodedatanames,nodedata); - //WbWriterVtkXmlBinary::getInstance()->writeNodesWithNodeData(fname[part], nodes, nodedatanames, nodedata); - ////////////////////////////////////////////////////////////////////////// - //printf("\n vx max: %.1f at level: %d\n", vxmax, level); - //printf("\n counter: %d at level: %d\n", counter, level); - } - } - ////////////////////////////////////////////////////////////////////////// - - - - - - - ////////////////////////////////////////////////////////////////////////// - void writeUnstrucuredGridLTwithTurbulentViscosity(Parameter* para, int level, vector<string >& fname) - { - vector< UbTupleFloat3 > nodes; - vector< UbTupleUInt8 > cells; - //vector< UbTupleUInt8 > cells2; - vector< string > nodedatanames; - nodedatanames.push_back("press"); - nodedatanames.push_back("rho"); - nodedatanames.push_back("vx1"); - nodedatanames.push_back("vx2"); - nodedatanames.push_back("vx3"); - nodedatanames.push_back("geo"); - nodedatanames.push_back("turbVis"); - unsigned int number1, number2, number3, number4, number5, number6, number7, number8; - unsigned int dn1, dn2, dn3, dn4, dn5, dn6, dn7, dn8; - bool neighborsFluid; - double vxmax = 0; - unsigned int startpos = 0; - unsigned int endpos = 0; - unsigned int sizeOfNodes = 0; - vector< vector< double > > nodedata(nodedatanames.size()); - - - //printf("\n test for if... \n"); - for (unsigned int part = 0; part < fname.size(); part++) - { - vxmax = 0; - //printf("\n test in if I... \n"); - ////////////////////////////////////////////////////////////////////////// + nodedata[0].resize(sizeOfNodes); + nodedata[1].resize(sizeOfNodes); + nodedata[2].resize(sizeOfNodes); + nodedata[3].resize(sizeOfNodes); + nodedata[4].resize(sizeOfNodes); + nodedata[5].resize(sizeOfNodes); + ////////////////////////////////////////////////////////////////////////// + //int counter = 0; + ////////////////////////////////////////////////////////////////////////// + //printf("\n test in if II... \n"); + + for (unsigned int pos=startpos;pos<endpos;pos++) + { + if (/*para->getParH(level)->typeOfGridNode[pos] >= GEO_FLUID*/true) + { + ////////////////////////////////////////////////////////////////////////// + double x1 = para->getParH(level)->coordinateX[pos]; + double x2 = para->getParH(level)->coordinateY[pos]; + double x3 = para->getParH(level)->coordinateZ[pos]; + ////////////////////////////////////////////////////////////////////////// + number1 = pos; + dn1 = pos - startpos; + neighborsFluid = true; + ////////////////////////////////////////////////////////////////////////// + //printf("\n test vor node data... \n"); + nodes[dn1]=( makeUbTuple( (float)(x1 ),(float)(x2 ),(float)(x3 ) ) ); + nodedata[0][dn1] = (double)para->getParH(level)->pressure[pos] / (double)3.0 * (double)para->getDensityRatio() * (double)para->getVelocityRatio() * (double)para->getVelocityRatio(); + nodedata[1][dn1] = (double)para->getParH(level)->rho[pos] / (double)3.0 * (double)para->getDensityRatio() * (double)para->getVelocityRatio() * (double)para->getVelocityRatio(); + nodedata[2][dn1] = (double)para->getParH(level)->velocityX[pos] * (double)para->getVelocityRatio(); + nodedata[3][dn1] = (double)para->getParH(level)->velocityY[pos] * (double)para->getVelocityRatio(); + nodedata[4][dn1] = (double)para->getParH(level)->velocityZ[pos] * (double)para->getVelocityRatio(); + nodedata[5][dn1] = (double)para->getParH(level)->typeOfGridNode[pos]; + ////////////////////////////////////////////////////////////////////////// + //printf("\n test vor numbers... \n"); + number2 = para->getParH(level)->neighborX[number1]; + number3 = para->getParH(level)->neighborY[number2]; + number4 = para->getParH(level)->neighborY[number1]; + number5 = para->getParH(level)->neighborZ[number1]; + number6 = para->getParH(level)->neighborZ[number2]; + number7 = para->getParH(level)->neighborZ[number3]; + number8 = para->getParH(level)->neighborZ[number4]; + ////////////////////////////////////////////////////////////////////////// + //printf("\n test vor neighborsFluid... \n"); + if (para->getParH(level)->typeOfGridNode[number2] < GEO_FLUID || + para->getParH(level)->typeOfGridNode[number3] < GEO_FLUID || + para->getParH(level)->typeOfGridNode[number4] < GEO_FLUID || + para->getParH(level)->typeOfGridNode[number5] < GEO_FLUID || + para->getParH(level)->typeOfGridNode[number6] < GEO_FLUID || + para->getParH(level)->typeOfGridNode[number7] < GEO_FLUID || + para->getParH(level)->typeOfGridNode[number8] < GEO_FLUID ) neighborsFluid=false; + ////////////////////////////////////////////////////////////////////////// + //if(neighborsFluid==false) counter++; + ////////////////////////////////////////////////////////////////////////// + //printf("\n test vor numbers and neighborsFluid... \n"); + if (number2 > endpos || + number3 > endpos || + number4 > endpos || + number5 > endpos || + number6 > endpos || + number7 > endpos || + number8 > endpos ) neighborsFluid=false; + ////////////////////////////////////////////////////////////////////////// + //if(neighborsFluid==false) counter++; + ////////////////////////////////////////////////////////////////////////// + //printf("\n test vor dn... \n"); + dn2 = number2 - startpos; + dn3 = number3 - startpos; + dn4 = number4 - startpos; + dn5 = number5 - startpos; + dn6 = number6 - startpos; + dn7 = number7 - startpos; + dn8 = number8 - startpos; + ////////////////////////////////////////////////////////////////////////// + //if( std::fabs(nodedata[2][dn1]) > std::fabs(vxmax) ) vxmax = nodedata[2][dn1]; + ////////////////////////////////////////////////////////////////////////// + if (isPeriodicCell(para, level, number2, number1, number3, number5)) + continue; + ////////////////////////////////////////////////////////////////////////// + //counter++; + if (neighborsFluid) cells.push_back( makeUbTuple(dn1,dn2,dn3,dn4,dn5,dn6,dn7,dn8) ); + ////////////////////////////////////////////////////////////////////////// + } + //printf("\n test II... \n"); + } + //printf("\n number of cells: %d at level: %d\n", cells.size(), level); + WbWriterVtkXmlBinary::getInstance()->writeOctsWithNodeData(fname[part],nodes,cells,nodedatanames,nodedata); + //WbWriterVtkXmlBinary::getInstance()->writeNodesWithNodeData(fname[part], nodes, nodedatanames, nodedata); + ////////////////////////////////////////////////////////////////////////// + //printf("\n vx max: %.1f at level: %d\n", vxmax, level); + //printf("\n counter: %d at level: %d\n", counter, level); + } + } + ////////////////////////////////////////////////////////////////////////// + + + + + + + ////////////////////////////////////////////////////////////////////////// + void writeUnstrucuredGridLTwithTurbulentViscosity(Parameter* para, int level, vector<string >& fname) + { + vector< UbTupleFloat3 > nodes; + vector< UbTupleUInt8 > cells; + //vector< UbTupleUInt8 > cells2; + vector< string > nodedatanames; + nodedatanames.push_back("press"); + nodedatanames.push_back("rho"); + nodedatanames.push_back("vx1"); + nodedatanames.push_back("vx2"); + nodedatanames.push_back("vx3"); + nodedatanames.push_back("geo"); + nodedatanames.push_back("turbVis"); + unsigned int number1, number2, number3, number4, number5, number6, number7, number8; + unsigned int dn1, dn2, dn3, dn4, dn5, dn6, dn7, dn8; + bool neighborsFluid; + double vxmax = 0; + unsigned int startpos = 0; + unsigned int endpos = 0; + unsigned int sizeOfNodes = 0; + vector< vector< double > > nodedata(nodedatanames.size()); + + + //printf("\n test for if... \n"); + for (unsigned int part = 0; part < fname.size(); part++) + { + vxmax = 0; + //printf("\n test in if I... \n"); + ////////////////////////////////////////////////////////////////////////// sizeOfNodes = FilePartCalculator::calculateNumberOfNodesInPart(para->getParH(level)->numberOfNodes); ////////////////////////////////////////////////////////////////////////// - startpos = FilePartCalculator::calculateStartingPostionOfPart(part); - endpos = startpos + sizeOfNodes; - ////////////////////////////////////////////////////////////////////////// - cells.clear(); - nodes.resize(sizeOfNodes); - nodedata[0].resize(sizeOfNodes); - nodedata[1].resize(sizeOfNodes); - nodedata[2].resize(sizeOfNodes); - nodedata[3].resize(sizeOfNodes); - nodedata[4].resize(sizeOfNodes); - nodedata[5].resize(sizeOfNodes); - nodedata[6].resize(sizeOfNodes); - ////////////////////////////////////////////////////////////////////////// - //int counter = 0; - ////////////////////////////////////////////////////////////////////////// - //printf("\n test in if II... \n"); - - for (unsigned int pos = startpos; pos < endpos; pos++) - { - if (/*para->getParH(level)->typeOfGridNode[pos] >= GEO_FLUID*/true) - { - ////////////////////////////////////////////////////////////////////////// - double x1 = para->getParH(level)->coordinateX[pos]; - double x2 = para->getParH(level)->coordinateY[pos]; - double x3 = para->getParH(level)->coordinateZ[pos]; - ////////////////////////////////////////////////////////////////////////// - number1 = pos; - dn1 = pos - startpos; - neighborsFluid = true; - ////////////////////////////////////////////////////////////////////////// - nodes[dn1] = (makeUbTuple((float)(x1), (float)(x2), (float)(x3))); - nodedata[0][dn1] = (double)para->getParH(level)->pressure[pos] / (double)3.0 * (double)para->getDensityRatio() * (double)para->getVelocityRatio() * (double)para->getVelocityRatio(); - nodedata[1][dn1] = (double)para->getParH(level)->rho[pos] / (double)3.0 * (double)para->getDensityRatio() * (double)para->getVelocityRatio() * (double)para->getVelocityRatio(); - nodedata[2][dn1] = (double)para->getParH(level)->velocityX[pos] * (double)para->getVelocityRatio(); - nodedata[3][dn1] = (double)para->getParH(level)->velocityY[pos] * (double)para->getVelocityRatio(); - nodedata[4][dn1] = (double)para->getParH(level)->velocityZ[pos] * (double)para->getVelocityRatio(); - nodedata[5][dn1] = (double)para->getParH(level)->typeOfGridNode[pos]; - nodedata[6][dn1] = (double)para->getParH(level)->turbViscosity[pos]; - ////////////////////////////////////////////////////////////////////////// - number2 = para->getParH(level)->neighborX[number1]; - number3 = para->getParH(level)->neighborY[number2]; - number4 = para->getParH(level)->neighborY[number1]; - number5 = para->getParH(level)->neighborZ[number1]; - number6 = para->getParH(level)->neighborZ[number2]; - number7 = para->getParH(level)->neighborZ[number3]; - number8 = para->getParH(level)->neighborZ[number4]; - ////////////////////////////////////////////////////////////////////////// - if (para->getParH(level)->typeOfGridNode[number2] < GEO_FLUID || - para->getParH(level)->typeOfGridNode[number3] < GEO_FLUID || - para->getParH(level)->typeOfGridNode[number4] < GEO_FLUID || - para->getParH(level)->typeOfGridNode[number5] < GEO_FLUID || - para->getParH(level)->typeOfGridNode[number6] < GEO_FLUID || - para->getParH(level)->typeOfGridNode[number7] < GEO_FLUID || - para->getParH(level)->typeOfGridNode[number8] < GEO_FLUID) neighborsFluid = false; - ////////////////////////////////////////////////////////////////////////// - if (number2 > endpos || - number3 > endpos || - number4 > endpos || - number5 > endpos || - number6 > endpos || - number7 > endpos || - number8 > endpos) neighborsFluid = false; - ////////////////////////////////////////////////////////////////////////// - dn2 = number2 - startpos; - dn3 = number3 - startpos; - dn4 = number4 - startpos; - dn5 = number5 - startpos; - dn6 = number6 - startpos; - dn7 = number7 - startpos; - dn8 = number8 - startpos; - ////////////////////////////////////////////////////////////////////////// - if (isPeriodicCell(para, level, number2, number1, number3, number5)) - continue; - ////////////////////////////////////////////////////////////////////////// - if (neighborsFluid) cells.push_back(makeUbTuple(dn1, dn2, dn3, dn4, dn5, dn6, dn7, dn8)); - ////////////////////////////////////////////////////////////////////////// - } - } - WbWriterVtkXmlBinary::getInstance()->writeOctsWithNodeData(fname[part], nodes, cells, nodedatanames, nodedata); - //WbWriterVtkXmlBinary::getInstance()->writeNodesWithNodeData(fname[part], nodes, nodedatanames, nodedata); - } - } - ////////////////////////////////////////////////////////////////////////// - - - - - - - ////////////////////////////////////////////////////////////////////////// - void writeUnstrucuredGridLTwithTurbulentViscosityDebug(Parameter* para, int level, vector<string >& fname) - { - vector< UbTupleFloat3 > nodes; - vector< UbTupleUInt8 > cells; - //vector< UbTupleUInt8 > cells2; - vector< string > nodedatanames; - nodedatanames.push_back("press"); - nodedatanames.push_back("rho"); - nodedatanames.push_back("vx1"); - nodedatanames.push_back("vx2"); - nodedatanames.push_back("vx3"); - nodedatanames.push_back("geo"); - nodedatanames.push_back("turbVis"); - nodedatanames.push_back("gSij "); - nodedatanames.push_back("gSDij"); - nodedatanames.push_back("gDxvx"); - nodedatanames.push_back("gDyvx"); - nodedatanames.push_back("gDzvx"); - nodedatanames.push_back("gDxvy"); - nodedatanames.push_back("gDyvy"); - nodedatanames.push_back("gDzvy"); - nodedatanames.push_back("gDxvz"); - nodedatanames.push_back("gDyvz"); - nodedatanames.push_back("gDzvz"); - unsigned int number1, number2, number3, number4, number5, number6, number7, number8; - unsigned int dn1, dn2, dn3, dn4, dn5, dn6, dn7, dn8; - bool neighborsFluid; - double vxmax = 0; - unsigned int startpos = 0; - unsigned int endpos = 0; - unsigned int sizeOfNodes = 0; - vector< vector< double > > nodedata(nodedatanames.size()); - - - //printf("\n test for if... \n"); - for (unsigned int part = 0; part < fname.size(); part++) - { - vxmax = 0; - //printf("\n test in if I... \n"); - ////////////////////////////////////////////////////////////////////////// + startpos = FilePartCalculator::calculateStartingPostionOfPart(part); + endpos = startpos + sizeOfNodes; + ////////////////////////////////////////////////////////////////////////// + cells.clear(); + nodes.resize(sizeOfNodes); + nodedata[0].resize(sizeOfNodes); + nodedata[1].resize(sizeOfNodes); + nodedata[2].resize(sizeOfNodes); + nodedata[3].resize(sizeOfNodes); + nodedata[4].resize(sizeOfNodes); + nodedata[5].resize(sizeOfNodes); + nodedata[6].resize(sizeOfNodes); + ////////////////////////////////////////////////////////////////////////// + //int counter = 0; + ////////////////////////////////////////////////////////////////////////// + //printf("\n test in if II... \n"); + + for (unsigned int pos = startpos; pos < endpos; pos++) + { + if (/*para->getParH(level)->typeOfGridNode[pos] >= GEO_FLUID*/true) + { + ////////////////////////////////////////////////////////////////////////// + double x1 = para->getParH(level)->coordinateX[pos]; + double x2 = para->getParH(level)->coordinateY[pos]; + double x3 = para->getParH(level)->coordinateZ[pos]; + ////////////////////////////////////////////////////////////////////////// + number1 = pos; + dn1 = pos - startpos; + neighborsFluid = true; + ////////////////////////////////////////////////////////////////////////// + nodes[dn1] = (makeUbTuple((float)(x1), (float)(x2), (float)(x3))); + nodedata[0][dn1] = (double)para->getParH(level)->pressure[pos] / (double)3.0 * (double)para->getDensityRatio() * (double)para->getVelocityRatio() * (double)para->getVelocityRatio(); + nodedata[1][dn1] = (double)para->getParH(level)->rho[pos] / (double)3.0 * (double)para->getDensityRatio() * (double)para->getVelocityRatio() * (double)para->getVelocityRatio(); + nodedata[2][dn1] = (double)para->getParH(level)->velocityX[pos] * (double)para->getVelocityRatio(); + nodedata[3][dn1] = (double)para->getParH(level)->velocityY[pos] * (double)para->getVelocityRatio(); + nodedata[4][dn1] = (double)para->getParH(level)->velocityZ[pos] * (double)para->getVelocityRatio(); + nodedata[5][dn1] = (double)para->getParH(level)->typeOfGridNode[pos]; + nodedata[6][dn1] = (double)para->getParH(level)->turbViscosity[pos]; + ////////////////////////////////////////////////////////////////////////// + number2 = para->getParH(level)->neighborX[number1]; + number3 = para->getParH(level)->neighborY[number2]; + number4 = para->getParH(level)->neighborY[number1]; + number5 = para->getParH(level)->neighborZ[number1]; + number6 = para->getParH(level)->neighborZ[number2]; + number7 = para->getParH(level)->neighborZ[number3]; + number8 = para->getParH(level)->neighborZ[number4]; + ////////////////////////////////////////////////////////////////////////// + if (para->getParH(level)->typeOfGridNode[number2] < GEO_FLUID || + para->getParH(level)->typeOfGridNode[number3] < GEO_FLUID || + para->getParH(level)->typeOfGridNode[number4] < GEO_FLUID || + para->getParH(level)->typeOfGridNode[number5] < GEO_FLUID || + para->getParH(level)->typeOfGridNode[number6] < GEO_FLUID || + para->getParH(level)->typeOfGridNode[number7] < GEO_FLUID || + para->getParH(level)->typeOfGridNode[number8] < GEO_FLUID) neighborsFluid = false; + ////////////////////////////////////////////////////////////////////////// + if (number2 > endpos || + number3 > endpos || + number4 > endpos || + number5 > endpos || + number6 > endpos || + number7 > endpos || + number8 > endpos) neighborsFluid = false; + ////////////////////////////////////////////////////////////////////////// + dn2 = number2 - startpos; + dn3 = number3 - startpos; + dn4 = number4 - startpos; + dn5 = number5 - startpos; + dn6 = number6 - startpos; + dn7 = number7 - startpos; + dn8 = number8 - startpos; + ////////////////////////////////////////////////////////////////////////// + if (isPeriodicCell(para, level, number2, number1, number3, number5)) + continue; + ////////////////////////////////////////////////////////////////////////// + if (neighborsFluid) cells.push_back(makeUbTuple(dn1, dn2, dn3, dn4, dn5, dn6, dn7, dn8)); + ////////////////////////////////////////////////////////////////////////// + } + } + WbWriterVtkXmlBinary::getInstance()->writeOctsWithNodeData(fname[part], nodes, cells, nodedatanames, nodedata); + //WbWriterVtkXmlBinary::getInstance()->writeNodesWithNodeData(fname[part], nodes, nodedatanames, nodedata); + } + } + ////////////////////////////////////////////////////////////////////////// + + + + + + + ////////////////////////////////////////////////////////////////////////// + void writeUnstrucuredGridLTwithTurbulentViscosityDebug(Parameter* para, int level, vector<string >& fname) + { + vector< UbTupleFloat3 > nodes; + vector< UbTupleUInt8 > cells; + //vector< UbTupleUInt8 > cells2; + vector< string > nodedatanames; + nodedatanames.push_back("press"); + nodedatanames.push_back("rho"); + nodedatanames.push_back("vx1"); + nodedatanames.push_back("vx2"); + nodedatanames.push_back("vx3"); + nodedatanames.push_back("geo"); + nodedatanames.push_back("turbVis"); + nodedatanames.push_back("gSij "); + nodedatanames.push_back("gSDij"); + nodedatanames.push_back("gDxvx"); + nodedatanames.push_back("gDyvx"); + nodedatanames.push_back("gDzvx"); + nodedatanames.push_back("gDxvy"); + nodedatanames.push_back("gDyvy"); + nodedatanames.push_back("gDzvy"); + nodedatanames.push_back("gDxvz"); + nodedatanames.push_back("gDyvz"); + nodedatanames.push_back("gDzvz"); + unsigned int number1, number2, number3, number4, number5, number6, number7, number8; + unsigned int dn1, dn2, dn3, dn4, dn5, dn6, dn7, dn8; + bool neighborsFluid; + double vxmax = 0; + unsigned int startpos = 0; + unsigned int endpos = 0; + unsigned int sizeOfNodes = 0; + vector< vector< double > > nodedata(nodedatanames.size()); + + + //printf("\n test for if... \n"); + for (unsigned int part = 0; part < fname.size(); part++) + { + vxmax = 0; + //printf("\n test in if I... \n"); + ////////////////////////////////////////////////////////////////////////// sizeOfNodes = FilePartCalculator::calculateNumberOfNodesInPart(para->getParH(level)->numberOfNodes); - ////////////////////////////////////////////////////////////////////////// - startpos = FilePartCalculator::calculateStartingPostionOfPart(part); - endpos = startpos + sizeOfNodes; - ////////////////////////////////////////////////////////////////////////// - cells.clear(); - nodes.resize(sizeOfNodes); - nodedata[0].resize(sizeOfNodes); - nodedata[1].resize(sizeOfNodes); - nodedata[2].resize(sizeOfNodes); - nodedata[3].resize(sizeOfNodes); - nodedata[4].resize(sizeOfNodes); - nodedata[5].resize(sizeOfNodes); - nodedata[6].resize(sizeOfNodes); - nodedata[7].resize(sizeOfNodes); - nodedata[8].resize(sizeOfNodes); - nodedata[9].resize(sizeOfNodes); - nodedata[10].resize(sizeOfNodes); - nodedata[11].resize(sizeOfNodes); - nodedata[12].resize(sizeOfNodes); - nodedata[13].resize(sizeOfNodes); - nodedata[14].resize(sizeOfNodes); - nodedata[15].resize(sizeOfNodes); - nodedata[16].resize(sizeOfNodes); - nodedata[17].resize(sizeOfNodes); - ////////////////////////////////////////////////////////////////////////// - //int counter = 0; - ////////////////////////////////////////////////////////////////////////// - //printf("\n test in if II... \n"); - - for (unsigned int pos = startpos; pos < endpos; pos++) - { - if (/*para->getParH(level)->typeOfGridNode[pos] >= GEO_FLUID*/true) - { - ////////////////////////////////////////////////////////////////////////// - double x1 = para->getParH(level)->coordinateX[pos]; - double x2 = para->getParH(level)->coordinateY[pos]; - double x3 = para->getParH(level)->coordinateZ[pos]; - ////////////////////////////////////////////////////////////////////////// - number1 = pos; - dn1 = pos - startpos; - neighborsFluid = true; - ////////////////////////////////////////////////////////////////////////// - nodes[dn1] = (makeUbTuple((float)(x1), (float)(x2), (float)(x3))); - nodedata[0][dn1] = (double)para->getParH(level)->pressure[pos] / (double)3.0 * (double)para->getDensityRatio() * (double)para->getVelocityRatio() * (double)para->getVelocityRatio(); - nodedata[1][dn1] = (double)para->getParH(level)->rho[pos] / (double)3.0 * (double)para->getDensityRatio() * (double)para->getVelocityRatio() * (double)para->getVelocityRatio(); - nodedata[2][dn1] = (double)para->getParH(level)->velocityX[pos] * (double)para->getVelocityRatio(); - nodedata[3][dn1] = (double)para->getParH(level)->velocityY[pos] * (double)para->getVelocityRatio(); - nodedata[4][dn1] = (double)para->getParH(level)->velocityZ[pos] * (double)para->getVelocityRatio(); - nodedata[5][dn1] = (double)para->getParH(level)->typeOfGridNode[pos]; - nodedata[6][dn1] = (double)para->getParH(level)->turbViscosity[pos] * (double)para->getViscosityRatio(); - nodedata[7][dn1] = (double)para->getParH(level)->gSij[pos] * (double)para->getVelocityRatio(); - nodedata[8][dn1] = (double)para->getParH(level)->gSDij[pos] * (double)para->getVelocityRatio(); - nodedata[9][dn1] = (double)para->getParH(level)->gDxvx[pos] * (double)para->getVelocityRatio(); - nodedata[10][dn1] = (double)para->getParH(level)->gDyvx[pos] * (double)para->getVelocityRatio(); - nodedata[11][dn1] = (double)para->getParH(level)->gDzvx[pos] * (double)para->getVelocityRatio(); - nodedata[12][dn1] = (double)para->getParH(level)->gDxvy[pos] * (double)para->getVelocityRatio(); - nodedata[13][dn1] = (double)para->getParH(level)->gDyvy[pos] * (double)para->getVelocityRatio(); - nodedata[14][dn1] = (double)para->getParH(level)->gDzvy[pos] * (double)para->getVelocityRatio(); - nodedata[15][dn1] = (double)para->getParH(level)->gDxvz[pos] * (double)para->getVelocityRatio(); - nodedata[16][dn1] = (double)para->getParH(level)->gDyvz[pos] * (double)para->getVelocityRatio(); - nodedata[17][dn1] = (double)para->getParH(level)->gDzvz[pos] * (double)para->getVelocityRatio(); - ////////////////////////////////////////////////////////////////////////// - number2 = para->getParH(level)->neighborX[number1]; - number3 = para->getParH(level)->neighborY[number2]; - number4 = para->getParH(level)->neighborY[number1]; - number5 = para->getParH(level)->neighborZ[number1]; - number6 = para->getParH(level)->neighborZ[number2]; - number7 = para->getParH(level)->neighborZ[number3]; - number8 = para->getParH(level)->neighborZ[number4]; - ////////////////////////////////////////////////////////////////////////// - if (para->getParH(level)->typeOfGridNode[number2] < GEO_FLUID || - para->getParH(level)->typeOfGridNode[number3] < GEO_FLUID || - para->getParH(level)->typeOfGridNode[number4] < GEO_FLUID || - para->getParH(level)->typeOfGridNode[number5] < GEO_FLUID || - para->getParH(level)->typeOfGridNode[number6] < GEO_FLUID || - para->getParH(level)->typeOfGridNode[number7] < GEO_FLUID || - para->getParH(level)->typeOfGridNode[number8] < GEO_FLUID) neighborsFluid = false; - ////////////////////////////////////////////////////////////////////////// - if (number2 > endpos || - number3 > endpos || - number4 > endpos || - number5 > endpos || - number6 > endpos || - number7 > endpos || - number8 > endpos) neighborsFluid = false; - ////////////////////////////////////////////////////////////////////////// - dn2 = number2 - startpos; - dn3 = number3 - startpos; - dn4 = number4 - startpos; - dn5 = number5 - startpos; - dn6 = number6 - startpos; - dn7 = number7 - startpos; - dn8 = number8 - startpos; - ////////////////////////////////////////////////////////////////////////// - if (isPeriodicCell(para, level, number2, number1, number3, number5)) - continue; - ////////////////////////////////////////////////////////////////////////// - if (neighborsFluid) cells.push_back(makeUbTuple(dn1, dn2, dn3, dn4, dn5, dn6, dn7, dn8)); - ////////////////////////////////////////////////////////////////////////// - } - } - WbWriterVtkXmlBinary::getInstance()->writeOctsWithNodeData(fname[part], nodes, cells, nodedatanames, nodedata); - //WbWriterVtkXmlBinary::getInstance()->writeNodesWithNodeData(fname[part], nodes, nodedatanames, nodedata); - } - } - ////////////////////////////////////////////////////////////////////////// - - - - - - - ////////////////////////////////////////////////////////////////////////// - void writeUnstrucuredGridPM(Parameter* para, int level, vector<string >& fname) - { - vector< UbTupleFloat3 > nodes; - vector< UbTupleUInt8 > cells; - //vector< UbTupleUInt8 > cells2; - vector< string > nodedatanames; - nodedatanames.push_back("press"); - nodedatanames.push_back("rho"); - nodedatanames.push_back("vx1"); - nodedatanames.push_back("vx2"); - nodedatanames.push_back("vx3"); - nodedatanames.push_back("geo"); - unsigned int number1, number2, number3, number4, number5, number6, number7, number8; - unsigned int dn1, dn2, dn3, dn4, dn5, dn6, dn7, dn8; - bool neighborsFluid; - double vxmax = 0; - unsigned int startpos = 0; - unsigned int endpos = 0; - unsigned int sizeOfNodes = 0; - vector< vector< double > > nodedata(nodedatanames.size()); - - - //printf("\n test for if... \n"); - for (unsigned int part = 0; part < fname.size(); part++) - { - vxmax = 0; - //printf("\n test in if I... \n"); - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// + startpos = FilePartCalculator::calculateStartingPostionOfPart(part); + endpos = startpos + sizeOfNodes; + ////////////////////////////////////////////////////////////////////////// + cells.clear(); + nodes.resize(sizeOfNodes); + nodedata[0].resize(sizeOfNodes); + nodedata[1].resize(sizeOfNodes); + nodedata[2].resize(sizeOfNodes); + nodedata[3].resize(sizeOfNodes); + nodedata[4].resize(sizeOfNodes); + nodedata[5].resize(sizeOfNodes); + nodedata[6].resize(sizeOfNodes); + nodedata[7].resize(sizeOfNodes); + nodedata[8].resize(sizeOfNodes); + nodedata[9].resize(sizeOfNodes); + nodedata[10].resize(sizeOfNodes); + nodedata[11].resize(sizeOfNodes); + nodedata[12].resize(sizeOfNodes); + nodedata[13].resize(sizeOfNodes); + nodedata[14].resize(sizeOfNodes); + nodedata[15].resize(sizeOfNodes); + nodedata[16].resize(sizeOfNodes); + nodedata[17].resize(sizeOfNodes); + ////////////////////////////////////////////////////////////////////////// + //int counter = 0; + ////////////////////////////////////////////////////////////////////////// + //printf("\n test in if II... \n"); + + for (unsigned int pos = startpos; pos < endpos; pos++) + { + if (/*para->getParH(level)->typeOfGridNode[pos] >= GEO_FLUID*/true) + { + ////////////////////////////////////////////////////////////////////////// + double x1 = para->getParH(level)->coordinateX[pos]; + double x2 = para->getParH(level)->coordinateY[pos]; + double x3 = para->getParH(level)->coordinateZ[pos]; + ////////////////////////////////////////////////////////////////////////// + number1 = pos; + dn1 = pos - startpos; + neighborsFluid = true; + ////////////////////////////////////////////////////////////////////////// + nodes[dn1] = (makeUbTuple((float)(x1), (float)(x2), (float)(x3))); + nodedata[0][dn1] = (double)para->getParH(level)->pressure[pos] / (double)3.0 * (double)para->getDensityRatio() * (double)para->getVelocityRatio() * (double)para->getVelocityRatio(); + nodedata[1][dn1] = (double)para->getParH(level)->rho[pos] / (double)3.0 * (double)para->getDensityRatio() * (double)para->getVelocityRatio() * (double)para->getVelocityRatio(); + nodedata[2][dn1] = (double)para->getParH(level)->velocityX[pos] * (double)para->getVelocityRatio(); + nodedata[3][dn1] = (double)para->getParH(level)->velocityY[pos] * (double)para->getVelocityRatio(); + nodedata[4][dn1] = (double)para->getParH(level)->velocityZ[pos] * (double)para->getVelocityRatio(); + nodedata[5][dn1] = (double)para->getParH(level)->typeOfGridNode[pos]; + nodedata[6][dn1] = (double)para->getParH(level)->turbViscosity[pos] * (double)para->getViscosityRatio(); + nodedata[7][dn1] = (double)para->getParH(level)->gSij[pos] * (double)para->getVelocityRatio(); + nodedata[8][dn1] = (double)para->getParH(level)->gSDij[pos] * (double)para->getVelocityRatio(); + nodedata[9][dn1] = (double)para->getParH(level)->gDxvx[pos] * (double)para->getVelocityRatio(); + nodedata[10][dn1] = (double)para->getParH(level)->gDyvx[pos] * (double)para->getVelocityRatio(); + nodedata[11][dn1] = (double)para->getParH(level)->gDzvx[pos] * (double)para->getVelocityRatio(); + nodedata[12][dn1] = (double)para->getParH(level)->gDxvy[pos] * (double)para->getVelocityRatio(); + nodedata[13][dn1] = (double)para->getParH(level)->gDyvy[pos] * (double)para->getVelocityRatio(); + nodedata[14][dn1] = (double)para->getParH(level)->gDzvy[pos] * (double)para->getVelocityRatio(); + nodedata[15][dn1] = (double)para->getParH(level)->gDxvz[pos] * (double)para->getVelocityRatio(); + nodedata[16][dn1] = (double)para->getParH(level)->gDyvz[pos] * (double)para->getVelocityRatio(); + nodedata[17][dn1] = (double)para->getParH(level)->gDzvz[pos] * (double)para->getVelocityRatio(); + ////////////////////////////////////////////////////////////////////////// + number2 = para->getParH(level)->neighborX[number1]; + number3 = para->getParH(level)->neighborY[number2]; + number4 = para->getParH(level)->neighborY[number1]; + number5 = para->getParH(level)->neighborZ[number1]; + number6 = para->getParH(level)->neighborZ[number2]; + number7 = para->getParH(level)->neighborZ[number3]; + number8 = para->getParH(level)->neighborZ[number4]; + ////////////////////////////////////////////////////////////////////////// + if (para->getParH(level)->typeOfGridNode[number2] < GEO_FLUID || + para->getParH(level)->typeOfGridNode[number3] < GEO_FLUID || + para->getParH(level)->typeOfGridNode[number4] < GEO_FLUID || + para->getParH(level)->typeOfGridNode[number5] < GEO_FLUID || + para->getParH(level)->typeOfGridNode[number6] < GEO_FLUID || + para->getParH(level)->typeOfGridNode[number7] < GEO_FLUID || + para->getParH(level)->typeOfGridNode[number8] < GEO_FLUID) neighborsFluid = false; + ////////////////////////////////////////////////////////////////////////// + if (number2 > endpos || + number3 > endpos || + number4 > endpos || + number5 > endpos || + number6 > endpos || + number7 > endpos || + number8 > endpos) neighborsFluid = false; + ////////////////////////////////////////////////////////////////////////// + dn2 = number2 - startpos; + dn3 = number3 - startpos; + dn4 = number4 - startpos; + dn5 = number5 - startpos; + dn6 = number6 - startpos; + dn7 = number7 - startpos; + dn8 = number8 - startpos; + ////////////////////////////////////////////////////////////////////////// + if (isPeriodicCell(para, level, number2, number1, number3, number5)) + continue; + ////////////////////////////////////////////////////////////////////////// + if (neighborsFluid) cells.push_back(makeUbTuple(dn1, dn2, dn3, dn4, dn5, dn6, dn7, dn8)); + ////////////////////////////////////////////////////////////////////////// + } + } + WbWriterVtkXmlBinary::getInstance()->writeOctsWithNodeData(fname[part], nodes, cells, nodedatanames, nodedata); + //WbWriterVtkXmlBinary::getInstance()->writeNodesWithNodeData(fname[part], nodes, nodedatanames, nodedata); + } + } + ////////////////////////////////////////////////////////////////////////// + + + + + + + ////////////////////////////////////////////////////////////////////////// + void writeUnstrucuredGridPM(Parameter* para, int level, vector<string >& fname) + { + vector< UbTupleFloat3 > nodes; + vector< UbTupleUInt8 > cells; + //vector< UbTupleUInt8 > cells2; + vector< string > nodedatanames; + nodedatanames.push_back("press"); + nodedatanames.push_back("rho"); + nodedatanames.push_back("vx1"); + nodedatanames.push_back("vx2"); + nodedatanames.push_back("vx3"); + nodedatanames.push_back("geo"); + unsigned int number1, number2, number3, number4, number5, number6, number7, number8; + unsigned int dn1, dn2, dn3, dn4, dn5, dn6, dn7, dn8; + bool neighborsFluid; + double vxmax = 0; + unsigned int startpos = 0; + unsigned int endpos = 0; + unsigned int sizeOfNodes = 0; + vector< vector< double > > nodedata(nodedatanames.size()); + + + //printf("\n test for if... \n"); + for (unsigned int part = 0; part < fname.size(); part++) + { + vxmax = 0; + //printf("\n test in if I... \n"); + ////////////////////////////////////////////////////////////////////////// sizeOfNodes = FilePartCalculator::calculateNumberOfNodesInPart(para->getParH(level)->numberOfNodes); - ////////////////////////////////////////////////////////////////////////// - startpos = FilePartCalculator::calculateStartingPostionOfPart(part); - endpos = startpos + sizeOfNodes; - ////////////////////////////////////////////////////////////////////////// - cells.clear(); - nodes.resize(sizeOfNodes); - nodedata[0].resize(sizeOfNodes); - nodedata[1].resize(sizeOfNodes); - nodedata[2].resize(sizeOfNodes); - nodedata[3].resize(sizeOfNodes); - nodedata[4].resize(sizeOfNodes); - nodedata[5].resize(sizeOfNodes); - ////////////////////////////////////////////////////////////////////////// - //int counter = 0; - ////////////////////////////////////////////////////////////////////////// - //printf("\n test in if II... \n"); - - for (unsigned int pos = startpos; pos < endpos; pos++) - { - if ((para->getParH(level)->typeOfGridNode[pos] >= GEO_FLUID) || ((para->getParH(level)->typeOfGridNode[pos] >= GEO_PM_0) && (para->getParH(level)->typeOfGridNode[pos] <= GEO_PM_2))) - { - ////////////////////////////////////////////////////////////////////////// - double x1 = para->getParH(level)->coordinateX[pos]; - double x2 = para->getParH(level)->coordinateY[pos]; - double x3 = para->getParH(level)->coordinateZ[pos]; - ////////////////////////////////////////////////////////////////////////// - number1 = pos; - dn1 = pos - startpos; - neighborsFluid = true; - ////////////////////////////////////////////////////////////////////////// - //printf("\n test vor node data... \n"); - nodes[dn1] = (makeUbTuple((float)(x1), (float)(x2), (float)(x3))); - nodedata[0][dn1] = (double)para->getParH(level)->pressure[pos] / (double)3.0 * (double)para->getDensityRatio() * (double)para->getVelocityRatio() * (double)para->getVelocityRatio(); - nodedata[1][dn1] = (double)para->getParH(level)->rho[pos] / (double)3.0 * (double)para->getDensityRatio() * (double)para->getVelocityRatio() * (double)para->getVelocityRatio(); - nodedata[2][dn1] = (double)para->getParH(level)->velocityX[pos] * (double)para->getVelocityRatio(); - nodedata[3][dn1] = (double)para->getParH(level)->velocityY[pos] * (double)para->getVelocityRatio(); - nodedata[4][dn1] = (double)para->getParH(level)->velocityZ[pos] * (double)para->getVelocityRatio(); - nodedata[5][dn1] = (double)para->getParH(level)->typeOfGridNode[pos]; - ////////////////////////////////////////////////////////////////////////// - //printf("\n test vor numbers... \n"); - number2 = para->getParH(level)->neighborX[number1]; - number3 = para->getParH(level)->neighborY[number2]; - number4 = para->getParH(level)->neighborY[number1]; - number5 = para->getParH(level)->neighborZ[number1]; - number6 = para->getParH(level)->neighborZ[number2]; - number7 = para->getParH(level)->neighborZ[number3]; - number8 = para->getParH(level)->neighborZ[number4]; - ////////////////////////////////////////////////////////////////////////// - //printf("\n test vor neighborsFluid... \n"); - if (((para->getParH(level)->typeOfGridNode[number2] != GEO_FLUID) && (para->getParH(level)->typeOfGridNode[number2] < GEO_PM_0) && (para->getParH(level)->typeOfGridNode[number2] > GEO_PM_2)) || - ((para->getParH(level)->typeOfGridNode[number3] != GEO_FLUID) && (para->getParH(level)->typeOfGridNode[number3] < GEO_PM_0) && (para->getParH(level)->typeOfGridNode[number3] > GEO_PM_2)) || - ((para->getParH(level)->typeOfGridNode[number4] != GEO_FLUID) && (para->getParH(level)->typeOfGridNode[number4] < GEO_PM_0) && (para->getParH(level)->typeOfGridNode[number4] > GEO_PM_2)) || - ((para->getParH(level)->typeOfGridNode[number5] != GEO_FLUID) && (para->getParH(level)->typeOfGridNode[number5] < GEO_PM_0) && (para->getParH(level)->typeOfGridNode[number5] > GEO_PM_2)) || - ((para->getParH(level)->typeOfGridNode[number6] != GEO_FLUID) && (para->getParH(level)->typeOfGridNode[number6] < GEO_PM_0) && (para->getParH(level)->typeOfGridNode[number6] > GEO_PM_2)) || - ((para->getParH(level)->typeOfGridNode[number7] != GEO_FLUID) && (para->getParH(level)->typeOfGridNode[number7] < GEO_PM_0) && (para->getParH(level)->typeOfGridNode[number7] > GEO_PM_2)) || - ((para->getParH(level)->typeOfGridNode[number8] != GEO_FLUID) && (para->getParH(level)->typeOfGridNode[number8] < GEO_PM_0) && (para->getParH(level)->typeOfGridNode[number8] > GEO_PM_2))) neighborsFluid = false; - ////////////////////////////////////////////////////////////////////////// - //if(neighborsFluid==false) counter++; - ////////////////////////////////////////////////////////////////////////// - //printf("\n test vor numbers and neighborsFluid... \n"); - if (number2 > endpos || - number3 > endpos || - number4 > endpos || - number5 > endpos || - number6 > endpos || - number7 > endpos || - number8 > endpos) neighborsFluid = false; - ////////////////////////////////////////////////////////////////////////// - //if(neighborsFluid==false) counter++; - ////////////////////////////////////////////////////////////////////////// - //printf("\n test vor dn... \n"); - dn2 = number2 - startpos; - dn3 = number3 - startpos; - dn4 = number4 - startpos; - dn5 = number5 - startpos; - dn6 = number6 - startpos; - dn7 = number7 - startpos; - dn8 = number8 - startpos; - ////////////////////////////////////////////////////////////////////////// - //if( std::fabs(nodedata[2][dn1]) > std::fabs(vxmax) ) vxmax = nodedata[2][dn1]; - ////////////////////////////////////////////////////////////////////////// - - if (isPeriodicCell(para, level, number2, number1, number3, number5)) - continue; - - //counter++; - if (neighborsFluid) cells.push_back(makeUbTuple(dn1, dn2, dn3, dn4, dn5, dn6, dn7, dn8)); - ////////////////////////////////////////////////////////////////////////// - } - //printf("\n test II... \n"); - } - //printf("\n number of cells: %d at level: %d\n", cells.size(), level); - WbWriterVtkXmlBinary::getInstance()->writeOctsWithNodeData(fname[part], nodes, cells, nodedatanames, nodedata); - //WbWriterVtkXmlBinary::getInstance()->writeNodesWithNodeData(fname[part], nodes, nodedatanames, nodedata); - ////////////////////////////////////////////////////////////////////////// - //printf("\n vx max: %.1f at level: %d\n", vxmax, level); - //printf("\n counter: %d at level: %d\n", counter, level); - } - } - ////////////////////////////////////////////////////////////////////////// - - - - - - - ////////////////////////////////////////////////////////////////////////// - void writeUnstrucuredGridLTConc(Parameter* para, int level, vector<string >& fname) - { - vector< UbTupleFloat3 > nodes; - vector< UbTupleUInt8 > cells; - //vector< UbTupleUInt8 > cells2; - vector< string > nodedatanames; - nodedatanames.push_back("press"); - nodedatanames.push_back("rho"); - nodedatanames.push_back("vx1"); - nodedatanames.push_back("vx2"); - nodedatanames.push_back("vx3"); - nodedatanames.push_back("geo"); - nodedatanames.push_back("Conc"); - unsigned int number1,number2,number3,number4,number5,number6,number7,number8; - unsigned int dn1,dn2,dn3,dn4,dn5,dn6,dn7,dn8; - bool neighborsFluid; - double vxmax = 0; - unsigned int startpos = 0; - unsigned int endpos = 0; - unsigned int sizeOfNodes = 0; - vector< vector< double > > nodedata(nodedatanames.size()); - - //printf("\n test for if... \n"); - for (unsigned int part=0; part < fname.size(); part++) - { - vxmax = 0; - //printf("\n test in if I... \n"); - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// + startpos = FilePartCalculator::calculateStartingPostionOfPart(part); + endpos = startpos + sizeOfNodes; + ////////////////////////////////////////////////////////////////////////// + cells.clear(); + nodes.resize(sizeOfNodes); + nodedata[0].resize(sizeOfNodes); + nodedata[1].resize(sizeOfNodes); + nodedata[2].resize(sizeOfNodes); + nodedata[3].resize(sizeOfNodes); + nodedata[4].resize(sizeOfNodes); + nodedata[5].resize(sizeOfNodes); + ////////////////////////////////////////////////////////////////////////// + //int counter = 0; + ////////////////////////////////////////////////////////////////////////// + //printf("\n test in if II... \n"); + + for (unsigned int pos = startpos; pos < endpos; pos++) + { + if ((para->getParH(level)->typeOfGridNode[pos] >= GEO_FLUID) || ((para->getParH(level)->typeOfGridNode[pos] >= GEO_PM_0) && (para->getParH(level)->typeOfGridNode[pos] <= GEO_PM_2))) + { + ////////////////////////////////////////////////////////////////////////// + double x1 = para->getParH(level)->coordinateX[pos]; + double x2 = para->getParH(level)->coordinateY[pos]; + double x3 = para->getParH(level)->coordinateZ[pos]; + ////////////////////////////////////////////////////////////////////////// + number1 = pos; + dn1 = pos - startpos; + neighborsFluid = true; + ////////////////////////////////////////////////////////////////////////// + //printf("\n test vor node data... \n"); + nodes[dn1] = (makeUbTuple((float)(x1), (float)(x2), (float)(x3))); + nodedata[0][dn1] = (double)para->getParH(level)->pressure[pos] / (double)3.0 * (double)para->getDensityRatio() * (double)para->getVelocityRatio() * (double)para->getVelocityRatio(); + nodedata[1][dn1] = (double)para->getParH(level)->rho[pos] / (double)3.0 * (double)para->getDensityRatio() * (double)para->getVelocityRatio() * (double)para->getVelocityRatio(); + nodedata[2][dn1] = (double)para->getParH(level)->velocityX[pos] * (double)para->getVelocityRatio(); + nodedata[3][dn1] = (double)para->getParH(level)->velocityY[pos] * (double)para->getVelocityRatio(); + nodedata[4][dn1] = (double)para->getParH(level)->velocityZ[pos] * (double)para->getVelocityRatio(); + nodedata[5][dn1] = (double)para->getParH(level)->typeOfGridNode[pos]; + ////////////////////////////////////////////////////////////////////////// + //printf("\n test vor numbers... \n"); + number2 = para->getParH(level)->neighborX[number1]; + number3 = para->getParH(level)->neighborY[number2]; + number4 = para->getParH(level)->neighborY[number1]; + number5 = para->getParH(level)->neighborZ[number1]; + number6 = para->getParH(level)->neighborZ[number2]; + number7 = para->getParH(level)->neighborZ[number3]; + number8 = para->getParH(level)->neighborZ[number4]; + ////////////////////////////////////////////////////////////////////////// + //printf("\n test vor neighborsFluid... \n"); + if (((para->getParH(level)->typeOfGridNode[number2] != GEO_FLUID) && (para->getParH(level)->typeOfGridNode[number2] < GEO_PM_0) && (para->getParH(level)->typeOfGridNode[number2] > GEO_PM_2)) || + ((para->getParH(level)->typeOfGridNode[number3] != GEO_FLUID) && (para->getParH(level)->typeOfGridNode[number3] < GEO_PM_0) && (para->getParH(level)->typeOfGridNode[number3] > GEO_PM_2)) || + ((para->getParH(level)->typeOfGridNode[number4] != GEO_FLUID) && (para->getParH(level)->typeOfGridNode[number4] < GEO_PM_0) && (para->getParH(level)->typeOfGridNode[number4] > GEO_PM_2)) || + ((para->getParH(level)->typeOfGridNode[number5] != GEO_FLUID) && (para->getParH(level)->typeOfGridNode[number5] < GEO_PM_0) && (para->getParH(level)->typeOfGridNode[number5] > GEO_PM_2)) || + ((para->getParH(level)->typeOfGridNode[number6] != GEO_FLUID) && (para->getParH(level)->typeOfGridNode[number6] < GEO_PM_0) && (para->getParH(level)->typeOfGridNode[number6] > GEO_PM_2)) || + ((para->getParH(level)->typeOfGridNode[number7] != GEO_FLUID) && (para->getParH(level)->typeOfGridNode[number7] < GEO_PM_0) && (para->getParH(level)->typeOfGridNode[number7] > GEO_PM_2)) || + ((para->getParH(level)->typeOfGridNode[number8] != GEO_FLUID) && (para->getParH(level)->typeOfGridNode[number8] < GEO_PM_0) && (para->getParH(level)->typeOfGridNode[number8] > GEO_PM_2))) neighborsFluid = false; + ////////////////////////////////////////////////////////////////////////// + //if(neighborsFluid==false) counter++; + ////////////////////////////////////////////////////////////////////////// + //printf("\n test vor numbers and neighborsFluid... \n"); + if (number2 > endpos || + number3 > endpos || + number4 > endpos || + number5 > endpos || + number6 > endpos || + number7 > endpos || + number8 > endpos) neighborsFluid = false; + ////////////////////////////////////////////////////////////////////////// + //if(neighborsFluid==false) counter++; + ////////////////////////////////////////////////////////////////////////// + //printf("\n test vor dn... \n"); + dn2 = number2 - startpos; + dn3 = number3 - startpos; + dn4 = number4 - startpos; + dn5 = number5 - startpos; + dn6 = number6 - startpos; + dn7 = number7 - startpos; + dn8 = number8 - startpos; + ////////////////////////////////////////////////////////////////////////// + //if( std::fabs(nodedata[2][dn1]) > std::fabs(vxmax) ) vxmax = nodedata[2][dn1]; + ////////////////////////////////////////////////////////////////////////// + + if (isPeriodicCell(para, level, number2, number1, number3, number5)) + continue; + + //counter++; + if (neighborsFluid) cells.push_back(makeUbTuple(dn1, dn2, dn3, dn4, dn5, dn6, dn7, dn8)); + ////////////////////////////////////////////////////////////////////////// + } + //printf("\n test II... \n"); + } + //printf("\n number of cells: %d at level: %d\n", cells.size(), level); + WbWriterVtkXmlBinary::getInstance()->writeOctsWithNodeData(fname[part], nodes, cells, nodedatanames, nodedata); + //WbWriterVtkXmlBinary::getInstance()->writeNodesWithNodeData(fname[part], nodes, nodedatanames, nodedata); + ////////////////////////////////////////////////////////////////////////// + //printf("\n vx max: %.1f at level: %d\n", vxmax, level); + //printf("\n counter: %d at level: %d\n", counter, level); + } + } + ////////////////////////////////////////////////////////////////////////// + + + + + + + ////////////////////////////////////////////////////////////////////////// + void writeUnstrucuredGridLTConc(Parameter* para, int level, vector<string >& fname) + { + vector< UbTupleFloat3 > nodes; + vector< UbTupleUInt8 > cells; + //vector< UbTupleUInt8 > cells2; + vector< string > nodedatanames; + nodedatanames.push_back("press"); + nodedatanames.push_back("rho"); + nodedatanames.push_back("vx1"); + nodedatanames.push_back("vx2"); + nodedatanames.push_back("vx3"); + nodedatanames.push_back("geo"); + nodedatanames.push_back("Conc"); + unsigned int number1,number2,number3,number4,number5,number6,number7,number8; + unsigned int dn1,dn2,dn3,dn4,dn5,dn6,dn7,dn8; + bool neighborsFluid; + double vxmax = 0; + unsigned int startpos = 0; + unsigned int endpos = 0; + unsigned int sizeOfNodes = 0; + vector< vector< double > > nodedata(nodedatanames.size()); + + //printf("\n test for if... \n"); + for (unsigned int part=0; part < fname.size(); part++) + { + vxmax = 0; + //printf("\n test in if I... \n"); + ////////////////////////////////////////////////////////////////////////// sizeOfNodes = FilePartCalculator::calculateNumberOfNodesInPart(para->getParH(level)->numberOfNodes); ////////////////////////////////////////////////////////////////////////// - startpos = FilePartCalculator::calculateStartingPostionOfPart(part); - endpos = startpos + sizeOfNodes; - ////////////////////////////////////////////////////////////////////////// - cells.clear(); - nodes.resize(sizeOfNodes); - nodedata[0].resize(sizeOfNodes); - nodedata[1].resize(sizeOfNodes); - nodedata[2].resize(sizeOfNodes); - nodedata[3].resize(sizeOfNodes); - nodedata[4].resize(sizeOfNodes); - nodedata[5].resize(sizeOfNodes); - nodedata[6].resize(sizeOfNodes); - ////////////////////////////////////////////////////////////////////////// - //printf("\n test in if II... \n"); - for (unsigned int pos=startpos;pos<endpos;pos++) - { - if (para->getParH(level)->typeOfGridNode[pos] == GEO_FLUID) - { - ////////////////////////////////////////////////////////////////////////// - double x1 = para->getParH(level)->coordinateX[pos]; - double x2 = para->getParH(level)->coordinateY[pos]; - double x3 = para->getParH(level)->coordinateZ[pos]; - ////////////////////////////////////////////////////////////////////////// - number1 = pos; - dn1 = pos - startpos; - neighborsFluid = true; - ////////////////////////////////////////////////////////////////////////// - nodes[dn1]=( makeUbTuple( (float)(x1 ),(float)(x2 ),(float)(x3 ) ) ); - nodedata[0][dn1] = (double)para->getParH(level)->pressure[pos] / (double)3.0 * (double)para->getDensityRatio() * (double)para->getVelocityRatio() * (double)para->getVelocityRatio(); - nodedata[1][dn1] = (double)para->getParH(level)->rho[pos] / (double)3.0 * (double)para->getDensityRatio() * (double)para->getVelocityRatio() * (double)para->getVelocityRatio(); - nodedata[2][dn1] = (double)para->getParH(level)->velocityX[pos] * (double)para->getVelocityRatio(); - nodedata[3][dn1] = (double)para->getParH(level)->velocityY[pos] * (double)para->getVelocityRatio(); - nodedata[4][dn1] = (double)para->getParH(level)->velocityZ[pos] * (double)para->getVelocityRatio(); - nodedata[5][dn1] = (double)para->getParH(level)->typeOfGridNode[pos]; - nodedata[6][dn1] = (double)para->getParH(level)->concentration[pos]; - ////////////////////////////////////////////////////////////////////////// - number2 = para->getParH(level)->neighborX[number1]; - number3 = para->getParH(level)->neighborY[number2]; - number4 = para->getParH(level)->neighborY[number1]; - number5 = para->getParH(level)->neighborZ[number1]; - number6 = para->getParH(level)->neighborZ[number2]; - number7 = para->getParH(level)->neighborZ[number3]; - number8 = para->getParH(level)->neighborZ[number4]; - ////////////////////////////////////////////////////////////////////////// - if (para->getParH(level)->typeOfGridNode[number2] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number3] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number4] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number5] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number6] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number7] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number8] != GEO_FLUID ) neighborsFluid=false; - ////////////////////////////////////////////////////////////////////////// - if (number2 > endpos || - number3 > endpos || - number4 > endpos || - number5 > endpos || - number6 > endpos || - number7 > endpos || - number8 > endpos ) neighborsFluid=false; - ////////////////////////////////////////////////////////////////////////// - dn2 = number2 - startpos; - dn3 = number3 - startpos; - dn4 = number4 - startpos; - dn5 = number5 - startpos; - dn6 = number6 - startpos; - dn7 = number7 - startpos; - dn8 = number8 - startpos; - ////////////////////////////////////////////////////////////////////////// - //if( std::fabs(nodedata[2][dn1]) > std::fabs(vxmax) ) vxmax = nodedata[2][dn1]; - ////////////////////////////////////////////////////////////////////////// - if (isPeriodicCell(para, level, number2, number1, number3, number5)) - continue; - ////////////////////////////////////////////////////////////////////////// - if (neighborsFluid) cells.push_back( makeUbTuple(dn1,dn2,dn3,dn4,dn5,dn6,dn7,dn8) ); - ////////////////////////////////////////////////////////////////////////// - } - } - WbWriterVtkXmlBinary::getInstance()->writeOctsWithNodeData(fname[part],nodes,cells,nodedatanames,nodedata); - ////////////////////////////////////////////////////////////////////////// - //printf("\n vx max: %.1f at level: %d\n", vxmax, level); - } - } - ////////////////////////////////////////////////////////////////////////// - - - - - - - - - - - - ////////////////////////////////////////////////////////////////////////// - void writeUnstrucuredGridBig(Parameter* para, int level, std::string& fname, std::string& fname2) - { - unsigned int limitOfNodes = 30000000; //27 Million - vector< UbTupleFloat3 > nodes; - vector< UbTupleUInt8 > cells; - vector< UbTupleUInt8 > cells2; - vector< string > nodedatanames; - nodedatanames.push_back("press"); - nodedatanames.push_back("rho"); - nodedatanames.push_back("vx1"); - nodedatanames.push_back("vx2"); - nodedatanames.push_back("vx3"); - nodedatanames.push_back("geo"); - unsigned int number1,number2,number3,number4,number5,number6,number7,number8; - unsigned int dn1,dn2,dn3,dn4,dn5,dn6,dn7,dn8; - bool neighborsFluid; - //double posmax = 0; - double vxmax = 0; - vector< vector< double > > nodedata(nodedatanames.size()); - - //printf("\n test for if... \n"); + startpos = FilePartCalculator::calculateStartingPostionOfPart(part); + endpos = startpos + sizeOfNodes; + ////////////////////////////////////////////////////////////////////////// + cells.clear(); + nodes.resize(sizeOfNodes); + nodedata[0].resize(sizeOfNodes); + nodedata[1].resize(sizeOfNodes); + nodedata[2].resize(sizeOfNodes); + nodedata[3].resize(sizeOfNodes); + nodedata[4].resize(sizeOfNodes); + nodedata[5].resize(sizeOfNodes); + nodedata[6].resize(sizeOfNodes); + ////////////////////////////////////////////////////////////////////////// + //printf("\n test in if II... \n"); + for (unsigned int pos=startpos;pos<endpos;pos++) + { + if (para->getParH(level)->typeOfGridNode[pos] == GEO_FLUID) + { + ////////////////////////////////////////////////////////////////////////// + double x1 = para->getParH(level)->coordinateX[pos]; + double x2 = para->getParH(level)->coordinateY[pos]; + double x3 = para->getParH(level)->coordinateZ[pos]; + ////////////////////////////////////////////////////////////////////////// + number1 = pos; + dn1 = pos - startpos; + neighborsFluid = true; + ////////////////////////////////////////////////////////////////////////// + nodes[dn1]=( makeUbTuple( (float)(x1 ),(float)(x2 ),(float)(x3 ) ) ); + nodedata[0][dn1] = (double)para->getParH(level)->pressure[pos] / (double)3.0 * (double)para->getDensityRatio() * (double)para->getVelocityRatio() * (double)para->getVelocityRatio(); + nodedata[1][dn1] = (double)para->getParH(level)->rho[pos] / (double)3.0 * (double)para->getDensityRatio() * (double)para->getVelocityRatio() * (double)para->getVelocityRatio(); + nodedata[2][dn1] = (double)para->getParH(level)->velocityX[pos] * (double)para->getVelocityRatio(); + nodedata[3][dn1] = (double)para->getParH(level)->velocityY[pos] * (double)para->getVelocityRatio(); + nodedata[4][dn1] = (double)para->getParH(level)->velocityZ[pos] * (double)para->getVelocityRatio(); + nodedata[5][dn1] = (double)para->getParH(level)->typeOfGridNode[pos]; + nodedata[6][dn1] = (double)para->getParH(level)->concentration[pos]; + ////////////////////////////////////////////////////////////////////////// + number2 = para->getParH(level)->neighborX[number1]; + number3 = para->getParH(level)->neighborY[number2]; + number4 = para->getParH(level)->neighborY[number1]; + number5 = para->getParH(level)->neighborZ[number1]; + number6 = para->getParH(level)->neighborZ[number2]; + number7 = para->getParH(level)->neighborZ[number3]; + number8 = para->getParH(level)->neighborZ[number4]; + ////////////////////////////////////////////////////////////////////////// + if (para->getParH(level)->typeOfGridNode[number2] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number3] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number4] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number5] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number6] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number7] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number8] != GEO_FLUID ) neighborsFluid=false; + ////////////////////////////////////////////////////////////////////////// + if (number2 > endpos || + number3 > endpos || + number4 > endpos || + number5 > endpos || + number6 > endpos || + number7 > endpos || + number8 > endpos ) neighborsFluid=false; + ////////////////////////////////////////////////////////////////////////// + dn2 = number2 - startpos; + dn3 = number3 - startpos; + dn4 = number4 - startpos; + dn5 = number5 - startpos; + dn6 = number6 - startpos; + dn7 = number7 - startpos; + dn8 = number8 - startpos; + ////////////////////////////////////////////////////////////////////////// + //if( std::fabs(nodedata[2][dn1]) > std::fabs(vxmax) ) vxmax = nodedata[2][dn1]; + ////////////////////////////////////////////////////////////////////////// + if (isPeriodicCell(para, level, number2, number1, number3, number5)) + continue; + ////////////////////////////////////////////////////////////////////////// + if (neighborsFluid) cells.push_back( makeUbTuple(dn1,dn2,dn3,dn4,dn5,dn6,dn7,dn8) ); + ////////////////////////////////////////////////////////////////////////// + } + } + WbWriterVtkXmlBinary::getInstance()->writeOctsWithNodeData(fname[part],nodes,cells,nodedatanames,nodedata); + ////////////////////////////////////////////////////////////////////////// + //printf("\n vx max: %.1f at level: %d\n", vxmax, level); + } + } + ////////////////////////////////////////////////////////////////////////// + + + + + + + + + + + + ////////////////////////////////////////////////////////////////////////// + void writeUnstrucuredGridBig(Parameter* para, int level, std::string& fname, std::string& fname2) + { + unsigned int limitOfNodes = 30000000; //27 Million + vector< UbTupleFloat3 > nodes; + vector< UbTupleUInt8 > cells; + vector< UbTupleUInt8 > cells2; + vector< string > nodedatanames; + nodedatanames.push_back("press"); + nodedatanames.push_back("rho"); + nodedatanames.push_back("vx1"); + nodedatanames.push_back("vx2"); + nodedatanames.push_back("vx3"); + nodedatanames.push_back("geo"); + unsigned int number1,number2,number3,number4,number5,number6,number7,number8; + unsigned int dn1,dn2,dn3,dn4,dn5,dn6,dn7,dn8; + bool neighborsFluid; + //double posmax = 0; + double vxmax = 0; + vector< vector< double > > nodedata(nodedatanames.size()); + + //printf("\n test for if... \n"); if ((uint)para->getParH(level)->numberOfNodes > limitOfNodes) - { - //printf("\n test in if I... \n"); + { + //printf("\n test in if I... \n"); unsigned int restOfNodes = (uint)para->getParH(level)->numberOfNodes - limitOfNodes; - ////////////////////////////////////////////////////////////////////////// - //PART I - nodes.resize(limitOfNodes); - nodedata[0].resize(limitOfNodes); - nodedata[1].resize(limitOfNodes); - nodedata[2].resize(limitOfNodes); - nodedata[3].resize(limitOfNodes); - nodedata[4].resize(limitOfNodes); - nodedata[5].resize(limitOfNodes); - - //printf("\n test in if II... \n"); - for (unsigned int pos=0;pos<limitOfNodes;pos++) - { - if (para->getParH(level)->typeOfGridNode[pos] == GEO_FLUID) - { - ////////////////////////////////////////////////////////////////////////// - double x1 = para->getParH(level)->coordinateX[pos]; - double x2 = para->getParH(level)->coordinateY[pos]; - double x3 = para->getParH(level)->coordinateZ[pos]; - ////////////////////////////////////////////////////////////////////////// - number1 = pos; - neighborsFluid = true; - ////////////////////////////////////////////////////////////////////////// - nodes[number1]=( makeUbTuple( (float)(x1 ),(float)(x2 ),(float)(x3 ) ) ); - nodedata[0][number1] = (double)para->getParH(level)->pressure[pos] / (double)3.0 * (double)para->getDensityRatio() * (double)para->getVelocityRatio() * (double)para->getVelocityRatio(); - nodedata[1][number1] = (double)para->getParH(level)->rho[pos] / (double)3.0 * (double)para->getDensityRatio() * (double)para->getVelocityRatio() * (double)para->getVelocityRatio(); - nodedata[2][number1] = (double)para->getParH(level)->velocityX[pos] * (double)para->getVelocityRatio(); - nodedata[3][number1] = (double)para->getParH(level)->velocityY[pos] * (double)para->getVelocityRatio(); - nodedata[4][number1] = (double)para->getParH(level)->velocityZ[pos] * (double)para->getVelocityRatio(); - nodedata[5][number1] = (double)para->getParH(level)->typeOfGridNode[pos]; - ////////////////////////////////////////////////////////////////////////// - number2 = para->getParH(level)->neighborX[number1]; - number3 = para->getParH(level)->neighborY[number2]; - number4 = para->getParH(level)->neighborY[number1]; - number5 = para->getParH(level)->neighborZ[number1]; - number6 = para->getParH(level)->neighborZ[number2]; - number7 = para->getParH(level)->neighborZ[number3]; - number8 = para->getParH(level)->neighborZ[number4]; - ////////////////////////////////////////////////////////////////////////// - if (para->getParH(level)->typeOfGridNode[number2] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number3] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number4] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number5] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number6] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number7] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number8] != GEO_FLUID ) neighborsFluid=false; - ////////////////////////////////////////////////////////////////////////// - if (number2 > limitOfNodes || - number3 > limitOfNodes || - number4 > limitOfNodes || - number5 > limitOfNodes || - number6 > limitOfNodes || - number7 > limitOfNodes || - number8 > limitOfNodes ) neighborsFluid=false; - ////////////////////////////////////////////////////////////////////////// - //if (level == 0 && - // (number2 <= number1 || - // number3 <= number1 || - // number4 <= number1 || - // number5 <= number1 || - // number6 <= number1 || - // number7 <= number1 || - // number8 <= number1) ) neighborsFluid=false; - ////////////////////////////////////////////////////////////////////////// - if( std::fabs(nodedata[2][number1]) > std::fabs(vxmax) ) vxmax = nodedata[2][number1]; - ////////////////////////////////////////////////////////////////////////// - if (neighborsFluid==true) cells.push_back( makeUbTuple(number1,number2,number3,number4,number5,number6,number7,number8) ); - ////////////////////////////////////////////////////////////////////////// - } - } - WbWriterVtkXmlBinary::getInstance()->writeOctsWithNodeData(fname,nodes,cells,nodedatanames,nodedata); - - //printf("\n test in if III... \n"); - ////////////////////////////////////////////////////////////////////////// - //PART II - nodes.resize(restOfNodes); - nodedata[0].resize(restOfNodes); - nodedata[1].resize(restOfNodes); - nodedata[2].resize(restOfNodes); - nodedata[3].resize(restOfNodes); - nodedata[4].resize(restOfNodes); - nodedata[5].resize(restOfNodes); - //printf("\n test in if IV... \n"); - - for (size_t pos = limitOfNodes; pos < para->getParH(level)->numberOfNodes; pos++) - { - if (para->getParH(level)->typeOfGridNode[pos] == GEO_FLUID) - { - ////////////////////////////////////////////////////////////////////////// - double x1 = para->getParH(level)->coordinateX[pos]; - double x2 = para->getParH(level)->coordinateY[pos]; - double x3 = para->getParH(level)->coordinateZ[pos]; - ////////////////////////////////////////////////////////////////////////// - number1 = pos; - dn1 = pos - limitOfNodes; - neighborsFluid = true; - ////////////////////////////////////////////////////////////////////////// - nodes[dn1]=( makeUbTuple( (float)(x1 ),(float)(x2 ),(float)(x3 ) ) ); - nodedata[0][dn1] = (double)para->getParH(level)->pressure[pos] / (double)3.0 * (double)para->getDensityRatio() * (double)para->getVelocityRatio() * (double)para->getVelocityRatio(); - nodedata[1][dn1] = (double)para->getParH(level)->rho[pos] / (double)3.0 * (double)para->getDensityRatio() * (double)para->getVelocityRatio() * (double)para->getVelocityRatio(); - nodedata[2][dn1] = (double)para->getParH(level)->velocityX[pos] * (double)para->getVelocityRatio(); - nodedata[3][dn1] = (double)para->getParH(level)->velocityY[pos] * (double)para->getVelocityRatio(); - nodedata[4][dn1] = (double)para->getParH(level)->velocityZ[pos] * (double)para->getVelocityRatio(); - nodedata[5][dn1] = (double)para->getParH(level)->typeOfGridNode[pos]; - ////////////////////////////////////////////////////////////////////////// - number2 = para->getParH(level)->neighborX[number1]; - number3 = para->getParH(level)->neighborY[number2]; - number4 = para->getParH(level)->neighborY[number1]; - number5 = para->getParH(level)->neighborZ[number1]; - number6 = para->getParH(level)->neighborZ[number2]; - number7 = para->getParH(level)->neighborZ[number3]; - number8 = para->getParH(level)->neighborZ[number4]; - ////////////////////////////////////////////////////////////////////////// - if (para->getParH(level)->typeOfGridNode[number2] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number3] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number4] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number5] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number6] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number7] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number8] != GEO_FLUID ) neighborsFluid=false; - ////////////////////////////////////////////////////////////////////////// - dn2 = number2 - limitOfNodes; - dn3 = number3 - limitOfNodes; - dn4 = number4 - limitOfNodes; - dn5 = number5 - limitOfNodes; - dn6 = number6 - limitOfNodes; - dn7 = number7 - limitOfNodes; - dn8 = number8 - limitOfNodes; - ////////////////////////////////////////////////////////////////////////// - if( std::fabs(nodedata[2][dn1]) > std::fabs(vxmax) ) vxmax = nodedata[2][dn1]; - ////////////////////////////////////////////////////////////////////////// - if (neighborsFluid==true) cells2.push_back( makeUbTuple(dn1,dn2,dn3,dn4,dn5,dn6,dn7,dn8) ); - ////////////////////////////////////////////////////////////////////////// - } - } - //printf("\n test in if V... \n"); - //WbWriterVtkXmlBinary::getInstance()->writeOctsWithNodeDataMS(fname,nodes,cells2,nodedatanames,nodedata); - WbWriterVtkXmlBinary::getInstance()->writeOctsWithNodeData(fname2,nodes,cells2,nodedatanames,nodedata); - //printf("\n test in if VI... \n"); - ////////////////////////////////////////////////////////////////////////// - //printf("pos max: %.1f", posmax); - printf("\n vx max: %.1f at level: %d\n", vxmax, level); - } - else - { - //printf("\n test in else I... \n"); - nodes.resize(para->getParH(level)->numberOfNodes); - nodedata[0].resize(para->getParH(level)->numberOfNodes); - nodedata[1].resize(para->getParH(level)->numberOfNodes); - nodedata[2].resize(para->getParH(level)->numberOfNodes); - nodedata[3].resize(para->getParH(level)->numberOfNodes); - nodedata[4].resize(para->getParH(level)->numberOfNodes); - nodedata[5].resize(para->getParH(level)->numberOfNodes); - - //printf("\n test in else II... \n"); - for (size_t pos = 0; pos < para->getParH(level)->numberOfNodes; pos++) - { - if (para->getParH(level)->typeOfGridNode[pos] == GEO_FLUID) - { - //printf("\n test in else-for I pos = %d \n", pos); - ////////////////////////////////////////////////////////////////////////// - double x1 = para->getParH(level)->coordinateX[pos]; - double x2 = para->getParH(level)->coordinateY[pos]; - double x3 = para->getParH(level)->coordinateZ[pos]; - ////////////////////////////////////////////////////////////////////////// - number1 = pos; - neighborsFluid = true; - ////////////////////////////////////////////////////////////////////////// - //printf("\n test in else-for II pos = %d \n", pos); - nodes[number1]=( makeUbTuple( (float)(x1 ),(float)(x2 ),(float)(x3 ) ) ); - nodedata[0][number1] = (double)para->getParH(level)->pressure[pos] / (double)3.0 * (double)para->getDensityRatio() * (double)para->getVelocityRatio() * (double)para->getVelocityRatio(); - nodedata[1][number1] = (double)para->getParH(level)->rho[pos] / (double)3.0 * (double)para->getDensityRatio() * (double)para->getVelocityRatio() * (double)para->getVelocityRatio(); - nodedata[2][number1] = (double)para->getParH(level)->velocityX[pos] * (double)para->getVelocityRatio(); - nodedata[3][number1] = (double)para->getParH(level)->velocityY[pos] * (double)para->getVelocityRatio(); - nodedata[4][number1] = (double)para->getParH(level)->velocityZ[pos] * (double)para->getVelocityRatio(); - nodedata[5][number1] = (double)para->getParH(level)->typeOfGridNode[pos]; - ////////////////////////////////////////////////////////////////////////// - //printf("\n test in else-for III pos = %d \n", pos); - number2 = para->getParH(level)->neighborX[number1]; - number3 = para->getParH(level)->neighborY[number2]; - number4 = para->getParH(level)->neighborY[number1]; - number5 = para->getParH(level)->neighborZ[number1]; - number6 = para->getParH(level)->neighborZ[number2]; - number7 = para->getParH(level)->neighborZ[number3]; - number8 = para->getParH(level)->neighborZ[number4]; - ////////////////////////////////////////////////////////////////////////// - //printf("\n test in else-for VI pos = %d \n", pos); - if (para->getParH(level)->typeOfGridNode[number2] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number3] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number4] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number5] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number6] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number7] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number8] != GEO_FLUID ) neighborsFluid=false; - ////////////////////////////////////////////////////////////////////////// - //if (level == 0 && - // (number2 <= number1 || - // number3 <= number1 || - // number4 <= number1 || - // number5 <= number1 || - // number6 <= number1 || - // number7 <= number1 || - // number8 <= number1) ) neighborsFluid=false; - ////////////////////////////////////////////////////////////////////////// - if( std::fabs(nodedata[2][number1]) > std::fabs(vxmax) ) vxmax = nodedata[2][number1]; - ////////////////////////////////////////////////////////////////////////// - //printf("\n test in else-for V pos = %d \n", pos); - if (neighborsFluid==true) cells.push_back( makeUbTuple(number1,number2,number3,number4,number5,number6,number7,number8) ); - ////////////////////////////////////////////////////////////////////////// - } - } - //printf("\n test in else III... \n"); - //WbWriterVtkXmlBinary::getInstance()->writeOctsWithNodeDataMS(fname,nodes,cells,nodedatanames,nodedata); - WbWriterVtkXmlBinary::getInstance()->writeOctsWithNodeData(fname,nodes,cells,nodedatanames,nodedata); - //WbWriterVtkXmlBinary::getInstance()->writeNodes(filenameVec2,nodes); - //printf("\n test in else IV... \n"); - ////////////////////////////////////////////////////////////////////////// - //printf("pos max: %.1f", posmax); - printf("\n vx max: %.1f at level: %d\n", vxmax, level); - } - } - ////////////////////////////////////////////////////////////////////////// - - - - - - - - - - - - ////////////////////////////////////////////////////////////////////////// - void writeUnstrucuredGridEff(Parameter* para, int level, std::string& fname, std::string& filenameVec2) - { - vector< UbTupleFloat3 > nodes; - vector< UbTupleUInt8 > cells; - vector< string > nodedatanames; - nodedatanames.push_back("press"); - nodedatanames.push_back("rho"); - nodedatanames.push_back("vx1"); - nodedatanames.push_back("vx2"); - nodedatanames.push_back("vx3"); - nodedatanames.push_back("geo"); - unsigned int number1,number2,number3,number4,number5,number6,number7,number8; - bool neighborsFluid; - double vxmax = 0; - vector<vector<double>> nodedata(nodedatanames.size()); - - nodes.resize(para->getParH(level)->numberOfNodes); - nodedata[0].resize(para->getParH(level)->numberOfNodes); - nodedata[1].resize(para->getParH(level)->numberOfNodes); - nodedata[2].resize(para->getParH(level)->numberOfNodes); - nodedata[3].resize(para->getParH(level)->numberOfNodes); - nodedata[4].resize(para->getParH(level)->numberOfNodes); - nodedata[5].resize(para->getParH(level)->numberOfNodes); - - for (size_t pos = 0; pos < para->getParH(level)->numberOfNodes; pos++) - { - if (para->getParH(level)->typeOfGridNode[pos] == GEO_FLUID) - { - ////////////////////////////////////////////////////////////////////////// - double x1 = para->getParH(level)->coordinateX[pos]; - double x2 = para->getParH(level)->coordinateY[pos]; - double x3 = para->getParH(level)->coordinateZ[pos]; - double x1P = para->getParH(level)->coordinateX[para->getParH(level)->neighborX[pos]]; - double x2P = para->getParH(level)->coordinateY[para->getParH(level)->neighborY[pos]]; - double x3P = para->getParH(level)->coordinateZ[para->getParH(level)->neighborZ[pos]]; - ////////////////////////////////////////////////////////////////////////// - number1 = pos; - neighborsFluid = true; - ////////////////////////////////////////////////////////////////////////// - nodes[number1]=( makeUbTuple( (float)(x1 ),(float)(x2 ),(float)(x3 ) ) ); - nodedata[0][number1] = (double)pos; - //nodedata[0][number1] = (double)para->getParH(level)->pressure[pos] / (double)3.0 * (double)para->getDensityRatio() * (double)para->getVelocityRatio() * (double)para->getVelocityRatio(); - nodedata[1][number1] = (double)para->getParH(level)->rho[pos] / (double)3.0 * (double)para->getDensityRatio() * (double)para->getVelocityRatio() * (double)para->getVelocityRatio(); - nodedata[2][number1] = (double)para->getParH(level)->velocityX[pos] * (double)para->getVelocityRatio(); - nodedata[3][number1] = (double)para->getParH(level)->velocityY[pos] * (double)para->getVelocityRatio(); - nodedata[4][number1] = (double)para->getParH(level)->velocityZ[pos] * (double)para->getVelocityRatio(); - nodedata[5][number1] = (double)para->getParH(level)->typeOfGridNode[pos]; - ////////////////////////////////////////////////////////////////////////// - number2 = para->getParH(level)->neighborX[number1]; - number3 = para->getParH(level)->neighborY[number2]; - number4 = para->getParH(level)->neighborY[number1]; - number5 = para->getParH(level)->neighborZ[number1]; - number6 = para->getParH(level)->neighborZ[number2]; - number7 = para->getParH(level)->neighborZ[number3]; - number8 = para->getParH(level)->neighborZ[number4]; - ////////////////////////////////////////////////////////////////////////// - if (para->getParH(level)->typeOfGridNode[number2] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number3] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number4] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number5] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number6] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number7] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number8] != GEO_FLUID ) neighborsFluid=false; - ////////////////////////////////////////////////////////////////////////// - //if (level == 0 && - // (number2 <= number1 || - // number3 <= number1 || - // number4 <= number1 || - // number5 <= number1 || - // number6 <= number1 || - // number7 <= number1 || - // number8 <= number1) ) neighborsFluid=false; - ////////////////////////////////////////////////////////////////////////// - if (neighborsFluid==true) cells.push_back( makeUbTuple(number1,number2,number3,number4,number5,number6,number7,number8) ); - ////////////////////////////////////////////////////////////////////////// - } - if( std::fabs(nodedata[2][number1]) > std::fabs(vxmax) ) vxmax = nodedata[2][number1]; - } - WbWriterVtkXmlBinary::getInstance()->writeOctsWithNodeData(fname,nodes,cells,nodedatanames,nodedata); - printf("\n vx max: %.1f at level: %d\n", vxmax, level); - } - - - - - ////////////////////////////////////////////////////////////////////////// - void writeUnstrucuredGridAsciiEff(Parameter* para, int level, std::string& fname, std::string& filenameVec2) - { - vector< UbTupleFloat3 > nodes; - vector< UbTupleUInt8 > cells; - vector< string > nodedatanames; - nodedatanames.push_back("press"); - nodedatanames.push_back("rho"); - nodedatanames.push_back("vx1"); - nodedatanames.push_back("vx2"); - nodedatanames.push_back("vx3"); - nodedatanames.push_back("geo"); - unsigned int number1,number2,number3,number4,number5,number6,number7,number8; - bool neighborsFluid; - double posmax = 0; - vector< vector< double > > nodedata(nodedatanames.size()); - - nodes.resize(para->getParH(level)->numberOfNodes); - nodedata[0].resize(para->getParH(level)->numberOfNodes); - nodedata[1].resize(para->getParH(level)->numberOfNodes); - nodedata[2].resize(para->getParH(level)->numberOfNodes); - nodedata[3].resize(para->getParH(level)->numberOfNodes); - nodedata[4].resize(para->getParH(level)->numberOfNodes); - nodedata[5].resize(para->getParH(level)->numberOfNodes); - - for (size_t pos = 0; pos < para->getParH(level)->numberOfNodes; pos++) - { - if (para->getParH(level)->typeOfGridNode[pos] == GEO_FLUID) - { - ////////////////////////////////////////////////////////////////////////// - double x1 = para->getParH(level)->coordinateX[pos]; - double x2 = para->getParH(level)->coordinateY[pos]; - double x3 = para->getParH(level)->coordinateZ[pos]; - double x1P = para->getParH(level)->coordinateX[para->getParH(level)->neighborX[pos]]; - double x2P = para->getParH(level)->coordinateY[para->getParH(level)->neighborY[pos]]; - double x3P = para->getParH(level)->coordinateZ[para->getParH(level)->neighborZ[pos]]; - ////////////////////////////////////////////////////////////////////////// - number1 = pos; - neighborsFluid = true; - ////////////////////////////////////////////////////////////////////////// - nodes[number1]=( makeUbTuple( (float)(x1 ),(float)(x2 ),(float)(x3 ) ) ); - nodedata[0][number1] = (double)pos; - //nodedata[0][number1] = (double)para->getParH(level)->pressure[pos] / (double)3.0 * (double)para->getDensityRatio() * (double)para->getVelocityRatio() * (double)para->getVelocityRatio(); - nodedata[1][number1] = (double)para->getParH(level)->rho[pos] / (double)3.0 * (double)para->getDensityRatio() * (double)para->getVelocityRatio() * (double)para->getVelocityRatio(); - nodedata[2][number1] = (double)para->getParH(level)->velocityX[pos] * (double)para->getVelocityRatio(); - nodedata[3][number1] = (double)para->getParH(level)->velocityY[pos] * (double)para->getVelocityRatio(); - nodedata[4][number1] = (double)para->getParH(level)->velocityZ[pos] * (double)para->getVelocityRatio(); - nodedata[5][number1] = (double)para->getParH(level)->typeOfGridNode[pos]; - ////////////////////////////////////////////////////////////////////////// - number2 = para->getParH(level)->neighborX[number1]; - number3 = para->getParH(level)->neighborY[number2]; - number4 = para->getParH(level)->neighborY[number1]; - number5 = para->getParH(level)->neighborZ[number1]; - number6 = para->getParH(level)->neighborZ[number2]; - number7 = para->getParH(level)->neighborZ[number3]; - number8 = para->getParH(level)->neighborZ[number4]; - ////////////////////////////////////////////////////////////////////////// - if (para->getParH(level)->typeOfGridNode[number2] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number3] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number4] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number5] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number6] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number7] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number8] != GEO_FLUID ) neighborsFluid=false; - ////////////////////////////////////////////////////////////////////////// - //if (level == 0 && - // (number2 <= number1 || - // number3 <= number1 || - // number4 <= number1 || - // number5 <= number1 || - // number6 <= number1 || - // number7 <= number1 || - // number8 <= number1) ) neighborsFluid=false; - ////////////////////////////////////////////////////////////////////////// - if (neighborsFluid==true) cells.push_back( makeUbTuple(number1,number2,number3,number4,number5,number6,number7,number8) ); - ////////////////////////////////////////////////////////////////////////// - } - if( std::fabs((double)pos) > std::fabs(posmax) ) posmax = (double)pos; - } - WbWriterVtkXmlASCII::getInstance()->writeOctsWithNodeData(fname,nodes,cells,nodedatanames,nodedata); - //WbWriterVtkXmlBinary::getInstance()->writeOctsWithNodeData(fname,nodes,cells,nodedatanames,nodedata); - ////WbWriterVtkXmlBinary::getInstance()->writeNodes(filenameVec2,nodes); - printf("\ncells: %.1f \n", (double)cells.size()); - printf("nodes: %.1f \n", (double)nodes.size()); - printf("pos max: %.1f \n", posmax); - } - ////////////////////////////////////////////////////////////////////////// - - - - - - - - - ////////////////////////////////////////////////////////////////////////// - void writeUnstrucuredGridMedianLT(Parameter* para, int level, vector<string >& fname) - { - vector< UbTupleFloat3 > nodes; - vector< UbTupleUInt8 > cells; - //vector< UbTupleUInt8 > cells2; - vector< string > nodedatanames; - nodedatanames.push_back("pressMed"); - nodedatanames.push_back("rhoMed"); - nodedatanames.push_back("vx1Med"); - nodedatanames.push_back("vx2Med"); - nodedatanames.push_back("vx3Med"); - nodedatanames.push_back("geo"); - unsigned int number1,number2,number3,number4,number5,number6,number7,number8; - unsigned int dn1,dn2,dn3,dn4,dn5,dn6,dn7,dn8; - bool neighborsFluid; - double vxmax = 0; - unsigned int startpos = 0; - unsigned int endpos = 0; - unsigned int sizeOfNodes = 0; - vector< vector< double > > nodedata(nodedatanames.size()); - - //printf("\n test for if... \n"); - for (unsigned int part=0; part < fname.size(); part++) - { - vxmax = 0; - //printf("\n test in if I... \n"); - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// + //PART I + nodes.resize(limitOfNodes); + nodedata[0].resize(limitOfNodes); + nodedata[1].resize(limitOfNodes); + nodedata[2].resize(limitOfNodes); + nodedata[3].resize(limitOfNodes); + nodedata[4].resize(limitOfNodes); + nodedata[5].resize(limitOfNodes); + + //printf("\n test in if II... \n"); + for (unsigned int pos=0;pos<limitOfNodes;pos++) + { + if (para->getParH(level)->typeOfGridNode[pos] == GEO_FLUID) + { + ////////////////////////////////////////////////////////////////////////// + double x1 = para->getParH(level)->coordinateX[pos]; + double x2 = para->getParH(level)->coordinateY[pos]; + double x3 = para->getParH(level)->coordinateZ[pos]; + ////////////////////////////////////////////////////////////////////////// + number1 = pos; + neighborsFluid = true; + ////////////////////////////////////////////////////////////////////////// + nodes[number1]=( makeUbTuple( (float)(x1 ),(float)(x2 ),(float)(x3 ) ) ); + nodedata[0][number1] = (double)para->getParH(level)->pressure[pos] / (double)3.0 * (double)para->getDensityRatio() * (double)para->getVelocityRatio() * (double)para->getVelocityRatio(); + nodedata[1][number1] = (double)para->getParH(level)->rho[pos] / (double)3.0 * (double)para->getDensityRatio() * (double)para->getVelocityRatio() * (double)para->getVelocityRatio(); + nodedata[2][number1] = (double)para->getParH(level)->velocityX[pos] * (double)para->getVelocityRatio(); + nodedata[3][number1] = (double)para->getParH(level)->velocityY[pos] * (double)para->getVelocityRatio(); + nodedata[4][number1] = (double)para->getParH(level)->velocityZ[pos] * (double)para->getVelocityRatio(); + nodedata[5][number1] = (double)para->getParH(level)->typeOfGridNode[pos]; + ////////////////////////////////////////////////////////////////////////// + number2 = para->getParH(level)->neighborX[number1]; + number3 = para->getParH(level)->neighborY[number2]; + number4 = para->getParH(level)->neighborY[number1]; + number5 = para->getParH(level)->neighborZ[number1]; + number6 = para->getParH(level)->neighborZ[number2]; + number7 = para->getParH(level)->neighborZ[number3]; + number8 = para->getParH(level)->neighborZ[number4]; + ////////////////////////////////////////////////////////////////////////// + if (para->getParH(level)->typeOfGridNode[number2] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number3] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number4] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number5] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number6] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number7] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number8] != GEO_FLUID ) neighborsFluid=false; + ////////////////////////////////////////////////////////////////////////// + if (number2 > limitOfNodes || + number3 > limitOfNodes || + number4 > limitOfNodes || + number5 > limitOfNodes || + number6 > limitOfNodes || + number7 > limitOfNodes || + number8 > limitOfNodes ) neighborsFluid=false; + ////////////////////////////////////////////////////////////////////////// + //if (level == 0 && + // (number2 <= number1 || + // number3 <= number1 || + // number4 <= number1 || + // number5 <= number1 || + // number6 <= number1 || + // number7 <= number1 || + // number8 <= number1) ) neighborsFluid=false; + ////////////////////////////////////////////////////////////////////////// + if( std::fabs(nodedata[2][number1]) > std::fabs(vxmax) ) vxmax = nodedata[2][number1]; + ////////////////////////////////////////////////////////////////////////// + if (neighborsFluid==true) cells.push_back( makeUbTuple(number1,number2,number3,number4,number5,number6,number7,number8) ); + ////////////////////////////////////////////////////////////////////////// + } + } + WbWriterVtkXmlBinary::getInstance()->writeOctsWithNodeData(fname,nodes,cells,nodedatanames,nodedata); + + //printf("\n test in if III... \n"); + ////////////////////////////////////////////////////////////////////////// + //PART II + nodes.resize(restOfNodes); + nodedata[0].resize(restOfNodes); + nodedata[1].resize(restOfNodes); + nodedata[2].resize(restOfNodes); + nodedata[3].resize(restOfNodes); + nodedata[4].resize(restOfNodes); + nodedata[5].resize(restOfNodes); + //printf("\n test in if IV... \n"); + + for (size_t pos = limitOfNodes; pos < para->getParH(level)->numberOfNodes; pos++) + { + if (para->getParH(level)->typeOfGridNode[pos] == GEO_FLUID) + { + ////////////////////////////////////////////////////////////////////////// + double x1 = para->getParH(level)->coordinateX[pos]; + double x2 = para->getParH(level)->coordinateY[pos]; + double x3 = para->getParH(level)->coordinateZ[pos]; + ////////////////////////////////////////////////////////////////////////// + number1 = pos; + dn1 = pos - limitOfNodes; + neighborsFluid = true; + ////////////////////////////////////////////////////////////////////////// + nodes[dn1]=( makeUbTuple( (float)(x1 ),(float)(x2 ),(float)(x3 ) ) ); + nodedata[0][dn1] = (double)para->getParH(level)->pressure[pos] / (double)3.0 * (double)para->getDensityRatio() * (double)para->getVelocityRatio() * (double)para->getVelocityRatio(); + nodedata[1][dn1] = (double)para->getParH(level)->rho[pos] / (double)3.0 * (double)para->getDensityRatio() * (double)para->getVelocityRatio() * (double)para->getVelocityRatio(); + nodedata[2][dn1] = (double)para->getParH(level)->velocityX[pos] * (double)para->getVelocityRatio(); + nodedata[3][dn1] = (double)para->getParH(level)->velocityY[pos] * (double)para->getVelocityRatio(); + nodedata[4][dn1] = (double)para->getParH(level)->velocityZ[pos] * (double)para->getVelocityRatio(); + nodedata[5][dn1] = (double)para->getParH(level)->typeOfGridNode[pos]; + ////////////////////////////////////////////////////////////////////////// + number2 = para->getParH(level)->neighborX[number1]; + number3 = para->getParH(level)->neighborY[number2]; + number4 = para->getParH(level)->neighborY[number1]; + number5 = para->getParH(level)->neighborZ[number1]; + number6 = para->getParH(level)->neighborZ[number2]; + number7 = para->getParH(level)->neighborZ[number3]; + number8 = para->getParH(level)->neighborZ[number4]; + ////////////////////////////////////////////////////////////////////////// + if (para->getParH(level)->typeOfGridNode[number2] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number3] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number4] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number5] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number6] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number7] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number8] != GEO_FLUID ) neighborsFluid=false; + ////////////////////////////////////////////////////////////////////////// + dn2 = number2 - limitOfNodes; + dn3 = number3 - limitOfNodes; + dn4 = number4 - limitOfNodes; + dn5 = number5 - limitOfNodes; + dn6 = number6 - limitOfNodes; + dn7 = number7 - limitOfNodes; + dn8 = number8 - limitOfNodes; + ////////////////////////////////////////////////////////////////////////// + if( std::fabs(nodedata[2][dn1]) > std::fabs(vxmax) ) vxmax = nodedata[2][dn1]; + ////////////////////////////////////////////////////////////////////////// + if (neighborsFluid==true) cells2.push_back( makeUbTuple(dn1,dn2,dn3,dn4,dn5,dn6,dn7,dn8) ); + ////////////////////////////////////////////////////////////////////////// + } + } + //printf("\n test in if V... \n"); + //WbWriterVtkXmlBinary::getInstance()->writeOctsWithNodeDataMS(fname,nodes,cells2,nodedatanames,nodedata); + WbWriterVtkXmlBinary::getInstance()->writeOctsWithNodeData(fname2,nodes,cells2,nodedatanames,nodedata); + //printf("\n test in if VI... \n"); + ////////////////////////////////////////////////////////////////////////// + //printf("pos max: %.1f", posmax); + printf("\n vx max: %.1f at level: %d\n", vxmax, level); + } + else + { + //printf("\n test in else I... \n"); + nodes.resize(para->getParH(level)->numberOfNodes); + nodedata[0].resize(para->getParH(level)->numberOfNodes); + nodedata[1].resize(para->getParH(level)->numberOfNodes); + nodedata[2].resize(para->getParH(level)->numberOfNodes); + nodedata[3].resize(para->getParH(level)->numberOfNodes); + nodedata[4].resize(para->getParH(level)->numberOfNodes); + nodedata[5].resize(para->getParH(level)->numberOfNodes); + + //printf("\n test in else II... \n"); + for (size_t pos = 0; pos < para->getParH(level)->numberOfNodes; pos++) + { + if (para->getParH(level)->typeOfGridNode[pos] == GEO_FLUID) + { + //printf("\n test in else-for I pos = %d \n", pos); + ////////////////////////////////////////////////////////////////////////// + double x1 = para->getParH(level)->coordinateX[pos]; + double x2 = para->getParH(level)->coordinateY[pos]; + double x3 = para->getParH(level)->coordinateZ[pos]; + ////////////////////////////////////////////////////////////////////////// + number1 = pos; + neighborsFluid = true; + ////////////////////////////////////////////////////////////////////////// + //printf("\n test in else-for II pos = %d \n", pos); + nodes[number1]=( makeUbTuple( (float)(x1 ),(float)(x2 ),(float)(x3 ) ) ); + nodedata[0][number1] = (double)para->getParH(level)->pressure[pos] / (double)3.0 * (double)para->getDensityRatio() * (double)para->getVelocityRatio() * (double)para->getVelocityRatio(); + nodedata[1][number1] = (double)para->getParH(level)->rho[pos] / (double)3.0 * (double)para->getDensityRatio() * (double)para->getVelocityRatio() * (double)para->getVelocityRatio(); + nodedata[2][number1] = (double)para->getParH(level)->velocityX[pos] * (double)para->getVelocityRatio(); + nodedata[3][number1] = (double)para->getParH(level)->velocityY[pos] * (double)para->getVelocityRatio(); + nodedata[4][number1] = (double)para->getParH(level)->velocityZ[pos] * (double)para->getVelocityRatio(); + nodedata[5][number1] = (double)para->getParH(level)->typeOfGridNode[pos]; + ////////////////////////////////////////////////////////////////////////// + //printf("\n test in else-for III pos = %d \n", pos); + number2 = para->getParH(level)->neighborX[number1]; + number3 = para->getParH(level)->neighborY[number2]; + number4 = para->getParH(level)->neighborY[number1]; + number5 = para->getParH(level)->neighborZ[number1]; + number6 = para->getParH(level)->neighborZ[number2]; + number7 = para->getParH(level)->neighborZ[number3]; + number8 = para->getParH(level)->neighborZ[number4]; + ////////////////////////////////////////////////////////////////////////// + //printf("\n test in else-for VI pos = %d \n", pos); + if (para->getParH(level)->typeOfGridNode[number2] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number3] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number4] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number5] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number6] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number7] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number8] != GEO_FLUID ) neighborsFluid=false; + ////////////////////////////////////////////////////////////////////////// + //if (level == 0 && + // (number2 <= number1 || + // number3 <= number1 || + // number4 <= number1 || + // number5 <= number1 || + // number6 <= number1 || + // number7 <= number1 || + // number8 <= number1) ) neighborsFluid=false; + ////////////////////////////////////////////////////////////////////////// + if( std::fabs(nodedata[2][number1]) > std::fabs(vxmax) ) vxmax = nodedata[2][number1]; + ////////////////////////////////////////////////////////////////////////// + //printf("\n test in else-for V pos = %d \n", pos); + if (neighborsFluid==true) cells.push_back( makeUbTuple(number1,number2,number3,number4,number5,number6,number7,number8) ); + ////////////////////////////////////////////////////////////////////////// + } + } + //printf("\n test in else III... \n"); + //WbWriterVtkXmlBinary::getInstance()->writeOctsWithNodeDataMS(fname,nodes,cells,nodedatanames,nodedata); + WbWriterVtkXmlBinary::getInstance()->writeOctsWithNodeData(fname,nodes,cells,nodedatanames,nodedata); + //WbWriterVtkXmlBinary::getInstance()->writeNodes(filenameVec2,nodes); + //printf("\n test in else IV... \n"); + ////////////////////////////////////////////////////////////////////////// + //printf("pos max: %.1f", posmax); + printf("\n vx max: %.1f at level: %d\n", vxmax, level); + } + } + ////////////////////////////////////////////////////////////////////////// + + + + + + + + + + + + ////////////////////////////////////////////////////////////////////////// + void writeUnstrucuredGridEff(Parameter* para, int level, std::string& fname, std::string& filenameVec2) + { + vector< UbTupleFloat3 > nodes; + vector< UbTupleUInt8 > cells; + vector< string > nodedatanames; + nodedatanames.push_back("press"); + nodedatanames.push_back("rho"); + nodedatanames.push_back("vx1"); + nodedatanames.push_back("vx2"); + nodedatanames.push_back("vx3"); + nodedatanames.push_back("geo"); + unsigned int number1,number2,number3,number4,number5,number6,number7,number8; + bool neighborsFluid; + double vxmax = 0; + vector<vector<double>> nodedata(nodedatanames.size()); + + nodes.resize(para->getParH(level)->numberOfNodes); + nodedata[0].resize(para->getParH(level)->numberOfNodes); + nodedata[1].resize(para->getParH(level)->numberOfNodes); + nodedata[2].resize(para->getParH(level)->numberOfNodes); + nodedata[3].resize(para->getParH(level)->numberOfNodes); + nodedata[4].resize(para->getParH(level)->numberOfNodes); + nodedata[5].resize(para->getParH(level)->numberOfNodes); + + for (size_t pos = 0; pos < para->getParH(level)->numberOfNodes; pos++) + { + if (para->getParH(level)->typeOfGridNode[pos] == GEO_FLUID) + { + ////////////////////////////////////////////////////////////////////////// + double x1 = para->getParH(level)->coordinateX[pos]; + double x2 = para->getParH(level)->coordinateY[pos]; + double x3 = para->getParH(level)->coordinateZ[pos]; + double x1P = para->getParH(level)->coordinateX[para->getParH(level)->neighborX[pos]]; + double x2P = para->getParH(level)->coordinateY[para->getParH(level)->neighborY[pos]]; + double x3P = para->getParH(level)->coordinateZ[para->getParH(level)->neighborZ[pos]]; + ////////////////////////////////////////////////////////////////////////// + number1 = pos; + neighborsFluid = true; + ////////////////////////////////////////////////////////////////////////// + nodes[number1]=( makeUbTuple( (float)(x1 ),(float)(x2 ),(float)(x3 ) ) ); + nodedata[0][number1] = (double)pos; + //nodedata[0][number1] = (double)para->getParH(level)->pressure[pos] / (double)3.0 * (double)para->getDensityRatio() * (double)para->getVelocityRatio() * (double)para->getVelocityRatio(); + nodedata[1][number1] = (double)para->getParH(level)->rho[pos] / (double)3.0 * (double)para->getDensityRatio() * (double)para->getVelocityRatio() * (double)para->getVelocityRatio(); + nodedata[2][number1] = (double)para->getParH(level)->velocityX[pos] * (double)para->getVelocityRatio(); + nodedata[3][number1] = (double)para->getParH(level)->velocityY[pos] * (double)para->getVelocityRatio(); + nodedata[4][number1] = (double)para->getParH(level)->velocityZ[pos] * (double)para->getVelocityRatio(); + nodedata[5][number1] = (double)para->getParH(level)->typeOfGridNode[pos]; + ////////////////////////////////////////////////////////////////////////// + number2 = para->getParH(level)->neighborX[number1]; + number3 = para->getParH(level)->neighborY[number2]; + number4 = para->getParH(level)->neighborY[number1]; + number5 = para->getParH(level)->neighborZ[number1]; + number6 = para->getParH(level)->neighborZ[number2]; + number7 = para->getParH(level)->neighborZ[number3]; + number8 = para->getParH(level)->neighborZ[number4]; + ////////////////////////////////////////////////////////////////////////// + if (para->getParH(level)->typeOfGridNode[number2] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number3] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number4] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number5] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number6] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number7] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number8] != GEO_FLUID ) neighborsFluid=false; + ////////////////////////////////////////////////////////////////////////// + //if (level == 0 && + // (number2 <= number1 || + // number3 <= number1 || + // number4 <= number1 || + // number5 <= number1 || + // number6 <= number1 || + // number7 <= number1 || + // number8 <= number1) ) neighborsFluid=false; + ////////////////////////////////////////////////////////////////////////// + if (neighborsFluid==true) cells.push_back( makeUbTuple(number1,number2,number3,number4,number5,number6,number7,number8) ); + ////////////////////////////////////////////////////////////////////////// + } + if( std::fabs(nodedata[2][number1]) > std::fabs(vxmax) ) vxmax = nodedata[2][number1]; + } + WbWriterVtkXmlBinary::getInstance()->writeOctsWithNodeData(fname,nodes,cells,nodedatanames,nodedata); + printf("\n vx max: %.1f at level: %d\n", vxmax, level); + } + + + + + ////////////////////////////////////////////////////////////////////////// + void writeUnstrucuredGridAsciiEff(Parameter* para, int level, std::string& fname, std::string& filenameVec2) + { + vector< UbTupleFloat3 > nodes; + vector< UbTupleUInt8 > cells; + vector< string > nodedatanames; + nodedatanames.push_back("press"); + nodedatanames.push_back("rho"); + nodedatanames.push_back("vx1"); + nodedatanames.push_back("vx2"); + nodedatanames.push_back("vx3"); + nodedatanames.push_back("geo"); + unsigned int number1,number2,number3,number4,number5,number6,number7,number8; + bool neighborsFluid; + double posmax = 0; + vector< vector< double > > nodedata(nodedatanames.size()); + + nodes.resize(para->getParH(level)->numberOfNodes); + nodedata[0].resize(para->getParH(level)->numberOfNodes); + nodedata[1].resize(para->getParH(level)->numberOfNodes); + nodedata[2].resize(para->getParH(level)->numberOfNodes); + nodedata[3].resize(para->getParH(level)->numberOfNodes); + nodedata[4].resize(para->getParH(level)->numberOfNodes); + nodedata[5].resize(para->getParH(level)->numberOfNodes); + + for (size_t pos = 0; pos < para->getParH(level)->numberOfNodes; pos++) + { + if (para->getParH(level)->typeOfGridNode[pos] == GEO_FLUID) + { + ////////////////////////////////////////////////////////////////////////// + double x1 = para->getParH(level)->coordinateX[pos]; + double x2 = para->getParH(level)->coordinateY[pos]; + double x3 = para->getParH(level)->coordinateZ[pos]; + double x1P = para->getParH(level)->coordinateX[para->getParH(level)->neighborX[pos]]; + double x2P = para->getParH(level)->coordinateY[para->getParH(level)->neighborY[pos]]; + double x3P = para->getParH(level)->coordinateZ[para->getParH(level)->neighborZ[pos]]; + ////////////////////////////////////////////////////////////////////////// + number1 = pos; + neighborsFluid = true; + ////////////////////////////////////////////////////////////////////////// + nodes[number1]=( makeUbTuple( (float)(x1 ),(float)(x2 ),(float)(x3 ) ) ); + nodedata[0][number1] = (double)pos; + //nodedata[0][number1] = (double)para->getParH(level)->pressure[pos] / (double)3.0 * (double)para->getDensityRatio() * (double)para->getVelocityRatio() * (double)para->getVelocityRatio(); + nodedata[1][number1] = (double)para->getParH(level)->rho[pos] / (double)3.0 * (double)para->getDensityRatio() * (double)para->getVelocityRatio() * (double)para->getVelocityRatio(); + nodedata[2][number1] = (double)para->getParH(level)->velocityX[pos] * (double)para->getVelocityRatio(); + nodedata[3][number1] = (double)para->getParH(level)->velocityY[pos] * (double)para->getVelocityRatio(); + nodedata[4][number1] = (double)para->getParH(level)->velocityZ[pos] * (double)para->getVelocityRatio(); + nodedata[5][number1] = (double)para->getParH(level)->typeOfGridNode[pos]; + ////////////////////////////////////////////////////////////////////////// + number2 = para->getParH(level)->neighborX[number1]; + number3 = para->getParH(level)->neighborY[number2]; + number4 = para->getParH(level)->neighborY[number1]; + number5 = para->getParH(level)->neighborZ[number1]; + number6 = para->getParH(level)->neighborZ[number2]; + number7 = para->getParH(level)->neighborZ[number3]; + number8 = para->getParH(level)->neighborZ[number4]; + ////////////////////////////////////////////////////////////////////////// + if (para->getParH(level)->typeOfGridNode[number2] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number3] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number4] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number5] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number6] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number7] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number8] != GEO_FLUID ) neighborsFluid=false; + ////////////////////////////////////////////////////////////////////////// + //if (level == 0 && + // (number2 <= number1 || + // number3 <= number1 || + // number4 <= number1 || + // number5 <= number1 || + // number6 <= number1 || + // number7 <= number1 || + // number8 <= number1) ) neighborsFluid=false; + ////////////////////////////////////////////////////////////////////////// + if (neighborsFluid==true) cells.push_back( makeUbTuple(number1,number2,number3,number4,number5,number6,number7,number8) ); + ////////////////////////////////////////////////////////////////////////// + } + if( std::fabs((double)pos) > std::fabs(posmax) ) posmax = (double)pos; + } + WbWriterVtkXmlASCII::getInstance()->writeOctsWithNodeData(fname,nodes,cells,nodedatanames,nodedata); + //WbWriterVtkXmlBinary::getInstance()->writeOctsWithNodeData(fname,nodes,cells,nodedatanames,nodedata); + ////WbWriterVtkXmlBinary::getInstance()->writeNodes(filenameVec2,nodes); + printf("\ncells: %.1f \n", (double)cells.size()); + printf("nodes: %.1f \n", (double)nodes.size()); + printf("pos max: %.1f \n", posmax); + } + ////////////////////////////////////////////////////////////////////////// + + + + + + + + + ////////////////////////////////////////////////////////////////////////// + void writeUnstrucuredGridMedianLT(Parameter* para, int level, vector<string >& fname) + { + vector< UbTupleFloat3 > nodes; + vector< UbTupleUInt8 > cells; + //vector< UbTupleUInt8 > cells2; + vector< string > nodedatanames; + nodedatanames.push_back("pressMed"); + nodedatanames.push_back("rhoMed"); + nodedatanames.push_back("vx1Med"); + nodedatanames.push_back("vx2Med"); + nodedatanames.push_back("vx3Med"); + nodedatanames.push_back("geo"); + unsigned int number1,number2,number3,number4,number5,number6,number7,number8; + unsigned int dn1,dn2,dn3,dn4,dn5,dn6,dn7,dn8; + bool neighborsFluid; + double vxmax = 0; + unsigned int startpos = 0; + unsigned int endpos = 0; + unsigned int sizeOfNodes = 0; + vector< vector< double > > nodedata(nodedatanames.size()); + + //printf("\n test for if... \n"); + for (unsigned int part=0; part < fname.size(); part++) + { + vxmax = 0; + //printf("\n test in if I... \n"); + ////////////////////////////////////////////////////////////////////////// sizeOfNodes = FilePartCalculator::calculateNumberOfNodesInPart(para->getParH(level)->numberOfNodes); @@ -1317,1202 +1317,1202 @@ namespace UnstructuredGridWriter endpos = startpos + sizeOfNodes; ////////////////////////////////////////////////////////////////////////// - cells.clear(); - nodes.resize(sizeOfNodes); - nodedata[0].resize(sizeOfNodes); - nodedata[1].resize(sizeOfNodes); - nodedata[2].resize(sizeOfNodes); - nodedata[3].resize(sizeOfNodes); - nodedata[4].resize(sizeOfNodes); - nodedata[5].resize(sizeOfNodes); - ////////////////////////////////////////////////////////////////////////// - //printf("\n test in if II... \n"); - for (size_t pos = startpos; pos < endpos; pos++) - { - if (para->getParH(level)->typeOfGridNode[pos] == GEO_FLUID) - { - ////////////////////////////////////////////////////////////////////////// - double x1 = para->getParH(level)->coordinateX[pos]; - double x2 = para->getParH(level)->coordinateY[pos]; - double x3 = para->getParH(level)->coordinateZ[pos]; - ////////////////////////////////////////////////////////////////////////// - number1 = pos; - dn1 = pos - startpos; - neighborsFluid = true; - ////////////////////////////////////////////////////////////////////////// - nodes[dn1]=( makeUbTuple( (float)(x1 ),(float)(x2 ),(float)(x3 ) ) ); - nodedata[0][dn1] = para->getParH(level)->press_SP_Med_Out[pos] / 3.0f * para->getDensityRatio() * para->getVelocityRatio() * para->getVelocityRatio(); - nodedata[1][dn1] = para->getParH(level)->rho_SP_Med_Out[pos] / 3.0f * para->getDensityRatio() * para->getVelocityRatio() * para->getVelocityRatio(); - nodedata[2][dn1] = para->getParH(level)->vx_SP_Med_Out[pos] * para->getVelocityRatio(); - nodedata[3][dn1] = para->getParH(level)->vy_SP_Med_Out[pos] * para->getVelocityRatio(); - nodedata[4][dn1] = para->getParH(level)->vz_SP_Med_Out[pos] * para->getVelocityRatio(); - nodedata[5][dn1] = (double)para->getParH(level)->typeOfGridNode[pos]; - ////////////////////////////////////////////////////////////////////////// - number2 = para->getParH(level)->neighborX[number1]; - number3 = para->getParH(level)->neighborY[number2]; - number4 = para->getParH(level)->neighborY[number1]; - number5 = para->getParH(level)->neighborZ[number1]; - number6 = para->getParH(level)->neighborZ[number2]; - number7 = para->getParH(level)->neighborZ[number3]; - number8 = para->getParH(level)->neighborZ[number4]; - ////////////////////////////////////////////////////////////////////////// - if (para->getParH(level)->typeOfGridNode[number2] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number3] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number4] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number5] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number6] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number7] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number8] != GEO_FLUID ) neighborsFluid=false; - ////////////////////////////////////////////////////////////////////////// - if (number2 > endpos || - number3 > endpos || - number4 > endpos || - number5 > endpos || - number6 > endpos || - number7 > endpos || - number8 > endpos ) neighborsFluid=false; - ////////////////////////////////////////////////////////////////////////// - dn2 = number2 - startpos; - dn3 = number3 - startpos; - dn4 = number4 - startpos; - dn5 = number5 - startpos; - dn6 = number6 - startpos; - dn7 = number7 - startpos; - dn8 = number8 - startpos; - ////////////////////////////////////////////////////////////////////////// - if( std::fabs(nodedata[2][dn1]) > std::fabs(vxmax) ) vxmax = nodedata[2][dn1]; - ////////////////////////////////////////////////////////////////////////// - if (neighborsFluid==true) cells.push_back( makeUbTuple(dn1,dn2,dn3,dn4,dn5,dn6,dn7,dn8) ); - ////////////////////////////////////////////////////////////////////////// - } - } - WbWriterVtkXmlBinary::getInstance()->writeOctsWithNodeData(fname[part],nodes,cells,nodedatanames,nodedata); - ////////////////////////////////////////////////////////////////////////// - printf("\n vx median max: %.1f at level: %d\n", vxmax, level); - } - } - ////////////////////////////////////////////////////////////////////////// - - - - - - - - ////////////////////////////////////////////////////////////////////////// - void writeUnstrucuredGridMedianLTConc(Parameter* para, int level, vector<string >& fname) - { - vector< UbTupleFloat3 > nodes; - vector< UbTupleUInt8 > cells; - //vector< UbTupleUInt8 > cells2; - vector< string > nodedatanames; - nodedatanames.push_back("concMed"); - nodedatanames.push_back("pressMed"); - nodedatanames.push_back("rhoMed"); - nodedatanames.push_back("vx1Med"); - nodedatanames.push_back("vx2Med"); - nodedatanames.push_back("vx3Med"); - nodedatanames.push_back("geo"); - unsigned int number1, number2, number3, number4, number5, number6, number7, number8; - unsigned int dn1, dn2, dn3, dn4, dn5, dn6, dn7, dn8; - bool neighborsFluid; - double vxmax = 0; - unsigned int startpos = 0; - unsigned int endpos = 0; - unsigned int sizeOfNodes = 0; - vector< vector< double > > nodedata(nodedatanames.size()); - - //printf("\n test for if... \n"); - for (unsigned int part = 0; part < fname.size(); part++) - { - vxmax = 0; - //printf("\n test in if I... \n"); - ////////////////////////////////////////////////////////////////////////// + cells.clear(); + nodes.resize(sizeOfNodes); + nodedata[0].resize(sizeOfNodes); + nodedata[1].resize(sizeOfNodes); + nodedata[2].resize(sizeOfNodes); + nodedata[3].resize(sizeOfNodes); + nodedata[4].resize(sizeOfNodes); + nodedata[5].resize(sizeOfNodes); + ////////////////////////////////////////////////////////////////////////// + //printf("\n test in if II... \n"); + for (size_t pos = startpos; pos < endpos; pos++) + { + if (para->getParH(level)->typeOfGridNode[pos] == GEO_FLUID) + { + ////////////////////////////////////////////////////////////////////////// + double x1 = para->getParH(level)->coordinateX[pos]; + double x2 = para->getParH(level)->coordinateY[pos]; + double x3 = para->getParH(level)->coordinateZ[pos]; + ////////////////////////////////////////////////////////////////////////// + number1 = pos; + dn1 = pos - startpos; + neighborsFluid = true; + ////////////////////////////////////////////////////////////////////////// + nodes[dn1]=( makeUbTuple( (float)(x1 ),(float)(x2 ),(float)(x3 ) ) ); + nodedata[0][dn1] = para->getParH(level)->press_SP_Med_Out[pos] / 3.0f * para->getDensityRatio() * para->getVelocityRatio() * para->getVelocityRatio(); + nodedata[1][dn1] = para->getParH(level)->rho_SP_Med_Out[pos] / 3.0f * para->getDensityRatio() * para->getVelocityRatio() * para->getVelocityRatio(); + nodedata[2][dn1] = para->getParH(level)->vx_SP_Med_Out[pos] * para->getVelocityRatio(); + nodedata[3][dn1] = para->getParH(level)->vy_SP_Med_Out[pos] * para->getVelocityRatio(); + nodedata[4][dn1] = para->getParH(level)->vz_SP_Med_Out[pos] * para->getVelocityRatio(); + nodedata[5][dn1] = (double)para->getParH(level)->typeOfGridNode[pos]; + ////////////////////////////////////////////////////////////////////////// + number2 = para->getParH(level)->neighborX[number1]; + number3 = para->getParH(level)->neighborY[number2]; + number4 = para->getParH(level)->neighborY[number1]; + number5 = para->getParH(level)->neighborZ[number1]; + number6 = para->getParH(level)->neighborZ[number2]; + number7 = para->getParH(level)->neighborZ[number3]; + number8 = para->getParH(level)->neighborZ[number4]; + ////////////////////////////////////////////////////////////////////////// + if (para->getParH(level)->typeOfGridNode[number2] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number3] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number4] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number5] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number6] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number7] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number8] != GEO_FLUID ) neighborsFluid=false; + ////////////////////////////////////////////////////////////////////////// + if (number2 > endpos || + number3 > endpos || + number4 > endpos || + number5 > endpos || + number6 > endpos || + number7 > endpos || + number8 > endpos ) neighborsFluid=false; + ////////////////////////////////////////////////////////////////////////// + dn2 = number2 - startpos; + dn3 = number3 - startpos; + dn4 = number4 - startpos; + dn5 = number5 - startpos; + dn6 = number6 - startpos; + dn7 = number7 - startpos; + dn8 = number8 - startpos; + ////////////////////////////////////////////////////////////////////////// + if( std::fabs(nodedata[2][dn1]) > std::fabs(vxmax) ) vxmax = nodedata[2][dn1]; + ////////////////////////////////////////////////////////////////////////// + if (neighborsFluid==true) cells.push_back( makeUbTuple(dn1,dn2,dn3,dn4,dn5,dn6,dn7,dn8) ); + ////////////////////////////////////////////////////////////////////////// + } + } + WbWriterVtkXmlBinary::getInstance()->writeOctsWithNodeData(fname[part],nodes,cells,nodedatanames,nodedata); + ////////////////////////////////////////////////////////////////////////// + printf("\n vx median max: %.1f at level: %d\n", vxmax, level); + } + } + ////////////////////////////////////////////////////////////////////////// + + + + + + + + ////////////////////////////////////////////////////////////////////////// + void writeUnstrucuredGridMedianLTConc(Parameter* para, int level, vector<string >& fname) + { + vector< UbTupleFloat3 > nodes; + vector< UbTupleUInt8 > cells; + //vector< UbTupleUInt8 > cells2; + vector< string > nodedatanames; + nodedatanames.push_back("concMed"); + nodedatanames.push_back("pressMed"); + nodedatanames.push_back("rhoMed"); + nodedatanames.push_back("vx1Med"); + nodedatanames.push_back("vx2Med"); + nodedatanames.push_back("vx3Med"); + nodedatanames.push_back("geo"); + unsigned int number1, number2, number3, number4, number5, number6, number7, number8; + unsigned int dn1, dn2, dn3, dn4, dn5, dn6, dn7, dn8; + bool neighborsFluid; + double vxmax = 0; + unsigned int startpos = 0; + unsigned int endpos = 0; + unsigned int sizeOfNodes = 0; + vector< vector< double > > nodedata(nodedatanames.size()); + + //printf("\n test for if... \n"); + for (unsigned int part = 0; part < fname.size(); part++) + { + vxmax = 0; + //printf("\n test in if I... \n"); + ////////////////////////////////////////////////////////////////////////// sizeOfNodes = FilePartCalculator::calculateNumberOfNodesInPart(para->getParH(level)->numberOfNodes); - ////////////////////////////////////////////////////////////////////////// - startpos = FilePartCalculator::calculateStartingPostionOfPart(part); - endpos = startpos + sizeOfNodes; - ////////////////////////////////////////////////////////////////////////// - cells.clear(); - nodes.resize(sizeOfNodes); - nodedata[0].resize(sizeOfNodes); - nodedata[1].resize(sizeOfNodes); - nodedata[2].resize(sizeOfNodes); - nodedata[3].resize(sizeOfNodes); - nodedata[4].resize(sizeOfNodes); - nodedata[5].resize(sizeOfNodes); - ////////////////////////////////////////////////////////////////////////// - //printf("\n test in if II... \n"); - for (unsigned int pos = startpos; pos < endpos; pos++) - { - if (para->getParH(level)->typeOfGridNode[pos] == GEO_FLUID) - { - ////////////////////////////////////////////////////////////////////////// - double x1 = para->getParH(level)->coordinateX[pos]; - double x2 = para->getParH(level)->coordinateY[pos]; - double x3 = para->getParH(level)->coordinateZ[pos]; - ////////////////////////////////////////////////////////////////////////// - number1 = pos; - dn1 = pos - startpos; - neighborsFluid = true; - ////////////////////////////////////////////////////////////////////////// - nodes[dn1] = (makeUbTuple((float)(x1), (float)(x2), (float)(x3))); - nodedata[0][dn1] = para->getParH(level)->Conc_Med_Out[pos]; - nodedata[1][dn1] = para->getParH(level)->press_SP_Med_Out[pos] / 3.0f * para->getDensityRatio() * para->getVelocityRatio() * para->getVelocityRatio(); - nodedata[2][dn1] = para->getParH(level)->rho_SP_Med_Out[pos] / 3.0f * para->getDensityRatio() * para->getVelocityRatio() * para->getVelocityRatio(); - nodedata[3][dn1] = para->getParH(level)->vx_SP_Med_Out[pos] * para->getVelocityRatio(); - nodedata[4][dn1] = para->getParH(level)->vy_SP_Med_Out[pos] * para->getVelocityRatio(); - nodedata[5][dn1] = para->getParH(level)->vz_SP_Med_Out[pos] * para->getVelocityRatio(); - nodedata[6][dn1] = (double)para->getParH(level)->typeOfGridNode[pos]; - ////////////////////////////////////////////////////////////////////////// - number2 = para->getParH(level)->neighborX[number1]; - number3 = para->getParH(level)->neighborY[number2]; - number4 = para->getParH(level)->neighborY[number1]; - number5 = para->getParH(level)->neighborZ[number1]; - number6 = para->getParH(level)->neighborZ[number2]; - number7 = para->getParH(level)->neighborZ[number3]; - number8 = para->getParH(level)->neighborZ[number4]; - ////////////////////////////////////////////////////////////////////////// - if (para->getParH(level)->typeOfGridNode[number2] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number3] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number4] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number5] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number6] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number7] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number8] != GEO_FLUID) neighborsFluid = false; - ////////////////////////////////////////////////////////////////////////// - if (number2 > endpos || - number3 > endpos || - number4 > endpos || - number5 > endpos || - number6 > endpos || - number7 > endpos || - number8 > endpos) neighborsFluid = false; - ////////////////////////////////////////////////////////////////////////// - dn2 = number2 - startpos; - dn3 = number3 - startpos; - dn4 = number4 - startpos; - dn5 = number5 - startpos; - dn6 = number6 - startpos; - dn7 = number7 - startpos; - dn8 = number8 - startpos; - ////////////////////////////////////////////////////////////////////////// - if (std::fabs(nodedata[2][dn1]) > std::fabs(vxmax)) vxmax = nodedata[2][dn1]; - ////////////////////////////////////////////////////////////////////////// - if (neighborsFluid == true) cells.push_back(makeUbTuple(dn1, dn2, dn3, dn4, dn5, dn6, dn7, dn8)); - ////////////////////////////////////////////////////////////////////////// - } - } - WbWriterVtkXmlBinary::getInstance()->writeOctsWithNodeData(fname[part], nodes, cells, nodedatanames, nodedata); - ////////////////////////////////////////////////////////////////////////// - printf("\n vx median max: %.1f at level: %d\n", vxmax, level); - } - } - ////////////////////////////////////////////////////////////////////////// - - - - - - - - ////////////////////////////////////////////////////////////////////////// - void writeUnstrucuredGridMedianLTwithDerivationsAndSqaredVelos(Parameter* para, int level, vector<string >& fname) - { - vector< UbTupleFloat3 > nodes; - vector< UbTupleUInt8 > cells; - //vector< UbTupleUInt8 > cells2; - vector< string > nodedatanames; - nodedatanames.push_back("pressMed"); - nodedatanames.push_back("rhoMed"); - nodedatanames.push_back("vx1Med"); - nodedatanames.push_back("vx2Med"); - nodedatanames.push_back("vx3Med"); - nodedatanames.push_back("D(vx1)"); - nodedatanames.push_back("D(vx2)"); - nodedatanames.push_back("D(vx3)"); - nodedatanames.push_back("D(vx1)^2"); - nodedatanames.push_back("D(vx2)^2"); - nodedatanames.push_back("D(vx3)^2"); - nodedatanames.push_back("D(vx1*vx2)"); - nodedatanames.push_back("geo"); - unsigned int number1, number2, number3, number4, number5, number6, number7, number8; - unsigned int dn1, dn2, dn3, dn4, dn5, dn6, dn7, dn8; - bool neighborsFluid; - double vxmax = 0; - unsigned int startpos = 0; - unsigned int endpos = 0; - unsigned int sizeOfNodes = 0; - vector< vector< double > > nodedata(nodedatanames.size()); - - //printf("\n test for if... \n"); - for (unsigned int part = 0; part < fname.size(); part++) - { - vxmax = 0; - //printf("\n test in if I... \n"); - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// + startpos = FilePartCalculator::calculateStartingPostionOfPart(part); + endpos = startpos + sizeOfNodes; + ////////////////////////////////////////////////////////////////////////// + cells.clear(); + nodes.resize(sizeOfNodes); + nodedata[0].resize(sizeOfNodes); + nodedata[1].resize(sizeOfNodes); + nodedata[2].resize(sizeOfNodes); + nodedata[3].resize(sizeOfNodes); + nodedata[4].resize(sizeOfNodes); + nodedata[5].resize(sizeOfNodes); + ////////////////////////////////////////////////////////////////////////// + //printf("\n test in if II... \n"); + for (unsigned int pos = startpos; pos < endpos; pos++) + { + if (para->getParH(level)->typeOfGridNode[pos] == GEO_FLUID) + { + ////////////////////////////////////////////////////////////////////////// + double x1 = para->getParH(level)->coordinateX[pos]; + double x2 = para->getParH(level)->coordinateY[pos]; + double x3 = para->getParH(level)->coordinateZ[pos]; + ////////////////////////////////////////////////////////////////////////// + number1 = pos; + dn1 = pos - startpos; + neighborsFluid = true; + ////////////////////////////////////////////////////////////////////////// + nodes[dn1] = (makeUbTuple((float)(x1), (float)(x2), (float)(x3))); + nodedata[0][dn1] = para->getParH(level)->Conc_Med_Out[pos]; + nodedata[1][dn1] = para->getParH(level)->press_SP_Med_Out[pos] / 3.0f * para->getDensityRatio() * para->getVelocityRatio() * para->getVelocityRatio(); + nodedata[2][dn1] = para->getParH(level)->rho_SP_Med_Out[pos] / 3.0f * para->getDensityRatio() * para->getVelocityRatio() * para->getVelocityRatio(); + nodedata[3][dn1] = para->getParH(level)->vx_SP_Med_Out[pos] * para->getVelocityRatio(); + nodedata[4][dn1] = para->getParH(level)->vy_SP_Med_Out[pos] * para->getVelocityRatio(); + nodedata[5][dn1] = para->getParH(level)->vz_SP_Med_Out[pos] * para->getVelocityRatio(); + nodedata[6][dn1] = (double)para->getParH(level)->typeOfGridNode[pos]; + ////////////////////////////////////////////////////////////////////////// + number2 = para->getParH(level)->neighborX[number1]; + number3 = para->getParH(level)->neighborY[number2]; + number4 = para->getParH(level)->neighborY[number1]; + number5 = para->getParH(level)->neighborZ[number1]; + number6 = para->getParH(level)->neighborZ[number2]; + number7 = para->getParH(level)->neighborZ[number3]; + number8 = para->getParH(level)->neighborZ[number4]; + ////////////////////////////////////////////////////////////////////////// + if (para->getParH(level)->typeOfGridNode[number2] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number3] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number4] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number5] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number6] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number7] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number8] != GEO_FLUID) neighborsFluid = false; + ////////////////////////////////////////////////////////////////////////// + if (number2 > endpos || + number3 > endpos || + number4 > endpos || + number5 > endpos || + number6 > endpos || + number7 > endpos || + number8 > endpos) neighborsFluid = false; + ////////////////////////////////////////////////////////////////////////// + dn2 = number2 - startpos; + dn3 = number3 - startpos; + dn4 = number4 - startpos; + dn5 = number5 - startpos; + dn6 = number6 - startpos; + dn7 = number7 - startpos; + dn8 = number8 - startpos; + ////////////////////////////////////////////////////////////////////////// + if (std::fabs(nodedata[2][dn1]) > std::fabs(vxmax)) vxmax = nodedata[2][dn1]; + ////////////////////////////////////////////////////////////////////////// + if (neighborsFluid == true) cells.push_back(makeUbTuple(dn1, dn2, dn3, dn4, dn5, dn6, dn7, dn8)); + ////////////////////////////////////////////////////////////////////////// + } + } + WbWriterVtkXmlBinary::getInstance()->writeOctsWithNodeData(fname[part], nodes, cells, nodedatanames, nodedata); + ////////////////////////////////////////////////////////////////////////// + printf("\n vx median max: %.1f at level: %d\n", vxmax, level); + } + } + ////////////////////////////////////////////////////////////////////////// + + + + + + + + ////////////////////////////////////////////////////////////////////////// + void writeUnstrucuredGridMedianLTwithDerivationsAndSqaredVelos(Parameter* para, int level, vector<string >& fname) + { + vector< UbTupleFloat3 > nodes; + vector< UbTupleUInt8 > cells; + //vector< UbTupleUInt8 > cells2; + vector< string > nodedatanames; + nodedatanames.push_back("pressMed"); + nodedatanames.push_back("rhoMed"); + nodedatanames.push_back("vx1Med"); + nodedatanames.push_back("vx2Med"); + nodedatanames.push_back("vx3Med"); + nodedatanames.push_back("D(vx1)"); + nodedatanames.push_back("D(vx2)"); + nodedatanames.push_back("D(vx3)"); + nodedatanames.push_back("D(vx1)^2"); + nodedatanames.push_back("D(vx2)^2"); + nodedatanames.push_back("D(vx3)^2"); + nodedatanames.push_back("D(vx1*vx2)"); + nodedatanames.push_back("geo"); + unsigned int number1, number2, number3, number4, number5, number6, number7, number8; + unsigned int dn1, dn2, dn3, dn4, dn5, dn6, dn7, dn8; + bool neighborsFluid; + double vxmax = 0; + unsigned int startpos = 0; + unsigned int endpos = 0; + unsigned int sizeOfNodes = 0; + vector< vector< double > > nodedata(nodedatanames.size()); + + //printf("\n test for if... \n"); + for (unsigned int part = 0; part < fname.size(); part++) + { + vxmax = 0; + //printf("\n test in if I... \n"); + ////////////////////////////////////////////////////////////////////////// sizeOfNodes = FilePartCalculator::calculateNumberOfNodesInPart(para->getParH(level)->numberOfNodes); - ////////////////////////////////////////////////////////////////////////// - startpos = FilePartCalculator::calculateStartingPostionOfPart(part); - endpos = startpos + sizeOfNodes; - ////////////////////////////////////////////////////////////////////////// - cells.clear(); - nodes.resize(sizeOfNodes); - nodedata[0].resize(sizeOfNodes); - nodedata[1].resize(sizeOfNodes); - nodedata[2].resize(sizeOfNodes); - nodedata[3].resize(sizeOfNodes); - nodedata[4].resize(sizeOfNodes); - nodedata[5].resize(sizeOfNodes); - nodedata[6].resize(sizeOfNodes); - nodedata[7].resize(sizeOfNodes); - nodedata[8].resize(sizeOfNodes); - nodedata[9].resize(sizeOfNodes); - nodedata[10].resize(sizeOfNodes); - nodedata[11].resize(sizeOfNodes); - nodedata[12].resize(sizeOfNodes); - ////////////////////////////////////////////////////////////////////////// - //printf("\n test in if II... \n"); - for (unsigned int pos = startpos; pos < endpos; pos++) - { - if (para->getParH(level)->typeOfGridNode[pos] == GEO_FLUID) - { - ////////////////////////////////////////////////////////////////////////// - double x1 = para->getParH(level)->coordinateX[pos]; - double x2 = para->getParH(level)->coordinateY[pos]; - double x3 = para->getParH(level)->coordinateZ[pos]; - ////////////////////////////////////////////////////////////////////////// - number1 = pos; - dn1 = pos - startpos; - neighborsFluid = true; - ////////////////////////////////////////////////////////////////////////// - nodes[dn1] = (makeUbTuple((float)(x1), (float)(x2), (float)(x3))); - nodedata[0][dn1] = para->getParH(level)->press_SP_Med_Out[pos] / 3.0f * para->getDensityRatio() * para->getVelocityRatio() * para->getVelocityRatio(); - nodedata[1][dn1] = para->getParH(level)->rho_SP_Med_Out[pos] / 3.0f * para->getDensityRatio() * para->getVelocityRatio() * para->getVelocityRatio(); - nodedata[2][dn1] = para->getParH(level)->vx_SP_Med_Out[pos] * para->getVelocityRatio(); - nodedata[3][dn1] = para->getParH(level)->vy_SP_Med_Out[pos] * para->getVelocityRatio(); - nodedata[4][dn1] = para->getParH(level)->vz_SP_Med_Out[pos] * para->getVelocityRatio(); - nodedata[5][dn1] = (((double)para->getParH(level)->velocityX[pos] * (double)para->getVelocityRatio()) - (para->getParH(level)->vx_SP_Med_Out[pos] * para->getVelocityRatio())); - nodedata[6][dn1] = (((double)para->getParH(level)->velocityY[pos] * (double)para->getVelocityRatio()) - (para->getParH(level)->vy_SP_Med_Out[pos] * para->getVelocityRatio())); - nodedata[7][dn1] = (((double)para->getParH(level)->velocityZ[pos] * (double)para->getVelocityRatio()) - (para->getParH(level)->vz_SP_Med_Out[pos] * para->getVelocityRatio())); - nodedata[8][dn1] = - (((double)para->getParH(level)->velocityX[pos] * (double)para->getVelocityRatio()) - (para->getParH(level)->vx_SP_Med_Out[pos] * para->getVelocityRatio())) * - (((double)para->getParH(level)->velocityX[pos] * (double)para->getVelocityRatio()) - (para->getParH(level)->vx_SP_Med_Out[pos] * para->getVelocityRatio())); - nodedata[9][dn1] = - (((double)para->getParH(level)->velocityY[pos] * (double)para->getVelocityRatio()) - (para->getParH(level)->vy_SP_Med_Out[pos] * para->getVelocityRatio())) * - (((double)para->getParH(level)->velocityY[pos] * (double)para->getVelocityRatio()) - (para->getParH(level)->vy_SP_Med_Out[pos] * para->getVelocityRatio())); - nodedata[10][dn1] = - (((double)para->getParH(level)->velocityZ[pos] * (double)para->getVelocityRatio()) - (para->getParH(level)->vz_SP_Med_Out[pos] * para->getVelocityRatio())) * - (((double)para->getParH(level)->velocityZ[pos] * (double)para->getVelocityRatio()) - (para->getParH(level)->vz_SP_Med_Out[pos] * para->getVelocityRatio())); - nodedata[11][dn1] = - (((double)para->getParH(level)->velocityX[pos] * (double)para->getVelocityRatio()) - (para->getParH(level)->vx_SP_Med_Out[pos] * para->getVelocityRatio())) * - (((double)para->getParH(level)->velocityY[pos] * (double)para->getVelocityRatio()) - (para->getParH(level)->vy_SP_Med_Out[pos] * para->getVelocityRatio())); - //nodedata[8][dn1] = (((double)para->getParH(level)->velocityX[pos] * (double)para->getVelocityRatio()) * ((double)para->getParH(level)->velocityX[pos] * (double)para->getVelocityRatio())); - //nodedata[9][dn1] = (((double)para->getParH(level)->velocityY[pos] * (double)para->getVelocityRatio()) * ((double)para->getParH(level)->velocityY[pos] * (double)para->getVelocityRatio())); - //nodedata[10][dn1] = (((double)para->getParH(level)->velocityZ[pos] * (double)para->getVelocityRatio()) * ((double)para->getParH(level)->velocityZ[pos] * (double)para->getVelocityRatio())); - nodedata[12][dn1] = (double)para->getParH(level)->typeOfGridNode[pos]; - ////////////////////////////////////////////////////////////////////////// - number2 = para->getParH(level)->neighborX[number1]; - number3 = para->getParH(level)->neighborY[number2]; - number4 = para->getParH(level)->neighborY[number1]; - number5 = para->getParH(level)->neighborZ[number1]; - number6 = para->getParH(level)->neighborZ[number2]; - number7 = para->getParH(level)->neighborZ[number3]; - number8 = para->getParH(level)->neighborZ[number4]; - ////////////////////////////////////////////////////////////////////////// - if (para->getParH(level)->typeOfGridNode[number2] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number3] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number4] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number5] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number6] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number7] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number8] != GEO_FLUID) neighborsFluid = false; - ////////////////////////////////////////////////////////////////////////// - if (number2 > endpos || - number3 > endpos || - number4 > endpos || - number5 > endpos || - number6 > endpos || - number7 > endpos || - number8 > endpos) neighborsFluid = false; - ////////////////////////////////////////////////////////////////////////// - dn2 = number2 - startpos; - dn3 = number3 - startpos; - dn4 = number4 - startpos; - dn5 = number5 - startpos; - dn6 = number6 - startpos; - dn7 = number7 - startpos; - dn8 = number8 - startpos; - ////////////////////////////////////////////////////////////////////////// - if (std::fabs(nodedata[2][dn1]) > std::fabs(vxmax)) vxmax = nodedata[2][dn1]; - ////////////////////////////////////////////////////////////////////////// - if (neighborsFluid == true) cells.push_back(makeUbTuple(dn1, dn2, dn3, dn4, dn5, dn6, dn7, dn8)); - ////////////////////////////////////////////////////////////////////////// - } - } - WbWriterVtkXmlBinary::getInstance()->writeOctsWithNodeData(fname[part], nodes, cells, nodedatanames, nodedata); - ////////////////////////////////////////////////////////////////////////// - printf("\n vx median max: %.1f at level: %d\n", vxmax, level); - } - } - ////////////////////////////////////////////////////////////////////////// - - - - - - - - ////////////////////////////////////////////////////////////////////////// - void writeUnstrucuredGridEffMedian(Parameter* para, int level, std::string& fname) - { - vector< UbTupleFloat3 > nodes; - vector< UbTupleUInt8 > cells; - vector< string > nodedatanames; - nodedatanames.push_back("pressMed"); - nodedatanames.push_back("rhoMed"); - nodedatanames.push_back("vx1Med"); - nodedatanames.push_back("vx2Med"); - nodedatanames.push_back("vx3Med"); - nodedatanames.push_back("geo"); - unsigned int number1,number2,number3,number4,number5,number6,number7,number8; - bool neighborsFluid; - vector< vector<double>> nodedata(nodedatanames.size()); - - nodes.resize(para->getParH(level)->numberOfNodes); - nodedata[0].resize(para->getParH(level)->numberOfNodes); - nodedata[1].resize(para->getParH(level)->numberOfNodes); - nodedata[2].resize(para->getParH(level)->numberOfNodes); - nodedata[3].resize(para->getParH(level)->numberOfNodes); - nodedata[4].resize(para->getParH(level)->numberOfNodes); - nodedata[5].resize(para->getParH(level)->numberOfNodes); - - for (size_t pos = 0; pos < para->getParH(level)->numberOfNodes; pos++) - { - if (para->getParH(level)->typeOfGridNode[pos] == GEO_FLUID) - { - ////////////////////////////////////////////////////////////////////////// - double x1 = para->getParH(level)->coordinateX[pos]; - double x2 = para->getParH(level)->coordinateY[pos]; - double x3 = para->getParH(level)->coordinateZ[pos]; - double x1P = para->getParH(level)->coordinateX[para->getParH(level)->neighborX[pos]]; - double x2P = para->getParH(level)->coordinateY[para->getParH(level)->neighborY[pos]]; - double x3P = para->getParH(level)->coordinateZ[para->getParH(level)->neighborZ[pos]]; - ////////////////////////////////////////////////////////////////////////// - number1 = pos; - neighborsFluid = true; - ////////////////////////////////////////////////////////////////////////// - nodes[number1]=( makeUbTuple( (float)(x1 ),(float)(x2 ),(float)(x3 ) ) ); - nodedata[0][number1] = para->getParH(level)->press_SP_Med_Out[pos] / 3.0f * para->getDensityRatio() * para->getVelocityRatio() * para->getVelocityRatio(); - nodedata[1][number1] = para->getParH(level)->rho_SP_Med_Out[pos] / 3.0f * para->getDensityRatio() * para->getVelocityRatio() * para->getVelocityRatio(); - nodedata[2][number1] = para->getParH(level)->vx_SP_Med_Out[pos] * para->getVelocityRatio(); - nodedata[3][number1] = para->getParH(level)->vy_SP_Med_Out[pos] * para->getVelocityRatio(); - nodedata[4][number1] = para->getParH(level)->vz_SP_Med_Out[pos] * para->getVelocityRatio(); - nodedata[5][number1] = para->getParH(level)->typeOfGridNode[pos]; - ////////////////////////////////////////////////////////////////////////// - number2 = para->getParH(level)->neighborX[number1]; - number3 = para->getParH(level)->neighborY[number2]; - number4 = para->getParH(level)->neighborY[number1]; - number5 = para->getParH(level)->neighborZ[number1]; - number6 = para->getParH(level)->neighborZ[number2]; - number7 = para->getParH(level)->neighborZ[number3]; - number8 = para->getParH(level)->neighborZ[number4]; - ////////////////////////////////////////////////////////////////////////// - if (para->getParH(level)->typeOfGridNode[number2] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number3] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number4] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number5] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number6] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number7] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number8] != GEO_FLUID ) neighborsFluid=false; - ////////////////////////////////////////////////////////////////////////// - //if (level == 0 && - // (number2 <= number1 || - // number3 <= number1 || - // number4 <= number1 || - // number5 <= number1 || - // number6 <= number1 || - // number7 <= number1 || - // number8 <= number1) ) neighborsFluid=false; - ////////////////////////////////////////////////////////////////////////// - if (neighborsFluid==true) cells.push_back( makeUbTuple(number1,number2,number3,number4,number5,number6,number7,number8) ); - ////////////////////////////////////////////////////////////////////////// - } - } - WbWriterVtkXmlBinary::getInstance()->writeOctsWithNodeData(fname,nodes,cells,nodedatanames,nodedata); - } - ////////////////////////////////////////////////////////////////////////// - - - - - - - - - ////////////////////////////////////////////////////////////////////////// - void writeUnstrucuredGridEff2ndMoments(Parameter* para, int level, std::string& fname) - { - vector< UbTupleFloat3 > nodes; - vector< UbTupleUInt8 > cells; - vector< string > nodedatanames; - nodedatanames.push_back("kxyFromfcNEQ"); - nodedatanames.push_back("kyzFromfcNEQ"); - nodedatanames.push_back("kxzFromfcNEQ"); - nodedatanames.push_back("kxxMyyFromfcNEQ"); - nodedatanames.push_back("kxxMzzFromfcNEQ"); - nodedatanames.push_back("geo"); - unsigned int number1,number2,number3,number4,number5,number6,number7,number8; - bool neighborsFluid; - vector< vector< double > > nodedata(nodedatanames.size()); - - nodes.resize(para->getParH(level)->numberOfNodes); - nodedata[0].resize(para->getParH(level)->numberOfNodes); - nodedata[1].resize(para->getParH(level)->numberOfNodes); - nodedata[2].resize(para->getParH(level)->numberOfNodes); - nodedata[3].resize(para->getParH(level)->numberOfNodes); - nodedata[4].resize(para->getParH(level)->numberOfNodes); - nodedata[5].resize(para->getParH(level)->numberOfNodes); - - for (size_t pos = 0; pos < para->getParH(level)->numberOfNodes; pos++) - { - if (para->getParH(level)->typeOfGridNode[pos] == GEO_FLUID) - { - ////////////////////////////////////////////////////////////////////////// - double x1 = para->getParH(level)->coordinateX[pos]; - double x2 = para->getParH(level)->coordinateY[pos]; - double x3 = para->getParH(level)->coordinateZ[pos]; - double x1P = para->getParH(level)->coordinateX[para->getParH(level)->neighborX[pos]]; - double x2P = para->getParH(level)->coordinateY[para->getParH(level)->neighborY[pos]]; - double x3P = para->getParH(level)->coordinateZ[para->getParH(level)->neighborZ[pos]]; - ////////////////////////////////////////////////////////////////////////// - number1 = pos; - neighborsFluid = true; - ////////////////////////////////////////////////////////////////////////// - nodes[number1]=( makeUbTuple( (float)(x1 ),(float)(x2 ),(float)(x3 ) ) ); - nodedata[0][number1] = para->getParH(level)->kxyFromfcNEQ[pos]; - nodedata[1][number1] = para->getParH(level)->kyzFromfcNEQ[pos]; - nodedata[2][number1] = para->getParH(level)->kxzFromfcNEQ[pos]; - nodedata[3][number1] = para->getParH(level)->kxxMyyFromfcNEQ[pos]; - nodedata[4][number1] = para->getParH(level)->kxxMzzFromfcNEQ[pos]; - nodedata[5][number1] = para->getParH(level)->typeOfGridNode[pos]; - ////////////////////////////////////////////////////////////////////////// - number2 = para->getParH(level)->neighborX[number1]; - number3 = para->getParH(level)->neighborY[number2]; - number4 = para->getParH(level)->neighborY[number1]; - number5 = para->getParH(level)->neighborZ[number1]; - number6 = para->getParH(level)->neighborZ[number2]; - number7 = para->getParH(level)->neighborZ[number3]; - number8 = para->getParH(level)->neighborZ[number4]; - ////////////////////////////////////////////////////////////////////////// - if (para->getParH(level)->typeOfGridNode[number2] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number3] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number4] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number5] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number6] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number7] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number8] != GEO_FLUID ) neighborsFluid=false; - ////////////////////////////////////////////////////////////////////////// - if (neighborsFluid==true) cells.push_back( makeUbTuple(number1,number2,number3,number4,number5,number6,number7,number8) ); - ////////////////////////////////////////////////////////////////////////// - } - } - WbWriterVtkXmlBinary::getInstance()->writeOctsWithNodeData(fname,nodes,cells,nodedatanames,nodedata); - } - ////////////////////////////////////////////////////////////////////////// - - - - - - - - - - - - - - ////////////////////////////////////////////////////////////////////////// - void writeUnstrucuredParticles(Parameter* para, int level, std::string& fname) - { - vector< UbTupleFloat3 > particlePosition; - vector< string > particleDataNames; - particleDataNames.push_back("ID"); - particleDataNames.push_back("timestep"); - particleDataNames.push_back("particleVx"); - particleDataNames.push_back("particleVy"); - particleDataNames.push_back("particleVz"); - //particleDataNames.push_back("tauxx"); - //particleDataNames.push_back("tauyy"); - //particleDataNames.push_back("tauzz"); - //particleDataNames.push_back("tauxy"); - //particleDataNames.push_back("tauxz"); - //particleDataNames.push_back("tauyz"); - vector< vector< double > > particleData(particleDataNames.size()); - ////////////////////////////////////////////////////////////////////////// - unsigned int numberOfParticles = para->getParH(level)->plp.numberOfParticles; - unsigned int timestep = para->getParH(level)->plp.numberOfTimestepsParticles; - ////////////////////////////////////////////////////////////////////////// - unsigned int pos = 0; - unsigned int sizeOfNodes = numberOfParticles * timestep; - ////////////////////////////////////////////////////////////////////////// - particlePosition.resize(sizeOfNodes); - for (unsigned int i = 0; i < particleDataNames.size(); i++) - { - particleData[i].resize(sizeOfNodes); - } - ////////////////////////////////////////////////////////////////////////// - for (unsigned int i = 0; i < timestep; i++) - { - for (unsigned int j = 0; j < numberOfParticles; j++) - { - ////////////////////////////////////////////////////////////////////////// - double x1 = (double)para->getParH(level)->plp.coordXabsolut[pos]; - double x2 = (double)para->getParH(level)->plp.coordYabsolut[pos]; - double x3 = (double)para->getParH(level)->plp.coordZabsolut[pos]; - ////////////////////////////////////////////////////////////////////////// - particlePosition[pos]=( makeUbTuple( (float)(x1 ),(float)(x2 ),(float)(x3 ) ) ); - particleData[0][pos] = (double)para->getParH(level)->plp.ID[j]; - particleData[1][pos] = (double)para->getParH(level)->plp.timestep[i]; - particleData[2][pos] = (double)para->getParH(level)->plp.veloX[pos]; - particleData[3][pos] = (double)para->getParH(level)->plp.veloY[pos]; - particleData[4][pos] = (double)para->getParH(level)->plp.veloZ[pos]; - ////////////////////////////////////////////////////////////////////////// - pos++; - } - } - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - WbWriterVtkXmlBinary::getInstance()->writeNodesWithNodeData(fname,particlePosition,particleDataNames,particleData); - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - } - ////////////////////////////////////////////////////////////////////////// - - - - - - - - - - ////////////////////////////////////////////////////////////////////////// - void writeUnstrucuredGridEff2ndMomentsLT(Parameter* para, int level, vector<string >& fname) - { - vector< UbTupleFloat3 > nodes; - vector< UbTupleUInt8 > cells; - //vector< UbTupleUInt8 > cells2; - vector< string > nodedatanames; - nodedatanames.push_back("kxyFromfcNEQ"); - nodedatanames.push_back("kyzFromfcNEQ"); - nodedatanames.push_back("kxzFromfcNEQ"); - nodedatanames.push_back("kxxMyyFromfcNEQ"); - nodedatanames.push_back("kxxMzzFromfcNEQ"); - nodedatanames.push_back("geo"); - unsigned int number1,number2,number3,number4,number5,number6,number7,number8; - unsigned int dn1,dn2,dn3,dn4,dn5,dn6,dn7,dn8; - bool neighborsFluid; - double vxmax = 0; - unsigned int startpos = 0; - unsigned int endpos = 0; - unsigned int sizeOfNodes = 0; - vector< vector< double > > nodedata(nodedatanames.size()); - - //printf("\n test for if... \n"); - for (unsigned int part=0; part < fname.size(); part++) - { - vxmax = 0; - //printf("\n test in if I... \n"); - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// + startpos = FilePartCalculator::calculateStartingPostionOfPart(part); + endpos = startpos + sizeOfNodes; + ////////////////////////////////////////////////////////////////////////// + cells.clear(); + nodes.resize(sizeOfNodes); + nodedata[0].resize(sizeOfNodes); + nodedata[1].resize(sizeOfNodes); + nodedata[2].resize(sizeOfNodes); + nodedata[3].resize(sizeOfNodes); + nodedata[4].resize(sizeOfNodes); + nodedata[5].resize(sizeOfNodes); + nodedata[6].resize(sizeOfNodes); + nodedata[7].resize(sizeOfNodes); + nodedata[8].resize(sizeOfNodes); + nodedata[9].resize(sizeOfNodes); + nodedata[10].resize(sizeOfNodes); + nodedata[11].resize(sizeOfNodes); + nodedata[12].resize(sizeOfNodes); + ////////////////////////////////////////////////////////////////////////// + //printf("\n test in if II... \n"); + for (unsigned int pos = startpos; pos < endpos; pos++) + { + if (para->getParH(level)->typeOfGridNode[pos] == GEO_FLUID) + { + ////////////////////////////////////////////////////////////////////////// + double x1 = para->getParH(level)->coordinateX[pos]; + double x2 = para->getParH(level)->coordinateY[pos]; + double x3 = para->getParH(level)->coordinateZ[pos]; + ////////////////////////////////////////////////////////////////////////// + number1 = pos; + dn1 = pos - startpos; + neighborsFluid = true; + ////////////////////////////////////////////////////////////////////////// + nodes[dn1] = (makeUbTuple((float)(x1), (float)(x2), (float)(x3))); + nodedata[0][dn1] = para->getParH(level)->press_SP_Med_Out[pos] / 3.0f * para->getDensityRatio() * para->getVelocityRatio() * para->getVelocityRatio(); + nodedata[1][dn1] = para->getParH(level)->rho_SP_Med_Out[pos] / 3.0f * para->getDensityRatio() * para->getVelocityRatio() * para->getVelocityRatio(); + nodedata[2][dn1] = para->getParH(level)->vx_SP_Med_Out[pos] * para->getVelocityRatio(); + nodedata[3][dn1] = para->getParH(level)->vy_SP_Med_Out[pos] * para->getVelocityRatio(); + nodedata[4][dn1] = para->getParH(level)->vz_SP_Med_Out[pos] * para->getVelocityRatio(); + nodedata[5][dn1] = (((double)para->getParH(level)->velocityX[pos] * (double)para->getVelocityRatio()) - (para->getParH(level)->vx_SP_Med_Out[pos] * para->getVelocityRatio())); + nodedata[6][dn1] = (((double)para->getParH(level)->velocityY[pos] * (double)para->getVelocityRatio()) - (para->getParH(level)->vy_SP_Med_Out[pos] * para->getVelocityRatio())); + nodedata[7][dn1] = (((double)para->getParH(level)->velocityZ[pos] * (double)para->getVelocityRatio()) - (para->getParH(level)->vz_SP_Med_Out[pos] * para->getVelocityRatio())); + nodedata[8][dn1] = + (((double)para->getParH(level)->velocityX[pos] * (double)para->getVelocityRatio()) - (para->getParH(level)->vx_SP_Med_Out[pos] * para->getVelocityRatio())) * + (((double)para->getParH(level)->velocityX[pos] * (double)para->getVelocityRatio()) - (para->getParH(level)->vx_SP_Med_Out[pos] * para->getVelocityRatio())); + nodedata[9][dn1] = + (((double)para->getParH(level)->velocityY[pos] * (double)para->getVelocityRatio()) - (para->getParH(level)->vy_SP_Med_Out[pos] * para->getVelocityRatio())) * + (((double)para->getParH(level)->velocityY[pos] * (double)para->getVelocityRatio()) - (para->getParH(level)->vy_SP_Med_Out[pos] * para->getVelocityRatio())); + nodedata[10][dn1] = + (((double)para->getParH(level)->velocityZ[pos] * (double)para->getVelocityRatio()) - (para->getParH(level)->vz_SP_Med_Out[pos] * para->getVelocityRatio())) * + (((double)para->getParH(level)->velocityZ[pos] * (double)para->getVelocityRatio()) - (para->getParH(level)->vz_SP_Med_Out[pos] * para->getVelocityRatio())); + nodedata[11][dn1] = + (((double)para->getParH(level)->velocityX[pos] * (double)para->getVelocityRatio()) - (para->getParH(level)->vx_SP_Med_Out[pos] * para->getVelocityRatio())) * + (((double)para->getParH(level)->velocityY[pos] * (double)para->getVelocityRatio()) - (para->getParH(level)->vy_SP_Med_Out[pos] * para->getVelocityRatio())); + //nodedata[8][dn1] = (((double)para->getParH(level)->velocityX[pos] * (double)para->getVelocityRatio()) * ((double)para->getParH(level)->velocityX[pos] * (double)para->getVelocityRatio())); + //nodedata[9][dn1] = (((double)para->getParH(level)->velocityY[pos] * (double)para->getVelocityRatio()) * ((double)para->getParH(level)->velocityY[pos] * (double)para->getVelocityRatio())); + //nodedata[10][dn1] = (((double)para->getParH(level)->velocityZ[pos] * (double)para->getVelocityRatio()) * ((double)para->getParH(level)->velocityZ[pos] * (double)para->getVelocityRatio())); + nodedata[12][dn1] = (double)para->getParH(level)->typeOfGridNode[pos]; + ////////////////////////////////////////////////////////////////////////// + number2 = para->getParH(level)->neighborX[number1]; + number3 = para->getParH(level)->neighborY[number2]; + number4 = para->getParH(level)->neighborY[number1]; + number5 = para->getParH(level)->neighborZ[number1]; + number6 = para->getParH(level)->neighborZ[number2]; + number7 = para->getParH(level)->neighborZ[number3]; + number8 = para->getParH(level)->neighborZ[number4]; + ////////////////////////////////////////////////////////////////////////// + if (para->getParH(level)->typeOfGridNode[number2] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number3] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number4] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number5] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number6] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number7] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number8] != GEO_FLUID) neighborsFluid = false; + ////////////////////////////////////////////////////////////////////////// + if (number2 > endpos || + number3 > endpos || + number4 > endpos || + number5 > endpos || + number6 > endpos || + number7 > endpos || + number8 > endpos) neighborsFluid = false; + ////////////////////////////////////////////////////////////////////////// + dn2 = number2 - startpos; + dn3 = number3 - startpos; + dn4 = number4 - startpos; + dn5 = number5 - startpos; + dn6 = number6 - startpos; + dn7 = number7 - startpos; + dn8 = number8 - startpos; + ////////////////////////////////////////////////////////////////////////// + if (std::fabs(nodedata[2][dn1]) > std::fabs(vxmax)) vxmax = nodedata[2][dn1]; + ////////////////////////////////////////////////////////////////////////// + if (neighborsFluid == true) cells.push_back(makeUbTuple(dn1, dn2, dn3, dn4, dn5, dn6, dn7, dn8)); + ////////////////////////////////////////////////////////////////////////// + } + } + WbWriterVtkXmlBinary::getInstance()->writeOctsWithNodeData(fname[part], nodes, cells, nodedatanames, nodedata); + ////////////////////////////////////////////////////////////////////////// + printf("\n vx median max: %.1f at level: %d\n", vxmax, level); + } + } + ////////////////////////////////////////////////////////////////////////// + + + + + + + + ////////////////////////////////////////////////////////////////////////// + void writeUnstrucuredGridEffMedian(Parameter* para, int level, std::string& fname) + { + vector< UbTupleFloat3 > nodes; + vector< UbTupleUInt8 > cells; + vector< string > nodedatanames; + nodedatanames.push_back("pressMed"); + nodedatanames.push_back("rhoMed"); + nodedatanames.push_back("vx1Med"); + nodedatanames.push_back("vx2Med"); + nodedatanames.push_back("vx3Med"); + nodedatanames.push_back("geo"); + unsigned int number1,number2,number3,number4,number5,number6,number7,number8; + bool neighborsFluid; + vector< vector<double>> nodedata(nodedatanames.size()); + + nodes.resize(para->getParH(level)->numberOfNodes); + nodedata[0].resize(para->getParH(level)->numberOfNodes); + nodedata[1].resize(para->getParH(level)->numberOfNodes); + nodedata[2].resize(para->getParH(level)->numberOfNodes); + nodedata[3].resize(para->getParH(level)->numberOfNodes); + nodedata[4].resize(para->getParH(level)->numberOfNodes); + nodedata[5].resize(para->getParH(level)->numberOfNodes); + + for (size_t pos = 0; pos < para->getParH(level)->numberOfNodes; pos++) + { + if (para->getParH(level)->typeOfGridNode[pos] == GEO_FLUID) + { + ////////////////////////////////////////////////////////////////////////// + double x1 = para->getParH(level)->coordinateX[pos]; + double x2 = para->getParH(level)->coordinateY[pos]; + double x3 = para->getParH(level)->coordinateZ[pos]; + double x1P = para->getParH(level)->coordinateX[para->getParH(level)->neighborX[pos]]; + double x2P = para->getParH(level)->coordinateY[para->getParH(level)->neighborY[pos]]; + double x3P = para->getParH(level)->coordinateZ[para->getParH(level)->neighborZ[pos]]; + ////////////////////////////////////////////////////////////////////////// + number1 = pos; + neighborsFluid = true; + ////////////////////////////////////////////////////////////////////////// + nodes[number1]=( makeUbTuple( (float)(x1 ),(float)(x2 ),(float)(x3 ) ) ); + nodedata[0][number1] = para->getParH(level)->press_SP_Med_Out[pos] / 3.0f * para->getDensityRatio() * para->getVelocityRatio() * para->getVelocityRatio(); + nodedata[1][number1] = para->getParH(level)->rho_SP_Med_Out[pos] / 3.0f * para->getDensityRatio() * para->getVelocityRatio() * para->getVelocityRatio(); + nodedata[2][number1] = para->getParH(level)->vx_SP_Med_Out[pos] * para->getVelocityRatio(); + nodedata[3][number1] = para->getParH(level)->vy_SP_Med_Out[pos] * para->getVelocityRatio(); + nodedata[4][number1] = para->getParH(level)->vz_SP_Med_Out[pos] * para->getVelocityRatio(); + nodedata[5][number1] = para->getParH(level)->typeOfGridNode[pos]; + ////////////////////////////////////////////////////////////////////////// + number2 = para->getParH(level)->neighborX[number1]; + number3 = para->getParH(level)->neighborY[number2]; + number4 = para->getParH(level)->neighborY[number1]; + number5 = para->getParH(level)->neighborZ[number1]; + number6 = para->getParH(level)->neighborZ[number2]; + number7 = para->getParH(level)->neighborZ[number3]; + number8 = para->getParH(level)->neighborZ[number4]; + ////////////////////////////////////////////////////////////////////////// + if (para->getParH(level)->typeOfGridNode[number2] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number3] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number4] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number5] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number6] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number7] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number8] != GEO_FLUID ) neighborsFluid=false; + ////////////////////////////////////////////////////////////////////////// + //if (level == 0 && + // (number2 <= number1 || + // number3 <= number1 || + // number4 <= number1 || + // number5 <= number1 || + // number6 <= number1 || + // number7 <= number1 || + // number8 <= number1) ) neighborsFluid=false; + ////////////////////////////////////////////////////////////////////////// + if (neighborsFluid==true) cells.push_back( makeUbTuple(number1,number2,number3,number4,number5,number6,number7,number8) ); + ////////////////////////////////////////////////////////////////////////// + } + } + WbWriterVtkXmlBinary::getInstance()->writeOctsWithNodeData(fname,nodes,cells,nodedatanames,nodedata); + } + ////////////////////////////////////////////////////////////////////////// + + + + + + + + + ////////////////////////////////////////////////////////////////////////// + void writeUnstrucuredGridEff2ndMoments(Parameter* para, int level, std::string& fname) + { + vector< UbTupleFloat3 > nodes; + vector< UbTupleUInt8 > cells; + vector< string > nodedatanames; + nodedatanames.push_back("kxyFromfcNEQ"); + nodedatanames.push_back("kyzFromfcNEQ"); + nodedatanames.push_back("kxzFromfcNEQ"); + nodedatanames.push_back("kxxMyyFromfcNEQ"); + nodedatanames.push_back("kxxMzzFromfcNEQ"); + nodedatanames.push_back("geo"); + unsigned int number1,number2,number3,number4,number5,number6,number7,number8; + bool neighborsFluid; + vector< vector< double > > nodedata(nodedatanames.size()); + + nodes.resize(para->getParH(level)->numberOfNodes); + nodedata[0].resize(para->getParH(level)->numberOfNodes); + nodedata[1].resize(para->getParH(level)->numberOfNodes); + nodedata[2].resize(para->getParH(level)->numberOfNodes); + nodedata[3].resize(para->getParH(level)->numberOfNodes); + nodedata[4].resize(para->getParH(level)->numberOfNodes); + nodedata[5].resize(para->getParH(level)->numberOfNodes); + + for (size_t pos = 0; pos < para->getParH(level)->numberOfNodes; pos++) + { + if (para->getParH(level)->typeOfGridNode[pos] == GEO_FLUID) + { + ////////////////////////////////////////////////////////////////////////// + double x1 = para->getParH(level)->coordinateX[pos]; + double x2 = para->getParH(level)->coordinateY[pos]; + double x3 = para->getParH(level)->coordinateZ[pos]; + double x1P = para->getParH(level)->coordinateX[para->getParH(level)->neighborX[pos]]; + double x2P = para->getParH(level)->coordinateY[para->getParH(level)->neighborY[pos]]; + double x3P = para->getParH(level)->coordinateZ[para->getParH(level)->neighborZ[pos]]; + ////////////////////////////////////////////////////////////////////////// + number1 = pos; + neighborsFluid = true; + ////////////////////////////////////////////////////////////////////////// + nodes[number1]=( makeUbTuple( (float)(x1 ),(float)(x2 ),(float)(x3 ) ) ); + nodedata[0][number1] = para->getParH(level)->kxyFromfcNEQ[pos]; + nodedata[1][number1] = para->getParH(level)->kyzFromfcNEQ[pos]; + nodedata[2][number1] = para->getParH(level)->kxzFromfcNEQ[pos]; + nodedata[3][number1] = para->getParH(level)->kxxMyyFromfcNEQ[pos]; + nodedata[4][number1] = para->getParH(level)->kxxMzzFromfcNEQ[pos]; + nodedata[5][number1] = para->getParH(level)->typeOfGridNode[pos]; + ////////////////////////////////////////////////////////////////////////// + number2 = para->getParH(level)->neighborX[number1]; + number3 = para->getParH(level)->neighborY[number2]; + number4 = para->getParH(level)->neighborY[number1]; + number5 = para->getParH(level)->neighborZ[number1]; + number6 = para->getParH(level)->neighborZ[number2]; + number7 = para->getParH(level)->neighborZ[number3]; + number8 = para->getParH(level)->neighborZ[number4]; + ////////////////////////////////////////////////////////////////////////// + if (para->getParH(level)->typeOfGridNode[number2] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number3] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number4] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number5] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number6] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number7] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number8] != GEO_FLUID ) neighborsFluid=false; + ////////////////////////////////////////////////////////////////////////// + if (neighborsFluid==true) cells.push_back( makeUbTuple(number1,number2,number3,number4,number5,number6,number7,number8) ); + ////////////////////////////////////////////////////////////////////////// + } + } + WbWriterVtkXmlBinary::getInstance()->writeOctsWithNodeData(fname,nodes,cells,nodedatanames,nodedata); + } + ////////////////////////////////////////////////////////////////////////// + + + + + + + + + + + + + + ////////////////////////////////////////////////////////////////////////// + void writeUnstrucuredParticles(Parameter* para, int level, std::string& fname) + { + vector< UbTupleFloat3 > particlePosition; + vector< string > particleDataNames; + particleDataNames.push_back("ID"); + particleDataNames.push_back("timestep"); + particleDataNames.push_back("particleVx"); + particleDataNames.push_back("particleVy"); + particleDataNames.push_back("particleVz"); + //particleDataNames.push_back("tauxx"); + //particleDataNames.push_back("tauyy"); + //particleDataNames.push_back("tauzz"); + //particleDataNames.push_back("tauxy"); + //particleDataNames.push_back("tauxz"); + //particleDataNames.push_back("tauyz"); + vector< vector< double > > particleData(particleDataNames.size()); + ////////////////////////////////////////////////////////////////////////// + unsigned int numberOfParticles = para->getParH(level)->plp.numberOfParticles; + unsigned int timestep = para->getParH(level)->plp.numberOfTimestepsParticles; + ////////////////////////////////////////////////////////////////////////// + unsigned int pos = 0; + unsigned int sizeOfNodes = numberOfParticles * timestep; + ////////////////////////////////////////////////////////////////////////// + particlePosition.resize(sizeOfNodes); + for (unsigned int i = 0; i < particleDataNames.size(); i++) + { + particleData[i].resize(sizeOfNodes); + } + ////////////////////////////////////////////////////////////////////////// + for (unsigned int i = 0; i < timestep; i++) + { + for (unsigned int j = 0; j < numberOfParticles; j++) + { + ////////////////////////////////////////////////////////////////////////// + double x1 = (double)para->getParH(level)->plp.coordXabsolut[pos]; + double x2 = (double)para->getParH(level)->plp.coordYabsolut[pos]; + double x3 = (double)para->getParH(level)->plp.coordZabsolut[pos]; + ////////////////////////////////////////////////////////////////////////// + particlePosition[pos]=( makeUbTuple( (float)(x1 ),(float)(x2 ),(float)(x3 ) ) ); + particleData[0][pos] = (double)para->getParH(level)->plp.ID[j]; + particleData[1][pos] = (double)para->getParH(level)->plp.timestep[i]; + particleData[2][pos] = (double)para->getParH(level)->plp.veloX[pos]; + particleData[3][pos] = (double)para->getParH(level)->plp.veloY[pos]; + particleData[4][pos] = (double)para->getParH(level)->plp.veloZ[pos]; + ////////////////////////////////////////////////////////////////////////// + pos++; + } + } + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + WbWriterVtkXmlBinary::getInstance()->writeNodesWithNodeData(fname,particlePosition,particleDataNames,particleData); + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + } + ////////////////////////////////////////////////////////////////////////// + + + + + + + + + + ////////////////////////////////////////////////////////////////////////// + void writeUnstrucuredGridEff2ndMomentsLT(Parameter* para, int level, vector<string >& fname) + { + vector< UbTupleFloat3 > nodes; + vector< UbTupleUInt8 > cells; + //vector< UbTupleUInt8 > cells2; + vector< string > nodedatanames; + nodedatanames.push_back("kxyFromfcNEQ"); + nodedatanames.push_back("kyzFromfcNEQ"); + nodedatanames.push_back("kxzFromfcNEQ"); + nodedatanames.push_back("kxxMyyFromfcNEQ"); + nodedatanames.push_back("kxxMzzFromfcNEQ"); + nodedatanames.push_back("geo"); + unsigned int number1,number2,number3,number4,number5,number6,number7,number8; + unsigned int dn1,dn2,dn3,dn4,dn5,dn6,dn7,dn8; + bool neighborsFluid; + double vxmax = 0; + unsigned int startpos = 0; + unsigned int endpos = 0; + unsigned int sizeOfNodes = 0; + vector< vector< double > > nodedata(nodedatanames.size()); + + //printf("\n test for if... \n"); + for (unsigned int part=0; part < fname.size(); part++) + { + vxmax = 0; + //printf("\n test in if I... \n"); + ////////////////////////////////////////////////////////////////////////// sizeOfNodes = FilePartCalculator::calculateNumberOfNodesInPart(para->getParH(level)->numberOfNodes); - ////////////////////////////////////////////////////////////////////////// - startpos = FilePartCalculator::calculateStartingPostionOfPart(part); - endpos = startpos + sizeOfNodes; - ////////////////////////////////////////////////////////////////////////// - cells.clear(); - nodes.resize(sizeOfNodes); - nodedata[0].resize(sizeOfNodes); - nodedata[1].resize(sizeOfNodes); - nodedata[2].resize(sizeOfNodes); - nodedata[3].resize(sizeOfNodes); - nodedata[4].resize(sizeOfNodes); - nodedata[5].resize(sizeOfNodes); - ////////////////////////////////////////////////////////////////////////// - //printf("\n test in if II... \n"); - for (unsigned int pos=startpos;pos<endpos;pos++) - { - if (para->getParH(level)->typeOfGridNode[pos] == GEO_FLUID) - { - ////////////////////////////////////////////////////////////////////////// - double x1 = para->getParH(level)->coordinateX[pos]; - double x2 = para->getParH(level)->coordinateY[pos]; - double x3 = para->getParH(level)->coordinateZ[pos]; - double x1P = para->getParH(level)->coordinateX[para->getParH(level)->neighborX[pos]]; - double x2P = para->getParH(level)->coordinateY[para->getParH(level)->neighborY[pos]]; - double x3P = para->getParH(level)->coordinateZ[para->getParH(level)->neighborZ[pos]]; - ////////////////////////////////////////////////////////////////////////// - number1 = pos; - neighborsFluid = true; - ////////////////////////////////////////////////////////////////////////// - nodes[number1]=( makeUbTuple( (float)(x1 ),(float)(x2 ),(float)(x3 ) ) ); - nodedata[0][number1] = para->getParH(level)->kxyFromfcNEQ[pos]; - nodedata[1][number1] = para->getParH(level)->kyzFromfcNEQ[pos]; - nodedata[2][number1] = para->getParH(level)->kxzFromfcNEQ[pos]; - nodedata[3][number1] = para->getParH(level)->kxxMyyFromfcNEQ[pos]; - nodedata[4][number1] = para->getParH(level)->kxxMzzFromfcNEQ[pos]; - nodedata[5][number1] = para->getParH(level)->typeOfGridNode[pos]; - ////////////////////////////////////////////////////////////////////////// - number2 = para->getParH(level)->neighborX[number1]; - number3 = para->getParH(level)->neighborY[number2]; - number4 = para->getParH(level)->neighborY[number1]; - number5 = para->getParH(level)->neighborZ[number1]; - number6 = para->getParH(level)->neighborZ[number2]; - number7 = para->getParH(level)->neighborZ[number3]; - number8 = para->getParH(level)->neighborZ[number4]; - ////////////////////////////////////////////////////////////////////////// - if (para->getParH(level)->typeOfGridNode[number2] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number3] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number4] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number5] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number6] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number7] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number8] != GEO_FLUID ) neighborsFluid=false; - ////////////////////////////////////////////////////////////////////////// - if (neighborsFluid==true) cells.push_back( makeUbTuple(number1,number2,number3,number4,number5,number6,number7,number8) ); - ////////////////////////////////////////////////////////////////////////// - } - } - WbWriterVtkXmlBinary::getInstance()->writeOctsWithNodeData(fname[part],nodes,cells,nodedatanames,nodedata); - } - } - ////////////////////////////////////////////////////////////////////////// - - - - - - - ////////////////////////////////////////////////////////////////////////// - void writeUnstrucuredGridEff3rdMomentsLT(Parameter* para, int level, vector<string >& fname) - { - vector< UbTupleFloat3 > nodes; - vector< UbTupleUInt8 > cells; - //vector< UbTupleUInt8 > cells2; - vector< string > nodedatanames; - nodedatanames.push_back("CUMbbb"); - nodedatanames.push_back("CUMabc"); - nodedatanames.push_back("CUMbac"); - nodedatanames.push_back("CUMbca"); - nodedatanames.push_back("CUMcba"); - nodedatanames.push_back("CUMacb"); - nodedatanames.push_back("CUMcab"); - nodedatanames.push_back("geo"); - unsigned int number1,number2,number3,number4,number5,number6,number7,number8; - unsigned int dn1,dn2,dn3,dn4,dn5,dn6,dn7,dn8; - bool neighborsFluid; - double vxmax = 0; - unsigned int startpos = 0; - unsigned int endpos = 0; - unsigned int sizeOfNodes = 0; - vector< vector< double > > nodedata(nodedatanames.size()); - - //printf("\n test for if... \n"); - for (unsigned int part=0; part < fname.size(); part++) - { - vxmax = 0; - //printf("\n test in if I... \n"); - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// + startpos = FilePartCalculator::calculateStartingPostionOfPart(part); + endpos = startpos + sizeOfNodes; + ////////////////////////////////////////////////////////////////////////// + cells.clear(); + nodes.resize(sizeOfNodes); + nodedata[0].resize(sizeOfNodes); + nodedata[1].resize(sizeOfNodes); + nodedata[2].resize(sizeOfNodes); + nodedata[3].resize(sizeOfNodes); + nodedata[4].resize(sizeOfNodes); + nodedata[5].resize(sizeOfNodes); + ////////////////////////////////////////////////////////////////////////// + //printf("\n test in if II... \n"); + for (unsigned int pos=startpos;pos<endpos;pos++) + { + if (para->getParH(level)->typeOfGridNode[pos] == GEO_FLUID) + { + ////////////////////////////////////////////////////////////////////////// + double x1 = para->getParH(level)->coordinateX[pos]; + double x2 = para->getParH(level)->coordinateY[pos]; + double x3 = para->getParH(level)->coordinateZ[pos]; + double x1P = para->getParH(level)->coordinateX[para->getParH(level)->neighborX[pos]]; + double x2P = para->getParH(level)->coordinateY[para->getParH(level)->neighborY[pos]]; + double x3P = para->getParH(level)->coordinateZ[para->getParH(level)->neighborZ[pos]]; + ////////////////////////////////////////////////////////////////////////// + number1 = pos; + neighborsFluid = true; + ////////////////////////////////////////////////////////////////////////// + nodes[number1]=( makeUbTuple( (float)(x1 ),(float)(x2 ),(float)(x3 ) ) ); + nodedata[0][number1] = para->getParH(level)->kxyFromfcNEQ[pos]; + nodedata[1][number1] = para->getParH(level)->kyzFromfcNEQ[pos]; + nodedata[2][number1] = para->getParH(level)->kxzFromfcNEQ[pos]; + nodedata[3][number1] = para->getParH(level)->kxxMyyFromfcNEQ[pos]; + nodedata[4][number1] = para->getParH(level)->kxxMzzFromfcNEQ[pos]; + nodedata[5][number1] = para->getParH(level)->typeOfGridNode[pos]; + ////////////////////////////////////////////////////////////////////////// + number2 = para->getParH(level)->neighborX[number1]; + number3 = para->getParH(level)->neighborY[number2]; + number4 = para->getParH(level)->neighborY[number1]; + number5 = para->getParH(level)->neighborZ[number1]; + number6 = para->getParH(level)->neighborZ[number2]; + number7 = para->getParH(level)->neighborZ[number3]; + number8 = para->getParH(level)->neighborZ[number4]; + ////////////////////////////////////////////////////////////////////////// + if (para->getParH(level)->typeOfGridNode[number2] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number3] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number4] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number5] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number6] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number7] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number8] != GEO_FLUID ) neighborsFluid=false; + ////////////////////////////////////////////////////////////////////////// + if (neighborsFluid==true) cells.push_back( makeUbTuple(number1,number2,number3,number4,number5,number6,number7,number8) ); + ////////////////////////////////////////////////////////////////////////// + } + } + WbWriterVtkXmlBinary::getInstance()->writeOctsWithNodeData(fname[part],nodes,cells,nodedatanames,nodedata); + } + } + ////////////////////////////////////////////////////////////////////////// + + + + + + + ////////////////////////////////////////////////////////////////////////// + void writeUnstrucuredGridEff3rdMomentsLT(Parameter* para, int level, vector<string >& fname) + { + vector< UbTupleFloat3 > nodes; + vector< UbTupleUInt8 > cells; + //vector< UbTupleUInt8 > cells2; + vector< string > nodedatanames; + nodedatanames.push_back("CUMbbb"); + nodedatanames.push_back("CUMabc"); + nodedatanames.push_back("CUMbac"); + nodedatanames.push_back("CUMbca"); + nodedatanames.push_back("CUMcba"); + nodedatanames.push_back("CUMacb"); + nodedatanames.push_back("CUMcab"); + nodedatanames.push_back("geo"); + unsigned int number1,number2,number3,number4,number5,number6,number7,number8; + unsigned int dn1,dn2,dn3,dn4,dn5,dn6,dn7,dn8; + bool neighborsFluid; + double vxmax = 0; + unsigned int startpos = 0; + unsigned int endpos = 0; + unsigned int sizeOfNodes = 0; + vector< vector< double > > nodedata(nodedatanames.size()); + + //printf("\n test for if... \n"); + for (unsigned int part=0; part < fname.size(); part++) + { + vxmax = 0; + //printf("\n test in if I... \n"); + ////////////////////////////////////////////////////////////////////////// sizeOfNodes = FilePartCalculator::calculateNumberOfNodesInPart(para->getParH(level)->numberOfNodes); - ////////////////////////////////////////////////////////////////////////// - startpos = FilePartCalculator::calculateStartingPostionOfPart(part); - endpos = startpos + sizeOfNodes; - ////////////////////////////////////////////////////////////////////////// - cells.clear(); - nodes.resize(sizeOfNodes); - nodedata[0].resize(sizeOfNodes); - nodedata[1].resize(sizeOfNodes); - nodedata[2].resize(sizeOfNodes); - nodedata[3].resize(sizeOfNodes); - nodedata[4].resize(sizeOfNodes); - nodedata[5].resize(sizeOfNodes); - nodedata[6].resize(sizeOfNodes); - nodedata[7].resize(sizeOfNodes); - ////////////////////////////////////////////////////////////////////////// - //printf("\n test in if II... \n"); - for (unsigned int pos=startpos;pos<endpos;pos++) - { - if (para->getParH(level)->typeOfGridNode[pos] == GEO_FLUID) - { - ////////////////////////////////////////////////////////////////////////// - double x1 = para->getParH(level)->coordinateX[pos]; - double x2 = para->getParH(level)->coordinateY[pos]; - double x3 = para->getParH(level)->coordinateZ[pos]; - double x1P = para->getParH(level)->coordinateX[para->getParH(level)->neighborX[pos]]; - double x2P = para->getParH(level)->coordinateY[para->getParH(level)->neighborY[pos]]; - double x3P = para->getParH(level)->coordinateZ[para->getParH(level)->neighborZ[pos]]; - ////////////////////////////////////////////////////////////////////////// - number1 = pos; - neighborsFluid = true; - ////////////////////////////////////////////////////////////////////////// - nodes[number1]=( makeUbTuple( (float)(x1 ),(float)(x2 ),(float)(x3 ) ) ); - nodedata[0][number1] = para->getParH(level)->CUMbbb[pos]; - nodedata[1][number1] = para->getParH(level)->CUMabc[pos]; - nodedata[2][number1] = para->getParH(level)->CUMbac[pos]; - nodedata[3][number1] = para->getParH(level)->CUMbca[pos]; - nodedata[4][number1] = para->getParH(level)->CUMcba[pos]; - nodedata[5][number1] = para->getParH(level)->CUMacb[pos]; - nodedata[6][number1] = para->getParH(level)->CUMcab[pos]; - nodedata[7][number1] = para->getParH(level)->typeOfGridNode[pos]; - ////////////////////////////////////////////////////////////////////////// - number2 = para->getParH(level)->neighborX[number1]; - number3 = para->getParH(level)->neighborY[number2]; - number4 = para->getParH(level)->neighborY[number1]; - number5 = para->getParH(level)->neighborZ[number1]; - number6 = para->getParH(level)->neighborZ[number2]; - number7 = para->getParH(level)->neighborZ[number3]; - number8 = para->getParH(level)->neighborZ[number4]; - ////////////////////////////////////////////////////////////////////////// - if (para->getParH(level)->typeOfGridNode[number2] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number3] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number4] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number5] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number6] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number7] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number8] != GEO_FLUID ) neighborsFluid=false; - ////////////////////////////////////////////////////////////////////////// - if (neighborsFluid==true) cells.push_back( makeUbTuple(number1,number2,number3,number4,number5,number6,number7,number8) ); - ////////////////////////////////////////////////////////////////////////// - } - } - WbWriterVtkXmlBinary::getInstance()->writeOctsWithNodeData(fname[part],nodes,cells,nodedatanames,nodedata); - } - } - ////////////////////////////////////////////////////////////////////////// - - - - - - - ////////////////////////////////////////////////////////////////////////// - void writeUnstrucuredGridEffHigherMomentsLT(Parameter* para, int level, vector<string >& fname) - { - vector< UbTupleFloat3 > nodes; - vector< UbTupleUInt8 > cells; - //vector< UbTupleUInt8 > cells2; - vector< string > nodedatanames; - nodedatanames.push_back("CUMcbb"); - nodedatanames.push_back("CUMbcb"); - nodedatanames.push_back("CUMbbc"); - nodedatanames.push_back("CUMcca"); - nodedatanames.push_back("CUMcac"); - nodedatanames.push_back("CUMacc"); - nodedatanames.push_back("CUMbcc"); - nodedatanames.push_back("CUMcbc"); - nodedatanames.push_back("CUMccb"); - nodedatanames.push_back("CUMccc"); - nodedatanames.push_back("geo"); - unsigned int number1,number2,number3,number4,number5,number6,number7,number8; - unsigned int dn1,dn2,dn3,dn4,dn5,dn6,dn7,dn8; - bool neighborsFluid; - double vxmax = 0; - unsigned int startpos = 0; - unsigned int endpos = 0; - unsigned int sizeOfNodes = 0; - vector< vector< double > > nodedata(nodedatanames.size()); - - //printf("\n test for if... \n"); - for (unsigned int part=0; part < fname.size(); part++) - { - vxmax = 0; - //printf("\n test in if I... \n"); - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// + startpos = FilePartCalculator::calculateStartingPostionOfPart(part); + endpos = startpos + sizeOfNodes; + ////////////////////////////////////////////////////////////////////////// + cells.clear(); + nodes.resize(sizeOfNodes); + nodedata[0].resize(sizeOfNodes); + nodedata[1].resize(sizeOfNodes); + nodedata[2].resize(sizeOfNodes); + nodedata[3].resize(sizeOfNodes); + nodedata[4].resize(sizeOfNodes); + nodedata[5].resize(sizeOfNodes); + nodedata[6].resize(sizeOfNodes); + nodedata[7].resize(sizeOfNodes); + ////////////////////////////////////////////////////////////////////////// + //printf("\n test in if II... \n"); + for (unsigned int pos=startpos;pos<endpos;pos++) + { + if (para->getParH(level)->typeOfGridNode[pos] == GEO_FLUID) + { + ////////////////////////////////////////////////////////////////////////// + double x1 = para->getParH(level)->coordinateX[pos]; + double x2 = para->getParH(level)->coordinateY[pos]; + double x3 = para->getParH(level)->coordinateZ[pos]; + double x1P = para->getParH(level)->coordinateX[para->getParH(level)->neighborX[pos]]; + double x2P = para->getParH(level)->coordinateY[para->getParH(level)->neighborY[pos]]; + double x3P = para->getParH(level)->coordinateZ[para->getParH(level)->neighborZ[pos]]; + ////////////////////////////////////////////////////////////////////////// + number1 = pos; + neighborsFluid = true; + ////////////////////////////////////////////////////////////////////////// + nodes[number1]=( makeUbTuple( (float)(x1 ),(float)(x2 ),(float)(x3 ) ) ); + nodedata[0][number1] = para->getParH(level)->CUMbbb[pos]; + nodedata[1][number1] = para->getParH(level)->CUMabc[pos]; + nodedata[2][number1] = para->getParH(level)->CUMbac[pos]; + nodedata[3][number1] = para->getParH(level)->CUMbca[pos]; + nodedata[4][number1] = para->getParH(level)->CUMcba[pos]; + nodedata[5][number1] = para->getParH(level)->CUMacb[pos]; + nodedata[6][number1] = para->getParH(level)->CUMcab[pos]; + nodedata[7][number1] = para->getParH(level)->typeOfGridNode[pos]; + ////////////////////////////////////////////////////////////////////////// + number2 = para->getParH(level)->neighborX[number1]; + number3 = para->getParH(level)->neighborY[number2]; + number4 = para->getParH(level)->neighborY[number1]; + number5 = para->getParH(level)->neighborZ[number1]; + number6 = para->getParH(level)->neighborZ[number2]; + number7 = para->getParH(level)->neighborZ[number3]; + number8 = para->getParH(level)->neighborZ[number4]; + ////////////////////////////////////////////////////////////////////////// + if (para->getParH(level)->typeOfGridNode[number2] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number3] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number4] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number5] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number6] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number7] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number8] != GEO_FLUID ) neighborsFluid=false; + ////////////////////////////////////////////////////////////////////////// + if (neighborsFluid==true) cells.push_back( makeUbTuple(number1,number2,number3,number4,number5,number6,number7,number8) ); + ////////////////////////////////////////////////////////////////////////// + } + } + WbWriterVtkXmlBinary::getInstance()->writeOctsWithNodeData(fname[part],nodes,cells,nodedatanames,nodedata); + } + } + ////////////////////////////////////////////////////////////////////////// + + + + + + + ////////////////////////////////////////////////////////////////////////// + void writeUnstrucuredGridEffHigherMomentsLT(Parameter* para, int level, vector<string >& fname) + { + vector< UbTupleFloat3 > nodes; + vector< UbTupleUInt8 > cells; + //vector< UbTupleUInt8 > cells2; + vector< string > nodedatanames; + nodedatanames.push_back("CUMcbb"); + nodedatanames.push_back("CUMbcb"); + nodedatanames.push_back("CUMbbc"); + nodedatanames.push_back("CUMcca"); + nodedatanames.push_back("CUMcac"); + nodedatanames.push_back("CUMacc"); + nodedatanames.push_back("CUMbcc"); + nodedatanames.push_back("CUMcbc"); + nodedatanames.push_back("CUMccb"); + nodedatanames.push_back("CUMccc"); + nodedatanames.push_back("geo"); + unsigned int number1,number2,number3,number4,number5,number6,number7,number8; + unsigned int dn1,dn2,dn3,dn4,dn5,dn6,dn7,dn8; + bool neighborsFluid; + double vxmax = 0; + unsigned int startpos = 0; + unsigned int endpos = 0; + unsigned int sizeOfNodes = 0; + vector< vector< double > > nodedata(nodedatanames.size()); + + //printf("\n test for if... \n"); + for (unsigned int part=0; part < fname.size(); part++) + { + vxmax = 0; + //printf("\n test in if I... \n"); + ////////////////////////////////////////////////////////////////////////// sizeOfNodes = FilePartCalculator::calculateNumberOfNodesInPart(para->getParH(level)->numberOfNodes); - ////////////////////////////////////////////////////////////////////////// - startpos = FilePartCalculator::calculateStartingPostionOfPart(part); - endpos = startpos + sizeOfNodes; - ////////////////////////////////////////////////////////////////////////// - cells.clear(); - nodes.resize(sizeOfNodes); - nodedata[0].resize(sizeOfNodes); - nodedata[1].resize(sizeOfNodes); - nodedata[2].resize(sizeOfNodes); - nodedata[3].resize(sizeOfNodes); - nodedata[4].resize(sizeOfNodes); - nodedata[5].resize(sizeOfNodes); - nodedata[6].resize(sizeOfNodes); - nodedata[7].resize(sizeOfNodes); - nodedata[8].resize(sizeOfNodes); - nodedata[9].resize(sizeOfNodes); - nodedata[10].resize(sizeOfNodes); - ////////////////////////////////////////////////////////////////////////// - //printf("\n test in if II... \n"); - for (unsigned int pos=startpos;pos<endpos;pos++) - { - if (para->getParH(level)->typeOfGridNode[pos] == GEO_FLUID) - { - ////////////////////////////////////////////////////////////////////////// - double x1 = para->getParH(level)->coordinateX[pos]; - double x2 = para->getParH(level)->coordinateY[pos]; - double x3 = para->getParH(level)->coordinateZ[pos]; - double x1P = para->getParH(level)->coordinateX[para->getParH(level)->neighborX[pos]]; - double x2P = para->getParH(level)->coordinateY[para->getParH(level)->neighborY[pos]]; - double x3P = para->getParH(level)->coordinateZ[para->getParH(level)->neighborZ[pos]]; - ////////////////////////////////////////////////////////////////////////// - number1 = pos; - neighborsFluid = true; - ////////////////////////////////////////////////////////////////////////// - nodes[number1]=( makeUbTuple( (float)(x1 ),(float)(x2 ),(float)(x3 ) ) ); - nodedata[0][number1] = para->getParH(level)->CUMcbb[pos]; - nodedata[1][number1] = para->getParH(level)->CUMbcb[pos]; - nodedata[2][number1] = para->getParH(level)->CUMbbc[pos]; - nodedata[3][number1] = para->getParH(level)->CUMcca[pos]; - nodedata[4][number1] = para->getParH(level)->CUMcac[pos]; - nodedata[5][number1] = para->getParH(level)->CUMacc[pos]; - nodedata[6][number1] = para->getParH(level)->CUMbcc[pos]; - nodedata[7][number1] = para->getParH(level)->CUMcbc[pos]; - nodedata[8][number1] = para->getParH(level)->CUMccb[pos]; - nodedata[9][number1] = para->getParH(level)->CUMccc[pos]; - nodedata[10][number1] = para->getParH(level)->typeOfGridNode[pos]; - ////////////////////////////////////////////////////////////////////////// - number2 = para->getParH(level)->neighborX[number1]; - number3 = para->getParH(level)->neighborY[number2]; - number4 = para->getParH(level)->neighborY[number1]; - number5 = para->getParH(level)->neighborZ[number1]; - number6 = para->getParH(level)->neighborZ[number2]; - number7 = para->getParH(level)->neighborZ[number3]; - number8 = para->getParH(level)->neighborZ[number4]; - ////////////////////////////////////////////////////////////////////////// - if (para->getParH(level)->typeOfGridNode[number2] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number3] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number4] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number5] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number6] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number7] != GEO_FLUID || - para->getParH(level)->typeOfGridNode[number8] != GEO_FLUID ) neighborsFluid=false; - ////////////////////////////////////////////////////////////////////////// - if (neighborsFluid==true) cells.push_back( makeUbTuple(number1,number2,number3,number4,number5,number6,number7,number8) ); - ////////////////////////////////////////////////////////////////////////// - } - } - WbWriterVtkXmlBinary::getInstance()->writeOctsWithNodeData(fname[part],nodes,cells,nodedatanames,nodedata); - } - } - ////////////////////////////////////////////////////////////////////////// - - - - - - - ////////////////////////////////////////////////////////////////////////// - void writeQs(Parameter* para, int level, std::string& fname) - { - vector< UbTupleFloat3 > nodes; - vector< UbTupleInt2 > qs; - unsigned int startpos = 0; - unsigned int endpos = 0; - unsigned int sizeOfNodes = 0; - int node = 0; - int wall = 1; - int line = 0; - double dx = 1.0 / pow(2, level); - real* QQ; - QforBoundaryConditions Q; - double nodeX1, nodeX2, nodeX3, wallX1, wallX2, wallX3, q; - ////////////////////////////////////////////////////////////////////////// - sizeOfNodes = para->getParH(level)->geometryBC.numberOfBCnodes; - endpos = startpos + sizeOfNodes; - ////////////////////////////////////////////////////////////////////////// - //qs.clear(); - //nodes.clear(); - unsigned int numberOfLines = para->getD3Qxx() * sizeOfNodes; - unsigned int numberOfNodes = numberOfLines * 2; - qs.resize(numberOfLines); - nodes.resize(numberOfNodes); - ////////////////////////////////////////////////////////////////////////// - vector< string > nodedatanames; - nodedatanames.push_back("sizeQ"); - vector< vector< double > > nodedata(nodedatanames.size()); - nodedata[0].resize(numberOfNodes); - ////////////////////////////////////////////////////////////////////////// - for (unsigned int pos = startpos; pos < endpos; pos++) - { - ////////////////////////////////////////////////////////////////////////// - nodeX1 = para->getParH(level)->coordinateX[para->getParH(level)->geometryBC.k[pos]]; - nodeX2 = para->getParH(level)->coordinateY[para->getParH(level)->geometryBC.k[pos]]; - nodeX3 = para->getParH(level)->coordinateZ[para->getParH(level)->geometryBC.k[pos]]; - wallX1 = 0.0; - wallX2 = 0.0; - wallX3 = 0.0; - q = 0.0; - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// + startpos = FilePartCalculator::calculateStartingPostionOfPart(part); + endpos = startpos + sizeOfNodes; + ////////////////////////////////////////////////////////////////////////// + cells.clear(); + nodes.resize(sizeOfNodes); + nodedata[0].resize(sizeOfNodes); + nodedata[1].resize(sizeOfNodes); + nodedata[2].resize(sizeOfNodes); + nodedata[3].resize(sizeOfNodes); + nodedata[4].resize(sizeOfNodes); + nodedata[5].resize(sizeOfNodes); + nodedata[6].resize(sizeOfNodes); + nodedata[7].resize(sizeOfNodes); + nodedata[8].resize(sizeOfNodes); + nodedata[9].resize(sizeOfNodes); + nodedata[10].resize(sizeOfNodes); + ////////////////////////////////////////////////////////////////////////// + //printf("\n test in if II... \n"); + for (unsigned int pos=startpos;pos<endpos;pos++) + { + if (para->getParH(level)->typeOfGridNode[pos] == GEO_FLUID) + { + ////////////////////////////////////////////////////////////////////////// + double x1 = para->getParH(level)->coordinateX[pos]; + double x2 = para->getParH(level)->coordinateY[pos]; + double x3 = para->getParH(level)->coordinateZ[pos]; + double x1P = para->getParH(level)->coordinateX[para->getParH(level)->neighborX[pos]]; + double x2P = para->getParH(level)->coordinateY[para->getParH(level)->neighborY[pos]]; + double x3P = para->getParH(level)->coordinateZ[para->getParH(level)->neighborZ[pos]]; + ////////////////////////////////////////////////////////////////////////// + number1 = pos; + neighborsFluid = true; + ////////////////////////////////////////////////////////////////////////// + nodes[number1]=( makeUbTuple( (float)(x1 ),(float)(x2 ),(float)(x3 ) ) ); + nodedata[0][number1] = para->getParH(level)->CUMcbb[pos]; + nodedata[1][number1] = para->getParH(level)->CUMbcb[pos]; + nodedata[2][number1] = para->getParH(level)->CUMbbc[pos]; + nodedata[3][number1] = para->getParH(level)->CUMcca[pos]; + nodedata[4][number1] = para->getParH(level)->CUMcac[pos]; + nodedata[5][number1] = para->getParH(level)->CUMacc[pos]; + nodedata[6][number1] = para->getParH(level)->CUMbcc[pos]; + nodedata[7][number1] = para->getParH(level)->CUMcbc[pos]; + nodedata[8][number1] = para->getParH(level)->CUMccb[pos]; + nodedata[9][number1] = para->getParH(level)->CUMccc[pos]; + nodedata[10][number1] = para->getParH(level)->typeOfGridNode[pos]; + ////////////////////////////////////////////////////////////////////////// + number2 = para->getParH(level)->neighborX[number1]; + number3 = para->getParH(level)->neighborY[number2]; + number4 = para->getParH(level)->neighborY[number1]; + number5 = para->getParH(level)->neighborZ[number1]; + number6 = para->getParH(level)->neighborZ[number2]; + number7 = para->getParH(level)->neighborZ[number3]; + number8 = para->getParH(level)->neighborZ[number4]; + ////////////////////////////////////////////////////////////////////////// + if (para->getParH(level)->typeOfGridNode[number2] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number3] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number4] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number5] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number6] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number7] != GEO_FLUID || + para->getParH(level)->typeOfGridNode[number8] != GEO_FLUID ) neighborsFluid=false; + ////////////////////////////////////////////////////////////////////////// + if (neighborsFluid==true) cells.push_back( makeUbTuple(number1,number2,number3,number4,number5,number6,number7,number8) ); + ////////////////////////////////////////////////////////////////////////// + } + } + WbWriterVtkXmlBinary::getInstance()->writeOctsWithNodeData(fname[part],nodes,cells,nodedatanames,nodedata); + } + } + ////////////////////////////////////////////////////////////////////////// + + + + + + + ////////////////////////////////////////////////////////////////////////// + void writeQs(Parameter* para, int level, std::string& fname) + { + vector< UbTupleFloat3 > nodes; + vector< UbTupleInt2 > qs; + unsigned int startpos = 0; + unsigned int endpos = 0; + unsigned int sizeOfNodes = 0; + int node = 0; + int wall = 1; + int line = 0; + double dx = 1.0 / pow(2, level); + real* QQ; + QforBoundaryConditions Q; + double nodeX1, nodeX2, nodeX3, wallX1, wallX2, wallX3, q; + ////////////////////////////////////////////////////////////////////////// + sizeOfNodes = para->getParH(level)->geometryBC.numberOfBCnodes; + endpos = startpos + sizeOfNodes; + ////////////////////////////////////////////////////////////////////////// + //qs.clear(); + //nodes.clear(); + unsigned int numberOfLines = para->getD3Qxx() * sizeOfNodes; + unsigned int numberOfNodes = numberOfLines * 2; + qs.resize(numberOfLines); + nodes.resize(numberOfNodes); + ////////////////////////////////////////////////////////////////////////// + vector< string > nodedatanames; + nodedatanames.push_back("sizeQ"); + vector< vector< double > > nodedata(nodedatanames.size()); + nodedata[0].resize(numberOfNodes); + ////////////////////////////////////////////////////////////////////////// + for (unsigned int pos = startpos; pos < endpos; pos++) + { + ////////////////////////////////////////////////////////////////////////// + nodeX1 = para->getParH(level)->coordinateX[para->getParH(level)->geometryBC.k[pos]]; + nodeX2 = para->getParH(level)->coordinateY[para->getParH(level)->geometryBC.k[pos]]; + nodeX3 = para->getParH(level)->coordinateZ[para->getParH(level)->geometryBC.k[pos]]; + wallX1 = 0.0; + wallX2 = 0.0; + wallX3 = 0.0; + q = 0.0; + ////////////////////////////////////////////////////////////////////////// for (size_t typeOfQ = vf::lbm::dir::STARTDIR; typeOfQ <= vf::lbm::dir::ENDDIR; typeOfQ++) - { - QQ = para->getParH(level)->geometryBC.q27[0]; - Q.q27[typeOfQ] = &QQ[typeOfQ*sizeOfNodes]; - q = (double)(Q.q27[typeOfQ][pos]); - ////////////////////////////////////////////////////////////////////////// - switch (typeOfQ) - { - case E: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2; wallX3 = nodeX3; break; - case N: wallX1 = nodeX1; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3; break; - case W: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2; wallX3 = nodeX3; break; - case S: wallX1 = nodeX1; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3; break; - case NE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3; break; - case NW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3; break; - case SW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3; break; - case SE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3; break; - case T: wallX1 = nodeX1; wallX2 = nodeX2; wallX3 = nodeX3 + q*dx; break; - case TE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2; wallX3 = nodeX3 + q*dx; break; - case TN: wallX1 = nodeX1; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 + q*dx; break; - case TW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2; wallX3 = nodeX3 + q*dx; break; - case TS: wallX1 = nodeX1; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 + q*dx; break; - case B: wallX1 = nodeX1; wallX2 = nodeX2; wallX3 = nodeX3 - q*dx; break; - case BE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2; wallX3 = nodeX3 - q*dx; break; - case BN: wallX1 = nodeX1; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 - q*dx; break; - case BW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2; wallX3 = nodeX3 - q*dx; break; - case BS: wallX1 = nodeX1; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 - q*dx; break; - case TNE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 + q*dx; break; - case BSW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 - q*dx; break; - case BNE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 - q*dx; break; - case TSW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 + q*dx; break; - case TSE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 + q*dx; break; - case BNW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 - q*dx; break; - case BSE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 - q*dx; break; - case TNW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 + q*dx; break; - case REST:wallX1 = nodeX1; wallX2 = nodeX2; wallX3 = nodeX3; break; - default: throw UbException(UB_EXARGS, "unknown direction"); - } - ////////////////////////////////////////////////////////////////////////// - nodes[node] = makeUbTuple((float)(nodeX1), (float)(nodeX2), (float)(nodeX3)); - nodes[wall] = makeUbTuple((float)(wallX1), (float)(wallX2), (float)(wallX3)); - qs[line] = makeUbTuple(node, wall); - ////////////////////////////////////////////////////////////////////////// - nodedata[0][node] = q; - nodedata[0][wall] = q; - ////////////////////////////////////////////////////////////////////////// - node = node + 2; - wall = wall + 2; - line++; - ////////////////////////////////////////////////////////////////////////// - } - } - WbWriterVtkXmlBinary::getInstance()->writeLines(fname, nodes, qs); - //WbWriterVtkXmlBinary::getInstance()->writeLinesWithNodeData(fname, nodes, qs, nodedatanames, nodedata); - //WbWriterVtkXmlASCII::getInstance()->writeLinesWithNodeData(fname, nodes, qs, nodedatanames, nodedata); - } - ////////////////////////////////////////////////////////////////////////// - - - - - - - ////////////////////////////////////////////////////////////////////////// - void writeQsInflow(Parameter* para, int level, std::string& fname) - { - vector< UbTupleFloat3 > nodes; - vector< UbTupleInt2 > qs; - unsigned int startpos = 0; - unsigned int endpos = 0; - unsigned int sizeOfNodes = 0; - int node = 0; - int wall = 1; - int line = 0; - double dx = 1.0 / pow(2, level); - real* QQ; - QforBoundaryConditions Q; - double nodeX1, nodeX2, nodeX3, wallX1, wallX2, wallX3, q; - ////////////////////////////////////////////////////////////////////////// - sizeOfNodes = para->getParH(level)->velocityBC.numberOfBCnodes; - endpos = startpos + sizeOfNodes; - ////////////////////////////////////////////////////////////////////////// - //qs.clear(); - //nodes.clear(); - unsigned int numberOfLines = para->getD3Qxx() * sizeOfNodes; - unsigned int numberOfNodes = numberOfLines * 2; - qs.resize(numberOfLines); - nodes.resize(numberOfNodes); - ////////////////////////////////////////////////////////////////////////// - vector< string > nodedatanames; - nodedatanames.push_back("sizeQ"); - vector< vector< double > > nodedata(nodedatanames.size()); - nodedata[0].resize(numberOfNodes); - ////////////////////////////////////////////////////////////////////////// - for (unsigned int pos = startpos; pos < endpos; pos++) - { - ////////////////////////////////////////////////////////////////////////// - nodeX1 = para->getParH(level)->coordinateX[para->getParH(level)->velocityBC.k[pos]]; - nodeX2 = para->getParH(level)->coordinateY[para->getParH(level)->velocityBC.k[pos]]; - nodeX3 = para->getParH(level)->coordinateZ[para->getParH(level)->velocityBC.k[pos]]; - wallX1 = 0.0; - wallX2 = 0.0; - wallX3 = 0.0; - q = 0.0; - ////////////////////////////////////////////////////////////////////////// + { + QQ = para->getParH(level)->geometryBC.q27[0]; + Q.q27[typeOfQ] = &QQ[typeOfQ*sizeOfNodes]; + q = (double)(Q.q27[typeOfQ][pos]); + ////////////////////////////////////////////////////////////////////////// + switch (typeOfQ) + { + case E: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2; wallX3 = nodeX3; break; + case N: wallX1 = nodeX1; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3; break; + case W: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2; wallX3 = nodeX3; break; + case S: wallX1 = nodeX1; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3; break; + case NE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3; break; + case NW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3; break; + case SW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3; break; + case SE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3; break; + case T: wallX1 = nodeX1; wallX2 = nodeX2; wallX3 = nodeX3 + q*dx; break; + case TE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2; wallX3 = nodeX3 + q*dx; break; + case TN: wallX1 = nodeX1; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 + q*dx; break; + case TW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2; wallX3 = nodeX3 + q*dx; break; + case TS: wallX1 = nodeX1; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 + q*dx; break; + case B: wallX1 = nodeX1; wallX2 = nodeX2; wallX3 = nodeX3 - q*dx; break; + case BE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2; wallX3 = nodeX3 - q*dx; break; + case BN: wallX1 = nodeX1; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 - q*dx; break; + case BW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2; wallX3 = nodeX3 - q*dx; break; + case BS: wallX1 = nodeX1; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 - q*dx; break; + case TNE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 + q*dx; break; + case BSW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 - q*dx; break; + case BNE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 - q*dx; break; + case TSW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 + q*dx; break; + case TSE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 + q*dx; break; + case BNW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 - q*dx; break; + case BSE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 - q*dx; break; + case TNW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 + q*dx; break; + case REST:wallX1 = nodeX1; wallX2 = nodeX2; wallX3 = nodeX3; break; + default: throw UbException(UB_EXARGS, "unknown direction"); + } + ////////////////////////////////////////////////////////////////////////// + nodes[node] = makeUbTuple((float)(nodeX1), (float)(nodeX2), (float)(nodeX3)); + nodes[wall] = makeUbTuple((float)(wallX1), (float)(wallX2), (float)(wallX3)); + qs[line] = makeUbTuple(node, wall); + ////////////////////////////////////////////////////////////////////////// + nodedata[0][node] = q; + nodedata[0][wall] = q; + ////////////////////////////////////////////////////////////////////////// + node = node + 2; + wall = wall + 2; + line++; + ////////////////////////////////////////////////////////////////////////// + } + } + WbWriterVtkXmlBinary::getInstance()->writeLines(fname, nodes, qs); + //WbWriterVtkXmlBinary::getInstance()->writeLinesWithNodeData(fname, nodes, qs, nodedatanames, nodedata); + //WbWriterVtkXmlASCII::getInstance()->writeLinesWithNodeData(fname, nodes, qs, nodedatanames, nodedata); + } + ////////////////////////////////////////////////////////////////////////// + + + + + + + ////////////////////////////////////////////////////////////////////////// + void writeQsInflow(Parameter* para, int level, std::string& fname) + { + vector< UbTupleFloat3 > nodes; + vector< UbTupleInt2 > qs; + unsigned int startpos = 0; + unsigned int endpos = 0; + unsigned int sizeOfNodes = 0; + int node = 0; + int wall = 1; + int line = 0; + double dx = 1.0 / pow(2, level); + real* QQ; + QforBoundaryConditions Q; + double nodeX1, nodeX2, nodeX3, wallX1, wallX2, wallX3, q; + ////////////////////////////////////////////////////////////////////////// + sizeOfNodes = para->getParH(level)->velocityBC.numberOfBCnodes; + endpos = startpos + sizeOfNodes; + ////////////////////////////////////////////////////////////////////////// + //qs.clear(); + //nodes.clear(); + unsigned int numberOfLines = para->getD3Qxx() * sizeOfNodes; + unsigned int numberOfNodes = numberOfLines * 2; + qs.resize(numberOfLines); + nodes.resize(numberOfNodes); + ////////////////////////////////////////////////////////////////////////// + vector< string > nodedatanames; + nodedatanames.push_back("sizeQ"); + vector< vector< double > > nodedata(nodedatanames.size()); + nodedata[0].resize(numberOfNodes); + ////////////////////////////////////////////////////////////////////////// + for (unsigned int pos = startpos; pos < endpos; pos++) + { + ////////////////////////////////////////////////////////////////////////// + nodeX1 = para->getParH(level)->coordinateX[para->getParH(level)->velocityBC.k[pos]]; + nodeX2 = para->getParH(level)->coordinateY[para->getParH(level)->velocityBC.k[pos]]; + nodeX3 = para->getParH(level)->coordinateZ[para->getParH(level)->velocityBC.k[pos]]; + wallX1 = 0.0; + wallX2 = 0.0; + wallX3 = 0.0; + q = 0.0; + ////////////////////////////////////////////////////////////////////////// for (size_t typeOfQ = vf::lbm::dir::STARTDIR; typeOfQ <= vf::lbm::dir::ENDDIR; typeOfQ++) - { - QQ = para->getParH(level)->velocityBC.q27[0]; - Q.q27[typeOfQ] = &QQ[typeOfQ*sizeOfNodes]; - q = (double)(Q.q27[typeOfQ][pos]); + { + QQ = para->getParH(level)->velocityBC.q27[0]; + Q.q27[typeOfQ] = &QQ[typeOfQ*sizeOfNodes]; + q = (double)(Q.q27[typeOfQ][pos]); if( q < 0.0 ) q = 0.0; - ////////////////////////////////////////////////////////////////////////// - switch (typeOfQ) - { - case E: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2; wallX3 = nodeX3; break; - case N: wallX1 = nodeX1; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3; break; - case W: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2; wallX3 = nodeX3; break; - case S: wallX1 = nodeX1; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3; break; - case NE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3; break; - case NW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3; break; - case SW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3; break; - case SE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3; break; - case T: wallX1 = nodeX1; wallX2 = nodeX2; wallX3 = nodeX3 + q*dx; break; - case TE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2; wallX3 = nodeX3 + q*dx; break; - case TN: wallX1 = nodeX1; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 + q*dx; break; - case TW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2; wallX3 = nodeX3 + q*dx; break; - case TS: wallX1 = nodeX1; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 + q*dx; break; - case B: wallX1 = nodeX1; wallX2 = nodeX2; wallX3 = nodeX3 - q*dx; break; - case BE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2; wallX3 = nodeX3 - q*dx; break; - case BN: wallX1 = nodeX1; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 - q*dx; break; - case BW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2; wallX3 = nodeX3 - q*dx; break; - case BS: wallX1 = nodeX1; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 - q*dx; break; - case TNE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 + q*dx; break; - case BSW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 - q*dx; break; - case BNE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 - q*dx; break; - case TSW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 + q*dx; break; - case TSE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 + q*dx; break; - case BNW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 - q*dx; break; - case BSE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 - q*dx; break; - case TNW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 + q*dx; break; - case REST:wallX1 = nodeX1; wallX2 = nodeX2; wallX3 = nodeX3; break; - default: throw UbException(UB_EXARGS, "unknown direction"); - } - ////////////////////////////////////////////////////////////////////////// - nodes[node] = makeUbTuple((float)(nodeX1), (float)(nodeX2), (float)(nodeX3)); - nodes[wall] = makeUbTuple((float)(wallX1), (float)(wallX2), (float)(wallX3)); - qs[line] = makeUbTuple(node, wall); - ////////////////////////////////////////////////////////////////////////// - nodedata[0][node] = q; - nodedata[0][wall] = q; - ////////////////////////////////////////////////////////////////////////// - node = node + 2; - wall = wall + 2; - line++; - ////////////////////////////////////////////////////////////////////////// - } - } - WbWriterVtkXmlBinary::getInstance()->writeLines(fname, nodes, qs); - //WbWriterVtkXmlBinary::getInstance()->writeLinesWithNodeData(fname, nodes, qs, nodedatanames, nodedata); - //WbWriterVtkXmlASCII::getInstance()->writeLinesWithNodeData(fname, nodes, qs, nodedatanames, nodedata); - } - ////////////////////////////////////////////////////////////////////////// - - - - - - - ////////////////////////////////////////////////////////////////////////// - void writeQsPressure(Parameter* para, int level, std::string& fname) - { - vector< UbTupleFloat3 > nodes; - vector< UbTupleInt2 > qs; - unsigned int startpos = 0; - unsigned int endpos = 0; - unsigned int sizeOfNodes = 0; - int node = 0; - int wall = 1; - int line = 0; - double dx = 1.0 / pow(2, level); - real* QQ; - QforBoundaryConditions Q; - double nodeX1, nodeX2, nodeX3, wallX1, wallX2, wallX3, q; - ////////////////////////////////////////////////////////////////////////// - sizeOfNodes = para->getParH(level)->pressureBC.numberOfBCnodes; - endpos = startpos + sizeOfNodes; - ////////////////////////////////////////////////////////////////////////// - //qs.clear(); - //nodes.clear(); - unsigned int numberOfLines = para->getD3Qxx() * sizeOfNodes; - unsigned int numberOfNodes = numberOfLines * 2; - qs.resize(numberOfLines); - nodes.resize(numberOfNodes); - ////////////////////////////////////////////////////////////////////////// - vector< string > nodedatanames; - nodedatanames.push_back("sizeQ"); - vector< vector< double > > nodedata(nodedatanames.size()); - nodedata[0].resize(numberOfNodes); - ////////////////////////////////////////////////////////////////////////// - for (unsigned int pos = startpos; pos < endpos; pos++) - { - ////////////////////////////////////////////////////////////////////////// - nodeX1 = para->getParH(level)->coordinateX[para->getParH(level)->pressureBC.k[pos]]; - nodeX2 = para->getParH(level)->coordinateY[para->getParH(level)->pressureBC.k[pos]]; - nodeX3 = para->getParH(level)->coordinateZ[para->getParH(level)->pressureBC.k[pos]]; - wallX1 = 0.0; - wallX2 = 0.0; - wallX3 = 0.0; - q = 0.0; - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// + switch (typeOfQ) + { + case E: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2; wallX3 = nodeX3; break; + case N: wallX1 = nodeX1; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3; break; + case W: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2; wallX3 = nodeX3; break; + case S: wallX1 = nodeX1; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3; break; + case NE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3; break; + case NW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3; break; + case SW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3; break; + case SE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3; break; + case T: wallX1 = nodeX1; wallX2 = nodeX2; wallX3 = nodeX3 + q*dx; break; + case TE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2; wallX3 = nodeX3 + q*dx; break; + case TN: wallX1 = nodeX1; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 + q*dx; break; + case TW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2; wallX3 = nodeX3 + q*dx; break; + case TS: wallX1 = nodeX1; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 + q*dx; break; + case B: wallX1 = nodeX1; wallX2 = nodeX2; wallX3 = nodeX3 - q*dx; break; + case BE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2; wallX3 = nodeX3 - q*dx; break; + case BN: wallX1 = nodeX1; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 - q*dx; break; + case BW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2; wallX3 = nodeX3 - q*dx; break; + case BS: wallX1 = nodeX1; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 - q*dx; break; + case TNE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 + q*dx; break; + case BSW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 - q*dx; break; + case BNE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 - q*dx; break; + case TSW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 + q*dx; break; + case TSE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 + q*dx; break; + case BNW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 - q*dx; break; + case BSE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 - q*dx; break; + case TNW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 + q*dx; break; + case REST:wallX1 = nodeX1; wallX2 = nodeX2; wallX3 = nodeX3; break; + default: throw UbException(UB_EXARGS, "unknown direction"); + } + ////////////////////////////////////////////////////////////////////////// + nodes[node] = makeUbTuple((float)(nodeX1), (float)(nodeX2), (float)(nodeX3)); + nodes[wall] = makeUbTuple((float)(wallX1), (float)(wallX2), (float)(wallX3)); + qs[line] = makeUbTuple(node, wall); + ////////////////////////////////////////////////////////////////////////// + nodedata[0][node] = q; + nodedata[0][wall] = q; + ////////////////////////////////////////////////////////////////////////// + node = node + 2; + wall = wall + 2; + line++; + ////////////////////////////////////////////////////////////////////////// + } + } + WbWriterVtkXmlBinary::getInstance()->writeLines(fname, nodes, qs); + //WbWriterVtkXmlBinary::getInstance()->writeLinesWithNodeData(fname, nodes, qs, nodedatanames, nodedata); + //WbWriterVtkXmlASCII::getInstance()->writeLinesWithNodeData(fname, nodes, qs, nodedatanames, nodedata); + } + ////////////////////////////////////////////////////////////////////////// + + + + + + + ////////////////////////////////////////////////////////////////////////// + void writeQsPressure(Parameter* para, int level, std::string& fname) + { + vector< UbTupleFloat3 > nodes; + vector< UbTupleInt2 > qs; + unsigned int startpos = 0; + unsigned int endpos = 0; + unsigned int sizeOfNodes = 0; + int node = 0; + int wall = 1; + int line = 0; + double dx = 1.0 / pow(2, level); + real* QQ; + QforBoundaryConditions Q; + double nodeX1, nodeX2, nodeX3, wallX1, wallX2, wallX3, q; + ////////////////////////////////////////////////////////////////////////// + sizeOfNodes = para->getParH(level)->pressureBC.numberOfBCnodes; + endpos = startpos + sizeOfNodes; + ////////////////////////////////////////////////////////////////////////// + //qs.clear(); + //nodes.clear(); + unsigned int numberOfLines = para->getD3Qxx() * sizeOfNodes; + unsigned int numberOfNodes = numberOfLines * 2; + qs.resize(numberOfLines); + nodes.resize(numberOfNodes); + ////////////////////////////////////////////////////////////////////////// + vector< string > nodedatanames; + nodedatanames.push_back("sizeQ"); + vector< vector< double > > nodedata(nodedatanames.size()); + nodedata[0].resize(numberOfNodes); + ////////////////////////////////////////////////////////////////////////// + for (unsigned int pos = startpos; pos < endpos; pos++) + { + ////////////////////////////////////////////////////////////////////////// + nodeX1 = para->getParH(level)->coordinateX[para->getParH(level)->pressureBC.k[pos]]; + nodeX2 = para->getParH(level)->coordinateY[para->getParH(level)->pressureBC.k[pos]]; + nodeX3 = para->getParH(level)->coordinateZ[para->getParH(level)->pressureBC.k[pos]]; + wallX1 = 0.0; + wallX2 = 0.0; + wallX3 = 0.0; + q = 0.0; + ////////////////////////////////////////////////////////////////////////// for (size_t typeOfQ = vf::lbm::dir::STARTDIR; typeOfQ <= vf::lbm::dir::ENDDIR; typeOfQ++) - { - QQ = para->getParH(level)->pressureBC.q27[0]; - Q.q27[typeOfQ] = &QQ[typeOfQ*sizeOfNodes]; - q = (double)(Q.q27[typeOfQ][pos]); + { + QQ = para->getParH(level)->pressureBC.q27[0]; + Q.q27[typeOfQ] = &QQ[typeOfQ*sizeOfNodes]; + q = (double)(Q.q27[typeOfQ][pos]); if( q < 0.0 ) q = 0.0; - ////////////////////////////////////////////////////////////////////////// - switch (typeOfQ) - { - case E: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2; wallX3 = nodeX3; break; - case N: wallX1 = nodeX1; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3; break; - case W: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2; wallX3 = nodeX3; break; - case S: wallX1 = nodeX1; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3; break; - case NE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3; break; - case NW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3; break; - case SW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3; break; - case SE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3; break; - case T: wallX1 = nodeX1; wallX2 = nodeX2; wallX3 = nodeX3 + q*dx; break; - case TE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2; wallX3 = nodeX3 + q*dx; break; - case TN: wallX1 = nodeX1; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 + q*dx; break; - case TW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2; wallX3 = nodeX3 + q*dx; break; - case TS: wallX1 = nodeX1; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 + q*dx; break; - case B: wallX1 = nodeX1; wallX2 = nodeX2; wallX3 = nodeX3 - q*dx; break; - case BE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2; wallX3 = nodeX3 - q*dx; break; - case BN: wallX1 = nodeX1; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 - q*dx; break; - case BW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2; wallX3 = nodeX3 - q*dx; break; - case BS: wallX1 = nodeX1; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 - q*dx; break; - case TNE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 + q*dx; break; - case BSW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 - q*dx; break; - case BNE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 - q*dx; break; - case TSW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 + q*dx; break; - case TSE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 + q*dx; break; - case BNW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 - q*dx; break; - case BSE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 - q*dx; break; - case TNW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 + q*dx; break; - case REST:wallX1 = nodeX1; wallX2 = nodeX2; wallX3 = nodeX3; break; - default: throw UbException(UB_EXARGS, "unknown direction"); - } - ////////////////////////////////////////////////////////////////////////// - nodes[node] = makeUbTuple((float)(nodeX1), (float)(nodeX2), (float)(nodeX3)); - nodes[wall] = makeUbTuple((float)(wallX1), (float)(wallX2), (float)(wallX3)); - qs[line] = makeUbTuple(node, wall); - ////////////////////////////////////////////////////////////////////////// - nodedata[0][node] = q; - nodedata[0][wall] = q; - ////////////////////////////////////////////////////////////////////////// - node = node + 2; - wall = wall + 2; - line++; - ////////////////////////////////////////////////////////////////////////// - } - } - WbWriterVtkXmlBinary::getInstance()->writeLines(fname, nodes, qs); - //WbWriterVtkXmlBinary::getInstance()->writeLinesWithNodeData(fname, nodes, qs, nodedatanames, nodedata); - //WbWriterVtkXmlASCII::getInstance()->writeLinesWithNodeData(fname, nodes, qs, nodedatanames, nodedata); - } - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// + switch (typeOfQ) + { + case E: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2; wallX3 = nodeX3; break; + case N: wallX1 = nodeX1; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3; break; + case W: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2; wallX3 = nodeX3; break; + case S: wallX1 = nodeX1; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3; break; + case NE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3; break; + case NW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3; break; + case SW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3; break; + case SE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3; break; + case T: wallX1 = nodeX1; wallX2 = nodeX2; wallX3 = nodeX3 + q*dx; break; + case TE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2; wallX3 = nodeX3 + q*dx; break; + case TN: wallX1 = nodeX1; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 + q*dx; break; + case TW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2; wallX3 = nodeX3 + q*dx; break; + case TS: wallX1 = nodeX1; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 + q*dx; break; + case B: wallX1 = nodeX1; wallX2 = nodeX2; wallX3 = nodeX3 - q*dx; break; + case BE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2; wallX3 = nodeX3 - q*dx; break; + case BN: wallX1 = nodeX1; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 - q*dx; break; + case BW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2; wallX3 = nodeX3 - q*dx; break; + case BS: wallX1 = nodeX1; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 - q*dx; break; + case TNE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 + q*dx; break; + case BSW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 - q*dx; break; + case BNE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 - q*dx; break; + case TSW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 + q*dx; break; + case TSE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 + q*dx; break; + case BNW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 - q*dx; break; + case BSE: wallX1 = nodeX1 + q*dx; wallX2 = nodeX2 - q*dx; wallX3 = nodeX3 - q*dx; break; + case TNW: wallX1 = nodeX1 - q*dx; wallX2 = nodeX2 + q*dx; wallX3 = nodeX3 + q*dx; break; + case REST:wallX1 = nodeX1; wallX2 = nodeX2; wallX3 = nodeX3; break; + default: throw UbException(UB_EXARGS, "unknown direction"); + } + ////////////////////////////////////////////////////////////////////////// + nodes[node] = makeUbTuple((float)(nodeX1), (float)(nodeX2), (float)(nodeX3)); + nodes[wall] = makeUbTuple((float)(wallX1), (float)(wallX2), (float)(wallX3)); + qs[line] = makeUbTuple(node, wall); + ////////////////////////////////////////////////////////////////////////// + nodedata[0][node] = q; + nodedata[0][wall] = q; + ////////////////////////////////////////////////////////////////////////// + node = node + 2; + wall = wall + 2; + line++; + ////////////////////////////////////////////////////////////////////////// + } + } + WbWriterVtkXmlBinary::getInstance()->writeLines(fname, nodes, qs); + //WbWriterVtkXmlBinary::getInstance()->writeLinesWithNodeData(fname, nodes, qs, nodedatanames, nodedata); + //WbWriterVtkXmlASCII::getInstance()->writeLinesWithNodeData(fname, nodes, qs, nodedatanames, nodedata); + } + ////////////////////////////////////////////////////////////////////////// } #endif diff --git a/src/gpu/core/Output/VeloASCIIWriter.hpp b/src/gpu/core/Output/VeloASCIIWriter.hpp index 5973525d23233ab49121d2cfd7dd6ed16666229d..ba95f7060080499555b643349f3242b78f4c1e53 100644 --- a/src/gpu/core/Output/VeloASCIIWriter.hpp +++ b/src/gpu/core/Output/VeloASCIIWriter.hpp @@ -8,32 +8,32 @@ class VeloASCIIWriter { public: - VeloASCIIWriter(){} - ~VeloASCIIWriter(){} + VeloASCIIWriter(){} + ~VeloASCIIWriter(){} - static void writeVelocitiesAsTXT(Parameter* para, int level, int t) - { - //calc - int numberNodes = (int)para->getParH(level)->numberOfNodes; - //write - UbFileOutputASCII out(para->getFName() + "_VelocitiesASCII_" + std::to_string(level) + "_ID_" + StringUtil::toString<int>(para->getMyProcessID()) + "_t_" + std::to_string(t) + ".dat"); - //header - out.writeString("Level:"); - out.writeInteger(level); - out.writeLine(); - out.writeString("vX vY vZ"); - out.writeLine(); - //out.writeInteger(numberNodes); - //out.writeLine(); - for (int index = 0; index < numberNodes; index++) - { - out.writeFloat((float)(para->getParH(level)->velocityX[index] * para->getVelocityRatio())); - out.writeFloat((float)(para->getParH(level)->velocityY[index] * para->getVelocityRatio())); - out.writeFloat((float)(para->getParH(level)->velocityZ[index] * para->getVelocityRatio())); - out.writeLine(); - } - out.writeLine(); - } + static void writeVelocitiesAsTXT(Parameter* para, int level, int t) + { + //calc + int numberNodes = (int)para->getParH(level)->numberOfNodes; + //write + UbFileOutputASCII out(para->getFName() + "_VelocitiesASCII_" + std::to_string(level) + "_ID_" + StringUtil::toString<int>(para->getMyProcessID()) + "_t_" + std::to_string(t) + ".dat"); + //header + out.writeString("Level:"); + out.writeInteger(level); + out.writeLine(); + out.writeString("vX vY vZ"); + out.writeLine(); + //out.writeInteger(numberNodes); + //out.writeLine(); + for (int index = 0; index < numberNodes; index++) + { + out.writeFloat((float)(para->getParH(level)->velocityX[index] * para->getVelocityRatio())); + out.writeFloat((float)(para->getParH(level)->velocityY[index] * para->getVelocityRatio())); + out.writeFloat((float)(para->getParH(level)->velocityZ[index] * para->getVelocityRatio())); + out.writeLine(); + } + out.writeLine(); + } protected: diff --git a/src/gpu/core/Output/VtkSGWriter.hpp b/src/gpu/core/Output/VtkSGWriter.hpp index 7b2e5021a404ba5d9e969c1b5d144799d06c9ae6..4b3ad087b2de599588f346656f8e9859b661d467 100644 --- a/src/gpu/core/Output/VtkSGWriter.hpp +++ b/src/gpu/core/Output/VtkSGWriter.hpp @@ -17,26 +17,26 @@ namespace VtkSGWriter void writeVTKsg(unsigned int nx, unsigned int ny, unsigned int nz, int startoffx, int startoffy, int startoffz, unsigned int nnx, unsigned int nny, unsigned int nnz, unsigned int start_z, unsigned int end_z, std::string& fname, - unsigned int* bcMatH, float* vxH, float* vyH, float* vzH, float* rhoH, float v_ratio, float rho_ratio, + unsigned int* bcMatH, float* vxH, float* vyH, float* vzH, float* rhoH, float v_ratio, float rho_ratio, float startx, float starty, float startz, float deltax) { - unsigned int i,j,k,m;//,x,y,z; + unsigned int i,j,k,m;//,x,y,z; //unsigned int l; - unsigned int nn; - unsigned int tmp; + unsigned int nn; + unsigned int tmp; float tmp_rho,tmp_ux,tmp_uy,tmp_uz; //unsigned int tmp1; //float rho,ux,uy,uz,m6; - //float f[19]; + //float f[19]; - float uzMax=0.0; + float uzMax=0.0; - nn = nnx*nny*nnz; + nn = nnx*nny*nnz; - ostringstream ostr; - ofstream ofile(fname.c_str()); + ostringstream ostr; + ofstream ofile(fname.c_str()); ostr << "# vtk DataFile Version 3.0\n"; ostr << fname << "\n"; @@ -110,7 +110,7 @@ void writeVTKsg(unsigned int nx, unsigned int ny, unsigned int nz, int startoffx ostr.str(""); ostr.clear(); - printf("uzMax: %.8f", uzMax); + printf("uzMax: %.8f", uzMax); } @@ -121,34 +121,34 @@ void writeVTKsgSP(unsigned int nx_D, unsigned int ny_D, unsigned int nz_D, int s real startx_D, real starty_D, real startz_D, real deltax_D, unsigned int *kFull) { //Test - real* /*float* double**/ vxH = vxH_D ; - real* /*float* double**/ vyH = vyH_D ; - real* /*float* double**/ vzH = vzH_D ; - real* /*float* double**/ rhoH = rhoH_D ; - real* /*float* double**/ pressH = pressH_D ; + real* /*float* double**/ vxH = vxH_D ; + real* /*float* double**/ vyH = vyH_D ; + real* /*float* double**/ vzH = vzH_D ; + real* /*float* double**/ rhoH = rhoH_D ; + real* /*float* double**/ pressH = pressH_D ; double v_ratio = v_ratio_D ; double rho_ratio= rho_ratio_D; double startx = startx_D ; double starty = starty_D ; double startz = startz_D ;//(double)start_z; double deltax = deltax_D ; - int startoffx = startoffx_D; - int startoffy = startoffy_D; - int startoffz = startoffz_D; - unsigned int nnx = nnx_D; - unsigned int nny = nny_D; - unsigned int nnz = nnz_D; - unsigned int nx = nx_D; - unsigned int ny = ny_D; - unsigned int nz = nz_D; - ////f�r Geller - //startoffx = 0; - //startoffy = 0; - //startoffz = 0; - //nx = nnx; - //ny = nny; - //nz = nnz; - //deltax = 410.0/48.0; + int startoffx = startoffx_D; + int startoffy = startoffy_D; + int startoffz = startoffz_D; + unsigned int nnx = nnx_D; + unsigned int nny = nny_D; + unsigned int nnz = nnz_D; + unsigned int nx = nx_D; + unsigned int ny = ny_D; + unsigned int nz = nz_D; + ////f�r Geller + //startoffx = 0; + //startoffy = 0; + //startoffz = 0; + //nx = nnx; + //ny = nny; + //nz = nnz; + //deltax = 410.0/48.0; unsigned int i,j,k,m; unsigned int nn; @@ -172,23 +172,23 @@ void writeVTKsgSP(unsigned int nx_D, unsigned int ny_D, unsigned int nz_D, int s ostr << "SPACING " << deltax << " " << deltax << " " << deltax <<" \n"; ostr << "POINT_DATA " << nn << "\n"; - //ostr << "CELL_DATA " << nn << "\n"; + //ostr << "CELL_DATA " << nn << "\n"; ostr << "SCALARS Geo int\n"; ostr << "LOOKUP_TABLE default\n"; - for(k=startoffz ; k<=nnz+startoffz-1 ; k++){ - for(j=startoffy ; j<=nny+startoffy-1 ; j++){ - for(i=startoffx ; i<=nnx+startoffx-1 ; i++){ - m = nx*(ny*k + j) + i; - if(kFull[m]==0) tmp = 99; - //else tmp = bcMatH[kFull[m]-1];//achtung!!! -1 - tmp = bcMatH[kFull[m]]; - //tmp = bcMatH[m]; - ostr << tmp << "\n"; - } - } - } + for(k=startoffz ; k<=nnz+startoffz-1 ; k++){ + for(j=startoffy ; j<=nny+startoffy-1 ; j++){ + for(i=startoffx ; i<=nnx+startoffx-1 ; i++){ + m = nx*(ny*k + j) + i; + if(kFull[m]==0) tmp = 99; + //else tmp = bcMatH[kFull[m]-1];//achtung!!! -1 + tmp = bcMatH[kFull[m]]; + //tmp = bcMatH[m]; + ostr << tmp << "\n"; + } + } + } ofile<<ostr.str(); ostr.str(""); ostr.clear(); @@ -270,371 +270,371 @@ void writeVTKsgSP(unsigned int nx_D, unsigned int ny_D, unsigned int nz_D, int s void writeVTKsgSPbin(unsigned int nx_D, unsigned int ny_D, unsigned int nz_D, int startoffx_D, int startoffy_D, int startoffz_D, - unsigned int nnx_D, unsigned int nny_D, unsigned int nnz_D, unsigned int start_z, unsigned int end_z, std::string& fname, - unsigned int* bcMatH, int* bcMatHFull, real* vxH_D, real* vyH_D, real* vzH_D, real* rhoH_D, real* pressH_D, real v_ratio_D, real rho_ratio_D, - real startx_D, real starty_D, real startz_D, real deltax_D, unsigned int *kFull) + unsigned int nnx_D, unsigned int nny_D, unsigned int nnz_D, unsigned int start_z, unsigned int end_z, std::string& fname, + unsigned int* bcMatH, int* bcMatHFull, real* vxH_D, real* vyH_D, real* vzH_D, real* rhoH_D, real* pressH_D, real v_ratio_D, real rho_ratio_D, + real startx_D, real starty_D, real startz_D, real deltax_D, unsigned int *kFull) { - //Test - real* /*float* double**/ vxH = vxH_D ; - real* /*float* double**/ vyH = vyH_D ; - real* /*float* double**/ vzH = vzH_D ; - real* /*float* double**/ rhoH = rhoH_D ; - real* /*float* double**/ pressH = pressH_D ; - float v_ratio = (float)v_ratio_D ; - float rho_ratio= (float)rho_ratio_D; - float startx = (float)startx_D ; - float starty = (float)starty_D ; - float startz = (float)startz_D ;//(double)start_z; - float deltax = (float)deltax_D ; - int startoffx = startoffx_D; - int startoffy = startoffy_D; - int startoffz = startoffz_D; - unsigned int nnx = nnx_D; - unsigned int nny = nny_D; - unsigned int nnz = nnz_D; - unsigned int nx = nx_D; - unsigned int ny = ny_D; - unsigned int nz = nz_D; - unsigned int i,j,k,m; - unsigned int nn; - //unsigned int tmp; - //double tmp_rho,tmp_ux,tmp_uy,tmp_uz; - float tmp_rho,tmp_ux,tmp_uy,tmp_uz; - int tmp; - bool swapByte = UbSystem::isLittleEndian(); - float uxMax=0.0f; - - - nn = nnx*nny*nnz; - - ofstream ostr(fname.c_str(),ios::out | ios::binary); - - ostr << "# vtk DataFile Version 3.0\n"; - ostr << fname << "\n"; - ostr << "BINARY\n"; - ostr << "DATASET STRUCTURED_POINTS\n"; - ostr << "DIMENSIONS " << nnx << " " << nny << " " << nnz << " \n"; - ostr << "ORIGIN " << startx << " " << starty << " " << startz << " \n"; - ostr << "SPACING " << deltax << " " << deltax << " " << deltax <<" \n"; - - ostr << "POINT_DATA " << nn << "\n"; - - ostr << "SCALARS Geo int\n"; - ostr << "LOOKUP_TABLE default\n"; - for(k=startoffz ; k<=nnz+startoffz-1 ; k++){ - for(j=startoffy ; j<=nny+startoffy-1 ; j++){ - for(i=startoffx ; i<=nnx+startoffx-1 ; i++){ - m = nx*(ny*k + j) + i; - //if(kFull[m]==0) tmp = 16; - tmp = bcMatH[kFull[m]]; - //tmp = bcMatHFull[m]; - if(swapByte) UbSystem::swapByteOrder((unsigned char*)&tmp,sizeof(int)); - ostr.write((char*)&tmp, sizeof(int)); - } - } - } - - ostr << "\n"; - ostr << "SCALARS Press float\n"; - ostr << "LOOKUP_TABLE default\n"; - for(k=startoffz ; k<=nnz+startoffz-1 ; k++){ - for(j=startoffy ; j<=nny+startoffy-1 ; j++){ - for(i=startoffx ; i<=nnx+startoffx-1 ; i++){ - m = nx*(ny*k + j) + i; - if((bcMatH[kFull[m]] == GEO_SOLID) && (bcMatH[kFull[m]] == GEO_VOID)){ - tmp_rho=0.0;//1.0f/3.0f; - } - else{ - tmp_rho=(float)(rhoH[kFull[m]] / 3.0f * rho_ratio * v_ratio *v_ratio); - //tmp_rho=rhoH[kFull[m]] / 3.0f ; - - } - if(swapByte) UbSystem::swapByteOrder((unsigned char*)&tmp_rho,sizeof(float)); - ostr.write((char*)&tmp_rho, sizeof(float)); - } - } - } - - ostr << "\n"; - ostr << "SCALARS PressM float\n"; - ostr << "LOOKUP_TABLE default\n"; - for(k=startoffz ; k<=nnz+startoffz-1 ; k++){ - for(j=startoffy ; j<=nny+startoffy-1 ; j++){ - for(i=startoffx ; i<=nnx+startoffx-1 ; i++){ - m = nx*(ny*k + j) + i; - if( (bcMatH[kFull[m]] == GEO_SOLID) && (bcMatH[kFull[m]] == GEO_VOID)){ - tmp_rho=0.0f;//1.0f/3.0f; - } - else{ - tmp_rho=(float)(pressH[kFull[m]] / 3.0f * rho_ratio * v_ratio *v_ratio); - //tmp_rho=pressH[kFull[m]] / 3.0f ; - - } - if(swapByte) UbSystem::swapByteOrder((unsigned char*)&tmp_rho,sizeof(float)); - ostr.write((char*)&tmp_rho, sizeof(float)); - } - } - } - - ostr << "\n"; - ostr << "VECTORS Speed float\n"; - for(k=startoffz ; k<=nnz+startoffz-1 ; k++){ - for(j=startoffy ; j<=nny+startoffy-1 ; j++){ - for(i=startoffx ; i<=nnx+startoffx-1 ; i++){ - m = nx*(ny*k + j) + i; - if( (bcMatH[kFull[m]] == GEO_SOLID) && (bcMatH[kFull[m]] == GEO_VOID)){ - tmp_ux=0.0; - tmp_uy=0.0; - tmp_uz=0.0; - } - else{ - tmp_ux=(float)(vxH[kFull[m]] * v_ratio); - tmp_uy=(float)(vyH[kFull[m]] * v_ratio); - tmp_uz=(float)(vzH[kFull[m]] * v_ratio); - } - if( std::fabs(tmp_ux) > std::fabs(uxMax) ) uxMax = tmp_ux; - if(swapByte) - { - UbSystem::swapByteOrder((unsigned char*)&tmp_ux,sizeof(float)); - UbSystem::swapByteOrder((unsigned char*)&tmp_uy,sizeof(float)); - UbSystem::swapByteOrder((unsigned char*)&tmp_uz,sizeof(float)); - } - ostr.write((char*)&tmp_ux, sizeof(float)); - ostr.write((char*)&tmp_uy, sizeof(float)); - ostr.write((char*)&tmp_uz, sizeof(float)); - } - } - } - printf(" \n uxMax: %.8f", (float)uxMax); + //Test + real* /*float* double**/ vxH = vxH_D ; + real* /*float* double**/ vyH = vyH_D ; + real* /*float* double**/ vzH = vzH_D ; + real* /*float* double**/ rhoH = rhoH_D ; + real* /*float* double**/ pressH = pressH_D ; + float v_ratio = (float)v_ratio_D ; + float rho_ratio= (float)rho_ratio_D; + float startx = (float)startx_D ; + float starty = (float)starty_D ; + float startz = (float)startz_D ;//(double)start_z; + float deltax = (float)deltax_D ; + int startoffx = startoffx_D; + int startoffy = startoffy_D; + int startoffz = startoffz_D; + unsigned int nnx = nnx_D; + unsigned int nny = nny_D; + unsigned int nnz = nnz_D; + unsigned int nx = nx_D; + unsigned int ny = ny_D; + unsigned int nz = nz_D; + unsigned int i,j,k,m; + unsigned int nn; + //unsigned int tmp; + //double tmp_rho,tmp_ux,tmp_uy,tmp_uz; + float tmp_rho,tmp_ux,tmp_uy,tmp_uz; + int tmp; + bool swapByte = UbSystem::isLittleEndian(); + float uxMax=0.0f; + + + nn = nnx*nny*nnz; + + ofstream ostr(fname.c_str(),ios::out | ios::binary); + + ostr << "# vtk DataFile Version 3.0\n"; + ostr << fname << "\n"; + ostr << "BINARY\n"; + ostr << "DATASET STRUCTURED_POINTS\n"; + ostr << "DIMENSIONS " << nnx << " " << nny << " " << nnz << " \n"; + ostr << "ORIGIN " << startx << " " << starty << " " << startz << " \n"; + ostr << "SPACING " << deltax << " " << deltax << " " << deltax <<" \n"; + + ostr << "POINT_DATA " << nn << "\n"; + + ostr << "SCALARS Geo int\n"; + ostr << "LOOKUP_TABLE default\n"; + for(k=startoffz ; k<=nnz+startoffz-1 ; k++){ + for(j=startoffy ; j<=nny+startoffy-1 ; j++){ + for(i=startoffx ; i<=nnx+startoffx-1 ; i++){ + m = nx*(ny*k + j) + i; + //if(kFull[m]==0) tmp = 16; + tmp = bcMatH[kFull[m]]; + //tmp = bcMatHFull[m]; + if(swapByte) UbSystem::swapByteOrder((unsigned char*)&tmp,sizeof(int)); + ostr.write((char*)&tmp, sizeof(int)); + } + } + } + + ostr << "\n"; + ostr << "SCALARS Press float\n"; + ostr << "LOOKUP_TABLE default\n"; + for(k=startoffz ; k<=nnz+startoffz-1 ; k++){ + for(j=startoffy ; j<=nny+startoffy-1 ; j++){ + for(i=startoffx ; i<=nnx+startoffx-1 ; i++){ + m = nx*(ny*k + j) + i; + if((bcMatH[kFull[m]] == GEO_SOLID) && (bcMatH[kFull[m]] == GEO_VOID)){ + tmp_rho=0.0;//1.0f/3.0f; + } + else{ + tmp_rho=(float)(rhoH[kFull[m]] / 3.0f * rho_ratio * v_ratio *v_ratio); + //tmp_rho=rhoH[kFull[m]] / 3.0f ; + + } + if(swapByte) UbSystem::swapByteOrder((unsigned char*)&tmp_rho,sizeof(float)); + ostr.write((char*)&tmp_rho, sizeof(float)); + } + } + } + + ostr << "\n"; + ostr << "SCALARS PressM float\n"; + ostr << "LOOKUP_TABLE default\n"; + for(k=startoffz ; k<=nnz+startoffz-1 ; k++){ + for(j=startoffy ; j<=nny+startoffy-1 ; j++){ + for(i=startoffx ; i<=nnx+startoffx-1 ; i++){ + m = nx*(ny*k + j) + i; + if( (bcMatH[kFull[m]] == GEO_SOLID) && (bcMatH[kFull[m]] == GEO_VOID)){ + tmp_rho=0.0f;//1.0f/3.0f; + } + else{ + tmp_rho=(float)(pressH[kFull[m]] / 3.0f * rho_ratio * v_ratio *v_ratio); + //tmp_rho=pressH[kFull[m]] / 3.0f ; + + } + if(swapByte) UbSystem::swapByteOrder((unsigned char*)&tmp_rho,sizeof(float)); + ostr.write((char*)&tmp_rho, sizeof(float)); + } + } + } + + ostr << "\n"; + ostr << "VECTORS Speed float\n"; + for(k=startoffz ; k<=nnz+startoffz-1 ; k++){ + for(j=startoffy ; j<=nny+startoffy-1 ; j++){ + for(i=startoffx ; i<=nnx+startoffx-1 ; i++){ + m = nx*(ny*k + j) + i; + if( (bcMatH[kFull[m]] == GEO_SOLID) && (bcMatH[kFull[m]] == GEO_VOID)){ + tmp_ux=0.0; + tmp_uy=0.0; + tmp_uz=0.0; + } + else{ + tmp_ux=(float)(vxH[kFull[m]] * v_ratio); + tmp_uy=(float)(vyH[kFull[m]] * v_ratio); + tmp_uz=(float)(vzH[kFull[m]] * v_ratio); + } + if( std::fabs(tmp_ux) > std::fabs(uxMax) ) uxMax = tmp_ux; + if(swapByte) + { + UbSystem::swapByteOrder((unsigned char*)&tmp_ux,sizeof(float)); + UbSystem::swapByteOrder((unsigned char*)&tmp_uy,sizeof(float)); + UbSystem::swapByteOrder((unsigned char*)&tmp_uz,sizeof(float)); + } + ostr.write((char*)&tmp_ux, sizeof(float)); + ostr.write((char*)&tmp_uy, sizeof(float)); + ostr.write((char*)&tmp_uz, sizeof(float)); + } + } + } + printf(" \n uxMax: %.8f", (float)uxMax); } void writeVTKmedSPbin( unsigned int nx_D, unsigned int ny_D, unsigned int nz_D, int startoffx_D, int startoffy_D, int startoffz_D, - unsigned int nnx_D, unsigned int nny_D, unsigned int nnz_D, unsigned int start_z, unsigned int end_z, std::string& fname, - unsigned int* bcMatH, int* bcMatHFull, real* vxH_D, real* vyH_D, real* vzH_D, real* rhoH_D, real* pressH_D, real tdiff, real v_ratio_D, real rho_ratio_D, - real startx_D, real starty_D, real startz_D, real deltax_D, unsigned int *kFull) + unsigned int nnx_D, unsigned int nny_D, unsigned int nnz_D, unsigned int start_z, unsigned int end_z, std::string& fname, + unsigned int* bcMatH, int* bcMatHFull, real* vxH_D, real* vyH_D, real* vzH_D, real* rhoH_D, real* pressH_D, real tdiff, real v_ratio_D, real rho_ratio_D, + real startx_D, real starty_D, real startz_D, real deltax_D, unsigned int *kFull) { - //Test - real* /*float* double**/ vxH = vxH_D ; - real* /*float* double**/ vyH = vyH_D ; - real* /*float* double**/ vzH = vzH_D ; - real* /*float* double**/ rhoH = rhoH_D ; - real* /*float* double**/ pressH = pressH_D ; - float v_ratio = (float)v_ratio_D ; - float rho_ratio= (float)rho_ratio_D; - float startx = (float)startx_D ; - float starty = (float)starty_D ; - float startz = (float)startz_D ;//(double)start_z; - float deltax = (float)deltax_D ; - int startoffx = startoffx_D; - int startoffy = startoffy_D; - int startoffz = startoffz_D; - unsigned int nnx = nnx_D; - unsigned int nny = nny_D; - unsigned int nnz = nnz_D; - unsigned int nx = nx_D; - unsigned int ny = ny_D; - unsigned int nz = nz_D; - unsigned int i,j,k,m; - unsigned int nn; - //unsigned int tmp; - //double tmp_rho,tmp_ux,tmp_uy,tmp_uz; - float tmp_rho,tmp_ux,tmp_uy,tmp_uz; - int tmp; - bool swapByte = UbSystem::isLittleEndian(); - float uxMax=0.0f; - - - nn = nnx*nny*nnz; - - ofstream ostr(fname.c_str(),ios::out | ios::binary); - - ostr << "# vtk DataFile Version 3.0\n"; - ostr << fname << "\n"; - ostr << "BINARY\n"; - ostr << "DATASET STRUCTURED_POINTS\n"; - ostr << "DIMENSIONS " << nnx << " " << nny << " " << nnz << " \n"; - ostr << "ORIGIN " << startx << " " << starty << " " << startz << " \n"; - ostr << "SPACING " << deltax << " " << deltax << " " << deltax <<" \n"; - - ostr << "POINT_DATA " << nn << "\n"; - - ostr << "SCALARS Geo int\n"; - ostr << "LOOKUP_TABLE default\n"; - for(k=startoffz ; k<=nnz+startoffz-1 ; k++){ - for(j=startoffy ; j<=nny+startoffy-1 ; j++){ - for(i=startoffx ; i<=nnx+startoffx-1 ; i++){ - m = nx*(ny*k + j) + i; - //if(kFull[m]==0) tmp = 16; - tmp = bcMatH[kFull[m]]; - //tmp = bcMatHFull[m]; - if(swapByte) UbSystem::swapByteOrder((unsigned char*)&tmp,sizeof(int)); - ostr.write((char*)&tmp, sizeof(int)); - } - } - } - - ostr << "\n"; - ostr << "SCALARS Press float\n"; - ostr << "LOOKUP_TABLE default\n"; - for(k=startoffz ; k<=nnz+startoffz-1 ; k++){ - for(j=startoffy ; j<=nny+startoffy-1 ; j++){ - for(i=startoffx ; i<=nnx+startoffx-1 ; i++){ - m = nx*(ny*k + j) + i; - if((bcMatH[kFull[m]] == GEO_SOLID) && (bcMatH[kFull[m]] == GEO_VOID)){ - tmp_rho=0.0;//1.0f/3.0f; - } - else{ - tmp_rho=(float)((rhoH[kFull[m]] / tdiff) / 3.0f * rho_ratio * v_ratio *v_ratio ); - //tmp_rho=rhoH[kFull[m]] / 3.0f ; - - } - if(swapByte) UbSystem::swapByteOrder((unsigned char*)&tmp_rho,sizeof(float)); - ostr.write((char*)&tmp_rho, sizeof(float)); - } - } - } - - ostr << "\n"; - ostr << "SCALARS PressM float\n"; - ostr << "LOOKUP_TABLE default\n"; - for(k=startoffz ; k<=nnz+startoffz-1 ; k++){ - for(j=startoffy ; j<=nny+startoffy-1 ; j++){ - for(i=startoffx ; i<=nnx+startoffx-1 ; i++){ - m = nx*(ny*k + j) + i; - if( (bcMatH[kFull[m]] == GEO_SOLID) && (bcMatH[kFull[m]] == GEO_VOID)){ - tmp_rho=0.0f;//1.0f/3.0f; - } - else{ - tmp_rho=(float)((pressH[kFull[m]] / tdiff) / 3.0f * rho_ratio * v_ratio *v_ratio ); - //tmp_rho=pressH[kFull[m]] / 3.0f ; - - } - if(swapByte) UbSystem::swapByteOrder((unsigned char*)&tmp_rho,sizeof(float)); - ostr.write((char*)&tmp_rho, sizeof(float)); - } - } - } - - ostr << "\n"; - ostr << "VECTORS Speed float\n"; - for(k=startoffz ; k<=nnz+startoffz-1 ; k++){ - for(j=startoffy ; j<=nny+startoffy-1 ; j++){ - for(i=startoffx ; i<=nnx+startoffx-1 ; i++){ - m = nx*(ny*k + j) + i; - if( (bcMatH[kFull[m]] == GEO_SOLID) && (bcMatH[kFull[m]] == GEO_VOID)){ - tmp_ux=0.0; - tmp_uy=0.0; - tmp_uz=0.0; - } - else{ - tmp_ux=(float)((vxH[kFull[m]] / tdiff) * v_ratio); - tmp_uy=(float)((vyH[kFull[m]] / tdiff) * v_ratio); - tmp_uz=(float)((vzH[kFull[m]] / tdiff) * v_ratio); - } - if( std::fabs(tmp_ux) > std::fabs(uxMax) ) uxMax = tmp_ux; - if(swapByte) - { - UbSystem::swapByteOrder((unsigned char*)&tmp_ux,sizeof(float)); - UbSystem::swapByteOrder((unsigned char*)&tmp_uy,sizeof(float)); - UbSystem::swapByteOrder((unsigned char*)&tmp_uz,sizeof(float)); - } - ostr.write((char*)&tmp_ux, sizeof(float)); - ostr.write((char*)&tmp_uy, sizeof(float)); - ostr.write((char*)&tmp_uz, sizeof(float)); - } - } - } - printf(" \n uxMax: %.8f", (float)uxMax); + //Test + real* /*float* double**/ vxH = vxH_D ; + real* /*float* double**/ vyH = vyH_D ; + real* /*float* double**/ vzH = vzH_D ; + real* /*float* double**/ rhoH = rhoH_D ; + real* /*float* double**/ pressH = pressH_D ; + float v_ratio = (float)v_ratio_D ; + float rho_ratio= (float)rho_ratio_D; + float startx = (float)startx_D ; + float starty = (float)starty_D ; + float startz = (float)startz_D ;//(double)start_z; + float deltax = (float)deltax_D ; + int startoffx = startoffx_D; + int startoffy = startoffy_D; + int startoffz = startoffz_D; + unsigned int nnx = nnx_D; + unsigned int nny = nny_D; + unsigned int nnz = nnz_D; + unsigned int nx = nx_D; + unsigned int ny = ny_D; + unsigned int nz = nz_D; + unsigned int i,j,k,m; + unsigned int nn; + //unsigned int tmp; + //double tmp_rho,tmp_ux,tmp_uy,tmp_uz; + float tmp_rho,tmp_ux,tmp_uy,tmp_uz; + int tmp; + bool swapByte = UbSystem::isLittleEndian(); + float uxMax=0.0f; + + + nn = nnx*nny*nnz; + + ofstream ostr(fname.c_str(),ios::out | ios::binary); + + ostr << "# vtk DataFile Version 3.0\n"; + ostr << fname << "\n"; + ostr << "BINARY\n"; + ostr << "DATASET STRUCTURED_POINTS\n"; + ostr << "DIMENSIONS " << nnx << " " << nny << " " << nnz << " \n"; + ostr << "ORIGIN " << startx << " " << starty << " " << startz << " \n"; + ostr << "SPACING " << deltax << " " << deltax << " " << deltax <<" \n"; + + ostr << "POINT_DATA " << nn << "\n"; + + ostr << "SCALARS Geo int\n"; + ostr << "LOOKUP_TABLE default\n"; + for(k=startoffz ; k<=nnz+startoffz-1 ; k++){ + for(j=startoffy ; j<=nny+startoffy-1 ; j++){ + for(i=startoffx ; i<=nnx+startoffx-1 ; i++){ + m = nx*(ny*k + j) + i; + //if(kFull[m]==0) tmp = 16; + tmp = bcMatH[kFull[m]]; + //tmp = bcMatHFull[m]; + if(swapByte) UbSystem::swapByteOrder((unsigned char*)&tmp,sizeof(int)); + ostr.write((char*)&tmp, sizeof(int)); + } + } + } + + ostr << "\n"; + ostr << "SCALARS Press float\n"; + ostr << "LOOKUP_TABLE default\n"; + for(k=startoffz ; k<=nnz+startoffz-1 ; k++){ + for(j=startoffy ; j<=nny+startoffy-1 ; j++){ + for(i=startoffx ; i<=nnx+startoffx-1 ; i++){ + m = nx*(ny*k + j) + i; + if((bcMatH[kFull[m]] == GEO_SOLID) && (bcMatH[kFull[m]] == GEO_VOID)){ + tmp_rho=0.0;//1.0f/3.0f; + } + else{ + tmp_rho=(float)((rhoH[kFull[m]] / tdiff) / 3.0f * rho_ratio * v_ratio *v_ratio ); + //tmp_rho=rhoH[kFull[m]] / 3.0f ; + + } + if(swapByte) UbSystem::swapByteOrder((unsigned char*)&tmp_rho,sizeof(float)); + ostr.write((char*)&tmp_rho, sizeof(float)); + } + } + } + + ostr << "\n"; + ostr << "SCALARS PressM float\n"; + ostr << "LOOKUP_TABLE default\n"; + for(k=startoffz ; k<=nnz+startoffz-1 ; k++){ + for(j=startoffy ; j<=nny+startoffy-1 ; j++){ + for(i=startoffx ; i<=nnx+startoffx-1 ; i++){ + m = nx*(ny*k + j) + i; + if( (bcMatH[kFull[m]] == GEO_SOLID) && (bcMatH[kFull[m]] == GEO_VOID)){ + tmp_rho=0.0f;//1.0f/3.0f; + } + else{ + tmp_rho=(float)((pressH[kFull[m]] / tdiff) / 3.0f * rho_ratio * v_ratio *v_ratio ); + //tmp_rho=pressH[kFull[m]] / 3.0f ; + + } + if(swapByte) UbSystem::swapByteOrder((unsigned char*)&tmp_rho,sizeof(float)); + ostr.write((char*)&tmp_rho, sizeof(float)); + } + } + } + + ostr << "\n"; + ostr << "VECTORS Speed float\n"; + for(k=startoffz ; k<=nnz+startoffz-1 ; k++){ + for(j=startoffy ; j<=nny+startoffy-1 ; j++){ + for(i=startoffx ; i<=nnx+startoffx-1 ; i++){ + m = nx*(ny*k + j) + i; + if( (bcMatH[kFull[m]] == GEO_SOLID) && (bcMatH[kFull[m]] == GEO_VOID)){ + tmp_ux=0.0; + tmp_uy=0.0; + tmp_uz=0.0; + } + else{ + tmp_ux=(float)((vxH[kFull[m]] / tdiff) * v_ratio); + tmp_uy=(float)((vyH[kFull[m]] / tdiff) * v_ratio); + tmp_uz=(float)((vzH[kFull[m]] / tdiff) * v_ratio); + } + if( std::fabs(tmp_ux) > std::fabs(uxMax) ) uxMax = tmp_ux; + if(swapByte) + { + UbSystem::swapByteOrder((unsigned char*)&tmp_ux,sizeof(float)); + UbSystem::swapByteOrder((unsigned char*)&tmp_uy,sizeof(float)); + UbSystem::swapByteOrder((unsigned char*)&tmp_uz,sizeof(float)); + } + ostr.write((char*)&tmp_ux, sizeof(float)); + ostr.write((char*)&tmp_uy, sizeof(float)); + ostr.write((char*)&tmp_uz, sizeof(float)); + } + } + } + printf(" \n uxMax: %.8f", (float)uxMax); } void writeVTKsgSPbinTEST(std::string& fname) { - unsigned int i,j,k; - float tmp_rho,tmp_ux,tmp_uy,tmp_uz; - int tmp; - bool swapByte = UbSystem::isLittleEndian(); - - - ofstream ostr(fname.c_str(),ios::out | ios::binary); - - ostr << "# vtk DataFile Version 3.0\n"; - ostr << fname << "\n"; - ostr << "BINARY\n"; - ostr << "DATASET STRUCTURED_POINTS\n"; - ostr << "DIMENSIONS " << 10 << " " << 10 << " " << 10 << " \n"; - ostr << "ORIGIN " << 0 << " " << 0 << " " << 0 << " \n"; - ostr << "SPACING " << 1 << " " << 1 << " " << 1 <<" \n"; - - ostr << "POINT_DATA " << 1000 << "\n"; - - ostr << "SCALARS Geo int\n"; - ostr << "LOOKUP_TABLE default\n"; - for(k=0 ; k<10 ; k++){ - for(j=0 ; j<10 ; j++){ - for(i=0 ; i<10 ; i++){ - tmp = 1; - if(swapByte) - { - UbSystem::swapByteOrder((unsigned char*)&tmp,sizeof(int)); - } - ostr.write((char*)&tmp, sizeof(int)); - } - } - } - - ostr << "\nSCALARS Press float\n"; - ostr << "LOOKUP_TABLE default\n"; - for(k=0 ; k<10 ; k++){ - for(j=0 ; j<10 ; j++){ - for(i=0 ; i<10 ; i++){ - tmp_rho=0.1f; - if(swapByte) - { - UbSystem::swapByteOrder((unsigned char*)&tmp_rho,sizeof(float)); - } - ostr.write((char*)&tmp_rho, sizeof(float)); - } - } - } - - ostr << "\nSCALARS PressM float\n"; - ostr << "LOOKUP_TABLE default\n"; - for(k=0 ; k<10 ; k++){ - for(j=0 ; j<10 ; j++){ - for(i=0 ; i<10 ; i++){ - tmp_rho=0.2f; - if(swapByte) - { - UbSystem::swapByteOrder((unsigned char*)&tmp_rho,sizeof(float)); - } - ostr.write((char*)&tmp_rho, sizeof(float)); - } - } - } - - ostr << "\nVECTORS Speed float\n"; - for(k=0 ; k<10 ; k++){ - for(j=0 ; j<10 ; j++){ - for(i=0 ; i<10 ; i++){ - tmp_ux=0.01f; - tmp_uy=0.02f; - tmp_uz=0.03f; - if(swapByte) - { - UbSystem::swapByteOrder((unsigned char*)&tmp_ux,sizeof(float)); - UbSystem::swapByteOrder((unsigned char*)&tmp_uy,sizeof(float)); - UbSystem::swapByteOrder((unsigned char*)&tmp_uz,sizeof(float)); - } - ostr.write((char*)&tmp_ux, sizeof(float)); - ostr.write((char*)&tmp_uy, sizeof(float)); - ostr.write((char*)&tmp_uz, sizeof(float)); - } - } - } + unsigned int i,j,k; + float tmp_rho,tmp_ux,tmp_uy,tmp_uz; + int tmp; + bool swapByte = UbSystem::isLittleEndian(); + + + ofstream ostr(fname.c_str(),ios::out | ios::binary); + + ostr << "# vtk DataFile Version 3.0\n"; + ostr << fname << "\n"; + ostr << "BINARY\n"; + ostr << "DATASET STRUCTURED_POINTS\n"; + ostr << "DIMENSIONS " << 10 << " " << 10 << " " << 10 << " \n"; + ostr << "ORIGIN " << 0 << " " << 0 << " " << 0 << " \n"; + ostr << "SPACING " << 1 << " " << 1 << " " << 1 <<" \n"; + + ostr << "POINT_DATA " << 1000 << "\n"; + + ostr << "SCALARS Geo int\n"; + ostr << "LOOKUP_TABLE default\n"; + for(k=0 ; k<10 ; k++){ + for(j=0 ; j<10 ; j++){ + for(i=0 ; i<10 ; i++){ + tmp = 1; + if(swapByte) + { + UbSystem::swapByteOrder((unsigned char*)&tmp,sizeof(int)); + } + ostr.write((char*)&tmp, sizeof(int)); + } + } + } + + ostr << "\nSCALARS Press float\n"; + ostr << "LOOKUP_TABLE default\n"; + for(k=0 ; k<10 ; k++){ + for(j=0 ; j<10 ; j++){ + for(i=0 ; i<10 ; i++){ + tmp_rho=0.1f; + if(swapByte) + { + UbSystem::swapByteOrder((unsigned char*)&tmp_rho,sizeof(float)); + } + ostr.write((char*)&tmp_rho, sizeof(float)); + } + } + } + + ostr << "\nSCALARS PressM float\n"; + ostr << "LOOKUP_TABLE default\n"; + for(k=0 ; k<10 ; k++){ + for(j=0 ; j<10 ; j++){ + for(i=0 ; i<10 ; i++){ + tmp_rho=0.2f; + if(swapByte) + { + UbSystem::swapByteOrder((unsigned char*)&tmp_rho,sizeof(float)); + } + ostr.write((char*)&tmp_rho, sizeof(float)); + } + } + } + + ostr << "\nVECTORS Speed float\n"; + for(k=0 ; k<10 ; k++){ + for(j=0 ; j<10 ; j++){ + for(i=0 ; i<10 ; i++){ + tmp_ux=0.01f; + tmp_uy=0.02f; + tmp_uz=0.03f; + if(swapByte) + { + UbSystem::swapByteOrder((unsigned char*)&tmp_ux,sizeof(float)); + UbSystem::swapByteOrder((unsigned char*)&tmp_uy,sizeof(float)); + UbSystem::swapByteOrder((unsigned char*)&tmp_uz,sizeof(float)); + } + ostr.write((char*)&tmp_ux, sizeof(float)); + ostr.write((char*)&tmp_uy, sizeof(float)); + ostr.write((char*)&tmp_uz, sizeof(float)); + } + } + } } @@ -649,11 +649,11 @@ void writeVTKsgThS(unsigned int nx, unsigned int ny, unsigned int nz, int starto real startx_D, real starty_D, real startz_D, real deltax_D, unsigned int *kFull, real* ConcD) { //Test - real* /*float* double**/ vxH = vxH_D ; - real* /*float* double**/ vyH = vyH_D ; - real* /*float* double**/ vzH = vzH_D ; - real* /*float* double**/ rhoH = rhoH_D ; - real* /*float* double**/ ConcH = ConcD ; + real* /*float* double**/ vxH = vxH_D ; + real* /*float* double**/ vyH = vyH_D ; + real* /*float* double**/ vzH = vzH_D ; + real* /*float* double**/ rhoH = rhoH_D ; + real* /*float* double**/ ConcH = ConcD ; double v_ratio = v_ratio_D ; double rho_ratio= rho_ratio_D; double startx = startx_D ; @@ -774,315 +774,315 @@ void writeVTKsgThS(unsigned int nx, unsigned int ny, unsigned int nz, int starto void writeVTKsgSPbinAS(unsigned int nx_D, unsigned int ny_D, unsigned int nz_D, int startoffx_D, int startoffy_D, int startoffz_D, - unsigned int nnx_D, unsigned int nny_D, unsigned int nnz_D, unsigned int start_z, unsigned int end_z, std::string& fname, - unsigned int* bcMatH, int* bcMatHFull, real* vxH_D, real* vyH_D, real* vzH_D, real* rhoH_D, real* pressH_D, - real v_ratio_D, real rho_ratio_D, - real startx_D, real starty_D, real startz_D, real deltax_D, - real *coordX, real *coordY, real *coordZ) + unsigned int nnx_D, unsigned int nny_D, unsigned int nnz_D, unsigned int start_z, unsigned int end_z, std::string& fname, + unsigned int* bcMatH, int* bcMatHFull, real* vxH_D, real* vyH_D, real* vzH_D, real* rhoH_D, real* pressH_D, + real v_ratio_D, real rho_ratio_D, + real startx_D, real starty_D, real startz_D, real deltax_D, + real *coordX, real *coordY, real *coordZ) { - //Test - real* /*float* double**/ vxH = vxH_D ; - real* /*float* double**/ vyH = vyH_D ; - real* /*float* double**/ vzH = vzH_D ; - real* /*float* double**/ rhoH = rhoH_D ; - real* /*float* double**/ pressH = pressH_D ; - float v_ratio = (float)v_ratio_D ; - float rho_ratio= (float)rho_ratio_D; - float startx = (float)startx_D ; - float starty = (float)starty_D ; - float startz = (float)startz_D ;//(double)start_z; - float deltax = (float)deltax_D ; - int startoffx = startoffx_D; - int startoffy = startoffy_D; - int startoffz = startoffz_D; - unsigned int nnx = nnx_D; - unsigned int nny = nny_D; - unsigned int nnz = nnz_D; - unsigned int nx = nx_D; - unsigned int ny = ny_D; - unsigned int nz = nz_D; - unsigned int i,j,k;//,m; - unsigned int nn; - float tmp_rho,tmp_ux,tmp_uy,tmp_uz; - int tmp; - bool swapByte = UbSystem::isLittleEndian(); - float uxMax=0.0f; - - unsigned int count=1; - - nn = nnx*nny*nnz; - - ofstream ostr(fname.c_str(),ios::out | ios::binary); - - ostr << "# vtk DataFile Version 3.0\n"; - ostr << fname << "\n"; - ostr << "BINARY\n"; - ostr << "DATASET STRUCTURED_POINTS\n"; - ostr << "DIMENSIONS " << nnx << " " << nny << " " << nnz << " \n"; - ostr << "ORIGIN " << startx << " " << starty << " " << startz << " \n"; - ostr << "SPACING " << deltax << " " << deltax << " " << deltax <<" \n"; - - ostr << "POINT_DATA " << nn << "\n"; - - ostr << "SCALARS Geo int\n"; - ostr << "LOOKUP_TABLE default\n"; - for(k=startoffz ; k<=nnz+startoffz-1 ; k++){ - for(j=startoffy ; j<=nny+startoffy-1 ; j++){ - for(i=startoffx ; i<=nnx+startoffx-1 ; i++){ - ////////////////////////////////////////////////////////////////////////// - if(coordX[count]==i && coordY[count]==j && coordZ[count]==k) { - tmp = bcMatH[count]; - count++; //count wird nur im "if" erh�ht. stellt sicher, dass wir im array nur einen schritt weiter gehen wenn eine kombination gefunden wurde - } - else tmp = 99;//GEO_VOID; - ////////////////////////////////////////////////////////////////////////// - if(swapByte) UbSystem::swapByteOrder((unsigned char*)&tmp,sizeof(int)); - ostr.write((char*)&tmp, sizeof(int)); - ////////////////////////////////////////////////////////////////////////// - } - } - } - - //reset var "count" - count=1; - - ostr << "\n"; - ostr << "SCALARS Press float\n"; - ostr << "LOOKUP_TABLE default\n"; - for(k=startoffz ; k<=nnz+startoffz-1 ; k++){ - for(j=startoffy ; j<=nny+startoffy-1 ; j++){ - for(i=startoffx ; i<=nnx+startoffx-1 ; i++){ - ////////////////////////////////////////////////////////////////////////// - if(coordX[count]==i && coordY[count]==j && coordZ[count]==k) { - tmp_rho = (float)(rhoH[count] / 3.0f * rho_ratio * v_ratio *v_ratio); - count++; //count wird nur im "if" erh�ht. stellt sicher, dass wir im array nur einen schritt weiter gehen wenn eine kombination gefunden wurde - } - else tmp_rho=0.0f; - ////////////////////////////////////////////////////////////////////////// - if(swapByte) UbSystem::swapByteOrder((unsigned char*)&tmp_rho,sizeof(float)); - ostr.write((char*)&tmp_rho, sizeof(float)); - ////////////////////////////////////////////////////////////////////////// - } - } - } - - //reset var "count" - count=1; - - ostr << "\n"; - ostr << "SCALARS PressM float\n"; - ostr << "LOOKUP_TABLE default\n"; - for(k=startoffz ; k<=nnz+startoffz-1 ; k++){ - for(j=startoffy ; j<=nny+startoffy-1 ; j++){ - for(i=startoffx ; i<=nnx+startoffx-1 ; i++){ - ////////////////////////////////////////////////////////////////////////// - if(coordX[count]==i && coordY[count]==j && coordZ[count]==k) { - tmp_rho = (float)(pressH[count] / 3.0f * rho_ratio * v_ratio *v_ratio); - count++; //count wird nur im "if" erh�ht. stellt sicher, dass wir im array nur einen schritt weiter gehen wenn eine kombination gefunden wurde - } - else tmp_rho=0.0f; - ////////////////////////////////////////////////////////////////////////// - if(swapByte) UbSystem::swapByteOrder((unsigned char*)&tmp_rho,sizeof(float)); - ostr.write((char*)&tmp_rho, sizeof(float)); - ////////////////////////////////////////////////////////////////////////// - } - } - } - - //reset var "count" - count=1; - - ostr << "\n"; - ostr << "VECTORS Speed float\n"; - for(k=startoffz ; k<=nnz+startoffz-1 ; k++){ - for(j=startoffy ; j<=nny+startoffy-1 ; j++){ - for(i=startoffx ; i<=nnx+startoffx-1 ; i++){ - ////////////////////////////////////////////////////////////////////////// - if(coordX[count]==i && coordY[count]==j && coordZ[count]==k) { - tmp_ux=(float)(vxH[count] * v_ratio); - tmp_uy=(float)(vyH[count] * v_ratio); - tmp_uz=(float)(vzH[count] * v_ratio); - count++; //count wird nur im "if" erh�ht. stellt sicher, dass wir im array nur einen schritt weiter gehen wenn eine kombination gefunden wurde - } - else { - tmp_ux=0.0f; - tmp_uy=0.0f; - tmp_uz=0.0f; - } - ////////////////////////////////////////////////////////////////////////// - if( std::fabs(tmp_ux) > std::fabs(uxMax) ) uxMax = tmp_ux; - if(swapByte) - { - UbSystem::swapByteOrder((unsigned char*)&tmp_ux,sizeof(float)); - UbSystem::swapByteOrder((unsigned char*)&tmp_uy,sizeof(float)); - UbSystem::swapByteOrder((unsigned char*)&tmp_uz,sizeof(float)); - } - ostr.write((char*)&tmp_ux, sizeof(float)); - ostr.write((char*)&tmp_uy, sizeof(float)); - ostr.write((char*)&tmp_uz, sizeof(float)); - ////////////////////////////////////////////////////////////////////////// - } - } - } - printf(" \n uxMax: %.8f", (float)uxMax); + //Test + real* /*float* double**/ vxH = vxH_D ; + real* /*float* double**/ vyH = vyH_D ; + real* /*float* double**/ vzH = vzH_D ; + real* /*float* double**/ rhoH = rhoH_D ; + real* /*float* double**/ pressH = pressH_D ; + float v_ratio = (float)v_ratio_D ; + float rho_ratio= (float)rho_ratio_D; + float startx = (float)startx_D ; + float starty = (float)starty_D ; + float startz = (float)startz_D ;//(double)start_z; + float deltax = (float)deltax_D ; + int startoffx = startoffx_D; + int startoffy = startoffy_D; + int startoffz = startoffz_D; + unsigned int nnx = nnx_D; + unsigned int nny = nny_D; + unsigned int nnz = nnz_D; + unsigned int nx = nx_D; + unsigned int ny = ny_D; + unsigned int nz = nz_D; + unsigned int i,j,k;//,m; + unsigned int nn; + float tmp_rho,tmp_ux,tmp_uy,tmp_uz; + int tmp; + bool swapByte = UbSystem::isLittleEndian(); + float uxMax=0.0f; + + unsigned int count=1; + + nn = nnx*nny*nnz; + + ofstream ostr(fname.c_str(),ios::out | ios::binary); + + ostr << "# vtk DataFile Version 3.0\n"; + ostr << fname << "\n"; + ostr << "BINARY\n"; + ostr << "DATASET STRUCTURED_POINTS\n"; + ostr << "DIMENSIONS " << nnx << " " << nny << " " << nnz << " \n"; + ostr << "ORIGIN " << startx << " " << starty << " " << startz << " \n"; + ostr << "SPACING " << deltax << " " << deltax << " " << deltax <<" \n"; + + ostr << "POINT_DATA " << nn << "\n"; + + ostr << "SCALARS Geo int\n"; + ostr << "LOOKUP_TABLE default\n"; + for(k=startoffz ; k<=nnz+startoffz-1 ; k++){ + for(j=startoffy ; j<=nny+startoffy-1 ; j++){ + for(i=startoffx ; i<=nnx+startoffx-1 ; i++){ + ////////////////////////////////////////////////////////////////////////// + if(coordX[count]==i && coordY[count]==j && coordZ[count]==k) { + tmp = bcMatH[count]; + count++; //count wird nur im "if" erh�ht. stellt sicher, dass wir im array nur einen schritt weiter gehen wenn eine kombination gefunden wurde + } + else tmp = 99;//GEO_VOID; + ////////////////////////////////////////////////////////////////////////// + if(swapByte) UbSystem::swapByteOrder((unsigned char*)&tmp,sizeof(int)); + ostr.write((char*)&tmp, sizeof(int)); + ////////////////////////////////////////////////////////////////////////// + } + } + } + + //reset var "count" + count=1; + + ostr << "\n"; + ostr << "SCALARS Press float\n"; + ostr << "LOOKUP_TABLE default\n"; + for(k=startoffz ; k<=nnz+startoffz-1 ; k++){ + for(j=startoffy ; j<=nny+startoffy-1 ; j++){ + for(i=startoffx ; i<